blogosfera agitada

Estas últimas semanas se han producido ciertos acontecimientos en la blogosfera que no puedo dejar de reseñar. Por orden cronológico serían los siguientes.

En primer lugar destacar la aparición de genbeta, que es un blog colectivo de noticias sobre software con un ritmo de publicación de contenidos realmente apabullante. En un día pueden publicar más de 5 post y la selección de programas es realmente buena.

En segundo lugar la creación de un foro dentro de Planeta Código dedicado al negocio del software. Creo que es uno de los temas que menos se tratan por la comunidad de programadores y es algo que al menos a mi me interesa mucho. De hecho el foro se creó a petición mía.

En tercer lugar la puesta en marcha del último proyecto de Juanjo Navarro, este hombre no para, que es un blog colectivo con noticias sobre desarrollo de software. El blog se llama Versión Cero y creo que es de visita diaría obligatoria.

Por último, ya tengo preparado el blog de alanit, gracias a Jaime que ha hecho un trabajo impresionante de integración de WordPress con la web de alanit. Ya tengo preparado un par de post y el día 1 de Junio – mañana – abrimos.

Y ya que estamos con el tema de blogs, lanzo una pregunta. Estoy buscando una aplicación de escritorio para gestionar blogs. He visto dos que parecen interesante, que son wbloggar y BlogJet, pero yo busco algo más parecido a Thingamablog pero que pueda conectarlo con MovableType y WordPress. Lo que quiero basicamente es tener una copia del blog en mi PC y poder desde ahi manejar el blog a mi gusto y cuando quiera subir los contenidos al blog. ¿ Alguna sugerencia ?

Anuncios

ni SGAE ni Cortell, sólo quiero ser un isv

Este post hace mucho que lo llevo en la cabeza, justo despues de mi participación en una mesa redonda de las Jornadas sobre libertad en la red donde compartí tarima con el Sr. Cortell. La personalidad de este señor es apabullante, tiene una enciclopedia encima de la cabeza con la que abruma con datos, cifras y hechos. El caso es que yo fui a esta mesa redonda de novatillo y comencé el turno de palabra diciendo que yo era un micro-isv, que me dedicaba a vender software y que quería vivir de mi trabajo. La respuesta de este señor fue de patada con los tacos por delante con doble factura de tibia y peroné. Los argumentos, pues los que dice cada vez que abre la boca. El resto de participantes tuvieron un planteamiento más suave conmigo, intentaron llevarme a su terreno – el del software libre – pero de manera educada. El resto de la mesa redonda sólo fue un monólogo de este señor
que no pierde oportunidad de engrosar su ego donde y ante quien haga falta.

Sobre su planteamiento de que compartir cualquier cosa a través de una red P2P no es delito, me parece que es una burrada tremenda. Una burrada que le gusta oir a mucha gente, una burrada que cuenta con una gran permisividad social, pero una burrada. Según su plantemiento, bajarte música – o lo que sea – está amparado por la ley pues en tu acción no hay ánimo de lucro. Según el diccionario Gabino Ramos que tengo en casa lucrar significa obtener una ganancia o beneficio, que es justo lo que obtienes cuando consigues algo que vale dinero sin pagar por ello.

La legalidad en el uso de las redes P2P lo marca el autor del material. Desde mi punto de vista, si usas este tipo de redes para descargarte material libre como una distro de Linux o una pelicula licenciada CC o libre no cometes ninguna ilegalidad. Si usas una red P2P para descargarte otro tipo de material para cuyo uso se exige el pago de una licencia, estás pirateando. Ni más ni menos, y parece que no soy yo sólo quien opina esto.

El planteamiendo de la SGAE es otra burrada de igual calibre que la anterior. Pagar un canon por ciertos dispositivos o soportes me parece el mayor abuso del mundo, pero estos me parecen igual de burros que el de antes. Y que haya un gobierno que haya sacado adelante una ley de este calibre no hace sino hacerlos acreedores del mismo calificativo.

Quien debe marcar los límites de su trabajo es el autor. Quien quiera dedicarse a hacer software libre que lo haga, quien quiera hacer software gratuito que lo haga, quien quiera publicar material con licencia Creative Commons pues fenomenal. Pero quien quiera hacer software de pago por licencia, música o cualquier otro material audiovisual y pida un pago por su licencia, copia o uso, para mi está en su derecho. Yo sólo pretendo desarrollar software e intentar hacer crecer mi microempresa hasta poder vivir de ello.

Resulta paradójico que algunos se llenan la boca reclamando su libertad y sus derechos sin tener en cuenta los derechos de los demás.

montar un tree desde una DBF con FWH

En el Puchero se usa una clasificación arborescente denominada clasificación francesa y para jugar con ella la monto en un tree. Como he recibido varios correos preguntando la manera de montar el tree desde la dbf, aqui lo explico un poco.

Lo primero es montar una estructura de datos que permita ser representando en forma de arbol. Un arbol no es más que una jerarquía con varios niveles, y lo que tengo en mi dbf son varios campos -hasta 5 – para indicar en que rama del arbol estoy. Los campos se llaman FrN1, FrN2, FrN3, FrN4 y Frn5 de manera que el arbol lo veo así:

(1,0,0,0,0)
···(1,1,0,0,0)
······(1,1,1,0,0)
······(1,1,2,0,0)
···(1,2,0,0,0)

Una vez esto claro el arbol se monta así:

FUNCTION FrTreeLoad( oTree )
LOCAL oDatabase
LOCAL nStep
LOCAL oLink
LOCAL oLink1, oLink2, oLink3, oLink4, oLink5
LOCAL N1	:= 0
LOCAL N2	:= 0
LOCAL N3	:= 0
LOCAL N4	:= 0
oLink := oTree:GetRoot()
SELECT FR
FR->(DbGoTop())
DO WHILE ! FR->(EOF())
···IF FR->FrN2 == 0
······oLink1 := oLink:AddLastChild(FR->FrTipo,IIF(FR->FrHoja,1,2),IIF(FR->FrHoja,1,2),.t.)
······oLink1:Cargo := Str(FR->Frn1,2)+Str(FR->Frn2,2)+Str(FR->Frn3,2)+Str(FR->Frn4,2)+Str(FR->Frn5,2)
···ELSEIF FR->FrN3 == 0
······oLink2 := olink1:AddLastChild(FR->FrTipo,IIF(FR->FrHoja,1,2),IIF(FR->FrHoja,1,2),.t.)
······oLink2:Cargo := Str(FR->Frn1,2)+Str(FR->Frn2,2)+Str(FR->Frn3,2)+Str(FR->Frn4,2)+Str(FR->Frn5,2)
···ELSEIF FR->FrN4 == 0
······oLink3 := olink2:AddLastChild(FR->FrTipo,IIF(FR->FrHoja,1,2),IIF(FR->FrHoja,1,2),.t.)
······oLink3:Cargo := Str(FR->Frn1,2)+Str(FR->Frn2,2)+Str(FR->Frn3,2)+Str(FR->Frn4,2)+Str(FR->Frn5,2)
···ELSEIF FR->FrN5 == 0
······oLink4 := olink3:AddLastChild(FR->FrTipo,IIF(FR->FrHoja,1,2),IIF(FR->FrHoja,1,2),.t.)
······oLink4:Cargo := Str(FR->Frn1,2)+Str(FR->Frn2,2)+Str(FR->Frn3,2)+Str(FR->Frn4,2)+Str(FR->Frn5,2)
···ELSE
······oLink5:= oLink4:AddLastChild(FR->FrTipo,IIF(FR->FrHoja,1,2),IIF(FR->FrHoja,1,2),.t.)
······oLink5:Cargo := Str(FR->Frn1,2)+Str(FR->Frn2,2)+Str(FR->Frn3,2)+Str(FR->Frn4,2)+Str(FR->Frn5,2)
ENDIF
FR->(DbSkip())
ENDDO
oTree:UpdateTV()
oTree:SetFocus()
RETURN NIL

Lo que hago es recorrer el DBF que tengo ordenado por la concatenación de los 5 campos y cuando cambio de nivel añado una rama al nivel inferior.

El resultado:

20050511.jpg

sobre DSay y SayRef o agradecimiento a Ramón Avendaño

Uno de los efectos que siempre me han gustado en los formularios de ‘acerca de’ de los programas es el efecto que yo llamo starwars. Consiste en un texto que se va deslizando de abajo arriba del formulario para desaparecer y luego volver a salir por abajo.

20050506.jpg

Uno de los mejores creadores de controles que ha habido para Fivewin – lo pongo en pasado porque hace años que no se nada de este señor – ha sido Ramón Avendaño. Una de sus clases – DSay o Dynamic Say – sirve para hacer precisamente esto, mover un texto por un área de un formulario. Otra de sus clases – SayRef – sirve para poner un hiperenlace a un texto, de manera que al pinchar en él nos enlace con un sitio web o envie un correo.

Dejo un fichero con un ejemplo de lo que se puede hacer con esta clase. Dentro del fichero va el ejecutable que muestra el efecto, así como los fuentes de las clases DSay y SayRef de Ramón. El ejecutable usa dos BMP que están en ficheros separados, por lo que hace falta descomprimir el ZIP para que el ejecutable se vea bien.

Las clases se pueden encontrar por internet con fuentes y ejemplos, y no he tenido que retocar nada para hacerlas correr con FWH. El ejemplo está compilado con el compilador comercial de xHarbour, pero se puede hacer facilmente con la version open source.

actualización de programas y reestiling del logo

Estos dias estoy terminando la actualización de la web de alanit con la versión 6.10 de Cuaderno de Bitácora y la versión 3.12 de Colossus.

La versión 6.10 de Cuaderno de Bitácora trae el nuevo sistema de registro que ya no es ligado a máquina e incorpora el fichero de ayuda de la aplicación. La versión 3.12 de Colossus funciona bajo Windows98. Resulta que estaba usando una versión del control TaskBox de Canalfive que sólo funciona en WindowsXP y que dejaba el programa colgado en Windows98 y Windows2000. El problema lo he solucionado usando una versión anterior del control que funciona perfectamente en todas las versiones de Windows.

Con estas actualizaciones tenemos los tres programas terminados con sus correspondientes ayudas y con un sistema de registro no ligado a máquina. Ahora mi intención es adherirme al programa de colaboración de Softonic para vender los programas a través de ellos. Ya contaré que tal esta experiencia.

Una última modificación en la web ha sido un reestiling del logo de alanit. He pasado en el logo de un tipo de letra Trebuchet a Gadget y creo que le da más personalidad al logo. Este es el viejo:

alanit_ES.gif

y este el nuevo:

alanit_ES_3.gif

¿ Que os parece el cambio ?