la práctica de la programación

Además de saber programar en un determinado lenguaje, la práctica de la programación requiere otra serie de habilidades para enfrentarse a la realización de un programa.

En Como NO realizar una práctica de programación se aborda en tono jocoso algunos malos hábitos que podemos tener a la hora de programar. Aunque el texto va dirigido directamente a alumnos universitarios de asignaturas de programación, si eres un programador experimentado también harás bien en leerlo. Te aseguro que pasarás un buen rato leyéndolo.

réplica de Antonio Linares al post ‘atando cabos…’

El pasado 10 de Marzo escribí un post en software* sobre la ruptura de la relación entre Antinio Linares e Ignacio Ortiz. Hoy me ha llegado un correo de Antonio que reproduzco literalmente a continuación:

Hola Jose Luis,

Estaba leyendo algunos artículos y comentarios tuyos
en tu nuevo site y el anterior cuando he encontrado esto 🙂

>>
10.mar.2003

Estaba yo este fin de semana dándole vueltas a la cabeza acerca de la
situación actual en que nos encontramos la comunidad de programadores
[x]Harbour. Tras la ruptura de A.L. con O.Z., el acuerdo de A.L. con Grupo
SP es lo peor que nos podía pasar: significa que vamos a tener más de lo
mismo durante mucho tiempo. A.L. dice que eso significa la continuidad del
producto, pero yo pienso que si A.L. tiene unos ingresos fijos de SP se va a
dedicar a vender humo otros 5 años y no va a hacer ni puñetero caso de las
demandas de nuevas funcionalidades para FWH asi como támpoco va a aparecer
por los grupos de news – que siguen alojados en el servidor de I.O.Z.,
válgame Dios -.
>>

Las conclusiones a las que llegas no son correctas, ya que partes
de premisas erróneas:

1. «el acuerdo de A.L. con Grupo SP es lo peor que nos podía pasar»

Desde que se firmó ese acuerdo, Grupo SP ha detectado más bugs en FWH
que ningún otro usuario de FWH. Es por esto que ya he publicado una
nueva actualización del FTDN para Mayo (_puntualmente_, algo que OZS
nunca hizo). En dos meses escasos FWH ha mejorado muchísimo gracias al uso
intensivo de FWH por parte de Grupo SP.

Y no solamente se está beneficiando FWH (y los usuarios de FWH), sino
que tambien han detectado bastantes bugs críticos de Harbour que ya
se han solucionado (en tiempo record).

2. «yo pienso que si A.L. tiene unos ingresos fijos de SP»

Aunque no tengo porqué dar detalles, estás equivocado.
En mi acuerdo con Grupo SP no hay ningún tipo de ingresos fijos.

No voy a publicar el acuerdo que hemos firmado, pero si vienes
por Marbella, gustosamente te lo mostraré para que lo leas.

Y precisamente la decisión de no cobrarles nada ha sido mia,
porque estoy convencido que las mejoras para FWH y Harbour van
a compensar con creces «un sueldo», a la vez que mantengo mi
libertad y mi independencia al no ser un «asalariado» 🙂

3. «A.L. … se va a dedicar a vender humo otros 5 años»

No creo que FWH sea humo, ni que el proyecto Harbour (gracias
al cual nace xHarbour, de paso) sean humo. Son el resultado de
mi trabajo (junto al de otros) y de mi iniciativa. Ha costado
mucho trabajo construir Harbour y FWH.

4. «támpoco va a aparecer por los grupos de news»

En los últimos meses he aparecido mucho más, y no solo en los
de FiveWin, sino en los de Harbour (la lista de correos) y en
el de xHarbour.

5. «que siguen alojados en el servidor de I.O.Z.»

No tengo culpa de haber topado con un alguien que se ha adueñado
no muy eticamente de www.fivetech.com y de news.fivetech.com
asi como de otras cosas… Eso tiene ciertos calificativos
obvios, pero no los voy a decir. Que cada cual saque sus
propias conclusiones.

Lo que si te digo es que desde que terminé mis relaciones
con I.O.Z., me siento mucho mejor y a mi empresa tambien
le ha sentado mucho mejor, en todos los sentidos.

p.d. Te agradecería que publicases el contenido de este
mensaje en tus foros como contestación (derecho a replica)
a tu artículo. Gracias!

saludos,

Antonio Linares
www.fivetechsoft.com

Publicado queda.

Reconozco que el post fue bastante duro con Antonio, quien al fin y al cabo es el autor de Fivewin que es mi librería preferida para hacer ejecutables Windows, y tampoco quiero que esto sea una nueva guerra mundial. Asi que vamos a dejar así las cosas. Me alegro de que el tono de la contestación haya sido atento y cordial y espero ver a Antonio en la próxima reunión de Olivares2000 y podamos charlar de estas y más cosas tranquilamente.

editor de recursos bueno, bonito y barato

Hoy el editor de recursos del Borland C++ me ha hecho una jugada tremenda. Después de corrigir unas cosillas de los dialogos de Colossus he salvado el archivo de recursos para compilar los fuentes y los recursos en el ejecutable. El compilador de recursos me ha dado un error… malo. Decia que en nosequelinea del .RC se esperaba un identificador de recursos. He abierto el .RC con mi editor de código … casi me da algo … habia trozos de un bitmap por todos lados … entre el final de un bitmap y otro … pero luego habia trozos de un dialogo …

¡¡¡ Que Horror !!!

He cerrado todo.

El lunes más.

¿ Alguien conoce un buen editor de recursos que no sean los de Microsoft o que sea barato ? La cosa no está para comprar el VisualSudio para usar sólo el editor de recursos.

entornos abiertos

Bajo el título Entornos abiertos: cuaderno online sobre software Abel González publica un blog sobre desarrollo de software centrado en LAMP: Linux + Apache + MySql + PHP.

El blog se ejecuta sobre komentar, un sistema libre de publicación personal desarrollado por Abel cuyo proyecto se encuentra alojado en Sourceforge. Se trata de un proyecto muy interesante que tiene como finalidad desarrollar un sistema de gestión de contenidos basado en el uso de plantillas y que corra sobre PHP y MySQL. Visto como está organizado Entrnos abiertos, creo que Komentar es un proyecto a seguir.

la importancia de la historia de la informática

Creo que cualquier profesional de las tecnologías de la información, y los desarrolladores de software lo somos, debe tener unos conocimientos básicos de Historia de la Informática. No digo que sea necesario saber que el término «byte» fue acuñado por Werner Bucholz en 1956 cuando trabajaba para IBM, pero sí conocer cuando, cómo y porqué surge esta disciplina y cuales han sido los principales hechos que han ocurrido en su corta pero vertiginosa historia.

Read morela importancia de la historia de la informática

el chef desnudo

Uno de los artículos que más me gustan de Joel on Software es Los big mac contra el chef desnudo, donde expone que es más importante el talento innato que seguir un manual de instrucciones. Cuando leí el artículo lo del chef desnudo me pareció una historia cool de Nueva York, o que se yo. Cual fue mi sorpresa cuando en la revista El Pais Semanal del día 20 de Abril venía un reportaje sobre… Jamie Oliver, el chef desnudo. Pues no era una invención, habrá que tomarse más en serio las historias que cuenta Joel…

retocando el blog

He estado retocando el blog. He puesto la barra de navegación a la izquierda y he añadido algunos detalles estéticos. ¿ Te gustá más ahora ? Realmente MT es una pasada, si haces un blog a mano… ve enseguida a descargarlo.

Viniendo de trabajar iba dándole vueltas a la cabeza a un viejo tema: ¿ donde se debe poner una barra de navegación, a la izquierda o a la derecha ? ¿ Y en un formulario de un programa ?

xbrowse con oCol:tooltip y oCol:bLDClickHeader

Ignacio Ortiz de Zúñiga ha realizado una actualización de su xBrowse en que ha incluido dos nuevas funcionalidades en su control.

La primera es la asignación un tooltip a la cabecera de la columna y la segunda la posibilidad de evaluar un codeblock haciendo dobleclick sobre la cabecera de una columna. Necesitaba esto para implementarlo en mi programa de contraseñas, pues quería que se pudiera ordenar las columnas de la rejilla de datos directamente sobre ella. La manera habitual de esto es con click o dobleclick sobre la cabecera, pero el click está asociado en xbrowse al drag & drop de columnas para reordenar, con lo que era necesario tener tambien la posibilidad de usar doble clicl. El click con el botón derecho del ratón sobre la cabecera está asociado a un menú popup que permite mostrar y ocultar las columnas.

20030422.gif

Creo que con estas dos nuevas funcionalidades, xbrowse es la rejilla de datos más potente y versatil que existe ahora mismo para usar con xHarbour/FWH.

conocimientos básicos para desarrollar software

En su artículo Computer Science: the discipline, Peter Denning hace una interesante descripción de lo que constituye el cuerpo de conocimiento de la Informática. Uno de los puntos que considero más acertados del artículo es el que se refiere a las habilidades básicas que deben tener los integrantes de la profesión y que es especialmente adecuado a los que nos dedicamos a desarrollar software. Estas habilidades son las siguientes:

  • pensamiento algorítmico: interpretación del mundo reformulada en acciones paso a paso para resolver un problema.
  • representación: manera en la que los datos son almacenados para ser recuperados eficientemente.
  • programación: permite tomar el pensamiento algorítmico y la representación para expresarlos en forma de software ejecutable en un ordenador.
  • diseño: conecta las anteriores capacidades con los problemas de la gente para resolver sus problemas particulares.

¿ Imaginas desarrollar software sin contar con estos conocimientos básicos ?

comercializar shareware: una carrera de obstáculos

En el número del mes de abril de la revista PcPlus viene un interesante artículo dedicado a la comercialización de software. Abarca algunos aspectos referidos a esta actividad como el registro de la propiedad intelectual de la obra, canales de comercialización, originalidad del software, etc. Sin embargo el artículo se queda corto para alguien que realmente quiera dedicarse a comercializar su propio software bajo la modalidad de shareware.

Por shareware entiendo un determinado tipo de software que tiene unas características muy concretas:

  • el software ha sido desarrollado originalmente por su autor para su uso personal
  • es el propio desarrollador quien ofrece y comercializa este software
  • existen versiones de evaluación para que el potencial usuario pueda probar el programa y decidir si es lo que busca
  • la versión completa del programa se puede registrar por un bajo precio, normalmente entre 20 y 50 €

El shareware ha contagiado de algunas de sus características a otros tipos de software. Actualmente casi todos los programas del mercado ofrecen versiones de evaluación y muchos programas comerciales han bajado los precios ante la competencia de aplicaciones shareware, sin embargo no son — desde mi punto de vista — aplicaciones shareware.

La comercialización de shareware obliga al desarrollador a enfrentarse con temas que antes nunca habia considerado. Partiendo de que ya contamos con un programa terminado y registrado, veamos cual es el camino a seguir.

En primer lugar se debe realizar la documentación adecuada del programa, aspecto que no suele agradar mucho a los programadores. Una buena documentación en formato electrónico es imprescindible, si bien una gran parte de usuarios jamás la leerá y preferirá preguntar directamente al autor cualquier duda que tenga sobre el mismo.

La promoción del programa se debe intentar por todos los medios al alcance del desarrollador. Una posibilidad es enviar el programa a todas las revistas conocidas con la esperanza de que publiquen una referencia o una versión de evaluación sobre la misma. Aquí la suerte es dispar, mientras que hay revistas que tienen buena disposición a la publicación de shareware hay otras en que es practicamente imposible conseguirlo. El siguiente paso suele ser contactar con empresas editoras de software, pero es muy difícil entrar en ese mercado. Si el programa no es muy bueno lo rechazarán sin tan siquiera contestar y si es bueno habrá que entrar a negociar la venta. Esta negociación será muy dura pues las empresas editoras querrán normalmente cerrar un precio para hacerse con los derechos del programa.

Dejo para el final la obligatoria creación de la página web del programa. El desarrollador tendrá que enfrentarse a elegir su nombre de dominio, diseñar su página web, contratar alojamiento, ofrecer multiples modalidades de pago y promocionar su web en los portales dedicados a shareware compitiendo con software comercial.

En la mayoría de casos que conozco de desarrolladores de shareware, toda esta actividad la realiza una única persona y ahi es donde radica el problema. La mayoría de programadores son buenos o muy buenos programando, pero no son capaces de recorrer todo el camino para llegar a comercializar su software. El bajo precio del shareware hace que unicamente se obtengan beneficios si el volumen de ventas es grande, cosa que por otra parte es muy dificil que llegue a suceder.

Una vez hecho todo esto es cuando realmente comienzan los dolores de cabeza: correos preguntando lo que está en la documentación, preguntando lo que vale el programa o como pagarlo, errores que les surgen a potenciales usuarios,… Este es el momento en hay que trabajar y ganarse a cada usuario en cada correo y en cada llamada. Y sobre todo no desfallecer y mandarlo todo a paseo.

He dejado al margen los temas laborales y fiscales de la actividad económica, pero al inicio de la actividad hace falta darse de alta en la seguridad social, registro de actividad económica, IVA,…

En el artículo que mencionaba al principio se alude a la escasez de buen software en castellano. Creo que después de lo expuesto es más facil de entender.

la elección de un nombre

Una de las cosas más complicadas que se han de decidir cuando se aborda el desarrollo de un sitio web es la elección de un nombre. A esta actividad los americanos, que tienen nombre para todo, le llaman naming. Hay incluso empresas que se dedican a hacer naming para terceros, el caso más llamativo quiza sea HundredMonkeys.

En uno de los últimos post de mi antiguo blog decía que el dominio para este blog era uno muy bueno. ¿ Es el nombre avemundi adecuado para un blog sobre desarrollo de software ? Desde mi punto de vista si. El primer programa que se hace en casi todos los libros de programación es Hola mundo que en latín es … avemundi.