Translate
jueves, 20 de enero de 2011
Tutorial básico de Java EE
lunes, 17 de enero de 2011
WOA (Web-oriented architecture)
Si buscamos una definición rapida podemos decir que :
SOA + Web 2.0 = WOA
El uso de REST y la separación de la interfaz (concebida de forma web pero que consulta los servicios por javascript expuestos mediante REST) dio nacimiento a este estilo arquitectónico.
Este enfoque mucho más orientado a la Web es algo que muchos han llamado Web-Oriented Architecture (WOA) y se basa en la enorme fuerza de tracción de la World Wide Web en sí y sus fundamentos arquitectónicos subyacentes. Y se basa en los conceptos básicos y los resultados que han hecho de la Web con mucho, la mayor red abierta en el planeta, así como el mayor SOA actualmente en existencia. En el extremo principal de esto es la historia de mashups de web con aplicaciones híbridas empresariales es una de las importantes mejoras en el entorno de TI que se anuncia la WOA.
domingo, 16 de enero de 2011
Más de Apache ActiveMQ

Siguiendo con la serie de post de Apache ActiveMQ en el post anterior hablamos de JMS. Ahora
empecemos con ActiveMQ. Como ya dijimos Apache ActiveMQ es un estupendo corredor de mensajes de código abierto y una maravillosa opción para mensajería asíncrona JMS. ActiveMQ comenzó siendo un proyecto de codehaus pero luego se traslado a Apache.
Antes de empezar es conveniente que se bajen el proyecto desde el siguiente link:
http://activemq.apache.org/download.html
Luego de bajar ActiveMQ, debe descomprimirlo. En el directorio base se van a encontrar un jar llamado activemq-all-version.jar donde versión es la versión del producto que descargo por ejemplo activemq-all-5.4.2 es para la versión 5.4.2. Éste jar es el que necesitara para añadir a la ruta de clase de la aplicación para poder utilizar la API de ActiveMQ
En el directorio bin, podrá encontrar un script llamado activemq el cual inicia ActiveMQ de la siguiente manera:
activemq console (en sistemas Unix-Like)
activemq (en Windows)
Si todo salio bien el servidor estará levantado en http://localhost:8161/.De esta forma ActiveMQ esta listo para recibir nuestros mensajes.
Veamos un poco la estructura de directorios de ActiveMQ, si vemos la carpeta base podremos identificar los siguientes archivos:
- README.txt, NOTICE y LICENSE: Documentación, información de licencias y la licencia del producto.
- WebConsole-README.txt: Contiene información del uso de la consola web.
- activemq-all-5.3.0.jar: Jar que contiene todas las clases necesarias para utilizar Apache ActiveMQ
- bin: directorio que contiene archivos binarios y ejecutables; además scripts para detener, iniciar y restablecer el servidor.
- conf: directorio que contiene todos los archivos necesarios para configurar Apache ActiveMQ
- data: es el directorio donde los archivos de log y archivos de datos son guardados.
- docs: contiene un archivo index.html que hace referencia a la documentación.
- example: contiene ejemplos.
- lib: contiene las librerías que necesita Apache ActiveMQ para funcionar.
- user-guide.html: documentación necesaria para empezar con ActiveMQ y además como correr un ejemplo.
- webapps: directorio necesario para que funcione Apache ActiveMQ web Consola y otros demos web relacionados.
sábado, 8 de enero de 2011
Apache ActiveMQ

Antes de empezar a leer este post miren este otro que sirve de introducción:
http://emanuelpeg.blogspot.com/2010/03/apache-activemq.html
Bueno, antes de empezar con ActiveMQ es necesario entender algunos conceptos de JMS.
Cuando necesitamos comunicar 2 aplicaciones por medio de una red, se hace prioritario que las dos aplicaciones estén disponibles, por ejemplo cuando una aplicación se comunica con otra por medio llamados a procedimientos remotos (COM, CORBA, DCE y EJB) la aplicación receptora del mensaje debe estar activa, si esto no es así no recibirá nunca el mensaje. En ocasiones es poco probable poder realizar una comunicación sincrónica. La mensajería asíncrona es una forma de enviar mensajes indirectamente de una aplicación a otra sin esperar una respuesta.
JMS ofrece a las aplicaciones Java la opción de comunicarse de forma asíncrona. Cuando los mensajes se envían de forma asíncrona, el cliente no tiene que esperar a que el servicio procese el mensaje, ni a que el mensaje sea entregado. El cliente envía si mensaje y después continua con la suposición de que el servicio finalmente lo recibirá y procesará.
Cuando nosotros enviamos una carta no la enviamos por nuestros propios medios sino que la enviamos por medio del servicio postal. Ponemos la dirección la estampilla y listo. De forma similar, la vía indirecta el la clave de JMS. Cuando una aplicación envía información a otra mediante JMS, no hay vinculo directo entre ambas aplicaciones. En su lugar, la aplicación emisora coloca el mensaje en manos de un servicio que garantiza su entrega a la aplicación receptora. Hay dos conceptos principales en JMS: corredores de mensaje (message brokers) y destinos.
Cuando una aplicación envía un mensaje, lo entrega a un corredor de mensajes. El corredor de mensajes es la respuesta JMS a la oficina de correos. EL corredor de mensajes se asegurará de que el mensaje sea entregado en el destino especificado, dejando que el emisor siga con sus asuntos.
Cuando enviamos un correo es importante poner la dirección para que el servicio postal sepa dónde debe ser entregada. De igual forma, en JMS, los mensajes tienen una dirección con un destino. Los destinos son como los buzones donde se colocan los mensajes hasta que alguien llega a recogerlos.
No obstante, a diferencia de las direcciones postales, que indican una persona especifica o una calle, los destinos son menos específicos. A los destinos solo les incumbe donde sera recogido el mensaje, no quien lo recogerá. De esta forma los destinos son como enviar una carta dirigida “al residente”.
En JMS, hay dos tipos de destinos: colas y temas. Cada uno de estos está asociado a un modelo de mensajería concreto, bien de punto a punto (para colas) o bien de emisor a suscriptor (para temas)
Punto a Punto: cada mensaje tiene exactamente un emisor y un receptor. Cuando se entrega el mensaje al corredor de mensajes, este lo pone en una cola, cuando el receptor pide el mensaje este es eliminado de la cola.
Emisor a suscriptor: El mensaje es enviado a un tema todos los suscriptores del tema recibiran una copia del mensaje.
- La comunicación asíncrona a través de JMS ofrece diversas ventajas sobre la comunicación sincrónica:
- La comunicación sincrónica implica una espera.
- El cliente no esta acoplado a la disponibilidad del servicio
- El cliente no esta acoplado a la ubicación del servicio
El post casi completo fue solo para JMS, en una segunda parte voy a profundizar ActiveMQ.
viernes, 31 de diciembre de 2010
Feliz 2011!!!
jueves, 30 de diciembre de 2010
WSO2 Business Process Server

WSO2 Business Process Server (BPS) es un Open Source Business Process Server fácil de usar que ejecuta procesos de negocios escritos siguiendo WS-BPEL estándar.
WS-BPEL esta emergiendo como un estándar por defecto para componer múltiples servicios asíncronos o síncronos, dentro de un flujo de procesos colaborativo y transaccional que incrementa la flexibilidad y agilidad de nuestra SOA (Service Oriented Architecture).
WSO2 BPS esta formado por Apache ODE e incluye una interfaz administrativa basada en la Web y funcionalidades de simulación. Además disponible con licencia Apache v2.
La versión actual de BPS es la 1.1.1
lunes, 27 de diciembre de 2010
La propiedad intelectual tiene más valor cuando se comparte
Más de Erlang
El case:
1> Animal = "dog".
2> case Animal of
2> "dog" -> underdog;
2> "cat" -> thundercat
2> end.
underdog
3> case Animal of
3> "elephant" -> dumbo;
3> _ -> something_else
3> end.
something_else
el _ es como el “default” de c, c++, java, etc...
El si es un tanto diferente a lo que conocemos, el si puede tener varias condiciones y varios resultados:
8> X = 0.
9> if
9> X > 0 -> positive;
9> X < 0 -> negative;
9> true -> zero
9> end.
Similar a javascript se puede asignar una función a una variable:
16> Negate = fun(I) -> -I end.
#Fun
17> Negate(1).
-1
18> Negate(-1).
1
Podemos usar funciones con listas
1> Numbers = [1, 2, 3, 4].
[1,2,3,4]
2> lists:foreach(fun(Number) -> io:format("~p~n", [Number]) end, Numbers).
1
2
3
4
ok
lists:foreach permite aplicar una función a cada elemento de una lista.
Si queremos filtrar los menores a 3 por ejemplo, es muy facil con lists:filter :
11> Small = fun(X) -> X < 0 end.
12> lists:filter(Small, Numbers).
[1,2]
EL lenguaje también provee una forma de saber si todos los elementos de una lista cumplen con un filtro:
15> lists:all(Small, [0, 1, 2]).
true
16> lists:all(Small, [0, 1, 2, 3]).
false
o si alguno lo cumple:
17> lists:any(Small, [0, 1, 2, 3]).
true
18> lists:any(Small, [3, 4, 5]).
false
Con foldl se puede hacer que una variable sea mantenida mientras la función esta iterando por la lista:
28> Numbers.
[1,2,3,4]
29> lists:foldl(fun(X, Sum) -> X + Sum end, 0, Numbers).
10
Como podemos ver la variable Sum se va pasando por cada ejecución de la función que acumula, y al comenzar la ejecución Sum = 0.
Hasta aquí hemos recorrido a vuelo de pájaro Erlang, un lenguaje original que nos muestra que se pueden hacer las cosas de diferente modo.
martes, 21 de diciembre de 2010
Top de lenguajes de programación para 2011 según eweek
Java
C
C++
C#
Javascript
Perl
PHP
Visual Basic
Python
Ruby
Objective C
Actionscript
Groovy
Go
Scala
Erlang
Clojure
F#
Dejo link:
http://www.eweek.com/c/a/Application-Development/Java-C-C-Top-18-Programming-Languages-for-2011-480790/?kc=rss
lunes, 20 de diciembre de 2010
Frase
La complejidad es uno de los principales problemas de la tecnología informática. Y que una y otra vez caemos en el error de que para resolver la complejidad lo que hace falta es todavía más complejidad.
Totalmente de acuerdo!!
domingo, 19 de diciembre de 2010
Erlang

jueves, 16 de diciembre de 2010
Google regala los productos de Instantiations a la Fundación Eclipse
Google ha donado WindowBuilder Pro (que incluye Swing Designer, SWT Designer y GWT Designer) y CodePro Profiler a la comunidad de código abierto y que en la primera mitad de 2011 pasarán a ser nuevos proyectos de Eclipse.
Estos productos nos ayudan a desarrollar de forma fácil interfaces gráficas con java y eclipse.
Que grande google!!!
Dejo links:
http://googlecode.blogspot.com
http://code.google.com/javadevtools/eclipse-donation-faq.html.
miércoles, 15 de diciembre de 2010
Masterbranch
domingo, 5 de diciembre de 2010
Clojure
Clojure es Lisp en JVM. Es decir entendiendo Clojure entenderemos List, y entendiendo List entenderemos Clojure. Después de Fortran, List es el lenguaje más viejo. List es un lenguaje funcional pero no es un lenguaje puramente funcional.
Una de las más importantes características de Clojure es que corre en la JVM.
Deben bajar la consola para Clojure de http://clojure.org/ y empecemos haciendo un Hola Mundo!
user=> (println "Hola Mundo!")
Hola Mundo!
nil
Veamos llamadas a funciones:
user=> (- 1)
-1
user=> (+ 1 1)
2
user=> (* 10 10)
100
user=> (mod 5 4)
1
user=> (/ (/ 12 2) (/ 6 2))
2
user=> (+ 2 2 2 2)
8
user=> (- 8 1 2)
5
user=> (/ 8 2 2)
2
user=> (+ 3.0 5)
8.0
user=> (+ 3 5.0)
8.0
Clojure maneja los tipos de java:
user=> (class true)
java.lang.Boolean
user=> (class (= 1 1))
java.lang.Boolean
Podemos usar el condicional:
user=> (if true (println "True it is."))
True it is.
nil
user=> (if false (println "true") (println "false"))
false
nil
Veamos las listas:
user=> (list 1 2 3)
(1 2 3)
user=> '(1 2 3)
(1 2 3)
vectores:
user=> [:hutt :wookie :ewok]
[:hutt :wookie :ewok]
Mapas:
user=> {:chewie :wookie :lea :human}
{:chewie :wookie, :lea :human}
Definir funciones:
user=> (defn force-it [] (str "Use the force," "Luke."))
#'user/force-it
y usarla:
user=> (force-it)
"Use the force,Luke."
Este es un pequeño y humilde paseo por Clojure, si deben aplicar programación funcional en una aplicación Java es la herramienta justa.
Dejo links:
http://clojure.org/
Io
jueves, 25 de noviembre de 2010
Apache Wave In A Box
Cuando Wave fue abandonado, se comentaba que Google liberaría el proyecto con el nombre de Wave In A Box, pero sin seguir desarrollándolo. Pus bien, hoy Wave In A Box ya tiene a alguien que le empuje: la fundación Apache.
La fundación va a alojar el proyecto junto a los demás y va a impulsarlo con un equipo de desarrollo al igual que se hace con el servidor Apache. El producto se llamará Apache Wave In A Box, y la idea es que sirva para que cualquiera lo pueda instalar en un servidor sin problemas.
Según Apache, adoptan Google Wave porque hay bastante gente interesada en la continuidad del proyecto. Entre ellos están la recién comprada Novell, SAP o incluso la Marina de los EEUU.
Aunque Google Wave no tuvo una muy buena acogida, su tecnología es muy buena y compleja, y merece la pena ser guardada y desarrollada. Habrá que ver cómo evoluciona ahora Apache Wave y el tratamiento que le da la fundación Apache, y si consigue que Wave sea más aceptado de lo que lo fue con Google.
Dejo link:
miércoles, 24 de noviembre de 2010
¿Porque optar por soluciones Open Sources a la hora de desarrollar?
Como principal ventaja del software Open Sources se pensaría en el bajo costo dado que se relaciona Open Sources como gratis y esto no es así. Es un error pensar en el Open Sources como una solución barata dado que el software puede tener costo, pero además el software tanto Open Sources como comercial tiene costos ocultos. Como costo oculto podríamos nombrar la falta de soporte, o falta de documentación. Estos costos ocultos hay que tenerlos en cuenta a la hora de optar por un software.
El uso de frameworks open sources para el desarrollo de aplicaciones trae aparejado muchos beneficios que dependen de la comunidad que respalde el framework; cuanto mayor es la comunidad mayor va a ser el soporte, la documentación, calidad y los usuarios que usan el framework:
Soporte: El soporte brindado puede ser mayor a una aplicación comercial y la información suministrada por foros de problemas es basta.
Documentación: Si bien no es común que un software open source este bien documentado, la información suministrada por blogs, foros, libros es mayor que productos comerciales.
Calidad de código: La calidad del código de framework open source es mayor ya que el código es visto por decenas de programadores y revisados por una comunidad de usuarios.
A la vez existen beneficios intrínsecos del software open sources:
Usar el programa: podemos usar el programa sin ninguna restricción, ni siquiera comecial ya que podemos vender nuestro desarrollo, pero una restricción es que debemos incluir el código fuente en la venta.
Libertad de aprender: podemos aprender del código fuente, aprender como fue hecho el framework y saber como realmente funciona. De esta forma el grupo de trabajo no esta limitada a ver solo la documentación sino que puede debugear el código fuente y palpar lo que hace realmente.
Libertad de modificar: Si existe un bug, es posible corregirlo y publicar su corrección para que se encuentre en futuras versiones. Además podemos extender el framework como queramos, desarrollando nueva funcionalidad que luego podemos publicar para que la comunidad la pruebe y use.
Estas ventajas no son menores, dado que el conocimiento es el arma más importante en un grupo de desarrollo informático y el open source permite cultivar el conocimiento, dando nos el privilegio de leer las lineas de código y ver como funciona.
Apostar a el software open source es apostar al capital humano, con un grupo consolidado puede aprender y desarrollar mejor a partir del código fuente. Los desarrolladores aprenden como funciona el framework viéndolo funcionar.
Utilizar software Open Source no solo beneficia a quien lo usa sino a toda una comunidad.
martes, 23 de noviembre de 2010
Spring Dynamic Modules for OSGi(tm) Service Platforms
lunes, 22 de noviembre de 2010
Apache Aries

El proyecto Aries ofrecerá un conjunto de componentes enchufables (plugins) Java que permite a una aplicación empresarial utilizar estos plugins usando modelo de programación OSGi . Esto incluye la implementación y extensión de las especificaciones definidas por OSGi Alliance Enterprise Expert Group (EEG)
Apache Aries nos permitirá consumir por medio de OSGI módulos que nos brinden la persistencia JPA por ejemplo. Pluging que le den valor agregado a la aplicaciones o frameworks que nos ayuden a desarrollar podrán ser utilizados usando OSGI.
OSGi es una tecnología de modularidad madura de Java, que es muy usado en muchos ambientes, pero, en el ámbito empresarial, ha sido tradicionalmente más explotados por la parte interna, infraestructura runtime. Esto es principalmente debido a la falta de un claro modelo de programación empresarial OSGi, y la falta de aplicación e implementación de OSGi para la tecnología JEE.
Especificaciones OSGi son dictadas y mantenidas por la OSGi Alliance, que reconoce este estado de cosas hace varios años y estableció un grupo de expertos en aplicaciones enterprice dentro de la Alianza para centrarse específicamente en las necesidades de aplicaciones empresariales. El objetivo de este proyecto es entregar implementaciones de código abierto de estas tecnologías centradas en la aplicación para permitir el desarrollo de componentes, en beneficio de la modularidad de OSGi en combinación con modelos de programación basados en estándares, que pueden ser desplegados en tiempo de ejecución.
Es un objetivo del proyecto Aries proporcionar un hogar natural para las implementaciones de código abierto de las actuales y futuras especificaciones OSGi EEG, incluyendo la oportunidad para el desarrollo colaborativo de pruebas de cumplimiento, y un entorno para demostrar la composición de estas tecnologías y explorar áreas EEG donde carecen de cobertura de las especificaciones. Otro objetivo de este proyecto es aprovechar la experiencia adquirida a informar a las contribuciones a OSGi requisitos EEG y documentos de especificaciones.
Apache Aries esta en la incubadora esperemos que pronto salga de ahí y nos sorprenda con nuevos módulos para nuestra aplicación.
OSGI y SCA

jueves, 18 de noviembre de 2010
Manual de OSGI
viernes, 12 de noviembre de 2010
Mi nuevo vicio

No soy adicto a nada electrónico, ni este blog, ni twitter, ni facebook, ni nada. Cuando tiempo le meto a estas cosas pero no me sacan el sueño. Algo que me esta sacando el sueño es un juego llamado GNU Chess, un ajedrez hecho para GNU/Linux, es muy muy bueno.
GNU Chess es un programa de computadora para jugar ajedrez. Es uno de los más antiguos juegos de ajedrez en computadora para los sistemas basados en Unix y ha sido portado hacia otras plataformas. El GNU Chess project (Proyecto de Ajedrez GNU) es una de las partes más viejas del paquete de software GNU, habiendo comenzado en 1984. La primera versión del GNU Chess fue escrita por Stuart Cracraft.1 Todas las versiones subsecuentes antes de la versión 5 fueron escritas por John Stanback.
Todavía no le gano pero ya va a llegar el momento!!
Wow ebook
jueves, 11 de noviembre de 2010
Manual de Json

JSON, acrónimo de JavaScript Object Notation, es un formato ligero para el intercambio de datos. JSON es un subconjunto de la notación literal de objetos de JavaScript que no requiere el uso de XML.
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 semántico de JSON.
sábado, 6 de noviembre de 2010
maven 3
Los desarrolladores de Apache Maven (en su mayoría empleados de Sonatype) han estado trabajando desde hace tiempo en la versión 3 de esta popular herramienta para compilación de proyectos Java. La semana pasada han liberado la primera versión beta y Michel Pronschinske en DZone ha hecho un breve repaso de lo nuevo que viene en Maven 3.
Lo más importante para los usuarios de Maven, es que se ha puesto especial énfasis en conservar la compatibilidad con las versiones previas. Por lo que prácticamente para empezar a usarlo en tus proyectos hechos con Maven 2, no tendrás que hacer ninguna modificación, más allá de corregir declaraciones de dependencias duplicadas y la forma de declarar los plugins.
En cuanto a características nuevas la más interesante es el soporte para extension points. Herramientas que colaborarán de forma integral con Maven 3 para añadir funcionalidades.
Entre estas herramientas, destaca Polyglot Maven (http://polyglot.sonatype.org/), que permite construir los POM ya no en XML sino usando lenguajes soportados por la JVM. Por ahora, Groovy, Scala y Clojure. Un poco en la línea en que Gradle hace uso de Groovy para estos fines.
Otra herramienta que hace uso del extension point es Maven Shell. Un shell para ejecutar maven que da ciertos beneficios como caching de archivos POM, integración con arquetipos, integración con nexus, con hudson, etc. La idea es que si lo usas podrás reducir tus tiempos de compilación y construcción de proyectos Maven.
También han mejorado m2Eclipse, el plugin oficial para integración con el IDE Eclipse. Ahora prometen mejorar el desempeño de Maven dentro de Eclipse en rango del 200 al 300%. Además de mejorar el soporte para las tareas de Maven.
Internamente, Maven 3 ha sufrido una completa reestructuración que ha llevado a cambios tan importantes como quitar a Plexus como libreria IoC (Inversión de Control) y ahora usan Google Guice y ya tienen soporte para OSGi.
Ya puedes probar Maven 3 descargándolo del sitio de Apache (http://maven.apache.org/download.html) Por el momento no hay mucha documentación sobre las nuevas features del producto, pero seguramente y como Sonatype ha hecho con Maven 2, en el futuro próximo la tendremos.
miércoles, 27 de octubre de 2010
La batalla de los lenguajes
http://www.infotechnology.com/notas/249451-informatica-la-batalla-los-lenguajes-
sábado, 23 de octubre de 2010
LiquiBase

LiquiBase es una base de datos con una premisa: “Las bases de datos también cambian porque no administrar estos cambios”. Si uno desarrolla código y usa un software de control de versiones, porque no controlar las diferentes versiones de la base de datos.
LiquiBase provee :
Merging de cambios
Branches
Gestión de datos de producción, así como varios conjuntos de datos de prueba
Updates automatizadas o generación de secuencias de comandos SQL que puede ser aprobado y aplicado por un DBA
Database “diff”
Generación documentación de cambios
Estas caracteristicas son muy interesantes y utiles. Me da curiosidad el diff de bases de datos.
Sin duda un producto que hay que probar.
Y lo mejor es que es open source, licencia Apache 2.
Dejo links:
http://www.liquibase.org/manual/home
lunes, 18 de octubre de 2010
TDD Static vs. Dynamic
miércoles, 13 de octubre de 2010
MongoDB
Escuchando un poco de Javier Malosetti, hice un trabajo freelance con mongoDB y ruby. La verdad me costo un toque, no tengo mayor experiencia con estas tecnologías. Pero quede maravillado con mongoDb, una base noSQL que esta de moda, es Open Source y la bautizaron los que saben como la mysql de las bases noSQL, muy simple.
Mongodb es una base documental que guarda los datos con un formato “like json” que se llama bson; este formato es un mapa clave valor el cual se puede representar de diferentes maneras en diferentes lenguajes:
JavaScript: {"foo" : "bar"}
Perl: {"foo" => "bar"}
PHP: array("foo" => "bar")
Python: {"foo" : "bar"}
Ruby: {"foo" => "bar"}
Java: DBObject obj = new BasicDBObject("foo", "bar");
Para instalarlar MongoDb solo hay que descomprimir un tar o zip depende de que sistema operativo elijan luego crear el directorio data
C:\> mkdir data\dbY listo!! Se van a la carpeta bin y ejecutan mongod.exe/.sh (según el S.O.) y de esta forma levantan el servicio, seria como levantar el motor de base de datos.
Bueno ahora podemos probarlo ejecutando mongo.exe/.sh se abrira un administrador símil a un software de consulta de base de datos. Por defecto mongo se ejecuta sin seguridad y el software de consulta esta en la base test.
C:\> cd \my_mongo_dir\bin
C:\my_mongo_dir\bin
> mongo
> // the mongo shell is a javascript shell connected to the db
> 3+3
6
> db
test
> // the first write will create the db:
> db.foo.insert( { a : 1 } )
> db.foo.find()
{ _id : ..., a : 1 }
> use mydb
switched to db mydb
Vamos a insertar datos con ruby. Para la próxima lo hacemos con Java.
class MongoDBInsert
def initialize(host, port, db, user_name="", password="")
@db = Mongo::Connection.new(host, port).db(db)
# @db.authenticate(user_name, password)
end
def insert(objetos)
coll = @db.collection("objetos")
objetos.each do |objeto|
coll.insert(objeto.index => objeto.to_str)
end
end
end
if __FILE__ == $0
...
mongoDBInsert = MongoDBInsert.new("localhost", 27017, "test")
mongoDBInsert.insert(objects)
end
Dejo links:
http://www.mongodb.org/display/DOCS/Quickstart
http://www.mongodb.org/display/DOCS/Home
Para la próxima insertamos usando java!!
miércoles, 6 de octubre de 2010
Cuarta Conferencia Internacional de Smalltalk
La Fundación Argentina de Smalltalk (FAST) se complace en anunciar la celebración de su 4ª Conferencia Internacional de Smalltalk – Smalltalks 2010, que tendrá lugar en la Universidad Tecnológica Nacional de la ciudad de Concepción del Uruguay (provincia de Entre Ríos) los días 11, 12 y 13 de Noviembre de 2010.
Es un orgullo como Entrerríano, que se hagan estos congresos en nuestra provincia.
Dejos Links:
http://www.frcu.utn.edu.ar/index.php
http://www.clubsmalltalk.org/web/
http://www.fast.org.ar/
martes, 5 de octubre de 2010
Scala Solutions
Copie esta noticia de javahispano, se que eso no se hace. Lo que sucede es que siempre desde el blog se comento los beneficios de scala, y además me gusta mucho. Por lo tanto quiero compartir la siguiente noticia:
El creador del lenguaje Scala ha creado una empresa llamada Scala Solutions para dar soporte empresarial a este lenguaje híbrido entre OOP y Programación funcional.
La empresa dará soporte al lenguaje y ofrecerá productos alrededor de el. Uno de los primeros será una herramienta de migración para resolver incompatibilidades binarias de productos hechos con versiones de Scala anteriores. Esta herramienta estará lista para la versión 2.9 del lenguaje.
Además de eso, la empresa dará consultoría y cursos; ya se anunciaron los primeros en Amsterdam, Londres y Paris.
Scala es uno de los lenguajes para la JVM que están generando mucho ruido ya que es una interesante mezcla entre programación orientada a objetos y los beneficios de la programación funcional; además de que ofrece type safety y un desempeño igual (en algunos casos mejor) al del lenguaje Java. Pero a pesar de que algunas empresas ya apuesta a él como FourSquare y Etherpad antes de la adquisición por Google, seguía teniendo el estigma de ser un lenguaje "académico" por haber sido creado y mantenido por investigadores.
La idea de esta empresa es profesionalizar el lenguaje y dar soporte empresarial que mejore la recepción del mismo. Algo que ya ha funcionado a otros productos open source como Hibernate y Spring.
martes, 28 de septiembre de 2010
Migración a Spring 3
Dejo el POM:
org.springframework
spring-core
${org.springframework.version}
org.springframework
spring-expression
${org.springframework.version}
org.springframework
spring-beans
${org.springframework.version}
org.springframework
spring-aop
${org.springframework.version}
org.springframework
spring-context
${org.springframework.version}
org.springframework
spring-context-support
${org.springframework.version}
org.springframework
spring-tx
${org.springframework.version}
org.springframework
spring-jdbc
${org.springframework.version}
org.springframework
spring-orm
${org.springframework.version}
org.springframework
spring-oxm
${org.springframework.version}
org.springframework
spring-web
${org.springframework.version}
org.springframework
spring-webmvc
${org.springframework.version}
org.springframework
spring-webmvc-portlet
${org.springframework.version}
org.springframework
spring-test
${org.springframework.version}
test
3.0.4.RELEASE
UTF-8
Y dejo Link:
http://blog.springsource.com/2009/12/02/obtaining-spring-3-artifacts-with-maven/
