18 November, 2009

Links, ULTIMO POST, actualizen sus rss feeds

( NO es el ultimo post de este blog, solo es el ultimo post con compilaciones de links )

Como ven, la mayoria de los links en las compilaciones anteriores estan en ingles. Asi que no tiene mucho sentido que los postee aqui.

Como habia dicho antes, estos links son paginas que yo he leido y los compilo para poder tener un historial, esto puede serme util con el tiempo. Junto con los links tambien pongo un poco de informacion o sobre el contenido o sobre el 'por que' seria util que alguien lo leyera.

Aqui esta el primer post de esta compilacion en ingles
Asi que si les interesa actualicen sus links de feeds o suscribanse al blog en ingles si les parece interesante.

Espero que pueda servirles si estan leyendo, caso contrario, este no es su blog y ya cierren de una vez esta ventana :D

24 October, 2009

Links, Oct 2009 - Adios Adobe Flash !

HTML5 = XHTML++ + SVG + Canvas

SVG: Scalable Vector Graphics. Mediante etiquetas que van como parte del codigo html (empotrado o como recurso) permite dibujar cualquier cosa que pueda representarse con vectores :D, siendo vectores esto permite cambiar el tamanhho del grafico sin afectar la calidad. Lo bueno es que todas las formas/figuras son etiquetas html validas, lo que significa que pueden reaccionar ante eventos, pueden tener estilos, etc ...

Canvas: Es una etiqueta HTML que representa una porcion de grafico manejable a travez de una api Javacript. A diferencia de SVG, la api permite dibujar formas/figuras pero es grafico bitmap a diferencia de SVG

Tanto Canvas como SVG nos permiten hacer cosas similares a lo que Flash nos permite. La diferencia grave seria el soporte de buenos editores, pero eso es cuestion de tiempo. Ya a comienzos de anho se hizo un gran buzz sobre lo que HTML5 lograra. Google esta muy interesado en el tema ya que aboga por una web completamente libre (a diferencia de las licencias sostenidas por Adobe por el uso de Flash) y promueve su uso tanto en su navegador como en el resto, incluido Internet explorer, por el que trabajaron tambien para llevar el soporte de esta tecnologia en el navegador mas usado.

Asi que lo interesante es que aun hoy ya es posible usar tanto HTML5 junto con Canvas y SVG en todos los navegadores, incluido en Internet Explorer. Asi que disfruten experimentando :)

Introduction to HTML 5
Google I/O 2009 - Google's HTML 5 Work: What's Next?
SVG in IE and at google.
SVG Web Library and Open Web Advogacy
Beyond XHTML

La especificacion de HTML5 y de SVG seria nuestro punto de partida.
Mozilla y Opera tienen buenos tutoriales sobre Canvas tiene un Tutorial de Canvas
Tambien hay varios recursos utiles sobre SVG en el sitio de mozilla

23 October, 2009

Links, Octubre 2009 [2nd]

Edicion de imagenes inteligente

Seam Carving es un algoritmo de resizeo que encuentra las zonas menos significanes de las imagenes para descarlastas al cambiar de tamnho sin cambiar el aspecto mismo de la imagen. Hay una implementacion en Javascript ! para este algoritmo usando canvas, no se Javascript es muy potente, o Seam Carving es muy simple :)

Patch Match es un algoritmo que busca correspondencias dentro de la imagen para producir cambios inteligentes. Es usado en la nueva version de Adobe Photoshop, este tiene mas funcionalidad y se ve mucho mas interesante.

Efecto social en la aplicacion de la informatica

Discussion: Whither Journalism ? Una discusion entre los magnates de las noticias y google sobre los cambios en el modelo de distribucion de la informacion buscando entender la mejor manera de acomodar el modelo de negocio correspondientemente. De la discusion me llamo la atencion esta frase: "Nobody has the right to exist in business, it's that simple"

So You Want To Be A Programming Rock Star? Otro video donde una companhia prueba que la ensenhanza impartida por el tipico profesor no es escalable y que hay formas de automatizar tambien a los profesores.

Cloud computing

Dos videos Escuchandole a Larry Ellison (Oracle CEO) hablando de cloud computing, por supuesto, a el no le gusta la idea de que todos usen la mesa grande de Google (big table) por que todavia quiere vender mas sus bases de datos a precios modigos como siempre. Su intento de dejar en ridiculo el concepto en la mente de la gente sobre cloud computing por lo menos te va dar un momento de risa :)



NOTA:
A todo esto, con esta tendencia de automatizar todo, como se lidia contra maquinas reemplazando tu trabajo ? Que nuevas fuentes de trabajo se produciran para contrarestar los despidos por que automatizaron tu trabajo ?

Book review: Java Puzlers

Mientras mas conozco Java, mas me arrepiento ? No, no era asi. En realidad, este fue el tercer libro de la trilogia obligada para programar en Java, despues de Concurrency in Practice y Effective Java.

El libro esta expuesto en forma de pequenhas porciones de codigo, y luego que se hace la pregunta, what does the program print ?, por lo general nuetra respuesta va a ser erronea siempre ( esa es la idea del libro ), luego se pasa a analizar el codigo en detalle, con cada explicacion se aprende 'mucho' del lenguage java, de buenas practicas, de malas practicas a evitar y existe bastante humor en el libro asi que por lo menos aunque me frustro mucho no resolver muchos de los puzzlers antes de leer la explicacion por lo menos me diverti en el camino.

Con este tercer libro leido sobre Java mismo, creo que no hacen falta mas, quiza algun buen libro de injeccion de dependencia estaria viendo todavia, pero hasta ahi. Con todo esto me convenci la importancia y necesidad de adoptar la postura de programacion poliglota.

A cada problema, la solucion apropiada, no todo es un clavo, y no todo se clava. Hay otros lenguages que despues de acostumbrarse a usar y estudiar un poco logran expresar mucho mas claramente la solucion a problemas que en el lenguage Java tomaria mas tiempo y cuidado producir como bien lo demuestra este libro con cada problema y solucion 'aparentemente' simple y clara que presenta, sin embargo siempre hay algo que no conocemos de la plataforma Java que termina produciendo resultados no esperados.

Este libro se hizo con la idea de evitar que escribamos codigo propenso a errores en Java, pero aun asi, ya tengo Groovy en la mira y con mas razon despues de leer este libro. De todas formas, si pueden leerlo, no solo no es para arrepentirse, sino continua ayudando nuestra vision como programadores, por ejemplo de saber NO asumir nada a propositos de hacer bien las cosas.

De nuevo, los autores de este libro trabajaron en el desarrollo mismo de la plataforma java.

Book review: Java concurrency in practice

Objetos mutables e inmutables, lock, volatile, bloques sincronizados, deadlocks, operaciones atomicas, thread-safe, mecanismo wait/notify, cancelacion, pool de hilos, ejeutores, re-entrant lock, semaforos, colas bloqueantes, condiciones de carrera, throughput, responsiveness, scalability y muuuchas otras expresiones, las puedes explicar todas ?

Bueno, con los mil 1 un cores que nuestros procesadores tienen por hoy, como programador uno tiene que saber aprovechar ese potencial, y la unica manera es haciendo que nuestra aplicacion maneje concurrentemente las tareas. Si no te es posible explicar cada uno de las palabras del parrafo anterior en un contexto real es muy probable que existan errores en tu aplicacion que dependa de manejo de hilos y concurrencia de los que no estas al tanto.

Este libro es la palabra y punto de referencia para explicar cada uno de esos puntos. Yo creia que sabia programar bien en Java y que usar hilos era algo trivial, pero en realidad es mas complicado de lo que parece, peor aun, es peligroso no saber bien esta parte por que la aplicacion pudiera comportarse mal aleatoriamente sin que podamos reproducir el error facilmente. Y aunque nosotros no manejemos explicitamente hilos en nuestra aplicacion, hay ciertos puntos que nos combiene entender de todas formas ya que el contenedor donde esta corriendo nuestra aplicacion o swing mismo esta haciendo uso de hilos.

Aunque este parrafo es tema para otro post para el cual tengo que investigar baste mas, despues de leer este libro, me puse a buscar alternativas a esta forma tipica de manejar concurrencia como en este libro se presenta, y me tope con lo que Erlang es y como derivo en el lenguage cierto modelo de programacion basado en actores, o tambien Clojure que implementa completamente STM, son digamos 2 paradigmas completamente diferentes para el manejo de concurrencia aparte del tradicional basado en locks y sincronizaciones de wait/norify manuales. Tanto Scala como Clojure, por ser funcionales estan inherentemente libres de los problemas que estan presentes en la parte de concurrencia de java, voy a estar probando de estas cosas.

De todas formas, este es un obligado despues de Effective Java y Java Puzzlers. Los escritores son unos capos

Tim Peierls, Joshua Bloch, Josepth Bowbeer, David Holmes, Doug Lea

La lectura no es nada aburrida, enrriquece tu vision como programador, no solo dentro del ambito Java ya que la informacion presentada te permite entender las implicancias de la programacion concurrente.

Have fun !

Book Review: Effective Java - Joshua Block

Este es uno de los 3 libros obligados para todo programador Java, siendo Concurrency in practice y Java puzzlers los otros dos.

Para el que esta en sus primeros anhos de Java este libro te permite ver que programacion en Java no es trivial y no es facil y que hay mucho mas que lo que el ( aparentemente completo ) tutorial de java puede ensenhar. Sin embargo, la informacion proveida en forma de guidelines y best practices para cada punto que trata te da un ojo entrenado para detectar potenciales problemas en un projecto Java y crear codigo menos propenso a errores.

Se cubre practicamente cada aspecto de la programacion que uno usaria en su dia a dia, incluyendo manejo de creacion/recoleccion de objetos, disenho de buenas APIs, manejo de excepciones, se habla de los nuevos features de Java 5, todo explicando en forma de guidelines concisos que proveen un contexto real para cada item que trata sin dar largas y aburridas explicaciones.

Joshua Block, el autor del libro y co-autor de los otros libros mencionados mas arriba, trabajo implementando varias funcionalidades para la paltaforma Java misma y es ahora un "chief Architect" en Google

17 October, 2009

Historico de aprendizaje

Corriendo ya mas de 5 anhos de aprender todos los dias algo nuevo y en mi afan de aprovechar al maximo la oportunidad de aprender nuevas tecnologias, conceptos, puntos de vista, etc. que a toneladas de bytes por minuto se cargan en Internet encuentro muy util comenzar a mantener un historico de cosas que llamaron mi atencion y que de alguna forma contribuyo en mejorar tanto mi actitud como habilidad profesional o que valio un momento de risa o admiracion :D


Es por eso que inspirado en otros blogs voy a empezar a mantener un constante posteo de actualizacion sobre cosas que me ayudaron a aprender algo util o a visionar mi carrera de forma diferente. Tambien muchas veces me encontre queriendo recordar algo que estoy seguro haberlo visto pocos meses atras y sencillamente no recordaba el nombre de la tecnologia o concepto o pagina y hacer esto seria como tener un bookmark mas personalizado.
Y por su pueeesto ... me va a servir para ver semanalmente que 'rayos' estube haciendo tanto tiempo en internet :)

En vez de mantener documentos privados, creo que puede ser util para otros conocidos del area o companheros hacerlo publico y quiza se convierta en algo mas util todavia si todos pudieran hacer lo mismo

Basicamente el proposito seria colocar el link de la pagina, video o podcast y comentar muy brevemente quiza hasta sin necesidad de ser objetivos, agrupar los links dentro de ambitos de interes, por ejemplo, Programacion, disenho, etica, Geek, Comic...

Entonces paso ya los primeros links para explicar a lo que me refiero y ni bien vaya apareciendo nuevas cosas voy a compilar un post breve. No justamente voy a postear cosas del momento, sino cosas de anhos atras que siguen siendo de interes.

Java

Deep Dive: JDK 7 con Danny Coward. Top 5 de nuevas funcionalidades para JDK 7

The Positive Legacy of C++ and Java por Bruce Eckel. Ayuda a entender desde una amplia perspectiva el rol del JVM a futuro junto con decisiones de disenho del lenguage Java y C++

Disenho de Sistemas, API

The origins of Linux - Linux Torvalds, gravado 10 anhos despues de la creacion de Linux. Fue la primera vez que escuche a Linus hablar y es 'realmente' comico este tipo. Refiriendose al disenho de software dijo que "Debe ser tan simple como para mantenerlo en la mente, caso contrario es un mal disenho".

How To Design A Good API and Why it Matters por Joshua Bloch. El titulo lo dice todo, y ese tipo no habla devalde. Las pautas marcadas en esta charla realmente ayudan a mejorar la calidad del producto en el que estemos envueltos.

-- Atribuiciones

  © Blogger template 'Minimalist A' by Ourblogtemplates.com 2008

Back to TOP