Category Archives: Internet & Cia

[K]Ubuntu shipIt!

Se acerca la fecha para el lanzamiento de Ubuntu 6.06 LTS. Será la versión de ubuntu que competirá con Windows Vista (bueno con los retrasos que va llevando, va a ser que no, aunque cuando se inició Ubuntu Dapper Drake se suponía que ésta iba a ser la versión que debería competir directamente contra el Vista).


661px-Ubuntu_cd_5_10.jpg

Ya se puede pedir CD’s! Tanto para Ubuntu como para Kubuntu (novedad en esta versión!). Y por supuesto puedes donar algo si quieres ;). Yo ya he pedido cd’s de Ubuntu (si me conoces en el MundoReal?, no pidas que puedo darte uno, si quieres claro), de Kubuntu claramente no pido porque KDE es lo más feo que ha existido nunca :). Lo digo sin maldad, pero que se le va a hacer si es verdad! xD.

Empresas pésimas – a cada cual peor

No paro de sorprenderme como las empresas todavía le dan tan poca importancia a las tecnologías y, en concreto, a su presencia en Internet. Cuantos millones se gastará una empresa (de las gordas) en publicidad y en lo que se dice en economia la “cuarta p” (son 4, product, price, place and promotion) Promotion. Su imagen.

Ultimamente me encuentro con páginas de empresas que: o no van, o son pésimas (para hacer algo mal, no lo hagas!) o no existen. En este último caso podría citar Galerias primero (grandes almacenes de aragón con bastantes años por detras, habrá en Zaragoza 3 o 4 creo), lleva en construcción desde hace más de medio año, lo curioso era que anteriormente tenían una página (cutre, cutre, pero ahí estaba) con información actualizada bastante interesante (digo este caso porque mi madre, para lo único que usaba internet era para mirar esa página xD) y se ve que les motiva más dejar ese gif animado donde se lee “en construcción” que informar a sus clientes. Cuantos euros les costará hacer ‘X’ cientos de panfletos de esos de propaganda? y cuanto mantener una página web?.

Lo que me ha hecho escribir este post ha sido debido a otro fallo de otra empresa, Iberia (empresa de aviones española, no se si la más importante, pero por ahí estará). Mi hermana está echando CV’s en bastante páginas web de diferentes empresas, muchas veces he tenido que ayudarla debido a páginas mal hechas (fallando la mayoría con Firefox, o que se les olvida poner un enviar o similares..) pero como no eran empresas tan “gordas” como Iberia, no me chocaba tanto.
Antes cuando me ha llamado y veo que estaba en Iberia.es me he extrañado que diese problemas esa página. Viendo el código de la página me ha sorprendido al ver que directamente habían copy-pasteado código de validación de campos y claro, ir lo que se dice ir, no es que fuese muy bien.

Tenían puesto en todas las validaciones algo del estilo

if (ie6 | ie5)
{
tal...
}
else
{
pascual
}

Las validaciones para IE estaban todas correctas, sin embargo para otro navegador no iba. Les iba a mandar un email para que lo arreglasen, pero como me ha costado más de 30segundos encontrar un email de contacto, he cerrado la página. Y personalmente, si tengo dos compañias para volar como opción, y una de ellas es iberia, elegiré LA OTRA. También decir que todo el código de la página era algo así como una broma (escribian mitad página con javascript! modo document.write(—)). Puedo parecer un poco toca-pelotas xD, pero esto me ha chocado muchisimo porque en el 2002, Iberia fue noticia debido a su sistema informático pésimo (no tenían sistemas de contingencia, ni equipos de respaldo para sus servidores!) cuando se les quemo un servidor debido a un incendio en unas oficinas, se quedarón 24h sin poder facturar ni hacer nada porque no tenían ninguna medida!. Lo lógico, despues de todo eso que les paso sería dedicar una cantidad mas que de sobra para todo lo que tenga que ver con el departamento de informática…No aprenden.

Que vida mas triste!

Irónicamente, ahora que estoy de vacaciones y no tengo clases en la uni, estoy escribiendo menos en el blog. A ver cuando me viene la inspiración y escribo algo util, mientras tanto recomendaré esta página

quevida.png

que consiste en un teórico video-blog. Digo teórico, porque son como cortos de 1-2 minutos cada domingo y van formando una historia. No se relaciona nada con informática, series o temas que haya tratado :P, es más bien historias modo “me ha dicho pepe que le ha dicho ana que su prima le gusta el primo del pepe que es vecino de tu primo segundo!, que fuerte, que fuerte! (no se ni lo que acabo de poner realmente o_0), pero bueno que tiene su gracia, me he echado unas risas viendo los capitulos (tiene más de un año, así que hay bastantes xD).

Hackles

Acabo de encontrar (realmente no se de donde he pillado el link, simplemente estaba abierta en una pestaña xD) unas tiras cómicas que aunque están ya terminadas (la útlima fue hace 2 años), hay bastantes viñetas (encima es modo historia, asi continuando los temas y tal). Un ejemplo:

Estan bastante bien, mañana seguiré leyendo mas, que a partir de la quincuagésima seguida es malo para la salud.

hackles_banner2b.png

Ruby on Rails

Bastante curioso oye, actualmente hay tres tecnologías clave en el desarrollo web (bueno cuatro, pero java es lo peor del mundo, así que lo ignoro) PHP, ASP.NET y RoR.

(Nota: el comando que ejecuto se podría resumir en que se pilla la cabecera http que nos devuelve el servidor)

PHP

[blaxter@helicon]:~$ wget -S –spider http://www.php.net
–15:27:55– http://www.php.net/
=> `index.html’
Resolviendo www.php.net… 64.246.30.37
Connecting to www.php.net|64.246.30.37|:80… conectado.
Petición HTTP enviada, esperando respuesta…
HTTP/1.1 200 OK
Date: Sat, 11 Feb 2006 14:06:42 GMT
Server: Apache/1.3.26 (Unix) mod_gzip/1.3.26.1a PHP/4.3.3-dev
X-Powered-By: PHP/4.3.3-dev
Last-Modified: Sat, 11 Feb 2006 14:13:35 GMT
Content-language: en
Connection: close
Content-Type: text/html;charset=ISO-8859-1
Longitud: no especificado [text/html]
200 OK

ASP.NET

[blaxter@helicon]:~$ wget -S –spider http://asp.net
–15:26:18– http://asp.net/
=> `index.html’
Resolviendo asp.net… 66.129.67.14
Connecting to asp.net|66.129.67.14|:80… conectado.
Petición HTTP enviada, esperando respuesta…
HTTP/1.1 302 Found
Connection: keep-alive
Date: Sat, 11 Feb 2006 14:26:24 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Location: http://asp.net/Default.aspx?tabindex=0&tabid=1
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 43204
200 OK

RoR

[blaxter@helicon]:~$ wget -S –spider http://rubyonrails.org/
–15:25:18– http://rubyonrails.org/
=> `index.html’
Resolviendo rubyonrails.org… 70.84.143.109
Connecting to rubyonrails.org|70.84.143.109|:80… conectado.
Petición HTTP enviada, esperando respuesta…
HTTP/1.1 200 OK
Date: Sat, 11 Feb 2006 14:25:23 GMT
Server: Apache
X-Powered-By: PHP/5.0.3
Vary: Accept-Encoding
X-Powered-By: The blood, sweat and tears of the fine, fine TextDrive staff
Served-By: TextDrive’s Textpache
Keep-Alive: timeout=5, max=80
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Longitud: no especificado [text/html]
200 OK

Comentar que la página de RoR no tiene mucha parte dinámica, así que tiene excusa para no usar algo mas avanzado como es RoR, posiblemente la parte de php se centre exclusivamente en includes() y poco mas, si me apuras templates y/o logs varios.

Gran programa

Esto que navegando me encuentro con este gran código, con tatuaje de un tio incluido

int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell\
o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}

Claramente me ha picado la curiosidad, si hacemos un copy paste, compilamos y ejecutamos, veremos que sale “hello word!”. Vayamos por partes y pongamos el código más legible:

int i;
main(){
for( ;i["]<i;++i){--i;}"]; read('-'-'-',i+++"hello, world!\n",'/'/'/'));
}
read(j,i,p){
write(j/p+p,i---j,i/i);
}


Esta claro, tenemos un bucle for que llama en cada iteracion a la función read, la cual está definida posteriormente como un write. En la invocacion del read, el primer parametro será siempre 0, y el tercero es siempre 1 y el segundo parametro vemos que es un incremento de i (i++) mas una cadena (una cadena es un puntero), es decir le estamos pasando el caracter i-esimo de esa cadena a la función read.
Veamos ahora esa función read, como j es 0 y p es 1, el write queda así:

write(1, i–, 1);

. Es decir estamos escribiendo el caracter anterior al puntero dado por el stream 1 (stdout).
Esto empieza a tener ya sentido, no?. Ahora veamos la guarda del bucle for, del main():

for(;i[“]<i;++i){–i;}”]; ……

No tiene inicialización, y como guarda vemos algo que se podría expresar mas claramente como *(i+ “]<i;++i){–i;}” ), y vemos que esa cadena tiene una longitud igual a la frase “hello world!”, asi que se ejecutará tantas veces como longitud de la frase.

Por lo tanto ya tenemos todo, tenemos un bucle que se ejecuta tantas veces como la frase que queremos escribir y en cada iteración pasamos un puntero al caracter (i+1)-esimo el cual será decrementado e imprimido, asi hasta que terminemos de saludar al mundo ;).

So easy, isn’t it?.