Hoy 28 de Noviembre estare dictando un seminario de Ubuntu Linux en Kapacita, un instituto de Tecnologia aqui en la ciudad de Caracas que esta introduciendo excelentes Cursos para Certificacion en Linux y Ubuntu. Pronto estaremos impartiendo otro seminario que puede ser de tu interes, escribeme un comentario o enviame un correo a johan@ubuntu.org.ve o a thepumpkin1979@gmail.com.
El 8 de Diciembre tambien estare en la ciudad de Maracaibo para un evento de Ubuntu, pronto les dare mas detalles. Si eres de Maracaibo tambien podras asistir.
Saludos.
Wednesday, November 28, 2007
Seminario: "Capacidades de Ubuntu Linux 7.10 Gutsy Gibbon" en Kapacita
Hoy 28 de Noviembre estare dictando un seminario de Ubuntu Linux en Kapacita, un instituto de Tecnologia aqui en la ciudad de Caracas que esta introduciendo excelentes Cursos para Certificacion en Linux y Ubuntu. Pronto estaremos impartiendo otro seminario que puede ser de tu interes, escribeme un comentario o enviame un correo a johan@ubuntu.org.ve o a thepumpkin1979@gmail.com.
El 8 de Diciembre tambien estare en la ciudad de Maracaibo para un evento de Ubuntu, pronto les dare mas detalles. Si eres de Maracaibo tambien podras asistir.
Saludos.
Sunday, November 18, 2007
Separador de Mensajes TCP
Hace tiempo que no escribo y es que he estado trabajando en Demasiadas, Demasiadas cosas interesantes, una de ellas es la reconstruccion de mi Servidor HTTP. La otra tarea no tan trivial es un Protocolo de Mensajeria Interna en LAN y con routing a varios servidores. En fin, el punto es que Ambos requieren que sobre TCP se transmitan diferentes tipos de mensajes.
Porque no usar .NET Remoting? Muy pesado para tantas conexiones y necesito hacer clientes en diferentes plataformas basados en un sola definicion de protocolo y no tengo tanta experiencia haciendo SinkProviders de Remoting asi que he decidido hacer un separador de Mensajes TCP. Porque TCP necesita un separador de mensajes?
TCP(combinado con IP) es un protocolo de transmision de flujos de datos, no de mensajes. Cual es la diferencia?
En un protocolo de Flujo de Datos(Data Stream) se envian los datos en el mismo orden pero no se tiene seguridad de que lleguen de la misma forma y lo voy a explicar asi. Un punto de Red llamado A envia datos a un punto de red llamado B:
Punto de Red 'A' Envia los siguientes flujos(cada linea representa un flujo de datos):
- 23,34,11,73
- 34,67,83,96
- 23
- 34,11
- 73,34,67
- 83,96
- Este es el contenido de el Archivo 1
- pero el Archivo 1 tambien tiene otra linea que es esta.
- (B, Aqui comienza el Archivo2)
- Esta es la linea del Archivo 2
- Este es el contenido de el
- Archivo 1pero el Archivo 1
- tambien tiene otra linea que
- esta
- (B
- , Aqui comienza el Archivo2)
- Esta es la linea
- del Archivo 2
- {23,34,11,73}
- {34,67,83,96}
- {23,34,11,73}
- {34,67,83,96}
Wednesday, November 7, 2007
Resultado de Encuenta: ¿Que OS Consideras Ideal para Servidores de Alta Disponibilidad?
El ganador fue Debian Linux, seguido de su hijo Ubuntu y ('el dios de los RPM') RedHat Linux en tercer lugar.
Asi quedo el resultado:
1. Debian Linux - 50 (37%)
2. Ubuntu Linux - 39 (28%)
3. Redhat Enterprise Linux - 29 (21%)
4. Sun Solaris - 26 (19%)
5. Novell SUSE Linux Enterprise - 17 (12%)
6. BSD - 12 (8%)
7. Microsoft Windows Server 2003 - 11 (8%)
8. Fedora Linux - 7 (5%)
9. Apple OS-X Server - 4 (2%)
10. HP-UX - 4 (2%)
Gracias a los que participaron en la encuesta.
Thursday, October 18, 2007
PHP ERROR: Call to undefined function pg_connect()
Cuando este error sucede quiere decir que no tienes instalado la extension de PostgreSQL-PHP que permite hacer consultas a bases de datos PostgreSQL desde PHP.
Para resolverlo en Ubuntu se debe instalar el paquete "php5-pgsql".
En linea de comandos es asi:
$sudo aptitude install php5-pgsql
Despues procedemos a reinicar el servidor apache de la siguiente forma:
$sudo aptitude /etc/init.d/apache2 restart
Listo, ahora reintenta otra vez usar la aplicacion PHP que te arrojo la falla.
Wednesday, October 17, 2007
monodis: Desensamblar aplicacion o libreria de Mono
Entre las herramientas de Mono podemos encontrar la utilidad "monodis"(analoga a la herramienta de Microsoft .NET Framework 'ildasm') que nos funcionara para desensamblar el codigo IL compilado en un ensamblado, ya sea .dll o .exe.
¿Que finalidad tiene ver el codigo IL generado por el compilador? Pues es vital para los desarrolladores de compiladores, util para robar codigo:O o interesante para los curiosos;)
Vamos a probarlo!
¿Que vamos a hacer? Crear un archivo de codigo fuente sencillo(main.cs), compilarlo con el compilador de mono 1.1(mcs) y finalmente desensamblarlo con la utilidad monodis.
Abrimos una Terminal de Linux o una Consola y ejecutemos los siguientes pasos:
Creamos archivo de ejemplo:
echo "using System; class MainC{ static void Main(){ Console.WriteLine(\"Saludos\"); } }" > main.cs
Compilamos:
mcs -out:main.exe main.cs
Ejecutamos para probar el compilado:
mono main.exe
Desensamblamos:
monodis --output=main.exe.il main.exe
Eso nos ha generado nuestro archivo de codigo fuente IL y ahora vamos a imprimirlo completo en la consola:
cat main.exe.il
Estos pasos permiten guardar el codigo IL en un archivo pero no es necesario guardar el codigo en un archivo para inspeccionar el desensamblado, con simplemente ejecutar "$monodis nombre-enamblado" ya nos imprimira el codigo IL.
Ejemplo:
monodis main.exe
El resultado tanto del comando anterior como del archivo main.exe.il deberia ser algo parecido al siguiente archivo descargable:
main.exe.il
Listo!
Estoy preparando una manual practico para entender IL, en los proximos dias lo estare publicando.
Saludos!
Subscribe to:
Posts (Atom)