martes, 29 de abril de 2008
PAZA - Ecomed
Es un curso certificado que se da en la fundacion Ecomed y que esta destinado a todos los aficionados a la vida en zonas agrestes (en este caso, toda zona que este a mas de dos horas de un centro de primeros auxilios).
El curso dura 2 fines de semanas completos, sabados y domingos desde la mañana a la noche y explica el mejor metodo para socorrer a personas ante diferentes situaciones en el que pueden perder la vida. Dan las herramientas para casos puntuales, pero no siempre vamos a tener a mano todos los elementos necesarios, por lo que buscan desarrollan el sentido comun de cada individuo para que pueda deliberar en situaciones complicadas, con las herramientas que posee.
Es muy recomendable que todo aficionado a la naturaleza haga este curso y tenga siempre un botiquin a mano cuando sale a aventurarse. La fundacion es muy seria y el curso esta dado por gente de primer nivel, pertenecientes a la cruz roja y con experiencias en casos como el de la AMIA y LAPA.
Les dejo los links:
http://www.ecomed.org.ar/index.html
Hay dos cursos, el de PAZA es para aficionados y el CSE es el de socorrista (pro):
http://www.ecomed.org.ar/template.asp?F=cursos/paza&ID=paza
Saludos.
lunes, 28 de abril de 2008
Tabla Ascii
http://www.asciitable.com/
Es una tabla ascii, html, hexa y xml.
Es util, en verdad que si. Lastima que la tabla en si es una imagen y no texto, pero bueno, si consigo otra mejor les paso.
Hasta ahora, con esta me las he ingeniado bastante bien :D
Saludos.
De pie, se habla del VI
VI, de visual editor, que no tiene nada de eso, pero si lo comparamos con el ED da muchisimo mas, es (sin duda) lo mas practico que hay para ediciones rapidas sobre un archivo.
Hay detractores de la herramienta, que prefieren usar el notepad :P (el vi de Microchot) y fanaticos adoradores (como Ariel) que son capaces de agregarle plugins de autocompletado :P
El tema es que vayas al servidor unix/linux que vayas, siempre va a haber un vi a mano. Probablemente no tengas un emacs, un mcedit o algo parecido, pero cuando conozcas a fondo el vi, ya no vas a necesitarlos (aunque el emacs es un editor que parece practico y que jamas entendi).
Necesitas un reemplazo en todo el archivo? solo necesitas escribir al estilo sed:
1,$ s⁄(expresion)⁄(reemplazo)⁄g y hace un reemplazo en todo el texto en donde encuentre la linea.
1, $: es para decirle, de la linea 1 a la final... Una masa, poder especificar las lineas en donde queres el reemplazo!!!!!!
⁄g para que sea global.
Queres tirar un comando pero no salir: hacete un !lo que quieras
Queres los numeros de linea? alguna otra cosa? fijate como podes usar el set
Queres buscar hacia atras ?, hacia adelante /
Queres hacer un reemplazo de una palabra cw, avanzar por palabra w, avanzar hacia atras por palabra b.
Ir al final de una linea? $, al principio? I
Es MAS FACIL de usar que el Winning Eleven!!!!! y una vez que lo aprendes, no lo dejas mas!!!!!
Ademas, tenes la posibilidad de caretearlo frente a todo aquel que no lo sepa y dejarlo con cara de asombro!!!!! (con que poco por favor, con que poco!!!! cuantas satisfacciones me ha dado JAJAJA)
Aca tienen un listado de los comandos que soporta:
http://www.unav.es/cti/curso-c/vi.html
Realmente, disfrutenlo, vale la pena; y tomenlo como un juego ;) asi es mas divertido aun
Saludos.
viernes, 25 de abril de 2008
Python y lenguajes de scripting
http://highscalability.com
Python existe hace bocha y es 10 veces mas facil de leer que un codigo perl (una comparacion mas justa, un parseo y trabajo con strings bien hecho en python es mas facil de leer que un parseo y manejo de strings hecho en perl :D)
Hace tiempo que los lenguajes de scripting estan empujando con mas fuerza con ganas de entrar al mercado de aplicaciones comerciales… Y ERA HORA!!!!
Python es uno de los mas avanzados al respecto (especialmente en Juegos, Aplicaciones matematicas y de todo tipo jeje)
Antes estaba el código maquina y se paso a assembler
De assembler, se paso a C y otros
de C se pasa a algo como java, .NET
De Java y .NET se pasa a ?
El proximo nivel de abstraccion podria ser lenguaje scripting, quien sabe.
Todo sea por tratar de decirle a la maquina en el idioma mas humano posible "che! negra, dame un listado de pedidos del usuario ordenado por categoria que no esten vencidos, leemelo y mandamelo a imprimir en un formato bonito de 3 columnas"
Hay una charla muy copada de Neil Ford y Fowler donde hablan de la aparicion de Ruby on rails y otros, y de quitar el ruido que hay en los lenguajes. bah! en realidad habla de Domain Specific Languages (DSLs) y demases, pero a mi me gusto interpretarlo asi (jeje)
http://www.theserverside.com
Desde hace tiempo, para facilitar un poco a la programacion en C++ existe TCL/TK que se integra perfectamente con el lenguaje.
Ahora aparecieron para java cosas como el feature de scripting de la java 1.6 (creo que se basa en rhino), jython para integrarlo con python (Gracias Alecu por bombardearme con idea pythonescas), jruby que viene a ser un ruby y algo que puede ser groso: Groovy, que me presento un amigo :D (gracias Gon!)
No se cual va a ser el que pegue mas fuerte, pero va a estar interesante acompañar el proceso :D (si es que realmente hay o se da alguno)
Si les cabe el tema de python, miren estos videos:
http://plone.org/about/movies
En especial el de Better Web APP development.
Igual, es un poco injusto al hablar de la integracion de plone (BDOO hehca en python), comparada con la de ruby on rails (BD con estructura de tablas especifica).
De paso no esta mal darse una vuelta por el sitio de plone :P
Si realmente les cabió el tema python, les recomiendo el sitio de unos amigos: http://www.python.com.ar/moin
Son los chicos del Pyar (grupo argentino de usuarios de Python). Son gente muy copada y grosa.
Diviertanse :D
Saludos.
Grid Computing
Parece que esta tratando de entrar en la conciencia del mercado sistemico, desde el desarrollo.
Una de las bases de todos estos productos es que los nodos se agreguen dinamicamente con mucha facilidad.
GridGain
http://www.gridgain.com/
Realmente permite hacer un grid, pero a costo de que la aplicacion este diseñada y codificada especificamente para procesar en un Grid.
Requiere un alto conocimiento tecnico y no es sencillo darle a programadores semi senior y junior la tarea de decidir que Split de tasks hacer. Es probable que el lider tecnico/arquitecto de software tenga overhead en un grupo de desarrollo que intenta construir con esta herramienta, por estar decidiendo a cada rato que tareas seran spliteables y cuales no conviene splitear.
No es transparente al codigo, por lo que no es facil "portear" aplicaciones viejas a un esquema Grid.
Aun asi, el producto es uno de los primeros que veo que hacen Grid en cuanto a procesamiento y no unicamente datos.
Tiene unos screencast muy copados, para el que no quiera leer demasiado. Merece la pena ojearlo.
Terracotta
http://www.terracotta.org/
Terracota es un Objecto Broker. La idea es dejar de pensar en RMI y comunicacion entre procesos remotos para comenzar a pensar en aplicaciones simples en el que la VM hara el broadcast de obejtos entre distintos nodos (EJB, te comes los mocos!!!! excepto el fabuloso MDB, claro).
Tenes una doble VM, donde una es el worker y esa publica a otra que se sincroniza con los demas nodos. La VM sincronizada despues publica los objetos a la worker.
Me llego un comentario que Sun piensa lanzar un feature parecido en alguna version de la VM, pero Sun es lento con los cambios.
PRO: Es trasparente a la aplicacion y se integra con spring. Si use Spring, mi codigo no deberia verse muy impactado. No es un Grid de procesamiento ni de datos, sino que es un productor-consumidor-broker de objetos. Eso hace que los objetos de un nodo, se vean en TODOS los nodos con la misma data.
Es una de las mas difundidas. Existen casos de exito de esta herramienta, porque ya hay desarrollos que la utilizan.
CONTRA: El nivel de transacciones entre VM's es altisimo, asegurar el sincronismo requiere un interesante trabajo de testeo (aun no confio mucho en el sincronismo de la herramienta).
Oracle Tangosol Coherence
http://www.oracle.com/technology/products/coherence/index.html
Es un especie de SAN. Usa un esquema de cacheo de datos y el desarrollador ve el acceso de objetos como la obtencion de entries de un Map.
Es un Grid de datos, no de procesamiento (por mas que los datos sean objetos). Permite que en varios nodos se vean los mismos registros con manejo de failover.
Para aplicaciones web es "semi-trasparente" ya que la persistencia de la sesion se maneja en una memoria "que parece compartida" que es accedida por todos los nodos del Grid.
Realmente es una ayuda al balanceo, ya que puede eliminar el schema de sticky sessions.
La persistencia se hace completamente en memoria, por lo que si se caen el nodo primario y el de backup, pueden perderse datos.
PRO: Es memoria, es configurable, es un grid de datos.
CONTRA: Para aplicaciones comerciales es pago, requiere codificacion para publicacion de objetos que no sean una simple HTTPSession, no es tan facil de configurar como parece. Oracle aun lo esta manoseando.
GigaSpaces
http://www.gigaspaces.com/pr
Aun no lo pude observar, sinceramente. En cuanto pueda, le pego una ojeada.
Enjoy it.
Saludos.
Paginas utiles para un Quick Start
La verdad, es que no hay tiempo suficiente para aprender todo y si bien hay screen casts y walkthroughs, uno no conoce bien los "fwks" hasta que se sienta a codificar algo que deba solucionar una necesidad REAL. Es por eso que existe gente que nos da esqueletos y ejemplos de codigos comunes, para ayudarnos a solucionar rapidamente problemas con los "fwks" existentes. Aca les paso dos ejemplos de buenos tipos (:P):
http://appfuse.org/display/APF/Home
Esta siempre es la misma aplicacion, pero desarrollada con fwks diferentes. No es lo suficientemente grande para hacer una prueba de carga, pero da una idea de tiempos y funcionalidad. Obviamente, el codigo con diferentes versiones es muy apreciado.
http://www.java2s.com/
Ejemplos de java a necesidades comunes.
Necesitas un ABM? Necesitas un Hola Mundo? Necesitas usar JBiX y no sabes por donde empezar? Bueno, bajate un ejemplo, correlo y despues contame...
Realmente son de ayuda ante problemas puntuales y sirven para dar un vistazo rapido a diferentes soluciones de un mismo problema.
Enjoy it!
Saludos.
jueves, 24 de abril de 2008
Blades Opteron
Los Blade Opteron Dual Core tienen problemas de sincronizacion entre los diferentes cpu's por lo que hacen que la hora del equipo avance mas rapido de lo normal y se vaya desfazando gradualmente.
Para corregirlo hay que tocar un parametro en el inicio de los sistemas (a mi me toco tocar en Red Hat's AS4 el /boot/groob/menu.lst que es un link al groob.conf) y rebootear el equipo.
Advisory: (Revision) HP ProLiant Servers Using Dual-Core or More Than One Single-Core AMD Opteron Processor May Experience Incorrect Operating System Time When Running Systems That Use the System Time Stamp Counter
JPA
JPA es un estandar de persistencia Java fijado por Sun, se basa en Annotations y permite que el framework de persistencia varie de forma transparente, siempre que uno se ate a los Annotation estandar.
Todo el que haya trabajado con EJB 3.0 ya ha usado JPA en una medida.
Introduccion a JPA en el tutorial de java:
http://java.sun.com/javaee/5/docs/tutorial/doc/bnbpz.html
Actualmente Oracle Toplink e Hibernate 3 soportan JPA.
Nota: Hibernate 3 aun tiene problemas en su EntityManager para detectar Annotation de Hibernate. La Annotation Entity es completamente ignorada por el framework, pero no las de Proxy. Es conveniente, y casi una obligacion, usar siempre las Annotations estandar.
Cuando tenga mas data interesante voy a charlar mas del tema...
Saludos.
CXF ya es Top Level Project!!!
CXF es un framework para el desarrollo de WebService en JAVA rapido, completo y facil de aprender. Soporta SOAP y Rest.
CXF es una mezcla de XFIRE y algun desarrollo de jakarta. Aun esta en el Apache Incubator, pero ya fue graduado a Top Level Project!!!
http://incubator.apache.org/projects/cxf.html
Y si ven el aviso del 16/4:
http://www.nabble.com/CXF-has-graduated!-p16730373.html
Esto es una gran noticia para todos aquellos que opinaban que Axis 1.4, Axis 2 (en especial), Spring Web Service, JAXRPC y las soluciones del mercado en general eran decepcionantes.
Saludos.
main( )
Y tenia que ser asi nomas :P
Siendo sistemico no podria comenzar un blog de otra forma.
Vamos a ver hasta donde llego con este blog y si tiene un poco mas de suerte que mi lastimoso space de msn :P
La idea inicial es ir posteando los problemas o cosas nuevas que vaya encontrando en el entorno profesional, pero no voy a tardar en agregar algunas cosas personales.
Saludos.