Noticias Weblogs Foros Wiki Código
Sponsors:

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

Anunciarse aquí

PlanetaCódigo en inglés

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

Proceso de Desarrollo / Development Process

Marzo 31st, 2006 - [Enlace local]



Este es un esquema de todo el proceso de desarrollo, imagen que viene en la revista ObjectiveView, los cuadros representan procesos que se componen de una serie de actividades y las flechas representan los documentos entregables en cada etapa, también se representan aquellos productos que alimentan a cada proceso, y destaco que se mencionan varios componentes que pueden ser ejemplificados con diagramas UML, como lo es Business Concept Models (Diagrama de Clases), Use Case Models (Diagrama de Casos de Uso), Arquitectures (Diagrama de Componentes, Diagrama de despliegues).













» Leer más, comentarios, etc...

Ingenieria de Software / Software Engineering

Proceso de Desarrollo / Development Process

Marzo 31st, 2006 - [Enlace local]

Este es un esquema de todo el proceso de desarrollo, imagen que viene en la revista ObjectiveView, los cuadros representan procesos que se componen de una serie de actividades y las flechas representan los documentos entregables en cada etapa, también se representan aquellos productos que alimentan a cada proceso, y destaco que se mencionan varios componentes que pueden ser ejemplificados con diagramas UML, como lo es Business Concept Models (Diagrama de Clases), Use Case Models (Diagrama de Casos de Uso), Arquitectures (Diagrama de Componentes, Diagrama de despliegues).




» Leer más, comentarios, etc...

AlexdwBlog()

Ajax para Flasheros

Marzo 31st, 2006 - [Enlace local]

Marc Palau ha desarrollado una librería para realizar llamadas tipo Loadvars desde HTML. La verdad es que para los que estamos acostumbrados a utilizar la clase loadvars esta librería nos resultará muy práctica y útil. http://javascript.es/apis/pajax.htm

» Leer más, comentarios, etc...

Flash 8 File Format (SWF y FLV)

Marzo 31st, 2006 - [Enlace local]

Ayer se publicaron las especificaciones de los formatos de fichero SWF y FLV para la version 8 del Flash Player. Podeis leer más en el blog de Tinic Uro.

» Leer más, comentarios, etc...

doblete en los kioskos

Marzo 31st, 2006 - [Enlace local]

Este mes de abril hacemos doblete de Cuaderno de Bitácora en los kioskos. Tanto Pc Actual como Personal Computer & Internet publican un análisis del programa….

» Leer más, comentarios, etc...

Más sobre Avalon…

Marzo 31st, 2006 - [Enlace local]

… y cómo está tratando Microsoft a los sufridos programadores de C++. Hace un tiempo probé varias betas de toda la farfulla sobre la siguiente versión del .NET (Avalaon, WinFX, etc.) y descubrí que no había soporte visual para el C++.

Me dije, “bueno, todavía no está. Ya lo pondrán”. Después, hastiado de tener que luchar con betas como si fueran releases (léase Visual Studio 2005 Release), me desintersé del Vista y sus novísimas tecnologías (léase en tono sarcástico) para centrarme en otras tareas más productivas (Tan desinteresado estoy que a mayo me caduca la subscripción a la MSDN y no pienso renovarla).

Pero ahora, el señor Nish (hay más entradas de lo mismo en su blog), me lo pone más clarito: de momento no está previsto soporte visual (asitentes y todo eso, diseñador de forms, etc.) para el C++/CLI utilizando el XAML y todos esos elementos de nueva concepción. O sea, que pese a los comentarios de Microsoft en contra (vaya, no encuentro ninguna referencia a ello), el C++/CLI seguirá siendo un lenguaje de segunda categoría dentro del .NET.

Bueno, sí que es un primera clase: en bugs sin solventar. Pues bien, gente de Microsoft, quiero que sepais que los programadores de C++ somos el corazón de Windows; todos los programas importantes están realizados en ese lenguaje. El VB es un juguete, y el C# casi también, sobre todo son ineficientes, y como sigáis tratándonos así os vais a quedar solitos.

» Leer más, comentarios, etc...

Chochurro

No me pude resistir

Marzo 30th, 2006 - [Enlace local]

En el blog Tecnología Obsoleta publicaba hoy Alejandro Polanco un recuerdo sobre aquellos recortables. No me pude resirtir y me monte el "seiscientos".... Todo aquel que tuvo uno ya sabe por qué.......

» Leer más, comentarios, etc...

Adiós, HWND, adiós

Marzo 30th, 2006 - [Enlace local]

Nish es uno de los gurús de MFC, C++/CLI, y siempre dice cosas interesantes. Como la que acaba de poner en su blog. Brevemente nos dice que en el nuevo Avalon los controles de ventana hijos dejarán de tener su handle, por lo que será imposible hacer como hasta ahora: cuando una característica no está disponible dentro del .NET Framework, si es una ventana (recordemos que en Windows la mayoría de elementos son ventanas), buscamos/obtenemos su handle y le enviamos el mensaje correspondiente.

Pero eso ya no va a ser posible en Avalon. O sea, que si quieres implementar una características que sí tiene un control nativo de Windows y no el .NET, pues te jodes, porque no vas a poder hacerlo. En otras palabras, los controles Avalon no tienen nada que ver con el funcionamiento por mensajes de Windows.

¿Esto es bueno? ¿Es malo? Pues en mi opinión, depende. Es bueno porque poco a poco nos vamos apartando del aparatoso e ineficiente sistema de paso de mensajes, que genera unas aplicaciones un tanto estrambóticas (ya me gustaría a mi echarle un vistazo al bucle de mensajes de, por ejemplo, Word). Es malo porque no veo cómo va a ser sustituido. ¿Por hilos? ¿Y cómo van a interactuar esos hilos? ¿Mediante semáforos, secciones críticas? Lo veo complicado, pero bueno, ellos sabrán qué se hacen.

Ahora, eso sí, espero que las funcionalidades sean las mismas que con los controles nativos. Me refiero a subclasificación, capturar mensajes y variar comportamiento, etc., porque si no es así me veo a todos los programas con el mismo aspecto, sin poder hacer variación alguna…

Podría haber un motivo oculto para hacer esto así, y es el hecho de potenciar a los vendedores de componentes. Actualmente es relativamente fácil añadir a un list box, por ejemplo, pequeños iconcitos al texto: captura su WM_PAINT y dibuja lo que te de la gana. Pero si un componente viene prefijado y tu quieres una variación, pues te toca pasar por caja. Espero que no, que se puedan subclasificar -heredar- y todo eso.

Voy a poner un ejemplo sufrido en carnes propias con el .NET 1.1 y el hecho de que no cubra todo lo que hasta ahora se puede hacer de forma nativa. En uno de mis programas OpenSource, zxFortunes, necesitaba tener un icono en la barra de notificación. Existe para ello un componente dentro del .NET, llamado TrayIcon. Pero este elemento es un juguete en comparación con las posibilidades del equivalente nativo. Pues bien, pensando que al final, debajo de todo, debía estar el control nativo, busqué y busqué la forma de llegar a él y habilitar sus características… Fue del todo imposible. Ni con interop, ni insertando una dll en el espacio de direcciones que hiciera de puente, nada, fue totalmente imposible.

Imaginemos, pues, un mundo en el que todo estuviera limitado de esta forma… Pues ese es el mundo al que nos está abocando Microsoft y su “maravilloso” .NET. Sinceramente espero equivocarme.

» Leer más, comentarios, etc...

Los blogs aumentan tu número de clientes, aunque no quieras.

Marzo 30th, 2006 - [Enlace local]

genteHace pocos días apuntaba gurusblog que si aplicamos la afirmación de Tom Peters de que cualquiera que con sus acciones afecta a tus resultados es tu cliente; en el mundo de la empresa, los ex-empleados pueden ser clientes, si les da por empezar a opinar sobre su ex-empresa, como en el caso del blog Xooglers, en el que ex-empleados de Google hablan de su antigua empresa.

Pero no tienen por qué ser los "ex". Un ejemplo: el éxito del blog de empleados de Microsoft, opinando sobre su empresa. El post Vista 2007. Fire the leadership now! en el que hablan de…

.

» Leer más, comentarios, etc...

Best of Both Worlds

Marzo 29th, 2006 - [Enlace local]

No, en este post no pienso hablar del viejo disco de Van Halen si no más bien de algo más cercano a este blog: las nuevas posibilidades de integración de Flash con AJAX/Javascript.

Antes de nada debo confesar que siempre he sido poco partidario de AJAX. Me parece que toda esa revolución que está ocurriendo hoy en día es algo que en Flash se lleva haciendo bastantes años (desde la versión 5 del player). Siempre me he preguntado, ¿Por que tanto revuelo por algo que tampoco cambia de manera significativa la experiencia del usuario? ¿Todo esto por eliminar los refrescos de página y por la inclusión de algún que otro componente más o menos interactivo?. Por no hablar de la falta de encapsulación, orientación a objetos, escalabilidad, mantenimiento y demás temas que considero imprescindibles. Una cosa si es cierta, dotar a una aplicación web ya existente con algún toque de “riqueza” es relativamente sencillo, rápido y fácil de medir en tiempos de desarrollo, ya que seguimos usando la misma tecnología que ya conocemos.

Ahora bien, ¿no siempre decimos que lo mejor es usar cada tecnología en el momento adecuado?. ¿Por que no combinar lo mejor de Flash/Flex con lo mejor de AJAX/Javascript?. Este es un mensaje que hoy día podemos leer de muchos de los evangelistas de Adobe. Y debo decir que estoy totalmente de acuerdo.

Con las mejoras introducidas en el Flash Player para “conversar” con su entorno más directo desde la versión 8 (me refiero al API ExternalInterface que facilita la comunicación directa del contenido Flash con su contenedor), y los diferentes proyectos de integración con Javascript, como Flash Javascript Integration Kit o más recientemente JSON, las nuevas posibilidades de integración de las aplicaciones actuales con contenido Flash son prácticamente ilimitadas.

Algunos ejemplos de integración Flash/AJAX/Javascript:

» Leer más, comentarios, etc...

el feRoRcarril

Ruby es Kawaii

Marzo 29th, 2006 - [Enlace local]

Siempre le estoy diciendo a todo el mundo que las ventajas de Ruby y Rails no son lo que hacen: no aportan nada especialmente nuevo en ese sentido, y todo lo que tienen son copias o adaptaciones de otros lenguajes o plataformas de desarrollo.

Entonces, ¿cuáles son las ventajas? Creo que las ventajas residen en cómo hacen las cosas, o cómo quedan. Respecto a esto, hace poco tuve una revelación: Ruby es así precisamente por ser japonés, gracias al concepto kawaii de los nipones. Este adjetivo se puede entender (simplificando) como lindo o adorable. Puede parecer una tontería, pero tal y como se describe en la entrada de Wikipedia, es un concepto muy amplio los japoneses aplican a un montón de cosas que a los occidentales no se nos ocurriría.

Rails, por supuesto, ha heredado todo esto de Ruby, y tiene un «sentido estético» muy fuerte que domina cómo se hace todo en la plataforma. Y casualmente, enlazando con mi revelación, DHH nos obsequió con una broma sobre un supuesto libro escrito con Kathy Sierra, titulado «The Emo Programmer», por el equivalente anglosajón del día de los Santos inocentes. Lo que hay que ver. Casi me la pegan…

» Leer más, comentarios, etc...

Las corridas de toros

Marzo 29th, 2006 - [Enlace local]

Alguna vez han visto una corrida de toros, un valiente torero entra a una arena donde sueltan a un toro cansado y estresado. El torero tiene una espada, banderillas, capa para confundir al toro, 4 ayudantes, y un piquero montado en caballo. La verdad, yo no tengo nada en contra las actividades deportivas de supervivencia humana, pero que sean de verdad. Que metan a un torero sin mas armas que su cuerpo y un toro sin mas armas q su cuerpo, juro q eso si me encantaria y es más, iria a aplaudir … al toro, por supuesto.

Pero aun asi, las corridas son con animales q tiene la minima posibilidad de defenderse. Pero y la caza de focas, llegan tambien valientes humanos a cazar focas bebes, indefensas, con garrotes y las muelen a golpes lo suficiente para q no escapen. Ni siquiera se toman la molestia de terminarles el sufrimiento, mientras van por otras focas.

Ya quisiera verlos a ellos, despellejados vivos, y vueltos a curar para repertirles el tormento ( sin embargo, mis deseos no son tema de este post ). Hay un site para juntar firmas para solicitar al ministro de Canada, detenga esta innecesaria muestra de barbarie. Mira que para que estes abrigado no hace falta despellajar a nadie, existen otros medios.







» Leer más, comentarios, etc...

La decadencia de los dinosaurios

Marzo 29th, 2006 - [Enlace local]

En el mundo de los grandes creadores de herramientas para desarrollo, Borland está enfermo, quizás terminal, y Microsoft le sigue a la zaga. Pero aun así, de vez en cuando, inmersos y medio ahogados en sus propias heces, se tiran demoledoras dentelladas, como acaba de hacer en estos momentos la empresa de Redmon.

Pero el paralelismo va más allá, hasta el punto de que, al igual que cuando los dinosaurios desaparecieron no quedó nadie que cubriera el hueco, tampoco quedan grandes compañias creadoras de compiladores… dejando a un lado, claro está, al sofware libre.

Que Borland está en crisis lo sabe cualquiera. Desde el C++ Builder 4 han ido dando bandazos de un lado a otro, con cambios de nombre y adquisiciones sin mucho sentido. Hagamos un breve repaso.

Compraron el Codewright (un famosísimo editor para programadores) para dejar de mantenerlo. Si hubiera sido el único editor fuera de los propios de Borland y de Microsoft podría haber tenido sentido, pero resulta que hay varios mucho más potentes, todos ellos con muy buena salud.

Pasaron el C++ Builder y el Delphi a Linux, todo un logro de la ingeniería del sofware. ¿Para qué? Para nada. En su segunda versión -cuando se comenzaba a vislumbrar su enorme potencialidad y empezaba a funcionar más o menos bien-, van y lo cierran. Igual que cerraron el ya mítico Borland C++ y su no peor framework, OWL.

Luego apareció el BuilderX, la mayor cagada de la historia. Un editor lentísimo, con una enorme cantidad de bugs, apenas funcional, que nació muerto. Y muerto sigue.

Ahora quieren vender su división de compiladores. ¿A quién? ¿Quién va a comprarla? Quizás Microsoft, y así se quita de encima esa mosca cojonera que le ha estado molestando desde tiempos inmemoriales. ¿Intel? ¿Quizás para integrar el entorno a su ya existente compilador? ¿Sun? No creo, ya tiene a su queridísimo y aparatosos Java.

Nos queda IBM. ¿Será IBM? Desde mi punto de vista tiene todas las papeletas. Eso o que se separe un grupo de programadores de Borland. El tiempo dirá.

Para terminar de exponer la crisis que afecta a Borland diré que es una mentirosa compulsiva. Me explico. Prometió mantener el Borland C++. Mentira. Prometió seguir dando soporte a las OWL. Mentira. Prometió mantener el Kylix. Mentira. Prometió mantener el Codewright. Mentira. Prometió no abandonar el BulderX. Mentira. Prometio no abandonar el C++ Builder. Casi mentira, lo integró en el Delphi, pero hay de momento como medio millón de bugs sin solucionar. Demolse tiempo al tiempo y volveré a llamar mentiroso a Borland. Y a uno de sus jefes de proyecto lo puedo llamar mentiroso a la cara, pues en una presentación se comprometió delante de mi a seguir manteniendo el C++ Builder.

Que Microsoft está en crisis también lo sabe mucha gente, pero que la crisis afecta también a su Visual Studio no tanto. Tras un montón de años yendo detrás de Borland en cuanto a calidad en sus compiladores, compitiendo con su Visual Basic contra Delphi, al final ha conseguido una victoria pírrica, porque Borland se muere y porque MS ha cambiado las reglas a su gusto.

La crisis de Microsoft está indirectamente relacionada con la tecnología .NET; hagamos un poco de historia. Hace unos años el mundo estaba divido en tres empresas que hacián compiladores; las dos que conocemos y Watcom, en su momento un gran entorno. Ésta fue la primera en caer, más que nada por ir detrás de Microsoft. Su única ventaja era la calidad de su compilador, pero al final MS y Borland le ganaron. Ahora quedan sus restos, que sobreviven gracias al software libre en http://www.openwatcom.org. Nos situamos ahora en la época del Visual Studio 5/6 y del Borland C++. Después Borland da la campanada con su C++ Builder, ganando por goleada. Lo único que hace Microsoft es sacar parches (¿Lo oyes, Borland?: PARCHES) para su Visual Studio 6, quizás ya madurando la idea del .NET

Posteriormente aparece el .NET, un gran concepto, demasiado potente y original para venir directamente de Microsoft. Y un nuevo lenguaje, mezcla de Java, C++ y Delphi, un lenguaje específicamente inventado para la plataforma, pero no por ello un mal lenguaje. Microsoft se sube a su propia moto y empieza a vender su tecnología, sin darse cuenta de que adolece de un gran problema: con ella no se puede hacer lo mismo que se hacía con sus otras herramientas si utilizar el asqueroso interop, que muchos odiamos (Y utilizar interop es equivalente a programar de forma nativa, con lo que no ganamos nadasi no son muchos quebraderos de cabeza).

Primero la versión 1.0, que apenas era un juguete. Inmediatamente le sigue la 1.1, que mejora y soluciona la mayoría de las carencias de la 1.0. Luego saca un parche para la 1.1, solucionando los problemas encontrados. Y comienza a caer.

No actualiza el Visual Studio 2003, los programadores de Visual Basic están que trinan porque el nuevo VB.NET no se parece en nada al anterior y el anterior deja de tener soporte. Se descubre que el .NET va bastante lento en determinadas circunstancias, como cuando han de abrirse y cerrarse muchos forms.

Y para más inri, aparece el .NET 2.0 y todos los cambios que arrastra detrás, como una nueva versión de las MFC, la CRT cambiada para mejorar la seguridad. Y un nuevo Visual Studio, mucho peor que el anterior. Y ahora es cuando vemos la crisis de Microsoft, mucho menor que la de Borland, pero crisis al fin.

La versión sacada no es una versión final, sino una Beta 3. Los bugs abundan a espuertas, tanto en el Visual Studio como en la propia .NET. El IntelliSense en el C++/CLI simplemente no funciona, se han quitado características porque no estaban listas, los bugs del C++/CLI son enormes, tan graves que dependiendo de la situación es imposible compilar código correcto (o lo que es peor, unas veces se compila y otras no). El .NET sigue siendo lento, sobre todo el GDI+ y la carga inicial (y ya no digamos dentro de una PDA).

Menos mal que la parte de C++ nativa funciona más o menos bien. Eso los salva, pero con toda la gente pasándose corriendo al .NET de poco les va a servir. ¿Que para cuándo los parches? Para diciembre de este año. Casi nada.

Bueno, pues ese es el estado actual de crisis que quería exponer. Falta, quizás, analizar un poco a Java, pero considero que éste lenguaje queda lejos de mis espectativas, pues Java no es un lenguaje de escritorio, sino de o para servidor, como ciertos aspectos del .NET. Y ahí no entro porque desconozco por completo el tema.

Pues bien, la coyuntura actual es esta. ¿Y qué hace Microsoft? Pues darle un zarpazo a Borland, exponiendo cómo se puede migrar de Delphi a Visual Studio sin muchos quebraderos de cabeza. Aquí el enlace, y mi comentario para finalizar: Microsoft, si no es necesario que le des un zarpazo, si Borland se cae sola.

Próximamente hablaremos de los monopolios de facto y las herramientas de programación.

» Leer más, comentarios, etc...

Najaraba.com: Software libre, negocios y más.

“Las cosas son lo que son, y no lo que queremos que sean”

Marzo 29th, 2006 - [Enlace local]

» Leer más, comentarios, etc...

“Las cosas son lo que son, y no lo que queremos que sean”

Marzo 29th, 2006 - [Enlace local]

Frente de la Carrera de San Jerónimo, último parte de guerra: cautivo y desarmado el ejército copyleft, las tropas de la SGAE han alcanzado sus últimos objetivos militares.

Pues no. Ni esto era una guerra, ni hay vencedores y vencidos. Cuando el Congreso de los Diputados aprueba un texto legal con más de 300 votos a favor, con el más amplio consenso de todas las fuerzas parlamentarias, lo único que se evidencia es que los opositores a la Ley se han convertido en un grupo extraparlamentario.


Via Blogespierrre, llego a este descorazonador post de Carlos Sanchez Almeida .

Internet sólo tendrá voz el día que tome conciencia de sí misma, de su sentido histórico. Y para eso primero tendremos, durante mucho tiempo, que renunciar a mucho ego, y pensar que el talento es escaso: que las grandes gestas del género humano son siempre gestas colectivas.
Una interesante reflexión sobre lo que ha realizado esta persona  y dado a conocer desde hace unos años. Ahora se despide de la red, por que va a volver dónde más le necesitan sus clientes, "en el despacho".

» Leer más, comentarios, etc...

Telefonía IP con el teléfono normal

Marzo 29th, 2006 - [Enlace local]

jajahLa diferencia con el resto de servicios de telefonia IP es que no se necesita micro y auriculares, ni un programa. Basta con un navegador para teclear en la página de jajah tu número de teléfono, y el del destino al que quieres llamar. Recibes una llamada y…"su conferencia con Toledo está lista… le pongo".

Vía FayerWayer.

.

» Leer más, comentarios, etc...

WebServices con Java utilizando Axis

Marzo 29th, 2006 - [Enlace local]

Para los que no lo han usado se lo recominedo, utilizar Axis es un placer.




Para tener una idea de como funciona les recomiendo leerse el tutorial de la pagina oficial, y si eres como yo “fast”, entonces ahi una presentacion tutorial en HP muy completo de desarrollo agil.





http://ws.apache.org/axis/






Tutorial de HP

» Leer más, comentarios, etc...

vnsjava

WebServices con Java utilizando Axis

Marzo 29th, 2006 - [Enlace local]

Para los que no lo han usado se lo recominedo, utilizar Axis es un placer.

Para tener una idea de como funciona les recomiendo leerse el tutorial de la pagina oficial, y si eres como yo "fast", entonces ahi una presentacion tutorial en HP muy completo de desarrollo agil.

http://ws.apache.org/axis/

Tutorial de HP

» Leer más, comentarios, etc...

vnsjava

WebServices con Java utilizando Axis

Marzo 29th, 2006 - [Enlace local]

Para los que no lo han usado se lo recominedo, utilizar Axis es un placer.

Para tener una idea de como funciona les recomiendo leerse el tutorial de la pagina oficial, y si eres como yo "fast", entonces ahi una presentacion tutorial en HP muy completo de desarrollo agil.

http://ws.apache.org/axis/

Tutorial de HP

» Leer más, comentarios, etc...

vnsjava

WebServices con Java utilizando Axis

Marzo 29th, 2006 - [Enlace local]

Para los que no lo han usado se lo recominedo, utilizar Axis es un placer.

Para tener una idea de como funciona les recomiendo leerse el tutorial de la pagina oficial, y si eres como yo "fast", entonces ahi una presentacion tutorial en HP muy completo de desarrollo agil.

http://ws.apache.org/axis/

Tutorial de HP

» Leer más, comentarios, etc...

vnsjava

WebServices con Java utilizando Axis

Marzo 29th, 2006 - [Enlace local]

Para los que no lo han usado se lo recominedo, utilizar Axis es un placer.

Para tener una idea de como funciona les recomiendo leerse el tutorial de la pagina oficial, y si eres como yo "fast", entonces ahi una presentacion tutorial en HP muy completo de desarrollo agil.

http://ws.apache.org/axis/

Tutorial de HP

» Leer más, comentarios, etc...

Modificando registros a base de migraciones

Marzo 28th, 2006 - [Enlace local]

En otras ocasiones hemos hablado de las migraciones de Rails, una característica que nos permite modificar el esquema de la base de datos usando Ruby.

Alguien se puede preguntar cuáles son las ventajas reales de manipular la base de datos usando Ruby en lugar de SQL. La primera de ellas es que sólo tendremos que lidiar con las peculiaridades de Ruby, en vez de tener que andar consultando las referencias del dialecto de SQL que haya tenido a bien implementar el fabricante de nuestro gestor de bases de datos. La segunda es que, además de modificar el esquema de la base de datos añadiendo tablas, columnas, etc. con las migraciones podemos modificar los datos ya existentes en nuestras tablas.

Supongamos que tenemos la tabla que vendría dada por la siguiente migración:

class Inicial < ActiveRecord::Migration
  def self.up
    create_table :entradas do |t|
         t.column :voz, :string
         t.column :inicial, :char
         t.column :texto, :text
    end
  end
	
  def self.down
  end

Se trata de crear una tabla que nos sirva de diccionario, donde cada voz o palabra tiene un texto asociado pero además una inicial que será el campo que usaremos a la hora de buscar. La inicial, por definición, es la primera letra de la voz.

Pues bien, este esquema para nuestro diccionario tiene un problema: en un diccionario en castellano deberíamos poder buscar por las letras ll y ch. Al haber usado sólo un carácter para la columna inicial no podemos distinguir entre las palabras que empiezan por l y por ll.

Migraciones al rescate: no sólo vamos a cambiar la columna de inicial la base de datos, que pasará a ser una cadena en lugar de un sólo carácter, sino que además rellenaremos esa columan correctamente, comprobando si la voz empieza por ch, por ll o por cualquier otra letra:

class LetrasPorCadenas < ActiveRecord::Migration
	
  def self.dame_inicial str
    pat = /^(ch|ll|[^ ])/
    refs = pat.match str
    refs[0]
  end
	
  def self.up
    remove_column :entradas, :inicial
    add_column :entradas, :inicial, :string
	
    Entrada.reset_column_information
    say_with_time "Genero las iniciales" do
      Entrada.find(:all).each do |e|
        e.inicial = dame_inicial(e.voz)
        e.save
      end
    end
  end
	
end

Son a destacar:

  1. El útil metodo say_with_time que nos sirve para rastrear el progreso de nuestra migración
  2. Tras modificar cada registro hay que invocar el método save de ActiveRecord , o de lo contrario la tupla no se modificará—no he visto mención a este detalle en ninguno de los tutoriales de migraciones que he encontrado por ahí.

No intentes casar expresiones regulares usando tu dialecto favorito de SQL. Tu salud mental te lo agradecerá.

» Leer más, comentarios, etc...

el feRoRcarril

Estadísticas para Typo

Marzo 28th, 2006 - [Enlace local]

Estaba yo buscando una forma de acceder a las estadísticas de visitas del blog, y busqué por si Typo venía ya con algo. La mala noticia es que no viene de serie con nada. La buena es que hay una extensión de Rails para preparar estadísticas, que se puede montar en Typo, como aplicación en Rails que es.

En el propio Wiki del Typo hay algo de información sobre las mejoras que le quieren hacer (incluyendo integrar un paquete de estadísticas), y un enlace a la página de RailStat, que es como se llama la extensión de Rails.

¿El problema? Que parece que no funciona en PostgreSQL, según dicen en la página de instalación (al final). De todas formas lo instalé, y usé PostgreSQL, porque es la base de datos que usamos para el Typo…. e hice un par de pruebas a ver por dónde reventaba.

Después de algunos descubrimientos (y parchear la extensión por culpa de un problema con la forma en la lo tenemos montado), vi que estaba dando un fallo al crear los registro en la tabla donde lleva las visitas. El error que daba es que había un valor duplicado en el campo subdomain. Mirando el SQL de generación de la tabla, vi rápidamente que ese campo tiene un índice UNIQUE, para que no se repita, pero no sé por qué está ahí (para mí no tiene ningún sentido, ¿alguien lo entiende?).

El caso es que lo quité y por ahora parece funcionar…. pero ya les contaré más cosas si me encuentro algún problema O:-)

» Leer más, comentarios, etc...

Estrenando nuevo blog…

Marzo 28th, 2006 - [Enlace local]

Hola.. ..hoy estoy estrenando mi nuevo blog.. ..ya que el antiguo no me prestaba toda la funcionalidad que necesitaba. Ahora desde mi servidor sera mas sencillo realizar algunas labores :-) .

Este nuevo blog va de la mano con el nuevo sitio de documentacion que estoy construyendo. Hace falta bastante informacion, pero ire publicandola poco a poco, no hay prisa y no me quiero hacer viejo por preocupaciones :-) .

Hasta ahora he terminado el howto de subversion en la seccion de documentos, y el tutorial de eventos en C# que ya casi termino.. ..la guia rapida de C# esta comenzada y falta aun una gran parte..

Espero pueda servir de ayuda a aquellas personas que se estan introduciendo a Mono.

Cualquier comentario o sugerencia son bienvenidos!

mi correo : ricki@dana-ide.org

Saludos!!

» Leer más, comentarios, etc...

Najaraba.com: Software libre, negocios y más.

Aplicación OpenSource para “mercados predictivos”

Marzo 28th, 2006 - [Enlace local]

» Leer más, comentarios, etc...