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 ?

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:

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.

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:

y este el nuevo:

¿ Que os parece el cambio ?

corrigiendo errores III

error #3: Poner unos foros en la web sin integrarlos correctamente.

Cuando montamos lanueva web pensamos en poner unos foros para los usuarios. Estuve viendo sistemas de foros y decidí usar los foros de phpBB que es un sistema muy conocido y extendido. El problema de este foro es que es muy potente pero al mismo tiempo muy complejo, y me conformé con pegarlo a la web, sin integrarlo correctamente. El caso es que cuando entrabas en los foros parecía como que salias de la web para ir a otro sitio.

Mal hecho. Si quieres ser profesional tienes que parecer profesional.

Ahora he estado modificando un foro basado en el de JoS que encontré en la web de John’s adventures para integrarlo correctamente en la web. Podeis probarlos desde la nueva página de foros de alanit. Son más sencillos que los de phpBB pero están perfectamente integrados en la web.

corrigiendo errores II

error #2: Usar registro ligado a máquina y complicar el proceso de registro del programa.

Otro error que cometí fue complicar el proceso de registro. A finales de verano pasado supe que las algunas versiones de mis programas se podian descargar en alguna red P2P y, la verdad es que no me sentó nada bien. Decidí que las nuevas versiones llevarían registro ligado a máquina, esto es el programa generaría una clave de registro en función del ordenador donde estuviera instalado el programa y en función de esta clave habría otra que yo enviaría. El resultado sería que si el usuario quisiera instalar el programa en otro ordenador me tuviera que pedir una nueva clave de activación.

Mal, mal, mal. Esta manera de proceder es un error garrafal. El caso es que ya puse un post sobre el tema en este mismo blog, pero me pudo más el enfado de ver los programas circulando sin control y cedí a la tentación de ponerme el traje de policia. Ahora ya está corregido y en breve lanzaremos unas versiones nuevas que llevan un sistema de registro tradicional por clave que ya no es ligada a máquina.

El usar un modelo de registro ligado a máquina es malo por dos cosas: uno porque el usuario realmente no tiene una licencia de uso del programa, sino una licencia de uso del programa en un determinado ordenador y si cambia de equipo necesitará una nueva clave. Esto crea una inseguridad clara en los usuarios y muchos potenciales usuarios nunca registrarán el programa. En segundo lugar usar un registro ligado a máquina complica el proceso de registro en tanto que en el momento de registrar el programa el usuario tiene que enviar una clave generada con el programa en el ordenador donde lo va a usar. Mucha gente prueba un programa en un ordenador y luego lo va a querer usar en otro distinto, o quiere comprar un programa para un amigo o familiar, o lo que sea. Lo que está claro es que un registro no ligado a máquina es más sencillo. Como experiencia puedo decir que el número de actualizaciones de las versiones que pusimos a la venta en noviembre han sido la tercera parte de lo que yo esperaba, y estoy con
vencido de que mucha culpa la tiene el modelo de registro.

Esta claro que con un registro por número de serie, un usuario puede registrar una licencia y usarla en varios ordenadores, pero realmente creo que los desarrolladores debemos confiar en nuestros usuarios ya que son los que nos permiten seguir en el negocio. Tal como está la cosa con las redes P2P, registrar un programa es más cuestión de voluntad que de otra cosa, y debemos hacer todo lo posible porque el registro de nuestros programas sea lo más sencillo posible.

corrigiendo errores I

Con el lanzamiento de las versiones 6.00 y 4.00 de Cuaderno de Bitácora y el Puchero el pasado mes de Noviembre cometí una serie de errores bastante importantes. En una serie de post los iré explicando, diciendo que hice, qué hice mal y porqué.

error #1: Poner un programa a la venta sin tener el fichero de ayuda terminado.

Después de varios meses de desarrollo, y tras haber pasado por una etapa de prueba con nuestros betatesters decidimos poner a la venta las nuevas versiones de los programas. Preparamos la nueva web y lanzamos los programas, dejandonos los ficheros de ayuda sin hacer y pensando que en un mes los tendriamos listos. Han pasado casi 6 meses y esta semana tendremos listos por fin los dichosos ficheros de ayuda. Al no tener los ficheros de ayuda no hemos querido enviar los programas a revistas ni a sitios de descargas pues pensamos que los programas no están completos.

Además, cuando liberas un programa siempre llegas con la lengua fuera y luego te da un bajón de ritmo de trabajo. Aunque al programa le falte la ayuda, inconscientemente piensas que el programa está terminado cuando no lo está y ralentizas un poco el ritmo. Para postre tras anunciar la nueva versión a los usuarios registrados siempre se produce una avalancha de correos que te quita mucho tiempo de desarrollo pues lo tienes que decicar a contestar estos correos.

Cuando se hace desarrollo a ratos como hacemos Jaime y yo, los plazos son incalculables. No sabes si un dia vas a tener 2 horas o ninguna, pero lo peor es que las planificaciones salen al revés. Cuando se acerca Navidad o Semana Santa piensas que vas a tener más tiempo para programar, porque seguro que cae algún dia de vacaciones. Sin embargo es al revés porque la familia, los amigos o cualquier otra actividad absorben tu tiempo libre y en vez de tener más tiempo tienes menos.

planeta código

Supongo que a estas alturas todos estareis enterados. Juanjo ha creado un agregador de feeds basado en web de blogs de programación y le ha llamado PlanetaCódigo. La idea es muy buena, y permite de un vistazo leer un montón de blogs de programación.

Tengo un amigo que dice que nunca diga que soy informático, sino que diga que tengo un puesto de fruta en un mercado. Tiene razón. Si tu le sueltas a alguien que la idea de un agregador de feeds basado en web es muy buena, te pueden mirar con cara muy rara.

colossus 3.10

Como lo prometido es deuda, los lectores del blog vais a ser los primeros en probar Colossus. Estas son las principales características del programa:

  • Para cada servicio que requiera de contraseña se almacena el nombre del servicio, usuario, contraseña y tipo de servicio. Los tipos de servicio son: sitio web, proveedor de acceso o ISP, archivo y otros.
  • El programa permite generar una contraseña de modo aleatorio especificando el número de caracteres que debe tener la contraseña.
  • El programa utiliza una semilla para encriptar los datos cuando se sale del programa. Esta semilla se puede modificar de manera que cada usuario tendrá protegidos sus datos frente a posibles intromisiones.
  • Cuando almacenes una contraseña de un sitio web el programa te permitirá almacenar una dirección del sitio web, una dirección de FPT y una dirección de e-mail de contacto. Podrás acceder al sitio web y enviar un correo a la dirección especificada con un sólo click desde el formulario de mantenimiento de claves.
  • Cuando almacenes una contraseña de un proveedor de acceso a internet o ISP el programa le permitirá almacenar el DNS primario y secundario, los nombres de los servidores de correo entrante y saliente, el telefono del nodo a llamar y el telefono de soporte.
  • Cuando almacenes una contraseña de un archivo podrás seleccionar el archivo mediante el dialogo estandar de Windows para búsqueda de archivos. Si el tipo del archivo tiene una asociación con una aplicación Windows podrá acceder al mismo con un click desde la ventana principal de la aplicación.
  • El programa almacena la información encriptada, de manera que únicamente se pueda acceder a los datos almacenados desde el programa. El acceso a los datos se puede proteger con una contraseña.
  • Se puede encriptar el contenido del fichero de datos sin salir del programa. Esto es especialmete util cuando deseamos abandonar momentaneamente el PC. Al desencriptar de nuevo los datos el programa solicitará la contraseña de entrada al mismo.
  • El programa permite copiar información de usuarios y contraseñas al portapapeles con un click de ratón. Tambien permite examinra el contenido del portapapeles.
  • El programa permite acceder a sitios web mediante ‘usuario:contraseña@url’ aceptado en muchos sitios web. Tambien permite acceder a archivos cuya extensión tenga una asociación con Windows.
  • Fichero de materias para separar los distintos tipos de contraseñas.
  • Generador de listados para imprimir cualquier listado deseado.
  • Colossus se distribuye bajo licencia Creative Commons 2.0. Eres libre de copiar, distribuir y comunicar públicamente el programa bajo las condiciones siguientes:
    • Reconocimiento: debes reconocer y citar al autor original.
    • No comercial: no puedes usar el programa para fines comerciales.
    • Sin obras derivadas. No puedes alterar, transformar o generar un programa derivado a partir de este.
  • Colossus utiliza algunas imágenes de la serie NUVOLA de David Vignoni.
  • cls3.jpg

    Tienes el programa para descargar aqui. Espero tus comentarios.