JEDI Version Control System (II)

febrero 28, 2009 en Advertencia, Artículos, Consejo, Delphi, Entrada Diario, Firebird, VCS (Control versiones), Videos

Lo prometido es deuda. Vamos a compartir esta segunda entrada sobre JediVCS.

Finalmente dejé de lado los pantallazos y acabé creando una reproducción avi. Posiblemente así pueda quedar mas claro y no se hacen demasiado extensas estas lineas con un sin fin de imágenes y texto explicativo.

Primeros pasos con JediVCS:

En la tercera parte vamos a comentar el contenido del video y el punto que puede ser mas peliagudo, que es el workingdirectory. Hubiera preferido extender esta entrada pero dado que ahora mismo no dispongo de tiempo he preferido adelantar el video que preparé ayer por si algun compañero desea visualizarlo, ya que pienso que es lo suficientemente claro de los primeros pasos en este controlador de versiones.

Nota aclaratoria: Durante la reproducción del video se muestra el momento en el que el segundo usuario accede al proyecto y se parte del supuesto de que dicho usuario todavía no tiene el codigo fuente. Asimismo, dicho usuario habrá creado una unidad virtual con la misma letra, que aun no contiene ninguna fuente. Este repositorio local permitirá que cada usuario trabaje de forma independiente. Al conectarse al servidor de JediVCS, en la pelicula se muestra la dirección 127.0.0.1, lo cual es incorrecto ya que muestra esta dirección unicamente porque estoy grabando y simulando en el mismo equipo los dos usuarios y el servicio.

Recursos delphi… una cuestión de principios.

febrero 27, 2009 en Advertencia, Artículos, Consejo, Delphi, Entrada Diario

No tuve tiempo ayer a redactar la segunda parte de la entrada de JediVCS, ya que aunque parezca que sean solo cuatro lineas escritas, había pensado seguir paso a paso, capturando imagenes no solo de la instalación sino de la configuración, desde el principio hasta el fin, de forma que estuviera todo el proceso de trabajo. Así que se me fue un buen rato no ya en la desinstalación del cliente o del servidor de jedi, que eso es un minuto, sino en ir copiando pantallazos e ir ajustandolos en tamaño para poder subirlos al servidor. Imagino que durante este fin de semana podré tenerlo todo listo.

Otra cosa… ayer fue un día complicado porque me bloqueó un pequeño problema con las modificacion de uno de los módulos de la gestión. Perdí varias horas intentando descubrir el problema hasta que vimos bastante asombrados que lo causaba la excesiva longitud del nombre del campo. No he dicho que esta gestión, en Delphi 2007, utiliza dbExpress (circunstancialmente con dos capas, pero preparada ya para poder separar los clientes intermedios), con acceso a un servidor de sql server a través de los componentes de ado. Pues bien… Se añadieron varios campos a una de las tablas y al contrario de lo que suele ser habitual, hice uso de un nombre ¿excesivamente? largo. Vale… vale… ¡reconozco que eso no se hace! jejeje

¿Tan largo es “PorcentajeDescuentoClienteAdicional”? ¿35 caracteres?

Mis amigos, tienen una expresion para esos casos:

- ¡Siiiii, homeeeeeeeee!

Esa expresión es una mezcla entre la sonrisa, el asombro, la íronía y las ganas de vomitar…

Pues bien. En el momento en el que haciamos ApplyUpdates( ) y se actualizaban los cambios en el servidor, emergía un sopechoso mensaje que rezaba mas o menos “No encuentro el campo PorcentajeDescuentoClienteAdicional“. Os lo traduzco al inglés para que no se me queje la comunidad angloparlante ;-) “… PorcentajeDescuentoClienteAdicional not found”.

El error emergía en el evento AfterUpdate del proveedor de la capa intermedia, justo al recibir como origen de datos el dataset que contenía el nombre largo. Y despues de salir del evento.

Puse mil puntos de parada. Hicimos trazas en el servidor de sqlserver para ver que estaba pasando entre bastidores. El problema era un poco engañoso porque podíamos visualizar los datos en tiempo de ejecución, podiamos hacer modificaciones pero cuando se insertaba un registro y se confirmaban los cambios el programa lanzaba ese quejido lastimero que me ponía los pelos de punta. Hasta que se nos ocurrio pensar… a ver si no encuentra el campo porque tiene el nombre largo:

Expresión de Manuel ante esa idea:

- ¡No jodassssssssssssssss! (y se produjo en la cueva tal silencio que se estremecieron los cielos y los infiernos).

Así que cambié el nombre en la tabla de sql server a “PorcentajeDtoCteAdicional” y tras los cambios en los TClientDataSet y los DataSets de la capa intermedia todo volvió a la normalidad.

Incluso ahora mismo estoy dudando si eso lo soñe ayer o pasó de verdad. :-)

Ahhhhhhhhhhhhhhhhhh…. otra cosa…

No se porque de repente a uno le vienen “flashes” mientras espera a que el equipo salga de algun proceso “gordo”, pero me quedé mirando la ventana de bienvenida del entorno de Delphi 2007 y caí en la cuenta de un detalle que me había pasado desapercibido…

Mirad la pantalla a la que me refiero:

Recursos delphi

- ¡Siiiii, homeeeeeeeee!

¿Sera posible que no conozcan en Borland – Codegear – Embarcadero, un solo recurso español que merezca figurar en esa ventana de presentación? ¿No conocen sitios web que han estado luchando por difundir conocimientos sobre sus entornos años y años, -me gustaría omitir nombres para no olvidar a ninguno ni que pueda sentirse excluido nadie- en la mayorías de los casos sin ánimo de lucro?
Ojo… ¡por favor¡ ¡no hablo de mi!, porque yo no soy nadie y se que siempre habrá quien entienda que esto es una especie de reclamación y nada más lejos de la realidad. Los que me conoceis sabeis que no es el caso, pues solo soy simplememente un pequeño programador de pueblo.

Hablo del Club Delphi, hablo de Trucomania, hablo del Grupo Albor, hablo de Latium Software, hablo de Carlos G., hablo de Marteens o de Charte, del Rinconcito, de las paginas de JM o de tantos y tantos compañeros hispanos. No queria dar nombres y pido perdon por los que hayan podido quedar en el tintero que serán cientos. Han sido y son recursos muy valiosos para la comunidad hispana.

Si yo fuera el CEO de un producto así, me daría verguenza leer esta entrada y saber que lo que me está diciendo un programador de esos del montón, que se gana la vida como bien puede y le dejan, es históricamente cierto, rigurosamente comparable y vergonzosamente real. Quien sepa leer estas lineas sabe que hablo de un tema de “actitud”. De ahí el título de la entrada: “Una cuestión de principios…”

En fin… ya me veis que yo ya he hecho mi esfuerzo hoy para que vean que no somos rencorosos jajaja:

“No encuentro el campo PorcentajeDescuentoClienteAdicional” = “… PorcentajeDescuentoClienteAdicional not found”.

:-)

JEDI Version Control System (I)

febrero 26, 2009 en Artículos, Consejo, Delphi, Enlace interesante, Entrada Diario, VCS (Control versiones)

Habitualmente lo podemos conocer como Jedivcs y es un proyecto opensource que nos permitirá el control de versiones de nuestro código fuente. Muchos de vosotros podéis conocerlo; está basado si no recuerdo mal, en el originario de Thomas Hensles (FreeVCS ) y se ajusta a la licencia de Mozilla Public License Version 1.1. . Se aloja, como tantos proyectos libres en sourceforge.

http://jedivcs.sourceforge.net/index.html

En la sección de descarga de la web de jedivcs podéis en este momento descargar la ultima versión, que se corresponde con la JEDI VCS 2.43

JediVCS

No hace demasiado tiempo de la salida de esta última versión, ya que estamos hablando de Octubre del 2008, hace cinco meses. Podeis ampliar los detalles técnicos de las nuevas funcionalidades y correcciones que incorpora en la documentación (http://downloads.sourceforge.net/jedivcs/JVCS.2.43.ReleaseNotes.pdf?use_mirror=ovh). Pero bueno… creo que merece señalarse que ya permite la integración con Delphi/C++Builder 2009.

Hasta este punto se puede decir que hemos caminado sobre detalles bastante objetivos pero sabéis de sobra que el tipo de espacio que compartimos intenta llegar un poco mas lejos y en la medida de lo posible, y a riesgo de equivocarnos, estas entradas sirven para reflexionar, discutir o simplemente conversar. No voy a empezar la entrada diciendo si JediVCS es mejor o peor proyecto que otros existentes, mas evolucionados o mas complejos, porque existir existen y seguramente tambien existan razones para optar por unos o por otros. Mi idea al empezar a escribir estas lineas era simplemente contar un poco la peripecia que vivimos hasta que el sistema ha empezado a funcionar de forma optima.

Veamos… No siempre es necesario un sistema de control de versiones de la misma forma que tampoco es necesario hacer comentarios exhaustivos en las líneas de código. Depende de muchos factores pero creo que uno de los principales es la realidad de muchos programadores que trabajan como autónomos y que no siempre se trabaja en equipo y nos pierden las urgencias y la necesidad de entregar los proyectos. No me cabe la menor duda que a todos nos gusta que nuestro codigo este “exquisitamente comentado”, ordenado, con anotaciones de cambios, pero mi experiencia y la que he podido compartir con otros compañeros es que a menudo el mantenimiento del codigo fuente es uno de los primeros sacrificios que hacemos en aras de la supervivencia, de la rentabilidad. Ya.. ya se que no debería ser así pero la realidad es la que es. Supongo que existiran programadores metódicos que se rasgaran las vestiduras por estos comentarios pero yo ya he dejado de escandalizarme por cosas mayores.

Ahora bien, no es de recibo abogar por actitudes que al final deterioran la calidad de nuestro trabajo, si no a corto plazo, sí a medio largo plazo, cuando el proyecto empieza a tomar cauces distintos y donde nos aseguraron que 2 + 2 eran 4, desean ahora que sean 6.

El caso es que yo habia escuchado hablar de este tema. Incluso recordaba haber comentado con un buen amigo y compañero de trabajo los detalles de la puesta en marcha de un CVS. Pero sin profundizar demasiado. Es decir. No tenía ni puta idea de como funcionaba y sabía mas o menos que me podía aportar pero no para tirar cohetes. Lo que pasa, y vuelvo al razonamiento inicial, cuando uno trabaja solo, como a mi me ocurría en ese momento tampoco me preocupaba demasiado. Hacía mis copias de seguridad. Intentaba que el codigo fuera lo más limpio posible, evitando ser rebuscado en los razonamientos y comentaba las lineas mas críticas de los módulos. Nada de florituras en cada procedimiento o función tipo:

//————————————————————————-
// Procedimiento: El procedimiento permite … etc etc…
//
// Parametros: … etc etc..
//
// Objetivos: …
//———————————-
procedure TForm1.MiProcedimiento(

Creo que me entendéis.

En fin. Las situaciones cambian y desde que me incorporé a un empresa en la que desarrollo por cuenta ajena, y comparto el departamento con otro compañero, (somos tres programadores pero el tercer programador aborda la parte de la web y no participa de esta problemática), empezamos a vivir los problemas de convivencia respecto al código fuente. Y eso que eramos dos gatos y bien avenidos. :-)

El principal problema que nace de esa convivencia es la posibilidad de sobrescribir accidentalmente los módulos de código. ¿Cuántos módulos puede tener un proyecto? ¿400? ¿500? La angustía de vivir en un ay:

-¿Estas modificando el codigo de este modulo, Manuel?
-Graba por favor que necesito hacer unos cambios.
-Espera que ahora no puedo…
-Me cago en la madre que ha parido a … (insultos varios) … que se me ha borrado las lineas que tenían.

Eso teniendo el codigo compartido en un servidor y accediendo los dos desde una unidad conectada. Si fuera el caso de que estuviera duplicado el codigo localmente todavía el peligro de sobrescribir algun módulo es mayor, salvo que inviertas en una pizarra grande y la cuelgues del techo, y allí escribas el nombre el modulo que vas a cambiar para que lo vea tu compañero.

En esas condiciones empezamos a hacer de sabuesos y dimos los primeros pasos para ver como solucionabamos el tema y fue así como apareció la palabra CVS en los pensamientos inmediatos de ambos. Pero…

(Primera reflexión que nos surgío)

¿Tenía nuestro entorno de delphi alguna característica que permitiera el control de versiones? (sin tener que soltar un duro)

Pues desgraciadamente, es un tema que no parece demasiado contemplado en las versiones de delphi (o al menos se deja para que otros desarrolladores y empresas lo solucionen). Esa reflexión os confieso que (me) resultaba un tanto inquietante en el sentido que dada la inversión que se hace en un entorno así, y sabiendo como se sabe que será utilizado por un equipo de programadores en condiciones normales, no se contemple que traiga ya incorporada esta caracteristica. Estos días estuve ojeando la demo un entorno como windev.com y cuando generas un proyecto ya le indicas si vas a trabajar tu solo o en equipo. Velneo, mi querido velneo, tambien contempla esa posibilidad y ya se ha tenido en cuenta durante el desarrollo de la V7, y sin embargo, Delphi, que hicieron ese tímido intento en la versión Borland Developer Studio 2006, incorporando el cliente de StarTeam, se lo llevó el viento… y nunca más se supo. No parece muy lógico que unas herramientas de desarrollo que se supone que van a ser utilizadas en equipo no profundicen en esos temas y mas aun, se evadan de ellos como quien no quiere la cosa.

Me gustaría decir que la llamada al representante español que como sabeis es Danysoft, nos aportó claridad en el asunto pero desgraciadamente no fue así. Y me duele decirlo porque siempre los he valorado muy positivamente pero en este caso, nos quedo la impresión de que ni siquiera a ellos fuera esta cuestión algo que habitualmente les demandaran. Eso sí nos indicaron el camino del Jedi (que la fuerza te acompañe Luke!!!), tras comprobar que los precios de un controlador de versiones como Starteam eran algo disparatados. Incluso nos liaron mas recomendandonos que hicieramos uso de un invento que nadie sabe para que sirve (seguro que los de borland si) que se llamaba repositorio compartido y que debía bloquear el acceso a módulos comunes. Lo cierto es que todavía no he averiguado que coño controla. Desde luego, para controlar versiones o trabajar en equipo parece que no… jejejeje

Empezamos a trabajar en el tema de evaluar JEDIVCS. :-)

Tras proceder a la descarga, la instalación no resulta demasiado áspera. Siguiente, siguiente, siguiente y ya tienes el cliente. Siguiente, siguiente, siguiente y ya tienes el servidor. Quiero decir que no habian pegas o dudas pues son cuatro pantallazos. Quizás lo mas inquietante era si se intalaba el servicio embebido de firebird (nosotros elegimos el servicio sobre esta base de datos) o sobre el servidor de la version 1.5 que ya teníamos en funcionamiento. Al final elegimos el servidor y tras ejecutar un script de creación de la base de datos y configurar el servicio de Jedi para que apuntase al servidor de Firebird, nos quedaba solo instalar el servicio desde dicha configurador e iniciarlo. Y todo funcionó bien.

Os prometo que no os engaño, que lo que os acabo de contar hace algo así como 3 ó 4 meses. O quizás mas. La puesta en marcha fue un desastre porque a pesar de leer las indicaciones una y otra vez algo no funcionaba correctamente.

Veamos el documento de puesta en marcha:

How to start working
To become friendly with JEDI VCS we recommend to do the first steps with a less important ‘Dummy’ project. The Dummy project may be removed from the archive later without any problems.

As from V 2.0, JEDI VCS is based on a Client/Server architecture, connecting client & server via TCP/IP protocol.
Due to this you MUST install the TCP/IP network protocol on your machine, no matter whether client & server are located on different or on the same machine.
Step by step:
· Close Delphi / C++ Builder.
· Install JEDI VCS (as described in Installation ).
· Restart Delphi / C++ Builder. (Close Delphi / C++ Builder and check the registry value if the error ‘VCSManager not found’ appears.)

Hasta aquí fue seguido al dedillo. Sin problemas.

· Set the options and paths under Properties .
We recommend to make the Backup function active (page Backup/Log). (Default = off.)
Sharing the archives over a network requires additional configuration settings!
· Open an existing project, project group or package (or create a new and save it under a unique name – Remember that ‘Project1.dpr’ or ‘Package1.dpk’ are not valid project names JEDI VCS!).
In the IDE expert version, a new created Delphi / C++ Builder project (IDE|File|New Project) must be saved under a valid name, before it can be added to the archive. You must reopen the project so that JEDI VCS can recognize it as a new project (JEDI VCS watches the project Open-Close events in the IDE).

Esta parte es mas o menos sencilla pero para quien no ha trabajado nunca con este sistema de trabajo puede suponer o imaginar cosas que no sean correctas. Lo habitual sería abrir el cliente del Jedi en nuestra versión de Delphi y al reconocer nuestro proyecto actual, cargado ya en el IDE, nos pida crear el proyecto de control de versiones, que habitualmente coincidiría en nombre con el de nuestro proyecto. Así que eso precisamente fue lo que hicimos. Con el desarrollo alojado en el servidor principal, accedimos a la unidad conectada y eso, tras abrir el cliente de JediCVS, nos hizo dar los primeros pasos, creandose el proyecto e insertando en el mismo todos los módulos que contenía.

Nos saltamos varios párrafos y llegamos a:

..· If your changes have not the expected results there are two ways to get back the original state:
1. Select ‘Check Out’ again in Project manager and create a copy (select ‘Check Out & confirm the question ‘Overwrite…?’ with yes) of the saved module (UnCheck Out). JEDI VCS will restore the old state of the module (the module is still checked out and locked for other developers).
2. Select ‘Undo Check Out’ in Project manager. JEDI VCS will restore the old state of the module and unlock the module in the version archive (the module is checked in and everything is back as it was before).
Remember that any changes to the module on disk will be lost!
· If you have done (and tested) your work re-check in the module[s] and other users can ‘ Synchronize ‘ their working directories to the current development state.
· Get is an other way to get the most actual version of a module from the archive.

Es decir, teníamos un proyecto y unos módulos ya dentro del jedi y el sentido común, nos indicaba que estos dos comandos, check out y check in, iban a ser la base de nuestro trabajo. Check in, representaba a los modulos archivados y Check Out, aquellos que se sacaban para ser modificados por el usuario del equipo.

Ciclo trabajo

Y aunque aparentemente era todo correcto, algo no funcionaba bien. Si yo bloqueaba un módulo y hacia check out sobre el mismo, mi compañero seguía viendo los cambios que yo había hecho y cuando compilaba la aplicación los detectaba.

-Raro, ¿no?… -nos deciamos Manuel y yo-

Es decir, se hablaba de un puñetero workingdirectory, pero en la configuración de las opciones del cliente solo aparecía un directorio temporal. Por un lado no te recomendaba alterar la ruta o destino del check out y sin embargo el efecto de no hacerlo solo se traducía en el bloqueo de lectura y localmente no se creaba ningun archivo.

Sinceramente y resumiendo un poco, esa primera experiencia duró un par de semanas, hasta que accidentalmente sobrescribí el codigo de toda una tarde de trabajo, al hacer un syncronize, que me llevo a una angustia vital y a maldecir a todo bicho viviente. Ese día, cabreado por la situación acabé desinstanlando todo lo que había instalado, y mandando (y pido perdón por la expresión) a la mierda mis buenas intenciones de introducir el control de versiones. En el manual del JediVCS creo que faltaban explicar algunos puntos claves que se pasa así como si se sobre-entendieran y si no se ha trabajado nunca con estos artilugios puedes cagarla.

Ese:

Sharing the archives over a network requires additional configuration settings!

No puede pasar tan inadvertido. :-)

La historia es que probamos varios CVS, como TeamCoherence y alguno mas, que se integraba en el ide pero cansados de perder tiempo seguimos trabajando de forma precaria y nos olvidamos del tema durante un tiempo y seguimos trabajando a “voces”. :-)

El viernes de la semana anterior, tras dos o tres dias en los que reintentamos con sana cabezonería que funcionara el control de versiones, finalmente descubrimos el problema, que realmente era por desconocimiento del funcionamiento de esta herramienta. En opinón de ambos, de Manuel y mia, la documentación habla de muchas cosas, bla, bla y bla pero da por supuesto algunos conceptos de esa puesta en marcha que no se desprenden lógicamente del contenido y se tocan asi como de pasada.

Esa es la primera parte de la entrada de hoy. En la siguiente vamos a ver que es lo que fallaba, mas que nada por si alguno de vosotros os encontrais en una situación similar y os rebanais la cabeza pensando en que estais haciendo mal. Ademas, se ha hecho tardisimo y hay que descansar.

Ahh … Solo decir una cosa antes de acabar. Una vez correctamente configurado JediVCS, estamos trabajando sin ningun problema, y es cuando uno descubre que incluso para situaciones en las que uno trabaja solo, o donde solo existe un programador accediendo al codigo puntualmente, es una buena idea su uso y recomendable cien por cien. Y si encima es gratuito(*), como es este caso, mejor aun.

(*) Aunque sean gratuitos es una buena práctica hacer una donación de cuando en cuando a este tipo de proyectos… por agradecimiento… o si se prefiere por el egoismo de que puedan pervivir. ;-)

Problemas de visualización de la página.

febrero 25, 2009 en Entrada Diario

Siento los problemas que habeis tenido para visualizar la página durante el día de hoy, pero me ha sido totalmente imposible reparar el problema con mayor antelación y hasta bastante avanzada la tarde no era consciente de que se habia perdido el formato de la misma. Pensaba que habia sido problema del ultimo cambio que habia hecho. Me venía a la cabeza una ocasión en la que introduje una imagen de mayor tamaño que el contenedor y la barra lateral se desplazaba automaticamente hacia abajo y quizás, por esa razón he tardado en darme cuenta de que (ahora viene lo mejor) inexplicadamente se ha borrado un archivo. Ha desaparecido su contenido y precisamente era el archivo de cabecera, donde estan las aperturas de las etiquetas principales de inicio de página, así como la carga de formato de las hojas de estilo.

Al final, me he dado cuenta de que faltaba dicho contenido y saliendo al paso he recuperado una cabecera de la versión anterior del blog. Supongo que a lo largo de esta noche o mañana me podrán facilitar una copia del fichero borrado desde el soporte de mi servidor, alojado en Dinahosting. He contactado con ellos y creo que ya lo estan resolviendo. Por cierto, y ya que hablamos de este servicio, romperé una lanza por esta y muchas empresas españolas que están dando un servicio de ole. Llevo unos 4 o 5 años (ya no lo recuerdo bien) alojando mi espacio web en este proveedor y nunca he tenido incidencias graves, como cortes de servicio en correo o de paginas web. Es mas, cuando ha existido muchas veces por motivos ajenos a ellos, siempre he recibido por parte del equipo de soporte un trato exquisito y ademas en castellano. Parece que siempre valoramos más lo que nos viene de fuera que lo que tenemos en casa y en ocasiones, tenemos empresas muy buenas que descartamos por inercia.

Nada más. Os pido perdon por la incidencia y vamos a seguir trabajando.

Ahhh… olvidaba una cosa. Me he quedado a mitad de una “entrada”, que con todo este lío de la visualización de la página y no he podido acabarla y que tiene que ver con el controlador de versiones JediVCS, (que hemos puesto en marcha esta misma semana en la empresa). Ha sido una historia con miga y me apetecía compartirla con vosotros. Así que el próximo hueco que tenga, la acabo y os la subo al blog.

¿Juegas conmigo?

febrero 22, 2009 en Artículos, Delphi, Enlace interesante, Entrada Diario

Esta noche ya podeis ver algunos cambios que he introducido en el blog. ¿Qué tal esta así? ¿Qué os parece?

He cambiado la situación de las entradas finalmente, desplazandolas a la izquierda para que la columna de la derecha permita ubicar las videos de youtube, si es que necesitamos compartir alguno. De paso, y aprovechando que el rio pasa por el pueblo, he colgado los cuatro videos de la presentación de Velneo, en donde se explican los primeros pasos con la V6. Estos videos son bastante representativos de la filosofia de Velneo. Pero la idea es que esa columna permita ubicar mas contenido visual.

Mientras preparaba esta entrada, buscaba un link que encontré hace como un mes y que guardé en favoritos. Pensaba que lo había guardado pero se ve que no. ¡Qué desastre de persona! Al final he tenido que hacer una busqueda en internet a traves del nombre del código fuente que me bajé y lo he encontrado. Era una pagina interesante porque contenía el codigo fuente de un pequeño juego de ajedrez. Mejorable a nivel de motor de juego, como dice el autor, pero es una pista para todos aquellos compañeros que en alguna ocasion nos hemos planteado abordarlo y hemos pasado horas dandole vueltas al tema.

Esta es una imagen del programa

Juego del Ajedrez

El link a la pagina (Delphi Magic) que es donde pude encontrarlo, es el siguiente (por si quereis descargarlo dar un vistazo):

http://delphimagic.blogspot.com/2008/11/ajedrez-con-delphi-chess-with-delphi.html

El enlace de descarga directo lo podeis localizar en http://jjavierpareja.googlepages.com/chessbrd.zip

Por esta noche nada mas. Voy a leer un rato el libro de Cantú. A ver si en próximas entradas podemos comentar algo.

Que seais felices.

Algunos cambios…

febrero 21, 2009 en Delphi, Entrada Diario, Velneo

Esta noche la estoy dedicando a hacer algunos cambios en la pagina web. Así que es posible que si entrais veais cosas raras… :-) paneles fuera de sitio, desajustados y el contenido algo alborotado. No pasa nada… Esta todo controlado. jajaja (o al menos eso creo) ;-)

Tardare unos días. Quiero aprovechar este fin de semana para estas tareas que no me gustan demasiado.

Es un esfuerzo para mi ya que aunque como cualquier programador conozco todo lo que se puede conocer de php y html, de las hojas de estilo y de los scripts. Pero vamos…. Si uno trabajara en eso diariamente sería una rutina. Hubo un año en el que trabaje en el ayuntamiento de mi localidad, en el mantenimiento de la intranet y la pagina web, y en esos días, mas o menos me manejaba con soltura. Pero de eso ya hace varios años… Así que me he puesto esta noche a variar la estructura de las fuentes de wordpress para que se ajuste un poco a las novedades que intentaré introducir a lo largo del año en el blog. Me gustaría mejorar el contenido.

Si os fijais he dejado un poco mas de espacio en la columna de la izquierda y un poco menos en la parte de las entradas de la web. La idea es sacar mejor provecho a la zona encolumnada. Mas espacio para no sentirme aprisionado. He revisado los enlaces, que habia algunos ya muertos.

¿Pero es que nadie se da cuenta de eso…?

Es decir…. veamos… se supone que yo no quiero una página que sea un cementerio en el que lo que escribo no sirva para nada. He recibido bastantes correos de compañeros que me han consultado cosas y siempre he ayudado a todo el que me lo ha pedido (al menos lo he intentado) y me gustaria que el que se pasara por estas paginas se sintiera en la libertad de opinar, de aportar, de rectificar. Me gustaria que este blog tambien fuera un poco vuestro.

Incluso me habia planteado migrar el contenido del blog a las paginas de spaces de microsoft, ya que tienen ciertas ventajas respecto al uso del blog de Wordexpress, en donde me resulta mas complicado hacer algunos cambios en el diseño de los módulos. Mantengo un espacio personal privado, que me sirve para escribir todo lo que no tiene que ver con la programación y es otra historia. Es otro planteamiento pero podría ser compatible ya que el espacio contiene tambien las entradas de blog. Al final, he decidido demorar esa alternativa y seguir en mi servidor y mantener el mismo criterio que he mantenido, aunque me cueste dinero del bolsillo (con lo ahorrado podria haber celebrado una comida con mis amigos, de esas de hermandad con buenas viandas y abundante cerveza).

Por cierto. La idea es la misma. Sigo siendo fiel a la idea de que el blog se mantenga de forma altruista y de que no aparezcan banners ni nada que se le parezca, salvo que sean de organizaciones no lucrativas (humanitarias) o que aporten un valor añadido al blog. Digo esto porque tengo que soportar que emerjan algunas ventanas por culpa del contador de entradas, pero no puedo hacer nada por evitarlo. Es un tema de Webstats, del script que utliza para la captura de la entrada del usuario. Al principio encontré la forma de que funcionara el contador evitando las ventanas emergentes (ese truco se lo vi a Jose Luis en su página jejeje) pero los ultimos cambios que hicieron fastidiaron el invento. Y el pago de los contadores ya se me escapa… Y si cambio a otros contadores es una putada porque el sistema de estadisticas de webstats creo que van bastante bien y me gusta. Asi que si veis alguna ventana emergente no tiene que ver con el blog. La bloqueais con el bloqueo de pop-up del navegador y fuera problema.

Por hoy nada mas. Voy a seguir con el tema de la página. Siento las molestias que os pueda ocasionar con estos cambios.

Ahhh El otro día me enviaron un chiste gráfcio que me hizo reir, porque tenia mucha razón. ¡Más razon que un santo!

Proyecto Informático

:-) :-) :-)

Hasta ahora.