Historias, intereses y problemas superados en la vida de un tipo trastornado

Esta es una pequeña guía que realizo para futura referencia y que a su vez puede ser de ayuda a otros novatos  en ruby (como yo) que queremos aprender, también tengo un post para hacer la instalación en Windows.

Paso 1 – Descargar Ruby

Por ahora lo vamos a hacer por medio del aptitude ejecutando siguiente comando como root:

# aptitude install ruby -y

Paso 2 – Descargar las Gemas

Como muchos de ustedes pueden saber las Gemas son librerías que podemos descargar para nuestros desarrollos, entre estas gemas tenemos rails el famoso framework de Ruby, en Debian podemos hacer un #aptitude install rubygems pero a mi me gusta tener las cosas un poco mas actualizadas así que podemos ir aqui y descargamos el formato de nuestra preferencia (yo he descargado el .tgz) .

Y hacemos lo normal, descomprimimos, vamos a esa carpeta e instalamos con los siguientes comandos:

# tar -xvzf rubygems-1.8.5.tgz

# cd rubygems-1.8.5

# ruby setup.rb

Lo cual al finalizar la instalación nos dará este mensaje:

Mensaje en pantalla cuando se ha instalado las gemas

Como pueden ver en la última línea dice que las gemas se han instalado como gem1.8 así que para hacer cualquier trabajo con ese comando no seria gem sino gem1.8, a mi no me gusta, así que vamos a cambiarle el nombre con:

# mv /usr/bin/gem1.8 usr./bin/gem

El comando anterior lo único que hace es cambiar el nombre del link dinámico (o comando) que creo la instalación. Para asegurarnos que estamos en la última versión ejecutamos 2 comandos para actualizar en el sistema y las gemas que vienen preinstaladas:

# gem update –system

# gem update

Ruby on Rails requiere que tengamos instalada la gema sqlite3-ruby, con algunos pasos que realice al momento de hacer esta guía tuve unos errores, los pasos que funcionaron (gracias a heatware.net y a una pregunta de StackOverflow.com) fueron ejecutar:

# apt-get install sqlite3 libsqlite3-dev

# gem install sqlite3

Paso 3 – Instalando los rieles

Sencillo solo ejecutamos:

# gem install rails

Y nos vamos a tomar una taza de café ya que puede tardar un par de minutos.

Paso 4 – Creando el proyecto

Para finalizar y probar que tenemos todo en orden, creamos un proyecto (como usuario normal) y arrancamos el servidor:

$ rails new path\a\tu\proyecto\

$ cd path\a\tu\proyecto\

$ rails server

Al finalizar podemos revisar que funciona abriendo nuestro navegador y entrando a localhost:3000

Pantalla del localhost en el puerto 3000

Esta es una pequeña guía que realizo para futura referencia y que a su vez puede ser de ayuda a otros novatos  en ruby (como yo) que queremos aprender.

Paso 1 – Descargar Ruby

Descargamos desde aqui, yo me he descargado la última versión del .exe

Paso 2 – Descargar las gemas

Como muchos de ustedes pueden saber las Gemas son librerías que podemos descargar para nuestros desarrollos, entre estas gemas tenemos rails el famoso framework de Ruby, por supuesto la versión .exe que hemos descargado en el paso anterior viene con una versión de las gemas pre-instalada, pero da bastantes problemas (al menos en mi caso) así que para curarnos entramos aqui y descargamos el formato de nuestra preferencia (yo he descargado el .zip) .

Y hacemos lo normal, descomprimimos, nos vamos a esa carpeta, y ejecutamos:

C:\ ruby setup.rb

Lo cual al finalizar la instalación nos dará este mensaje:

Para asegurarnos que estamos en la última versión ejecutamos 2 comandos para actualizar en el sistema y las gemas que vienen preinstaladas:

C:\ gem update –system

C:\ gem update

Ruby on Rails requiere que tengamos instalada la gema sqlite3-ruby, con algunos pasos que realice al momento de hacer esta guía tuve unos errores, los pasos que funcionaron fueron ejecutar un par de comandos extra:

C:\ gem install sqlite3 –include-dependencies

C:\gem install sqlite3-ruby –include-dependencies

Paso 3 – Instalando los rieles

Sencillo solo ejecutamos:

C:\ gem install rails –include-dependencies

Y nos vamos a tomar una taza de café ya que puede tardar un par de minutos.

Paso 4 – Creando el proyecto

Para finalizar y probar que tenemos todo en orden, creamos un proyecto y arrancamos el servidor:

C:\ rails new path\a\tu\proyecto\

C:\ cd path\a\tu\proyecto\

C:\ rails server

Al finalizar podemos revisar que funciona abriendo nuestro navegador y entrando a localhost:3000

Pantalla del localhost en el puerto 3000

Leyendo mis RSS me he topado en Bitelia con la noticia de un nuevo virus a gran escala para los dispositivos con Android (el SO para dispositivos móviles que cada vez gana mas terreno en el mercado), lo que declaran las fuentes es que usan vulnerabilidades propias de la versión 2.2 y anteriores, y que solo ha afectado a dispositivos que descargan aplicaciones distintas a las que podemos encontrar en el market.

Desde mi punto de vista, la fragmentación de Android es la fuente de todos sus males, gracias a Dios en el último Google I/O el gigante de Internet realizó un pacto con los principales fabricantes de teléfonos móviles en el que darán soporte y actualizaciones a todos sus teléfonos por al menos 18 meses, aunque nos encontramos con otros problemas. En mi caso poseo un Motorola Milestone que vino con la versión 2.0 y por medio de un update podía actualizarlo al 2.1, el problema fue que la versión 2.1 que había liberado Motorola y autorizado Movilnet (operadora telefónica en Venezuela) venia con un bug en el cual la música comenzaba a reproducirse cuando sacabas el jack de los audífonos y aunque no era gran cosa si era bastante molesto, dicho bug fue solventado por Motorola días mas tarde pero Movilnet jamás lo autorizo por lo que todos los dueños que actualizaron sus dispositivos por medios oficiales tuvieron ese problema hasta que hace unos meses fue lanzada la versión 2.2. Que relación tiene esto? Como explican en el artículo de El Androide Libre Motorola, Samgung y LG pueden sacar todas las actualizaciones que quieran, pero si no son aprobadas por las operadoras estas jamás llegaran a manos de los consumidores.

Y segundo, si decides salirte de los caminos seguros para tu Windows, Mac, IOS o Android estas a tu riesgo, la IStore y el Market estan ahí por una razón y por mas bien que mal tienen sus restricciones y estándares para dar lo mejor de cada uno, por lo tanto debes saber que si instalas algo por fuera de eso estas a tu riesgo.

 

Imagen: http://www.fotosdigitalesgratis.com/

Link directo al protal de schema.org

Portal Schema.org

Para los que no están familiarizados con el concepto SEO (Search Engine Optimization que se traduce a Optimización para Motores de Búsqueda) esto es el utilizar ciertas etiquetas de HTML y organizar el contenido de tu portal web de cierta forma que los spiders de Google o Bing puedan comprender mas fácilmente el contenido de tus páginas y así lograr una de las primeras posiciones en los resultados de búsqueda.

Existen muchas personas y compañías que claman tener la respuesta para que tu portal sea exitoso en la web usando los secretos oscuros del SEO (desde mi punto de vista a veces parece que hablan de los secretos encontrados en el libro de Merlín), en mi humilde opinión solo basta con tener una buena estructura en el formato de tu documento HTML, usar URLs enriquesidos (por  ejemplo, www.tudominio.com/fecha/algunacategoria/titulo-de-tu-articulo en vez de www.tudominio.com/par?id=1256) y tratar de tener todo el contenido original que puedas por eso de que robar contenido de la web y publicarlo sin referencia al autor original no es ético, es de mal gusto y los motores de búsqueda lo castigan (si es contigo www.lapatilla.com).

En fin, recientemente leyendo este excelente artículo de Bitelia donde hablan de una alianza entre los motores de búsqueda para crear Schema.org un portal donde Google, Bing y Yahoo se pusieron de acuerdo para tener un esquema estandarizado y que los desarrolladores de sitios web podamos saber exactamente que es lo que debemos hacer para que estemos en los primeros puestos de un resultado de búsqueda, ya lo demás queda en las manos de los editores y creadores de contenido, así que los invito a dejar de hacer “páginas web” como hay muchos aquí en Venezuela y nos comprometamos todos a crear una web estandarizada, funcional y usable por todos los usuarios de la gran red.

Navegadores en Linux

Recientemente me vi en la necesidad de tener poner a Chrome como navegador por defecto en mi distro de Linux y buscando en la web si con este comando (el cual debe ser ejecutado como superusuario -su o sudo según el caso-):

update-alternatives –config x-www-browser

Como ven deberia aparecerles una pantalla en la cual deben escojer el número del navegador que desean tener por defecto.

Flash 64 bit en Linux

Si usas Linux en un computador de 64 bit seguramente has o tienes problemas al reproducir algún vídeo en Facebook o Youtube, o tal vez al tratar de acceder algún sitio con un contenido flash.

Bueno, primero que todo nos vamos a descargar la librería desde el sitio de adobe, en este caso descargaremos el Flash Square, donde Square no es mas que el nombre del proyecto para habilitar flash desde ambientes 64 bit.

Al descargarlo, descomprimimos el archivo y lo copiamos a (como root) a /usr/lib64/mozilla/plugins/. Luego ejecutamos la siguiente sentencia en una consola

ln -fs /usr/lib64/mozilla/plugins/libflashplayer.so /usr/lib/mozilla/plugins/

Lo que acabamos de hacer no es mas que un link dinámico para copiar la librería de flash en la carpeta “general” de plugins, no se realmente por que es en los directorios de mozilla, pero por experiencia es la carpeta estándar para hacerlo, les puedo decir que esto funciona para Iceweasel, Firefox y Chrome.

You are Great!

Un gran vídeo motivación, espero les funcione y les alegre un poco el día.

Las personas que me conocen saben que estoy trabajando en las oficinas de Movistar Venezuela, recientemente han montado una feria de lentes para facilitarnos a las personas que tenemos fallas visuales, seguro muy pocas personas se han dado cuenta del cartel, espero algunos de ustedes se rían un poco, o al menos se les salga un LOL.

Si no entendiste te dejo estos links:

  1. OMG
  2. WTF
  3. STFU
  4. URANOOB
  5. LMAO (no se ve bien pero ahí esta)

Presentación de un task-killerLlevo aproximadamente 3 meses con un Motorola Milestone que funciona con Android y una de las primeras cosas que instalé fue un task-killer que pensaba me iba a ayudar liberando memoria a gusto,  con el paso del tiempo he leído bastante material sobre Android mas que todo sobre como hacer Root del equipo e instalarle una rom distinta a la oficial  y otras cosas un poco avanzadas, en fin, entre las cosas que leí me encontré con artículos de Android Central como este donde te pedían desintalar los task-killer, pero no entendí muy bien el porque por lo que decidí seguir con mi app instalada y hoy leyendo este artículo de El Android Libre sobre por que no usar los “mata tareas” entendí la razón.

En ese artículo dan una mejor explicación sobre porque no usarlas y la respuesta es por que no es necesaria, Android es un sistema multitareas que corre en dispositivos con pocos recursos por lo que se ve en la necesidad de manejar las aplicaciones y procesos creando una sensación de que “todo esta corriendo todo el tiempo” para ofrecer al usuario una mejor experiencia, como lo explica Tim Bray en un post sobre el diseño de multitareas en Android:

Los equipos móviles tienen limitaciones técnicas y requerimientos de la experiencia de usuario que no están presentes en aplicaciones web o de escritorio, he aquí 4 limitaciones en las que estuvimos trabajando mientras diseñamos el multitareas de Android:

  1. No queríamos que los usuarios cerraran las aplicaciones cuando terminaran con ellas, este uso no funciona en un ambiente móvil (en equipos celulares), donde el uso tiene a un breve contacto repetitivo con varias aplicaciones a lo largo del día.
  2. Los equipos móviles no se pueden dar el lujo de tener una partición swap (partición de intercambio de memoría para lo momentos en que las terminales no poseen memria suficiente), por lo que tienen limites fijos para el manejo de memoria. Robert Love tiene un interesante artículo en este tema.
  3. En cambio de aplicaciones es extremadamente critico, apuntamos a menos de 1 segundo para abrir una nueva aplicación. Esto es especialmente importante cuando el usuario cambia de una aplicación a otra, como po ejemplo cuando pasa a ver un mensaje de texto cuando esta viendo un video para luego volver a ver el video. Un tiempo de espera notable hará rápidamente que los usuarios empiecen a odiarte.
  4. Las API disponibles deben ser suficiente para escribir programas incorporadas con las aplicaciones de Google, parte de nuestra filosofía de que “todas las aplicaciones son creadas igualmente”. Esto significa que escuchar música, sincronizar información, navegar con GPS y descargar una aplicación debe estar implementado con la misma API que es usada otros desarrolladores.

En pocas palabras ya que no queremos que el usuario espere mucho para presentarle la aplicación o contenido que quiere se dejan procesos corriendo en segundo plano cosa que llevó a muchos a confundir la sensación de que “todo está corriendo todo el tiempo” con una realidad, por lo que el nacimiento de los task-killers se hizo necesaria… Pero examinando el ciclo de vida de las aplicaciones y procesos podemos ver la lógica detrás de la administración de tareas en el SO.

Android posee una jerarquía para saber en que orden debe “matar” algún proceso, esta jerarquía posee 5 niveles que trataré de resumir a continuación:

  1. Proceso en primer plano: son aquellos que son requeridos por lo que el usuario esta haciendo. Se considera un proceso en primer plano aquella aplicación con la que el usuario esta interactuando directamente, o el proceso que presta un servicio necesario para lo que el usuario está haciendo o es un servicio de transmisión como por ejemplo el que busca en Twitter si tenemos algo nuevo, o el que recibe información de la bandeja de correo.
  2. Procesos visibles: se refiere a los procesos que no tienen un proceso corriendo en primer plano pero que afectan lo que el usuario ve. Estos procesos son extremadamente importantes para la experiencia del usuarios y no serán terminados a menos que el espacio en memoria sea requerido para mantener las aplicaciones en primer plano funcionando.
  3. Proceso de servicio: es aquel que corre un servicio que ha sido ejecutado invocando el método startService() y que no aplica a las categorías anteriores. Aunque estos procesos no están “atados” a algo que el usuario no ve generalmente estan haciendo algo importante para el usuario como por ejemplo reproduciendo un archivo mp3 en segundo plano.
  4. Proceso en segundo plano: es aquel que detiene una actividad que el usuario no esta viendo y cuyo método onStop() ha sido invocado, estas aplicaciones no tienen impacto directo a lo que el usuario percibe por lo que pueden ser matados por el sistema en caso de necesitar mas recursos para las categorías anteriores, pero como existen muchas actividades en segundo plano se guardan en la lista LRU (Least Recently Used o al español menos usadas recientemente) que es usada para dos cosas, la primera para guardar el estado que tenía la aplicación cuando fue cerrada y para que cuando el usuario la vuelva a necesitar no note que la aplicación fue cerrada y segundo para tener un orden al momento de matar los procesos ya que la última aplicación usada será la última en ser terminada.
  5. Por último un proceso vacío: es aquel proceso que no posee algún componente activo o requerido por el sistema, estas aplicaciones son mantenidas en cache para optimizar la arrancada al momento de abrir el programa.

Esta jerarquía es fija y heredada al mayor grado que puede alcanzar un programa de acuerdo a los componentes actualmente activos en el sistema, es decir, si un proceso A aloja un servicio para una actividad B, por lo tanto el proceso A será clasificado como un proceso visible.

Hace poco actualice mi versión de flash, y pues al cabo de unos dias al tratar de entrar en youtube pude notar que no podia pausar ciertos videos o cerrar la ventana de propagandas con el puntero del raton, por lo que decidí lanzarme en buscar una solución al cabo de unos cuantos clicks dí con la solución en Help for Linux leí el post y todo funcionó, así que acá les paso a español los pasos que deben hacer para solucionarlo.

  1. Yo uso gnome, asi que use las teclas alt+F2 y escribí gnome-terminal para abrir la consola.
  2. Escribes el comando sudo gedit /usr/lib/nspluginwrapper/i386/linux/npviewer.
  3. Se deberia ver algo así:

    #!/bin/sh
    TARGET_OS=linux
    TARGET_ARCH=i386
    . /usr/lib/nspluginwrapper/noarch/npviewer

  4. Y antes de la última linea escribes lo siguiente export GDK_NATIVE_WINDOWS=1 reseteas tu navegador o la aplicacion que estes usando con flash y listo
Seguir

Get every new post delivered to your Inbox.