Utilizar Mac OS X para desarrollar

Mac

Como convertir tu Mac en una maquina para desarrollo software. Pues sí, he cambiado de equipo. Llevaba ya algún tiempo pensando en cambiar mi PC con Windows 7 por otro sistema operativo. Hace tiempo comencé a utilizar en el trabajo Linux y la comodidad de utilizar el terminal ha podido conmigo. Así que he tengo un MacBook Pro, aunque ahora viene lo difícil. ¿Como convertir mi MacBook Pro en una equipo cómodo para desarrollar Software?
Lo primero que he hecho es planificar que necesito y como organizarlo para tenerlo todo a mano y que sea fácil de usar.

¿Qué necesito instalar para poder desarrollar software?

Todo depende de en que lenguaje desarrollemos, como mínimo un buen editor de texto, un IDE y lo mínimo para desarrollar.
En nuestro caso vamos a instalar en el MacBook Eclipse IDE, SublimeText2, el editor de MarkDown para Mac Haroopad, y el stack tecnológico Java, Python y Ruby. Ya se que Mac OS viene con Ruby, pero creo que es mucho más cómodo utilizar RVM, de la misma manera Mac OS viene con Python pero lo mejor sera utilizar pip para gestionar paquetes. De cambio también aprenderemos a utilizar el terminal para ir instalando los distintos programas. Continúa leyendo «Utilizar Mac OS X para desarrollar»

Anuncio publicitario

Review de generadores de sitios html estáticos

Llevo un tiempo dándole vueltas a  esto de WordPress. Actualmente escribo los post en Word (sí en Word) ya que hay veces que no dispongo de conexión a Internet y porque conozco algunos de los atajos rápidos de teclado. El problema es el formato, al pasarlo a WordPress no queda como me gustaría y además a veces Word es un poco “caprichoso” con el estilo.

Así que me he puesto a buscar soluciones alternativas y una de ellas es utilizar Markdown. Para quien no lo conozca es un lenguaje de marcado ligero con el que añadir formato fácilmente a textos web, para utilizarlo en WordPress solamente es necesario un plugin

.

Aunque me ha picado el gusanillo de utilizar alguna herramienta que genere páginas estáticas, como Jekyll(http://jekyllrb.com/ ), Hyde(https://github.com/hyde/hyde ), pelican (https://github.com/getpelican/pelican/), Nikola (http://getnikola.com/), secondcrack(https://github.com/marcoarment/secondcrack), Spress (https://github.com/yosymfony/Spress). Como podemos ver hay muchísimas, por ello vamos  a probar unas cuantas y comentar sus impresiones.

Jekyll

Es de los generadores estáticos más utilizados, está escrito en Ruby y por ello es necesario tenerlo instalado en Windows. Podemos utilizar Markdown y tiene muchos plugins. Aquí podemos encontrar una lista de personas que utilizan Jekyll https://github.com/jekyll/jekyll/wiki/Sites

Continúa leyendo «Review de generadores de sitios html estáticos»

Poco a poco con Maven, Spring, Hibernate

Para mi PFC tengo que desarrollar unos cuantos portlet, por lo que me estoy introduciendo en el mundo de Liferay utilizando sobre todo los libros “Liferay In Action”, “Portlets in Action” y “Aprende OpenXava con ejemplo”.

Anteriormente ya hemos hablado aquí de cómo implementar un portlet “hola mundo” e incluso un portlet para procesar un formulario. Ahora podríamos segur con un portlet que manejara la base de datos, pero antes de ponerme con al lío a tirar SQL´s quiero aprender Hibernate.

Vamos a dividir este post en 3 partes, la primera hablaremos de la arquitectura, de cómo empezar el proyecto utilizando Maven, Hibernate, MySQL, Eclipse y todas esas cosas, en el segundo post comentaremos como configurar todos los archivos  y en el tercer post contaremos como es la implementación de la aplicación.

Esta serie de post están basados en los tutoriales:

Continúa leyendo «Poco a poco con Maven, Spring, Hibernate»

Openxava y los Test JUnit

En anteriores post ya hemos desarrollado un poco con Openxava. Pero el ciclo no esta completo, debemos testear nuestra aplicación y lo mínimo (mínimo, mínimo) debe ser al menos una serie test funcionales (si son automáticos mejor). Así que pare ello utilizaremos JUnit.

JUnit es un conjunto de bibliotecas  que son utilizadas en programación para hacer pruebas unitarias de aplicaciones Java.

OpenXava nos proporciona una clase llamada ModuleTestBase que por medio de HTMLUnit permite automatizar las pruebas como si las estuviésemos haciendo desde el navegador.

Creando una prueba unitaria para Openxava

Vamos a partir de que tenemos un modulo Customer que funciona. Openxava es sencillo y para crear un test solo tenemos que crear una clase llamada CustomerTest dentro del paquete org.openxava.invoicing.test La clase de test debe extender a ModuleTestBase.

Así que allá vamos:

package org.openxava.invoicing.test;
import org.openxava.tests.*;
public class CustomerTest extends ModuleTestBase{
public CustomerTest(String testName) {
 super(testName, 
 "Invoicing", 
 "Customer"); 
 }
}

Esto es solo el principio, ahora tenemos que crear el test propiamente dicho.

Continúa leyendo «Openxava y los Test JUnit»

Un poco más sobre openxava

Ya hemos hablado anteriormente de Openxava, ahora vamos a intentar dar un acercamiento a como funciona Openxava y de que va eso del desarrollo dirigido por modelos(MDD), Model Driven Architecture,…

Partamos de los siguientes conceptos:

  • MDA es el acrónimo de Model Driven Architecture (Arquitectura Dirigida por Modelos), un concepto promovido (pero no creado) por la OMG, que propone basar el desarrollo de software en modelos especificados utilizando UML, para que, a partir de esos modelos, se realicen trasformaciones que generen código u otro modelo, con características de una tecnología particular (o con menor nivel de abstracción). MDA define un framework para procesar y relacionar modelos. 
  • Un modelos es una descripción de todo o parte de un sistema escrito en un lenguaje bien definido. El hecho que un modelo este escrito en un lenguaje bien definido tiene una gran importancia para MDA, ya que supone que el modelo tienen asociadas una sintaxis y semántica bien definidas. Esto permite la interpretación automática de transformadores o compiladores de modelos, fundamentales en MDA.
  • Un Componente de Negocio consiste en todos los artefactos de software relacionados con un concepto de negocio. Componente de Negocio es tan solo una forma de organizar el software.

Según Javier Paniza en su libro «Aprende Openxava con ejemplos» básicamente, MDD establece que únicamente se ha de desarrollar la parte del modelo de una aplicación, y el resto se generará a partir de este modelo.

Desafortunadamente, el uso de MDD es muy complejo. Requiere de una gran cantidad de tiempo, pericia y herramientas. Aun así la idea tras MDD sigue siendo muy buena, por lo tanto OpenXava toma esa idea de una manera simplificada. Usa simples clases de Java con anotaciones para definir el modelo, y no usa generación de código, en vez de eso toda la funcionalidad de la aplicación es generada  dinámicamente en tiempo de ejecución.

Ya sabemos de que va esto, pero vamos a entrar en el dominio de OpenXava:

Continúa leyendo «Un poco más sobre openxava»

Empezar a utilizar Maven en un proyecto Java

Cuando realizamos proyectos Java siempre tenemos varias tareas que realizar. La primera suele ser crear una estructura de directorios pensando en un hueco para los archivos fuentes, otro para iconos, ficheros de configuración o datos, directorio para dejar los .class o el .jar, para dejar el javadoc, etc, etc.

También existen otras tareas que realizamos con cierta frecuencia, como borrar los .class, compilar, generar la docume

Seguramente también dependamos de otros jar como, como drivers debase de datos, JUnit para clases de test, log4j para nuestra salida de log, etc, etc. Tendremos que copiar todos esto jar externos en algún sitio de nuestro proyecto e incluirlos.

Continúa leyendo «Empezar a utilizar Maven en un proyecto Java»

Como dar más memoria a eclipse

Últimamente estoy haciendo un uso intensivo de Eclipse y un par de veces se me ha cerrado de manera «inesperada», sin mensaje de error ni nada. Creo que una de las veces recibí  al menos el mensaje de error: «Out of memory» (si no recibimos el error, seguramente podremos verlo en el archivo .log).

Buscando en Internet he visto que es «normal»

¿que fue lo que pasó? Es simple, la máquina virtual de java asigna determina cantidad de memoria como máximo para determinadas estructuras internas, y al ser esta cantidad insuficiente, provocó un error y se cerró la aplicación.

Aquí un par de soluciones al problema

Continúa leyendo «Como dar más memoria a eclipse»