28 de diciembre de 2007

Squeak a través de ejemplos

Algún día intentaré hablar más a fondo de Squeak, de su potencia y de los sentimientos enfrentados que muchos hemos tenido hacia el, pero en esta ocasión sólo quería recomendar un libro gratuito para aquellas personas que quieran aprender a manejar Squeak:

Squeak by Example

Es un libro muy popular sobre el tema.

También hay algunas alternativas en español. En esta tuve el placer de colaborar con algunos capítulos:

Squeak, un mundo para aprender

Ahora mismo, por lo que compruebo, no está accesible, aunque sí este otro, más técnico:

Programando con Smalltalk

de Diego Gomez, que versa sobre el lenguaje con el que está creado Squeak. Los dos libros fueron publicados por Edilin, con una maquetación excepcional. Todavía se pueden adquirir allí.

Squeak es una aplicación con un fuerte componente de trabajo en el aula que está reinventándose en los últimos meses. Estoy seguro de que dará de qué hablar muy pronto.

Actualización: Antonio Moreno, uno de los principales valedores en este momento de la versión extremeña de Squeak, nos recuerda desde dónde se puede descargar el libro: http://squeak.educarex.es/Squeakpolis/48

27 de diciembre de 2007

Detectar consultas lentas en MySQL

En el siguiente artículo se explica con sumo detalle como hacer que el servidor MySQL registre las consultas que resultan lentas para que posteriormente podamos revisarlas y mejorarlas.

Identifying slow MySQL querys

26 de diciembre de 2007

PuTTY Tray

PuTTY Tray es una versión de PuTTY algo más cuidada y completa. PuTTY es una aplicación que nos permite conectarnos a otro ordenador con algunos protocolos, el más habitual es el SSH. Es una herramienta muy útil si estás atrapado en un Windows y necesitas acceder a tu ordenador con Linux.

PuTTY Tray

Para terminar de redondearlo es una aplicación portable, es decir, que no requiere instalación, así que se puede copiar en una memoria USB para tenerla lista en caso de emergencia. No ocupa casi nada, solo 600kb. Se descarga haciendo clic aquí.

22 de diciembre de 2007

Más JQuery

Kollermedia tiene una página web que recopila 240 componentes de JQuery. Añadiendo cualquiera de ellos a una página web que utilice JQuery incorporaremos su funcionalidad.

240 plugins jquery

Veamos a continuación una parte del gran trabajo que se han tomado Koller Junger, el autor:

File upload

Ajax File Upload.
jQUploader.
Multiple File Upload plugin.
jQuery File Style.
Styling an input type file.
Progress Bar Plugin.

Form Validation

jQuery Validation.
Auto Help.
Simple jQuery form validation.
jQuery XAV - form validations.
jQuery AlphaNumeric.
Masked Input.
TypeWatch Plugin.
Text limiter for form fields.
Ajax Username Check with jQuery.

y así sigue y sigue y sigue....

21 de diciembre de 2007

Feliz Navidad

Iba a buscar algo para felicitar la Navidad, pero como somos pocos y hay confianza, he preferido utilizar la felicitación navideña que han recibido en el Pito Doble:

Felicitación de Carmen

¿Por qué me harán tanta gracias estas cosas?

20 de diciembre de 2007

12 extensiones para Firefox y desarrollo web (y más)

En el siguiente enlace de Freelance Switch se recopilan las doce extensiones más útiles para desarrollo web con Firefox. Estas extensiones nos sirven para probar las páginas, transmitirlas vía ftp, comprobar errores, etc.

12 Essential Extensions for Web Developer & Designer

Lo más interesante es que además de la lista, que contiene las más o menos conocidas por todos, en los comentarios se puede encontrar alguna otra muy útil.

Para mi, la mejor, Firebug, siempre avisando de los errores en javascript. Imprescindible.

19 de diciembre de 2007

Tutorial. Problema con Asus P5K-E


Recientemente adquirí una placa base Asus P5K-E Wifi-AP Edition. Es una placa base moderna y con todo tipo de conexiones, buena refrigeración, etc.

Al comenzar a utilizarla apareció un problema: cada vez que modificaba una opción en la BIOS obtenía un error bastante extraño. El mensaje en concreto era: "Overclocking failed, press F1 to enter setup, or F2 to load default values".

Tras buscar en Internet encontré un montón de hilos de foros que describían el mismo problema con la P5K-E. En la mayor parte de los casos sin solución. En mi caso, sí encontré una solución, y aquí queda por si le sirve a alguien.

La placa tiene un montón de opciones para hacer overclocking, aunque no era mi caso. Yo sólo quería desactivar alguna opción y demás. La secuencia era siempre la misma: modificaba una opción y al guardar los cambios con "Save settings & exit" el ordenador se reiniciaba pero no era capaz de activar la señal de vídeo, la pantalla aparecía negra. La única opción era la de apagar el ordenador. Por tanto, al voverlo a encender la BIOS detectaba que no había sucedido un arranque limpio y me mostraba ese mensaje de error.

Por más que rebuscaba en la BIOS de la P5K-E todo parecía estar bien, de hecho, las opciones sensibles estaban todas en Auto.

Tras leer un montón de hilos, encontré algunas soluciones válidas en un par de sitios:

http://forum.pcmech.com/showthread.php?t=189431
http://www.xtremesystems.org/forums/showthread.php?t=147927
http://fergustan.net/2007/06/story-computer
http://vip.asus.com/forum/view.aspx?id=20070915152339500&board_id=1&model=P5K-E%2fWiFi-AP&page=1&SLanguage=en-us

Entre unas y otras lecturas la solución se encontraba en los foros de Asus.

El problema

Parece ser que hay una cierta incompatibilidad entre determinadas memorias RAM y esta placa base, por la cual, las opciones de Auto de la BIOS provocan este tipo de errores.

La solución

La solución al problema se basa en cambiar determinadas opciones de Auto a Manual. En mi caso cambié únicamente lo siguiente:
  • FSB Strap North Bridge -> 266Mhz
  • Dram frequency ->DDR-800 (que es la velocidad de mi memoria)
  • Transaction Booster -> Disabled (lo leí en uno de los foros, realmente no sé si influye).
Todo ello sin ni siquiera tener que abrir la caja para hacer pruebas con la memoria, en mi caso dos módulos Kingston.

Si con esto no consigues que te funcione, intenta cambiar a manual las opciones AI Overclocking y CPU Ratio.

Suerte !!!


PD: A través de los comentarios de la noticia he llegado a la página de Ultratech GTX, que entre otras cosas cuenta con una extensa guía sobre overclocking. Si tienes esta placa base, puedes overclockearla sin problema, así que probablemente este manual te resulte interesante.

18 de diciembre de 2007

Acceder a particiones Linux desde Windows

Con el siguiente programa se puede acceder a particiones ext2 y ext3, las habituales de linux y leer cualquier archivo o pasarlo a una partición Windows. No se puede escribir, con lo que no hay problema de dañar nada de nuestro Linux.

Access to Ext2/Ext3 from Windows XP y descarga del programa.

El programa es gratuito.

17 de diciembre de 2007

Componentes de egroupware: Wiki

Profundizando en el uso de egroupware he empezado a utilizar el wiki. Básicamente es un espacio de edición en el que los usuarios de egroupware pueden compartir textos y realizar ediciones colaborativas de documentación.

Al principio resulta muy confuso, ya que no se comporta como un wiki normal (los wikis basados en el excelente mediawiki, como la wikipedia). No obstante en la página de documentación de egroupware podemos encontrar un enlace a la documentación de este tipo de wikis, basados en Wikki Tikki Tavi. Menudos nombrecitos.

Manual de uso del wiki de egroupware

La edición de cualquier wiki es muy similar a escribir un documento en un editor de texto, sólo cambian un par de cosas importantes, que en el caso de este editor son así:

  • Para crear un enlace interno (a otra página del wiki): Se escribe un nombre con varias palabras juntas, por ejemplo OrganigramaDeLaEmpresa. Al ver esa página, aparecerá una interrogación junto al nombre. Pulsando sobre ella podremos editar la nueva página. Al editarla podremos tomar un nombre más sencillo.
  • Para crear un enlace externo: Poner la url completa, por ejemplo http://www.google.es. Podemos sustituir el nombre así: [http://www.google.es Para buscar]
  • Para dar formato al texto: Dos comillas simples para negrita, tres para cursiva. Por ejemplo Esto va en ''negrita'' y esto en '''cursiva'''.
y así sigue hasta permitirnos dar un formato completo al documento.

15 de diciembre de 2007

50 aplicaciones libres para diseño gráfico

Una colección imprescindible de aplicaciones que funcionan en Ubuntu/Linex/Debian orientadas al diseño gráfico.

Top Best 50 Ubuntu Opensource

Aunque está en inglés, se entiende todo, claro. Es muy útil para encontrar algunas aplicaciones más además de las ya conocidas (blender, scribus, inkscape, gimp, etc.)

14 de diciembre de 2007

Jquery. Columnas dinámicas

Entre las mil cosas que se pueden hacer con JQuery para dar interactividad a una página web de una forma sencilla encontramos la posibilidad de crear columnas que pueden ser redimensionadas automáticamente con sólo arrastrar su línea de separación. Se hace con este script:

JQuery Vertical splitter

Aquí se puede ver un ejemplo de lo que hablamos. Es como usar marcos, pero sin usarlos. Todo incluido en una misma página con unos cuantos script sencillos.

13 de diciembre de 2007

Iconos gratuitos

En Downloadpedia hay una extensa colección de iconos y botones gratuitos bajo distintas licencias.

Downloadpedia. Free Icons and Buttons

Y para muestra, nunca mejor dicho, un botón. Iconos navideños para estas fechas tan señaladas.



Actualización

Casualmente acabo de ver que en el weblog de blogmundi han puesto esta entrada:

3700 iconos gratis para tu web

Desde luego hay un motón, aquí se pueden ver algunos:

11 de diciembre de 2007

Tres recursos interesantes sobre desarrollo web

A continuación una recopilación de tres artículos muy interesantes sobre desarrollo web que tenía rodando por mi escritorio:

  • 125 Code Snippets for web designers: Es una recopilación de 125 pequeños trocitos de código para hacer tareas concretas en una aplicación web, como esquinas redondeadas, mejorar la apariencia de los formularios, etc.
  • 6 Key to Understanding Modern CSS-Based Layouts: 6 puntos claves para entender el diseño de plantillas mediante CSS, sin utilizar tablas, marcos u otros modelos en desuso. Incluye algunos conceptos imprescindibles, como el uso de em, o cosas tan interesantes como el uso de sprites. Interesante para quien le interesen estas cosas, claro. :-)
  • 5 htaccess Tricks Every Webmaster should know: Y cerramos las listas con 5 trucos que todo el mundo debería saber sobre htaccess para conseguir un sitio web más seguro. Por ejemplo, ¿cómo se evita que alguien pueda explorar los directorios del servidor? Con esto: Options All -Indexes
Ya digo, cosas que todo el mundo debería saber. Feliz lectura. Todo en inglés, por cierto.

10 de diciembre de 2007

egroupware y las preferencias de su agenda

Intentando retomar el trabajo con egroupware para montar un pequeño espacio de trabajo colaborativo en el que un grupo de personas podamos compartir una agenda común, una lista de tareas y algunas herramientas más, me encontré con el siguiente problema:

Al configurar el calendario que acompaña a egroupware tenía que configurar el calendario cada vez que creaba un nuevo usuario, es decir, no encontraba la forma de modificar el comportamiento del calendario para cualquier usuario que fuese dando de alta.

Finalmente la solución estaba bastante a mano. Editando las preferencias del calendario como adminstrador, junto a las preferencias del usuario hay dos pestañas que hacen el trabajo:
  • Preferencias predeterminadas: Modifican la configuración inicial del calendario para los nuevos usuarios.
  • Preferencias forzosas: Modifican las opciones de modo que el usuario no pueda cambiar su comportamiento.
Por tanto, sólo tengo que cambiar aquí los datos que me interesen y de ese modo cada nuevo usuario que genere aparecerá con esos valores de forma predeterminada o obligada en el segundo caso. Necesito cambiar cuestiones como el comienzo de la jornada laboral y cosas así.

9 de diciembre de 2007

A propósito del informe PISA

Siempre genial, El Roto, en su tira de ayer sábado.

El informe completo se puede consultar en la página del Instituto de Evaluación.

Pisa 2006 en formato PDF

Pero vamos, en la viñeta viene muy bien resumidito.

7 de diciembre de 2007

Enviar correos desde php mediante gmail

Después de pasar largas horas investigando como se puede enviar un correo mediante php sin utilizar la función mail(), que tiene más complicación a la hora de dar formato al mensaje y utilizar adjuntos, llegué a phpmailer como la librería ideal para realizarlo.

phpmailer

Por desgracia en mi caso no he podido conseguirlo, a pesar de poder configurar bien el uso de openssl, siguiendo las instrucciones del primer comentario de esta página:

Openssl en php

Finalmente he encontrado otra librería llamada SwiftMailer, que hace lo mismo que phpmailer y que me ha funcionado a la primera.

Swiftmailer

Básicamente, puedo enviar un correo a través de gmail y o de cualquier otro servidor que utilice autencicación TSL o SSL y los puertos 465 o 587 mediante esta pequeña secuencia de código:
require_once "lib/Swift.php";
require_once "lib/Swift/Connection/SMTP.php";

$smtp =& new Swift_Connection_SMTP("smtp.gmail.com", Swift_Connection_SMTP::PORT_SECURE, Swift_Connection_SMTP::ENC_TLS);
$smtp->setUsername("miusuario");
$smtp->setpassword("miclave");

$swift =& new Swift($smtp);

$message =& new Swift_Message("Prueba", "Prueba");

if ($swift->send($message, "prueba@gmail.com", "prueba@gmail.com")) echo "Funciona";
else echo "Algo raro ha pasado";

Espero que esto le sea de ayuda a alguien y se ahorre unos buenos ratitos.

Ahora sólo queda empezar a profundizar en las capacidades de formato que proporciona swiftmailer. Aquí hay una lista de las ventajas que ellos indican en su página web:
  • Persistent connectivity improves performance
  • Connection types selected by user - extendable
  • Complete header control with RFC 2822 requirements handled
  • Internationalization support (i18n)
  • Connection redundancy support
  • Load balancing and/or throttling support
  • SSL & TLS Support - for Gmail servers
  • Embedded images or other file types
  • Full MIME 1.0 library included (create multipart messages, attachments etc)
  • Batch mail processing
  • Smart runtime caching (in small, self-maintained packets)
  • Send attachments of any size even with PHP's 8MB Memory Limit
  • Support for multiple attachments
  • Lossless protection against header injection (encode, don't strip)
  • Set message priority
  • Request read receipts
  • Pluggable SMTP authentication (LOGIN, PLAIN, MD5-CRAM, POP Before SMTP)
  • Anti-flooding support for servers with limits on emails-per-connection
  • Bandwidth monitor included
  • Extensive event-driven plugin support (easy to write)
No está mal.

4 de diciembre de 2007

Blofesores y otras especies

Aquí hay una interesante reflexión sobre el uso de las TIC en el aula y la implicación del profesorado sobre el tema a la hora de definir élites:

¿Por qué no soy blogfesor?

Aunque quizás élites sea una palabra demasiado dura.

Lo encontré gracias a Milio de Mendralejo, siempre atento a las tormentas blogosféricas, aunque a veces sean pequeños chaparrones. :-)

3 de diciembre de 2007

Sustituir una parte de una cadena en MySQL

Un apunte rápido pero intenso. En el proyecto en el que ando metido con mi amigo Miguel desde hace más de un año tenemos que cambiar la denominación de un montón de centros publicos. De CP (colegio público) a CEIP (Centros de educación infantil y primaria). Para hacer el cambio en una base de datos utilizamos una secuencia como esta:

UPDATE centros
SET nombrecentro = replace(nombre, 'CP ', 'CEIP ')

Con replace se localiza la cadena y se sutituye por la otra. Cómodo, rápido y limpio, como nos gusta a todos.