Los principios y tecnicas de escritura de compiladores son tan amplios como las ideas encontradas en este libro se usaran muchas veces en la carrera de un cientifico de la computacion. La escritura de compiladores comprende los lenguajes de programacion, la arquitectura de computadores, la teoria de lenguajes, los algoritmos y la ingenieria de softwareñ. Por fortuna, con algunas tecnicas basicas de escritura de compiladores, se pueden construir traductores para una gran variedad de lenguajes y maquinas.
Buscar en el Blog
Etiquetas
varios
(78)
powerbuilder
(65)
manuales
(58)
Seguridad Informatica
(54)
utilidades
(32)
.NET
(25)
Qt
(25)
Seguridad Redes
(25)
c plus plus
(20)
base de datos
(19)
ingenieria software
(16)
Redes
(15)
visual Basic
(14)
linux
(13)
programacion
(13)
TESIS
(11)
algoritmos
(11)
sql server
(11)
Tecnologia
(10)
c++
(10)
JAVA
(9)
php
(7)
javascript
(6)
manual
(6)
Programas
(5)
Humor
(4)
Sistemas Operativos
(4)
UML
(4)
c
(4)
contabilidad
(4)
electronica digital
(4)
mysql
(4)
software libre
(4)
C_Sharp
(3)
business intelligence
(3)
excel
(3)
gestion de proyectos
(3)
html5
(3)
oracle
(3)
pruebas de software
(3)
sqlite
(3)
web
(3)
OPENGL
(2)
apache
(2)
ensamblador
(2)
python
(2)
robotica
(2)
sharp
(2)
virus
(2)
windows server
(2)
ACM
(1)
BPM
(1)
Costos
(1)
FISICA
(1)
Forense
(1)
Postgresql
(1)
SEO
(1)
VMWARE
(1)
administracion
(1)
anime
(1)
bash
(1)
bat
(1)
bootstrap
(1)
compiladores
(1)
cpanel
(1)
criminalistica
(1)
eclipse
(1)
electronica
(1)
firebird
(1)
grafos
(1)
hardware
(1)
ingenieria inversa
(1)
jquery
(1)
juegos
(1)
laravel
(1)
man
(1)
maquinas virtuales
(1)
metasploit
(1)
noticias
(1)
prestashop
(1)
realidad aumentada
(1)
repositorios
(1)
routers
(1)
servidores
(1)
spring
(1)
testing
(1)
tmmi
(1)
usabilidad
(1)
visual studio
(1)
viernes, 21 de febrero de 2014
¿Que es un bitcoin?
¿Que es un bitcoin?
Bitcoin es una moneda, como el euro o el dólar estadounidense, que sirve
para intercambiar bienes y servicios. Sin embargo, a diferencia de
otras monedas, Bitcoin es una divisa electrónica que presenta novedosas
características y destaca por su eficiencia, seguridad y facilidad de
intercambio.
Balances - cadena de bloques
La cadena de bloques o "block chain" es una contabilidad pública compartida en la que se basa toda la red Bitcoin. Todas las transacciones confirmadas se incluyen en la cadena de bloques. De esta manera los monederos Bitcoin pueden calcular su saldo gastable y las nuevas transacciones pueden ser verificadas, asegurando que el cobro se esta haciendo al que realiza el pago. La integridad y el orden cronológico de la cadena de bloques se hacen cumplir con criptografía.
Transacciones - llaves privadas
Una transacción es una transferencia de valores entre monederos Bitcoin que será incluida en la cadena de bloques. Los monederos Bitcoin disponen de un fragmento secreto llamado clave privada, utilizada para firmar las operaciones, proporcionando una prueba matemática de que la transacción está hecha por el propietario del monedero. La firma también evita que la transacción no sea alterada por alguien una vez ésta ha sido emitida. Todas las transacciones son difundidas entre los usuarios y por lo general empiezan a ser confirmadas por la red en los 10 minutos siguientes a través de un proceso llamado minería.
La cadena de bloques o "block chain" es una contabilidad pública compartida en la que se basa toda la red Bitcoin. Todas las transacciones confirmadas se incluyen en la cadena de bloques. De esta manera los monederos Bitcoin pueden calcular su saldo gastable y las nuevas transacciones pueden ser verificadas, asegurando que el cobro se esta haciendo al que realiza el pago. La integridad y el orden cronológico de la cadena de bloques se hacen cumplir con criptografía.
Transacciones - llaves privadas
Una transacción es una transferencia de valores entre monederos Bitcoin que será incluida en la cadena de bloques. Los monederos Bitcoin disponen de un fragmento secreto llamado clave privada, utilizada para firmar las operaciones, proporcionando una prueba matemática de que la transacción está hecha por el propietario del monedero. La firma también evita que la transacción no sea alterada por alguien una vez ésta ha sido emitida. Todas las transacciones son difundidas entre los usuarios y por lo general empiezan a ser confirmadas por la red en los 10 minutos siguientes a través de un proceso llamado minería.
Procesamiento - minería
La minería es un sistema de consenso distribuido que se utiliza para confirmar las transacciones pendientes a ser incluidas en la cadena de bloques. Hace cumplir un orden cronológico en la cadena de bloques, protege la neutralidad de la red y permite un acuerde entre todos los equipos sobre el estado del sistema. Para confirmar las transacciones, deberán ser empacadas en un bloque que se ajuste a estrictas normas de cifrado y que será verificado por la red. Estas normas impiden que cualquier bloque anterior se modifique, ya que hacerlo invalidaría todos los bloques siguientes. La minería también crea el equivalente a una lotería competitiva que impide que cualquier persona pueda fácilmente añadir nuevos bloques consecutivamente en la cadena de bloques. De esta manera, ninguna persona puede controlar lo que está incluido en la cadena de bloques o reemplazar partes de la cadena de bloques para revertir sus propios gastos.
jueves, 20 de febrero de 2014
ANÁLISIS DE TRÁFICO CON WIRESHARK
ANÁLISIS DE TRÁFICO
Seguramente todo administrador de redes ha tenido que enfrentarse alguna vez a una pérdida del rendimiento de la red que gestiona. En ese caso sabrá que no siempre es sencillo, por falta de tiempo y recursos o por desconocimiento de las herramientas apropiadas, tener claros los motivos por los que esto ha sucedido. En ocasiones, incluso se ha podido llegar a perder la conectividad o bien ciertos equipos han podido desconectarse sin motivo aparente.
En la mayoría de ocasiones, las causas de estos problemas tienen un origen no premeditado y se deben a una mala configuración de la red como puede ser tormentas broadcast, spanning-tree mal configurado, enlaces redundantes, etc. Pero, en otras ocasiones, puede tratarse de ataques inducidos por terceros que pretenden dejar fuera de servicio un servidor web mediante un ataque DoS, husmear tráfico mediante un envenenamiento ARP o simplemente infectar los equipos con código malicioso para que formen parte de una red zombi o botnet.
En cualquier caso, conocer el origen del incidente es el primer paso para poder tomar las contramedidas necesarias y conseguir una correcta protección. En este punto, los analizadores de tráfico pueden resultar de gran utilidad para detectar, analizar y correlacionar tráfico identificando las amenazas de red para, posteriormente, limitar su impacto. Con tal propósito, existen en el mercado dispositivos avanzados como el appliance MARS (Monitoring, Analysis and Response System) de Cisco o IDS/IPS basados en hardware de diversos fabricantes. Pero estas soluciones no siempre están al alcance de todas las empresas ya que su coste puede que no cumpla un principio básico de proporcionalidad (el gasto es superior al beneficio obtenido) y, por lo tanto, no se justifique su adquisición.
Por ello, y para cubrir las necesidades de entidades con infraestructuras tecnológicas más modestas, INTECO-CERT presenta esta «Guía de análisis de tráfico con Wireshark». Tiene por objeto sensibilizar a administradores y técnicos de las ventajas de auditar la red con un analizador de tráfico, principalmente utilizando la herramienta libre Wireshark. Además, ofrece ejemplos prácticos de ataques en redes de área local bastante conocidos y que actualmente siguen siendo uno de los mayores enemigos en los entornos corporativos.
El presente documento está dividido en una serie de apartados que tratan diversos ataques reales llevados a cabo en redes de área local, como son ARP Spoof, DHCP Flooding, DNS Spoof, DDoS Attacks, VLAN Hopping, etc. En ellos se emplea Wireshark como herramienta principal de apoyo para ayudar a detectar, o al menos acotar en gran medida, los problemas generados por dichos ataques. Asimismo, se proponen diversas acciones de mitigación para cada uno de los casos expuestos.
miércoles, 19 de febrero de 2014
Configuracion de Qt Creator para Android
Configuracion de Qt Creator para Android
Primero debemos descargar lo necesario
Nota: Deben elegir segun la version de su SO(32 o 64 bits)
Una vez descargado todos estos archivos, procedemos a instalar el JDK, luego Qt y finalmente descomprimimos los archivos SDK, NDK y Apache Ant en un mismo directorio.
Luego tenemos que registrar las variables de entorno.
Agremos la variable JAVA_HOME y le colocamos la ruta en donde se encuentra instalado el JDK, en mi caso es el siguiente C:\Archivos de programa\Java\jdk1.7.0_51
Siguiente paso es agregar en la variable path lo siguiente.
Al final del punto y como agregamos los siguiente:
"En mi caso"
C:\Archivos de programa\Java\jdk1.7.0_51\bin;
C:\Android\sdk\tools;
C:\Android\sdk\platform-tools;
C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin;
Ustedes deben reemplazar esas rutas por las de su Pc.
Finalmente guardamos los cambios de las variables de entorno y nos vamos a Qt Creator.
Nos dirigimos a Tools->options
Dentro de Options nos vamos a la pestaña Androidy ahi configuramos la ruta del SDK, NDK, Apache Ant y el JDK.
Nota: Deben cambiarlo segun la ruta en donde esta instalado en su PC.
Lo ultimo que nos faltaria es agregar un dispositivo virtual, para eso hacemos clic en Start Android AVD Manager
Seleccionamos la pestaña Device Definitions
Seleccionamos en este caso el primero para poder realizar las pruebas
click en create AVD
Ahora a crear un proyecto y probarlo.
Nota: Es recomendable ejecutar primero el emulador y luego ejecutar el proyecto, eso es para windows, en el caso de Linux no me presento ningun incoveniente.
lunes, 17 de febrero de 2014
El paradigma de la Programación Orientada a Objetos en PHP y el patrón de arquitectura de Software MVC
Eugenia Bahit
http://eugeniabahit.blogspot.com
http://eugeniabahit.blogspot.com
Objetivo del libro
El objetivo de este libro, es dar una introducción general a conceptos básicos de la programación como lo son, el paradigma de la programación orientada a objetos y el patrón arquitectónico MVC (modelo, vista, controlador), a la vez de intentar introducir estos conceptos, en la programación específica del lenguaje PHP.
Requisitos previos
Para poder entender este libro, los requisitos previos que debe tener el lector, no son muchos. Recomiendo que se tengan conocimientos básicos del lenguaje PHP así como la facilidad para entender código HTML básico (se utilizará HTML Transitional 4.0 en algunos ejemplos, evitando el uso de XHTML, a fin de que programadores sin experiencia en el diseño y maquetado de sitios Web, puedan comprender más fácilmente los ejemplos utilizados).
¿A quiénes está dirigido este libro?
Este libro está dirigido principalmente, a programadores PHP que quieran salir de la programación estructurada para insertarse en la programación orientada a objetos y, a programadores de otros lenguajes que quieran comenzar a insertarse en la POO en PHP y que cuenten con mínimos conocimientos de este lenguaje.
Suscribirse a:
Entradas (Atom)




