Translate
sábado, 28 de julio de 2012
InfoQ, la información de la cola?
InfoQ es una pagina muy buena donde esta la "papa" de las novedades del software. Pero mirando la pagina vi que la Q es de Queue; por lo tanto sería infoQueue que en castellano sería infoCola. Ahora entiendo porque no esta en castellano esta pagina. Busque porque el nombre de la pagina y no encontré nada ... Alguien sabe porque el nombre de esta pagina?
Dejo link:
http://translate.google.com.ar/#en/es/info%20Queue
http://www.infoq.com/
viernes, 27 de julio de 2012
Descarga el ebook gratuito de Windows Server 2012
Inesperado post, la verdad es que no me siento orgulloso de publicar tecnologias microsoft (solo cuestion ideologica). Pero cuando hacen cosas bien, hay que alentarlos. En este caso microsoft nos regala un libro sobre windows server. Me llego esto en un mail:Descarga y aprende sobre todas las novedades que trae la versión RC de Windows Server 2012, el libro tiene información directa de la gente de producto y nos desvela los motivos de gran número de las funcionalidades del producto.
Dejo el link: http://click.email.microsoftemail.com/?qs=480302870c751747f83b2b6e1da543ba0a781d8678618958bf0c19bf77902896d4e4b0b91af58e7d
jueves, 26 de julio de 2012
Crear un proyecto Apache Wicket con Apache Maven
La idea es hacer un proyecto maven de prueba que utilice Wicket, por ejemplo para los que comienzan a programar.
Instalación de JDK
Bueno tenemos que bajar la JDK de java de aquí: http://www.oracle.com/technetwork/java/javase/downloads/index.html para este tutorial vamos a instalar la JDK 6. Luego de instalarlo tenemos que crear una variable de entorno JAVA_HOME y además agregar en la variable PATH, el path de la JDK.
En linux debemos hacer
export JAVA_HOME=/opt/java
si instalamos java en /opt/java y luego seteamos esta variable en PATH
export PATH=$PATH:$JAVA_HOME/bin
En Windows sería así:
set JAVA_HOME=C:\java
set PATH=%PATH%;%JAVA_HOME%\bin
Instalacion de maven.
Vamos a bajar Maven de http://apache.xfree.com.ar/maven/binaries/apache-maven-3.0.4-bin.zip
Luego lo guardamos en una carpeta por ejemplo en linux /opt/maven y en Windows c:\maven ahora descomprimimos el zip y nos va quedar una carpeta con el siguiente nombre: apache-maven-3.0.4
Ahora tenemos que configurar la variable MAVEN_HOME esta forma:
En linux :
export MAVEN_HOME=/opt/java
export PATH=$PATH:$MAVEN_HOME/bin
En windows sería así:
set MAVEN_HOME=c:\maven
set PATH=%PATH%:%MAVEN_HOME%\bin
Si todo sali bien al hacer en una consola
mvn -version
Y debe tirar algo parecido se:
Apache Maven 3.0.4 (r1232337; 2012-01-17 05:44:56-0300)
Maven home: /java/apache-maven-3.0.4
Java version: 1.6.0_25, vendor: Sun Microsystems Inc.
Java home: /java/sdk/jdk1.6.0_25/jre
Default locale: es_ES, platform encoding: UTF-8
OS name: "linux", version: "3.2.0-26-generic", arch: "i386", family: "unix"
vamos ahora a hacer nuestro proyecto wicket :
mvn archetype:generate
Ahora nos preguntara un numero, deben escribir el de wicket, en mi caso es el 308; de igual forma busquenlo.
308: remote -> org.apache.wicket:wicket-archetype-quickstart (-)
Y nos va a preguntar el groupId y el archetypeId puede ir lo que quieran por ejemplo: com.ejemplo, prueba.
y listo tenemos nuestro proyecto; ahora a entrar a la carpeta y hacer:
cd miproyecto
mvn clean install y luego mvn eclipse:eclipse
Con esto tenemos todo listo para importar nuestro proyecto a Eclipse; abrimos eclipse y vamos al workshop donde en el panel de Package Explore hacer menu contextual y poner import...
En la ventana que aparece elegimos "General -> Existen Projects into Workspace" y luego ponemos la carpeta del proyecto y listo!
Ahora a configurar la variable de entorno M2_REPO en eclipse, tenemos que ir a "Windows-Preference" y hay ir a "Java -> Build Path -> Classpath variables" y agregar una variable llamada M2_REPO que apunte a la carpeta .m2/repository normalmente se encuentra en la carpeta home del usuario; en windows sería la carpeta del usuario; ojo que esta oculta. Con todo esto tenemos el proyecto compilando, ahora a instalar Jetty para esto ir a help -> eclipse marketplace buscar jetty y instalar run-jetty-run y luego que se instale se puede correr jetty desde el debug y por defecto va a levantar en localhost:8080.
Espero que puedan hacer todo esto, sino escucho dudas.
Apache Flex 4.8.0-incubating.
Apache anuncia la versión de Apache Flex 4.8.0 no tiene nada nuevo, solo se implemento código que antes era privativo. Para el que no conoce la historia Adobe dono Flex a Apache dando vida a Apache Flex. La noticia de la nueva versión es una gran alegría para la comunidad que ha trabajado mucho.
Apache Flex esta incubadora pero esperamos que salga pronto. Apache Flex se distribuye con licencia Apache 2.
Que piensan de esta noticia? Tiene sentido en un mundo gobernado por HTML 5? Apache Flex sera competidor de JavaFX? Vale la pena esta tecnología?
Dejo Link:
http://incubator.apache.org/flex/
IronJS
IronJS es una implementación de ECMAScript 3.0 en Dynamic Language Runtime DLR (es un runtime para lenguajes dinámicos de .net). IronJS fue creado por Fredrik Holmström y permite demostrar la facilidad de uso del DLR y la potencia de Javascript.
Dejo links:
http://ironjs.wordpress.com/
http://www.infoq.com/news/2012/07/ironjs
Dejo links:
http://ironjs.wordpress.com/
http://www.infoq.com/news/2012/07/ironjs
Programming and human factors
Jeff Atwood el creador de Stack Overflow, tiene un blog dedicado al humor, en el cual se ríe de las particularidades de la programación; es muy recomendable.
Dejo el link: http://www.codinghorror.com/blog/
miércoles, 25 de julio de 2012
Analiza terabyte de información con un click
Google BigQuery es un servicio que permite buscar en gran cantidad de datos
https://developers.google.com/bigquery/
https://developers.google.com/bigquery/docs/developers_guide
https://developers.google.com/bigquery/docs/getting-started
Dejo un video:
martes, 24 de julio de 2012
Coursera
Es como que puedas hacer un curso de lo que se te de la gana en Michigan o Pennsylvania o Standford o Princeton o Toronto o etc... Es una buena iniciativa y sin más dejo el link:
https://www.coursera.org/courses
https://www.coursera.org/courses
domingo, 22 de julio de 2012
Entity Framework ahora es Open Source!!!
Me parece un gran aporte, usan EF? que piensan que ahora sera open source?
Dejo el link:
http://www.infoq.com/news/2012/07/EF-Open-Source
viernes, 20 de julio de 2012
jueves, 19 de julio de 2012
Metasploit
Escribo este post porque nunca vi algo similar y me gusto, quede sorprendido cuando lo vi funcionando. Metasploit es un proyecto open source de seguridad informática que proporciona información acerca de vulnerabilidades de seguridad y ayuda en tests de penetración y en el desarrollo de firmas para Sistemas de Detección de Intrusos.
Entre las características podemos nombrar:
- Es gratuito y de código abierto
- Se actualiza constantemente (algunas veces agregan exploits a las horas de salir el full-disclosure)
- Es altamente modificable, (con un código en ruby bastante sencillo de entender)
- Multiplataforma (corre en los sistemas operativos mas populares)
- Gran base de datos de exploits y auxiliares0
Nunca probé una aplicación por su grado de seguridad y eso que tengo varias hechas. Es una falencia mía y creo del mercado en general, no probamos la seguridad intensiva.
Dan muchas ganas de usarlo.
Dejo libros:
http://www.wowebook.be/book/metasploit-penetration-testing-cookbook/
http://www.paginasprodigy.com/jez2904/files/metasploit.pdf
Y Dejo links:
http://www.metasploit.com/
http://www.dragonjar.org/completo-curso-de-metasploit-en-video.xhtml
miércoles, 18 de julio de 2012
Mi blog es CO2 Neutral
¡Desde hoy YO TAMBIÉN puedo gritar al mundo que mi blog
es de impacto cero!
Participando en la iniciativa ecológica promovida por Geniale.es lograré que se plante un árbol en una zona con riesgo de desertificación.
Geniale es la web que reúne y permite hojear online todos los catálogos promocionales DE LAS TIENDAS MÁS CERCANAS A TI.

La iniciativa es muy sencilla: por cada blog o web que se une al proyecto, Geniale se planta un árbol, cuya producción de oxìgeno compensará las emisiones de dióxido de carbono que produce mi blog o web.
Según el Dr. Alexander Wissner-Gross, un activista del medio ambiente y físico de Harvard, una sola página web es responsable de la emisión de 3,6 kg de CO2 de media al año, mientras que un árbol es capaz de absorber 5 kg. El resultado final es a favor del oxígeno: gana mi blog y gana el ambiente.
Geniale.es, a través de la distribución de catálogos en formato electrónico, promueve una filosofía verde enfocada a disminuir el uso y desperdicio de papel para fines comerciales. Los catálogos más importantes y conocidos están disponibles ahora también online, como por ejemplo, Fnac, Leroy Merlin, Media Markt, y se pueden consultar no sólo en el ordenador sino también a través de aplicaciones para iPhone e iPad .
Los catálogos son muy fáciles de hojear, como puedes comprobar:
Ikea -> http://www.geniale.es/folleto/ikea
Carrefour -> http://www.geniale.es/folleto/carrefour
Decathlon -> http://www.geniale.es/folleto/decathlon
La iniciativa está teniendo una gran acogida entre los blogger. El objetivo de CO2 Neutral es plantar 1.000 árboles en 12 meses, y hoy, gracias a vuestra ayuda, hemos podido plantar un pequeño bosque que cuenta ya con 300 árboles. Si llegamos a la meta, añadiremos al total de árboles un extra como premio al activismo de los blogger españoles.
Para conocer todos los detalles sobre la iniciativa pincha aquí:http://www.iplantatree.org/project/7
Ahora quiero mi árbol!!
Participando en la iniciativa ecológica promovida por Geniale.es lograré que se plante un árbol en una zona con riesgo de desertificación.
Geniale es la web que reúne y permite hojear online todos los catálogos promocionales DE LAS TIENDAS MÁS CERCANAS A TI.
La iniciativa es muy sencilla: por cada blog o web que se une al proyecto, Geniale se planta un árbol, cuya producción de oxìgeno compensará las emisiones de dióxido de carbono que produce mi blog o web.
Según el Dr. Alexander Wissner-Gross, un activista del medio ambiente y físico de Harvard, una sola página web es responsable de la emisión de 3,6 kg de CO2 de media al año, mientras que un árbol es capaz de absorber 5 kg. El resultado final es a favor del oxígeno: gana mi blog y gana el ambiente.
Geniale.es, a través de la distribución de catálogos en formato electrónico, promueve una filosofía verde enfocada a disminuir el uso y desperdicio de papel para fines comerciales. Los catálogos más importantes y conocidos están disponibles ahora también online, como por ejemplo, Fnac, Leroy Merlin, Media Markt, y se pueden consultar no sólo en el ordenador sino también a través de aplicaciones para iPhone e iPad .
Los catálogos son muy fáciles de hojear, como puedes comprobar:
Ikea -> http://www.geniale.es/folleto/ikea
Carrefour -> http://www.geniale.es/folleto/carrefour
Decathlon -> http://www.geniale.es/folleto/decathlon
La iniciativa está teniendo una gran acogida entre los blogger. El objetivo de CO2 Neutral es plantar 1.000 árboles en 12 meses, y hoy, gracias a vuestra ayuda, hemos podido plantar un pequeño bosque que cuenta ya con 300 árboles. Si llegamos a la meta, añadiremos al total de árboles un extra como premio al activismo de los blogger españoles.
Para conocer todos los detalles sobre la iniciativa pincha aquí:http://www.iplantatree.org/project/7
Ahora quiero mi árbol!!
martes, 17 de julio de 2012
Jigsaw se va a hacer esperar...
Al parecer Project Jigsaw no va a llegar a la fecha que esta programado Java 8, por lo tanto vendrá en Java 9 o Java 8 no cumplirá la fecha de su entrega.En fin pero creo que se preguntaran, que es Jigsaw? Bueno Jigsaw es un proyecto que intenta llevar la modularidad a Java, si estas pensando en OSGI te diría que no estas tan errado. El objetivo de este proyecto es diseñar e implementar un sistema de módulos estándar para la plataforma Java SE, y aplicar ese sistema a la misma plataforma y el JDK.
Como sabrán la JDK actual es monolítica; por ejemplo una aplicación que utiliza SWT debe de igual manera bajar el sdk con Swing; aunque no lo ocupe en su vida. El proyecto Jigsaw dará fin a todo esto y a la vez nos proveerá un estándar de modularización.
A esperar un poco más entonces!!
Dejo link:
http://openjdk.java.net/projects/jigsaw/
Curso de Coffeescript
Excelente curso de Coffeescript un framework que extiende javascript y forma su propio lenguaje.
Dejo link:
http://coffeescript.codeschool.com
Jquery Air
Un curso para hacer los primeros vuelos con jquery. Si no saben lo que es jquery es un framework javascript que nos hace la vida mucho más fácil.
Dejo el link:
http://jqueryair.com
domingo, 15 de julio de 2012
Cómo aprender a programar y no morir en el intento??
Se hace muy difícil aprender a programar o aprender a utilizar otro lenguaje aunque es muy divertido. Por suerte hoy en día existen paginas que nos permiten aprender de forma más interactiva; haciendo nuestra vida más fácil.
Dejo un par de paginas que no pueden ayudar a aprender un nuevo lenguaje:
http://www.aprenderaprogramar.com/
http://www.programr.com/
http://www.tutorialspoint.com/
https://p2pu.org/en/
Scala agregara Macros en su próxima versión
Scala va agregar Macros a su lenguaje. Empecemos por el principio que sería Macros en los lenguajes de programación? Las macros son funciones que son llamadas por el compilador durante la compilación. Dentro de estas funciones, el programador tiene acceso a las API del compilador. Por ejemplo, es posible generar, analizar y código typecheck.Esto era en C declarado mediante el #define, por ejemplo en C podemos hacer:
#define ADIOS "espero verte pronto"
En List podemos utilizar macros de la siguiente manera:
(defmacro Nand (&rest Args)
'(not (and ,@Args)))
Definimos la macro Nand y la podemos utilizar en nuestro programa.
Desde el release 2.10.0-M3 las macros son ahora oficialmente una parte del lenguaje Scala. Se puede importar Macros mediante el paquete language.experimental.macros.
Las Macros simplifican de forma significativa el análisis de código y generación de código, lo que los convierte en una herramienta de elección para un gran número de casos del mundo real. Los escenarios que tradicionalmente implican la escritura y el mantenimiento repetitivo se puede tratar con macros en forma concisa y fácil de mantener.
Dejo Link:
viernes, 13 de julio de 2012
PostgreSQL 9.2 con soporte nativo a JSON
Sip, como lo escuchan PostgreSQL 9.2 va a soportar JSON. JSON es una notación que se ha extendido rápidamente, como sabrán esta basada en Javascript y es un formato que es soportado de forma nativa por Javascript. Mira lo que dice la wikipedia:
"La simplicidad de JSON ha dado lugar a la generalización de su uso, especialmente como alternativa a XML en AJAX. Una de las supuestas ventajas de JSON sobre XML como formato de intercambio de datos en este contexto es que es mucho más sencillo escribir un analizador sintáctico (parser) de JSON. En JavaScript, un texto JSON se puede analizar fácilmente usando el procedimiento
eval(), lo cual ha sido fundamental para que JSON haya sido aceptado por parte de la comunidad de desarrolladores AJAX, debido a la ubicuidad de JavaScript en casi cualquier navegador web."En PostgreSQL 9.2 vamos a poder hacer lo siguiente:
CREATE TABLE test(gid serial PRIMARY KEY, title text, geog geography(Point, 4326));
INSERT INTO test(title, geog)
VALUES('a'
, ST_GeogFromText('POINT(-71.057811 42.358274)'));
INSERT INTO test(title, geog)
VALUES('b'
, ST_GeogFromText('POINT(42.358274 -71.057811 )'));
SELECT array_to_json(array_agg(t))
FROM test As t;
Y esto nos devolvera las filas en formato JSON. También podemos utilizar la función row_to_json;
Y esto para que me sirve? Bueno si usan frameworks como node.js estan hechos pueden trabajar todo bajo javascript y json. Sino por ejemplo para paginas pequeñas donde no es necesario tener una aplicación multicapa podemos llenar objetos javascript, por ejemplo en PHP:
var mi_variable = <?php echo buscarAlgo(); ?>
o un uso ideal es para funciones ajax.
Dejo link:
http://www.postgresql.org/docs/9.2/static/functions-json.html
miércoles, 11 de julio de 2012
Aprende a usar Git en 15 minutos
Leyendo GenBetaDev me encontre con la siguiente noticia :
"Si vienes de Subversion quizás la primera barrera que te bloquea para empezar a usar Git son la variedad de comandos nuevos y algunos de los conceptos que hacen a Git tan versátil. Con el curso de Github podrás empezar a trastear con Git de una forma fácil y segura en el entorno de un navegador sin ninguna complicación adicional que te desvíe del objetivo de aprender a usar Git. Todo lo que hagas se verá reflejado en un repositorio (try_git) que crea Github automática en tu cuenta para que vayas incluyendo ficheros de las sucesivas pantallas y luego puedas ver que todo ha sido real.
El curso está desarrollado directamente por los ingenieros de GitHub, expertos en el asunto, y en colaboración con Code School que si no conoces te recomiendo que eches un vistazo por su gran cantidad de cursos interactivos sobre tecnología."
Una buena idea una forma de ir aprendiendo de forma interactiva.
Dejo link:
http://try.github.com/levels/1/challenges/1
http://www.genbetadev.com/sistemas-de-control-de-versiones/aprende-a-usar-git-en-15-minutos
lunes, 9 de julio de 2012
Mono for Android
Siempre que pensamos correr .net en una plataforma que no sea windows pensamos en la gente del proyecto mono. Han tenido una idea muy buena correr codigo .net sobre la plataforma android. La idea es simple instalar otra maquina virtual (aparte de Dalvik) que corra codigo .net.
De esta forma podemos desarrollar aplicaciones para nuestro android con tecnología .net; es un buen punto para la gente de .net. La cual va a poder reutilizar código y no va a tener necesidad de aprender Java.
La verdad todavía no probé del todo la plataforma pero si abrimos nuestro monodevelop nos encontramos con las siguientes soluciones que podemos crear:
Lo malo es que no se puede desarrollar con Linux, esto es muy raro siempre pensé que Mono pensaba en desarrolladores que usan Linux, pero al parecer me equivoque. Cuando tuve que bajar la sdk que me encontré con esto:
El problema es que es necesario la versión 2.8 de mono y en linux no es tan fácil actualizar hay que actualizar los repositorios, ya que hay mucha gente que utiliza 2.4 o 2.6. Habrá que esperar, por lo pronto dejo links:
http://xamarin.com/monoforandroid
http://docs.xamarin.com/android
http://tirania.org/blog/archive/2011/Apr-06.html
La verdad todavía no probé del todo la plataforma pero si abrimos nuestro monodevelop nos encontramos con las siguientes soluciones que podemos crear:
Lo malo es que no se puede desarrollar con Linux, esto es muy raro siempre pensé que Mono pensaba en desarrolladores que usan Linux, pero al parecer me equivoque. Cuando tuve que bajar la sdk que me encontré con esto:
El problema es que es necesario la versión 2.8 de mono y en linux no es tan fácil actualizar hay que actualizar los repositorios, ya que hay mucha gente que utiliza 2.4 o 2.6. Habrá que esperar, por lo pronto dejo links:
http://xamarin.com/monoforandroid
http://docs.xamarin.com/android
http://tirania.org/blog/archive/2011/Apr-06.html
domingo, 8 de julio de 2012
¿Colaboras en proyectos de software libre?
En genbetadev publicaron la siguiente pregunta ¿Colaboráis en proyectos de software libre? y alguien muy acertado contesto:Podríamos decir que cualquier persona que utilice software libre esta colaborando con él.
La respuesta precisa, la mayoria de la gente piensa que es imposible colaborar con el software libre y al contrario es más fácil de lo que se cree, utilizando firefox por ejemplo; ya estamos colaborando. Y esta es la gran virtud del software libre, que podemos dar el feeback o generar una opinión o utilizarlo y encontrar bugs y enviar la información del bug o simplemente compartir nuestra experiencia.
Un gran paso para ayudar a la comunidad es utilizar el software libre y luego cuando estamos más duchos podemos recomendarlo, informar bugs, postear recomendaciones o manuales. Nuestra ayuda hace que crezca el software que usamos ayudándonos a nosotros y dando más calidad a nuestras vidas.
viernes, 6 de julio de 2012
Bosón de Higgs, hallado gracias a Linux
Días recientes sucedió uno de los hechos más importantes de la historia de la humanidad y de la ciencia: tras años de investigación se encontró una partícula subatómica llamada Bosón de Higgs, que explicaría un montón de incógnitas referentes a la materia y la energía del universo. Para tal propósito, un centro de investigaciones europeo llamado CERN construyó la mayor máquina jamás realizada por el hombre: el Gran Colisionador de Hadrones, conocido también por las siglas LHC.
Esta super máquina y estructura, consiste en un gran túnel circular de 27 km de extensión y 8 km de radio, está ubicado en la frontera franco-suiza, a varios metros bajo el piso. A su vez, en su recorrido, en este túnel encontramos gigantescas máquinas encargadas de emitir partículas sub-atómicas para que colisionen entre sí, mientras otras máquinas a su vez se encargan de colectar los resultados de esas colisiones.El análisis de estas colisiones, y por lo tanto, el hallazgo del tan buscado Bosón de Higgs, fue realizado por computadoras dirigidas nada más y nada menos que por un sistema operativo Linux. Este software llamado en realidad Scientific Linux, fue desarrollado en conjunto por el CERN y el FermiLab de los EE.UU., ambos institutos líderes mundiales en la investigación de física de partículas. Scientific Linux es una distribución de Linux clon a nivel binario de la distribución Red Hat Enterprise Linux, compilada a partir del código fuente de RHEL, bajo los términos del EULA de RHEL y de la licencia GPL.
Digno de destacar que siendo Linux software libre, es decir, estando a disposición de toda la humanidad su código fuente de programación, los máximos líderes de la ciencia humana hayan optado por desarrollar a su vez una solución libre, robusta y estable, en lugar de encargar este delicado trabajo a empresas fabricantes de sistemas operativos propietarios, restrictivos e ineficientes.
Dejo links:
http://es.wikipedia.org/wiki/Scientific_Linux
https://www.scientificlinux.org/
Que es la metaprogramación?
La metaprogramación consiste en escribir programas que escriben o manipulan otros programas (o a sí mismos) como datos, o que hacen en tiempo de compilación parte del trabajo que, de otra forma, se haría en tiempo de ejecución. Esto permite al programador ahorrar tiempo en la producción de código. Son programas que escriben programas, me suena a apocalíptico, como la skynet creando robots.
La metaprogramación no es una nueva idea - Nació hace ya más de 40 años, con el lenguaje Lisp, y se popularizó tremendamente en el lenguaje Smalltalk, a principios de los 80.
Como pueden imaginar un lenguaje script o dinamicos, facilita el uso de metaprogramación dado que no tiene que compilar o compilarse, simplemente modifica código y lo va corriendo.
Veamos como crearíamos una clase en Ruby:
def crea_clase(nombre, clase_padre)
eval "class #{nombre} < #{clase_padre} ; end"
end
De esta forma podemos hacer lo siguiente:
['Empleado', 'Cliente', 'Otro'].each do |nombre_de_la_clase|
crea_clase( nombre_de_la_clase , 'Persona')
end
Y así creamos clases a lo pavote, con 6 lineas de código.
En javascript tenemos el eval que podemos utilizar para correr scripts. Esto esta bueno para hacer ajax de código javascript, por poner ejemplo si el usuario eligió un parametro se muestra el valor del parámetro en un alert o un confirm.
$.get('ajax/test.php', function(dataJavascript) {
eval (dataJavascript);
});
y en php en la url ajax/test.php tenemos:
<?php
if (parametro) {
echo " alert(".parametro."); " ;
}
else {
echo " confirm(".parametro."); " ;
}
?>
Si podria haber puesto un if en la función ajax pero era un ejemplo. Existen variados usos para a metaprogramación que nos resuelven problemas de forma elegante.
lunes, 2 de julio de 2012
Ubuntu Manual Project
Se libero una nueva versión del manual de Ubuntu 12.04, en este manual se puede aprender sobre Unity, seguridad, software, configuración de hardware, resolución de problemas, etc. Como indica la pagina del proyecto:
"Primeros pasos con Ubuntu 12.04 es una guía para principiantes del sistema operativo Ubuntu. Se encuentra disponible bajo una licencia de código abierto y su descarga, lectura, modificación y distribución son libres.
El manual le ayudará a familiarizarse con tareas cotidianas como navegar por Internet, escuchar música, escanear documentos y mucho más. Al centrarse en instrucciones fáciles de seguir, es adecuado para todos los niveles de experiencia."
Dejo el link:
http://ubuntu-manual.org/
"Primeros pasos con Ubuntu 12.04 es una guía para principiantes del sistema operativo Ubuntu. Se encuentra disponible bajo una licencia de código abierto y su descarga, lectura, modificación y distribución son libres.
El manual le ayudará a familiarizarse con tareas cotidianas como navegar por Internet, escuchar música, escanear documentos y mucho más. Al centrarse en instrucciones fáciles de seguir, es adecuado para todos los niveles de experiencia."
Dejo el link:
http://ubuntu-manual.org/
domingo, 1 de julio de 2012
Una alternativa a Maven: Gradle 1.0 Released
Gradle es un proyecto para la construcción de aplicaciones java similar a maven. Pero este proyecto esta basado en groovy, por lo cual provee un dsl basado en groovy. Y proporciona una forma declarativa para describir todo tipo de construcciones a través de los parámetros por defecto. Gradle está convirtiendo rápidamente en el sistema de compilación de elección para muchos proyectos de código abierto.
Gradle provee una forma declarativa para describir todo tipo de construcciones.
Entre algunas características podemos nombrar:
- Cualquier configuración están escritos en Groovy (en lugar de XML)
- Soporte para Java, Groovy y Scala.
- Soporte dependencias a repositorios Maven
- Interfaz gráfica de usuario para la integración de todos los entornos de desarrollo populares
- Experimental de C + + de apoyo
Y además es de código abierto.
Dejo liks:
http://www.gradle.org/
http://www.gradle.org/resources
http://gradle.org/downloads
sábado, 30 de junio de 2012
jDTO Binder
Me gusta trabajar con DTOs, tiene varias ventajas y también desventajas. Para el que no conoce el patrón DTO (Data transfers Object) indica que debemos crear objetos para transferir datos a la capa de presentación.
Son entidades serializables que se suelen utilizar en la transferencia de información entre capas físicas de la aplicación. También son útiles en situaciones donde queremos desvincular capas aunque no exista una división física real. Los DTOs representan la información de las objetos de negocio a partir de cierto nivel (o componentes) de nuestra aplicación.
Usando DTOs conseguimos tener una mayor separación física y lógica. Pero tenemos que trabajar más, claro, tenemos que sincronizar los objetos de modelo o negocio con nuestros DTOs y como no nos gusta trabajar mucho, existe jDTO binder.
jDTO binder nos permite por medio de anotaciones sincronizar nuestros DTOs con los objetos del modelo. Dicho framework se hace cargo de la copia de datos entre objetos e incluso formateo y conversión de datos.jDTO de acuerdo con el código fuente es libre con licencia Apache. También se puede encontrar en su proyecto de GitHub.
Veamos ejemplo:
Hacemos una clase persona:
public class Person implements Serializable {
private long id;
private String firstName;
private String lastName;
private Date birthDay;
//GETTERS AND SETTERS
}
Hacemos el DTO
public class PersonDTO implements Serializable {
//bound by convention
private long id;
@Source(value="birthDay", merger=DateFormatMerger.class,
mergerParam="dd/MM/yyyy")
private String birthday;
@Sources(value={@Source("firstName"), @Source("lastName")},
merger=StringFormatMerger.class, mergerParam="%s %s")
private String fullName;
//GETTERS AND SETTERS
}
Y luego sincronizamos:
DTOBinder binder = DTOBinderFactory.getBinder(); //bind a person to a person DTO Person person = SampleData.samplePerson(); PersonDTO dto = binder.bindFromBusinessObject(PersonDTO.class, person);
Y listo!
Dejo el repositorio de maven:
org.jdto jdto 1.2 org.slf4j slf4j-log4j12 1.6.2 commons-lang commons-lang 2.6
Dejo links:
http://www.jdto.org/
https://github.com/jDTOBinder/jdto-binder
http://jcavallotti.blogspot.com.ar/2011/10/jdto-binder.html
viernes, 29 de junio de 2012
Newsql Open Source
NewSQL es la respuesta del mundo relaciona a la frase "las bases relacionales no escalan". NewSQL para explicarlo son bases relacionales que tienen todas las características de una base relacional (transaccional, atómico,
ACID, SQL, etc) pero sobre una plataforma distribuida, escalable y performante.
Pero que base NewSQL open source tenemos?
Conocen otra base NewSQL OpenSource??
Pero que base NewSQL open source tenemos?
- VoltDB es una base de datos en memoria, muy rápida. VoltDB Community Edition 1.0 -es un producto open source distribuido bajo licencia GPLv3.
- ScaleDb es como un plugin de MySQL que permite transformar mi mysql a una base NewSQL se distribuye bajo licencia GPL V2.
- Akiban basado en grupo de tablas permite que nos atraigamos de este concepto y trabajemos como una base de datos común. Se distribuyo bajo licencia GNU Affero General Public License v3
Conocen otra base NewSQL OpenSource??
Ruby Fácil
Dejo un Libro que esta bueno para comenzar con Ruby!Dejo el link:
http://www.mediafire.com/?6dpqsut5orll3qd
miércoles, 27 de junio de 2012
Mono
Mono es un proyecto muy famoso de Miguel de Icaza; este proyecto porta .net a cualquier plataforma incluido Linux. La verdad es increíble actualmente soportan la versión 4 del framework y no solo que se quedan con soporte sino que también son un símbolo de innovación, como por ejemplo la vm para android que puede correr C# en teléfonos y tablets Android.
Mono también tiene su ide, MonoDevelop que permite desarrollar tanto aplicaciones Web como de escritorio. Y permite desarrollar en Basic o C# y se pueden instalar otros lenguajes.
Mono es software libre y crecio mucho gracias a la comunidad.
Dejo links:
http://mono-project.com/What_is_Mono
http://www.go-mono.com/mono-downloads/download.html
http://mono-project.com/Mono_Basics
http://monodevelop.com
martes, 26 de junio de 2012
Riak, una base NoSQL key-value de código abierto que se las trae...
Riak es una base NoSQL key-value de código abierto. Riak es escalable y simplifica el desarrollo, dando a los usuarios la capacidad de formar rápidamente prototipos, probar y desplegar sus aplicaciones.
Riak es una base de datos distribuida diseñada para:
- Disponibilidad: Riak réplicas y recupera los datos de forma inteligente para que esté disponible para la lectura y escritura, incluso en condiciones de fallo;
- Tolerancia a fallos: se puede perder el acceso a muchos nodos de la red debido a anomalías en la partición o el hardware y no perder nunca de datos;
- Simplicidad operacional: se puede añadir nuevas máquinas al clúster Riak fácilmente sin necesidad de incurrir en una mayor carga operativa - las mismas tareas operaciones se aplican a grupos pequeños como grandes grupos;
- Escalabilidad: Riak distribuye automáticamente los datos de todo el grupo y se obtiene un aumento de rendimiento casi lineal a medida que agrega la capacidad.
Dejo link:
domingo, 24 de junio de 2012
Pear Linux, MacOS X pero en Linux
Si están acostumbrados a MacOS, quizás sea el paso adecuado para probar Linux.
Dejo link:
http://pear-os-linux.fr/
rubymonk
rubymonk es un sitio para aprender Ruby contiene recursos y se aprende de forma divertida y llevadera.
Dejo el link:
http://rubymonk.com/
Dejo el link:
http://rubymonk.com/
viernes, 22 de junio de 2012
OpenNebula
OpenNebula.org es un proyecto Open Sources; uno de los más avanzados y escalables herramienta para realizar Cloud computing.
OpenNebula tiene como objetivo proporcionar una capa de gestión abierta, flexible, extensible y completa para automatizar y orquestar la operación de virtualizado centros de datos mediante el aprovechamiento y la integración de las soluciones existentes para el despliegue de redes, almacenamiento, virtualización, monitorización y gestión de usuarios.
Su actual release es el 3.4 y corre sobre diferentes ditros linux. En este grefico podemos ver la evolución del proyecto:
Dejo link:
http://opennebula.org
OpenNebula tiene como objetivo proporcionar una capa de gestión abierta, flexible, extensible y completa para automatizar y orquestar la operación de virtualizado centros de datos mediante el aprovechamiento y la integración de las soluciones existentes para el despliegue de redes, almacenamiento, virtualización, monitorización y gestión de usuarios.
Su actual release es el 3.4 y corre sobre diferentes ditros linux. En este grefico podemos ver la evolución del proyecto:
Dejo link:
http://opennebula.org
domingo, 17 de junio de 2012
Encontrar los objetos apropiados
Cuando diseñamos, lo más dificil es encontrar objetos indicados que representen la realidad pero a la vez den flexibilidad a nuestros diseños como dice el libro Patrones de Diseño de Erich Gamma:
"Lo más complicado del diseño orientado a objetos es descomponer un sistema en objetos. La tarea es difícil porque entran en juego muchos factores: encapsulación, granularidad, dependencia, flexibilidad, rendimiento, evolución, reutilización, etc, etc. Todo ellos influyen en la descomposición, muchas veces de forma opuesta.
...
Muchos objetos del un diseño proceden del modelo del análisis. Pero los diseños orientados a objetos suelen acabar teniendo clases que no tiene su equivalente en el mundo real. Algunas de ellas son clases de bajo nivel como los arrays. Otras son de mucho más alto nivel... El modelado estricto del mundo real conduce a un sistema que refleja las realidades presentes pero no necesariamente las futuras. Las abstracciones que surgen durante el diseño son fundamentales para lograr un diseño flexible. "
Herencia frente a composición
Estoy leyendo Patrones de Diseño de Erich Gamma. En este libro discute sobre como es mejor reutilizar funcionalidad si por medio de la herencia o la composición. La idea de este post no es transcribir del libro sino hacer un resumen y analizar cada punto. Vamos primero con la composición, la composición es una técnica en la cual descomponemos objetos para reutilizar funcionalidad. De esta forma componiendo objetos podemos obtener funcionalidad más compleja y completa.
Ventajas:
- Reutilización de caja negra, los detalles internos de los objetos no son visibles.
- La dependencia de objetos se puede definir dinamicamente si utilizamos interfaces. Disminuyendo el acoplamiento y aumentando la reutilización.
- Ayuda a mantener cada clase encapsulada y centrada en una sola tarea. De esta manera, nuestra clases y jerarquías de clases permanecerán pequeñas y sera menos probable que se conviertan en monstruos inmanejables.
Desventajas:
- Requiere más diseño (que tampoco es tan malo)
El mecanismo de herencia lo conocemos bien y también tiene sus ventajas y desventajas
Ventaja:
- Es facil de usar lo provee los lenguajes.
- Es más fácil modificar la implementación que esta siendo reutilizada.
Desventaja:
- Reutilización de caja blanca, los hijos pueden modificar variables internas del padre (si están protegidas o publicas), la herencia suele decirse rompe el encapsulamiento.
- Existe más acoplamiento ya que cualquier cambio en el padre obligara a cambiar la subclase.
Según lo dicho podemos afirmar:
"Favorecer la composición de objetos frente a la herencia de clases."
Idealmente, solo crearíamos nuevos componentes para lograr la reutilización. Deberíamos ser capases de conseguir toda la funcionalidad que necesitamos simplemente ensamblando componentes existentes a través de la composición de objetos. Sin embargo, rara vez este es el caso, por lo tanto reutilizar mediante herencia hace más fácil construir nuevos componentes que puedan ser combinados con los antiguos. La herencia y la composición trabajan juntas. Pero abusar de la herencia trae consigo diseños más complejos y utilizar composición hace más fácil y reutilizable el diseño. AngularJS
AngularJS es un framework open source javascript. Este framework tiene como objetivo disminuir la cantidad de javascript de Aplicaciones singel-page utilizando el patrón MVC.
Html es genial para escribir documentos estáticos pero no para realizar aplicaciones dinámicas; AngularJS extiende html para hacer más fácil el diseño de aplicaciones dinámicas a través del patrón MVC.
Dejo un video:
Dejo un link:
http://angularjs.org
sábado, 16 de junio de 2012
Fernet, coca y javascript
Quiero recomendarles un blog muy bueno, que mezcla dos pasiones javascript y el fernet!!Dejo link: http://fernetjs.com/
miércoles, 13 de junio de 2012
Que distro de Linux necesito??
Me paso que no sabia que distro utilizar y este post del blog amigo Tecnologías de la Información y Comunicación, me ayudo bastante. Un gran aporte.
Dejo el link:
http://diegograf.blogspot.com.ar/2012/04/que-distro-linux-necesito.html
Dejo el link:
http://diegograf.blogspot.com.ar/2012/04/que-distro-linux-necesito.html
martes, 12 de junio de 2012
Spring para Android

Spring for Android es una extensión de la Spring Framework que tiene como objetivo simplificar el desarrollo de aplicaciones nativas para Android.
Spring for Android es un framework que nos facilita la comunicación entre el servidor y la aplicación Android a través de una API REST. Además provee métodos de autenticación.
Todo lo que quieren saber de este proyecto en el siguiente link: http://www.springsource.org/spring-android
Y dejo un video:
Suscribirse a:
Entradas (Atom)

































