Translate

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!!

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

domingo, 8 de julio de 2012

Manual y Documentación de Node.js


Dejo una pagina en español sobre Node.js

http://nodejs-es.github.com/api/index.html

¿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/

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