
Si bien hace casi un año que vengo trabajando con Sublime Text 2 hasta el momento no había comentado nada en el blog,tampoco es que venga muy activo en el blog, pero ese es otro tema completamente distinto.
(más…)

Si bien hace casi un año que vengo trabajando con Sublime Text 2 hasta el momento no había comentado nada en el blog,tampoco es que venga muy activo en el blog, pero ese es otro tema completamente distinto.
(más…)
Y este título va por dos razones. Es lindo volver a escribir en el blog después de mucho tiempo y es lindo volver a Linux.
Hacía varios meses que me rondaba por la cabeza la idea de instalar nuevamente Linux en alguna de mis máquinas. En su momento la decisión de sacar Linux fue simplemente por problemas con algunas placas que tenía y falta de tiempo para encontrar las soluciones apropiadas.
Gabriel Pozo, un gran programador y amigo que tuve la suerte de conocer, me recomendó bastante Arch Linux. Empecé como creo que debe hacerse por visitar el sitio, leer algo de la documentación, experiencias en los foros, etc.
Luego antes de pasar al entorno real, unas pruebas en una máquina virtual. Como para romper donde no tuviera mayores consecuencias.
La idea era lo bastante simple y fuerte como para que no admita cuestionamientos: La Desktop cumple pocas funciones que Linux las puedo cubrir tranquilamente y me libero de usar un XP que ya perdió soporte.
¿Cuáles son esas funciones?
En si, el hardware de la pc de escritorio está bastante desactualizado hace tiempo. Pero en este momento es un equipo que se le da un uso muy limitado, el 90% de la actividad diaria pasa por la notebook. Más allá de las funciones que se nombran también la suelo usar para buscar documentación mientras tengo el código abierto en la notebok, acceder a mysql y configuraciones del servidor local.
Procesador: Sempron LE-1250
Memoria: 3GB
Video: GeForce 7300 LE
Disco: 2 x 160 SATA II

No voy a hacer un copy & paste del proceso de instalación, lo mejor es dirigirse a la fuente: Wiki Arch Linux o también muy recomendable el artículo de Gabriel en su blog, lo que voy a comentarles es mi experiencia.
Si ven la guía de instalación en cualquiera de los dos enlaces van a notar algo a primera vista, todo es mediante comando de consola, con lo cual no es muy recomendable hacerlo apurado, ni para aquellos que prefieren instalar todo con dos clicks.
No son muchos comandos, pero si hay que ser cuidadosos a la hora de escribirlos.
Por mi parte el medio de instalación que elegí fue un PenDrive generado desde el Debian que tengo virtualizado como entorno de desarrollo usando simplemente dd.
Siguiendo los pasos cuidadosamente el sistema se instala sin problemas. No tuve mayores errores que no estuvieran documentados correctamente en la misma Wiki. Eso es uno de los puntos más destacables que encontré sobre el proceso.
Acá comenzaron algunos problemas. mi primera elección después de averiguar un poco y consultar opciones fue instalar Cinnamon el entorno que viene por defecto en Linix Mint. Me parecía el más proporcionado entre recursos y prestaciones.
Solamente por una cuestión de «suerte», cuando lo instalé el paquete tenía algunos errores con lo cual pasaban cosas medias extrañas como ser que el fondo de pantalla desaparecía apenas lo cargaba y los themes se venían completamente rotos. Este es un ejemplo de como se veía.
En el fondo que se ve negro debía aparecer una imagen. Luego de buscar y rebuscar, en el foro en inglés de Arch Linux encontré comentarios de personas que tenían el mismo problema. Con el paso del tiempo llegaron las actualizaciones y los problemas se fueron solucionando. Temporalmente estuve usando Gnome 3, consumiendo más recursos, pero me permitió avanzar.
Uno de los puntos que más me atrajo para usar Arch Linux, era la facilidad para instalar todo tipo de software que pudiera necesitar aún si no estaba en los repositorios. En Debian, si algo no estaba en los repositorio oficiales o el sitio del soft no ofrecía algún paquete compatible con Debian, había que compilarlo y a vece surgían complicaciones. Siempre basado en mi experiencia personal, si existían otros métodos lo desconozco.
AUR (Arch User Repository) es el punto donde podemos descargar los soft necesarios y prepararlos para instalar en Arch Linux en muy pocos pasos, concretamente 4.
1) Buscamos el soft, librería, etc y descargamos el archivo tarball.
2) Descomprimimos y abrimos la consola.
3) Estando en la carpeta donde se descomprimieron los archivos ponemos:
$ makepkg -s
Nos pedirá la clave para utilizar sudo y descargar las dependencias necesarias, esperamos unos minutos que trabaje.
4) Instalar!
# pacman -U {paquete}.pkg.tar.xz
Si se quiere aún más simple, hay un paquete en AUR que todavía no tuve tiempo de probar llamado Yaourt que permite buscar, compilar e instalar los paquetes de AUR directamente desde la consola.
Hasta el momento la experiencia con Arch Linux fue de lo más positiva. Todas las actualizaciones fueron sólidas, ninguna causó choques con otros programas que tuviera instalados o que explotara la parte gráfica cuando se instala la actualización de un driver.
Puede encontrar todos los programas que necesitaba para reemplazar aquellos que usaba en XP o sus versiones en para Arch Linux en AUR.
Acostumbrado a usar aptitude en Debian para instalar pensé que me iba a costar un poco acostumbrarme al gestor de paquetes pacman, nada más lejos de la realidad. Es bastante intuitivo, práctico y rápido.
Mantenerse actualizado en los lenguajes de programación que sabemos o aprender uno nuevo, es algo bastante sencillo hoy en día. Internet está plagado de tutoriales, manuales o artículos que nos permiten avanzar. Solo hace falta tomarse el tiempo y sentarse a leer.
Seguramente nos vamos a encontrar con manuales más didácticos y otros con muchas menos explicaciones. Para alguien que recién empieza a programar o que está aprendiendo un lenguaje nuevo, una buena explicación siempre es bienvenida.
Sin duda la parte más importe a la hora de aprender son los ejemplos prácticos que nos permitan evaluar si comprendimos completamente el nuevo concepto, experimentar con distintos valores y ver como se comporta.
La opción más eficaz que encontré hasta el momento es Codecademy, un buen balance entre teoría, práctica y didáctica. (más…)
En el entorno virtual que utilizo para desarrollar, tengo instalado un Debian Testing que trato de mantener actualizado siempre.
Hasta el momento y desde su instalación, sin ningún problema. Hasta hace una semana aproximadamente cuando en los repositorio de Debian, apareció la actualización a Apache 2.4.
La configuración que utilizo en Apache, no es nada extraña. Por cada proyecto para trabajar configuro un Virtual Host, basado en el nombre del servidor. La ventaja, para mi forma de trabajar, es que cada proyecto tiene su directorio raíz. Si necesito trabajar con rutas absolutas, todo lo que esté en el entorno de desarrollo, va a funcionar sin problema en producción.
Si usan carpetas en lugar de Virtual Host separados, para el caso es indistinto, ya que Apache por defecto configura un Virtual Host que apunta al raíz. Por lo general /var/www
Después de culminar las actualizaciones, abro uno de los virtual host configurados y me encuentro con un error 403. En algún momento este error me dio problemas en el servidor y simplemente se solucionó controlando los permisos de accesos en los archivos y los dueños de los archivos.
En este caso todo estaba perfecto a nivel archivos, el problema vino después de la actualización de Apache. Buscando información me encuentro con que Apache hizo cambios en la forma de controlar el acceso entre la versión 2.2 y la versión 2.4.
De esta forma por cada Virtual Host que se configuran apuntando a carpeta distintas, había que modificar el archivo de configuración o habilitar el módulo: mod_access_compat que brinda compatibilidad con la configuración que se usaba en 2.2
En este caso, modifiqué el archivo de configuración porque realmente no era mucho trabajo. En la vieja configuración para dar acceso a todos los pedidos que llegues se debía ingresar:
Order allow,deny Allow from all
Ahora todo eso se cambiaba por una sola línea que dice:
Require all granted
Simple, trabajoso si hay muchos VH configurados. Pero lo más importante, solucionable el error.
Después de varios meses con el Blog cerrado y aprovechando el día del programador, se abre nuevamente en nuevo dominio.
Este año además incorporé FanPage de Facebook, como para difundirlo un poco más, darle presencia formal en la red social.
Algunos artículos en mente, a los cuales solo les falta tiempo para poder escribirlos y documentar algunos datos, que a corto plazo van a estar publicados.
Por el momento van a encontrarse con todo el mismo contenido que existía en la vieja dirección.
Por ahora el nuevo blog van sin theme custom, cuando el tiempo lo permite crearé algo más personal, falta mucho por hacer. Pero como suelen decir todo comienza con un primer paso.
Sean Bienvenidos y esperemos que algún artículo de los actuales sean de utilidad que es el único fin de este blog.
Luego de considerarlo un tiempo, se viene la mudanza de dominio. Si bien ya venía con poca actividad, el Blog se va a renovar y va a tomar ritmo nuevamente.
Más adelante les comento donde estará el nuevo blog, mientras tanto quedarán las entradas en este lugar.
Creo que no es nada nuevo, es algo que nos pasa a todos, que nuestra memoria es tan limitada que nos olvidamos de muchos detalles sobre el lenguaje de programación que usamos, por más que día a día estemos desarrollando.
Por eso mismo este Post se podría haber llamado «Lo que no se usa se olvida». Pero me pareció más correcto el título actual porque nos va a dar la solución a esa falta de memoria.
Si lo que les voy a comentar, si bien sencillo, nunca viene mal recordarlo, porque como fue en mi caso me había olvidado de ese funcionamiento.
Escenario: Estaba desarrollando un sistema que tenía dos objetivos bien puntuales.
Hasta ahí todo bastante simple. PHP cuenta con muchas extensiones que permiten generar archivos de diversos formatos y me topé con una clase muy buena que permite generar un archivo de Excel donde se puede indicar celda por celda cual es el valor a asignarle y en que formato.
No quería hardcodear los nombres de las celdas, porque si bien no eran tantas, llevaría mucho más tiempo de codificación. Lo que necesitaba lógicamente era un bucle, con las filas de la hoja de cálculo no había problema, el problema se me presentó con las columnas.
Si recuerdan un archivo de Excel, tendrán presente que las filas están numeradas y las columnas se llaman mediante letras. Las posibilidades era armar un array con las columnas que usaría con un índice numérico e ir llamándolas en el orden necesario.
Sin embargo antes de ponerme a hacer esto volví a la documentación de PHP, puntualmente a la parte de Operadores de Incremento y Decremento. Normalmente lo que hacemos con incremento y decremento es esto:
$var=1; $var++ echo $var; //imprime 2
Ahora que pasaría si yo uso el siguiente código:
$var="A"; $var++ echo $var;
¿Qué se imprime en la línea 3?. Esto es lo que había olvidado y fue la solución simple al problema. En la línea 3 se imprimiría «B».
Es decir, por falta de memoria y si no hubiera vuelto a la documentación, hubiera trabajado con un array, más un contador, más el bucle en sí. Cuando bastaba con un simple contador.
Un ejemplo más:
$var="Z"; $var++ echo $var;
¿Qué se imprimiría en la línea 3?. En este caso, llegamos al final de abecedario, la salida seria «AA», y de continuar «AB». Es decir, un simple contador con letras. Lo que nos permitiría seguir el orden de las columnas de la hoja de cálculo perfectamente.
Por eso mismo es que siempre recomiendo trabajar con la documentación abierta y a mano. Si bien muchos IDEs de desarrollo muestran información sobre la función que se está codificando en el momento puede ser de ayuda ver algunos ejemplos que figuran en la documentación.
Lo mismo se aplica cuando desarrollamos sobre una API. ¿Para qué perder tiempo haciendo un Dump de una variable, si la documentación me dice exactamente que tipo de dato y contenido me devuelve una función.
A veces, cuando no hay nada interesante que decir, mejor no decir nada. Más allá de que los tiempos estuvieron bastantes apretados este año, al no tener nada interesante que publicar hizo que el blog quedara frenado.
Pero ahora, encontré y estoy usando actualmente un centro multimedia muy copado.
Básicamente Media Center hace referencia a un software que permite la reproducción de archivos multimedia (Audio, video, imagenes) y como es lógico hoy en día, combinado con los servicios están al alcance de la mano en Internet.
Esta es una definición bastante rústica de un Media Center pero permite tener una idea sobre que estamos hablando.
Existen varias formas de implementarlos, no sólo a nivel Hardware, dispositivos listos para funcionar, sino también a nivel software para implementar en una PC y conectarla por ejemplo a un televisor LED o un monitor grande.
Geexbox, es una distribución de Linux que cuenta actualmente con un Media Center embebido. Puede utilizarse booteando desde CD, dispositivo USB o instalándolo en un Disco Rígido.
Las primeras versiones que probé de GeexBox, hace ya unos años, permitían la reproducción de audio y video utilizando mplayer
En ese momento contaba con una interface bastante sencilla, manejada integramente por teclado, permitía reproducir cómodamente películas en equipos viejos que de otra manera se hacía imposible verlas.
Actualmente GeexBoox, se encuentra utilizando XBMC un software Open Source de Media Center, transformando un equipo medianamente potente en un centro multimedia muy completo. Algunas de las características más importantes
Si sos adepto al cine y te gusta tener tus películas organizadas con toda la información disponible, sin dudas esto te va a gustar.
Teniendo la simple precaución de poner cada película en su carpeta con su título original en Inglés, se descargarán desde Internet, tanto la carátula como Fanart de la película para mostrar cuando se selecciona la película.
Además la biblioteca agrupa las películas que pertenecen a una determinada saga como por ejemplo.
«¿Cómo se llama este actor?». Seguramente a todos nos pasó no poder recordar un nombre de un actor o en que película lo viste recientemente. Por más conocido que sea, se nos escapa. Y seguramente mi querido amigo Cesar se reiría al leer esto recordando cuando quedamos hasta los títulos en una película porque no recordábamos el nombre de Gary Oldman.
Durante la reproducción o simplemente desde la selección de películas podemos acceder a toda su información como duración, resumen, lista de actores. Incluso al seleccionar un actor se verá en la galería toda película o serie que se encuentran en nuestra galería donde trabaja este actor. Permite además la búsqueda sobre internet (automática) y reproducción del trailer de la película.
Toda esta información y catálogo disponibles para películas, series o incluso música. Todo perfectamente ordenado e indexado para hacer más simple la elección.
Vamos con un poco más entonces, si hasta acá les parece que les falta algo. XBMC, y lógicamente GeexBox también, cuentan con varios plugins que permiten por ejemplo buscar desde el mismo media center los subtitulos más adecuados en los sitios más populares para estos fines. Se pueden seleccionar hasta 3 idiomas distintos para la búsqueda y descarga de subtitulos.
Otra opción interesante es acceder a nuestra cuenta de Youtube directamente desde el Media Center para reproducir videos que tengamos en nuestras listas o buscar un video.
Hablemos un poco sobre música. Están con ganas de escuchar música de los 80’s o Jazz pero no saben que poner. GeexBox cuenta con un plugin para buscar y reproducir música transmitida por Icecast, donde encontrarán radios transmitiendo distintos géneros musicales, sin preocuparse por armar una lista de reproducción.
Fuera de la opción del teclado, existen controles remotos que se pueden conectar al media center y controlarlos desde ahí. Con un sensor que se conecta vía USB. Hay que revisar la lista de controles compatibles en la página de GeexBox.
Hay otra opción mucho más fácil de implementar que es utilizar la aplicación de XBMC lanzó para Andorid y para Iphone. Con el celular conectado a nuestro Wifi, podremos controlar todo el media center.
Un complemento simple pero no por eso menos útil. Clima actual y pronóstico.
Más adelante documento y muestro como lo tengo implementado actualmente con una PC un tanto antigua conectada a un Televisor sin entrada VGA. La calidad de video es muy buena a pesar de la baja resolución de los televisores CRT.
Hace poco tiempo, comentaba en la primera parte de este artículo los problemas que tuve al actualizar el Kernel de Linux a su versión 3.0.0.1, donde comentaba que la única solución posible para trabajar en norma N y evitar los Kernel Panic, fue el uso de Ndiswrapper.
Un pequeño problema que no comenté en ese artículo, fue que en algunas oportunidades se hacía complicado poder conectarme a mi wifi. Si bien sólo era cuestión de intentarlo, era un poco molesto perder a veces 5 o 10 minutos intentando conectarme.
Hace unos pocos días Debian Wheezy empezó a mostrar una actualización bastante grande. Revisando la lista de paquetes de estaban disponibles para actualizarse, encontré que Gnome iba a pasar a la versión 3.
Ya había visto en algunos artículos los cambios en Gnome3, me negaba a instalarlo principalmente porque no me terminaba de convencer su interface en general. Por ejemplo la parte de actividades reemplazando al clásico menu.
[caption id="attachment_233" align="aligncenter" width="300" caption="Actividades - Ventanas"]
[/caption]
[caption id="attachment_234" align="aligncenter" width="300" caption="Actividades - Aplicaciones"]
[/caption]
La instalación la hice ayer, así que tuve poco tiempo para recorrerlo. Sin embargo lo que quiero comentar son algunos puntos sobre la instalación y usabilidad en general.
(más…)