Cambios en freniche.com (de nuevo)

Al fin he tenido un rato y he implantado algunos cambios que se perdieron en la migración de la 3.8 a la 4.0. Básicamente son:

  • he quitado el fondo del menú, que no funcionaba del todo bien en Firefox. Además, así queda algo más limpio el diseño de la página.
  • he vuelto a incorporar un menú «breadcrumb» en todas las páginas, para que se vea dónde estás y mejorar la navegación por el sitio.
  • al fin he instalado y configurado la extensión realurl, que permite tener URLs sencillas de leer (y de meter en favoritos). Actualicen sus bookmarks
  • he activado la información de última actualización (lastUpdate) de las páginas.

Ahora quiero dedicarme a añadir, corregir y actualizar contenido. Aunque me gustaría también cambiar el diseño del sitio y que sea más bonito… Ya veremos.

j j j

Dudas que duran años en un rincón de la mente

Hay veces que uno escucha una palabra, no sabe que significa, la busca y no la encuentra. Y aquí comienza mi historia. Hace mucho tiempo ya, estudiando una asignatura de la carrera (concretamente Ingeniería del Software I) se estudiaba la Gestión de Requisitos.

Se hablaba de la extracción de Requisitos, de forma manual y luego apoyada por una aplicación llamada REM

El caso es que se hablaba, por activa y por pasiva, de la «elicitación» de Requisitos. Y aquí comenzó esa duda aparcada en el fondo de mi mente. ¿De dónde se habían sacado esa palabrita?. Busqué una forma parecida, en Inglés, pero no la encontraba. En Español, ni de coña. La RAE no sabe aún qué es eso de elicitar.

Y ha querido la casualidad que hoy, leyendo una documentación sobre OpenUP/Basic me encuentre de nuevo con la palabrita, en versión inglesa: elicit. La he buscado y esta vez sí que aparece en varios sitios. Al final, es una palabra que viene del Latín (elicere). Normal, a la gente que se quiere dar un poquito de importancia siempre le ha gustado usar latinajos para que el pueblo llano no les entienda, o al menos parezca que están haciendo algo muy importante.

Así que ya me he quitado la duda sobre «elicitar» requisitos, que no es más que una forma pedante de decir: extraer requisitos.

j j j

He movido el alojamiento a siteground.com

Esta noticia sirve para dos cosas. La primera, para yo distinguir entre la versión del portal freniche.com en 2mhost.com y la nueva en siteground.com y para que el que me mande un correo y vea que no le contesto, que insista, que puede haberse perdido en el cambio de DNS.

¿Que porqué me he movido, de nuevo? Creo que 500 GB (sí, GB con G de Grande), cuentas de correo ilimitadas, mysqls ilimitadas, postgreSQL ilimitadas, un ancho de banda terrible al mes, fantástico, cPanel (estas dos también las tiene 2mhost) y, sobre todo, un equipo de técnicos que te responden rápido y que parece que saben de lo que están hablando son razones más que suficientes para el cambio.

Ahora que dispongo de espacio de sobra y potencia bajo mis manos, quiero lanzar un par de proyectos que llevan aparcados demasiado tiempo. Atención, amigo conductor…

j j j

¿Volvemos a programar con TurboPascal / TurboC?

Ah, Aquellos tiempos… Como buen retroaficionado a los ordenadores antiguos y tecnologías nicho siempre me alegra encontrarme en la red con algo de mis comienzos. He visto cómo con el tiempo se han liberado casi todos los juegos de mi AMSTRAD CPC, dispongo ahora de programas con los que soñaba en mi juventud, amén de más máquinas de las que puedo manejar (dedicando a cada una un pie o una mano).

Hoy me he topado con una web donde Borland tiene un museo de sus programas colgado en http://dn.codegear.com/museum/antiquesoftware. ¡Se puede uno bajar el TP 5.5 y empezar a recompilar aquellas TPUs del pasado, celosamente guardadaas en discos de 3″y1/2 que almacenan una fina capa de polvo!.

En los primeros años de los 90 programé mucho, pero que mucho, especialmente en C usando el TC 2.0. Aprendí Pascal en la carrera pero lo disfruté a causa de A.L.Delgado, que fue el que me enseñó los placeres del lenguaje estructurado, qué era la POO, porqué hay que programar de forma elegante y otros miles de cosas más.

Hoy día, la manera más sencilla de volver a desempolvar aquellos programas es mediante una máquina virtual con FreeDOS instalado. A ver si encuentro el tiempo y empiezo a colgar uno por uno mis programitas de aquella época.

j j j

Los cuatro aspectos de la gestión de proyectos, vistos gráficamente

Cuando se habla de gestionar un proyecto se tratan habitualmente tres dimensiones: el tiempo disponible para realizarlo, los recursos (materiales y humanos) con los que contamos, y los requisitos o alcance que tiene el proyecto: qué tiene que hacer. Siempre que hablo de un proyecto pienso automáticamente en uno informático, es decir, cuyo resultado será un portal web, o un programa, o un plan de formación técnico o algo así, aunque también vale pensar en la organización de una boda o de un viaje, como ahora veremos.

Para ilustrar estos tres aspectos y su relación se pinta casi inevitablemente un triángulo en la pizarra. La situación ideal es que el triángulo sea equilátero, que todos los lados estén equilibrados (nota a los malos traductores: balanced no se traduce por balanceado, sino por equilibrado). Si alguno de los tres lados crece, los otros se ajustan para mantener el tri?ngulo.

Ejemplo 1: Desarrollo de un portal web.

Si nos fijan una fecha de entrega, y los requisitos no están claros (lo que, por la primera ley Freniche del Software hace que no paren de crecer) tenemos dos posibilidades. La primera, huir del proyecto rápido, rápido y sin mirar atrás. La segunda, la más habitual (bueno, ahora que lo pienso…) es aumentar los recursos: contratar a más gente.

Ejemplo 2: La boda

Si los requisitos cambian, por ejemplo, porque no coincidan las fechas en que está disponible el cura y el lugar donde vamos a celebrar el enlace, ya que los recursos son limitados (la organización de una boda siempre recae en la novia que acaba al borde del histerismo) el plazo de entrega debe variar: se mueve la ceremonia a mejores fechas.

En todas estas situaciones se supone que no hay problemas, ni errores. Al planificar, todo va a ir bien. Pero en los proyectos informáticos (como en todos los demás, por cierto) hay que contar con el nivel de calidad que debemos entregar. Podemos pensar en que nuestro sistema no tendrá ni un solo error, lo que es en sí mismo un error. No tiene sentido resolver un problema cuyo coste supera al beneficio que aporta.

Luego hay que tener siempre presente la tasa de errores con la que queremos vivir. Si nuestro programa debe ser perfecto, los recursos para control de calidad, test y comprobaciones aumentarán. Necesitaremos más tiempo para hacerlo todo con calma. Y el alcance no puede crecer y crecer, ya que con cada requisito nuevo la probabilidad de introducir un error nuevo, o de que el sistema no funcione bien debido a las interacciones entre componentes aumenta.

¿Aburrido?

La verdad es que hablar de gestión de proyectos le resulta un ladrillo a mucha gente. Y encima es algo que no puedes ver. Bueno, no exactamente. Hoy me he topado con un pequeño applet que ilustra perfectamente (y, en parte, ha inspirado) este post. Está en www.basilv.com/psd/software-files/launchManagementDiamond.html.

Juega con él fijando el tiempo, aumentando el ámbito y tratando de disminuir los recursos: verás que no es posible. Como en la vida real. Sólo en las mentes de algunos gestores cabe tener listo «para ayer» ese portal que integra LDAP, SingleSingOn, un CMS, WorkFlow y dos huevos duros contando con un equipo formado por dos becarios y el chaval de prácticas en empresas.

j j j

Juegos de Amiga grabados en vídeo

Hoy en día ya casi no quedan salones de videojuegos. En los centros comerciales, mezclados con la mesa de hockey esa que se usa con las manos y la noria para bebés, quedan algunas máquinas con pantallas descomunales y sonido atronador que ya no nos impresionan. ¿Para qué?. La gente tiene 32″ en la tele de casa. Y una XBox 360. O lleva la misma potencia gráfica en una PSP.

Recuerdo cuando veía en las presentaciones de las máquinas NEO-GEO que tenían ¡»330 Meg» de memoria!. ?Alucinante!. Alucinante, claro, si tu ordenador es un 286 con 2MB de RAM. Hoy día mi tarjeta de vídeo tiene 512 MB…

El caso es que en los tiempos dorados de los videojuegos, cuando me pasaba tardes enteras en los salones jugando a cosas como Yie-ar kung fu, Black Tiger, Kung-fu master y tántas otras, una de las cosas que más se disfrutaba era ver a alguien que jugaba realmente bien a una máquina. Jugar era muy divertido, pero por la excitación del momento (luchabas por no perder tus 25 pesetas) no disfrutabas de la música, los gráficos, los movimientos, la ambientación, … Por eso se formaban corrillos detrás de algún jugón, de gente en éxtasis mirando cómo pasaba nivel tras nivel.

Pues eso es lo que he vuelto a sentir al ver los vídeos de Recorded Amiga games, una web en la que gente se ha grabado jugando a maravillas como Monkey Island 2 y lo comparten con nosotros para disfrutarlo. Hay gente que prefiere ver vídeos de caídas en Youtube. Yo prefiero ésto.

j j j

¿Quién escribe estas ofertas de trabajo?

Una de mis aficiones, cuando estoy supuestamente trabajando, es entrar cada cierto tiempo en los portales de empleo y ver qué se cuece en el mercado informático. En parte, es morbo por ver la cara tan dura que tienen algunos empleadores ofreciendo 12.000 Eur./año por un puesto con 5 años de experiencia. ¡Pero encima hay quien envía su C.V.! En parte, es nostalgia de aquellos tiempos en los que tenía jefe y de lo único que me ten?a que preocupar era de hacer mi trabajo y cobrar a fin de mes. Ser tu propio jefe suena muy bonito, pero cuando algo sale mal no puedes echarle las culpas a nadie (bueno, sí, a tí mismo).

Hoy estaba mirando ofertas en Tecnoempleo y me he encontrado con dos «perlas». Vamos a por la primera:

PROGRAMADORES Y ANALISTAS JAVA/J2EE

Preferiblemente Ingeniero Tecnico o Superior en informatica de gestión o sistemas con al menos 1 años de experiencia en el desarrollo de proyectos con tecnologia JAVA

REQUISITOS MÍNIMOS:

– JAVA/J2EE (JSP, Servlets,etc)

– Patrón de diseño MVC – Struts

– JDBC

– Apache Tomcat

– Linux nivel Usuario

– UML

– HTML, Javascript

– XML

– SQL-PostgreSQL

– IDE’s Eclipse/Netbeans

Experiencia en alguno/s de los siguientes REQUISITOS DESEADOS:

Frameworks Jakarta:

– JSF

– Cocoon

– Spring

Bases de Datos:

– Oracle

– DB2

Entornos Desarrollo:

– JDeveloper

– WebSphere Studio

Herramientas OpenSource:

– Persistencia Objetos Java : Hibernate, JDO, iBAtis, etc.

– OPENCMS, ZOPE, Alfresco u otros gestores de contenidos

– Motores de Workflow (como Bonita,etc.)

Experiencia con alguno de los siguientes servidores de aplicaciones :

– JBoss

– SunOne Application Server

– IBM Websphere

– BEA Weblogic

– Oracle IAS

Herramientas CASE, análisis y diseño software:

– PowerDesigner(SyBase)

– Rational Rose

Otros:

– Administración electrónica, y/o Plataformas de la Junta de Andalucia (como @Firma, Trew @, Wand @, etc.)

– PHP

– Flex

– Ajax

¿Ya? ¿Hemos terminado? ¡Buff, menos mal!. Sólo falta pedir experiencia programando el kernel de Linux y la obligación de realizar como prueba de ingreso en la empresa un compilador de COBOL escrito en Prolog.

Vamos por partes. La frase «al menos 1 años de experiencia» me sugiere que la persona de RR.HH. no quiere pagar la experiencia necesaria para ser experto en todo lo que piden, pero probablemente algún técnico comentó la barbaridad de pedir un «experto» en todo esto con sólo un año de experiencia. Por eso escribieron inicialmente «al menos 3 años de experiencia» pero al coger la calculadora RR.HH. (aka Tío Gilito) cambió el 3 por 1. Se le olvidó la concordancia en número de la frase, pero eso es un fallo menor.

Es posible que una persona con un año de experiencia conozca los requisitos mínimos, aunque sin demasiada profundidad. No comprendo la necesidad de dominar los dos IDEs (Eclipse y NetBeans). Con conocer uno de los dos, basta. Y en 1 año no aprendes en profundidad a manejar ambos, eso seguro. Al menos, si tienes que ver el resto de requisitos DESEADOS.

Porque es aquí donde comienza la paranoia. No bastaban dos IDEs, para pedir los otros dos dominantes en el mercado. Ya no quedan más IDEs Java por añadir a la oferta. Y encima, el WebSphere Studio es la versión comercial de Eclipse, que la propia IBM liberó como proyecto de Software Libre. El desconocimiento al poder.

La parte que empieza con los «Frameworks Jakarta» es espectacular: JSF NO es de Jakarta. Existe una implementación de JSF de Jakarta, llamada MyFaces, lo que es algo distinto. ¿Spring tiene algo que ver con Jakarta?. Aquí me he perdido. Tenía entendido que era un producto Open Source creado por Interface21, pero seguro que me he equivocado.

Cuando llegamos a la parte de Servidores de Aplicaciones, la persona que ha redactado esto continua con su carta a los Reyes Magos. Si la criatura no tuvo bastante con aprender Tomcat en 1 año, ¿por qué no pedir también un contenedor Java EE?. Total, pedir es gratis. Así que basta con saber uno de los listados, además de Tomcat.

Como ya estamos desbocados a estas alturas de la oferta, pidamos BDs. ¿Nos conformamos con MySQL para ir tirando? No, hombre, no, pidamos Oracle y DB2. Total, todo el mundo instala en su casa para trastear DB2 ¿no? Continuamos con los datos. No basta con saber JDBC, queridos. Aprended un framework que os alivie de hacer el mapeado Objeto-Relacional. Bueno, qué digo, ¿para qué uno, pudiendo pedirlos todos? Así que pedimos Hibernate, JDO e iBatis DAO. Sólo falta OJB, de Jakarta, aunque supongo que ese es el «etc.»

Y para qué seguir. Ajax, OpenCMS, Zope (aunque no entiendo qué demonios hace un gestor de contenidos escrito en Phyton en esta oferta), y la lista sigue y sigue…

¿Quién redacta estas listas de acrónimos? ¿Quién es tan osado de pedir tal lista de tecnologías con sólo 1 año de experiencia? Entiendo que los recién titulados se sientan mal, se sientan estresados, porque el nuestro es un mundo cambiante y cada vez más amplio. Pero genios reclutadores como los que escriben estas ofertas no ayudan. Una persona trabajadora, brillante, apasionada de la Informática y la Programación puede deprimirse leyendo lo que piden para un novato.

¿Y quién se apunta a estas ofertas? Sólo son leerla ya se vislumbra quién manda en la empresa demandante: gente que no tiene ni la más remota idea de la parte técnica del trabajo, que, por cierto, y a ver si nos enteramos aquí en España, es la más importante. Ya está bien de tanto comercial sin formación ni ganas de aprender, de tanto jefecillo intermedio con títulos que no caben en una cara de la tarjeta de visita, de gestores que intentan triunfar en el mundo de la consultoría sin conocer qué hacen los empleados que subcontratan frente al ordenador.

Todo informático que esté buscando un empleo debería leerse este artículo de Joel Spolsky. A ver si así espabilamos un poco a los que escriben estas idioteces con forma de listas de acrónimos.

j j j

Cómo hacer que tu web alojada en casa sea visible desde Internet

He recibido un correo de Diego (sí, se llama igual que yo) desde Melilla:

He instalado un servidor UBUNTUSERVER en el VMWARE, que gracias a ti conocí…, hasta ahí bien… Lo siguiente fue instalar Apache, que veo desde el portatil y el fijo. Lo siguiente fue hacerme una cuenta en Dyndns y guay, pero pongo en el navegador la direccion y me sale mi router… ¿como hago para ver el servidor?… toy hecho un lio… echame un cable pleaseeeeeeeeeeee.

Veamos. Supongamos que tu portátil tiene una IP como 192.168.1.x, con x entre 1 y 254. Es decir, que está en una red interna. Las direcciones 192.168.x.x están reservadas para las direcciones privadas, las que usamos en las redes locales. Hay otros rangos (10.x.x.x y 172.16.x.x)

Cuando tu portátil se trata de conectar a Google, pregunta por su dirección y se manda una petición HTTP (para ver una página web) al servidor web de Google (bueno, con uno de ellos, tienen decenas de miles). El servidor web de Google debe entonces responder a tu portátil para que tú puedas ver la página en tu navegador. Si se encuentra una dirección privada ¿cómo llegar hasta tí?. ¿A cual, de los miles y miles de ordenadores situados en redes privadas con las mismas IPs debe responder Google?. Evidentemente este problema no lo tienes, es decir, puedes navegar. Ello es debido a que tu router de acceso a Internet hace IP masquerading, también conocida como NAT: al detectar una conexión desde un ordenador de tu red hacia fuera, cambia en la cabecera del mensaje la IP original por la suya propia (por la del router) que es pública. Google ahora sabe a quién responder. Es trabajo del router (y de NAT) deshacer ahora el cambio y entregar al equipo de la red interna la p?gina web solicitada.

En tu el caso es al revés. Quieres que desde fuera puedan ver un servidor web en tu red interna. Usualmente este tipo de servidores se colocan en un segmento protegido de la red interna llamado DMZ (zona desmilitarizada), mientras que otro segmento queda inaccesible desde el exterior (la MZ, zona militarizada). Por sencillez puedes dejarlo en la interna, aunque es menos seguro.

El caso es que debes hacer dos cosas:

  1. abrir el firewall en entrada para el puerto 80 para la IP de tu portátil, es decir, permitir a cualquiera desde fuera que se conecte al puerto 80 de tu máquina, que está en la red interna.
  2. crear una regla en el router de «port forwarding». Esto es algo similar a NAT, pero aquí se cambia la IP de destino, no la de origen como antes. Si alguien intenta conectarse a tu router en el puerto 80, éste le pasa la tarea a tu portátil. Como ves, la IP destino (originalmente la IP pública de tu router, que es lo que se ve desde Internet), se cambia por la IP de tu portátil (que está en la red interna). El paso inverso (llevar la respuesta desde el portátil) lo hace el router, como antes con NAT.

Evidentemente, los firewalls deben permitir conexiones entrantes por el puerto 80. Las salientes ya las permiten porque puedes navegar ¿no?

j j j

Death by Powerpoint

If anyone can explain to me how travesties like this continue to happen in the corporate world I’d really like to hear your thoughts. Every available piece of literature says DON’T DO THIS and yet it continues to happen.

There are a million guides out there to help you avoid committing truly horrible crimes against humanity with PowerPoint. For god’s sake, do everyone a favour and read some of them before your next presentation.

¿Qué haces leyendo esta línea? Ve ahora mismo a leer el imprescindible artículo de Mr. Angry Death by PowerPoint

j j j

Flock, ¿otro dolor de cabeza para IE?

No he sido demasiado amigo de los escritorios bonitos, los «eye-candy», los temas y demás «mejoras del S.O.». Probablemente debido a mis comienzos en el mundo de la Informática me acostumbré al prompt del MS-DOS y luego al escritorio de las sucesivas versiones de Windows (incluso cuando el Escritorio ni existía, y los programas residían en una cosa llamada Administrador de Programas, hace mucho, mucho tiempo).

El caso es que, acostumbrado a reinstalar Win 98 cada seis meses, me parecía una pérdida de tiempo ajustar las teclas de acceso rápido (hotkeys), cambiar el tema, poner un fondo bonito, organizar los iconos, … ¿Para qué, si lo voy a perder de todas formas?. Ya se que podría usar algún programa de esos que guarda la configuración del usuario y luego la restaura, pero Windows nunca fue mi fuerte y nunca me ha dado la impresión de ser «mi hogar». En mi viejo MS-DOS me sentía incluso más a gusto.

Pero desde un tiempo a esta parte, noto que voy cambiando. Será la edad. Pero cada vez miro con más insistencia los Macs. Cuando me compré mi Dell Inspiron 9400, le puse una cubierta opcional para que fuera más bonito. Probablemente sea la influencia de la comunidad Amiguera, o de blogs como A1200 Freaks, pero cada vez quiero que las cosas tengan un diseño más bonito.

Siguiendo con esta tendencia hace un par de dias descubrí Flock, un navegador web. Mucha gente se preguntará si existiendo ya Firefox, Mozilla, Opera, Internet Explorer, Netscape, Galeon, <pon aquí el nombre que uses> era necesario otro más. Pero es que es muy bonito. Y además está pensado para el usuario moderno. Ya no basta con tener solapas. Quiero poder subir mis fotos a Flickr de forma sencilla. O mandar un post a mi blog rápidamente. O leer los feeds RSS cómodamente. O bajar vídeos desde YouTube. Pues todo eso hace Flock desde una única aplicación.

Y encima han sido tan inteligentes que han respetado el interfaz de usuario de Firefox. Es decir, Ctrl+T abre una nueva ventana, Ctrl-F busca, etc. Cuando llevas cinco minutos trabajando con él te olvidas de que es nuevo. La impresión es que estás con un Firefox «tuneado».

En fin, otro juguete que hará las delicias de los que usen habitualmente Flickr, Blogger, YouTube y Del.icio.us. Por cierto, uniendo todos estos «juguetes» se puede hacer una estupenda web… aunque eso es tema para otro post.

j j j