May 04, 2012

jorgeu

limit/offset para paginación en MySQL y PostgreSQL algo que manejadores propietarios no ofrecen

Estaba yo un día programando sin hacerle daño a nadie cuando veo que a Oracle no le gusta mi sencillo query:

              select * from _users where active=1 
               limit LIMIT offset OFFSET

Que había funcionado muy bien en Postgres y MySQL. Entonces me imaginé Oracle usaría palabras clave diferentes para paginar. Luego de ver la documentación resulta que el query debo escribirlo como:

              select *
               (select aa.*, rownum rnum from
                 (select * from _users where active=1) xx
                where rownum<=(LIMIT+OFFSET)) yy
              where yy.rnum>=OFFSET

Entonces me quedé procesando... y dije "NO, SQL Server es para dummies asi que seguro tiene una forma más fácil". Luego de googlear un poco vi que la cosa podría ser Aún más retorcida.

Yo me quedo con el limit/offset de MySQL y PostgresSQL

Seguir leyendo...

May 04, 2012

jorgeu

Empresas que prosperan con productos abiertos

Esta fue la presentación que mostré en el Flisol 2012 Maracaibo el pasado 28 de abril.

Mi intención fue mostrar que desarrollar un producto y ofrecerlo software libre no necesariamente es regalar nuestro trabajo. Son varios los modelos de negocio que pueden sostener un crecimiento empresarial desarrollando software libre.

Seguir leyendo...

Tags: flisol

Mar 18, 2012

jorgeu

Ruby on Rails. Un frameworks que deberías tener en cuenta

Ruby on rails Logo

Sin importar en qué framework o lenguaje estés trabajando y cuán satisfecho estés siempre es recomendable tener presente cuáles framewors están ganando popularidad.

Es posible que para tu próximo proyecto se te exija usar alguno de ellos y nadie querrá que te nieges por "no saber nada de ese framework".

En este artículo se discute brevemente Ruby on Rails. Un framework que sigue creciendo en popularidad a varios años de su creación.

Seguir leyendo...

Tags: ruby rails

Jan 08, 2012

jorgeu

Groovy como alternativa a Java sin dejar la JVM

Groovy logo

En un post anterior nuestra amiga Osledy nos mostró un video donde se daba una introducción a Groovy.

Luego de verlo me animé a revisar un poco el lenguaje y lo que puede hacerse. Resulta que ofrece casi la misma funcionalidad de Ruby casi con la misma sintaxis. Pero aún así seguimos dentro de la JVM y podemos acceder a cualquier clase Java.

En este post revisamos brevemente algunas similitudes con Ruby y cómo la integración con Java es directa.

Seguir leyendo...

Nov 06, 2011

jorgeu

Implementando un SNAKE basico en Java

SNAKE screenshot

Una manera de divertirse programando es haciendo un juego con el que luego podamos pasar ratos libres. Además es una buena manera de compartir una aplicación hecha por nosotros con nuestros amigos y familiares.

El juego SNAKE fue creado en la década del 70 y hoy día sigue siendo un juego bastante popular. Los teléfonos celulares Nokia incluyeron el juego por varios años. Razón por la cual creció enormemente el interés por este juego.

En este artículo mostraré una implementación en Java bien sencilla del juego que puede ser jugada por varios minutos.

Seguir leyendo...

Sep 25, 2011

jorgeu

Implementando paginado continuo al estilo google images con JQuery+PHP+JSON

De hace un tiempo hemos visto el principio del fin de las páginas que muestran información de la página 1 y ofrecen ir a la siguiente, la 2, la 3... la última. Uno de los casos más vistosos es Google Images. Al finalizar la página de resultados se ofrece un botón para cargar más en sitio sin abrir otra página.

En este post veremos una manera de implementar algo parecido con JQuery. Del lado del servidor se simplificará con PHP+JSON. Del lado de la página usaremos rutinas JavaScript+jQuery lo más sencilla posible.

Seguir leyendo...

Sep 24, 2011

jorgeu

Introducción a LISP

made with lisp

LISP es una abreviatura del inglés para "List Processing" o "Procesado de Listas". Es uno de los primeros lenguajes de programación de alto nivel que se crearon. Inicialmente su uso era el cálculo científico y por muchos años fue el lenguaje preferido para la inteligencia artificial. Existen muchos dialectos de los cuales destacan Common Lisp, Scheme y Clojure.

Programadores formados en la década 2000-2010 en adelante (como es mi caso) probablemente no vieron rastro alguno de LISP en las materias que vieron. En este post compartiré una revisión que he hecho de Common LISP por nada más que mera curiosidad.

Seguir leyendo...

Tags: lisp

Sep 20, 2011

jorgeu

Rendimiento Java vs. Ruby vs. JRuby

Java Ruby

Una de las páginas sobre pruebas de rendimiento que más frecuento es Computer Language Benchmarks Game donde se muestra el redimiento de varios lenguajes de programación en problemas cuya solución usa muchos recursos del computador.

Desde hace años tenía la concepción de que el runtime de Ruby era lento y pesado basado en las pruebas vistas en esa página. También de que JRuby debería superarlo ampliamente. Recientemente vuelvo a revisar y resulta que las cosas han cambiado con los años.

Seguir leyendo...

Aug 29, 2011

jorgeu

MVC en Java con Freemarker

freemarker logo

En Java como en otras plataformas/lenguajes hay diversas opciones para implementar aplicaciones Web que sigan el patrón MVC.

En esta oportunidad mostraré un sencillo ejemplo de cómo el procesador de plantillas Freemarker puede ayudarnos en la tarea.

Seguir leyendo...

Tags:

Aug 28, 2011

jorgeu

Escribiendo un compilador (parte 1 - Introducción)

Una de las aplicaciones clásicas de la computación es la escritura de un compilador. Se requiere de extensas habilidades en el manejo de estructuras de datos y del entendimiento de cómo los programas que hacemos se ejecutan en las computadoras.

La idea es tener esa experiencia tuvieron grandes programadores como Niklaus Wirth, Richard Stallman y Ken Thompson. Todos ellos han escrito compiladores y nosotros también podemos hacerlo. La idea es mantener entrenado ese músculo de la programación.

Esta serie de posts irá poco a poco construyendo un pequeño compilador para un lenguaje hipotéticos que se planteará acá.

Seguir leyendo...