Translate

domingo, 19 de septiembre de 2010

Lift Web Framework


Lift es otro framework web. El cual corre bajo la plataforma java, pero usa Scala como lenguaje. Si miramos la pagina de lift nos indica que es seguro, productivo y fácil de mantener.

Lift nació con las virtudes de frameworks web más famosos como Rails y Django. Lift tiene la ventaja del lenguaje scala que al ser un lenguaje script y multiparadigma permite desarrollar rápidamente, pero como corre en la plataforma java se puede comunicar con librerías jar ya desarrolladas.

Lift puede empaquetarse como un war y funcionar en cualquier servidor web java como Tomcat o Jetty.

Lift es un proyecto open source distribuido bajo licencia Apache V2.0

Dejo, como siempre, links:

http://liftweb.net/

http://lift-example.appspot.com/


miércoles, 15 de septiembre de 2010

SyntaxHighlighter

Luego de un consejo de un importante lector del blog (Roman) , y varios comentarios de diferentes lectores hemos agregado un formateador de código!!

Un esfuerzo más para que los lectores se sientan más cómodos, el plugin que agregamos se llama SyntaxHighlighter, dejo la pagina y una demostración.

http://alexgorbatchev.com/SyntaxHighlighter


package tutorial;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorld extends ActionSupport {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute() {
name = "Hello, " + name + "!";
return SUCCESS;
}
}

lunes, 13 de septiembre de 2010

¡Feliz día del programador!

Hoy es el 256º día del año, de modo que –apropiadamente– se celebra el Día del programador. Según parece en Rusia además consiguieron que fuera oficialmente un día festivo para quienes se dedican a ello como profesión.

Aprender a programar en Ruby


Encontré un libro muy recomendable para aprender a programar en Ruby

http://pine.fm/LearnToProgram/

Espero que les sea útil!!!

sábado, 11 de septiembre de 2010

Editor HTML online.

Siempre que tengo que editar algo en HTML, CSS o hacer algo con javascript, jquery, etc dudo, dado que no trabajo todos los días con estas tecnologías la memoria juega una mala pasada. Una practica interesante es ir a un blog de notas probar lo que se quiere hacer y luego aplicarlo en la pagina, esto es muy bueno especialmente cuando se esta probando algo en javascript.

Buscando en internet encontré una pagina que permite editar HTML, javascript, etc. online. Esta muy no necesito más el blog de notas, además se pueden importar librerías como jquery, prototype, dojo, etc.

http://jsbin.com/unuyi/edit#source

Espero que les sea útil!!!

sábado, 4 de septiembre de 2010

FUSE


FUSE es una comunidad que promueve el uso de productos Apache para el uso de SOA. La idea es crear una comunidad Open Source de uso de SOA, de esta forma poder compartir experiencias, conocimiento, etc.

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

viernes, 3 de septiembre de 2010

Apache click y dobleClick


Apache click es un framework web, diseñado para ser eficiente y fácil de desarrollar, si tenemos en cuenta estos objetivos comprobamos que cumple altamente con las expectativas, resumiendo “alto framework”. La única desventaja es que esta muy inmaduro todavía, por ejemplo no trae una forma estándar de integrarse con Spring. Pero no todo esta perdido existe un proyecto llamado doble click que integra Apache click con Spring y ofrece unas anotaciones que nos hacen la vida más fácil aun.
Bueno vamos hacer un ejemplo, creamos un proyecto web con maven.

$ mvn archetype:create -DarchetypeartifactId=maven-archetype-webapp -DgroupId=com.example -DartifactId=example-war-project

Luego agregamos las dependencias al pom:

<!-- Apache Click -->

<dependency>
<groupId>org.apache.click</groupId>
<artifactId>click</artifactId>
<version>2.2.0</version>
</dependency>

<dependency>
<groupId>org.apache.click</groupId>
<artifactId>click-extras</artifactId>
<version>2.2.0</version>
</dependency>

<dependency>
<groupId>org.apache.click.doubleclick</groupId>
<artifactId>inject</artifactId>
<version>1.0</version>
</dependency>

<dependency>
<groupId>org.apache.click.doubleclick</groupId>
<artifactId>injectspring</artifactId>
<version>1.0</version>
</dependency>

<!-- /Apache Click -->

Necesitamos el siguiente repositorio:

<repositories>
<repository>
<id>doubleclick-repo</id>
<url>https://doubleclick.googlecode.com/svn/repo/</url>
</repository>
</repositories>

Ahora debemos configurar web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
<display-name>Web Application</display-name>
<description>Web Application</description>

<servlet>
<servlet-name>ClickServlet</servlet-name>
<servlet-class>org.apache.click.ClickServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>ClickServlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>redirect.html</welcome-file>
</welcome-file-list>

</web-app>

Tenemos que crear un html redirect.html dado que el interceptor no puede tomar la pagina de inicio ya que el filtro dice *.htm entonces hacemos el redirect.htm:

<html>
<head>
<meta http-equiv="Refresh" content="0;URL=home/home.htm">
</head>
</html>

Ahora todas las paginas van a ir a home/home.htm, las paginas de apache click estan formadas con 2 archivos un htm y una clase java. Pero antes de crear estos archivos veamos el archivo click.xml necesario para que funcione apache click:

<?xml version="1.0" encoding="UTF-8"?>
<click-app>

<pages package="com.example.web"/>

<page-interceptor classname="org.apache.click.doubleclick.inject.DependencyInjectorPageInterceptor"
scope="application"/>

<controls>
<control classname="org.apache.click.doubleclick.injectspring.SpringControl" />
</controls>

</click-app>

Ahora veamos la HomePage.java :

/**
*
*/
package com.example.web.home;


/**
* Home Page
*
* @author emanuel
*
*/
public class HomePage extends Page {

private static final long serialVersionUID = -2868696724309671438L;

@InjectBean
private String title;

private String titlePage

@Override
public void onInit() {
this.titlePage = "Home";
}

}

Veamos home.htm :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="keywords" content="blog" />
<meta name="description" content="Blog Website" />

<title>Example - $titlePage </title>

</head>

<body>

<h1> $title </h1>

</body>
</html>

Buenísimo, ahora vamos a configurar applicationContext.xml de Spring :

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


<bean id="hola" class="java.lang.String" >
<constructor-arg index="0" value="HOLA MUNDO!!" />
</bean>

</beans>

Y con esto terminamos, como ven doble click injecta el bean hola por medio de inferencia por tipo.

Espero que les guste el ejemplo, dejo links como siempre:

http://click.apache.org/
http://code.google.com/p/doubleclick/wiki/clickspring
http://emanuelpeg.blogspot.com/2010/02/apache-click.html

sábado, 28 de agosto de 2010

Firebug para jquery


Firebug es un plugin para firefox imprescindible para un desarrollador web, dado que nos permite entre otras funcionalidades debugear javascript.

Existen diferentes extenciones de firebug, entre ellas encontré fireQuery, que nos facilita el debug para cuando usamos JQuery.

Dejo los links:

http://firequery.binaryage.com/

martes, 17 de agosto de 2010

Flex 4


Flex 4 hace rato que esta en el mercado, pero husmeando por MadeInFlex encontré un recopilado de nuevas características. Como sabrán Flex 4 cambio bastante, tanto que tuvo que romper compatibilidad con la versión 3.
Dejo el link:

http://www.madeinflex.com/2010/08/15/serie-introduccion-flex4/

Léanlo que esta bueno.

Saludos!!

domingo, 15 de agosto de 2010

Libro Gratuito de SEO

En un momento libre de mi vida (hace un rato) me puse a hacer seo y a investigar un poco para posicionar el blog, googleando encontré el siguiente libro gratuito:

http://www.slideshare.net/IAB_Spain/seo-optimizacin-de-webs-para-buscadores-buenas-prcticas-y-resultados

sábado, 14 de agosto de 2010

Productos BPM Open Sources

En el mercado existen gran variedad de herramientas BPM y BPEL open source, las más importantes son:

  • Intalio BPM (edición community) : Herramienta BPM rica en funcionalidades que utiliza la noción de modelado de procesos de negocio BPMN para generar orquestaciones basadas en BPEL. Al ser una versión open source de un producto comercial utiliza librerías de la versión de pago, este software fue concebido para permitir el desarrollo y luego cuando se ponga en producción se compre la versión estándar.
  • Motor ActiveBPEL: Motor BPEL eficiente y sumamente cuidado. Los modelos pueden diseñarse utilizando su herramienta Designer que es gratuita pero no es open source. La funcionalidad más importante, como puede ser las instancias de procesos persistentes a una base de datos o el control de versión de los procesos, únicamente esta disponible en la versión Enterprise.
  • Apache ODE: Apache ODE (Orchestation Director Engine) es un motor BPEL de ejecución de procesos. Su API permite extenderlo de muchas maneras y por lo tanto, no esta limitado a utilizar únicamente SOAP. Es un motor liviano que puede integrarse fácilmente con productos de Apache como Service Mix. Apache ODE no posee editor gráfico para deseñar los procesos pero se puede contar con un plugin que se puede instalar en Eclipse.
  • Jboss JBPM: Es un motor de workflow maduro, eficiente y ligero que va siempre de la mano de la herramienta de modelado basado en Eclipse. Usa su propio lenguaje de grafo en xml llamado jPDL (jBPM process Definition Language) y tiene soporte para todos los nodos de modelado principales, como puede ser las decisiones y las bifurcaciones. Se puede extender de manera sencilla y no está restringido su uso a ningún entorno de despliegue. A diferencia de otras alternativas, no existe una actualización a la versión comercial y no hay ninguna funcionalidad que esté restringida.
  • ObjectWeb Bonita: Se trata de un motor de workflow potente y compatible con XPDL. Es un proyecto maduro y bien documentado. Incluye excelente integración con herramientas graficas de actividades humanas (por ejemplo, un generador de formularios) No dispone de ningún editor de software libre y necesita el servidor de aplicaciones JOnAS (Java Open Application Server)
  • WSO2 Bussiness Process Server: El producto está basado en Apache ODE e incluye una interfaz administrativa basada en la Web y funcionalidades de simulación.
La pregunta del millon es cual usar? Lo mejor es elegir los 100% libres, y a la vez que tenga madurez en el mercado si tomamos estas dos premisas JBPM de la gente de JBoss es el ganador. Aunque yo antes de tomar una decisión de lleno jugaría con Apache ODE.

Ustedes usan uno de estos framework? Cual y porque?

viernes, 13 de agosto de 2010

PET


Yo no tengo ni la más mínima idea de python, pero la idea del blog es compartir conocimiento y apoyar a las comunidades.

En este caso presento una revista libre y gratuita, llamada PET: Python entre todos. PyAr escribio una revista para la comunidad.

Para leerla: http://revista.python.org.ar

Felicitaciones!!

Se viene Tomcat 7 Beta !!


Después de más de tres años desde el lanzamiento de Tomcat 6, el popular servidor Web hecho en Java, la Apache Software Foundation (ASF) ha anunciado la primera versión beta de Tomcat 7. De acuerdo con la ASF, hasta la fecha de hoy, el Tomcat se ha descargado más de 10 millones de veces. Entre la nueva versión beta está donando la plena aplicación de la especificación Java Servlet 3.0, Java Server Pages (JSP) 2.2, y el Expression Language (EL) 2.2, que fue parte de la especificación de Java EE 6 (Java Enterprise Edition) terminó en diciembre 2009. Como resultado, el medio ambiente
tiempo de ejecución sólo es compatible con el Java Runtime Environment (JRE) 6.0, que a su vez, la necesidad de actualizar el compilador integrado Eclipse.

Los desarrolladores también están trabajando en la seguridad privada y de rendimiento para el 7 de Tomcat. Es cambios ya son visibles. Un ejemplo son las aplicaciones Web, Gerente y Host Manager, Que ahora tienen nuevas reglas de autorización en su propia URL para que sea más fácil identificar pérdidas de memoria de aplicaciones Web a través de la máquina virtual Java (JVM), la aplicación del Administrador de ahora contiene un botón para la dirección http://localhost:8080/manager/html/findleaks Para hacer un análisis de uso de memoria.

lunes, 9 de agosto de 2010

Gambas


Gambas es un lenguaje derivado de visual basic, pero no es una copia. Gambas es un lenguaje de programación libre. Es distribuido con licencia GNU GPL. Cabe destacar que presenta ciertas similitudes con Java ya que en la ejecución de cualquier aplicación, se requiere un conjunto de librerías interprete previamente instaladas (Gambas Runtime) que entiendan el bytecode de las aplicaciones desarrolladas y lo conviertan en código ejecutable por el computador.

Permite crear formularios con botones de comandos, cuadros de texto y muchos otros controles y enlazarlos a bases de datos como MySQL, PostgreSQL o SQLite además de facilitar la creación de aplicaciones muy diversas como videojuegos (utilizando OpenGL), aplicaciones para dispositivos móviles (en desarrollo pero muy avanzado), aplicaciones de red (con manejo avanzado de protocolos HTTP, FTP, SMTP, DNS), entre otras.

Esto es interesante para un programación Basic que quiere desarrollar en linux. Para mi una buena oportunidad para aprender basic.

Dejo link:


sábado, 7 de agosto de 2010

¿Que herramienta de registro de servicios utilizar?

El objetivo de tener un registro de las funcionalidades desarrolladas en una arquitectura SOA es que todos los desarrolladores conozcan los servicios y no exista duplicidad de servicios. Para esto se podría utilizar diferentes herramientas de propósito más general, como una wiki o una base LDAP pero es mejor utilizar herramientas de objetivo particular. En el mercado existen herramientas open sources para el registro de servicios. Entre los más importantes podemos mencionar a MuleSource Galaxy y Registro de WSO2.

MuleSource Galaxy: Esta basado en un diseñador de repositorios para la gestión de artefactos de software basados en SOA. Entre ellos se incluye la configuración del ESB Mule, WSDL, archivos xml y configuración de Spring. Es una perfecta herramienta de registro cuando se utiliza ESB mule ya que se integra totalmente con ese producto.

Registro de WSO2: Esta diseñado para almacenar, catalogar, indexar y gestionar metadatos de empresa relacionados con artefactos SOA. Ambienta se incluye el control de versiones y su rapidez lo hace un buen candidato para sistemas empotrados.

El producto Galaxy tiene soporte para las mismas funcionalidades generales que el registro de WSO2, como puede ser la categorización de recursos, la monitorización y la gestión de ciclo de vida y de la dependencia. Además, su versión 1.5 incluye nuevas funcionalidades como la replicación (disponible solo la versión de pago) tiene soporte para scritps y una API de eventos.

Hay que decir que el producto de registro WSO2 es muy sencillo de utilizar y gana a Galaxy gracias a su mejor infraestructura para Atom/Rss y sus funcionalidades de control de versiones y de restauración de versiones anteriores. Las funcionalidades más atractivas de Galaxy se encuentran en la versión de pago mientras que la herramienta de registro de WSO2 es 100% libre y gratuita.

Cual utilizar? como todo en esta vida depende, Si usamos Mule hay que optar por la integración de sus productos por lo tanto en buena opción MuleSource Galaxy, en otros casos puede ser uno u otro. Yo pienso que WSO2 es 100% libre y gratuita, por esta razón y la facilidad de uso, creo que es mejor optar por la herramienta de registro de WSO2.