Translate

miércoles, 1 de mayo de 2013

SBT, haciendo fácil la construcción de proyectos en scala


SBT es Simple Build Tool, una herramienta que permite crear proyectos Scala o java. Seria como el querido Maven. Es necesario para utilizarlo java 1.6 o superior entre sus características podemos destacar:


  • Creación fácil de proyectos simples
  •  .sbt que es como el pom.xml de maven, es el archivo de definición del proyecto y esta basado en DSL
  • Compilación continua y testing con triggered execution
  • Genera documentación con scaladoc
  • Genera y publica jars
  • Soporta proyectos que mezclan java y scala
  • Soporta subproyectos
  • Soporta correr tareas en diferentes hilos al mismo tiempo. Esto es genial!
  • Soporta diferentes administradores de librerías, se puede configurar con Apache Ivy o maven, etc.

Si hicieron el curso de programación funcional en scala seguro lo utilizaron. Y se puede ver que es muy fácil de usar.

Dejo link:
http://www.scala-sbt.org/#features

sábado, 27 de abril de 2013

OpenIndiana, la evolución de open Solaris


Cuando Open solaris murió en manos de Oracle, la comunidad no se quedo de brazos cruzados y creo Open Indiana con el código de Open Solaris. Open Indiana es un sistema operativo robusto que utiliza gnome 2 para su interfaz gráfica  A la vez utiliza un núcleo open source llamado Illumos que también es producto de la muerte de Open Solaris.

Se ve bien! Es una buena opción para que usa Solaris.

Dejo link:
http://openindiana.org/
http://wiki.illumos.org/

jueves, 25 de abril de 2013

Tutorial de Python en Español Por Python Argentina

Python Argentina nos regala un tutorial de python totalmente en castellano y para python 3.0 y 2.7.3. Esta  un kilo y 3 pancitos!

Dejo link:
http://docs.python.org.ar/tutorial/index.html

domingo, 21 de abril de 2013

Pude probar OpenSusse 12.3

Me saque las ganas y probé OpenSusse 12.3 y quede muy contento, se ve genial! Instalación limpia, muy intuitiva y un escritorio muy solido. Yo instale KDE y me pareció muy bien integrado, tendría que probar con gnome.

Dejo las novedades de esta versión:

Ya que este ha sido un ciclo más corto de lo normal, se ha prestado gran atención a los detalles.
Icon-distribution.png
Toques finales
openSUSE 12.3 completa la integración de systemd y proporciona una mejor experiencia para los registros del sistema con journald. Se ha trabajado en la gestión de paquetes para hacer que las interfaces gráficas funcionen de un modo más fiable y un nuevo tema que aporta consistencia desde el arranque hasta el escritorio. openSUSE ha cambiado a imágenes autoejecutables (Live) de 1 GB y el equipo ARM espera ser capaz de proporcionar un openSUSE 12.3 estable para esta arquitectura en pocas semanas.
Icon-cleanup.png
Refinamiento
Lo último en escritorios llega con un refinado adicional para los usuarios con un manejo de metadatos mucho más rápido, un nuevo gestor de impresión y una integración mejor de bluetooth en el escritorio Plasma de KDE. GNOME Shell ha mejorado las notificaciones, la gestión de archivos y la integración con cuentas de MS Exchange y Windows Live.
Icon-feature.png
Novedades
openSUSE 12.3 incorpora nuevas tecnologías para usuarios con la inclusión de PostgreSQL 9.2, que tiene soporte nativo para JSON (estilo noSQL). Hemos pasado a usar MariaDB por defecto en vez de MySQL. Ésta será la primera publicación de openSUSE con OpenStack "Folsom" completo para los amantes de la nube, y también debuta el escritorio E17 y los gestores de ventana awesome y Sawfish.
Preferences-system-performance.png
Nos movemos hacia delante
openSUSE avanza incluyendo aplicaciones actualizadas. DigiKam 3.0 llega con unas capacidades muy ampliadas para el procesamiento en lote de imágenes además de filtros y complementos tanto nuevos como actualizados. Las principales aplicaciones de gestión de información personal han recibido actualizaciones. Ahora Evolution tiene búsquedas en carpetas actualizadas automáticamente y corrección ortográfica completa, mientras que el filtro rápido de Kontact busca en el cuerpo entero de los correos y tiene una composición mejorada. Herramientas de desarrollo como KDevelop, monodevelop y valgrind han adquirido soporte preliminar para Android. Las bibliotecas de desarrollo como GTK3 y la plataforma de desarrollo de KDE se han incluido con nuevas versiones.

Dejo links:
https://es.opensuse.org/openSUSE:Anuncio_de_la_publicaci%C3%B3n_de_la_versi%C3%B3n_12.3
https://es.opensuse.org/Bienvenidos_a_openSUSE.org

Cual es tu escritorio favorito?


Interesante iniciativa de hacer una encuesta general de que escritorio es el que más nos gusta, si preguntan por el ganador parcial, Unity, me parece increíble. El escritorio que me sugirió abandonar Ubuntu, luego viene KDE y esto es entendible dado que no tiene tanta fragmentación como gnome.

Si preguntan mi opinión sin lugar a duda fui muy feliz con Mate, luego pondría a KDE que me estoy acostumbrando y la verdad viene bien y en tercer puesto pondría a Cinnamon.

Cual sería su voto? Si tienen que hacer un top 3?

Dejo links:
https://docs.google.com/forms/d/1okkJ82jEhdIJ4P8vghf2kdAkkRWHrov5cbFoR570Nz0/viewform?usp=sharing&edit_requested=true
https://docs.google.com/forms/d/1okkJ82jEhdIJ4P8vghf2kdAkkRWHrov5cbFoR570Nz0/viewanalytics

miércoles, 17 de abril de 2013

The Python Profilers


Hace muy poco tiempo me encontré con cProfile de python, es una herramienta para hacer profiling. Pero que es Profile? Un profile es un conjunto de estadísticas que nos indican cuanto demora un método o proceso y como se esta ejecutando. El objetivo es saber porque tarda mi código lo que tarda, para así poder mejorarlo y mejorar la performans del programa.

Las librerías estándares de Python proveen 3 formas de generar profiles:

  • cProfile: es el recomendado por la mayoría de los programadores; es una extensión de C y provee un overhead razonable.
  • Profile: esta totalmente hecho en python y tiene mayor overhead que cProfile
  • hotshot: es una extensión de C experimental, con el objetivo de minimizar el overhead, esta herramienta no tiene mantenimiento y esta pensado eliminarla en nuevas versiones.
En fin el ganador es cProfile, pero como lo utilizamos? Así:


import cProfile
import re
cProfile.run('re.compile("foo|bar")')

Esto nos dará como resultado la siguiente tabla:


197 function calls (192 primitive calls) in 0.002 seconds

Ordered by: standard name

ncalls  tottime  percall  cumtime  percall filename:lineno(function)
     1    0.000    0.000    0.001    0.001 <string>:1(<module>)
     1    0.000    0.000    0.001    0.001 re.py:212(compile)
     1    0.000    0.000    0.001    0.001 re.py:268(_compile)
     1    0.000    0.000    0.000    0.000 sre_compile.py:172(_compile_charset)
     1    0.000    0.000    0.000    0.000 sre_compile.py:201(_optimize_charset)
     4    0.000    0.000    0.000    0.000 sre_compile.py:25(_identityfunction)
   3/1    0.000    0.000    0.000    0.000 sre_compile.py:33(_compile)

En el cual podemos ver el método que más se corre y el método que más tiempo ocupa. Simple todos los datos que necesito.

La idea del post no era hacer una guía exhaustiva de cProfile pero si mostrar lo fácil del uso y practico.

Dejo link:
http://docs.python.org/2/library/profile.html




lunes, 15 de abril de 2013

Gnome 3, cinnamon y otras yerbas





Este post es a raíz de la siguiente noticia, dado que yo soy muy fanático de Mate y Mint. Y para no quedarme cómodo con Mate decidí probar Cinnamon y no me fue muy bien. Por lo que dicen es que es culpa de Gnome 3 y por ahí entiendo que la gente de Gnome no puede prohibirse dejar de romper su plataforma y reestructurarla. Pero gente ya basta!!


Por favor dejemos de hacer tan complicado Linux, busquemos de combatir la fragmentación. No estoy en contra que existan opiniones o formas de ver las cosas diferentes, creo que Linux es un lugar donde se puede mezclar todo. Pero cuando entramos a mezclar y rompemos todo. Es porque salta a la vista que falta respeto a los estándares o faltan estándares.

Tenía muchas ganas de probar cinnarch, pero ya no lo voy a poder hacer por lo menos con cinnamon.  Por favor cuidemos las bases así podemos crecer.

sábado, 13 de abril de 2013

NoSQL Benchmark!!!

Estuve viendo este benchmark entre Aerospike, Cassandra, Couchbase and MongoDB que realizo la gente de infoQ, muy bueno.

Dejo el link:
http://www.infoq.com/news/2013/04/NoSQL-Benchmark

USB claro en linux


Estoy sin internet, porque se corto el teléfono, más allá de eso se me ocurrió comprar un modem claro para salir del paso, en fin fui a comprarlo y le pregunte al vendedor que sistemas operativos soportaba, y me contesto Windows, ha y mac también pero nunca lo probé. Digamos que Linux ni hablar pensé, y pensé bien; no funciona en Linux. Por lo menos no sin bajar nada; en fin posteo esto desde el windows que tuve que instalar.

Solo tengo que decirle algo a claro:


Programadores con experiencia.

Hace ya tiempo ley un artículo en java hispano sobre si es mejor un programador con más experiencia; en este articulo se demuestra que no es mejor una persona con más experiencia que un novato programando y al principio pensé que había algo mal, no puede ser que un programador que tiene 3 años en el mercado programe igual que uno que tiene 4 años de experiencia o 2. Me parecía muy raro, pero luego me di cuenta que en realidad alguien con menos conceptos programa igual que los experimentados, con la diferencia de que el desarrollo de software no todo es programar. Es decir nosotros estamos todo el tiempo topándonos con problemas, problemas que puede ser la base de datos o hibernate o algúna otra herramienta y sin embargo se nota a simple vista que alguien que tiene más tiempo programando maneja mejor estas herramientas. Sin hablar de que si hay que diseñar algo con algún patrón; es innegable que el manejo de patrones lleva su tiempo.

Es decir el tiempo te llena de conocimiento y esto vale. Y si no se usa o quedo viejo hay que hacer el esfuerzo de extrapolar el conocimiento, es muy difícil generalizar por ejemplo como se utiliza una herramienta; pero los conceptos siempre quedan; un ejemplo podría ser la gente que sabe flash y diseñar con flash, si bien hubo cambio si una persona que utilizo flash le toca diseñar en html 5 va ser mucho más rápido que alguien que nunca diseño. Por este motivo, hay que esforzarse para entender los conceptos y no solo las herramientas, para que nuestro conocimiento pueda durar en el tiempo.