25 ene. 2008

Fauna Geek

¿Qué te viene a la mente al ver este fondo de pantalla?

Fauna geek

Si has respondido duck typing, Mac OS X v10.5, Apache y Linux, felicidades.

También son respuestas válidas, por ejemplo, DocBook, FreePascal, Perl, etc.

NO son respuestas válidas: pato, leopardo, alce o pingüino.

24 ene. 2008

Comprobar tu sitio Web

The Scrutinizer es el nombre de una herramienta que te permite analizar y estudiar el comportamiento de tu Web. Para utilizarlo escribe tu dirección (URL) y selecciona debajo alguno de los muchos test que dispone. Recomendamos: Los relacionados con copias de tu contenido. Encuentra que otros sitios te copian tus artículos. También prueba los relacionados con la velocidad de tu página y hay uno que te convierte tu Web en un documento PDF. Este puede ser útil para enviar por correo electrónico o como adjunto para una posible presentación del sitio.

En "scrutinizethis.com" encontraras muchas herramientas que valen la pena tener en mente. Te lo recomiendo.

23 ene. 2008

GPG Error

Un problema muy común al agregar varios canales al los repositorios, es que no tengamos sus keys, con lo cual cada vez que actualicemos la lista de paquetes nos va a mostrar algo como ésto:



Para que éste error no vuelva a aparecer, no importa cual sea el canal de actualización, se hace de ésta manera (abrimos una consola desde aplicaciones/accesorios/terminal , los símbolos "$" indican el inicio de la línea y no se escriben):

$ gpg --keyserver wwwkeys.eu.pgp.net --recv-keys (aca key que aparece en el error)
$ gpg --armor --export (aca key que aparece en el error) | sudo apt-key add -

Como ejemplo para arreglar el problema del ejemplo indicado en la captura sería de ésta manera:

$ gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 49A120FD1135D466
$ gpg --armor --export 49A120FD1135D466 | sudo apt-key add -

Vuelvan a ejecutar synaptic o el gestor de actualizaciones para descargar la lista de paquetes y comprobarán que el error desapareció.

Mostrar Código Fuente en Blogspot

Por fin di con el programa adecuado para mostrar código en el blog.
Siempre me tocaba andar revisando manualmente, alguna vez use un convertidor web pero siempre me tiraba algún error.

El programa que uso ahora es: code2html

apt-get install code2html


Si tenemos un programa en c en por ejemplo el archivo: algo.c

code2html algo.c > codigohtmlalgo.c

Así volcamos el código que vamos a introducir en blogspot a un archivo.
Sin no lo volcamos lo sacara por la salida standard.
Copiamos solo el código que va entre las etiquetas pre

Muy util :).

¿Como hacer un tema para WordPress?

Ahora esta tarea se ha simplificado, gracias a la herramienta on-line WordPress Generator for n00bs la cual nos permite, en base a unos pocos parámetros, como colores fuentes y algunas medidas generarnos nuestro propio tema para armar un blog bien personalizado. Lo único que le faltaría es agregarle las imágenes, en caso de que quieras imágenes fijas, como podría ser un titulo gráfico, por ejemplo.

¿Como aumentar el tráfico de nuestro blog?

En esta mini-guía propongo orientar a los usuarios novatos a aumentar el numero de visitas diarias que reciben en su blog. Aunque también se puede aplicar a algún otro tipo de sitio, como por ejemplo un sitio de noticias.

del.icio.us

Hace no mucho tiempo, se empezó a popularizar un tipo de sitios de noticias “sociables”, en el cual los usuarios votan algún contenido ubicado en un blog. De tal manera que en dichos sitios se forma un ranking, en el cual las noticias mas votadas aparecen primero. Obviamente todas las noticias no caben en la pagina inicial, solo unos pocos logran esto, aumentando aun mas su trafico. Cabe aclarar que en todos los sitios de noticias sociables hay que estar registrado para poder votar.

¿Cómo pueden los usuarios votar un contenido de mi blog?

Digg

La respuesta a esta pregunta varia, dependiendo del CMS (content management system) que tengamos instalado para manejar el blog. Entendamos a un CMS como el motor del blog, que es el que nos deja subir contenido, y luego ordenarlo y mostrarlo a los usuarios. Generalmente hay plug-ins para los CMS mas usados, que ofrecen links vinculando nuestros contenidos con distintos sitios sociables. Aunque también se pueden hacer links estáticos, lo cual requiere definir cada link para cada posteo del blog, teniendo en cuenta que probablemente tengamos entre 10 y 20 sitios sociables, esta tarea se dificulta bastante.
Ahora la gran pregunta es: ¿de los 200 sitios sociables, cual elijo?
Para responder esta pregunta, habrá que evaluar el numero de visitas que tienen los sitios sociables, los mas populares en este momento son Digg y del.icio.us, entre otros. Podríamos también ponerlos todos, por que no! claro esta que nuestro blog se volvería un poco mas pesado y con un diseño mucho más desordenado, esta opción no es muy recomendable, ya que queda todo muy amontonado y además de perjudicar la visual, también dificulta al usuario elegir un sitio para subir nuestro contenido.

feed RSS

Otra forma de incrementar el tráfico es mediante feeds (alimento). Son archivos de metalenguaje XML (eXtensible Markup Language) que poseen parte del contenido en nuestro blog, se usan para avisar a los usuarios que subimos algún contenido nuevo. De esta forma el usuario no solo sabrá que hay contenido nuevo en el blog, sino también que tema estaremos tratando.

¿Qué tipos de feeds hay?
Básicamente hay feeds ATOM, RDF y RSS, a continuación detallo cada una:

RDF:
La versión 1.0 del lenguaje RSS también es conocida como RDF. Por este motivo algunos feeds o canales RSS están etiquetados como “RSS 1.0″ o “RDF” y guardados en archivos con extensión “.rdf”.
RSS2:
A la versión 2.0 del lenguaje RSS también se llama RSS2. Por lo tanto algunos feeds o canales RSS están etiquetados como “RSS2″ o “RSS 2.0″.
Atom:
Atom también es un metalenguaje XML. No se corresponde ni se basa en ninguna versión de RSS, pero es un formato muy similar a éste y que sobre todo tiene el mismo objetivo: permitir la distribución de contenidos y noticias de sitios web. La versión más actual es la 0.3 de febrero de 2004. Las mejoras que supone respecto a RSS (en cualquiera de sus versiones) hacen que su uso se extienda rápidamente a pesar de ser algo más complicado. Un documento Atom puede contener más información (y más compleja) y es más consistente que un documento RSS.

Los feeds pueden ser distribuidos normalmente mediante un plugin para nuestro CMS, en wordpress por ejemplo, no es necesario, ya que el mismo sistema ya tiene esa función. Aunque también podemos distribuirlas por algún proveedor o gestor de feeds, como feefburner.com por ejemplo, lo cual nos permite medir a cuantos suscriptores llega nuestro contenido y además podemos agregar mas cosas al mismo feed.

Sexo en el bash

Navegando por ahí, me encontré con esto y no pude parar de reirme mientras lo leía, después me puse serio al darme cuenta lo geek que era (o soy :razz: ), pero sin lugar a dudas merece una leida. Un aplauso al creador!

who | grep -i blonde | talk;
cd ~; wine; talk; touch;
unzip; touch; strip; gasp;
finger; gasp; mount; fsck;
more; yes; gasp; umount;
make clean; sleep

Instalar Temas Murrine en Debian

Los temas gtk (ventanas y botones) que incluye debian son bastante comunes, ya que solo trae los engines (motores) básicos para estos, lo que limita sus posibilidades. Lo que voy a explicar es como instalar el engine murrine el cual nos da la posibilidad de instalar temas gtk mas completos y vistosos que los comunes, aquí de un tema con engine murrine:

Ahora explicaré como instalar éste engine y un tema:

Paso 1: Abrimos el synaptic (Sistema/Administración/Gestor de Paquetes Synaptic), luego vamos a Configuración/Repositorios/Otros Proveedores y cliqueando en añadir agregamos esta linea:
deb http://malteo.homelinux.net edgy-malteo all
cliqueamos añadir origen y volvemos a hacer lo mismo con esta línea:
deb-src http://malteo.homelinux.net edgy-malteo all


cerramos y cliqueamos Recargar.

Paso 2: Cliqueamos el botón buscar e introducimos murrine:


Hacemos botón derecho sobre gtk2-engines-murrine luego en instalar y cliqueamos aplicar para instalarlo.

Actualización: Si al presionar "recargar" les tira un error y no encuentran el paquete murrine, pueden descargar el paquete desde aquí (presionando en gtk2-engine-murrine), luego de descargarlo cliqueamos "abrir" para comenzar la instalación del paquete.

Paso3: Nos descargamos el tema Murrine PF-Y desde aquí , y lo instalamos arrastrando el archivo del tema sobre el administrador de temas (Sistema/Preferencias/Tema), y de la misma forma instalamos el tema metacity (bordes de las ventanas) Samui 2.0 (no es el de la captura) descargándolo de aquí. Si tenemos instalado Beryl nos podemos descargar el tema emerald (bordes de ventanas) Cerebro que es el que ven en la captura, solo que yo le hice algunas pequeñas modificaciones, pero a causa de la licencia del tema original no puedo redistribuir, el tema se descarga de aquí y se puede instalar y modificar para que se vea como el de la captura con el Gestor de Temas Emerald.

Paso4: Si además queremos cambiar el fondo al nautilus vamos detro de éste a editar/Fondos y emblemas y seleccionamos Rayas blanco nevado.


Eso es todo espero que les halla servido.

tomado de http://symphox.blogspot.com/2006/12/instalar-temas-murrine-en-ubuntu-edgy.html

21 ene. 2008

Generadores Automaticos de Passwords

GPW es un sencillo programa cuya misión es generar contraseñas seguras de forma aleatoria.

De esta manera ya no tendremos que preocuparnos más por la seguridad de la contraseña que adjudicamos a algún nuevo alta que acabemos de cumplimentar, puesto que GPW se encarga de crearlas sin ningún orden ni concierto.

Para ello, GPW puede utilizar tres tipos de caracteres de forma alterna y aleatoria, como son números, letras del abecedario y símbolos especiales.

El único requisito que exige GPW para la creación de passwords es que estos deben tener una longitud comprendida entre 3 y 15 caracteres, algo que sin duda no supondrá ningún hándicap a su manejo.

$ gpw [number of passwords] [length of passwords]

Esto Genera 5 passwords de 12 caracteres de longitud

$ gpw 5 12
proothesside
erieractiver
rlbrentieucc
entednaphysi
ditypagessno

15 ene. 2008

12 señales de que eres un mal programador

1. Java es todo lo que necesitas.
No ves la necesidad de usar ningún otro lenguaje, ¿por qué no se puede hacer todo con Java? No te importa ver código en Python o Ruby que logra en 10 lineas lo que llevaría varias hojas de código Java. Además, seguramente las nuevas características de la próxima versión del lenguaje lo arreglaran de todas formas. (Esto es aplicable a casi cualquier lenguaje, pero ocurre que entre la comunidad Java parece estar más extendida esta forma de pensar)

2. El término “enterprisey” (NT: se trata de un término sarcástico utilizado para designar productos complejos más allá de lo necesario) no te suena a broma.
“Enterprise” no es sólo una palabra, es una filosofía, una forma de vida, un camino a la iluminación. Cualquier cosa que pueda ser escrita, desplegada o actualizada con un trabajo mínimo es descartada como un juguete que no “escalará” para futuros usos. Mientras tanto la mayor parte del trabajo real en tu oficina se hace enviando hojas de cálculo en Excel mientras esperan a que termines de construir tu nueva visión corporativa.
3.Te opones férreamente a las funciones/métodos de más de 20 líneas de código.
(o 30 o 10 o cualquier otro número) Lo siento, algunas veces una función larga es justamente lo que necesitas. Normalmente las funciones cortas son más sencillas de entender, pero algunas veces se pueden expresar más fácilmente en una sola función más larga. El código no debería hacerse más complejo sólo para adecuarse a criterios arbitrarios.

4. “¡OH DIOS MÍO! ¡PATRONES!”
Los desarrolladores que buscan constantemente la forma de aplicar patrones a cualquier problema de código con el que se encuentran están añadiendo una complejidad innecesaria. Lejos de ser algo que busques, deberías sentirte mal cada vez que tienes que utilizar un patrón de diseño, significa que estás escribiendo código que hace las cosas más complicadas y que puede ser de dudosa utilidad. Pero, ¡ey!, tu código tiene patrones, bien por ti.

5. Los ciclos de CPU son un recurso precioso y tu estilo de programación y lenguaje reflejan esas creencias.
Hay montones de problemas en los que tienes que tener muy en cuenta el consumo de CPU (modelado/simulación, procesado de señales, kernels de sistemas operativos, etc), pero no es tu caso. Para la mayor parte de los desarrolladores de software sus principales problemas de rendimiento están relacionados con las bases de datos y la entrada/salida. El único efecto de optimizar tu código para mejorar el uso de CPU será disminuir en 2 milisegundos el tiempo necesario para la próxima consulta a la base de datos. Mientras tanto el desarrollo de la aplicación se hace más lento, no puedes hacer frente a los nuevos requerimientos y te encuentras con problemas serios de calidad. Pero al menos estás ahorrándote montones de ciclos de CPU… eventualmente.

6. Piensas que ninguna función/método debería tener más de un return.
Esta la he oído alguna que otra vez, y normalmente la razón que me dan es que el código es más sencillo de analizar. ¿Según quién? Yo encuentro más fácil de leer un código más simple, y normalmente el tener más de un return simplifica el código.

7. Tus usuarios son estúpidos. Realmente estúpidos.
Simplemente no puedes creer lo estúpidos que son, olvidándose constantemente de hacer las cosas más sencillas del mundo y cometiendo errores tontos al usar tu aplicación. Nunca has considerado que quizás es tu aplicación la que es estúpida porque eres incapaz de escribir software decente.

8. Te enorgulleces enormemente del gran volumen de código que escribes.
Ser productivo es bueno, desafortunadamente escribir montones de líneas de código no es lo mismo que ser productivo. Los usuarios nunca comentan “Guau, este programa puede ser difícil de usar y estar lleno de errores, pero al menos sé que hay un montón de código por debajo.” En lugar de ser productivo, generar toneladas de mal código retrasa a los demás desarrolladores y en el futuro su mantenimiento constituirá una pesada carga.

9. Copiar y pegar es genial, te ayuda a escribir código desacoplado.
Defiendes tu uso del copy paste con extraños argumentos sobre desacoplar código y eliminar dependencias, mientras ignoras el aumento del tiempo de mantenimiento y los problemas de duplicación de errores. A esto se le llama “racionalizar tus acciones”.

10. Piensas que la gestión de errores consiste en capturar todas las excepciones, registrarlas, y continuar como si nada.
Eso no es gestionar errores, eso es ignorar errores y es el equivalente semántico al “on error next” de VB. Sólo porque hayas registrado el error en algún sitio no significa que lo estés tratando. Tratar errores es algo duro. Si no sabes qué hacer exactamente cuando te encuentras con un cierto error, simplemente deja que la excepción se propague y que un nivel más alto del código lo trate.

11. Modelas todo tu código en UML antes de escribirlo.
El modelado entusiasta de UML se lleva a cabo normalmente por aquellos que no escriben demasiado código, sino que se consideran arquitectos de software. Las herramientas de modelado atraen más a aquellos que piensan que el código se puede escribir en una sala de conferencias manipulando pequeños gráficos. Los gráficos no son el diseño, y nunca serán el diseño, para eso está el código.

12. Tu código borra datos importantes.
Escribiste un cierto código que se supone que debe sobrescribir los archivos de la aplicación con otros nuevos, pero se vuelve loco y borra todos los datos del usuario.

 
Too Cool for Internet Explorer