Translate

miércoles, 22 de agosto de 2012

El blog de Carlos Ble

Quiero recomendar este blog sobre tecnología y agilismo. Hay muchos post muy claros tanto en Ingles como en castellano.

Dejo el link:
http://www.carlosble.com/

Savepoint


Cuando jugábamos algún juego de aventura había una luz, una bandera o un objeto medio raro que indicaba que si moríamos en ese nivel no tendríamos que hace de nuevo todo el nivel sino que comenzaríamos de ese punto.


Algo así son los savepoint de las bases de datos, si vemos la wikipedia podemos leer:

"Un savepoint (en español, punto de recuperación) es una forma de implementar subtransacciones (también conocidas como transacciones anidadas) dentro de un sistema gestor de base de datos relacional indicando un punto dentro de unatransacción de base de datos que puede ser "rolled back" (devuelta) sin afectar a cualquier trabajo realizado en la transacción antes de que el punto de recuperación fuera creado. Varios savepoints pueden existir dentro de una transacción individual. Los Savepoints son útiles para implementar recuperación de errores complejos en aplicaciones de base de datos — si ocurre un error en el medio de una transacción de múltiples sentencias, la aplicación puede ser capaz de recuperarse del error (devolviendo, "rolling back", hasta un savepoint) sin necesidad de abortar la transacción completa."

Pero como puedo utilizar este punto de recuperación? En Postgres, es como esta definido en el siguiente ejemplo:

BEGIN;
    INSERT INTO table1 VALUES (1);
    SAVEPOINT my_savepoint;
    INSERT INTO table1 VALUES (2);
    ROLLBACK TO SAVEPOINT my_savepoint;
    INSERT INTO table1 VALUES (3);
COMMIT;

En el ejemplo el insert con valor 2 no se aplica dadoque hace un rollback al savepoint my_savepoint.

En Oracle es muy similar veamos otro ejemplo:

DECLARE
   emp_id        employees.employee_id%TYPE;
   emp_lastname  employees.last_name%TYPE;
   emp_salary    employees.salary%TYPE;
BEGIN
   SELECT employee_id, last_name, salary INTO emp_id, emp_lastname,
     emp_salary FROM employees WHERE employee_id = 120;
   UPDATE emp_name SET salary = salary * 1.1 WHERE employee_id = emp_id;
   DELETE FROM emp_name WHERE employee_id = 130;
   SAVEPOINT do_insert;
   INSERT INTO emp_name VALUES (emp_id, emp_lastname, emp_salary);
EXCEPTION
   WHEN DUP_VAL_ON_INDEX THEN
      ROLLBACK TO do_insert;
      DBMS_OUTPUT.PUT_LINE('Insert has been rolled back');
END;
/

Luego de correr esta instrucción podemos ejecutar cualquier instrucción y romper todo. Que tenemos un punto donde podemos volver.

lunes, 20 de agosto de 2012

Otro movimiento de Oracle que genera desconfianza...


El mundo del open source ve con desconfianza a MySQL desde la compra de Oracle a Sun. Nuevamente hay controversias dada la desaparición de los paquetes de prueba (test cases) y otras partes en la última versión de MySQL 5.5.27. Lo que indica el esfuerzo de oracle de cerrar la base de datos MySQL.

La cuestión se remonta a un descubrimiento reciente que la última versión de MySQL tiene correcciones de errores, pero sin tener ni una sola algún caso de prueba asociados con ella. Eso crea todo tipo de problemas para los desarrolladores que no tienen ninguna garantía de que el problema ha sido resuelto.

Para los observadores, estos movimientos no se ven como simples descuidos. Más aún, parece que Oracle está haciendo sus pruebas de revisión y las historias de código cerrado.

Espero que esto sean solo rumores; MySQL es una gran base de datos, y su mayor fuerza es la comunidad si Oracle destruye esta comunidad el futuro de MySQL es incierto.


jueves, 16 de agosto de 2012

Argentina 70 en el ranking mundial de innovación

Leyendo el diario me encuentro con esta noticia:


El Ranking Global de Innovación 2012, elaborado por la Organización Mundial de la Propiedad Intelectual de las ONU, y la escuela de negocios INSEAD, con sede en Francia, clasificó a 141 países según su capacidad de innovación, o habilidad para inventar nuevos productos. Es un indicador clave: en una economía global basada en el conocimiento, donde las empresas que inventan nuevos productos a menudo tienen un valor que supera al PBI de países enteros, la innovación es un factor de crecimiento cada vez mayor.

Según este ranking, los diez líderes mundiales en innovación son Suiza, Suecia, Singapur, Finlandia, Inglaterra, Holanda, Dinamarca, Hong Kong, Irlanda y Estados Unidos. No sólo se toma en cuenta las nuevas patentes registradas por cada país -EEUU está muy por delante del resto- sino también las inversiones en investigación y desarrollo, y el clima empresarial y regulatorio.

Ningún país latinoamericano, salvo Chile, figura entre los 50 líderes mundiales en innovación. Chile está en el puesto 39, seguido por Brasil (59), Colombia (65), Uruguay (67), Argentina (70), Perú (75), Guyana (77), México (79), Paraguay (84), Panamá (87), El Salvador (93), Ecuador (98), Guatemala (99), Nicaragua (105), Honduras (111), Bolivia (114) y Venezuela (118) que sigue cayendo en picada y cerca del final de la lista, debajo de Zimbabue, Lesoto y Uganda.


...


Señaló que "los países de bajo desempeño latinoamericanos están mejorando, pero el resto del mundo está avanzando más rápido y en Asia mucho más''.

Y el autor del articulo indica de forma muy acertada: 

"Con respecto a la baja calificación de los países latinoamericanos, se debe en gran medida a que la mayoría de los presidentes se resiste a reconocer que la región se está quedando atrás en calidad educativa, ciencia y tecnología. Prefieren no hablar de estudios como el Ranking de Innovación Global, o los tests internacionales PISA de estudiantes de 15 años, o de las estadísticas de la Oficina de Patentes y Marcas Registradas de EEUU, que muestran que Corea del Sur sola registró 13.200 patentes el año pasado, mientras Brasil sólo registró 250, México 120 y Argentina 50."

Coincido con el autor creo que en gran parte el problema bien de los gobiernos que no invierten en educación y en innovación. Pero echar la culpa al gobierno es muy simplista y muy argentino. Todos somos culpables; la industria debería invertir un poco los dolares que llegan de la exportación de software (por ejemplo) y invertir en capital humano; generar productos innovadores que son una inversión más productiva que tener dolares bajo el colchón. La facultad deberían investigar pero no tan lejos de la industria; producir conocimiento practico y producto innovadores. Sin duda debemos arriesgarnos un poco más; creer en nosotros.    


Fuente:
http://www.diariodecuyo.com.ar/home/new_noticia.php?noticia_id=533633


Escribe Javascript en cualquier lenguaje con Babylscript


Babylscript es una herramienta que permite escribir javascript en el lenguaje que uno lo desee y luego traducirlo a javascript. Esta herramienta esta pensada para gente que no habla ingles; también es muy útil para culturas que no tienen nuestro abecedario rusos, vietnamitas, turcos, chinos, etc...

Dejo el link:
http://www.babylscript.com

miércoles, 15 de agosto de 2012

The Architecture of Open Source Applications




















The Architecture of Open Source Applications es un blog que se realizo a partir de 2 libros; que muestran arquitecturas de proyectos open source muy exitosos; la verdad que buena idea!. Con esto aprendemos de aciertos y de grandes aciertos! Entre los proyectos que se describen en estos 2 libros puedo citar: Eclipse, Git, Asterisk, Mercurial, Moodle, Nginx, etc...

A raíz de estos dos libros se creo un blog que es para promocionarlos pero de igual manera es interesante; espero que siga creciendo.

Dejo el link:
http://www.aosabook.org/blog/


Javascript Fundamentals: Development for Absolute Beginners


Si queres iniciarte en javascript estos más de 21 episodios te pueden ayudar. Son videos en los cuales se enseñan las bases del lenguaje. Lo único criticable es que tenes que tener instalado silverligth para ver los videos, pero se instala rápido.

A la vez estuve viendo el sitio channel 9 y esta bueno; muy completo.  Y después estuve viendo learnvisualstudio y también parece buena; muchos vídeos de la tecnología .net de microsoft.

Dejo los links:

http://channel9.msdn.com/Series/Javascript-Fundamentals-Development-for-Absolute-Beginners
http://channel9.msdn.com/
http://www.learnvisualstudio.net/courses/

martes, 14 de agosto de 2012

Enroll in Code School.

Sin lugar a duda el mejor sitio de cursos les aconsejo que realicen cursos en code school.

Dejo el link para inscribirse:

http://zfer.us/cwkg7

sábado, 11 de agosto de 2012

Suse cumple 20 años y OpenSuse 7 añitos

Se cumplen 20 años de Suse y 7 de OpenSuse; este calculo esta hecho sobre el comienzo del proyecto y no del release.

Dejo esta infografía que muestra los mayores logros del proyecto:


Feliz Cumpleaños!!

jueves, 9 de agosto de 2012

Introduction to MongoDB for Java, PHP and Python Developers

Muy bueno este resumen sobre mongoDB!!

Dejo link: http://www.infoq.com/articles/mongodb-java-php-python

JAMon, mirando como viene la mano...




The Java Application Monitor (JAMon) es una herramienta para monitorizar aplicaciones web hechas en java. Basicamente se agrega el monitor a jetty o tomcat y este intercepta todos los pedidos; registrando el momento que entraron y salieron. Como un portero botón que esta mirando a que hora llegas y a que hora salís.

JAMon es simple, fácil de usar, fácil de configurar y es software libre. Y permite de forma sensilla monitorizar una aplicación java.

Para que usaríamos JAMon?
  • Para garantizar la aplicación cumple con sus requisitos de rendimiento
  • Para garantizar la aplicación cumple con los requisitos de escalabilidad
  • Para detectar si la aplicación tiene errores o arroja excepciones no deseados
  • Para asegurar que todas las partes de la aplicación fueron probados adecuadamente (cobertura)
  • Para garantizar que la aplicación está funcionando correctamente en la producción como parte de las pruebas de post-producción
  • Para obtener información de la producción e iniciar un ciclo de retroalimentación entre el desarrollo, prueba y producción que mejoren la aplicación


¿Qué tipo de estadísticas de hace y cómo puedo verlos?

Jamón puede ser pensado como un cronómetro de software que asocia una etiqueta con los tiempos de ejecución y algunos agregados, otras estadísticas. JAMon trae consigo un completo view que se puede desplegar fácilmente; brindando toda la info de nuestra aplicación.


 ¿Cómo puedo agregar JAMon en mi aplicación?

Podemos incorporar JAMon en sus aplicaciones utilizando cualquiera de estos enfoques:
  • Utilizando el JAMon Servlet Filter - El filtro de servlet Jamón pasa automáticamente nombres de las páginas web de la aplicación (servlets, JSP y mucho más) para el JAMon , permite a los desarrolladores realizar un seguimiento de rendimiento de la página sin cambiar una sola línea de código de aplicación. Todo lo que se necesita es copiar algunas líneas estándar pocos en el archivo web.xml aplicaciones.
  • El controlador de JDBC de JAMon - es un proxy que puede monitorizar cualquier driver JDBC (que ha sido probado con Sybase / MySQL / Oracle / HSQLDB y otros),  Lleva la cuenta de las consultas más recientes ejecutados N y N excepciones más recientes lanzados. Utilizando el controlador de JAMon JDBC no requiere ningún cambio de código de aplicación. Basta con sustituir la información del controlador original (nombre de la clase del controlador, y la dirección URL) con JAMon.
  • Utilizar la interfaz de supervisión JAMon - Como se puede ver a continuación, puede controlar cualquier interfaz Java simplemente por el paso de una implementación de la interfaz con el método de monitor de JAMon , a continuación, llamar a métodos en el objeto como lo haría si el objeto no se controló. La firma de clase y el método aparece como una etiqueta en los informes de JAMon :


MyInterface myObject=(MyInterface) MonProxyFactory.monitor(new  MyImplementation());
            myObject.myMethod(); // Monitored!


  • Por último, puede llamar explícitamente al inicio JAMon / métodos de detención de la siguiente manera. Además, cuenta que, debido al hecho de que la etiqueta JAMon  es simplemente una cadena de Java, los datos dinámicos / tiempo de ejecución, como un nombre de usuario, se puede incorporar fácilmente en la etiqueta.


import com.jamonapi.*;

// page hits by user name using runtime data

Monitor mon = MonitorFactory.start("homePage.jsp-"+userName);             ...code that you wish to time...
mon.stop();


JAMon es una gran herramienta de software libre,muy útil para la monitorización de aplicacioes java.

Dejo links:
http://jamonapi.sourceforge.net/testingwithjamon.html
https://javasight.wordpress.com/2010/10/04/monitoring-with-spring-and-jamon-using-jamonperformancemonitorinterceptor/
http://jamonapi.sourceforge.net/

domingo, 5 de agosto de 2012

Blog sobre integración continua

La integración continua, según Martin Fowler, es una práctica de desarrollo de software en la que los miembros de un equipo de desarrollo integran frecuentemente su trabajo. Cada integración se comprueba de un modo automático (incluso con pruebas), para detectar errores de integración lo más frecuentemente posible.

Esta definición la saque del siguiente blog sobre integración continua: http://informatica.coutemeier.com/ que esta muy bueno. Se los recomiendo.

sábado, 4 de agosto de 2012

Fundamentos de JQuery


Quiero compartir un libro gratuito de JQuery, todavía no tuve tiempo de leerlo pero con una simple ojeada parece bueno. Empieza bien básico.

Dejo el link: http://librojquery.com/

Blog oficial de android


Google creo el blog oficial de android, y es muy interesante dejo link:

http://officialandroid.blogspot.com.es/