30 d’abril 2006

Les mentides dels enginyers informàtics...

1.”Vamos a entrar en la fase de beta testing“. Vale, ya parece que tenemos algo funcionando y pasamos de alfa a beta, pero ¿cuando saldremos de esta nueva fase y presentaremos algo definitivo?, esta frase sería mejor reescribirla como “Vamos a empezar a hacer pruebas y cuando o bien nos gastemos el presupuesto o nos cumpla el plazo te entregaremos lo que tengamos, esté como esté”

2. “Los ingenieros no entendemos de marketing…”. Esto no es una mentira, es falsa modestia, lo que realmente piensa un ingeniero es “Esto del marketing tan difícil no puede ser, si me he sacado una ingeniería puedo con cualquier otra cosa, ya me gustaría verlos a ellos haciendo mi trabajo. Deberian despedirlos a todos, pagarme un MBA y hacer las tareas de marketing e ingeniería yo mismo…”, al final nuestra búsqueda del conocimiento nos hace centrarnos en la ingeniería y dejar de lado los aspectos de gestión, o eso o que los plazos nos impiden pensar en nada más que en sacar el proyecto adelante.

3.”Voy a comentar el código de manera que cualquier persona pueda mantenerlo”. Esto realmente es más bien una declaración de buenas intenciones que a lo largo del proyecto se convierte en “¿quieres que lo comente o quieres que lo acabe a tiempo?”, al final da lo mismo si se comenta o no, el código estará tan mal escrito por las prisas que es inmantenible y habría que reescribirlo.

4.”Nuestro sistema es escalable”. Esta si que mola, has escrito un prototipo de programa en Visual Basic en tu PC, le has hecho un par de pruebas y de ahí has supuesto que la versión final instalada en un cluster con balanceo de carga será capaz de soportar millones de transacciones por segundo. Al final se suele tener suerte y con que esto funcione medianamente bien en 2 o tres máquinas a la vez basta, total, cuanta gente va a montar un cluster….

5.”Este sistema soporta todos los estándares actuales de la industria”. Venga, y voy yo y me lo creo, lo que quieres decir es “Este sistema soporta los estándares que hemos querido, total, la mayoría de ellos no los usa nadie…”

6.”Esto es solo un prototipo para ver los problemas a los que nos vamos a enfrentar y así hacer la versión buena y libre de fallos”. Esta mentira la pronuncia el ingeniero para intentar autoengañarse porque sabe que realidad en el momento en el que hayan acabado el prototipo, lleno de fallos, cinta aislante y casi inmantenible, el jefe presentará el prototipo como versión definitiva, encargando el mantenimiento y soporte de fallos al ingeniero que lo ha desarrollado.

7.”Tenemos un sistema de gestión de fallos eficiente”, es decir, hemos puesto una hoja excel y la vamos rellenado según encontramos fallos, después la enviamos por correo a los compañeros para que la tengan al día. Resultado, cada uno tiene un fichero distinto y no sabe qué fallos tiene que arreglar porque todos son de alta prioridad y hay cientos.

8.”Esto lo hacemos barato y en poco tiempo subcontratando programadores en la India”. Esta mentira más que de ingenieros viene de los gestores. Vamos a ver si nos enteramos, no son mejores que los ingenieros de aquí, todos han estudiado con los mismos libros. No van a tardar menos porque tardas siglos en hacerles ver tus necesidades, es lo que tiene el que no estén implicados directamente el el proyecto y en contacto directo con el cliente. No son más baratos porque al no adquirir experiencia en tu empresa y comprarla fuera, el día que te encuentres con otro proyecto parecido no vas a poder usar a tu gente y te va a tocar pagar otra vez a los indios.

9.”A nuestros beta testers les ha encantado el producto”. Y como no les va a encantar si les estás pagando por probarlo, además está mal visto decirle a alguien que su producto realmente no vale para nada.
10.”Esta vez lo hemos conseguido”, refiriendose a un diseño que se ha modificado y reescrito decenas de veces. Lo más curioso es que esta frase se la cree el que la pronuncia, a pesar de que la ha pronunciado cada vez que han llegado a un diseño, para días después llegar a la conclusión de que hay que cambiarlo todo.


info extreta de [tecnoblogico]

26 d’abril 2006

Com configurar el router zyxel 650HW i 660HW per muntar servidors web i ftp

Pel que fa a la configuració habitual, hi ha un magnífic tutorial a adslayuda on s'expliquen tots els passos habituals.
Tot i així, en cas de tenir problemes i no poder accedir al nostre servidor des de l'exterior vaig descrobrir una magnífica comanda: "ip nat loopback on" que em va solucionar els problemes. Ja que cada vegada que es reinicia el router s'ha d'introduir la comanda, hi ha una solució, que consisteix en agregar aquesta comanda al fitxer d'inicialització del router d'aquesta manera:

If you want to keep the commands in memory in every reboot,
please enter it in autoexec.net file.

The procedure is as follows.
1. Please login to SMT menu by console or telnet.
2. Please enter 24.8 and issue CI command: "sys edit
autoexec.net".
3. You should follow these instructions to edit it.
q(uit) x(save & exit) i(nsert after) d(elete) r(eplace) n(ext)
4. After you save the new setting, you could use "sys edit
autoexec.net"
again to see if it's changed.


IP's dinámicas dyndns y ddclient

A todos los que tenemos una IP dinámica nos gustaría poseer un dominio fijo y personalizado que redireccionase a nuestra IP con el fin de montarnos un servidor FTP, publicar una página web o poder acceder mediante el protocolo SSH a nuestro sistema desde una máquina remota.
Esto último se complica al tener una IP dinámica ya que siempre tenemos que estar a espensas de saber la nueva IP para hacer la conexión (Llamar a la pobre madre para que nos la mire :/).

Pues en www.dyndns.org (y en más sitios) nos permiten tener un dominio personalizado aún cuando teniendo una IP dinámica. Una vez creado nuestra cuenta y nuestro dominio procederemos a instalarlos una aplicación denominada ddclient, que se encargará de actualizar nuestra IP en los servicios de dyndns.

Para obtener esta aplicación:

$ sudo apt-get install ddclient

Mientras se configura nos pedirá que metamos los datos de nuestra cuenta en dyndns así como un apartado llamado interface en el cual yo no escribí nada (si alguien sabe que se puede introducir en ese apartado para optimizar el rendimiento de la aplicación que lo diga Laughing out loud).

Una vez instalado debemos configurarlo y para ello editaremos el fichero /etc/ddclient.conf, y dejarlo de la siguiente manera:

protocol=dyndns2 # El protocolo
use=web, web=checkip.dyndns.org # Para obtener la IP actual
server=members.dyndns.org # El servidor para identificarse
login=usuario # El nombre de usuario
password=clave # La contraseña
wildcard=yes # *.xxx.midominio.net e.g.:*.gnomo.homelinux.net
xxx.midominio.net # El dominio e.g.:gnomo.homelinux.net

Configurado el fichero ya tenemos todo listo para funcionar. Sólo nos falta utilizar el ddclient para actualizar nuestra IP cada vez que ésta cambie. Se hace de la siguiente manera:

$ /usr/sbin/ddclient -file /etc/ddclient.conf -cache /home/gnomo/.ddclient.cache

y nos debería dar una salida de este estilo:

SUCCESS: updating gnomo.homelinux.net: good: IP address set to 85.84.49.51

Redireccionamos los datos a un fichero .cache para que no mande información a los de dyndns si nuestra IP no ha sufrido cambios o eso he leído (no queremos "colapsar" su servidor y nos arriesgamos a un baneo temporal)

Claro, si tenemos que hacer esto manualmente cada vez que cambie nuestra IP, todo esto viene a ser un coñazo.

Así que editando el crontab (para dar ordenes y que se ejecuten periódicamente) automatizaremos la orden. Editamos el crontab:

$ crontab -e

y escribimos:

15 */2 * * * /usr/sbin/ddclient -file /etc/ddclient.conf -cache /home/gnomo/.ddclient.cache -quiet

Cerramos el editor y la actualización se efectuará cada dos horas (y por lo visto cada vez que reiniciemos la máquina).

Ya tenemos un dominio personalizado y estático con una IP dinámica.

info extreta de [www.ubuntu-es.org]

13 d’abril 2006

Manual de com muntar fàcilment un servidor web LAMP a Ubuntu

Primerament m'agradaria explicar el que s'enten generalment per LAMP:

L: GNU/Linux: Sistema operatiu. (En aquest cas Ubuntu Breeze)
A: Apache: Servidor web. (Utilitzaré Apache2)
M: MySQL: Gestor de bases de dades.
P: PHP : Llenguatge de programació per a la creació de pàgines web dinàmiques. (Usaré PHP5).

Passos a seguir:

Previ:Obrim una nova terminal i ens identifiquem com a root.

1:Instal·lem el servidor apache:

$aptitude install apache2

Teclegem en un navegador “http://localhost” i si tot està correcte s'hauria de veure alguna cosa semblant a “http://localhost/apache2-default/”.

2.- Instal·lem PHP5:
$aptitude install libapache2-mod-php5

3: Ara instal·larem el gestor de bases de dades MYSQL:

$aptitude install mysql-server mysql-client

Per manejar fàcilment les bases de dades, instal·larem phpmyadmin, que és molt més visual i intuïtiu:

$aptitude install phpmyadmin

Provarem el seu funcionament i alhora el de mysql teclejant al navegador: "http://localhost/phpmyadmin/". Ens demanarà nom d'usuari i contrasenya. Al ser el primer cop que utilitzem mysql, l'usuari serà "root" i el password el deixarem en blanc. Ens apareixerà un avís en el menú principal, indicant-nos que és convenient canviar el password de root.

Nota: Em vaig trobar amb l'inconvenient que si tenia una pàgina webs amb caràcters especials del català o el castellà no es visualitzaven correctament. Per solucionar-ho editem l'arxiu que es trobat a "/etc/apache2/conf.d/charset" i canviem la línia que hi ha per aquesta: "AddDefaultCharset off".

11 d’abril 2006

Programari lliure

Què és?

Perquè un programa sigui considerat lliure ha de garantir quatre llibertats fonamentals:
  • Llibertat per executar el programa sense cap restricció i amb qualsevol propòsit, e.x. No es pot limitar el nombre de màquines a on es pot executar el nostre programa.
  • Llibertat per modificar el programa i així poder adaptar-ho a les necessitats individuals o fins i tot aprendre d’ell. Perquè aquesta llibertat sigui efectiva és necessari tenir accés al codi font de l’aplicació.
  • Llibertat per redistribuir còpies gratuïtament o cobrant per elles.
  • Llibertat per distribuir versions modificades del programa original, de forma que tothom es pot beneficiar de les millores implementades.

Es important remarcar que els quatre punts representen llibertats, no obligacions.

[info extreta de gpltarragona.org]