<body>

Sitios web relacionados: PingBlog | Fotos

lunes, junio 30, 2008

Trucos UNIX: Depurando protocolos a mano: ¿Qué usar?

Hace ya un mes comencé a trabajar en un proyecto nuevo para la compañía en la cual trabajo, el cual consiste en crear una aplicación en donde los analistas de mercado reciben transacciones de los corredores de bolsa. Dado que el número de nombres que la compañía maneja en esta categoría ha crecido de manera substancial, hay que automatizar el proceso.

La bolsa de valores con la cual hacemos las transacciones tiene una especificación del protocolo, escrita originalmente en C, usando "Structs" y sockets con UDP/TCP. La aplicación requiere (por razones demasiados numerosas para explicar aquí) que el código sea escrito en Java.

¿Todo bien verdad? Bueno, lo más difícil fué implementar todo el protocolo (pese a que nosotros requeríamos solamente una pequeña parte). Además como ustedes se imaginan, los bancos de inversiones están fortificados detrás de varios niveles de protección como "Firewalls", "IDS" y demás y la conectividad entre nuestro entorno de desarrollo y en nuestro caso la bolsa de valores no fué bien configurada.

Para rematar, no tenia manera de usar tcpdump en la máquina en donde corria el servidor (convertirse en root usando SUDO es un proceso laaargo y burocrático) así que mis opciones eran esperar ayuda del grupo de redes, o mientras tanto depurar yo mi protocolo.

Las especificaciones del protocolo requieren que inicialmente nos conectemos usando UDP, para luego usar TCP, lo cual hace inefectivo el truco de conectarse al puerto de la máquina usando telnet (sólo trabaja con TCP el cual es orientado a conexión) . Otro detalle es que el saludo inicial es una conexión pasiva (la bolsa de valores enviaba un broadcast cada 30 segundos).

¿Qué hacer?

Bueno, Linux de nuevo salva el día con su ejercito de herramientas gratuitas. En eso caso utilicé NetCat (nc) y dado que el protocolo era ASCII pude ver con claridad que al menos ellos estaban enviando sus paquetes y que nosotros estabamos filtrando información. En mi caso escribí algo como esto:

auyan:~ josevnz$ nc -n -v -v -v -u -p 12345 -s 127.0.0.1 -l
listening on [127.0.0.1] 12345 ...



¡Super fácil!. Con esta información me ahorré tiempo y resolvimos el problema en cuestión de minutos en vez de horas...

Así que ya sabe, la próxima vez que necesite enviar o recibir paquetes arbitrarios en TCP o UDP dele un vistazo a NetCat :)


Buscar en otros sitios:

Blogalaxia:, , , ,
Technorati:, , , ,
To2blogs:, , , ,
Del.icio.us:, , , ,

Etiquetas: , , , ,

sábado, septiembre 22, 2007

Echando código: ¿Como saber de que tipo es un archivo, desde JAVA?

Nock Nock Neo
Con JNI nos podemos ir a bajo nivel con el sistema operativo. Una rubia en la foto :)


En un articulo anterior les habia comentado como trabajar con JNI y Java. En esta ocasión escogí un problema un poco más complicado, ya que el anterior parecía más un "Hola Mundo" que otra cosa (si, pasos de bebé).

Así que como la necesidad es la madre de todas las invenciones, me decidí a probar un ejemplo que tenia ganas de poner en práctica desde hace tiempo. En este caso se trata de como obtener el tipo de un archivo utilizando la herramienta file en UNIX, pero primero veamos si Java puede hacer lo mismo.

En Java podemos utilizar Swing para obtener el tipo del archivo. Leí que clase JFileChooser de Swing te da información similar, pero es basado en la extensión del archivo:

   1:import javax.swing.JFileChooser;
2:import java.io.File;
3:
4:public class FileType {
5: public static void main(String [] args) throws Exception {
6: JFileChooser view = new JFileChooser();
7: String descr = view.getTypeDescription(new File(args[0]));
8: System.out.println("File type is: " + descr);
9: }
10:}
Corriendo el programita:
[josevnz@localhost ~]$ javac FileType.java -d .
[josevnz@localhost ~]$ java FileType DS156_Complete.pdf
File type is: Generic File
[josevnz@localhost ~]$

Poco satisfactorio, por no decir otra cosa. Sin embargo todo el mundo sabe como obtener el tipo de un archivo desde unix, utilizando 'file':
[josevnz@localhost ~]$ file DS156_Complete.pdf
DS156_Complete.pdf: PDF document, version 1.3
[josevnz@localhost ~]$
File es una de mis herramientas favoritas. File consulta una base de datos en la cual están registrados los formatos y utilizando reglas heuristicas determina el verdadero tipo del archivo. Ahora, supongamos que quiero tener la misma funcionalidad desde uno de mis programas en Java, ¿como hacer?

Lo primero es averiguar como los verdaderos expertos lo hacen. Hay que utilizar JNI ya que quiero tomar ventaja de que el código de file va a utilizar la base de datos que viene con cada sistema operativo UNIX y no me importa sacrificar portabilidad.

Así que después buscar cuidadosamente en Google, finalmente encontré la página oficial del comando 'file'.

Sin embargo ya alguién se topó con el problema y decidió hacer una interfaz en Java la cual hace todo el trabajo: Java shared mime info.

Así que esas son las opciones. Les dejo la de Java, aunque otros lenguajes ya tienen sus respectivas implementaciones.

Blogalaxia.com:file, java, linux, open source, venezuela, libmagic, jmimeinfo
Technorati.com:file, java, linux, open source, venezuela, libmagic, jmimeinfo

Etiquetas: , , , , , ,

lunes, septiembre 03, 2007

Sitio de Fedora 7 en Venezuela



Bajate Fedora Linux


De nuevo y gracias a esos buscadores que tengo corriendo todo el tiempo, me conseguí con un grupo de usuarios de Fedora 7 en Venezuela.

El sitio luce interesante, falta ver que tanto les dura la mecha (como otros miles de sitios que comienzan hablando de Open Source en Venezuela y después se vuelven paja).

Les deseamos exito por acá, interesante iniciativa.

Blogalaxia.com:linux, fedora core, redhat, venezuela, open source
Technorati.com:linux, fedora core, redhat, venezuela, open source

Etiquetas: , , , ,

lunes, agosto 13, 2007

Netflix instant watch movies: En el 2008 habrá soporte para Macintosh, Firefox

Ese es el problema de las minorías, sus prioridades siempre son puestas por detrás de la mayoría. En este caso el problema es que Netflix no piensa dar soporte a usuarios Mac ni usuarios de Firefox sino hasta el 2008.

¿Incompetencia técnica? No realmente, sino culpa del ya molesto DRM, además de que este problema a sólo afecta a un grupo pequeño de sus usuarios.

Para empeorar las cosas, Linux ni siquiera es mencionado en el articulo (de acuerdo a Netflix, es sólo %1.2 de los usuarios).

Blogalaxia.com:netflix, linux, macosx, drm
Technorati.com:netflix, linux, macosx, drm

Etiquetas: , , ,

SCO: Un paso más cerca del abismo

Ya todo el mundo se esperaba esto, pero el último revés sufrido por SCO contra IBM es quizas el último clavo requierido para cerrar el ataud.

Y es que SCO tiene ya tiene tiempo haciendo ruido con alianzas, demandas y demás (no con software innovador sin embargo).

Son buenas noticias. Esto sienta un precedente y el halo de protección que proporciona va a servir para que la gente puede seguir haciendo lo que es importante, eso es, echando código sin preocuparse de una demanda por una compañía.

Blogalaxia.com:sco, ibm, novell, unix, linux, demanda, opensource
Technorati.com:sco, ibm, novell, unix, linux, demanda, opensource

Etiquetas: , , , , , ,

domingo, julio 15, 2007

Nuevo grupo de fotos en Flickr: Venezuela Open Source

Walc2005 Mérida, Richard Stallman
Richard Stallman en Walc 2005, cortesía de Jorge Camargo.


Me parece curioso que habiendo tanta actividad del movimiento Open Source en Venezuela, no haya un grupo en Flickr en el cual se puedan compartir esos momentos capturados en una fotografía.

Por eso me decidí a crear un grupo, llamado Venezuela Open Source. El grupo está abierto a la discusión del acontecer Open Source en el país y no está limitado a fotos, sino tambien a captura de programas que ustedes conozcan.

Asi que les pido el favor y que rieguen la voz para que todos los interesados nos beneficiemos.

Blogalaxia.com:venezuela, open source, linux, java, gnu, perl, discusion
Technorati.com:venezuela, open source, linux, java, gnu, perl, discusion

Etiquetas: , , , , , ,

sábado, julio 14, 2007

GPL V3: Son una pila de hipocritas

Walc2005 Mérida, Richard Stallman
Richard Stallman en Mérida. ¿Porqué tanto alboroto con GPL versión 3?


Me llamó mucho la atención del titulo del articulo en el cual Linux Linus Torwalds llama hipocritas a quienes estan desarrollando la licencia GPL versión 3.

Su punto de vista es interesante. La idea de la licencia es permitir colaborar y contribuir software de manera abierta mientras se protege a todo el mundo, no una técnica para inyectar moralidad en el código.

¿Les suena familiar? Si bien recuerdan hace tiempo y antes de que Sun volviera a Java Open Source, un grupito de fanaticos se dedico a politizar el lenguaje. Para nada, porque la la final se abrió con licencia GPL y no les quedó otra que mostrar un silencio amargo.

Es una verdadera lastima que la licencia GPL esté tomando este matiz. En particular si Linux decide no adoptarla sigificará que otros seguirán el mismo patrón y GPL3 será una muestra de lo que no se debe hacer para proteger el código.

Blogalaxia.com:gpl, linux, stallman, hipocritas, gnu, java
Technorati.com:gpl, linux, stallman, hipocritas, gnu, java

Sin embargo no se desanimen. Por cada licencia que fracasa, hay 100 que serán usadas :)

Etiquetas: , , , , ,

domingo, junio 17, 2007

La computadora Bolivariana: A nadie le importa que tenga Linux

Dios mio, han pasado al menos 2 meses desde que escribí el último articulo en el Blog. Digamos que mis intereses se movieron en otra dirección y que unas pequeñas vacaciones (más bloqueo del escritor) agudizaron las cosas.

Y tantas cosas han pasado en ese tiempo. Por ejemplo, hoy leyendo en Slashdot me consigo con un articulo en cual habla de la computadora Bolivariana.

Si, ensamblada en Falcón en China , y utiliza Linux. Por supuesto más barata que otras alternativas comerciales. Pero lo que me llamó la atención es que toda la conversación y comentarios no giraron en torno a la calidad del producto sino al entorno politico actual de Venezuela (criticas y alabanzas al gobierno actual).

Yo en particular no estoy muy seguro del exito comercial de estas máquinas, ya que después de todo es una propuesta del estado y no una compañia privada quien esta detrás de la operación (el proposito no es hacer dinero sino proveer tecnología de manera barata a quienes menos pueden, al menor originalmente). Otras fuentes de ingreso indirectas serán generadas por esta iniciativa pero ya se verá que pasa con eso también.

La industria de la venta de "clones" en Venezuela es un desastre, ya que venden computadoras hechas con componentes sin ningún control de calidad, costosas (lo cual es ironico) y con copias piratas de Windows instaladas (los ladrones de las tiendas te dicen que es un demo, para que veas como funciona la máquina pero que tu mismo debes borrarlo del disco duro).

Asi que este puede ser un cambio bueno. Sin embargo viene ya embarrado con politica, los canales de distribución aún no son claros y si no es manejado con cuidado (como las iniciativas de cualquier gobierno) se pueden convertir en una nueva hemorragia de dinero proveniente de los impuestos pagados por Venezolanos (asumiendo que el programa contará con alguna clase de subsidio por parte del estado).

Actualización: Se me olvido decir, ¿alguien sabe como se compara esta nueva empresa con Siragon?

Blogalaxia.com:chavez, laptop, linux, politica, slashdot
Technorati.com:chavez, laptop, linux, politica, slashdot

Etiquetas: , , , ,

jueves, febrero 15, 2007

Instalación de Sybase ASE Express en Fedora Core 6: ¿Es posible?

Existen muchas razones por las cuales usted quizas deba instalar Sybase ASE Express (una versión escalada de Sybase 15), como son requerimientos de un cliente (en Wall Street todo el mundo la utiliza aunque han perdido terreno contra DB2 de IBM) o porque usted piensa que es un buen servidor. Yo tengo las mias, así que decidí montarla bajo Fedora Core 6.

Sybase provee instrucciones precisas sobre como instalar su servidor bajo Linux. Lo que yo quiero mostrar aqui es como usted puede hacer una instalación que consuma poca memoria en una máquina en la cual solamente se hará desarrollo. Asi que aqui vamos:

A estas alturas me imagino que usted ya se bajó el código del instalador, sino detengase aquí y hagalo. También tenga a la mano el DVD de Fedora Core 6 para instalar ciertos componentes adicionales.

Instale las librerías de compatiblidad: Necesitamos montar las librerias de compatibilidad de glibc para Sybase y Java:
compat-libstdc++-33
compat-libstdc++-296
Y lo hacemos así (los RPM los puede conseguir en el DVD de Fedora Core 6):
[root@localhost ~]# rpm -ihv compat-lib*.rpm
warning: compat-libgcc-296-2.96-138.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
Preparing... ########################################### [100%]
1:compat-libstdc++-33 ########################################### [ 33%]
2:compat-libgcc-296 ########################################### [ 67%]
3:compat-libstdc++-296 ########################################### [100%]
[root@localhost ~]#

Cree un usuario dedicado para Sybase: Lo primero que hacemos es crear una cuenta nueva para la base de datos:

[root@localhost ~]# useradd -c "Sybase user" -b /opt/sybase -m -s "/bin/bash" sybase
Incremente los límites de memoria compartida: Fedora Core 6 tiene un limite bajo para la memoria compartida, así que lo cambiamos en el archivo /etc/sysctl.conf (kernel.shmmax = 67108864). Puede escribir: sysctl -w kernel.shmmax = 67108864

Desempaquete las fuentes:
root@localhost sybase]# cp /root/ase1500_xe_linux.tgz /home/sybase/
[root@localhost sybase]# su - sybase
[sybase@localhost ~]$ tar -xzvf ase1500_xe_linux.tgz
Modifique el ~/.bashrc del usuario "sybase": Agregando lo siguiente:
export LD_POINTER_GUARD=0
Por cierto, este tip lo tomé del excelente sitio web de Michael Peppler, autor del módulo de Perl DBD::Sybase y Sybperl.

Asegurese que X-Window funciona o use el modo del consola en el instalador
: Este paso requiere que usted puede abrir correctamente aplicaciones X en el servidor remoto; En el caso de una conexión desde una máquina con Linux eso ocurre automaticamente si se conecta con ssh (ssh -X. Sin embargo desde Mac OS X le recomiendo que instale el paquete X11 al menos que quiera usar la instalación de modo texto y arranque el terminal X desde allí). Y si eso no funciona entonces corralo con la opción '-c' como se muestra aqui:

[sybase@localhost ~]$ ./setup -console
InstallShield Wizard

Initializing InstallShield Wizard...

Searching for Java(tm) Virtual Machine...
........
Running InstallShield Wizard...

-------------------------------------------------------------------------------
Welcome to the InstallShield Wizard for Sybase Adaptive Server Enterprise
version 15.0 Update #1 with Encrypted Columns Option

The InstallShield Wizard will install Sybase Adaptive Server Enterprise on your
computer. Shut down all Sybase products, then click Next to begin installation.


The installer will now configure new servers with the following values. Please
click Next to proceed with the server configurations.

Adaptive Server

Adaptive Server Name LOCALHOST
Port Number 5000
Page Size 2k
Error Log /opt/sybase/ASE-15_0/install/LOCALHOST.log
Master Device /opt/sybase/data/master.dat
Master Device Size (MB) 30
Master Database Size (MB) 13
System Procedure Device /opt/sybase/data/sysprocs.dat
System Procedure Device Size (MB) 120
System Procedure Database Size (MB) 120
System Device /opt/sybase/data/sybsysdb.dat
System Device Size (MB) 3
System Database Size (MB) 3

Backup Server

Backup Server Name LOCALHOST_BS
Port Number 5001
Error Log /opt/sybase/ASE-15_0/install/LOCALHOST_BS.log

Monitor Server

Monitor Server Name LOCALHOST_MS
Port Number 5002
Error Log /opt/sybase/ASE-15_0/install/LOCALHOST_MS.log

XP Server

XP Server Name LOCALHOST_XP
Port Number 5003
Error Log /opt/sybase/ASE-15_0/install/LOCALHOST_XP.log

Unified Agent - Self Discovery Service Adaptor

Adaptor UDP

Unified Agent - Security Login Modules

CSI.loginModule.1.provider com.sybase.ua.services.security.simple.SimpleLoginModule
CSI.loginModule.1.controlFlag sufficient
CSI.loginModule.1.options.moduleName Simple Login Module
CSI.loginModule.1.options.username uafadmin
CSI.loginModule.1.options.password ******
CSI.loginModule.1.options.roles uaAgentAdmin,uaPluginAdmin
CSI.loginModule.1.options.encrypted false

CSI.loginModule.2.provider com.sybase.ua.services.security.ase.ASELoginModule
CSI.loginModule.2.controlFlag sufficient
CSI.loginModule.2.options.moduleName ASE Login Module

Siga adelante con las instrucciones que le muestra el instalador. Sin embargo si lo que usted quiere es solamente jugar un poco con SQL y no esta muy interesado en el desempeño, entonces no cree servidores XP (extended stored procedures), Historical (guardar historia de desempeño) ni el Monitor Server (para analisis de desempeño). El servidor de backup también es opcional sin embargo estoy seguro que el algún momento usted querra respaldar sus datos :).

Verifique que se puede conectar al servidor de base de datos (y cambiele el password lo antes posible, no lo muestro aquí):
isql –Usa –P -Slocalhost

Automatize el arranque y caida de Sybase ASE: El último paso es asegurarnos que podemos arrancar Sybase cada vez que el servidor es iniciado. Para ello les dejo un script en Bash que escribí con ese proposito, basandome en el original que venia con Sybase 11.9 (una versión para Linux ampliamente utilizada hace unos años atrás):
# sybase: Starts / stops the available Servers.
#
# chkconfig: 345 85 15
#
# description: This script will browse through the /opt/sybase/install
# directory and launch all servers configured from this location.
#
# Author: Jose V Nunez (josevnz@kodegeek.com)
# Source function library.
. /etc/rc.d/init.d/functions
# Load the correct Sybase env variables
. /opt/sybase/SYBASE.sh
if [ "$?" -ne "0" ]; then
exit $?
fi
if [ -n "${SYBASE}" -a -d "${SYBASE}" ]; then
PATH="${SYBASE}/bin:${SYBASE}/install:${PATH}"
export SYBASE PATH
# See how we were called.
case "$1" in
start)
echo -n "Starting Sybase ASE ... "
( cd ${SYBASE}/${SYBASE_ASE}/install ; \
unset LANG ; unset LC_ALL ; \
for run_server in RUN_* ; do \
su -c "startserver -f ${run_server}" sybase > /dev/null 2>&1 ; \
echo -n "${run_server} " ; \
done )
echo
touch /var/lock/subsys/sybase
;;
stop)
echo -n "Shuting down Sybase ASE configured servers: "
killproc dataserver
killproc backupserver
killproc monserver
echo
;;
status)
showserver
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: sybase {start|stop|status|restart}"
exit 1
esac
fi
exit 0


Grabe el archivo como '/etc/init.d/sybase' y después escriba lo siguiente:
[root@localhost ~]# chkconfig sybase
[root@localhost ~]# chkconfig --level 3 sybase on

Esta instalación utiliza los valores por omisión los cuales son más que suficientes para comenzar, además de que son conservadores en el uso de recursos. Ya estaré jugando con Sybase bajo Linux en los días que vienen, así que esten pendientes por este blog.

Si aún no se ha dado cuenta este no es un tutorial de como instalar Sybase bajo Linux o como optimizarlo, así que le recomiendo que utilice los enlaces mencionados anteriormente para aprender más.

Blogalaxia.com:sybase ase express, sybase, linux, fedora core, fedora core 6
Technorati.com:sybase ase express, sybase, linux, fedora core, fedora core 6

Etiquetas: , , , ,

miércoles, febrero 14, 2007

Instalando Fedora Core 6 ... ¡desde Mac OS X!

Después de bajarme las imagenes ISO de Fedora Core 6 me di cuenta que mi laptop no podia arrancar el CD que habia hecho con la imagen que utilcé para crear el DVD. Me parece rididulo bajarme los 6 CD por separado, asi que me decidí por el metodo de hacer la instalación por la red, copiando los contenidos del CD al disco duro.

No estoy seguro si Mac OS X soporta NFS, pero lo que si conseguí de una vez fué que puedo montar una página web para mi usuario o dar accesso por FTP, asi que copié el DVD a la carpeta de pagina web (/Users/josevnz/Sites/fedora6) e hice una mini imagen en CD (mucho más rapido que arracar por la unidad de disco flexible):

hdiutil burn boot.iso

Sin embargo algo no funcionó bien. Así que tuve que utilizar la interfaz gráfica de DiskTool para quemar la mini imagen de CD. Después fué solamente question de arrancar la vieja laptop con el CD y apuntar a la estación de trabajo Mac.

La interfaz de usuario es muy bonita, y Fedora finalmente reconoció mi tarjeta wireless (aunque no funciona aún pero estoy seguro que es un error estupido de mi parte). De nuevo mi laptop tiene vida nueva gracias a Linux. Pienso montarle la versión gratuita de Sybase 15.0 para Linux para probar un par de vainas que no puedo hacer en la Macintosh :)

Etiquetas: , , , ,

martes, febrero 13, 2007

En la senda de Mac OS X: ya paso la fiebre, vamos a hablar

DSC04018.JPG
¿OK, es tan bueno como dicen?


No estoy sólo con mis impresiones acerca del nuevo Microsot Vista y Mac OS X. En un artículo anterior les comentaba sobre mi decisión de migrar hacia Mac. Scott, el autor, enfoca su artículo más que todo para una persona que utiliza mucho a Internet, buscando información (como él, un escritor técnico). No habla nada de herramientas de programación ni herramientas de oficina.

Yo concuerdo con él en que Firefox para Mac no esta del todo listo, por ejemplo los Applet de Java aun tienen problemas (yo cada vez que trato de abrir Bloomberg Anywhere clavo al navegador un 50% de la veces), si se abre un PDF estos se bajan al escritorio y es entonces que son abiertos. Safari no hace eso y trabaja bien pero por otro lado no soporta "pestanas" como Firefox lo cual es bien fastidioso.

En cuanto a una aplicacion que reemplace Microsoft Office, no hay elecciones fáciles. ¿Porqué?:
  • Open Office requiere cierto trabajo para que funcione, entre eso instalar X11 = no gracias,
  • Office 2004 cuesta $400, y Office 2008 sale en el segundo trimestre del 2007 = no joda
  • AppleWorks, $69, asi que a la final un intermedio entre gratis y bueno sera la solución = que coño.
Sin embargo la prueba de fuego vino un poco después ese mismo día. Me decidí a instalar Fedora Core 6 en mi laptop HP y para al fin poner a funcionar mi tarjeta de inalambrica Linksys WPC54G. El problema es que cuando me estaba bajando la imagen ISO para el DVD la conexion se cayo (mejor dicho el enrutador se atoró) y me falto por bajar 400 MB de los 3 GB).

Que cagada, ¿a repetir todo desde cero? No, Geek que se respeta sabe que con el programa wget se puede recuperar transferencias de archivos interrumpidas (wget se trae solamente el pedazo faltante). Esto me dió la excusa de instalar el compilador GCC 4.0 para Mac OS X desde 'Apple Developer', parte del paquete llamado 'Xcode'.

Con mi conexión tardó como una hora en bajarme los 900 MB de herramientas de desarrollo; Luego me bajé lass fuentes de wget y lo instalé todo en '/Users/Shared' (en Mac OS X viene a ser el '/usr/local' de BSD).

Despues de alli fue coser y cantar:

auyan:~/Desktop josevnz$ wget -c
http://mirror.linux.duke.edu/pub/fedora/linux/core/6/i386/iso/FC-6-i386-DVD.iso
--15:02:18-- http://mirror.linux.duke.edu/pub/fedora/linux/core/6/i386/iso/FC-6-i386-DVD.iso
=> `FC-6-i386-DVD.iso'
Resolving mirror.linux.duke.edu... 152.3.220.162
Connecting to mirror.linux.duke.edu|152.3.220.162|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3,525,195,776 (3.3G), 445,226,600 (425M) remaining [application/octet-stream]

88% [++++++++++++++++++++++++++++++++++++++++++++++++> ] 3,121,820,428 64.94K/s ETA 1:41:13

Muy bien, el software GNU se lleva bien con la MAC :)

Blogalaxia.com:mac os x, linux, windows vista, wget, gcc
Technorati.com:mac os x, linux, windows vista, wget, gcc

Etiquetas: , , ,

martes, enero 16, 2007

Cuando Windows y Linux no dan la talla: ¿Que usar si usted no quiere hackear sino trabajar?

Mac Quatro Pro Monitor
Despues de 5ños usando Linux en el escritorio, finalmente tiro la toalla



Mi ya vieja laptop HP Pavilion de 5 años está llegando a su fin; A veces cuando la prendo hace ruidos raros (particularmente fastidioso es un pitido constante que viene quizas del disco duro), sus 512MB de RAM ya se muestran insuficientes a la hora de compilar aplicaciones de machos y su CPU ya no corre Eclipse lo suficientemente rápido.

En pocas palabras llegó la hora de renovar el arsenal.

Este Diciembre me entró un dinerito (después de un arduo trabajo, horas largas, fines de semana, etc) y decidí hacer una inversión en una maquina de escritorio:
  • Capaz de correr aplicaciones de manera decente en los próximos 5 años
  • Que podamos utilizar Veronica y yo
  • Que sea compatible con nuestros dispositivos perifericos (Ipod, Camara digital, scanner)
¿Y que combinación de maquina / sistema operativo utilizar? Empecemos por decir que Windows Vista quedó descartado porque:
Muy bien, Microsoft Windows queda fuera del juego por ser demasiado juguete para un desarrollador acostrumbrado a Unix, demasiado inseguro y demasiado costoso (nada le gana a grátis). No me ofrece nada que yo no pueda hacer en Linux, excepto jugar (y para jugar utilizo my Xbox 360, no tengo tiempo de lidiar instalado manejadores gráficos en una PC).

Entonces, justo cuando me decidí a armar mi máquina de ensueño para Linux me dí cuenta que estaba alienando a mi esposa. No me malentiendan: Veronica es una usuario de poder, que sabe programar en Flash, HTML con CSS y PHP, mantiene el sitio web de su compañia y sabe como instalar procesos bajo Cron. Sin embargo detesta tener que lidiar con Linux para tareas mundanas como escribir una presentación, sincronizar su Ipod, ver videos en Internet o escuchar MP3.

A la final me compré una Mac Pro a la medida, y creo que es la máquina más arrecha que he utilizado alguna vez en mi vida. Lo mejor del paquete es que el sistema operativo si está integrado de verdad con el hardware, ya que tengo UNIX y además de que plataformas como Java corren mejor.

No me malentiendan. Yo puedo hacer todo eso en mi laptop con Linux; Yo tengo los conocimientos necesarios para compilar un Kernel a la medida, instalar manejadores, configurar a mi servidor X-Window para utilizar un acelerador gráfico. incluso me certifiqué alguna vez como Red Hat Engineer y administré servidores en data centers en Venezuela, Los Estados Unidos e India.

Pero estoy cansado de jugar con el sistema operativo en el escritorio para que funcione. Estos días estoy más dedicado a programar aplicaciones de alto nivel y lo que quiero es poder con facilidad de uso.

Lo que quiero es una computadora que trabaje como debería. Sin sorpresas, sin problemas de rendimiento y que sea lo suficientemente poderosa como para poder aguantar el trote por unos 5 años más.

Mac Quatro Pro CPU
Una maquina para trabajar, no trabajar para la maquina...


No importan lo que digan, OpenOffice aún no está allí y esa es la plataforma de escritorio bajo Linux. Yo soy un usuario de Open Office Calc pero comparado con Excel en Microsoft Office simplemente es un juguete (el que haya programado con Macros que tire la primera piedra). Nada más ver a Veronica (y yo incluido) con los bugs de Open Office 2.0 es simplemente fustrante.

El soporte de Firefox para tipos multimedia en Linux es una broma de mal gusto, Flash no funciona bien. Instalar Java es sencillo pero hay que hacerlo.

¿Ven el patrón aquí? Linux es lo mejor como sistema operativo del lado del servidor, pero como plataforma de usuario de escritorio simplemente no llega, requiere mucho cuidado. Y en mi caso, hacer una inversión en una máquina que me dure los próximos 5 años requirió un salto al vacio.

Asi que me mudo a Mac OS X. Basado en FreeBSD, con un soporte sin rival para Java y sobre todo con una interfaz gráfica tan pulida que se burla en la cara de Gnome o KDE en cuanto a usabilidad.

Lo siento Linux, siempre tendrás un lugar super especial en mi corazón y te tendré montado en mis servidores en el trabajo y en mi casa para aplicaciones criticas. Pero mi escritorio y el de mi familia le pertenecen a Mac de ahora en adelante.

Ahh, si y Windows lo dejaré instalado en una de las laptops, nunca se sabe que cosa tendré que correr que sólo funciona bajo esa plataforma :)

Etiquetas: , , ,

domingo, noviembre 19, 2006

¿Como desarrollar un ERP usando software libre?

GNU

El día de hoy me llegó un correo electrónico muy particular. Todo (excepto el nombre del autor) permanece igual:

Hola Jose Vicente,
Antes q nada kiero presentarme, mi nombre es XXX YYYY, soy Ing en Informatica, vivo en QQQQQ-Venezuela.

Como preambulo te comento q estoy pronto a emprender un proyecto bastante grande en relacion a mi actual software ERP. La tarea q deseo llevar a cabo es convertir mi sistema en multi plataforma, optimizar el codigo, cambiar el enfoke actual q tiene sistema (desde el punto de vista de procesos) y de ser posible desarrollarlo bajo licencia de codigo libre. En fin, todo lo q conlleva la reestructuracion total de un sistema, son tantas las cosas q deseo agregar, mejorar, kitar, reparar q es probable q al final termine con un producto completamente nuevo en lugar de uno renovado xD.

Ahora bien, dicho esto, te explico la razon de mi mail. La fase actual en la q me encuentro es en la buskeda de las herramientas ideales para llevar a cabo mi proyecto. He estado investigando sobre varios lenguajes, bases de datos y servidores web todos bajo licencia de codigo libre. Mi consulta es, basado en tu experiencia q me recomiendas usar ??

De pronto necesitas mas detalles de lo q hace mi software en su version actual y lo q deseo q haga despues de rediseñarlo para darme una respuesta acertada. Bueno te comento q podemos conversar por MSN Messenger (XXXX@hotmail.com) o por Yahoo Messenger (XXXX@yahoo.com) asi de plano me preguntas lo necesario para aclarar todo.

Gracias de antemano por tu tiempo y los consejos,

Atte,

Albert N.

PD: Te agregue al Yahoo Messenger.
Bueno, es una pregunta realmente compleja. Los sistemas ERP son más que una aplicación especifica un sistema complejo y compañias con software propietario hacen millones de dolares vendiendo procesos, más que un simple programa.

Yo en realidad no se mucho de estos programas (no los he usado tampoco), pero sin embargo creo que hay varios factores que definiran las herramientas que uses:
  • ¿Son compañias que tienen un departamento de tecnología propio? (las compañias pequeñas caen en esta categoría). Si es así, una solución compuesta de varios componentes Open Source es factible
  • ¿Utilizan Linux, Windows? Eso definitavemte afectará la selección de herramientas. Por lo general las tiendas que usan sólo Windows no van a tener problemas usando código cerrado.
  • ¿Es una aplicacion web o cliente gráfico complejo? Dependiendo que tan sofisticada quieras hacer la interfaz gráfica eso definirá el lenguaje o plataforma (olvidate de quienes te digan que AJAX resuelve todo, es por una razón que tu tienes aplicaciones de escritorio :))
Este tipo de información no es fácil de conseguir, sitios como Forrester te cargan casi $1000 por darte una visión de como está ese mercado. Otros te dan una pista de que utilizar.

Del mundo Open Source, yo he leido cosas muy buenas sobre Compiere (escrito en Java) En el mundo comercial, SAP es el gorilla de 800 libras. Si quieres saber que herramientas usar, quizas quieras ver los requerimientos de estas herramientas.

La invitación está abierta a quienes quieran participar, ¿Que software de ERP es el mejor, propetario u Open Source?


Buscar en Technorati: , , , ,
Buscar en Blogalaxia: , , , ,

Etiquetas: , , ,