Estoy planeando una aplicación web y, en lugar de PHP, me he decidido a probar Django. Ya me había leído un pequeño libro de Python pero no había hecho nada interesante, y ya que en este momento – muy a mi pesar – soy un desarrollador Web, creo que no debería estancarme en PHP. Mostraré a continuación como instalé Django con soporte para MySQL en mi Arch Linux.

Primero nos instalamos todo lo necesario (suponiendo que ya tenemos python instalado).

# pacman -Sy django mysql mysql-python

Arch es una distribución con soporte para Django. Hace la mayor parte de la configuración automáticamente. Una vez instalado el paquete django, ya podemos ver al framework en acción. Desde la terminal, nos movemos a la carpeta donde guardemos proyectos de este tipo; por ejemplo mis_proyectos/

$ cd mis_proyectos

Y ejecutamos el siguiente script que inicia un nuevo proyecto de Django:

$ django-admin.py startproject proyectazo

Esto crea una carpeta llamada proyectazo que contiene los scripts básicos. A continuación podemos iniciar el servidor de prueba. Nos movemos a la carpeta del proyecto recién creado y ejecutamos el script:

$ cd proyectazo/

$ python manage.py runserver

Y a continuación podremos visitar http://127.0.0.1:8000/ y ver que el script contesta.

Ahora, a configurar MySQL. Como root, iniciamos el servidor y ejecutamos el asistente de la instalación básica.

# /etc/rc.d/mysqld start

# mysql_secure_installation

El asistente primero preguntará por la contraseña del root (el de MySQL, no el del sistema) que por defecto no tiene, basta con dar Enter. Y procederá a hacer varias preguntas de configuración. Contestamos Sí o No según nuestras necesidades. Hecho eso, podemos entrara a la terminal de MySQL, o el gestor de nuestra preferencia y crear una nueva base de datos.

$ mysql -p -u root

mysql> CREATE DATABASE mi_prueba;

Ahora abrimos el archivo settings.py dentro de proyectazo y ponemos en DATABASE_ENGINE, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD con los datos de la base de datos que acabamos de crear.

Y eso fue lo básico. Ahora es cuestión de aprender a usar los recursos de Django.

Soy un fan de los champiñones; al menos de comerlos. Y hoy que estaba preparandome mi habitual omelette, encontré champiñones en mi refrigerador. Así que – además de picar uno para mi omelette – hice algo que había querido hacer desde hace tiempo. Sumergí un hongo en clara de huevo para despues cubrirlo con pan molido.

Seguro hay recetas parachampiñones empanizados, pero últimamente he tenido poco tiempo para búsquedas ociosas en Internet. Para la próxima, planeo hacer una mezcla de pan molido, harina y especias para cubrir los champiñones. Pero lo que en realidad quiero es hacer un corte en el hongo para poner ahí queso y que el pan lo cubra para que gratine.

LaTeX es un lenguaje de etiquetas para modelar documentos con estilos prefijados. Muy útil para escribir textos matemáticos. Muchos necesitan instalarse el conjunto de programas y bibliotecas para usar LaTeX, pero a veces es muy complicado, sobre todo en ambientes Windows. A continuación veremos MonkeyTeX, una aplicación web para crear documentos TeX. Es decir, que no necesitamos instalar nada en nuestras computadoras, no importa que sistema usemos y no importa que estemos en otra PC que no sea la nuestra; lo único que necesitamos en un navegador web.

Nota: He probado esta aplicación con éxito en Firefox, Internet Explorer y Opera. No funciona en Chrome ni en Safari.

Nota: Este manual lo he redactado para mis compañeros de mi grupo escolar de Cálculo, así que está completamente enfocado en codificación matemática; sin embargo espero que pueda servir para fines generales.

MonkeyTeX

Primero que nada, entraremos al sitio de MokeyTeX. La página de bienvenida tiene un poco de información sobre el proyecto; necesitamos una cuenta para poder usar el servicio, así que damos click en el botón «Sign up !». Ahí nos pedirá nuestra dirección de e-mail y que escogámos una contraseña (hay que tener cuidado con no escribirla mal u olvidarla ). Una vez hecho esto, entraremos al editor.

El editor tiene una interfaz, muy sencilla. A la izquierda tenemos las opciones sobre nuestro archivos, a la derecha tenemos un cuadro, «Filename» para ponerle nombre al archivo y 4 botones: Guardar el documento, Nuevo documento, Revisión ortográfica (sólo inglés) y un botón que muestra la numeración de lineas en nuestro código. Abajo tenemos el espacio para escribir nuestro código TeX.

Empezando a trabajar

Haremos un documento de prueba. Primero tenemos que ponerle un nombre en el recuadro «Filename», lo llamaremos «prueba-latex1.tex». Ahora copiaremos el siguiente código dentro del cuadro de código LaTeX:

\documentclass[letterpaper,10pt]{article}
\usepackage{graphicx}
\title{La Gr\'afica de la Funci\'on Coseno}
\author{Esec\'a (http://omoudo.wordpress.com/)}

\begin{document}
\maketitle

\section{Introducci\'on}
El $\cos(\theta)$, d\'onde $\theta$ es el \'angulo de un triangulo, $a$ el cateto
opuesto al \'angulo, $b$ el cateto adyacente y $c$ la hipotenusa; est\'a definido
por \[\cos\left( \theta \right) = \frac{b}{c}\] Para un c\'{i}rculo unitario,
$c=1$, entonces $\cos\left( \theta \right) = b$:

\begin{figure}[hbt]
\includegraphics[width=4in]{DummyFig.png}
\caption{Fusce nibh.}
\end{figure}

\end{document}

Y después damos click en el botón que está justo a lado del cuadro donde pusimos el nombre de nuestro archivo, es el botón para guardar nuestro documento. Esto no sólo salvará el archivo, sino que analizará el código LaTeX en busca de errores y generará el archivo PDF.

Guardar el documento

Guardar el documento

El resultado se muestra arriba en la esquina izquierda, justo abajo del logotipo. Si no hay errores, veremos el mensaje «PDF generated. (see log)», de lo contrario el mensaje será «Document contained LaTeX errors: errors» con un link que nos muestra los errores devueltos por el sistema.

Documento guardado, PDF generado

Documento guardado, PDF generado

Ahora tenemos otras opciones en el apartado «TeX Files» de la izquierda. Cuando este apartado está desplegado (es decir cuando se presiona el signo + y aparece un – ), nos muestra todos nuestros archivos guardados y algunas opciones para cada uno de ellos, cómo: Borrar el documento, compartirlo con otros usuarios, hacerlo público, descargarlo o descargar el PDF. Y es lo que haremos; si no hubo errores al guardar nuestro código, podemos dar click en el botón (pdf)que está justo después del nombre del archivo. Esto nos dará a descargar el archivo PDF generado por nuestro código. Básicamente ese es el funcionamiento de MonkeyTeX, podemos generar documentos en LaTeX fácil, rápido y sin instalar nada.

Agregando imágenes:

También podemos trabajar con imágenes en MonkeyTeX, lo único que hay que hacer es subirlas. Para esto damos click en «Files»; se abrirá un menú en dónde debemos dar click a la opción «Upload Files», esto nos abre una nueva ventana.

Subir archivos

Subir archivos

En ella veremos un campo «File» que nos permite escoger un archivo de nuestra computadora para subirlo a nuestra cuenta de MonkeyTeX; podemos subir imágenes, otros archivos .tex, archivos BibTeX, estilos TeX, y en si todo lo que podríamos necesitar para nuestros documentos. Para este ejemplo, subiremos una imagen, llamada «circulo_u.png» para usarla en el documento, una vez que la encontramos entre nuestros archivos, damos click en «submit!» para cargarla.

Seleccionar imagen para subir.

Seleccionar imagen para subir.

Al terminar, la imagen recién subida aparecerá abajo, en el apartado «Your saved images:». Podemos cerrar esta ventana y volver al editor.

Imagen cargada

Imagen cargada

Para usar nuestra imagen, primero añadimos la siguiente línea justo abajo de la etiqueta \documentclass[letterpaper,10pt]{article}: \usepackage{graphicx}

Y ahora podemos colocar el código que llama a la imagen, ponemos lo siguiente justo arriba de la etiqueta \end{document}:

\begin{figure}[hb]
  \centering
  \includegraphics[width=2in]{circulo_u.png}
  \caption{Circulo unitario.}
\end{figure}

Ahora justo como lo hicimos antes, guardamos el documento y si no hay errores, podemos descargar el PDF que ahora tiene nuestra imagen incluida en él.

Conclusiones

En general se puede hacer casi todo lo que se podría hacer con cualquier otro editor LaTeX.

Ventajas:

  • No hay que instalar nada
  • Podemos acceder a nuestros documentos LaTeX desde cualquier parte del mundo, basta con tener acceso a Internet.
  • Podemos trabajar en equipo con otros usuarios.

Desventajas:

  • La forma de trabajar es considerablemente más lenta que teniéndolo todo instalado en nuestra PC.
  • Tienen los paquetes más básicos, algunos más especializados (como es el paquete spanish de babel) no están instalados en la página; y como usuarios no podemos agregarlos.

En general es una buena opción para trabajos simples de LaTeX que requieran movilidad, e incluso, ser compartido con otros colaboradores.

Acabo de conseguir una nueva impresora laser; se trata de una SAMSUNG ML-2240. Encontré el proceso para instalarla en este sitio, pongo aquí mi equivalente en español.

La ventaja de instalar la impresora de esta manera es que no hay que usar el programa de instalación de SAMSUNG, con lo cual podemos usar la interfaz USB y no la otra (que no recuedo cómo se llama) que pone dicho programa. Este proceso debería servir para todos los modelos que distribuyan su archivo pdd.

  1. Con la impresora conectada y encendida, metemos nuestro CD de instalación.
  2. Tenemos que copiar el archivo /Linux/i386/at_root/usr/lib/cups/filter/rastertosamsungsp que está dentro del CD a /usr/lib/cups/filter:

    /media/SAMSUNG_LBP$ sudo cp Linux/i386/at_root/usr/lib/cups/filter/rastertosamsungspl /usr/lib/cups/filter

    Y cambiar los permisos:

    $ sudo chmod 755 /usr/lib/cups/filter/rastertosamsungspl

  3. Ir a Sistema>Administración>Impresoras y, ya sea cambiar la propiedad «Marca y Modelo» si ya estaba instalada; o instalarla con la opción «Nueva». En cualquier caso, al escoger el controlador, hay que seleccionar la opción «Proporcionar archivo PPD» y seleccionar Linux /noarch/at_opt/share/ppd del CD. Para este modelo el archivo es ML-2240spl2.ppd y presionar «Adelante».Impresora nueva
  4. Termina con la configuración y haz una impresión de prueba. Deberías ver la hoja de prueba de Ubuntu salir calientita de tu impresora.

Hoy en día hay muchas formas de descargar cosas. No hay nada como la descarga directa a través de sitios de alojamiento como Megaupload, RapidShare, etc. Sin embargo, hay ocasiones en las que sólo podemos conseguir algo a través de torrents y es necesario un buen -y me refiero a un muy buen- cliente de bittorrent.

Cuando empecé a usar GNU/Linux como mi único sistema operativo escogí Ktorrent como mi cliente de bittorrent. Se supone que Ktorrent inicio cómo un clon de µTorrent y prometía ser igual de útil e igual de ligero. Y lo era hasta que ocurrió no-sé-que (y no me interesa saber) y ahora Ktorrent es terriblemente pesado, el menos demasiado como para mis 512MB de RAM (tomando en cuanta, claro, que me pongo a hacer otras cosas mientras hay descargas). Lástima por este cliente, es muy bueno pero ese error para mi tiene mucho peso.

Probé a usar rtorrent, un gran cliente que funciona en línea de comandos. Es, por obvias razones, ¡muy ligero! y con suficientes opciones de configuración. Sin embargo no es tan dinámico en cosas como que hay que tener un solo directorio de descarga y almacenar los archivos torrents para hacer sesiones. Pero me viene muy bien para cuando tenga que controlar descargas vía ssh.

Deluge-Torrent

Deluge-Torrent

Pero el programa que usaré a partir de ahora es Deluge. Se encuentra en los repositorios de Ubuntu. Tiene las opciones de µTorrent que son tan útiles y por fin siento liberada la carga de trabajo en mi sistema =D.

Para instalarlo en Ubuntu basta con conseguirlo de los repositorios:

$ sudo aptitude install deluge-torrent

O puede ser descargado desde su sitio oficial (incluso para Windows).

Al visitar blogs de diseñadores web, es común encontrarse con una entrada maldiciendo, quejandose, criticando… a Internet Explorer; yo mismo tengo la mia. Y es que en verdad IE obliga a muchos desarrolladores a tener que trabajar de más para que un diseño o aplicación funcione en el navegador y a veces hay que limitar las posibilidades con tal de que los usuarios de dicho programa puedan visitar el sitio.

«Una iniciativa arrogante en defensa de la web»

«Una iniciativa arrogante en defensa de la web»

Pues ya hay algo al respecto: 403day se presenta a si misma como «Una iniciativa arrogante en defensa de la web».

  • La mecánica: el día 4 de Marzo debemos (los desarrolladores web) negar el acceso a nuestros sitios a todas las visitas hechas con Internet Explorer.
  • El motivo: protestar en contra de la pobre implementación de los estándares web que tiene Internet Explorer.
  • La recomendación que hace este movimiento es hacia los usuarios: usar otro navegador web.

¿Qué decir al respecto? No puedo negar que estoy completamente de acuerdo con el movimiento. Sin embargo, sí se me parece que un desarrollador web debe pensarlo dos veces antes de hacer que sus sitios se unan a la protesta. Creo que depende de los usuarios finales de la página, ya que siempre han existido y existirán navegantes muy principiantes (por decirlo de alguna manera). En mi caso, sí que quiero unirme al movimiento, pero veré en cuales de mis sitios debo tener cuidado. Y hay que recordar que no es la única manera de ayudar, la más sencilla es -por supuesto- pasar la voz.

Estoy a punto de terminar mi semestre en la universidad y pasar a vacaciones, que es el periodo en el que dedico más tiempo a mis proyectos.

Tom Negrino, Dori Smith; JavaScript & AJAX

Me he conseguido un libro de JavaScript & AJAX. Pienso aprender a diseñar sitios de formato enriquecido. Como ya programo en PHP, AJAX es el elemento que me faltaba para llevar mis sitios a un nivel más profesional. Sin embargo, no me gusta la programación web, carece de la elegancia de otros campos. A lo máximo que puede aspirar una aplicación web es a sustituir a una de escritorio. Me parece que está sobre-valuada.

Trabajando en el Metal Dance Pad

También me pondré a trabajar en mi Metal Dance Pad, tengo un nuevo diseño para el mecanismo de los paneles. Todo depende de que consiga resortes en alguna tienda de material y herramientas. Mi ambición llega al punto de querer construir un dispositivo USB, un control inalámbrico de 4 botones y programar su driver. He estado investigando un poco al respecto pero aún no encuentro mucha luz del tema.

Espero conseguir presupuesto para armar mi Home Theater PC. Una máquina con MythTV para sintonizar TV, ver DVD y reproducir archivos multimedia desde cualquier parte de mi LAN. Esta es una de esas cosas que serían tan sencillas con sólo tener dinero.

Y en asuntos que no tienen nada que ver con el contexto de este blog: Me están entrando ganas de volver a los deportes de lesiones como el skatebording o el rollerblade. Tengo que avanzar en algunos de mis guiones y, como en todas vacaciones, coseguir algunas series de televisión y películas.

Y Jehová Dios dijo a IE: Por cuanto esto hiciste, maldita serás entre todas las bestias y entre todos los animales del campo; sobre tu pecho andarás, y polvo comerás todos los días de tu vida…

Estoy muy molesto. Pasé más de 3 semanas trabajando en el nuevo diseño de La Comunidad de Artistas VALSHK, un proyecto que co-fundé y co-administro junto con algunos amigos. Me esforcé en hacer un diseño limpio. Se ve genial en Firefox, se ve bien en Opera, se muuuy bien en Safari pero ¡Oh sorpresa! a Internet Explorer simplemente no le da la gana mostrarlo bien.

Y yo pregunto (aunque ya sé la respuesta) ¿Como puede ser un navegador tan malo y seguir “vivo”? Es un programa lento, se siente la carga de memoria al compararlo con cualquier otro, incluso dentro de una máquina virtual. Es inseguro, seguramente es la principal puerta de entrada para Malware. No ofrece utilidades exclusivas o novedosas.

Pero como el mentado navegador es el más popular del mundo, uno debe limitarse con el fin de mantener la portabilidad. Me parece simplemente insoportable.

La tarjeta para WiFi de Realtek 8187b ha tenido un paso tortuoso por linux. Parece que descontinuaron el módulo que este chipset necesitaba. Surgieron algunas maneras alternas de hacerlo funcionar, pero algunas dejaron de funcionar con el kernel 2.6.24 (y creo que desde el 2.6.23). Pero por fin encontré en los foros de Ubuntu una solución. La pongo aquí sólo por popularizarla.

Tenemos que hacernos de una modificación del driver que encontrmos aquí. Necesitamos el paquete rtl8187b-modified-dist.tar.gz y el parche 2.6.24.patch. Pongo a continuación todo el proceso para sólo copiar y pegar en la consola.


$ wget http://www.datanorth.net/~cuervo/rtl8187b/rtl8187b-modified-dist.tar.gz

$ wget http://www.datanorth.net/~cuervo/rtl8187b/2.6.24.patch

$ tar -xzvf rtl8187b-modified-dist.tar.gz

$ cp 2.6.24.patch rtl8187b-modified/

$ cd rtl8187b-modified

$ patch -p1 < 2.6.24.patch

$ ./makedrv

$ sudo ./wlan0up

Después ya debería ser posible usar el asistente gráfico para conectarnos al router o usar iwlist (en algunos casos usa wlan1 como interfaz). En mi caso no muestra bien la intensidad de la señal, y una vez conectado siempre muestra 30%, pero de ahí en fuera todo va bien.
Mi amigo Bigmonachus ha estado trabajando en un pequeño juego en Python. pyCave es un clon de SFCave. El juego consiste en pilotear un helicóptero averiado por una cueva esquivando obstaculos. En cuanto al programa, la mayor parte del juego esta terminada, sólo faltan menús y portadas; En cuanto a los gráficos, hacen falta modelos para el helicoptero y los obstaculos. Así que espero que algún experto en Blender le ayude con ello.

Yo ya lo he probado y me ha gustado mucho. A pesar de estar en versión alpha, uno ya puede usarlo para matar el tiempo. Con los modelos necesarios y música seguramente quedará muy bien.