Sensacionalismo gratuito de buena mañana
Parido por tupolev y archivado en Enlaces, General, Internet, ReflexionesEl siguiente titular, apareció ayer, día 27 de febrero de 2007, en el diario Qué Málaga (enlace a edición PDF). Este diario, de carácter marcadamente sensacionalista y tendencioso, tiene acostumbrados a sus eventuales lectores a titulares escandalosos que, en muchas ocasiones, rozan e incluso superan la línea que separa la realidad de la ficción cinematográfica.

En este caso, al margen de narrar el hecho en sí (vergonzoso y deleznable a todas luces), se permite una serie de avisos / consejos gratuitos, dejando caer una perla digna de aquél famoso curso de ética periodística, de Caiga Quien Caiga.
“Te pueden grabar aunque tú no quieras”
“Se puede activar [la webcam] aunque no esté encendido el PC”
El primer titular es sensacionalista con ganas. Yo también te puedo atropellar aunque tú no quieras y no salgo en el diario. Es obvio que querer no es poder.
En cuanto al segundo, se resume en una palabra:FALSO
Hablando claro, si el ordenador está apagado, está apagado y punto pelota. Solo hay un tipo de cámara que funciona sola. Son cámaras que se conectan directamente a tomas de red, sin necesidad de ordenadores de por medio. Se usan en tareas de videovigilancia continua en centros de datos, hospitales, empresas…pero no en la habitación de tu hija de trece años. Más que nada, porque no son compatibles con el messenger.
¿Qué clase de cenutrio asesora a esta gente, si es que tienen asesores?
Si no es así, ¿por qué narices se empeñan, una y otra vez, en hablar de lo que no saben y quedar a la altura del betún ante cualquiera con dos dedos de frente? ¿Por qué apesta este diario a informativo de Antena 3? ¿Por qué todo lo que sale de Recoletos, parece escrito por Míchel? Preguntas sin respuesta para la sobremesa…
Por lo pronto, padres, no lancen las webcams de sus hijas aún a la hoguera de las herejías. Consulten a su pringao informático al uso previamente.
¡Temazo! xD
Autopista R-4, sentido Madrid. E.S. Seseña. Me paro a darle de beber al focusín y veo esto:

Otra razón para usar guantes…
Read more…

La última vez que tuve el placer de disfrutar un Cacaolat -marca de batidos de chocolate muy extendida en Cataluña- fue allá por 1989. Anoche los ví en la nevera de una gasolinera en Ciudad Real y hasta me emocioné
Ni que decir tiene que me hice con uno ipso-facto y…¡SI! ¡Sigue teniendo el mismo sabor! ^_^
Cómo paginar los resultados de una consulta
Parido por tupolev y archivado en General, InternetEste texto es más teórico que otra cosa, precisamente para mostrar unas pautas básicas sobre algo que muchas veces necesitamos y que puede resultar engorroso: La paginación o división en páginas de los resultados de una consulta a un origen de datos.
Trabajando con plataformas complejas, como J2EE o ASP.NET, o haciendo uso de frameworks con PHP, es probable que nos encontremos con clases que nos faciliten esta tarea, hasta el extremo de convertir nuestro objetivo en un simple “arrastra y suelta”, pero mi objetivo es mostrar precísamente lo que hay bajo ese tipo de componentes.
Para empezar, partimos de un listado de, por ejemplo, nombres (campo nombre) y teléfonos (campo tlf), en una tabla llamada agenda. La tabla contiene un total de 434 registros y queremos mostrarlos en las páginas necesarias para que queden 100 por página -una burrada, pero por decir xD -.
Esto lo haremos en dos partes. Primero, la consulta SQL en sí, de la que nos interesa una cláusula en concreto: LIMIT. LIMIT acota los resultados devueltos, según los argumentos que le siguen, el punto de inicio y la cantidad de registros a devolver.
SELECT id,nombre,tlf FROM agenda LIMIT 0,100
Esta sería la consulta que pasaríamos a la base de datos. 0 indica el punto de inicio de los resultados, en este caso, el primero. 100 es el número de registros máximos, a partir del indicado en el número anterior. La base de nuestro sistema de paginación es ese rango de registros. La primera página mostrará del 1 al 100; la segunda, del 101 al 201…
Para ello sustituiremos los dos argumentos por variables, que transmitiremos vía querystring.
Al inicio del proceso, recogeremos las dos variables de gestión, a las que llamaremos paginaActual y porPagina. Con ellas, calcularemos la página siguiente y la anterior, controlando que si estamos en la primera página, la anterior no esté disponible o sea la primera de nuevo. Asimismo con la última.
paginaSiguiente=paginaActual+porPagina
paginaAnterior=paginaActual-porPagina
SI paginaAnterior < 0 ENTONCES paginaAnterior=0
Recogidas las variables, las pasamos a la consulta, con el método que tengamos.
matrizResultados = ejecutarQuery(SELECT id,nombre,tlf FROM agenda LIMIT paginaActual,porPagina)
Desplegamos la tabla de resultados obtenidos.
pintarTabla(matrizResultados)
Y en la última fila, mostramos los enlaces para avanzar y retroceder. Para ello, anexaremos las variables de paginación, a la url actual completa, controlando que, si ya existen estas variables, se sustituya correctamente su valor.
pintarEnlaceAnterior($urlBase+sustituirVariables(paginaAnterior,porPagina)) | pintarEnlaceSiguiente($urlBase+sustituirVariables(paginaSiguiente,porPagina))
pintarEnlaceAnterior y pintarEnlaceSiguiente, devuelven un enlace en HTML, formado por:
-El nombre del módulo actual (listado.php o lo que sea).
-El conjunto de variables y valores que se han pasado en la actual llamada al módulo actual.Es decir, el Querystring actual.
-Las dos variables de paginación, junto con sus valores correspondientes, para la página a la que envían, siguiente o anterior.
El querystring actual será necesario analizarlo antes de devolverlo, pues se dará el caso de que ya existan nuestras dos variables de paginación y tengamos que sustituirlas por las que acabamos de generar. Para eso está la subrutina sustituirVariables(), cuyo código es fácil imaginar.
El resultado en pantalla sería:
Pinchando en los enlaces, se recargaría la propia página, con los nuevos valores de paginación y, por tanto, el nuevo segmento de resultados de la consulta.
Con esto, tenemos montado nuestro sistema de paginación simple. No muestra el número de páginas resultantes, ni acceso directo a las mismas. Eso lo explicaré en otra ocasión…cuando consiga implementarlo xD
Estos días, mi estómago se retuerce al ver como el asunto de Hosting LMI está pasando a los medios, de manera no muy afortunada. Blogs de afectados, artículos en internautas.org, la OCU de por medio…un cromo, vamos.
Pero la gravedad del asunto, innegable por supuesto, no es excusa para la política de desprecio a sus trabajadores -tanto del antiguo equipo, como del nuevo- que una serie de personajes especialitos están llevando a cabo. Y es que la imagen que está quedando de nosotros -yo pertenecí al antiguo equipo- es justo la contraria a la real.
Me parece maleducada, hipócrita, cínica, burra, mezquina, vomitiva, enervante y muchos apelativos más, la actitud de aquéllos que llamaban a horas intempestivas y en fines de semana, porque su maldito phpnuke no cargaba. Aquéllos a quienes, pese a todo, se les atendía con una sonrisa y en tiempo récord, -lejos, lejísimos, del servicio que ofrece NADIE en NINGÚN sector por una cuota de 50 euros al año- ahora insultan y calumnian a quienes nos hemos dejado entre 1 y 4 años de nuestras vidas aguantándoles.
Señores: Somos personas. Y luego trabajadores. Y si no cobramos, nos vamos. Aquí todos somos mayorcitos y, el que menos, tiene un alquiler a cuestas, que no se paga con palmaditas en la espalda de clientes felices, después de 45 minutos al teléfono para redirigir un dominio o reparar un foro de mierda.
Los que en su día formamos el equipo de LMI, hoy hemos tomado rumbos dispares, pero con la ilusión de volver a ofrecer lo mejor de nosotros mismos, allá donde cada cual ponga el huevo. Y eso NADIE tiene derecho a echarlo por tierra.
Que quede bien claro que no hemos pasado varios años despertando en plena noche, soñando con el “ring ring” del zabbix, pasando frío recuperando sistemas muertos en el datacenter, hablando a dos manos por teléfono, dejándonos la vista depurando logs de correo de varios megas, pasando fines de semana encerrados en casa, pegados al portátil, o cabreándonos entre nosotros, por puro estrés, para que ahora una “señora” IMPRESENTABLE nos arrebate nuestras ilusiones -y nuestros salarios adeudados, por cierto- y otros muchos CATETOS, pretendan arrebatarnos nuestro honor.
De eso nada.
El cliente no solo tiene derechos. Un poco de ética, por favor.
La realidad nacional andaluza
Parido por tupolev y archivado en Enlaces, General, Reflexiones“Con una industria propia bajo mínimos, una agricultura literalmente en quiebra por efecto de la globalización, una flota desguazada y unas tecnologías lejos aún de ser algo más que un simple eslogan de propaganda política, los andaluces únicamente adquirimos sentido como consumidores y usuarios, mientras que los importantes flujos fiscales que como tales generamos directamente engrosan las arcas del Estado, cuando no de otros territorios”
Julián Ãlvarez (Partido Andalucista) - El País, 13/05/2006
“Andalucía aporta el 14% al PIB español, pero el IVA que cobra es sólo del 6%. Porque muchas empresas que ganan dinero en Andalucía pagan impuestos donde tienen sede, no aquí. ¿Eso es justo o injusto?”
Manuel Chaves (Presidente de la C.A. andaluza - PSOE) - La Vanguardia, 03/04/2005
Se acerca el referéndum por el Estatuto de Autonomía de Andalucía y, al contraro que en el caso catalán, la polémica no ha aparecido por ninguna parte, lo que viene a decir que, quienes llevan el tema, se han entendido entre ellos como les ha convenido y a los demás que nos den por el culo.
En fin, al menos habrá que saber qué votamos. Aquí se puede encontrar el texto íntegro y una serie de análisis comparativos con otros estatutos.
Este documento lo escribí hace algunos años, mientras aprendía a saltarme las trabas de una de las pruebas del desafío Izhal.com. Probablemente le sirva a alguien, ahora que AJAX y el objeto xmlHTTPrequest están tan de moda, para entender en qué se basa esta tecnología. Perdón por la ilegibilidad. Mañana cambiaré los estilos, para dejarlo bien bonito
Introducción al protocolo HTTP
Utilidad de este documento
Conocer la estructura básica de cualquier navegador o aplicación que se
valga del protocolo HTTP para recibir/enviar datos a través de una
red TCP/IP(Internet o cualquier intranet/extranet).
Poder realizar transferencias sin necesidad de navegador, ya sea a traves
de telnet o mediante un socket abierto por cualquier
software.
Poder realizar peticiones HTTP -hasta cierto punto-
anónimas. Falseando nuestro navegador, host(no es fiable 100%), S.O.,
etc…
Plataforma
Cualquiera que cuente con conexión a Internet y, por
tanto, soporte TCP/IP (Windows 9x, NT, 2000, XP, Unix/Linux, Mac…)
También será necesario contar con alguna utilidad para telnet
(Generalmente el propio S.O. la incluye, caso de Windows, Linux, etc…).
Se recomienda un software de codificación MIME
o Base64, para autentificación en servidores
que así lo requieran. Por ejemplo Mpack 1.5.
Ver anexo I.
En este documento usaremos una URL imaginaria, cuyo servidor estaá
ejecutando el daemon de Microsoft Internet Information Services, pero
cualquier sevidor basado en HTTP nos sirve(Apache HTTPD, Apache Tomcat, Lighttpd, IIS, PWS…), ya que
es un protocolo estándar, según el documento RFC-2068
.
Hace un par de días, me surgió un problema con el contenido de la base de datos sobre la que estoy trabajando. El script de carga, con el DDL de las tablas y relaciones, así como los insertsde todas ellas, fue generado en un servidor Linux -a través de una conexión SSH, supongo, porque los 150Mb que ocupaba no los genera el phpMyAdmin ni de coña-, comprimido en gzip y dispuesto para su descarga vía HTTP.
Al bajarlo y extraerlo, mi primera intención fue abrirlo, para cerciorarme de que el contenido es correcto y, de paso, añadirle un create database y su correspondiente use -para qué me voy a tirar el moco, hasta ayer no supe que al comando mysql se le puede pasar, como argumento, la base de datos sobre la que volcar el script xD- pero viendo que ese mamotreto, hasta al UltraEdit en un Pentium 4 a 3Ghz le costaba sudores manejarlo, decidí cargarlo “a pelo”, como un campeón
Así que nada,
gtmuser@gtmserver[~]# mysql -u gtmuser -p gtm < gtmnuevo.sql
Enter password: ********
Y a cargar…
Una hora después, tenía mi flamante modelo de datos cargadito en el servidor y listo para conectar. A ver, a ver…cargo mi SQLYog, me conecto, me voy a la tabla de idiomas, por ejemplo, y…¡mierda!
IdIdioma | Idioma
——————-
1…………….Inglás
2…………….CatalÃí¬n
3…………….Espaéol
…
¡ya estamos con el charset y los collations jodiendo!
Read more…
























