Buscar en el Blog

viernes, 21 de febrero de 2014

Compiladores Principios Tecnicas y Herramientas - Pearson.Educacion - Dragon Book


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.







¿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.

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.


Fundamentos de jQuery

Fundamentos de jQuery

Textos originales:
Rebecca Murphey
Traducción y adaptación a español:
Leandro D’Onofrio
Correcciones:
Gustavo Raúl Aragón, Pablo Maronna, Denis Ciccale y otras personas
Con contribuciones de James Padolsey, Paul Irish y otros.
Bajo licencia Creative Commons




miércoles, 19 de febrero de 2014

Un poco de humor - Ojala fuera verdad :D


Configuracion de Qt Creator para Android

Configuracion de Qt Creator para Android
Primero debemos descargar lo necesario
SDK  







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

En el caso del NDK es opcional (solo si le sale el error que debe definir la variable de entornor del NDK)

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

En esta ventana dejamos todo como esta , a excepcion de size, ahi le asignamos un valor de cuanto de espacio queremos en el SD Card, yo le pondre 200 mb y luego click en ok.


Cerramos la ventana Anterior y luego click en ok en la ventana Options para guardar los cambios de las rutas.

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




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.



Php Orientado a Objetos - Php 5




Php Orientado a Objetos - Php 5




Programacion Orientada a Objetos - Luis Joyanes

Programacion Orientada a Objetos - Luis Joyanes


Como programar en C/C++ H. M. Deitel


Como programar en C/C++ H. M. Deitel