Lunes 31 de agosto de 2015

Jesus Palencia

¡¡¡Feliz Día de Bloguero (BlogDay)!!!

En el año 2006, se escogió la fecha del 31 de agosto, para celebrar en toda la red, el llamado “día internacional del Blog”. La idea nació de un bloguero israelí llamado Nir Ofir, que propuso que en esta fecha, los blogueros enviaran cinco invitaciones de cinco blogs de diferentes temáticas a cinco diferentes contactos, para que así los internautas dieran difusión a blogs que seguramente otras personas desconocían, y que eventualmente les pudiera resultar interesantes.


Archivado en: Geekstuff Tagged: blog, festividades

Viernes 28 de agosto de 2015

Jesus Palencia

Como cambiar de navegador en Windows 10: MiniserieFirefox Ep.9 Predeterminado

Aquí te enseñamos qué hacer luego de que tu explorador de Internet (diferente a Microsoft Edge) te pregunte si quieres que sea el navegador por defecto. Ahora hay más pasos que debes seguir para quitar la molesta advertencia.

Enlace al vídeo en Youtube

Visto en Mozilla Perú

Anteriormente:


Archivado en: Mozilla Tagged: firefox, miniserie, mozillaperu, predeterminado, video

Miércoles 26 de agosto de 2015

Jesus Palencia

¡¡¡Feliz cumpleaños Linux!!!

Un día como hoy, en 1991 se anuncio al mundo el nacimiento del núcleo Linux.

Mas información:


Archivado en: General Tagged: aniversario, festividades, linux

Lunes 24 de agosto de 2015

David Moreno

David Moreno
dm's blog

Thanks Debian

I sent this email to debian-private a few days ago, on the 10th anniversary of my Debian account creation:

Date: Fri, 14 Aug 2015 19:37:20 +0200
From: David Moreno 
To: debian-private@lists.debian.org
Subject: Retiring from Debian
User-Agent: Mutt/1.5.23 (2014-03-12)

[-- PGP output follows (current time: Sun 23 Aug 2015 06:18:36 PM CEST) --]
gpg: Signature made Fri 14 Aug 2015 07:37:20 PM CEST using RSA key ID 4DADEC2F
gpg: Good signature from "David Moreno "
gpg:                 aka "David Moreno "
gpg:                 aka "David Moreno (1984-08-08) "
[-- End of PGP output --]

[-- The following data is signed --]

Hi,

Ten years ago today (2005-08-14) my account was created:

https://nm.debian.org/public/person/damog

Today, I don't feel like Debian represents me and neither do I represent the
project anymore.

I had tried over the last couple of years to retake my involvement but lack of
motivation and time always got on the way, so the right thing to do for me is
to officially retire and gtfo.

I certainly learned a bunch from dozens of Debian people over these many years,
and I'm nothing but grateful with all of them; I will for sure carry the project
close to my heart — as I carry it with the Debian swirl I still have tattooed
on my back ;)

http://damog.net/blog/2005/06/29/debian-tattoo/

I have three packages left that have not been updated in forever and you can
consider orphaned now: gcolor2, libperl6-say-perl and libxml-treepp-perl.

With all best wishes,
David Moreno.
http://damog.net/


[-- End of signed data --]

I received a couple of questions about my decision here. I basically don’t feel like Debian represents my interests and neither do I represent the project – this doesn’t mean I don’t believe in free software, to the contrary. I think some of the best software advancements we’ve made as society are thanks to it. I don’t necessarily believe on how the project has evolved itself, whether that has been the right way, to regain relevancy and dominance, and if it’s remained primarily a way to feed dogmatism versus pragmatism. This is the perfect example of a tragic consequence. I was very happy to learn that the current Debian Conference being held in Germany got the highest attendance ever, hopefully that can be utilized in a significant and useful way.

Regardless, my contributions to Debian were never noteworthy so it’s also not that big of a deal. I just need to close cycles myself and move forward, and the ten year anniversary looked like a significant mark for that.

Poke me in case you wanna discuss some more. I’ll always be happy to. Specially over beer :)

Peace.

Domingo 23 de agosto de 2015

Blog migrado a jekyll

Finalmente he decidido migrar mi blog de Wordpress a jekyll. Siendo este el primer post que escribo usando markdown. El proceso de migración no fue para nada complicado, y de hecho procedo a describir brevemente. Antes de hacerlo, algunas de la razones que me hicieron decantar a usar jekyll para el blog son las siguientes:

Luis A. Martínez F.

Luis A. Martínez F.
Hunting Bears

Usando WhatsApp desde la comodidad de tu escritorio con Pidgin

Últimamente estoy muy paranóico. La última de las paranoias que adquirí es tratar de utilizar una sóla aplicación de mensajería instantánea para todos los servicios que utilizo regularmente. Facebook, Google Hangouts, WhatsApp, IRC, Y ahora Telegram, son algunas de las redes sociales con las que me comunico. Me resulta realmente molesto tener que iniciar y revisar una aplicación por cada una, y además tener que ocupar memoria RAM adicional.

Es por ello que decidí centralizar las aplicaciones a través de Pidgin. Si bien Pidgin ofrece soporte nativo a una gran cantidad de redes, aún le falta compatibilidad con Whatsapp. Sin embargo, a través de plugins, otras personas han podido adaptar los protocolos de comunicación para hacerlos funcionar con Pidgin.

WhatsApp, Yowsup y Pidgin

WhatsApp es una aplicación de mensajería desarrollada exclusivamente para teléfonos inteligentes. Permite el envío de mensajes de texto, imágenes, video a través de sus usuarios. La identificación de cada usuario es su número de teléfono móvil. Basta con saber el número de alguien para tenerlo en la lista de contactos.

El procedimiento que voy a describir acá requiere que poseas una cuenta en WhatsApp. Oficialmente la única forma de abrir una cuenta en WhatsApp es a través de la aplicación en tu teléfono inteligente; sin embargo, existen alternativas que permiten hacerlo desde tu computadora, utilizando una conexión a internet.

Lo primero que debes hacer es seguir la guía para obtener tus credenciales de whatsapp, que son tu número de teléfono con código de país y la cadena de autenticación (password). Dicha guía utiliza Yowsup, una aplicación hecha en python diseñada para comunicarse directamente con los servidores de WhatsApp.

Una vez obtenidas las credenciales, debemos compilar e instalar el plugin para pidgin llamado whatsapp-purple. Para ello vamos a instalar las dependencias de compilación. En una distribución derivada de debian podemos hacer así (con permisos de root):

sudo apt-get install git make g++ sudo pidgin python-dateutil python-argparse libglib2.0.0 libglib2.0-dev libpurple-dev

Luego debemos clonar el repositorio del plugin con el siguiente comando (sin permisos de root):

git clone https://github.com/davidgfnet/whatsapp-purple

Seguidamente, entramos en la carpeta recién clonada y compilamos el plugin (sin permisos de root):

make

Y luego (con permisos de root), instalamos el plugin:

sudo make install

El plugin está instalado, ahora debemos configurarlo. Abrimos pidgin y vamos al menú Cuentas > Gestionar cuentas; pulsamos sobre el botón "Añadir". Allí rellenaremos los siguientes datos:

  • Protocolo: WhatsApp.
  • Nombre de Usuario: Número de teléfono con código de país.
  • Contraseña: Contraseña obtenida con Yowsup.

Listo, ya tenemos nuestro plugin configurado. Ahora podemos agregar contactos introduciendo sus números de teléfono en el cuadro de diálogo Buddies > Añadir un amigo ....

Tus grupos existentes se sincronizarán con tu lista de contactos, más no lo harán tus contactos individuales, debes agregarlos manualmente. Puedes enviar fotos y archivos a través del menú Conversación > Enviar archivo ... de la ventana de conversación.

Si deseas visualizar los emojis nativos de WhatsApp, debes instalar un tema de íconos con emojis unicode como Twitter for pidgin.

Algunas personas reportan problemas para recibir mensajes, por lo que recomiendo realizar el siguiente paso adicional:

Se debe cambiar la configuración para que el campo "Resource" diga como aparezca en la imagen. Debes ir a Cuentas > Gestionar Cuentas > (Seleccionar la cuenta de WhatsApp) > Modificar, y en la pestaña "Avanzadas", poner S 40-2.12.11 en el campo "Resource". Cierra y vuelve a abrir Pidgin.

Luis A. Martínez F.

Luis A. Martínez F.
Hunting Bears

Utilizando Yowsup para obtener las credenciales de tu usuario en WhatsApp

Para algunas actividades particulares, a veces es necesario husmear un poco en la base de datos de WhatsApp para obtener los datos de acceso de nuestro usuario en la plataforma. Normalmente esto es un proceso transparente para el usuario común porque la aplicación oficial de tu teléfono inteligente se encarga de manejar la autenticación sin necesidad de que tu introduzcas un usuario o contraseña. Sin embargo, existen otras formas de conectarse a los servidores de WhatsApp sin necesidad de utilizar la aplicación oficial, y para esto necesitamos los datos de acceso de nuestro usuario.

Para obtener estos datos, utilizaremos una pequeña aplicación en Python llamada Yowsup.

Yowsup

El protocolo de WhatsApp es una versión modificada del protocolo XMPP que es de código abierto. Aunque los autores de WhatsApp han hecho su versión de codigo cerrado, el autor de Yowsup ha sido lo suficiente hábil como para hacer ingeniería inversa al protocolo y escribir esta fantástica librería.

Yowsup funciona como un cliente de la API pública de whatsapp, permitiendo que registremos nuestro número de teléfono en la base de datos de WhatsApp, y así recibir la cadena de autenticación.

La librería es totalmente de código abierto y la tenemos disponible en Github. Yowsup se puede instalar en cualquier distribución GNU/Linux (Ubuntu, Linux Mint, Elementary, Canaima, etc) a través del sistema de versionamiento git.

Primero, abriremos una terminal de usuario y clonaremos el repositorio con git de la siguiente forma:

git clone https://github.com/tgalal/yowsup

Para el siguiente comando, necesitaremos tener nuestro teléfono a mano, ya que recibiremos un mensaje de texto con el código de validación. Nos meteremos dentro de la carpeta y ejecutaremos:

./yowsup-cli registration --phone [PHONE] --cc [CC] --requestcode sms

[PHONE] debe sustituirse por el número de teléfono incluyendo el código de país y [CC] es el código de país. Seguidamente recibiremos un mensaje de texto en nuestro teléfono conteniendo el código de verificación para el registro, guardamos ese número. Luego ejecutaremos el siguiente comando:

./yowsup-cli registration --phone [PHONE] --cc [CC] --register [CODE]

[CODE] es el código que recibimos por mensaje de texto. Al ejecutar el comando, recibiremos un bloque de información como el que sigue:

status: ok
kind: free
pw: [PASSWORD]
price: US$0.99
price_expiration: 1443389834
currency: USD
cost: 0.99
expiration: 1472221910
login: [PHONE]
type: existing

El campo pw contiene la cadena de nuetra contraseña encriptada. Si quieres averiguar que aplicaciones pueden autenticarse usando estas credenciales, lee el artículo que habla sobre usar WhatsApp en Pidgin.

Miércoles 19 de agosto de 2015

¿Sabias Que? como montar particiones de imagenes de disco

¿Qué son imágenes de disco?

Las imágenes de disco son copias exactas de un disco realizadas con el comando disk dump (dd), con esto podemos tener copias exactas de discos duros, máquinas virtuales, etc.

Hacerlas es bastante sencillo, simplemente indicas:

dd if=/dev/sda of=/media/respaldo/sda.img bs=1M conv=noerror

dónde:

  • if= apunta al dispositivo que vamos a copiar (mi disco sda)
  • of= a un disco de respaldo dónde se copiará el disco en un archivo (sda.img)
  • bs= hacer las lecturas en bloques de 1megabyte (1M)

Pero, ¿qué pasa si simplemente necesitamos un archivo de esa imagen de disco?.

Allí es cuando utilizas losetup.

Usando losetup

losetup es un comando para montar casi cualquier cosa como un dispositivo loopback (loop), losetup tiene un atributo especial dedicado para dispositivos de imagen con múltiples particiones.

Ejecutan:

losetup -P /dev/loop0 /media/jesuslara/sda.img

Y losetup calculará los offsets (inicio y fin) de cada partición y creará un dispositivo loop para cada partición dentro de sda.img, así:

loop0    loop0p1  loop0p2  loop0p3

Y ya simplemente para montar cada partición, ejecutan el “mount” contra la partición especifica:

mount -t ext4 /dev/loop0p1 /media/disk

Sin tener que calcular manualmente offsets ni nada por el estilo, ¿sencillo, no?

 

The post ¿Sabias Que? como montar particiones de imagenes de disco appeared first on Phenobarbital con Soda.

Martes 18 de agosto de 2015

Luis A. Martínez F.

Luis A. Martínez F.
Hunting Bears

Algunas reflexiones acerca del manejo de proyectos de Software Libre

Durante los últimos días he estado dándole vueltas al asunto de la organización para el desarrollo de aplicaciones en Software Libre. He estado reflexionando y hablando con varias personas de la comunidad y sus experiencias en el desarrollo colaborativo de aplicaciones que han tenido éxito, es decir, que han logrado los objetivos que se trazaron. Destaca una conversación con Wil Álvarez (creador de Turpial) y la forma en como él y sus colaboradores han llevado un esquema de desarrollo sano y dinámico durante los últimos años.

Manejar un proyecto colaborativo no es una tarea fácil. Si arrugaste la cara cuando leíste esa última frase, piénsalo bien porque es probable que lo estés haciendo mal.

Puedo resumir la información que recopilé de la siguiente manera:

Los canales de comunicación deben ser prácticos, directos y claramente identificados. Lo ideal es tener una lista de correo para desarrollo y soporte dedicada a la aplicación. Si sientes que una determinada aplicación "no merece" tener una lista aparte, entonces esa aplicación puede que esté gastando una valiosísima porción de tu tiempo y merezca desaparecer.

Debe existir una documentación básica antes de hacer un llamado público a colaboración. La documentación debe describir perfectamente:

  • ¿En qué consiste la aplicación? ¿Para qué la vamos a hacer?
  • ¿Qué lenguajes y herramientas utilizaremos inicialmente (versiones, paquetes, etc)? (pueden cambiar con el tiempo)
  • ¿Cuál es el proceso para arrancar la aplicación?
  • ¿Cuál es el procedimiento para armar el ambiente en donde puedo empezar a desarrollar para la aplicación?
  • ¿Cómo se hace para comunicarse con los desarrolladores/colaboradores?
  • ¿Cómo se hace para modificar una parte del código? ¿A dónde lo mando? ¿Quién lo recibe?
  • ¿Cómo sé si aceptarán mi aporte? ¿Dónde lo veo?
  • ¿Cómo es el estilo de programación (code style) de los diferentes lenguajes que se utilizarán?
  • Si se incluye un diagrama de objetos y un diagrama conceptual es mucho mejor.

Según la experiencia de muchos, la gente no le gusta participar en las fases de diseño de la aplicación, sino más adelante donde ya existen tareas concretas y granulares que se puedan seleccionar.

El código y todos los procedimientos (toma de decisiones, aceptación de contribuciones, lanzamiento de versiones, etc) deben ser públicos. Utilizar sistemas de versionamiento es ideal.

Debe existir (al menos) un arquitecto de software por cada aplicación. Generalmente este rol lo asumen las personas que diseñaron la aplicación y consiste en hacer la gestión de la construcción de la aplicación. Estas personas:

  • Abren los tickets para las nuevas funcionalidades de acuerdo al diagrama conceptual.
  • Asignan los tickets a las personas que se han ofrecido a colaborar en determinadas funcionalidades.
  • Cierran los tickets de acuerdo a las funcionalidades completadas.
  • Aceptan peticiones para la fusión de código (pull/merge requests) de los diferentes colaboradores, luego de haber hecho una revisión del estilo de programación y las funcionalidades agregadas o errores corregidos.
  • Atienden los casos de desarrollo o soporte que se presenten en la lista de la aplicación.
  • No pueden descuidar la aplicación mientras se forma la comunidad. Deben formar parte activa en los medios de comunicación.

Por ahora, hasta aquí el reporte. Más adelante estaré haciendo otros aportes.

Domingo 09 de agosto de 2015

David Moreno

David Moreno
dm's blog

0x1F

✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌

I’ve now turned 0x1F.

Jueves 06 de agosto de 2015

Jorge Ortega

Jorge Ortega
Joenco

Como agregar atajos de teclado de forma gráfica en el escritorio de Gnome-shell

Aunque ya escribí un post sobre como agregar atajos de teclado utilizando un script en Gnome-shell, en esta oportunidad voy a explicar como hacerlo gráficamente, presta atención y te darás cuenta que es muy sencillo.

 

Lo primero que debemos hacer es abrir “Configuración del sistema”, así que presionamos las teclas alternar+F1 y escribimos “confi” (sin las comillas, no es necesario escribir toda la palabra configuración, ya que con las primeras lo encontramos), revisamos con la teclas de dirección en caso d que aparezca otra opción como por ejemplo “Configuración avanzada”, cuando hayamos conseguido la opción que buscamos (recuerda “Configuración del sistema”), presionamos la tecla enter y se nos abrirá una ventana.

 

En segundo lugar en la ventana que tenemos abierta, pulsamos la tecla tabular, buscamos con las teclas de dirección la opción “Teclado” y presionamos enter, eso nos mostrara otra ventana, ahora con la tecla tabular nos vamos a la pestaña “Escritura”, luego con la tecla de dirección izquierda o derecha nos vamos a la pestaña “Atajos”, aquí damos un tabular y nos mostrara una lista de acciones de accesibilidad a las que podemos agregar un atajo de teclado.

 

Por último para agregar un atajo a una acción hacemos los siguiente:
1. Con las teclas de dirección arriba y abajo leemos las acciones.
2. Cuando consigamos la acción a la que deseamos colocar el atajo, nos movemos a la derecha con la tecla de dirección.
3. Escucharemos “Desactivado”, solo pulsamos enter.
4. Presionamos las teclas con las que deseamos ejecutar la acción, es decir el atajo de teclado.
Veamos un ejemplo de como colocar el atajo de teclado para activar y desactivar el lector de pantalla.
1. Con las teclas de dirección busco la opción “Activar o desactivar el lector de pantalla”
2. Me muevo a la derecha con la tecla de dirección.
3. Escucho “Desactivado”, así que presiono la tecla enter.
4. Pulso las teclas control+alternar+o (es el atajo que quiero para activar o desactivar el orca)
5. Listo, ya tengo el atajo de teclado asignado.

 

Para otras secciones como capturas de pantalla, lanzadores, navegación, sistema, entre otras solo le damos al tabulador, revisamos con las teclas de dirección arriba y abajo buscando la opción que queremos y con mayúscula+tabular (shift+tab), nos regresamos a la lista de las acciones para agregar el atajo en la acción que estamos buscando, realizando los pasos anteriormente explicados.

 

Si lo que queremos es agregar un atajo personalizado, con el tabular buscamos el botón “Añadir atajo”, nos saldrá una ventana solicitando el nombre de la aplicación y el comando con el que se ejecuta (el comando es una instrucción, no lo confundas con el atajo de teclado), pulso “Aplicar” después de rellenar los datos, luego con la tecla tabular voy a la sección y busco la opción “Combinación personalizada” y en la lista de las acciones agrego el atajo.

Por ejemplo si deseo agregar el atajo personalizado para abrir el editor de documentos (libreoffice writer), lo haría de la siguiente forma:
Busco con la tecla tabular el botón “Añadir atajo” y presiono enter.
Escribo en el nombre: Editor de documentos (puedes escribir lo que quieras en este campo) y en el comando: lowriter (aquí va la instrucción, debes conocer como se abre, no es cualquier texto).
Con la tecla tabular busco el botón “Aplicar” y presiono enter.
Ahora con mayúscula+tabular me voy a la lista de las secciones y busco con las teclas de dirección arriba/abajo la opción “Combinación personalizada”.
Presiono otra vez mayúscula+tabular y busco con las teclas de dirección la acción que acabo d agregar “Editor de documentos”
Agrego el atajo correspondiente como se explicó anteriormente.
Listo, ya tengo un atajo personalizado para abrir el writer.

 

Eso es lo que se hace para agregar cualquier atajo de teclado , para eliminar una combinación solo presionamos enter en en el campo del atajo y pulsamos la tecla retroceso (backspace).

 

Bueno eso es todo, aunque algo extenso, pienso que valió la pena, espero les sea de utilidad, saludos y nos leemos en otro post!!


Héctor Colina

Paquete vhistory en español para latex

Latex es una de las herramientas más poderosas que existen para la generación de documentación, así mismo, la cantidad de paquetes adicionales que pueden ser agregados con simples comandos aumentan su flexibilidad para poder realizar casi que cualquier opción que al usuario se le ocurra.

Hace poco se me presentó una duda mientras elaboraba un manual en latex ¿existe alguna forma de colocar el histórico del documento de forma semiautomatizada? En tanto mi documento no está bajo un sistema de versionado como git o svn, no podía acceder a un git log e incluirlo en el cuerpo del documento usando, por ejemplo, latex-git log [1] o latex-diff [2]. Así mismo, semiuatomatizado para mí es que en tanto soy el único autor conozco qué cambios he introducido en cada versión.

Buscando encontré el paquete vhistory el cual cumplía con todos mis requerimientos excepto uno: los mensajes que colocaba estaban en inglés, francés y alemán lo cual me animó a realizar la traducción del mismo al español, cosa que no me tomó más de 10 minutos entre ubicar el archivo .sty, entender el funcionamiento del mismo y colocar los nuevos bloques de mensaje; como resultado obtuve mi control de histórico en el documento con mensajes en español.

El archivo lo pueden conseguir en https://github.com/e1th0r/translations junto con las instrucciones corespondientes a su uso.

Espero les sea útil como lo fue para mí.

[1] https://www.ctan.org/pkg/latex-git-log?lang=en

[2] http://www.ctan.org/tex-archive/support/latexdiff/

Miércoles 05 de agosto de 2015

Valencia Software Libre: VaSlibre en IX Aniversario 2015 Ubuntu Venezuela -Valencia

Martes 04 de agosto de 2015

ubuntu-ve: IX Aniversario 2015 -Valencia

Lunes 03 de agosto de 2015

Jorge Ortega

Jorge Ortega
Joenco

Lentitud en firefox, iceweasel y cunaguaro con el Lector de pantalla Orca

Muchas veces algunos compañeros me han preguntado que “porque el navegador web esta tan lento”, “que porque el lector de pantalla se queda leyendo y no se detiene”; esto suele suceder en Canaima4.0, canaima4.1 y debian7 debido a la actualización del navegador web cuando estamos usando el lector de pantalla y magnificador orca. Revisemos como solucionar este inconveniente, hay 2 formas que se pueden implementar, sigue leyendo y sabrás cuales son!!!

Primera forma:
Descarga una versión de firefox menor o igual a la 24 y descomprime.
Se crea una carpeta llamada “firefox”.
Entra a esa carpeta.
Busca un archivo que se llama “firefox” y pulsa enter.
Busca en las preferencias del navegador> avanzado > actualizaciones y selecciona la opción que dice “No comprobar actualizaciones” (son radios de selección, esto debes hacerlo solo una vez).
Esto debes hacerlo cada vez que quieras utilizar el navegador web.

Segunda forma:
Descarga una versión de firefox menor o igual a la 24 y descomprime.
Se crea una carpeta llamada “firefox”.
Abre las configuraciones del sistema y busca la oćión teclado.
Agrega un atajo de teclado para abrir el navegador colocando lo siguiente:
Nombre: Firefox
comando: ./firefox/firefox
luego colocas el atajo con el que deseas abrir el navegador web.
Abre el navegador web con el atajo de teclado asignado.
Busca en las preferencias del navegador> avanzado > actualizaciones y selecciona la opción que dice “No comprobar actualizaciones” (son radios de selección, esto debes hacerlo solo una vez).
Listo, ya puedes abrir el navegador web con el atajo de teclado asignado.

En la siguiente página puedes descargar la versión en español de firefox24: http://www.muycomputer.com/2013/09/18/firefox-24-descarga-gratis

Yo lo hago de la segunda forma, es mucho mas facil pero queda a criterio de cada quien que hacer, saludos y nos encontramos en otro post!!!

Nota: No borres nunca la carpeta de firefox.


Sábado 25 de julio de 2015

Silvio Perez: Improving my check fs remoteTOOL
Silvio Perez: Tool for check connectivity

Viernes 24 de julio de 2015

[Sabías que] como borrar la caché de redirecciones de Google Chrome

Es algo muy fastidioso!, te encuentras con un dominio que hace redirect de “http” a “https”, todo muy chévere porque Google Chrome guarda una caché de ese “redirect” y lo hará automáticamente cada vez que escribas el dominio.

Pero …

¿Qué pasa si deseo abrir contenido “http” (por ejemplo, en otro puerto) de dicho dominio y Google Chrome insiste en hacer redirect al puerto “https”?, aunque le des “Limpiar caché local” este comportamiento no se limpia, así que, ¿cómo hacemos? …

borrar la caché de redirects es tu solución!

¿Cómo?

Es muy sencillo, abre una pestaña del Google Chrome, escribe:

chrome://net-internals

Y estarás en una ventana de captura de eventos de red del Chrome, allí, una lista desplegable muestra varias cosas, seleccionarás: “HSTS”,

Nota: también pueden llegar directamente escribiendo:

chrome://net-internals/#hsts

hsts.png

Allí, escriben en la opción “Delete Domain” el dominio al que desean “borrarle” ese comportamiento de auto-redirect, presionan el botón “Delete” y listo!, no más redirects!.

The post [Sabías que] como borrar la caché de redirecciones de Google Chrome appeared first on Phenobarbital con Soda.

Miércoles 22 de julio de 2015

Convertir ogv a gif animado con ffmpeg

Martes 21 de julio de 2015

Dibujo espejado simétrico con Mypaint

Domingo 19 de julio de 2015

El Tiempo Pasa 10 Años de Presentar el Trabajo de Grado Lavicux

Está Escrito:
Jesucristo dijo: El cielo y la tierra pasarán, pero mis palabras no pasarán. (Mateo 24:35)

¿Que es Lavicux?

Lavicux es una distribución basada en Metadistros y el sistema operativo Debian/Linux, diseñada para el Intituto Universitario Experimental de Tecnologia La Victoria Estado Aragua - Venezuela. Es una distribución Live-cd, es decir, se trata de un sistema operativo que se ejecuta directamente desde un Cd sin necesidad de ser instalado en el disco duro de la PC, lo cual brinda la comodidad de no tener que configurar ni cambiar la configuración del equipo que se tenga disponible. Esta distribución además de estar dirigida a los estudiantes y/o Programadores de la Especialidad de Desarrollo de Software en el área de Postgrado tiene como proposito lograr el aprendizaje del software libre en diferentes usuarios, apoyando la realización de proyectos de desarrollos, por lo cual dicha distribucion ofrece una serie de aplicaciones y herramientas destinadas para tal fin.

¿Como Funciona y la Instalo?

¿Como Funciona?
Es muy sencillo, el Cd debe estar buteable (de arranque), es decir, que primero tiene que leer la unidad de Cd-Rom lo cual implica modificar el Setup o la Bios de la Pc para que arranque el sistema operativo desde el Cd-Rom. luego se reinicia la Pc con el CD Lavicux dentro de la unidad de CD y éste se ejecuta automaticamente.
¿Como la Instalo?
Para instalar Lavicux existe dos opciones la 1ra. en el menú principal llamada "Utilidades" donde encontrara un sub-menú el cual se denomina "Instalar Distribución" y la 2da en el Escritorio un icono para Instalar Lavicux.

¿Cuales son los Fundamentos Legales?

Tomando en cuenta que la distribución Lavicux está basada en el proyecto GNU/Linux y la distribución Debian se trata de Software Libre, el cual está amparado legalmente para su uso, distribución, copia y modificación bajo licencias, tal como ocurre con el software propietario. En este sentido la licencia más utilizada actualmente y la que más apoyos está consiguiendo por parte de la propia comunidad del software libre es la Licencia GPL. Del mismo modo se considera como fundamento legal la GNU Free Documentation License, lo cual significa, Licencia de Documentación Libre GNU en su versión 1.1 , Marzo 2000; según lo expresa Stallman (2004) con dicha licencia “Se permite la copia, y distribución de copias literales, de este documento, pero no se permite su modificación. La mayor parte de las aplicaciones que integran la distribución Lavicux tiene Licencia GPL, se recomienda que en caso de querer modificar cualquiera de ellas, consulte antes los términos específicos de cada una. Dichos términos se encuentran disponibles en http://www.debian.org/distrib/packages.

¿Que ventajas me ofrece?

La Distribución Lavicux como Live-cd le ofrece las siguientes ventajas:
_ Permite probar la distribución sin necesidad de instarla en el Disco duro.
_ Permite la detección automatica del hardware evitando que el usuario haga alguna configuración.
_ Todo esta debidamente configurado, el usuario no necesita tocar nada una vez que lo arranca o instala.
_ Le permite al usuario estudiante del I.U.T.E.L.V. asi como a usuarios en general disfrutar del software para desarrollo necesario para el aprendizaje de la programación perfectamente configurado.
_ Una vez instalado Lavicux en su Disco Duro podrá instalar facilmente otros software que requiera.
_ Dispone de 3 o 4 minutos para el arranque de la distribución y de 15 y 30 minutos para instalarlo en su Disco Duro.
_ Posee unos 2 Gb de software selecionado y configurado para satisfacer las necesidades de los estudiantes del I.U.E.T.L.V.
_ Brinda portabilidad al usuario, disponiendo de un Sistema Operativo que permite al estudiante realizar sus practicas de laboratorio en cualquier lugar.

 

¿Que es Metadistros?

Es un sistema y una infraestructura para crear distribuciones a la medida de grupos concretos de usuarios (universidades, colegios, empresas, cursos itinerantes bajo Linux...). Este sistema consiste en 2 partes fundamentales:
1) La Distribución: Es una distribución GNU/Linux ya instalada y configurada para el uso elegido. Ésta va dentro del CD-Rom junto con el Calzador.
2) El Calzador: Está encargado que la distribución funcione desde el CD-Rom y de instalarla al disco duro. Es independiente de la distribución que se use.
Existen 2 tipos de usuarios en este proyecto. Por un lado están los usuarios de las distribuciones y por otro, aquellas personas que quieren hacer una distribución (creadores de distribuciones). Cada uno de ellos encontrará un menú a la izquierda, con todo lo necesario para empezar, y si lo que desea es colaborar con el proyecto, aportar algo o conocerlo por dentro, dispone del menú para desarrolladores. Para mayor información consultar: http://metadistros.software-libre.org

¿Que es un Live - CD?

Se puede definir como un Sistema Operativo el cual arranca automáticamente desde un CD-ROM, sin necesidad que el mismo este instalado en el disco duro como normalmente se trabaja, proporcionando un sistema operativo con ventajas de portabilidad, por lo cual el usuario lo puede llevar, ejecutar e instalar en cualquier maquina, aún con poco requerimientos de hardware. Un sistema live-cd puede ser personalizado por el programador de acuerdo al usuario al cual esta destinado, Para mayor información sobre este tema acudir a la dirección: Direccion de Live - CD

¿Que es GNU/Linux?

El Proyecto GNU/Linux es el resultado de la fusión de todos los programas GNU (de software libre) que se adaptaron a Linux. Al respecto Stallman (2004) plantea; “En el año 1992, la combinación de Linux con el incompleto sistema GNU resulto en un sistema operativo libre. (Esta combinación fue por supuesto, una labor extraordinaria). Gracias a Linux podemos ejecutar hoy una versión del sistema GNU"

¿Que es Linux?

Es un sistema operativo gratuito, multiusuario y multitarea, clónico de Unix para PC, diseñado y desarrollado por cientos de programadores repartidos por todo el mundo. Al respecto, es importante señalar que el estudiante Linus Torvalds en 1991 inspirado en mejorar el sistema operativo Minix (el cual era gratuito, desarrollado por Andrew Tanenbaum para que los estudiantes hicieran sus practicas de Sistemas Operativos, el mismo estaba basado en Uníx), Crea el núcleo llamado Kernel (Núcleo) del sistema operativo Linux. Luego de disponer de controladores para los dispositivos y lograr el acceso al Disco Duro, en vista de las complicadas situaciones generadas, decide publicar su proyecto en la Internet, al alcance de todo aquel internauta que quisiera contribuir con el sistema, poco después fueron muchas las respuestas, para que el 05 de Octubre de 1991 saliera la primera versión Oficial del Linux denominada 0.02, sucesivamente la 0.03, 0.11, 0.12, 0.13, 0.96, 0.99.14, y así a finales de 1994 se lanza la primera versión completa de Linux, la versión 1.0, a partir de esta versión son muchas las mejoras y programadores que se han unido a este proyecto. En la actualidad se cuenta con un exitoso Sistema Operativo el cual crece gracias al respaldo del Proyecto GNU (software libre). Para mayor información consulte: al archivo PDF de Stallman y www.gnu.org

¿Que es el Software Libre?

El software libre “Se basa en la idea de libertad, libertad completa para ejecutar, copia, distribuir, estudia cambiar el software” en este sentido Stallman (2004) enumera que el software será libre siempre y cuando el usuario posea:
- La libertad de ejecutar el programa sea cual sea el propósito.
- La libertad para modificar el programa para ajustarlo a las necesidades.
- La libertad de redistribuir copias, ya sea de forma gratuita, ya sea a cambio del pago de un precio.
- La libertad de distribuir versiones modificadas del programa, de tal forma que la comunidad pueda aprovechar las mejora introducidas. Para mayor información consulte:
al archivo PDF de Stallman y www.gnu.org

!Necesito Ayuda! ¿Quien me atiende?

En caso de necesitar ayuda, pueden consultar las siguientes direcciones:
Pagina Personal Creadores de la Distribución Lavicux:http://kyrb2000.blogspot.com/


Pagina del I.U.E.T.L.V:



¿Que aplicaciones o programas contiene?

A continuación se presenan una lista de las aplicaciones, programas y herramientas utiles de las pueden disfrutar con la distribución Lavicux. éstas son:
Gestor de Ventanas: KDE, consola.
Ayuda: General de KDE y las Aplicaciones.
Editores de Texto::
  • KWrite
  • Kate
  • KEdit
  • KVim
Utilidades:
  • Lavicux: Instalación de Lavicux
  • Qtparted: Particionamiento del Disco
  • OpenOffice.org Quickstarter
  • Trabajos de impresión
  • KdeprintFax: Aplicación de fax
  • Ark: Archivador
  • KLinkStatus: Comprobador de enlaces
  • Kdict: Diccionario en línea
  • KFloppy: Formateador de disquetes
  • KGpg: Herramienta de cifrado
  • KPilot: Herramienta para Palm Pilot
  • Klipper: Portapapeles
  • Más aplicaciones:
  • Redirector del archivo lnk de Windows
  • Servidor LIRC de KDE
  • TNEF: Vista de árbol
  • KPalmDOC: Conversor de PalmDOC
  • KArm: Cronómetro personal
  • KRegExpEditor: Editor de expresiones regulares
  • KSig: Editor de firmas
  • Kandy: Gestor de teléfonos móviles
  • KTimer: Lanzador de cuenta atrás
  • KPager: Paginador del escritorio
  • KJots: Para tomar notas
  • KAlarm: Planificador de alarmas personales
  • KFontView: Visor de fuentes
Sistema:
  • Ajustar tamaño y rotar pantalla
  • Centro de información
  • Compartición de escritorio
  • SysV: Editor de inicio
  • Guardián del sistema de KDE
  • KPackage: Administrador de paquetes
  • KUser: Administrador de usuarios
  • KCron: Planificador de tareas
  • Konsole: Programa de terminal
  • Más aplicaciones:
  • Administrador de archivos - modo superusuario
  • Programa de terminal - Modo de superusuario
  • KDat: Copia de cintas
  • KwikDisk: Herramienta de medios extraíbles
  • KDiskFree: Muestra el uso del disco
Preferencias:
  • Administrador de impresión
  • Asistente para las preferencias del escritorio
  • Configuración del panel
  • Editor de menús
  • Herramienta de actualización de menús
  • Herramienta de gestión de cartera
  • Salvapantallas
Oficina:
  • KCalc: Calculadora científica
  • Agenda de direcciones
  • KOrganizer: Organizador personal
  • OpenOffice.org Calc: Hoja de Cálculo
  • OpenOffice.org Draw: Diseñador de imagenes
  • OpenOffice.org Impress: Diseñador de presentaciones
  • OpenOffice.org Math: Ecuaciones Matemáticas
  • OpenOffice.org Writer: Editor de Documentos
  • OpenOffice.org Writer/Web: Editor de Documentos Web
  • A partir de una plantilla de OpenOffice.org: Generador de Plantillas
  • Kontact: Gestor de información personal
  • Administración de la impresora de OpenOffice.org
  • KNotes: Notas emergentes
Multimedia:
  • GTK-GnuTella: Bajar Musica de la Internet
  • K3b: Quemador de Cd
  • KAudioCreator: Extractor digital de CDs
  • KRec: Herramienta de grabación
  • KsCD: Reproductor de CDs
  • JuK: Reproductor de audio
  • Kaboodle: Reproductor multimedia
  • Noatun: Reproductor multimedia
  • XMMS: Reproductor multimedia
  • KMix: Un mezclador audio
  • Más aplicaciones:
  • aRts Control Too: Control del servidor de sonido
  • aRts Builder: Diseñador de filtros de audio
  • KMid: Un reproductor MIDI/Karaoke
Internet:
  • Java Web Start 1.4
  • ADSL/PPPOE configuration: Conexión a Internet Telefonica
  • Conexión remota de escritorio
  • Mozilla Mail: Cliente de Correo
  • Mozilla Mail Composer: Editor de Mensajería
  • Mozilla News: Cliente de Noticias
  • Mozilla Web Browse: Navegador Web
  • aMSN: MSN Messenger for Linux
  • KSirc: Cliente de IRC
  • KMail: Cliente de correo
  • KGet: Gestor de descargas
  • KPPP: Herramienta de conexión telefónica a Internet
  • KNode: Lector de noticias
  • Kopete: Mensajería instantánea
  • Konqueror: Navegador web
  • Más aplicaciones:
  • Visor de registros de KPPP
  • Korn: Aviso de correo
  • KWiFiManager: Gestor de red inalámbrica
  • KNewsTicker: Teletipo de noticias
Gráficos:
  • Povray: Modelador
  • GIMP Image Editor: Editor de imagen
  • Kooka: OCR y explorador con un escáner
  • KolourPaint: Programa de pintura
  • KPDF: Visor de PDF
  • KDVI: Visor de documentos DVI
  • KGhostView: Visor de documentos PS/PDF
  • KFax: Visor de faxes
  • KView: Visor de imágenes
  • Kuickshow: Visor de imágenes
  • Más aplicaciones:
  • KSnapshot: Capturador de pantalla
  • KIconEdit: Editor de iconos
  • KColorEdi: Editor de paleta de color
  • KRuler: Regla para la pantalla
  • KColorChooser: Selector de colores
Desarrollo:
  • Entorno de desarrollo Gambas: Programación Visual
  • Entorno de desarrollo Glade: Programación Visual
  • Mozilla Composer : Diseño Paginas Web
  • Entorno de desarrollo web Quanta Plus: Diseño Paginas Web
  • Consejos útiles : Sugerencias Entorno KDE
  • Dia: Diseño de Diagramas
  • Editor de cuadros de diálogo dinámicos Kommander Editor: Generador Ventanas de Dialogos
  • Depurador XSLT KXSLDbg: Depurador de Programas
  • KImageMapEditor: Editor de Imagenes HTML
  • KHexEdit: Editor Binario
  • KCharSelec: Selector de caracteres, Simbología de KDE
Entretenimientos educativos:
  • Herramientas de enseñanza:
  • KEduca-Editor: Editor de pruebas y exámenes
  • KEduca: Pruebas y exámenes
  • Idiomas:
  • KLettres: Aprender el alfabeto
  • KVocTrain: Entrenador de vocabulario
  • Kverbos: Estudiar las formas verbales del español
  • Kiten: Herramienta de referencia/estudio del japonés
  • KMessedWords: Juego de ordenación de letras
  • KHangMan: Juego del ahorcado
  • KLatin: Revisor de latín
  • Matemáticas:
  • KBruch: Ejercitar fracciones
  • KPercentage: Ejercitar porcentajes
  • Kig: Geometría interactiva
  • KmPlot: Trazador de funciones
  • Ciencia:
  • KStars: Planetario para el escritorio
  • Kalzium: Tabla periódica de los elementos (quimica)
  • Varios:
  • KTurtle: Entorno de programación de Logos
  • KWordQuiz: Entrenador de vocabulario
  • KTouch: Tutor para mecanografía
Ocio:
  • AMOR: Entretenido derroche de recursos KDE
  • Reloj mundial
  • Tetera
  • Odómetro del ratón: Mide el kilometraje del ratón en su escritorio
Juegos:
  • Arcade:
  • Golf en miniatura Kolf
  • KAsteroids
  • KBounce
  • KFoulEggs
  • KGoldrunner
  • KSirtet
  • KSmileTris
  • KSnakeRace
  • Juegos de cartas:
  • KPoker
  • Teniente Skat
  • Paciente Solitario
  • Kidsgames:
  • Juego para niños Papá Patat
  • Juegos de tablero:
  • Diseñador Atlantik
  • KBackgammon
  • KReversi
  • Kenolaba
  • Monopoly® Atlantik
  • Táctica y estrategia:
  • KBattleship
  • Konquest
  • KAtomic
  • KMines
  • KSokoban
  • Juego Iguales
  • Klickety
  • KJumpingCube

     

Documentación

En esta sesión encontrara la documentación de los Fundamentos Legales, asi como información de interes relacionada con la Distribución Lavicux y el proyecto GNU/Linux
Licencia Pública GNU
Esta es la conocida GNU Public License (GPL), versión 2 (de junio de 1.991), que cubre la mayor parte del software de la Free Software Foundation, y muchos más programas.
Los autores de esta traducción son:
Jesús González Barahona
Pedro de las Heras Quirós
NOTA IMPORTANTE:
Esta es una traducción no oficial al español de la GNU General Public License. No ha sido publicada por la Free Software Foundation, y no establece legalmente las condiciones de distribución para el software que usa la GNU GPL. Estas condiciones se establecen solamente por el texto original, en inglés, de la GNU GPL. Sin embargo, esperamos que esta traducción ayude a los hispanohablantes a entender mejor la GNU GPL.

IMPORTANT NOTICE:
This is an unofficial translation of the GNU General Public License into Spanish. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL--only the original English text of the GNU GPL does that. However, we hope that this translation will help Spanish speakers understand the GNU GPL better.
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, EEUU
Se permite la copia y distribución de copias literales de este documento, pero no se permite su modificación.
PREÁMBULO:
Las licencias que cubren la mayor parte del software están diseñadas para quitarle a usted la libertad de compartirlo y modificarlo. Por el contrario, la Licencia Pública General de GNU pretende garantizarle la libertad de compartir y modificar software libre, para asegurar que el software es libre para todos sus usuarios. Esta Licencia Pública General se aplica a la mayor parte del software del la Free Software Foundation y a cualquier otro programa si sus autores se comprometen a utilizarla. (Existe otro software de la Free Software Foundation que está cubierto por la Licencia Pública General de GNU para Bibliotecas). Si quiere, también puede aplicarla a sus propios programas.
Cuando hablamos de software libre, estamos refiriéndonos a libertad, no a precio. Nuestras Licencias Públicas Generales están diseñadas para asegurarnos de que tenga la libertad de distribuir copias de software libre (y cobrar por ese servicio si quiere), de que reciba el código fuente o que pueda conseguirlo si lo quiere, de que pueda modificar el software o usar fragmentos de él en nuevos programas libres, y de que sepa que puede hacer todas estas cosas.
Para proteger sus derechos necesitamos algunas restricciones que prohiban a cualquiera negarle a usted estos derechos o pedirle que renuncie a ellos. Estas restricciones se traducen en ciertas obligaciones que le afectan si distribuye copias del software, o si lo modifica.
Por ejemplo, si distribuye copias de uno de estos programas, sea gratuitamente, o a cambio de una contraprestación, debe dar a los receptores todos los derechos que tiene. Debe asegurarse de que ellos también reciben, o pueden conseguir, el código fuente. Y debe mostrarles estas condiciones de forma que conozcan sus derechos.
Protegemos sus derechos con la combinación de dos medidas:
1.- Ponemos el software bajo copyright2.- Le ofrecemos esta licencia, que le da permiso legal para copiar, distribuir y/o modificar el software.
También, para la protección de cada autor y la nuestra propia, queremos asegurarnos de que todo el mundo comprende que no se proporciona ninguna garantía para este software libre. Si el software se modifica por cualquiera y éste a su vez lo distribuye, queremos que sus receptores sepan que lo que tienen no es el original, de forma que cualquier problema introducido por otros no afecte a la reputación de los autores originales.
Por último, cualquier programa libre está constantemente amenazado por patentes sobre el software. Queremos evitar el peligro de que los redistribuidores de un programa libre obtengan patentes por su cuenta, convirtiendo de facto el programa en propietario. Para evitar esto, hemos dejado claro que cualquier patente debe ser pedida para el uso libre de cualquiera, o no ser pedida.
Los términos exactos y las condiciones para la copia, distribución y modificación se exponen a continuación:
TÉRMINOS Y CONDICIONES PARA LA COPIA, DISTRIBUCIÓN Y MODIFICACIÓN:
1.- Esta Licencia se aplica a cualquier programa u otro tipo de trabajo que contenga una nota colocada por el tenedor del copyright diciendo que puede ser distribuido bajo los términos de esta Licencia Pública General. En adelante, «Programa» se referirá a cualquier programa o trabajo que cumpla esa condición y «trabajo basado en el Programa» se referirá bien al Programa o a cualquier trabajo derivado de él según la ley de copyright. Esto es, un trabajo que contenga el programa o una proción de él, bien en forma literal o con modificaciones y/o traducido en otro lenguaje. Por lo tanto, la traducción está incluida sin limitaciones en el término «modificación». Cada concesionario (licenciatario) será denominado «usted».
Cualquier otra actividad que no sea la copia, distribución o modificación no está cubierta por esta Licencia, está fuera de su ámbito. El acto de ejecutar el Programa no está restringido, y los resultados del Programa están cubiertos únicamente si sus contenidos constituyen un trabajo basado en el Programa, independientemente de haberlo producido mediante la ejecución del programa. El que esto se cumpla, depende de lo que haga el programa.
2.- Usted puede copiar y distribuir copias literales del código fuente del Programa, según lo has recibido, en cualquier medio, supuesto que de forma adecuada y bien visible publique en cada copia un anuncio de copyright adecuado y un repudio de garantía, mantenga intactos todos los anuncios que se refieran a esta Licencia y a la ausencia de garantía, y proporcione a cualquier otro receptor del programa una copia de esta Licencia junto con el Programa.
Puede cobrar un precio por el acto físico de transferir una copia, y puede, según su libre albedrío, ofrecer garantía a cambio de unos honorarios.
3.- Puede modificar su copia o copias del Programa o de cualquier porción de él, formando de esta manera un trabajo basado en el Programa, y copiar y distribuir esa modificación o trabajo bajo los términos del apartado 1, antedicho, supuesto que además cumpla las siguientes condiciones:
a.- Debe hacer que los ficheros modificados lleven anuncios prominentes indicando que los ha cambiado y la fecha de cualquier cambio.
b.- Debe hacer que cualquier trabajo que distribuya o publique y que en todo o en parte contenga o sea derivado del Programa o de cualquier parte de él sea licenciada como un todo, sin carga alguna, a todas las terceras partes y bajo los términos de esta Licencia.
c.- Si el programa modificado lee normalmente órdenes interactivamente cuando es ejecutado, debe hacer que, cuando comience su ejecución para ese uso interactivo de la forma más habitual, muestre o escriba un mensaje que incluya un anuncio de copyright y un anuncio de que no se ofrece ninguna garantía (o por el contrario que sí se ofrece garantía) y que los usuarios pueden redistribuir el programa bajo estas condiciones, e indicando al usuario cómo ver una copia de esta licencia. (Excepción: si el propio programa es interactivo pero normalmente no muestra ese anuncio, no se requiere que su trabajo basado en el Programa muestre ningún anuncio).
Estos requisitos se aplican al trabajo modificado como un todo. Si partes identificables de ese trabajo no son derivadas del Programa, y pueden, razonablemente, ser consideradas trabajos independientes y separados por ellos mismos, entonces esta Licencia y sus términos no se aplican a esas partes cuando sean distribuidas como trabajos separados. Pero cuando distribuya esas mismas secciones como partes de un todo que es un trabajo basado en el Programa, la distribución del todo debe ser según los términos de esta licencia, cuyos permisos para otros licenciatarios se extienden al todo completo, y por lo tanto a todas y cada una de sus partes, con independencia de quién la escribió.
Por lo tanto, no es la intención de este apartado reclamar derechos o desafiar sus derechos sobre trabajos escritos totalmente por usted mismo. El intento es ejercer el derecho a controlar la distribución de trabajos derivados o colectivos basados en el Programa.
Además, el simple hecho de reunir un trabajo no basado en el Programa con el Programa (o con un trabajo basado en el Programa) en un volumen de almacenamiento o en un medio de distribución no hace que dicho trabajo entre dentro del ámbito cubierto por esta Licencia.
3.- Puede copiar y distribuir el Programa (o un trabajo basado en él, según se especifica en el apartado 2, como código objeto o en formato ejecutable según los términos de los apartados 1 y 2, supuesto que además cumpla una de las siguientes condiciones:
a.- Acompañarlo con el código fuente completo correspondiente, en formato electrónico, que debe ser distribuido según se especifica en los apartados 1 y 2 de esta Licencia en un medio habitualmente utilizado para el intercambio de programas, o
b.- Acompañarlo con una oferta por escrito, válida durante al menos tres años, de proporcionar a cualquier tercera parte una copia completa en formato electrónico del código fuente correspondiente, a un coste no mayor que el de realizar físicamente la distribución del fuente, que será distribuido bajo las condiciones descritas en los apartados 1 y 2 anteriores, en un medio habitualmente utilizado para el intercambio de programas, o
c.- Acompañarlo con la información que recibiste ofreciendo distribuir el código fuente correspondiente. (Esta opción se permite sólo para distribución no comercial y sólo si usted recibió el programa como código objeto o en formato ejecutable con tal oferta, de acuerdo con el apartado b anterior).
Por código fuente de un trabajo se entiende la forma preferida del trabajo cuando se le hacen modificaciones. Para un trabajo ejecutable, se entiende por código fuente completo todo el código fuente para todos los módulos que contiene, más cualquier fichero asociado de definición de interfaces, más los guiones utilizados para controlar la compilación e instalación del ejecutable.
Como excepción especial el código fuente distribuido no necesita incluir nada que sea distribuido normalmente (bien como fuente, bien en forma binaria) con los componentes principales (compilador, kernel y similares) del sistema operativo en el cual funciona el ejecutable, a no ser que el propio componente acompañe al ejecutable.
Si la distribución del ejecutable o del código objeto se hace mediante la oferta acceso para copiarlo de un cierto lugar, entonces se considera la oferta de acceso para copiar el código fuente del mismo lugar como distribución del código fuente, incluso aunque terceras partes no estén forzadas a copiar el fuente junto con el código objeto.
4.- No puede copiar, modificar, sublicenciar o distribuir el Programa excepto como prevé expresamente esta Licencia. Cualquier intento de copiar, modificar sublicenciar o distribuir el Programa de otra forma es inválida, y hará que cesen automáticamente los derechos que te proporciona esta Licencia. En cualquier caso, las partes que hayan recibido copias o derechos de usted bajo esta Licencia no cesarán en sus derechos mientras esas partes continúen cumpliéndola.
5.- No está obligado a aceptar esta licencia, ya que no la ha firmado. Sin embargo, no hay hada más que le proporcione permiso para modificar o distribuir el Programa o sus trabajos derivados. Estas acciones están prohibidas por la ley si no acepta esta Licencia. Por lo tanto, si modifica o distribuye el Programa (o cualquier trabajo basado en el Programa), está indicando que acepta esta Licencia para poder hacerlo, y todos sus términos y condiciones para copiar, distribuir o modificar el Programa o trabajos basados en él.

6.- Cada vez que redistribuya el Programa (o cualquier trabajo basado en el Programa), el receptor recibe automáticamente una licencia del licenciatario original para copiar, distribuir o modificar el Programa, de forma sujeta a estos términos y condiciones. No puede imponer al receptor ninguna restricción más sobre el ejercicio de los derechos aquí garantizados. No es usted responsable de hacer cumplir esta licencia por terceras partes.

7.- Si como consecuencia de una resolución judicial o de una alegación de infracción de patente o por cualquier otra razón (no limitada a asuntos relacionados con patentes) se le imponen condiciones (ya sea por mandato judicial, por acuerdo o por cualquier otra causa) que contradigan las condiciones de esta Licencia, ello no le exime de cumplir las condiciones de esta Licencia. Si no puede realizar distribuciones de forma que se satisfagan simultáneamente sus obligaciones bajo esta licencia y cualquier otra obligación pertinente entonces, como consecuencia, no puede distribuir el Programa de ninguna forma. Por ejemplo, si una patente no permite la redistribución libre de derechos de autor del Programa por parte de todos aquellos que reciban copias directa o indirectamente a través de usted, entonces la única forma en que podría satisfacer tanto esa condición como esta Licencia sería evitar completamente la distribución del Programa.
Si cualquier porción de este apartado se considera inválida o imposible de cumplir bajo cualquier circunstancia particular ha de cumplirse el resto y la sección por entero ha de cumplirse en cualquier otra circunstancia.
No es el propósito de este apartado inducirle a infringir ninguna reivindicación de patente ni de ningún otro derecho deç propiedad o impugnar la validez de ninguna de dichas reivindicaciones. Este apartado tiene el único propósito de proteger la integridad del sistema de distribución de software libre, que se realiza mediante prácticas de licencia pública. Mucha gente ha hecho contribuciones generosas a la gran variedad de software distribuido mediante ese sistema con la confianza de que el sistema se aplicará consistentemente. Será el autor/donante quien decida si quiere distribuir software mediante cualquier otro sistema y una licencia no puede imponer esa elección.
Este apartado pretende dejar completamente claro lo que se cree que es una consecuencia del resto de esta Licencia
8.- Si la distribución y/o uso de el Programa está restringida en ciertos países, bien por patentes o por interfaces bajo copyright, el tenedor del copyright que coloca este Programa bajo esta Licencia puede añadir una limitación explícita de distribución geográfica excluyendo esos países, de forma que la distribución se permita sólo en o entre los países no excluidos de esta manera. En ese caso, esta Licencia incorporará la limitación como si estuviese escrita en el cuerpo de esta Licencia.

9.- La Free Software Foundation puede publicar versiones revisadas y/o nuevas de la Licencia Pública General de tiempo en tiempo. Dichas nuevas versiones serán similares en espíritu a la presente versión, pero pueden ser diferentes en detalles para considerar nuevos problemas o situaciones.
Cada versión recibe un número de versión que la distingue de otras. Si el Programa especifica un número de versión de esta Licencia que se refiere a ella y a «cualquier versión posterior», tienes la opción de seguir los términos y condiciones, bien de esa versión, bien de cualquier versión posterior publicada por la Free Software Foundation. Si el Programa no especifica un número de versión de esta Licencia, puedes escoger cualquier versión publicada por la Free Software Foundation.
10.- Si quiere incorporar partes del Programa en otros programas libres cuyas condiciones de distribución son diferentes, escribe al autor para pedirle permiso. Si el software tiene copyright de la Free Software Foundation, escribe a la Free Software Foundation: algunas veces hacemos excepciones en estos casos. Nuestra decisión estará guiada por el doble objetivo de de preservar la libertad de todos los derivados de nuestro software libre y promover el que se comparta y reutilice el software en general.
AUSENCIA DE GARANTÍA:

11.- Como el programa se licencia libre de cargas, no se ofrece ninguna garantía sobre el programa, en todas la extensión permitida por la legislación aplicable. Excepto cuando se indique de otra forma por escrito, los tenedores del copyright y/u otras partes proporcionan el programa «tal cual», sin garantía de ninguna clase, bien expresa o implícita, con inclusión, pero sin limitación a las garantías mercantiles implícitas o a la conveniencia para un propósito particular. Cualquier riesgo referente a la calidad y prestaciones del programa es asumido por usted. Si se probase que el Programa es defectuoso, asume el coste de cualquier servicio, reparación o corrección.

12.- En ningún caso, salvo que lo requiera la legislaciónç aplicable o haya sido acordado por escrito, ningún tenedor del copyright ni ninguna otra parte que modifique y/o redistribuya el Programa según se permite en esta Licencia será responsable ante usted por daños, incluyendo cualquier daño general, especial, incidental o resultante producido por el uso o la imposibilidad de uso del Programa (con inclusión, pero sin limitación a la pérdida de datos o a la generación incorrecta de datos o a pérdidas sufridas por usted o por terceras partes o a un fallo del Programa al funcionar en combinación con cualquier otro programa), incluso si dicho tenedor u otra parte ha sido advertido de la posibilidad de dichos daños.
FIN DE TÉRMINOS Y CONDICIONES
APÉNDICE: CÓMO APLICAR ESTOS TERMINOS A SUS NUEVOS PROGRAMAS:
Para el público en general, la mejor forma de conseguirlo es convirtiéndolo en software libre que cualquiera pueda redistribuir y cambiar bajo estos términos.
Para hacerlo, añada los siguientes anuncios al programa. Lo más seguro es añadirlos al principio de cada fichero fuente para transmitir lo más efectivamente posible la ausencia de garantía. Además cada fichero debería tener al menos la línea de «copyright» y un indicador a dónde puede encontrarse el anuncio completo.
Copyright (C) 19aa
Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. Véase la Licencia Pública General de GNU para más detalles.
Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.
Añada también información sobre cómo contactar con usted mediante correo electrónico y postal.
Si el programa es interactivo, haga que muestre un pequeño anuncio como el siguiente, cuando comienza a funcionar en modo interactivo:
Gnomovision versión 69, Copyright (C) 19aa nombre del autor
Gnomovision no ofrece ABSOLUTAMENTE NINGUNA GARANTÍA. Para más detalles escriba «show w».
Los comandos hipotéticos «show w» y «show c» deberían mostrar las partes adecuadas de la Licencia Pública General. Por supuesto, los comandos que use pueden llamarse de cualquier otra manera. Podrían incluso ser pulsaciones del ratón o elementos de un menú (lo que sea apropiado para su programa).
También deberías conseguir que su empleador (si trabaja como programador) o tu Universidad (si es el caso) firme un «renuncia de copyright» para el programa, si es necesario. A continuación se ofrece un ejemplo, altere los nombres según sea conveniente:

Yoyodyne, Inc. mediante este documento renuncia a cualquier interés de derechos de copyright con respecto al programa Gnomovision (que hace pasadas a compiladores) escrito por Pepe Programador.
, 20 de diciembre de 1996
Pepito Grillo, Presidente de Asuntillos Varios.
Esta Licencia Pública General no permite que incluya sus programas en programas propietarios. Si su programa es una biblioteca de subrutinas, puede considerar más útil el permitir el enlazado de aplicaciones propietarias con la biblioteca. Si este es el caso, use la Licencia Pública General de GNU para Bibliotecas en lugar de esta Licencia.Licencia de Documentación Libre GNU
[Free Document License, GNU-FDL]
Versión 1.1, marzo 2000,
Copyright © 2000, 1999 Free Software Foundation, Inc. 59, Temple
Place, Suite 330, Boston, MA 02111-1307 USA

Se permite la copia y distribución de copias literales de este documento, pero no se permite su modificación.
Preámbulo
El propósito de esta licencia es permitir que un manual, libro de texto, u otro documento escrito sea «libre» en el sentido de libertad: asegurar a todo el mundo la libertad efectiva de copiarlo y redistribuirlo, con o sin modificaciones, de manera comercial o no. En segundo término, esta licencia preserva para el autor o para quien lo publique una manera de obtener reconocimiento por su trabajo, al tiempo que no se les hace responsables de las modificaciones realizadas por terceros.
Esta licencia es una especie de «copyleft», lo que significa que los trabajos derivados del documento deben a su vez ser libres en el mismo sentido. Esta licencia complementa a la Licencia Pública General GNU, que es una licencia de copyleft diseñada para el software libre.
Hemos diseñado esta Licencia para usarla en manuales de software libre, ya que el software libre necesita documentación libre: un programa libre debe acompañarse con manuales que ofrezcan la mismas libertades que da el software. Sin embargo esta licencia no se limita a manuales de software; puede utilizarse para cualquier trabajo textual, sin tener en cuenta su temática o si se publica como libro impreso. Recomendamos esta licencia principalmente para trabajos cuyo fin sea educativo o trate de servir como obra de referencia.
1. Aplicabilidad y definiciones:
Esta Licencia se aplica a cualquier manual u otro documento que contenga una nota del propietario de los derechos indicando que puede distribuirse bajo los términos de la Licencia. El «Documento», en adelante, se refiere a cualquiera de dichos manuales o trabajos. Cualquier miembro del público es un licenciatario y será denominado como «Usted». Una «versión modificada» del Documento es cualquier trabajo que contenga el Documento o una porción del mismo, ya sea una copia literal o con modificaciones y/o traducciones a otro idioma.

Una «una sección secundaria» es un apéndice titulado o una sección preliminar al prólogo del Documento que tiene que ver exclusivamente con la relación de quien publica, los autores del Documento, el tema general del Documento —o asuntos relacionados— y cuyo contenido no concierne directamente a este tema general. (Por ejemplo, si el Documento es en parte un texto de matemáticas, una sección secundaria puede no explicar matemáticas). La relación puede ser un asunto sobre la relación histórica o el posicionamiento legal, comercial, filosófico, ético o político con respecto del tema o la materia del texto.
Las «secciones invariables» son ciertas secciones secundarias cuyos títulos son denominados como secciones invariables, en la nota que indica que el documento está liberado bajo esta licencia.
Los «textos de cubierta» son ciertos pasajes breves que se enumeran como textos de portada o textos de contra portada, en la nota que indica que el documento es liberado bajo esta Licencia.
Una copia «transparente» del Documento es una copia para lectura en máquina, representada en un formato cuya especificación está a disposición del público general, cuyo contenido puede ser leído y editado directamente con editores de texto genéricos o —para imágenes compuestas por pixeles— de programas genéricos de dibujo o —o para dibujos— o con algún editor gráfico disponible, y que sea adecuado para exportar a procesadores de texto o para la traducción automática a una variedad de formatos adecuados para utilizarlos con procesadores de texto. Una copia en un formato de archivo no transparente, diseñado para impedir o dificultar subsecuentes modificaciones posteriores por parte de los lectores no es transparente. Una copia que no es «transparente» es llamada «opaca».
Como ejemplos de formatos adecuados para copias transparentes están el ASCII plano sin formato, formato de Texinfo, formato LaT E X, SGML o XML usando un DTD disponible y HTML simple que obedece a estándares, diseñado para modificaciones humanas. Los formatos opacos incluyen PostScript, PDF, formatos propietarios que pueden ser leídos y editados únicamente en procesadores de textos propietarios, SGMLo XMLpara los cuáles los DTD y/o herramientas de procesamiento no están generalmente disponibles, y el HTML generado por máquinas producto de algún procesador de textos sólo con fines de salida.
La «portada» en un libro impreso es la portada misma, más las páginas siguientes necesarias para mantener la legibilidad del material, que esta Licencia requiere que aparezca en la portada. Para trabajos en formatos que no tienen portada como tal, la «portada» es el texto más próximo al título del trabajo, precediendo el comienzo del cuerpo del trabajo.
2. Copia literal
Puede copiar y distribuir el Documento en cualquier medio, sea en forma comercial o no, siempre y cuando esta Licencia, las notas de copyright y la nota de licencia, que indica que esta Licencia se aplica al Documento, se reproduzcan en todas las copias y que usted no añada ninguna condición aparte de las expuestas en esta Licencia. No puede utilizar medidas técnicas para obstruir o controlar la lectura o copia posterior de las copias que usted haga o distribuya. Sin embargo, usted puede aceptar una compensación monetaria a cambio de las copias. Si distribuye un número suficientemente grande de copias también deberá cumplir las condiciones de la sección 3.
También puede prestar copias, bajo las mismas condiciones establecidas anteriormente y puede exhibir copias públicamente.
3. Copia en cantidades masivas
Si publica más de cien copias impresas del Documento y la nota de Licencia del Documento exige textos de cubierta, debe incluir las copias con cubiertas que muestren, de forma clara y legible, todos los textos de cubierta: textos frontales en la cubierta frontal y textos posteriores de cubierta en la cubierta posterior. Ambas cubiertas deben identificarle a usted, de forma clara y legible como responsable de la publicación de tales copias. La cubierta frontal debe mostrar el título completo siendo todas las palabras igualmente prominentes y visibles. Además, puede añadir otro material en la cubierta. Las copias con cambios limitados en las cubiertas, siempre que preserven el título del Documento y satisfagan estas condiciones, pueden considerarse como copias literales.
Si los textos requeridos para la cubierta son muy voluminosos para que se ajusten de forma legible, deberá colocar los primeros — tantos como sea razonable— en la cubierta real, e introducir el resto en las páginas adyacentes.
Si publica o distribuye más de cien copias opacas del Documento, deberá incluir una copia transparente que pueda ser leída por una máquina con cada copia opaca, o entregar con cada copia opaca una dirección pública en red que contenga una copia completa transparente del Documento, sin material adicional, a la cual el público en general pueda acceder y bajar anónimamente sin cargo, usando protocolos de estándar público. Si recurre a esta última opción, deberá tomar las medidas necesarias, cuando comience la distribución de las copias opacas, para asegurarse de que esta copia transparente permanecerá accesible en el sitio por lo menos un año después de su última distribución de copias opacas —ya sea directamente o a través de sus agentes o distribuidores— de esa misma edición pública.
Se solicita, aunque no es requisito, que se ponga en contacto con los autores del Documento antes de redistribuir las copias, para darles la oportunidad de que le proporcionen una versión del Documento.
4. Modificaciones
Puede copiar y distribuir una versión modificada del Documento según las condiciones de las anteriores secciones 2 y 3, siempre que usted libere la versión modificada con esta misma Licencia, de este modo, la versión modificada desempeña el papel del Documento, y por lo tanto se autoriza la distribución y la modificación de la versión modificada a quienquiera que posea una copia de éste. Además, deberá hacer lo siguiente en la versión modificada:
a.-Usar en la Portada —y en las cubiertas, si las hubiera— un título distinto al del Documento y de las versiones anteriores —que deberían, si las hubiera, enumerarse en la sección de Historia del Documento. Puede utilizar el mismo título de las versiones anteriores del original siempre que quien publicara la primera versión le de su consentimiento.
b.-Enumerar en la Portada, como autores, a una o más personas o entidades responsables de la autoría o de las modificaciones de la versión modificada, junto con por lo menos cinco de los autores principales del Documento —todos sus autores principales, si hay menos de cinco.
c.- Incluir en la portada el nombre de quién publique la versión modificada.
d.-Preservar todas las notas de copyright del Documento.
e.- Añadir una nota de copyright apropiada para sus modificaciones adyacentes a las otras notas de copyright.
f.- Incluir, inmediatamente después de la nota de copyright, una nota de licencia autorizando el uso de la versión modificada según los términos de esta Licencia, de la forma descrita en la addenda.
g.- Preservar en esa nota de licencia la lista completa de secciones invariables y en los textos de las cubiertas que sean requeridos según se especifique en la nota de Licencia del Documento
h.- Incluir una copia sin modificación de esta Licencia.
i.- Preservar la sección llamada «historia» y su título, y añadir a ésta una sección que establezca al menos el título, el año, los nuevos autores y quién publicó la versión modificada, tal y como se especifica en la portada. Si no hay una sección titulada «historia», se creará una estableciendo el título, el año, los autores y quien publicó el Documento como se especifica en la portada, añadiendo además un artículo que describa la versión modificada como se estableció en el punto anterior.
j.- Preservar la localización en red, si la hubiera, especificada en el Documento para acceder públicamente a una copia transparente del Documento, al igual que otras direcciones de red proporcionadas en el Documento para versiones anteriores en las cuales estuviese basado. Estas pueden ubicarse en la sección «Historia». Se puede omitir la ubicación en red para un trabajo publicado al menos 4 años antes que el Documento, o si quien publica originalmente la versión da su consentimiento explícitamente.
k.- En cualquier sección titulada «agradecimientos» o «dedicatorias», se preservará el título de la sección, así como la intención y el tono de los agradecimientos y/o dedicatorias de cada contribuyente.
l.-Preservar todas las secciones invariables del Documento, sin alterar su contenido ni sus títulos. Los números de sección o el equivalente no se consideran parte de los títulos de la sección.
m.- Suprimir cualquier sección titulada «aprobaciones». Tales secciones no pueden estar incluidas en las versiones modificadas.
n.- No retitular ninguna sección existente como «aprobaciones», de modo que pueda entrar en conflicto con el título de alguna sección invariante.
Si la versión modificada incluye secciones o apéndices nuevos o preliminares al prólogo calificados como secciones secundarias que contienen material no copiado del Documento, opcionalmente, puede designarse algunas o todas estas secciones como invariables. Para ello, añada sus títulos a la lista de secciones invariables en la nota de licencia de la versión modificada. Tales títulos deben ser distintos de cualquier otro título de sección.
Puede añadir una sección titulada «aprobaciones», siempre que únicamente contenga las aprobaciones de su versión modificada por diversas fuentes —por ejemplo, observaciones de peritos o notas exponiendo que el texto ha sido aprobado por una organización como estándar.
Puede añadir un pasaje de hasta cinco palabras como texto de cubierta frontal, y un pasaje de hasta 25 palabras como texto de cubierta posterior, al final de la lista de textos de cubierta en la versión modificada. Solamente puede añadir un pasaje de texto de cubierta frontal y un texto de cubierta posterior —a manera de arreglos hechos por una entidad. Si el Documento ya incluye un texto de cubierta para la misma cubierta, previamente añadido por usted o por la misma entidad en nombre de la cual está actuando, no puede añadir más; pero puede reemplazar el anterior, con autorización expresa de quien publicó anteriormente la cubierta.

El(los) autor(es) y quien(es) publica(n) el Documento no autorizan con esta Licencia permiso alguno para que sus nombres sean utilizados en publicidad o para asegurar o sugerir la aprobación de cualquier Versión Modificada.
5. Combinar documentos
Puede combinar el Documento con otros documentos liberados con esta Licencia, según los términos definidos en la sección 4 anterior para versiones modificadas, siempre que incluya en la combinación todas las secciones invariables de los documentos originales, sin modificar y enumeradas como secciones invariables del trabajo combinado en su nota de licencia.
El trabajo combinado debe contener solamente una copia de esta Licencia y las múltiples secciones invariables idénticas pueden ser reemplazadas por una sola copia. Si hay múltiples secciones invariables con el mismo nombre pero con contenidos diferentes, haga que el título de cada una de estas secciones sea único, añadiéndole al final de éste, en paréntesis, el nombre del autor o de quien publicó originalmente esa sección —si es conocido— o —si no— un número único. Haga lo mismo con los títulos de sección en la lista de Secciones Invariables en la nota de licencia del trabajo combinado.
Deberá combinar cualquier sección titulada «historia» de los diversos documentos originales, formando una sola sección titulada «historia»; de la misma forma combinará cualquier sección titulada «agradecimientos» y cualquier sección titulada «dedicatorias». Deberá borrar todas las secciones tituladas «aprobaciones».
6. Colecciones de documentos
Puede hacer una colección consistente en el Documento y en otros documentos liberados con esta Licencia y reemplazar las copias individuales de esta Licencia, en los diversos documentos, con una sola copia incluida en la colección, siempre que siga las reglas de esta Licencia para una copia literal de cada uno de los documentos en cualquiera de todos los aspectos. Puede extraer un solo documento de tales colecciones y distribuirlo individualmente bajo esta Licencia, siempre que inserte una copia de esta Licencia en el documento extraído y cumpla esta Licencia en todos los demás aspectos concernientes a la copia literal de tal documento.
7. Combinación con trabajos independientes
Una recopilación del Documento o de sus derivados con otros documentos o trabajos separados o independientes, en cualquier tipo de distribución o medio de almacenamiento, no como un todo, se considerará como una versión modificada del Documento, teniendo en cuenta que ninguna compilación de copyright sea señalada en la recopilación.
Tal recopilación es llamada un «agregado» y esta Licencia no se aplica a los otros trabajos auto-contenidos y por lo tanto compilados con el Documento, si no se trata de trabajos derivados del Documento.
En caso de que la sección 3 del texto de la cubierta fuera aplicable a estas copias, si el Documento es inferior a un cuarto del agregado entero, los textos de la cubierta del Documento pueden ser colocados en cubiertas que enmarquen solamente el Documento en el agregado. De otra forma deben aparecer en cubiertas enmarcando todo el agregado
8. Traducción
La Traducción se considera un tipo de modificación. De este modo, puede distribuir traducciones del Documento bajo los términos de la sección 4. La sustitución de las secciones invariables por traducciones requerirá la autorización de los titulares del copyright, pero puede incluir traducciones de algunas o todas las secciones invariables además de las versiones originales de las secciones invariables. Puede incluirse una traducción de esta Licencia siempre que incluya también la versión inglesa. En caso de que exista un desacuerdo entre la traducción y la versión original en inglés de esta Licencia, prevalecerá la versión original en inglés.
9. Nulidad
No se puede copiar, modificar, sublicenciar o distribuir el Documento excepto en los casos expresamente autorizados en esta Licencia. Cualquier otro intento de copia, modificación, sublicenciamiento o distribución del Documento será nulo y sus derechos serán automáticamente anulados bajo esa licencia. De todas maneras, los terceros que hayan recibido copias o derechos, de su parte, bajo esta Licencia no darán por anuladas sus licencias siempre que tales personas o entidades se encuentren en total conformidad con la licencia original
10. Futuras revisiones de esta licencia
La Free Software Foundation puede publicar nuevas versiones revisadas de la Licencia de Documentación Libre GNU de cuando en cuando. Estas nuevas versiones serán similares en espíritu a la presente versión, pero pueden diferir en algunos aspectos con el fin de solucionar algunos problemas o intereses. Véase http://www.gnu.org/copyleft/. Cada versión de la Licencia tiene un número que la distingue de las demás. Si el Documento especifica que una versión numerada de esta licencia o «cualquier versión posterior» se aplica al mismo, tendrá la opción de cumplir los términos y condiciones de la versión especificada o de cualquier versión posterior que haya sido publicada —no como borrador— por la Free Software Foundation. Si el Documento no especifica un número de versión para esta Licencia, puede escoger cualquier versión que haya sido publicada —no como borrador— por la Free Software Foundation.Addenda
Para utilizar esta licencia en un documento que usted haya escrito, incluya una copia de la Licencia en el documento y añada la siguiente nota sobre el copyright y la licencia, justo después del título de la página:
Copyright © Año Su Nombre.
Permiso para copiar, distribuir y/o modificar este
documento según los términos de la Licencia de
Documentación Libre GNU, Versión 1.1 o cualquier
otra versión posterior publicada por la Free
Software Foundation; con las Secciones Invariables
ENUMERE SUS TÍTULOS, siendo INTRODUZCA el texto de
la cubierta frontal y siendo INTRODUZCA el texto de
la cubierta posterior. Se incluye una copia de la
licencia en la sección titulada «Licencia de
Documentación Libre GNU».
Si no tiene secciones invariables, escriba «sin secciones invariables» en lugar de decir cuáles son invariables. Si no tiene texto de cubierta frontal, escriba «sin texto de cubierta frontal». Haciendo lo propio con la cubierta posterior.
Si su documento contiene ejemplos de código de programa no triviales, recomendamos liberar también estos ejemplos con la elección de una licencia de software libre, como la Licencia de Pública General GNU, para permitir su uso en software libre.

Sábado 18 de julio de 2015

Richzendy Contreras

Richzendy Contreras
Richzendy.org » Gnu y Linux

Obtener listado de videos Youtube usando XML RSS con PHP

Martes 14 de julio de 2015

Como descargar archivos de la web con numeración secuencial

Lunes 13 de julio de 2015

ubuntu-ve: IX Aniversario de ubuntu-ve

Lunes 15 de junio de 2015

Cómo instalar Oracle Java en Debian

centOS 6

Si necesitas instalar la versión de Java de Oracle en Debian, puede seguir los siguientes pasos para realizarlo una vez que hayas descargado el binario desde la página de descarga de Oracle:

Una vez descargado el  procedemos a extraerlo en el directorio /opt:

# tar xvzf jdk-8u45-linux-x64.tar.gz

Primero vamos a consultar la versión de java actual:

# java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

Aquí puede verse que la versión a la que se hace referencia actualmente es la 1.7.0_79 de OpenJDK. Ahora vamos agregar la ruta de la nueva versión a usar:

# update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_45/bin/java 1

Esta última orden agrega la ruta /opt/jdk1.8.0_45/bin/java al binario /usr/bin/java java, es decir, este será el enlace simbólico a usar en caso de seleccionar esta opción. Vamos a configurar los alternatives para que apunte a la nueva ruta:

# update-alternatives --config java
  Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode
 1 /opt/jdk1.8.0_45/bin/java 1 manual mode
 2 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
 3 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode

Enter to keep the current selection[+], or type selection number: 1

Luego de seleccionar la opción 1, verificamos  la versión de java una vez más:

# java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

Ahora el binario de java apunta a la versión de Oracle. Cosa que podemos verificar consultando los enlaces simbólicos:

# ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 jun  9  2014 /usr/bin/java -> /etc/alternatives/java

# ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 25 jun 15 09:21 /etc/alternatives/java -> /opt/jdk1.8.0_45/bin/java

Sábado 13 de junio de 2015

¿Sabías que? cómo administrar múltiples llaves SSH

Llaves SSH: el concepto

SSH es un protocolo de inicio de sesión remota que ha sido la base de la seguridad de GNU/Linux (BSD y los UNIX en general) durante décadas, una de las características más importantes consiste en evitar la necesidad de usar usuario-contraseña para la autenticación, sino un sistema de llaves SSH pública-privada basado en el algoritmo RSA, con esto, mi equipo (y solo mi equipo) tiene acceso “sin contraseña” al host, pues se identifica usando una clave RSA.

Ahora bien, en un mundo cada vez más ávido de seguridad, casi todo lo que tenga que ver con datos (y especificamente con acceso a servidores) requiere llaves SSH, por ejemplo, github las requiere, bitbucket, Amazon otorga llaves para acceder a cada equipo, etc.

¿Cómo hacer para gestionar diferentes llaves SSH en un mismo equipo?

Cuando tenemos múltiples llaves SSH instaladas, es un fastidio tener que indicarlas cada vez en el comando SSH:

ssh -i ~/.ssh/xxx_id_rsa user@host

Deseo que podamos acceder claramente a nuestro equipo sin tener que indicar la llave RSA.

He acá el truco …

Configurando SSH

Debemos configurar SSH para que acepte una configuración especifica por cada host y/o conexión que requerirá su propia llave SSH.

Para dar un ejemplo, tengo 2 llaves privadas, una que me proporciona un servidor de Amazon AWS y otra, que generé con ssh-keygen para conectarme a github, dichas llaves son diferentes.

El primer paso es crear un archivo “config” dentro de nuestro directorio “.ssh” (ese directorio es por usuario).

vim ~/.ssh/config

Allí agregamos:

Host github.com
 HostName github.com
 PreferredAuthentications publickey
User phenobarbital
 IdentityFile ~/.ssh/id_rsa.github

Y paso a explicar:

Host: nombre “amigable” con el cual identificaremos el host en el comando ssh, puede ser cualquier cosa que nos ayude a memorizar su nombre (no tiene que ser ni el hostname ni la IP real)

Hostname: Esta si es la IP o nombre de host real del equipo al que me voy a conectar.

User: El único usuario con el que iniciaré sesión en ese host, en este caso, mi ID de github.

IdentityFile: Es la llave (que generé con SSH-KEYGEN y subí a github) con la que hago mis commits a github.

Guardo, aplico los permisos al archivo config y a la llave privada:

chmod 0600 /home/jesuslara/.ssh/id_rsa.github
chmod 0600 ~/.ssh/config

Y seguido de una línea nueva, agrego la siguiente definición de host:

vim ~/.ssh/config
Host blog
 HostName blog.phenobarbital.info
 User jesuslara
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/id_rsa.blog

Aplico los mismos permisos 0600 al archivo id_rsa.blog y listo!

Intenten hacer un:

ssh -l jesuslara blog

Y entrará sin pedir clave usando la llave privada que le hemos configurado.

Notas

  • Pueden indicar varias llaves privadas, repiten (una por línea) y openSSH intentará una por una:
Host me.github.com
 HostName github.com
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/id_rsa.github
 IdentityFile ~/.ssh/id_rsa
 IdentityFile ~/.ssh/id_rsa.2
  • Pueden indicar que intente con la llave SSH y si falla, que intente con password (o cualquier otro método alternativo de autenticación, por ejemplo gssapi)
PreferredAuthentications publickey,password
  • Si al servidor se accede por un puerto distinto, indicar en la configuración con la opción “Port”, ejemplo:
Host example.com
 HostName server.example.com
 User jlara
 Port 50222
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/id_rsa.2
  • Si desean que estos hosts estén declarados “system-wide” (para todos los usuarios) entonces deberán definirlos en el archivo:
/etc/ssh/ssh_config

Happy Hacking! y ¡Ya sabes como!

The post ¿Sabías que? cómo administrar múltiples llaves SSH appeared first on Phenobarbital con Soda.

Viernes 12 de junio de 2015

De vuelta…

El Blog de Luis está de vuelta después de un pausa de varios meses, y gracias a la ayuda de una amiga que me está proporcionando el hosting del blog. Varias personas me preguntaron o pidieron información que solo conseguían en mi blog, por lo que decidí reactivarlo nuevamente.

Espero les sirva de ayuda, aprendan algo nuevo o sea una vía para intercambiar información.

¡Disfrútenlo!

Domingo 24 de mayo de 2015

El "Ccleaner de linux" (para los que vienen de windows)

Está Escrito:
El proceder de la mujer adúltera es así: Come, y limpia su boca Y dice: No he hecho maldad. (Proverbios 30:20)

Tomado de: taringa.net

BleachBit
el "Ccleaner de linux" (para los que vienen de windows)

BleachBit es una herramienta que analiza elementos de nuestros programas como cachés, historiales, cookies o archivos temporales para poder eliminarlos y así conseguir más espacio.
BleachBit es compatible con programas conocidos como Firefox, Internet Explorer, Chrome, OpenOffice, Opera, GIMP, Skype, Vuze o XChat, con la posibilidad de buscar y borrar todos los ítems o seleccionar unos pocos.
BleachBit es una herramienta útil tanto para borrar archivos innecesarios, como para no dejar rastro de nuestras huellas en el PC.

RECOMENDACION: EJECUTALO COMO ROOT Y COMO USUARIO NORMAL, EN AMBOS CASOS SE ELIMINARÁN ARCHIVOS DISTINTOS!

* INSTALAR DESDE LA WEB DEL AUTOR
* Desde el repositorio Getdeb


gConf-Cleaner
el "limpiador de registro" para linux


acelerar

Si.. lastimosamente no solo en windows te pasa esto, si instalas muchas aplicaciones y dependencias en tu ubuntu y desinstalas tambien algunas despues de tanto te puede llegar a llenar de basura tu registro como pasa con windows, aunque aclarando que en mayor lapso de tiempo, pues ahora es que puedes usar GConf Cleaner que es una herramienta para limpiar archivos de configuración inválidos/desconocidos que se van almacenando en la base de datos del gconf.

INSTALAR
* CONSOLA:
sudo apt-get install gconf-cleaner
* Centro de software
* Pagina del Autor


UbuntuClean.sh
Scrip para automatizar tareas de mantenimiento.


Ubuntu

Este es un script que existe por internet, muy bueno, que automatiza una serie de comandos que limpian tu sistema. Estos comandos son:

* Limpiando cache de aplicaciones instaladas
sudo apt-get clean
* Limpiando aplicaciones no instaladas
sudo apt-get autoclean
* Limpiando posibles dependencias de aplicaciones no instaladas
sudo apt-get autoremove
* Eliminando archivos de configuración después de haber eliminado un paquete
sudo apt-get purge
* Eliminando viejos kernels
sudo apt-get purge $OLDKERNELS
* Vaciando las papeleras de todos los usuarios
rm -rf /home/*/.local/share/Trash/*/** &> /dev/null
rm -rf /root/.local/share/Trash/*/** &> /dev/null



INSTALAR
Pasos:

1- Abre tu editor de texto (nano, leafpad, notepad, gedit, etc...)
2- Copia el siguiente codigo en un documento y guardalo con el nombre que prefieras.
(debe tener la extension .sh.... por ejemplo: limpiador.sh)

CLICK AQUI PARA VER EL CODIGO
3- Dale permisos de ejecución a ese archivo

* desde consola, posicionandote en la carpeta donde esta primero (reemplaza archivo.sh por el nombre)
chmod 755 Archivo.sh
* desde tu administrador de archivo (dophin, thunar, nautilus, etc)
segundo boton en el archivo -> propiedades -> dar permiso de ejecucion
(esto es generico, puede variar segun tu adminsitrador de archivos)

4- Ejecutarlo

Hay 2 maneras

* La mas simple es poner el archivo en la carpeta /bin/ ya que al ponerlo en dicha carpeta se lo llama desde el comando
sudo archivo.sh
* ejecutarlo desde consola desde cualquier carpeta.. primero te ubicas en la carpeta y luego el mismo comando anterior.


GtkOrphan
el "limpiador de librerias huerfanas" para linux


mantenimiento

GtkOrphan (una aplicación Perl/Gtk2 para sistemas Debian) es una herramienta gráfica que analiza el estado de sus instalaciones, en busca de bibliotecas huérfanas. Se implementa una interfaz gráfica de usuario front-end para deborphan, añadiendo la capacidad del paquete de mudanza.

INSTALAR
* CONSOLA:
sudo apt-get install gtkorphan
* Centro de software
* Pagina del Autor 

Nota:
Para los interezados en Libros y Revistas que estoy Saliendo de ella Aqui...
Jorge Ortega

Jorge Ortega
Joenco

Mostrar los íconos en el escritorio en Debian 7 o superior

Cuando instalamos Debian 7 u 8, para nosotros los que tenemos discapacidad visual, al iniciar la sesión nos damos cuenta que el escritorio no nos verbaliza los íconos (home, trash, desktop, entre otros), esto se debe a que los mismos no están visibles, por lo que pensamos que no tenemos accesibilidad, pero no se preocupen que para activarlos es muy sencillo, solo debemos hacer un par de cosas.

 

Lo primero es ir a configuración avanzada, eso se consigue presionando “alt+f1 y escribiendo “config” (debemos buscar con las flechas la opción “configuración avanzada”) y pulsamos enter.

 

Lo segundo es que al abrirse la ventana, se nos presenta un cuadro combinado donde debemos buscar “Escritorio”, pulsamos la tecla tabular y activamos el botón que dice “have file manager handle the desktop” presionando la tecla espaciadorra o enter.

 

Ya con ese botón activo, tendremos los iconos en el escritorio, así que solo queda cerrar la ventana y eso lo hacemos con el menu contextual y buscar la opción cerrar.

 

También podemos abrir las configuraciones avanzadas escribiendo en una consola/terminal lo siguiente:

$ gnome-tweak-tool

y seguimos los pasos explicados arriba.

 

Espero les ayude! Saludos.


Lunes 18 de mayo de 2015

David Moreno

David Moreno
dm's blog

✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌✌

I turned 30.

Sábado 09 de mayo de 2015

Silvio Perez: TOOL for check fs remotely

Lunes 04 de mayo de 2015

Cómo hacer que Yii 1.x cargue automáticamente las clases de Composer

Hoy en día si programas una aplicación en PHP, es muy probable que utilices composer para instalar y manejar las dependencias de tu programa; sin embargo, aunque es fácil de utilizar e instalar dependencias, muchas veces tenemos problemas para instanciarlas en nuestra aplicación por los distintos formatos existentes (debido a la distintas versiones de PHP) utilizados para la carga de clases.

Con Yii framework es posible configurar para que cargue todas las clases instaladas con composer automáticamente, para ello, debes comenzar agregando lo siguiente en tu archivo composer.json

"config": {
  "vendor-dir": "protected/external" //definimos la carpeta de instalación
},
"autoload": {
  "psr-0": {  //definimos el estándar a usar
   "config": "./",
    "": "src"
  },
  "classmap": ["protected/"] //CREO que define el namespace raíz de las clases
},
"require": {
  "php": ">=5.3.2", //la versión de php a usar
  "yiisoft/yii": "1.1.*", //la última versión de Yii 1.1
}

En tu archivo /index.php modificamos el atributo classMap de la aplicación Yii, para incluir las rutas de los componentes externos que han sido instalados con composer:

require_once($yii);
$loader = require(__DIR__ . '/protected/external/autoload.php');
Yii::$classMap = $loader->getClassMap();
Yii::createWebApplication($config)->run();

¡Listo! A partir de ahora se cargaran automáticamente, las clases ubicadas en las rutas definidas en /protected/config/main.php y todas las ubicadas en la carpeta protected/external. De esta forma, puedes instalar componentes/clases/liberías desde composer y automáticamente se integrarán a tu aplicación Yii.

Viernes 24 de abril de 2015

Javier Valdivé

Javier Valdivé
[g3o@blog:~]#

Elementary Freya 0.3 - Escritorio Abril 2015



Jueves 23 de abril de 2015

José Miguel Parrella Romero

José Miguel Parrella Romero
null pointer dereference

Why we go to LinuxFest Northwest

For the second year in a row since I moved to Redmond, I’ll be joining the Microsoft crew sponsoring and attending LinuxFest Northwest in Bellingham, Washington. This is one of the largest, if not the largest Linux & open source event in the region and draws large crowds of smart geeks from Canada, the United States and other countries, as well as corporate sponsors like us.

One of the questions I get the most is why does Microsoft sponsors and participates this event? Microsoft has been sponsoring and participating in many open source conferences, projects and events in many parts of the world but some people are wondering why a non-corporate, pure Linux event, and some others are naturally skeptical about it.

I don’t think there’s a single reason why we rally to convince our bosses to do it, but we have been trying to do more closer to home, when it comes to open source. There is a vibrant Linux and open source ecosystem in Redmond, the Puget Sound area and the Pacific Northwest and while we have been very active in Europe and in the Bay Area, we haven’t done a good job of connecting with the people closer to home.

For example, I recently had the fantastic opportunity to help the Pacific Northwest Seismic Network from the University of Washington to run their Ubuntu-based Node.js applications for their “Quake Shake“. I think being able to help with that project or with any other project or conference in any other part of the globe is a good thing – but there’s no distance excuse for Bellingham!

Another great reason is the LFNW community itself. We love the crowd, the lively discussions, the sharing and learning spirit. And as long as we are welcome by the community we’ll continue to seek opportunities to connect with it. Plus, this is a really cool conference. This year, I’m cutting my vacations to attend the event. A coworker is skipping church duty to help. We have heard from many engineers and program managers that they will be attending and want to carpool and staff the booth. And my friend has been investing all this time in logistic ensuring we are having a meaningful presence.

The community invites some of the sponsors to bring unique content that is relevant to the participants. Last year I had the opportunity to demo a Raspberry Pi device connected to Office via Azure. Most people in the room didn’t know Office runs in a browser, or that Azure could run Linux. But they listened and they thought it was cool. Some of them are now partners, helping customers do more with open source in Azure.

This year, I want to bring more Debian to this event because I have been working a lot inside of Microsoft to get more people up to speed with Debian-based development and we have serious community momentum around Debian in Azure. In true Microsoft tradition, we will have a cake to celebrate the arrival of Debian 8. I’ll have in mind all of those friends in the Debian community with whom I’ve been working with for years to make sure we don’t drop the ball when it comes to responding to what our customers, partners and the community want when it comes to Debian.

And, hopefully, next year we’ll be back again in Bellingham for LinuxFest Northwest 2016!


Miércoles 22 de abril de 2015

Valencia Software Libre: Invitacion: Flisol 2015 Valencia Charlas e Instalaciones

Lunes 20 de abril de 2015

Como arreglar gráficamente los URLs de tu sitio WordPress en tu BD al migrar desde tu servidor local a producción

En el anterior artículo de este blog, hablé sobre Como migrar la base de datos de WordPress de local a producción y mediante un programa arreglar las URLs que quedan con el dominio localhost. Sin embargo, varias personas me comentaron su imposibilidad de utilizar ese método porque no tienen acceso SSH o a la terminal de sus servidores, pues sus proveedores de alojamiento web solo les da cuenta FTP y acceso a un panel.

Para estos casos, existe un programa de código abierto llamado Search Replace DB que consiste en una página web que instalas en la raíz del sitio, ésta detecta la configuración de la base de datos de WordPress y mediante un sencillo formulario puedes: escribir la URL que habías configurado como local y la de producción, seleccionar las tablas donde debe buscar la información, migrar a InnoDB (no veo razón de usar otro motor en WordPress) y probar los cambios antes de ejecutarlos.

Interfaz de Search Replace DB

Interfaz de Search Replace DB

Como ves, es una aplicación sencilla de utilizar y solo requieres tener acceso para subir archivos al servidor. Luego de realizar estos cambios, puedes borrar los archivos con un solo clic para evitar futuros accesos no autorizados a esta herramienta y causar daños en tu base de datos.

Espero que les sea útil esta información y si conocen otra alternativa no duden en comentarla.

 

 

 

Domingo 19 de abril de 2015

ubuntu-ve: FLISoL 2015

Miércoles 15 de abril de 2015

Valencia Software Libre: Flisol 2015 Valencia Carabobo

Domingo 12 de abril de 2015

José Miguel Parrella Romero

José Miguel Parrella Romero
null pointer dereference

Thoughts on growth and open source services

For many years I was infatuated with the idea of creating value out of open source professional services. To a certain extent, this is a function of when, where and how I was exposed to open source. Even today, after acknowledging the challenges of this model (the hard way) I find myself spending time modelling what needs to change in order to innovate it.

While today there are statistically no skeptics of the tremendous impact that open source software has had in and beyond the IT industry, thinking prevails that the open source opportunity doesn’t lay on professional services.

It’s commonly accepted that only a handful of players have found success in this model. In fact, some would argue that it can only be one that exhausts it for everybody else. Media commentators shun on rising startups whose business model smells too much of support and services.

As Ben Werdmüller recently wrote (motivating me to write this article) those services are not recurring and not scalable. And there’s also proof in the market that well designed, talented and recognized organizations eventually fail in their efforts to seize the open source consulting business.

Back in 2008, after 5 years selling open source services either as a freelancer or in small firms, I was invited to lead technical strategy for an open source focused system integrator in Venezuela. The organization had recently scored a support agreement with a large multinational hardware vendor for a subset of their customers’ Linux needs, and they were looking for a portfolio and an attractive environment for talent and for growth.

I spent the next 3 years building a team of 50+ in several countries in Latin America, shipping open source products and solutions and managing large consulting projects for customers in the public and private sector. That support agreement became 3 partnership agreements with large IT multinationals. Yet with all the impact, the challenges of dealing with the subtleties and complexities of the open source professional services challenge remained unaddressed.

There were numerous learnings I grabbed from that experience, ranging from managing a team of talented professionals who went on to highly successful roles in Europe and the Americas, to the art of marketing something as bland and commoditized as open source consulting.

Among the fun learnings: with a highly mobile talent pool in multiple countries we managed our daily operations via IRC. We also built a lean-and-mean sales process led by the delivery teams, not sales, embraced document and knowledge management and invested in the communities and ecosystem that help open source be successful.

But I digress. Portfolio-wise, we had organized our offering in three core areas (infrastructure, applications and databases) and a number of incubation areas that gave us a unique competitive advantage such as knowledge management and end-user experience (we focused a lot on Linux in the desktop) or business intelligence and unified communications. All with open source, all with Linux.

Yet market disruptions, such as government policy in an economy where public sector concentrates an overwhelming amount of spending power, contributed to mask the unaddressed. Since 2004, there was a stated pro-open source policy in the public sector which evolved into a number of unstated policies trickling to public and private sector alike.

When this policy was introduced there was a small talent pool to cover the complex needs of a public sector that sprawled beyond the vertical with plenty of Oil & Gas, Financial Services, Manufacturing and other needs. Furthermore, virtually no relevant foreign organization took advantage of this opportunity due to general market conditions, a difference between how similar policies were rolled out in, for example, Ecuador (where the US dollar is the local currency)

Therefore, supply and demand reality made margin management, a critical discipline in the services business, an afterthought. Plus, the depth and quality of our technical results was a catalyst for business opportunities so marketing wasn’t really in the picture. We were a go-to open source consulting company and we got away with selling bland OpenLDAP clusters and Asterisk IPBX as if they were actual products, repeatable and scalable.

And in exploring other models we found support was something we actually enjoyed: we were really proactive and fanatical about it and generally speaking never had to sell a support agreement. In the training side of things we managed to set consistency standards across courses and deployments but all accrued to that non-recurring base of services, to that dreaded hourly rate. So they were never differentiated sources of growth as it always converged in a consulting project.

At some stage we did invest in a products team that explored all the right things which years later hit the market (agile embedded with general purpose Linux OS, SaaS and cloud-powered IPBXs, analytics and insights, etc.) but the reality is that our operation corpora was built on a professional services foundation which made it unrealistic to detach. We tried using a different brand for our product labs, but the talent we had attracted and developed thrived in services.

I still see the boundaries of a VAR, an ISV and an SI as pretty artificial in the open source world, just as I find it less relevant to look at the boundaries of development and IT professionals with an open source hat on. Of course the business models are different, some are based in volume and depend on marketing and channel while others are based in margin and depend on trust and references. This mix is not different from what we’re seeing today in open source startup IPOs.

Today I don’t struggle to articulate a value proposition or find demand for the open source capabilities I’m selling. I’m struggling to find the right partner to help me scale. And I refuse to believe I can only go to a global SI or a well-known Bay Area ISV for those needs, when I have lots of VARs, SIs and ultimately great people in local markets who can land meaningful solutions. Yet I’m wary about putting all the eggs in the basket of building value out of open source professional services.

We’re now living interesting times where the successful players in this space are crowd sourcing services growth via channel. This is a fascinating move from an open source support and services behemoth and has a lot of potential if it can connect the local talent with consistency that accrues to growth.

In the meantime, common sense will still indicate that entering the market to sell non-repeatable open source professional services can be highly rewarding in developing people, acquiring and developing know-how and making an impact. It can even help reduce the consumption gap for a complex product and help build market share. It just doesn’t seem to be a high-growth strategy for most people out there.


Lunes 06 de abril de 2015

Como migrar tu base de datos de WordPress desde tu servidor local a producción

Generalmente si eres un buen desarrollador, tendrás tu entorno de desarrollo (servidor web, base de datos, etc) instalado en tu máquina local. De esta manera, puedes trabajar rápidamente al evitar solicitudes al servidor web remoto cada vez que realices modificaciones en un archivo o necesites visualizar cambios (por nombrar ejemplos), además, no requieres conexión a Internet, por lo que si ocurre una falla con el servicio o estas usando el ancho de banda para descargar cosas, no afectará tu flujo de trabajo.

En el caso de WordPress, existen dos opciones de configuración: home y siteurl que indican las URLs de la página inicial y sitio respectivamente. Por ello al realizar una instalación y configuración local, éstas variables tienen valores que apunta a localhost. Entonces, al momento de migrar la base de datos al servidor de producción, muchos enlaces quedan bajo el dominio localhost y no al dominio del sitio. Cambiar estos valores no ayuda mucho, pues si tienen imágenes, vídeos y archivos enlazados a contenidos creados dentro del editor, verán que no son accesibles porque siguen apuntando a localhost.

Para cambiarlo, se puede hacer con WP-CLI que es una útil herramienta de interfaz de comandos para WordPress, donde puedes administrar el sitio, datos, respaldos, entre otras cosas, sin salir de la consola. Pues para renombrar los URL de localhost a tu dominio, simplemente debes ejecutar los siguientes dos comandos.

Instalas wp-cli en tu sitio wordpress de producción usando curl:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Luego ejecutas el comando search-replace cuyo primer parametro es la dirección actual (la local) y el segundo la dirección final del sitio:

wp search-replace 'http://localhost/sitio-de-desarollo' 'http://sitio-de-produccion.com/'

En caso que no te sirva el comando anterior porque no tienes configurado para la ejecución de archivos PHP automáticamente desde la consola ejecuta:

php wp-cli.phar search-replace 'http://localhost/sitio-de-desarollo' 'http://sitio-de-produccion.com/'

¡Listo! El comando se encargará de buscar en la base de datos cualquier referencia y la actualiza.

P.D: Si siempre trabajas en el servidor de producción o en un servidor remoto, estas perdiendo tiempo, ancho de banda, recursos y sobre todo dinero. ¡Aprende a optimizar!

Domingo 05 de abril de 2015

Héctor Colina

Ip real detrás de proxy web

Una de las acciones más utilizadas en el mundo de la virtualización es la de tener un proxy web que reciba todas las peticiones web que llegan al dom0 y pasarlas a las correspondietes VM que estén bajo su control y que puedan respondar a las respectivas peticiones web.

Sin embargo, la configuración estandar impide que podaos ver, por ejemplo, las direcciones IP reales que llegan a la VM, obteniéndose, en su lugar, la IP del dom0:

  IP CLIENTE          IP DOM0          IP LOG EN VM
==============      ==============     ===============
|190.9.XX.XX | -->  | 192.168.0.1| --> | 192.168.0.1 |
==============      ==============     ===============

Lo anterior podemos verlo en el siguiente trozo de log de un servidor lighttpd que responde peticiones provenientes de un servidor proxy web que funciona en nginx

prueba.mydomain.net.ve 192.168.0.1 – – [05/Apr/2015:08:36:12 -0430] “GET / HTTP/1.0″ 404 345 “-” “Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0″

Lo que deseamos es que el campo de la ip nos muestre la ip real del cliente que hace la conexión y no la ip del dom0.

La solución correcta en lighttpd es a siguiente:

a) Configurar y activar el módulo accesslog de lighttpd; en debian este módulo tiene su archivo de configuración aparte, ubicado en /etc/lighttpd/conf-available:

a-1) Configurándolo: para ello agregar al archivo /etc/lighttpd/conf-available/10-accesslog.conf la siguiente cadena al final del mismo:

accesslog.format = “%{X-Forwarded-For}i %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\””

a-2) Activar el módulo:

lighty-enable-mod accesslog

b) Configurar el módulo extforward, para ello, en su archivo de configuración de lighttpd coloque:

extforward.forwarder = (
     "192.168.0.1" => "trust"
  )
extforward.headers = ("X-Cluster-Client-Ip")

Nótese que la ip colocada acá es la del dom0 que se conecta con las VM, en nuestro caso es 192.168.0.1

c) Reiniciar lighttpd

Es muy importante el paso a-1 ya que muchos tutoriales no indican que debe colocarse la cadena %{X-Forwarded-For}i lo cual impide conocer la ip real.

Al finalizar esta configuración, el log del lighhtpd configurado en la VM debe mostrar algo como:

190.77.XX.XX – – [05/Apr/2015:08:52:45 -0430] “GET / HTTP/1.0″ 200 2682 “-” “Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0″

Quedando nuestro esquema, entonces, de la iguiente forma:

  IP CLIENTE          IP DOM0           IP LOG EN VM
==============      ==============     ===============
|190.9.XX.XX | -->  | 192.168.0.1| --> | 190.9.XX.XX |
==============      ==============     ===============

Espero disfruten la ayuda 😀

Viernes 03 de abril de 2015

Carlos Colmenarez

Carlos Colmenarez
El Blog de Zero » LINUX

¿Qué son los repositorios en Linux?

Los repositorios forman parte de todas las distribuciones Linux y cumplen un rol muy importante ¿pero que son?

Hace poco les hablábamos de algunos términos relacionados con el software libre que seguramente habías escuchado, repositorio es uno de ellos. Saber que son y como funcionan nos ayudara a mantener mas eficientemente nuestra instalación.

Los repositorios en Linux son grandes bancos de datos o servidores que alojan las aplicaciones que tu sistema necesita, entre ellos paquetes nuevos y actualizaciones que se instalan mediante un manejador de paquetes. Como ves, no solo contienen los paquetes no instalados previamente sino que gracias a sus actualizaciones mantienen tu sistema al día. Ahora, hay dos tipos de repositorios, los oficiales y no oficiales.

Tipos de repositorios

Los repositorios oficiales contienen las aplicaciones que tu distribución soporta y que, dependiendo de sus políticas, muchas veces cuentan con un protocolo de revisión muy riguroso para asegurarse de que todos los paquetes que contienen se encuentran en estado óptimo y no representan riesgos de seguridad o estabilidad para el sistema. Por ejemplo, en Arch Linux, algunos de los repositorios oficiales son Core, Extra y Community. Cada uno de ellos contiene paquetes de diferente índole como systemd, xorg, chromium y gnome por mencionar algunos.

Los repositorios no oficiales contienen paquetes de aplicaciones no soportadas directamente por la distribución, por lo tanto carecen de los protocolos de revisión que mencionamos anteriormente y, aunque contienen aplicaciones muy útiles para tu sistema, deben ser manejados con cuidado. Estos repositorios son mantenidos por comunidades organizadas de usuarios y al ser no oficiales no están incluidos por defecto en las listas de repositorios, pero pueden agregarse muy fácilmente. Por ejemplo, para el caso de Ubuntu, los repositorios no oficiales son los PPA (de Personal Package Archive) y en ellos podrás encontrar paquetes como VLC, Turpial y Gimp.

Las distros derivadas usan los mismos repositorios de sus distribuciones padres. Por ejemplo, Linux Mint utiliza los mismos repositorios que Ubuntu, su distribución padre, al contrario de Linux Mint Debian Edition que usa los de Debian.

Para sacar la mejor ventaja de los repositorios en Linux, oficiales y no oficiales, debes elegir muy bien cuales agregas. Es importante que conozcas las fuentes de tus aplicaciones y las versiones de los paquetes que estas instalando pues de esta manera te aseguras de no comprometer tu sistema. Conocer cómo funciona el manejador de paquetes también es muy importante, pues éste es tu intermediario con los repositorios. Para mas información, no dudes en visitar la documentación oficial de tu distribución.


Jueves 26 de marzo de 2015

Carlos Colmenarez

Carlos Colmenarez
El Blog de Zero » LINUX

10 razones por las que Firefox es mejor que Chrome

El navegador de Internet Firefox es mejor que Chrome en ciertos aspectos. Veamos qué podría aprender Google de él.

Hace unas semanas decidí darle una oportunidad a Firefox, uno de los exploradores de Internet más usados hoy en día. Habiendo sido un usuario fiel durante años de Google Chrome (y de Chromium en Linux) no estaba seguro de lo que me iba a encontrar. Las únicas veces que usaba Firefox eran de pasada en los ordenadores de la universidad, simplemente porque aparte del infame Internet Explorer era el único navegador de Internet instalado en ellos.

Durante este tiempo, he descubierto lo mucho que ha ido evolucionando Firefox durante estos años y lo diferente que es la nueva experiencia de usuario que ofrece este explorador. Por mucho que me guste Google Chrome, hay varios aspectos que desearía que fueran diferentes. Por todos ellos, he decidido recopilar unas cuantas razones por las que pienso que Firefox es mejor que Chrome.

Como en todo artículo de opinión, lo que vais a leer se basa principalmente en opiniones subjetivas. Nadie tiene la verdad absoluta en lo que a navegadores de Internet se refiere, pero en mi caso se que Firefox cumple con lo que necesito. Veamos cómo lo hace.

1. El uso de memoria RAM

La razón principal por la que decidí dar el salto a Firefox era el excesivo consumo de memoria RAM que hacía Google Chrome en mi PC. Siempre había estado contento con los 6 GB de mi portátil, pero a cada versión nueva de Chrome tenía la sensación de que el hambre de este explorador aumentaba. Además, siendo yo un consumidor de pestañas patológico (decenas de pestañas abiertas) mi memoria RAM se esfumaba enseguida. Firefox necesita menos recursos, por lo que puedo tener más cantidad de pestañas abiertas.

2. Personalización por defecto de los elementos de la interfaz

firefox-personalizar-interfaz2

La personalización de Firefox la podemos dividir en varios aspectos. En este punto, vamos a hablar de las configuraciones que le podemos hacer a la interfaz por defecto. En el explorador del titán de los buscadores, apenas podemos configurar la interfaz; cambiar los botones de las extensiones de orden y hacer aparecer la barra de marcadores es lo único que seremos capaces de personalizar.

Sin embargo, en Firefox podremos personalizar la posición de absolutamente todo. Desde la posición de los botones y las barras de navegación, a poder añadir botones nuevos al menú.

3. La experiencia de uso en las pestañas

¿Habéis abierto muchas pestañas en Google Chrome? Llega un momento en el que no ves que es lo que has abierto porque no se ve el icono de la página que visitas ni texto alguno en las pestañas. Firefox lo que hace es mostrar unas pocas pestañas y unos controles con los que movernos a las demás, lo encuentro más útil porque me entero de lo que tengo abierto.

4. Personalizar el tema

En Google Chrome, las personalizaciones de temas no pasan de cambiar el esquema de colores y el fondo. Firefox, por otra parte, es capaz de hacer eso y más. Mediante extensiones de terceros puedes convertir a Firefox en un navegador único que se adapte a tu estilo de trabajo.

En mi caso que trabajo en un portátil, el espacio vertical es muy importante porque a medida que añadimos elementos como la barra de navegación o marcadores, vamos perdiendo espacio. Por ello he hecho lo siguiente: he puesto una barra lateral de pestañas cuyos títulos se leen sin problemas y que además puedo ordenar en grupos. Y en la barra superior, al pasar el ratón aparecen los controles de navegación y marcadores (puedes elegir lo que quieres ocultar o mostrar) ahorrándome muchísimo espacio. ¿Así no parece Firefox, verdad?

5. Las extensiones

Como habéis podido comprobar en el punto anterior, las extensiones pueden editar cualquier apartado de Firefox. Tienen un control superior sobre el navegador de lo que pueden ofrecer las extensiones de Chrome.

6. Privacidad

No tenemos que olvidarnos de que Google basa su negocio en la publicidad y que para ello debe hacer una recolección de datos de sus usuarios. Si no os gusta que se recojan datos sobre vosotros Firefox es una buena opción, que aporta funciones como decirle a las webs que no nos rastreen, incluye el buscador DuckDuckGo por defecto y nos da la opción de no enviar datos de uso si no queremos.

7. Almacenar datos en tu propio servidor

Cuando usamos Google Chrome, nuestros datos se almacenan en servidores de terceros. En Firefox, por defecto también ocurre lo mismo pero tenemos la opción de alojar nuestros datos en un servidor propio, donde solamente nosotros y los dispositivos vinculados tendrán acceso.

8. Carga individual de pestañas

Si hemos configurado nuestro navegador para que se inicie abriendo las pestañas que estuvimos usando en la sesión anterior, puede ralentizarse un poco. Firefox, por defecto activa la opción de cargar las pestañas al entrar en ellas, algo que en determinados PC es de agradecer.

9. La empresa que esta detrás del proyecto

Los días del “don’t be evil” de Google hace tiempo que quedaron atrás. Es una empresa que se lucra mediante la información que envían los usuarios por usar sus productos gratuitamente. Hay a quien le parecen bien esos métodos, pero para los que no, existe la Fundación Mozilla, empresa sin ánimo de lucro detrás de Firefox. Los principios de esta fundación están muy claros, promover la apertura, la innovación y la oportunidad en la Web.

Saber quien está detrás del producto que usamos es algo muy importante, porque nos da una idea de a dónde pueden evolucionar o qué valores van a defender.

10. Derivados de Firefox

firefox-es-mejor

Para finalizar esta lista me gustaría hacer una breve mención a los navegadores de Internet que derivan de Firefox. Entre ellos me gustaría nombrar a Tor Browser Bundle y a Firefox Developer Edition (imagen anterior). Mientras que el primero es un navegador enfocado en la privacidad que utiliza la red Tor (¿hace un paseo por la Deep Web?) el segundo es otro enfocado en los desarrolladores. Hay varios proyectos más pero estos dos son los que más me han llamado la atención.

Al final del día lo que importa es que te sirva a ti

Si Firefox no tiene las características que necesitas no tienes por qué usarlo. Lo realmente importante es que puedas trabajar a gusto en él y ser productivo. Para mí últimamente (a ver cuanto me dura) es Firefox, pero para ti puede ser Chrome, Safari, Opera o incluso Internet Explorer [inserte burla a Internet Explorer aquí].

visto en hipertextual.com


Carlos Colmenarez

Carlos Colmenarez
El Blog de Zero » LINUX

6 formas de mejorar tu conexión WiFi

Aunque muchas veces parezca imposible, existen formas de mejorar la conexión WiFi, ya sea con soluciones caseras o invirtiendo en algo de infraestructura.

Qué molesto es trasladar el equipo informático a una nueva habitación de la casa para de repente comprobar que “no le llega bien el WiFi”. Y muchas veces es tan sencillo como ubicar mejor el router o hacer algunos ajustes nada complicados. Para aquellos que se hayan desesperado alguna vez a causa de un alcance deficitario de su red inalámbrica o para aquellos que sean propensos a entrar en crisis si se topan con un problema de este estilo, a continuación ofrecemos una serie de consejos para mejorar la conexión WiFi.

Ubicar mejor el router

A veces el router no se encuentra en la mejor de las posiciones para transmitir su señal. Una habitación situada en el extremo de la casa o los bajos de una estantería no son el lugar óptimo. El dispositivo deberá encontrarse en un sitio central, desde el que pueda ofrecer una conexión fluida a todos los espacios que lo requieran. Si es necesario se puede comprar un cable Ethernet que permita situarlo en la mejor ubicación.

Colocar un segundo router

Otra opción para mejorar la conexión WiFi es establecer un segundo router como otro punto de acceso, que en la práctica actuará como un repetidor de señal. Para esto es necesario conectar los dos puertos LAN de los aparatos. Los dispositivos más nuevos incluso vienen preparados para servir como puntos de acceso. Una vez dentro de su configuración es tan sencillo como hacer clic en una de las opciones. Para los modelos más antiguos hay que mancharse más las manos. La dirección IP debe variar ligeramente de un router al otro, hay que asegurarse de que el SSID y la seguridad son iguales en ambos. Por último, en el segundo dispositivo el protocolo de red DHCP debe desconectarse.

mejorar la conexión wifi

Invertir en infraestructura

Muchos modelos de routers nuevos vienen con antenas integradas, pero hay otros que aún la tienen externa. Por supuesto se puede cambiar por otra de más alcance, lo que debería proporcionar una mejora significativa. También es posible adquirir un repetidor (suele funcionar mejor que aprovechar un segundo router), aunque estos dispositivos no siempre son fáciles de configurar para adaptarse a la red. Por último en el apartado de inversiones siempre existe la posibilidad de comprar un nuevo router, con más potencia y mayor alcance.

Una solución casera

Si lo que queremos es no gastarnos ni un céntimo existen otras formas de mejorar la conexión WiFi, digamos que de manera casera. ¿A alguien le suena cómo crear una antena de televisión con papel de aluminio? Pues básicamente es lo mismo. Este material, así como otros metales, amplían la señal. Se puede colocar detrás de la antena del router a modo de pantalla (orientada según las necesidades), creando un sistema similar al que emplean las antenas parabólicas. Hay quien ha comprobado incluso la efectividad de latas de refresco para este cometido.

Cambiar el canal del WiFi

Los routers trabajan generalmente en los canales 1, 6 u 11. Si el nuestro se encuentra en uno saturado el rendimiento mejorará al cambiarlo a otro. Esta información se puede conocer con la herramienta gratuita inSSIDer, que está repleta de datos, pero sólo hay que fijarse en el parámetro ‘channel’. Posteriormente hay que entrar en la configuración del router para cambiar el canal.

Actualizar el firmware

Los routers también son dispositivos basados en software, pero a éste no siempre se le presta la atención debida, como sí se hace en smartphones o en ordenadores.  Los routers destinados a empresas suelen avisar de las actualizaciones del firmware, pero los que recalan en los hogares no siempre lo hacen (sobre todo los antiguos). Las actualizaciones se pueden buscar en la web del fabricante, descargarlas y después instalarlas desde la interfaz del router.

Pero no sólo los router pueden incrementar su rendimiento si se actualiza su firmware. Lo mismo ocurre con los adaptadores de red o antenas integradas en los dispositivos. Hay que comprobar en la configuración de las redes si la última actualización del fabricante está instalada.

Visto en: http://blogthinkbig.com/mejorar-la-conexion-wifi/


Sábado 14 de marzo de 2015

Problemas con aplicaciones java en Awesome WM

Ya he hablado en otros posts sobre mi [odio a Gnome][1], y de que ahora en Linux utilizo exclusivamente [Awesome WM][2] como mi Windows Manager preferido desde hace varios años. Por cuestiones de mi trabajo, empleo mucho una aplicación para dibujar orbitales moleculares y moléculas en general que se llama: [jmol][3]. Jmol está muy bien, y  me parece excelente el hecho de que posee una consola lo que me hace recordar un buen sistema Linux. Sin embargo, está escrita en java…

Domingo 22 de febrero de 2015

Instalando phpMyAdmin en Debian Wheezy

Saludos a todos

Hace un tiempo publique como instalar un servidor de base de datos MySQL en Debian, en esa oportunidad explicaba como instalar y configurar el servicio del servidor MySQL desde la linea de comando, ahora le ofrezco como administrar gráficamente este servicio de base de datos para usando una herramienta gráfica y Web llamada phpMyAdmin.

phpMyAdmin

phpMyAdmin

Instalación

Para la instalar phpMyAdmin solo requiere ejecutar el siguiente comando:

# aptitude install phpmyadmin

Uso

Luego que termine la instalación de phpMyAdmin puede usarlo accediendo por medio del navegador Web de su preferencia a la dirección http://localhost/phpmyadmin

Bienvenido a phpMyAdmin

Bienvenido a phpMyAdmin

Para acceder a administrar sus base de datos usted allí debe colocar el nombre de usuario y contraseña de MySQL, entonces le mostrar una pantalla principal de gestión de base de datos Web de phpMyAdmin.

Configuraciones generales de phpMyAdmin

Configuraciones generales de phpMyAdmin

De esta forma puede administrar sus base de datos de forma gráfica y a través de la Web usando el navegador de su preferencia.

Ver también

Le recomiendo consultar el siguiente enlace para complementar el conocimiento adquirido en esta entrada en mi blog.

Espero sea de utilidad esta entrada en mi blog.

Ayúdame a seguir escribiendo en mi blog y dona 1 dolar aquí.


Instalación de paquetes Python con Distribute y pip

Previamente explique como hacer instalar paquetes Python con setuptools y EasyInstall y ahora le presento la manera actualmente mas recomendada para instalar paquetes Python con las herramientas Distribute y pip.

Introducción

Python

Python

Python, Es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico, es fuertemente tipado y multiplataforma.

¿Qué es Distribute?

Distribute es un conjunto de mejoras en el módulo de la biblioteca estándar de Python: distutils (para Python 2.3.5 y hasta en la mayoría de las plataformas, plataformas de 64 bits requieren como mínimo de Python 2.4) que le permite crear con más facilidad la distribución de paquetes de Python, en especial los que tienen las dependencias de otros paquetes.

Distribute se creó porque el paquete Setuptools actualmente ya no se mantiene. Los paquetes de terceros, es probable que requieran setuptools, que es proporcionado por el paquete Distribute. Por lo tanto, en cualquier momento si los paquetes dependen del paquete SetuptoolsDistribute intervendrá para decir que ya ofrece el módulo de setuptools.

Move from Setuptools to Distribute

Estado actual del Empaquetamiento en Python

El módulo distutils es parte de la librería estándar de Python y aun lo será hasta la versión Python 3.3.

Nota: El módulo distutils será descontinuado en Python 3.3.

El módulo distutils2 (note el número dos) tendrá compatibilidad hacia atrás hasta Python 2.4 en adelante; y será parte de la librería estándar en la versión Python 3.3.

El módulo distutils provee las bases para empaquetar aplicaciones Python. Desafortunadamente, el módulo distutils está plagado de problemas, razón por la cual un pequeño grupo de programadores de Python están trabajando en distutils2. Sin embargo, hasta que distutils2 este completado, se recomienda que en el desarrollador pueda usar tanto el paquete distutils como el paquete Distribute para empaquetar software Python.

Al mismo tiempo, si un paquete requiere el paquete Setuptools, la recomendación es que instale el paquete Distribute, el cual provee una versión más actualizada del paquete Setuptools que el paquete original de Setuptools.

En el futuro distutils2 remplazará a setuptools y distutils, le cual también removerá la necesidad de Distribute. El como del estado anterior distutils será removido de la librería estándar. Para más información, por favor, consulte el Futuro del Empaquetado en Python.

El estado actual de Empaquetado en Python

Consejo

Ver el vídeo de la PyCon 2011 – Packaging, from Distutils to Distutils2, Packaging or installing a Python application can be extremely painful por Tarek Ziadé esta charla le sumergiera dentro de las nuevas características de Distutils2 y explica como usted puede usarlo en su proyecto hoy para hacer más fácil la vida para todo el mundo (usuarios, administradores de paquetes de Sistemas operativos, programadores, etc.).

Para descargar el vídeo haga clic aquí (Tamaño 294 mb) y para ver por vídeo Stream haga clic aquí.

¿Qué es pip?

pip es una herramienta para instalar y administrar Paquetes Python, como los que podemos encontrar en el Índice de Paquetes de Python – PyPI.

Truco

Esta herramienta es el remplazo para la famosa herramienta easy_install.

En su mayoría, pip utiliza las mismas técnicas para encontrar los paquetes, por lo que los paquetes que se instalaban usando la herramienta easy_install  también deben ser instalables con la herramienta pip.

Esto significa que usted puede utilizar con el siguiente comando:

$ pip install AlgunPaquete

En lugar del tradicional comando usado con la herramienta easy_install como se describe a continuación:

$ easy_install AlgunPaquete

pip comparado con easy_install

pip ofrece mejoras a la herramienta easy_install. Algunas de las mejoras son:

  • Todos los paquetes se descargan antes de iniciar la instalación. Una instalación parcialmente completada no se produce como resultado.
  • Tiene cuidado de presentar una salida útil en la consola.
  • Las razones de las acciones de instalación se le aplica un seguimiento. Por ejemplo, si un paquete se está instalando, pip sigue la pista de por qué ese paquete era necesario.
  • Los mensajes de error debe ser útiles.
  • El código fuente es relativamente conciso y coherente, por lo que es más fácil de usar mediante programación.
  • Ofrece soporte nativo para otros sistemas de control de versiones (Git, Mercurial y Bazaar)
  • Tiene un mecanismo de desinstalación de paquetes.
  • Fácil de definir conjuntos de requerimientos y reproducir de forma fiable un conjunto de paquetes.
  • Los paquetes no tienen que ser instaladas como archivos de huevo, que pueden ser instalados en forma plana (mientras cuida la metadata de paquetes Egg).

pip no hacer todo lo que se easy_install. En concreto:

  • No se puede instalar a partir de paquetes Egg. Sólo se instala desde el código fuente. (En el futuro será bueno si se pudiera instalar los binarios de Windows EXE o MSI -.. pero instalar paquetes binarios para otras plataformas no es una prioridad).
  • No entiende la sección SetupTools Extras (como package[test]). Esto podría ser agregado eventualmente.
  • Es incompatible con algunos paquetes que tienen muchas personalizaciones distutils o setuptools en sus archivos setup.py.

Instrucciones de Instalación

Siempre existen más de dos formas de instalar paquetes Python con Distribute y pip ;)

Requerimientos previos

Es necesario que instale ciertas dependencias en su sistema operativo como las que se muestran a continuación:

# aptitude install build-essential python-dev python-setuptools

Instalación con Paquetes Egg

Para instalar Distribute ejecute el siguiente comando:

# easy_install -U distribute

También para instalar pip ejecute el siguiente comando:

# easy_install -U pip

Instalación en sistemas Debian

La instalación en sistemas Debian es recomendable que instale ciertas dependencias en su sistema operativo como las que se muestran a continuación:

# aptitude install build-essential python-dev python-pip

Ejemplos de uso de pip

El script pip ofrece varias formas de uso, para instalar los paquetes de diversas fuentes:

Consejo: Para poder utilizar el pip, primero debe instalar setuptools o distribute. Si utiliza virtualenv, una copia del pip será automáticamente instalados en cada entorno virtual que usted crea.

easy_install se puede complementar con virtualenv, y se recomienda que lo utilice para aislar a la instalación de los paquetes Egg.

Ejemplo 1. Instalar un paquete su nombre en su versión más reciente, buscando en PyPI:

$ pip install SQLObject

Ejemplo 2. Instalar o actualizar un paquete por nombre y versión utilizando una dirección URL donde encontradas en una “página de descargas”:

$ pip install -f http://dist.plone.org/packages/ 'Pillow==1.7.3'

Ejemplo 3. Instalar o actualizar un paquete desde su propio replica del repositorio PyPI o su repositorio de paquetes Egg privados:

$ pip install -i http://pypi.ejemplo.com/simple SQLObject

Ejemplo 4. Descargar e instalar una distribución de código fuente:

$ pip install http://ejemplo.com/ruta/a/MiPaquete-1.2.3.tgz

Ejemplo 5. Instalar un paquete con una versión especifica:

$ pip install 'ZopeSkel==2.21.2'

Ejemplo 6. Instalar todas las dependencias de mi proyecto Python usando un archivo de dependencias requeridas para instalar:

$ pip install -r ./requirements.txt

Un ejemplo del archivo requirements.txt puede ser el siguiente:

python-ldap
django
buildbot
buildbot-slave
PyYAML
south

Ejemplo 7. Actualizar un paquete ya instalado con la versión más reciente de PyPI:

$ pip install --upgrade PyProtocols

Ejemplo 8. Para usar realizar búsquedas de paquetes disponibles para instalar desde los repositorios por definidos:

$ pip search plonetheme-*

Ejemplo 9. Para remover un paquete Egg

$ pip uninstall SQLObject

Para más información consulte la ayuda disponible por que paquete pip ejecutando el siguiente comando:

$ pip help

Distribute en zc.buildout

Puede usar Distribute en zc.buildout, habilitando el uso de este por medio de un parámetro adicional en su archivo bootstrap.py de la siguiente manera:

$ python bootstrap.py --distribute

pip en zc.buildout

Existen varias estrategias para integrar pip en zc.buildout, a continuación se describen algunas formas:

gp.recipe.pip, ese paquete es un récipe de zc.buildout el cual permite instalar Paquete Python usando pip. A continuación se explica un ejemplo de configuración zc.buildout con este récipe se puede usar:

  1. El récipe agrega un virtualenv en el directorio parts/ de su instalación buildout, entonces genera este binario para generar un scripts ejecutable Python. Así que tienes un área de pruebas limpia de instalaciones previas.
  2. El récipe esta basado en zc.recipe.egg#scripts para que pueda compartir sus paquetes Egg entre buildouts como de costumbre.
  3. Por supuesto, usted puede instalar algunos archivos .pybundle.
  4. Usted puede construir paquetes desde un repositorio SVN con la opción editables.
  5. Cada linea encontrada en la opción install es la última parte de un comando de pip. Esta le permitirá a usted construir paquetes Egg con sus dependencias. Por ejemplo, instalar la librería lxml en un área de prueba pura, sin tener instalado libxml2 y libxslt, usted necesita tener instalado Cython y con esta línea de comando python setup.py install --static-deps para instalar el paquete lxml.

A continuación un ejemplo de configuración zc.buildout:

[buildout]
# the cache dir is used by buildout & pip
download-cache = download
parts = eggs

[eggs]
recipe = gp.recipe.pip

# eggs installed by pip (also add the Deliverance bundle)
install =
    Cython
    --install-option=--static-deps lxml==2.2alpha1
    http://deliverance.openplans.org/dist/Deliverance-snapshot-latest.pybundle

# eggs installed by zc.recipe.egg
eggs =
    Paste
    pyquery

Otra forma de usar pip es a través de una extensión zc.buildout llamada gp.vcsdevelop, para hacer checkout de paquetes Egg desde varios sistemas de control de versiones. A continuación se muestra un ejemplo de configuración zc.buildout con esta extensión:

[buildout]
...
extensions = gp.vcsdevelop
develop-dir = ./requirements
requirements = requirements.txt
parts = eggs
...
[eggs]
recipe = zc.recipe.egg
eggs = ${buildout:requirements-eggs}
interpreter = python
...

Un ejemplo del archivo requirements.txt puede ser el siguiente:

ConfigObject>=1.0
-e git+git://github.com/bearstech/PloneTerminal.git#egg=PloneTerminal

Ver también

Le recomiendo consultar las siguientes enlaces para complementar el conocimiento adquirido en esta entrada en mi blog.

Espero sea de utilidad esta entrada en mi blog. Ayúdame a seguir escribiendo en mi blog y dona 1 dolar aquí.

Referencias


Creación de entornos virtuales Python

¿Por que crear entornos virtuales en Python?

Si usted está en un sistema Linux, BSD, Cygwin, u otros similares a Unix como sistema operativo, pero no tienen acceso al usuario root, puede crear su propio entorno virtual (instalación) Python, que utiliza su propia biblioteca de directorios y algunos enlaces simbólicos hacia todo el directorio de instalación del Python de su sistema.

En el caso más simple, su instalación virtual de Python que viven bajo el directorio home del usuario ~/virtualenv/. Utilice la opción –help para obtener la lista completa de las opciones disponibles la herramienta virtualenv.

Cuando haya terminado la creación del entorno virtual, tendrá un ejecutable de python local al usuario que lo creo (por ejemplo ~/virtualenv/python2.6/bin/python) que está vinculado a la instalación del Python de su sistema /usr/bin/python y hereda todas sus librerías actuales, pero además le permite añadir nuevas librerías tanto como usted lo desee.

Sólo tiene que utilizar este nuevo Python en lugar de la instalación Python de su sistema, y puede modificarlo a su gusto sin dañar nada del Python de su sistema operativo. De igual forma usted debe seguir usando las instrucciones de instalación estándar para instalar setuptools y EasyInstall o Distribute y pip, desde su nueva instalación (~/virtualenv/python2.6/bin/python) Python en lugar del Python de su sistema /usr/bin/python.

Entornos virtuales de Python locales al usuario

Para evitar usar la instalación base del Python de tu sistema, que previamente tiene instalada, se recomienda instalar un entorno de virtual de Python local al usuario, algunos casos de usos para virtualenv, se describe a continuación:

  • No es necesarios permisos de administración para instalar librerías y aplicaciones Python, ya que estas se hace locales en al directorio del usuario.
  • Mayor comodidad de trabajar con versiones de librerías y aplicaciones más actuales las que maneja tu sistema.

¿Qué es virtualenv?

virtualenv, es una herramienta para crear entornos virtuales (aislados) en Python.

Modos de Instalación

Para instalar paquete virtualenv en su sistema puede instalarlo con Setuptools, Distribute para paquete Egg o por sistema paquete Debian

Instalación con paquete Debian

Para instalar virtualenv en distribuciones basadas en Debian GNU/Linux como paquete Debian, debe instalar los requisitos previos con el siguiente comando:

# aptitude install libc6-dev python-dev python-virtualenv

Nota: A veces es mejor instalar la versión más reciente del paquete virtualenv desde el repositorio PyPI, debido que siempre la versión de Debian no esta actualizada con respecto a la versión publicada en el repositorio PyPI.

Instalación con Setuptools

Para instalar virtualenv en distribuciones basadas en Debian GNU/Linux con Setuptools, debe instalar los requisitos previos con el siguiente comando:

# aptitude install libc6-dev python-dev python-setuptools

Luego debe instalar la versión más reciente del paquete virtualenv desde el repositorio PyPI, entonces debe instalar con el siguiente comando:

# easy_install virtualenv

Instalación con Distribute

Para instalar virtualenv en distribuciones basadas en Debian GNU/Linux con Distribute, debe instalar los requisitos previos con el siguiente comando:

# aptitude install libc6-dev python-dev python-distribute python-pip

Luego debe instalar la versión más reciente del paquete virtualenv desde el repositorio PyPI, entonces debe instalar con el siguiente comando:

# pip install virtualenv

Creando entornos virtuales de Python locales al usuario

Preparando la estructura de directorios de los entornos locales al usuario local, es una buena practica organizativa más no es un estándar por defecto en la comunidad Python para esto muestro una forma de trabajo y se realizan ejecutando los siguientes comandos:

$ cd $HOME ; mkdir ./virtualenv ; cd virtualenv

Crear entorno virtual del Python 2.6 de tu sistema al directorio ~/virtualenv del usuario, ejecutando el siguiente comando:

$ virtualenv --no-site-packages --python=/usr/bin/python2.6 python2.6

Usar distribute en virtualenv

Opcionalmente puede usar distribute en virtualenv para esto debe ejecutar el siguiente comando:

$ virtualenv --distribute --no-site-packages python2.6

Nota: Este paso de creación del entorno virtual solo se realiza cada ves que necesite crear un entorno virtual nuevo para sus proyectos Python.

Activar el entorno virtual

Activar el entorno virtual creado previamente, ejecutando el siguiente comando:

$ source ~/virtualenv/python2.6/bin/activate

Hasta este momento tiene activada el entorno virtual usted puede verificar esto debido a que su shell de comando inicia con el siguiente prefijo (python2.6), entiendo que este prefijo es el nombre de entorno virtual que usted acaba de activar.

Aquí ya puede usar herramientas como easy_install o pip para instalar paquetes Egg….

Nota: Cada ves que necesite trabajar dentro del entorno virtual necesita activar este mismo.

Desactivar el entorno virtual

Cuando termine de usar el entorno virtual puede desactivarlo de la siguiente forma:

(python2.6)$ deactivate

De esta forma ya puedes realizar operaciones de shell fuera del entorno virtual.

Nota: Cada ves que necesite salirse del entorno virtual necesita desactivar este mismo.

Aprovechamiento

El trabajar con la herramienta le permite tener varios entornos aislados de pruebas tanto en la misma versión de Python 2.6 como en diversas versiones Python, como por ejemplo Python 2.5 y Python 2.6, entre otras más ventajas.

Ver también

Referencias

Nota: Si te gusto este articulo, ayúdame a seguir escribiendo en mi blog y dona 1 dolar aquí.


Sábado 21 de febrero de 2015

Cálculo de Integrales con Sympy

Contiuando con los artículos sobre la librería Sympy, en los artículos anteriores se toco lo siguiente:




En este artículo se tocará el tema de cálculo de Integrales.

A continuación se ejecuta ipython notebook (si desea cargar el archivo del notebook de este artículo lo puede bajar del siguiente enlace).

El script del tutorial de muestra a continuación:

# coding: utf-8



# In[16]:



#Se importa sympy

from sympy import *

x = Symbol('x')





# In[26]:



diff(5*(x**5)+3*(x**3)-6*x+5,x); #Se calcula la derivada de la funcion 5(x^5)+3(x^3)-6x+5





# In[27]:



integrate(Out[3],x);#Se integra el resultado de la derivada,noten q el resultado es la ecuación de In[3] pero sin el valor constante





# In[19]:



integrate(cos(x)**2+sin(x),x); #Se inte cos(x)**2+sin(x) con respecto a x





# In[20]:



pprint (Integral(cos(x)**2+sin(x),x));#Se muestra la integral de la ecuación anterior





# In[28]:



integrate(Out[27],(x,0,5));#Se calcula el valor de la integral de 0 a 5 de la ecuación de la salida 27 





# In[29]:



integrate(cos(x)**2+sin(x),(x,0,pi));#Se calcula la integral con el rango de 0 a pi





El res

La imagen de la ejecución del notebook se muestra a continuación:

Para una mejor visualización del ejercicio recomiendo ejecutar el notebook del enlace anterior.

Cálculo de derivadas con sympy

En el artículo anterior se explico como calcular límites de funciones, en este artículo se muestra como calcular la derivada.


Se inicia notebook (si desea abrir el archivo que se utilizo para este artículo lo puede encontrar en el siguiente enlace):

$ipython notebook

Puede crear un notebook (o abrir el notebook mencionado en el enlace anterior).

A continuación se muestra el script del calculo de derivadas de 3 funciones diferentes:

#!/usr/bin/env python

# coding: utf-8





#Se importa sympy

from sympy import *





x = Symbol('x')





#Se calcula la derivada de la funcion cos(sin(x^3)) con respecto a x

print diff(cos(sin(x**3)),x)





#Se calcula la derivada de la funcion 5(x^5)+3(x^3)-6x+5

print diff(5*(x**5)+3*(x**3)-6*x+5,x)





#Calcula la derivada ene-sima de x^2+8x-4+sin(2x)

print diff(x**2+8*x-4+sin(2*x),x,2)




Al ejecutar el script se muestra el resultado de la ejecución de los 3 instrucciones print:
-3*x**2*sin(sin(x**3))*cos(x**3)
25*x**4 + 9*x**2 - 6
2*(-2*sin(2*x) + 1)
x,2)

Al ejecutar el script se muestra el resultado de la ejecución de los 3 instrucciones print:
-3*x**2*sin(sin(x**3))*cos(x**3)
25*x**4 + 9*x**2 - 6
2*(-2*sin(2*x) + 1)


A continuación se muestra una imagen del notebook resultante:



A continuación se muestra una imagen del notebook resultante:

Cálculo de límites con la librería sympy

La librería Sympy permite realizar cálculo de límites, derivadas,  integrales entre otras cosas, usando notación simbólica.

La documentación de sympy la pueden revisar en el siguiente enlace.

Para instalar sympy e ipython-notebook en Debian se ejecuta:
apt-get install python-sympy ipython-notebook

En este caso se mostrará como realizar cálculo de límites con sympy.

Se ejecuta un servidor notebook ( en el siguiente enlace encontrarán el archivo usado para este artículo).

$ipython notebook

Se abre el navegador en http://localhost:8888 y se crea un notebook (para los que bajaron el enlace abren el archivo que se menciono anteriormente):

En este caso se usará un script que se llama limites.py:

#!/usr/bin/env python

# coding: utf-8





from sympy import *







#Se define la variable x como simbolica

x = Symbol("x")







#Calculo de limite de (1/x) cuando x tiende a cero

valor = limit(1/x,x,0)

print valor





#Calculo de limite de (1/x) cuando x tiende a infinito

valor = limit(1/x,x,oo)

print valor





#limite de (5x/2x-3) cuando x tiende a infinito.

valor = limit(5*x/(2*x-3),x,oo)

print valor




El resultado de ejecutarlo es el siguiente:



oo


0


5/2




Para el primer caso el resultado es infinito, para el segundo es cero y para el último es 2.5.

A continuación se deja una imagen del uso de ipython notebook:



Miércoles 18 de febrero de 2015

HMC ShellShock

Donde trabajo tenemos 4 hmc’s para administrar 3 IBM P5 system’s y 2 ISeries 770, y ya tenia tiempo queriendo ser root en esas consolas (because i can), anteriormente lo logre por este metodo Escaping HMC Restricted Shell y ahora … Continue reading

Jueves 05 de febrero de 2015

José Leonel Subero

Instalando Docker en Linux Mint Debian Edition

La información de que es Docker la encuentran en su sitio oficial Aquí, a continuación los pasos para su instalación en LMDE. Pasos: Importar y añadir la llave del repositorio para hacer confiable la instalación vía apt. apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 Crear la lista del repositorio para que apt lo use. echo "deb […]

Miércoles 04 de febrero de 2015

José Leonel Subero

Como conectarse a un un contenedor de openvz desde el host anfitrión

Problema: Necesito conectarme a un contenedor desde el anfitrión ¿Que comando uso? Solución: vzctl enter ID-del-anfitrion Ejemplo: vzctl enter 100 Nota: Para dejar la sesión y regresar al host anfitrión se debe teclear ctrl+d o ejecutar el comando exit
José Leonel Subero

Comando para conseguir una cadena de texto en sistemas Unix/Linux

Problema: Necesitamos encontrar en un universo de varios archivos desconocidos una palabra o cadena de texto para poder editar dicha cadena. Solución: sudo grep -lir “cadena_de_texto_a_buscar” “/ruta/donde/esta/el/universo/de/archivos/” Ejmplo: queremos saber cuales archivos en nuestro árbol de directorios tienen la palabra hola mundo, entonces procedemos de la siguiente manera. sudo grep -lir "hola mundo" "/" Nota: […]

Cómo cuidar la batería de tus gadgets y extender su vida útil

Está Escrito:
Y esta es la vida eterna: que te conozcan a ti, el único Dios verdadero, y a Jesucristo, a quien has enviado.  (Juan 17:3)
Tomado de: yahoo  Texto: Paula Barbieri

Uno de los grandes problemas que tenemos al utilizar nuestros móviles inteligentes, laptops y tabletas, es la corta duración de su batería. Pero no desesperes, aquí encontrarás varios consejos sencillos para aprender a cuidarla y extender su vida útil. 

Aprende a cuidar la batería de tus dispositivos electrónicos. Foto: Thinkstock


Las baterías son una parte clave de cualquier dispositivo electrónico. Son la fuente de energía por la cual los otros componentes pueden funcionar, apunta el blog Tech News. Un fallo en la batería puede tener graves consecuencias en el resto del producto, por eso debemos ser cuidadosos. Ten en cuenta estos consejos prácticos para cuidar mejor las baterías:

1. Dile adiós a las cargas de 8 horas. Una creencia popular es que tu aparato necesita una carga inicial de ocho horas, pero esto es un error. Con las baterías de litio esta costumbre no es solo innecesaria, sino también dañina para tu batería, según el blog.

2. No dejes conectado el cargador si ya se encuentra al 100% de carga. Seguramente, todas las noches cargas tu móvil, tu tableta o laptop. Es un hábito muy común, pero si quieres cuidar tu batería, deshazte de él. Mantener el cargador conectado cuando la batería ya está al 100% de carga perjudica gravemente la salud de la misma, advierte la fuente mencionada. En caso de que no puedas evitar dejar conectado tu dispositivo a la corriente eléctrica durante la noche, apágalo.

3. Evita los porcentajes bajos de batería durante tiempos prolongados. Mantener las baterías de litio en repetidas ocasiones a porcentajes bajos solo implicará una reducción de su vida útil y de su capacidad máxima, según el sitio mencionado.Lo recomendado es que nunca bajen del 5% o 10% de carga, de acuerdo con el blog.

4. Olvídate de los ciclos completos de carga. Otra de las creencias populares sostiene que para cuidar la batería de nuestro gadget, debemos hacer ciclos completos de carga. Es decir, esperar a que esta llegue a un porcentaje bajo y, en ese momento, conectarlo al cargador. Con las baterías de litio esto no es necesario. Podemos cargar desde el 20% hasta el 70%, por ejemplo, y esto no tendrá ningún impacto en su vida útil, agrega el blog.

5. Cuida la temperatura. En el caso de la batería de tu laptop, es importante que no se caliente demasiado, ya que el calor acortará su tiempo de vida, señala la revista PC Magazine. Entonces, ten en cuenta estos pasos para proveer una óptima corriente de aire y mantener baja la temperatura. Los problemas más graves surgen por la obstrucción física de los puertos de ventilación. El polvo acumulado es uno de los problemas que puedes resolver si limpias la rejilla de ventilación de la laptop y los ventiladores. Una lata de aire comprimido se puede usar para limpiarlos. Otro problema frecuente es usar la laptop sobre una almohada o una sábana, lo cual puede obstruir el sistema de ventilación y retener el aire que sale del sistema. Procura apoyarla sobre superficies como una mesa o un escritorio.

6. Calibra la batería. Según indica el portal How to Geek, los fabricantes recomiendan calibrar las baterías cada dos o tres meses. Esto significa dejar que la batería llegue al 100% y luego baje hasta casi morirse. Recién ahí se carga de nuevo completamente. 

Martes 03 de febrero de 2015

¿Cómo Instalar Debian Squeeze o Lenny en una mini laptop vía Pen Drive?

Después de varias búsqueda y tratando de seguir los pasos de la página de Debian, no podía instalarlo en mi mini vaio, seguí intentando y viendo los pasos de este post para instalar Debian Sarge pude lograrlo y una manera rápida y cómoda:

1. Tener un Pen drive de al menos 256MB

2. Formatear el pen drive a FAT32

3. Descargar los siguientes archivos “initrd.gz” y “vmlinuz” y los copias en el pen drive

Para Lenny los obtienes desde aquí y para Squeeze desde aquí

4. Descarga la imagen iso de Lenny o de Squeeze según la versión que quieras instalar y lo copias en el pen drive (Esta iso es de 175 MB apróximadamente por el cual sólo te instalará el sistema base, lo demás lo debes descargar vía internet)

5. crea el siguiente archivo en el pen drive llamado: syslinux.cfg y dentro del archivo copia lo siguiente:

default vmlinuz
append initrd=initrd.gz ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw DEBCONF_PRIORITY=medium

default vmlinuz

append initrd=initrd.gz ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw DEBCONF_PRIORITY=medium

6. y listo, desmonta el pen drive y reinicia. Ahora podrás disfrutar de Debian.

Si quieren un repositorio para que puedas instalar la mayoría de los paquetes en debian que no son libres puedes usar copiando en el al final del archivo /etc/apt/source.list

deb http://http.us.debian.org/debian/ squeeze main contrib non-free

Saludos.

Lunes 02 de febrero de 2015

José Miguel Parrella Romero

José Miguel Parrella Romero
null pointer dereference

Rebasing CoreOS for ephemeral cloud storage

The convenience and economy of cloud storage is indisputable, but cloud storage also presents an I/O performance challenge. For example, applications that rely too heavily on filesystem semantics and/or shared storage generally need to be rearchitected or at least have their performance reassessed when deployed in public cloud platforms.

Some of the most resilient cloud-based architectures out there minimize disk persistence across most of the solution components and try to consume either tightly engineered managed services (for databases, for examples) or persist in a very specific part of the application. This reality is more evident in container-based architectures, despite many methods to cooperate with the host operating system to provide cross-host volume functionality (i.e., volumes)

Like other public cloud vendors, Azure presents an ephemeral disk to all virtual machines. This device is generally /dev/sdb1 in Linux systems, and is mounted either by the Azure Linux agent or cloud-init in /mnt or /mnt/resource. This is an SSD device local to the rack where the VM is running so it is very convenient to use this device for any application that requires non-permanent persistence with higher IOPS. Users of MySQL, PostgreSQL and other servers regularly use this method for, say, batch jobs.

Today, you can roll out Docker containers in Azure via Ubuntu VMs (the azure-cli and walinuxagent components will set it up for you) or via CoreOS. But a seasoned Ubuntu sysadmin will find that simply moving or symlinking /var/lib/docker to /mnt/resource in a CoreOS instance and restarting Docker won’t cut it to run the containers in a higher IOPS disk. This article is designed to help you do that by explaining a few key concepts that are different in CoreOS.

First of all, in CoreOS stable Docker runs containers on btrfs. /dev/sdb1 is normally formatted with ext4, so you’ll need to unmount it (sudo umount /mnt/resource) and reformat it with btrfs (sudo mkfs.btrfs /dev/sdb1). You could also change Docker’s behaviour so it uses ext4, but it requires more systemd intervention.

Once this disk is formatted with btrfs, you need to tell CoreOS it should use it as /var/lib/docker. You accomplish this by creating a unit that runs before docker.service. This unit can be passed as custom data to the azure-cli agent or, if you have SSH access to your CoreOS instance, by dropping /etc/systemd/system/var-lib-docker.mount (file name needs to match the mountpoint) with the following:

[Unit]
Description=Mount ephemeral to /var/lib/docker
Before=docker.service
[Mount]
What=/dev/sdb1
Where=/var/lib/docker
Type=btrfs

After systemd reloads the unit (for example, by issuing a sudo systemctl daemon-reload) the next time you start Docker, this unit should be called and /dev/sdb1 should be mounted in /var/lib/docker. Try it with sudo systemctl start docker. You can also start var-lib-docker.mount independently. Remember, there’s no service in CoreOS and /etc is largely irrelevant thanks to systemd. If you wanted to use ext4, you’d also have to replace the Docker service unit with your own.

This is a simple way to rebase your entire CoreOS Docker service to an ephemeral mount without using volumes nor changing how prebaked containers write to disk (CoreOS describes something similar for EBS) Just extrapolate this to, say, your striped LVM, RAID 0 or RAID10 for higher IOPS and persistence across reboots. And, while not meant for benchmarking, here’s the difference between the out-of-the-box /var/lib/docker vs. the ephemeral-based one:

# In OS disk

--- . ( ) ioping statistics ---
20 requests completed in 19.4 s, 88 iops, 353.0 KiB/s
min/avg/max/mdev = 550 us / 11.3 ms / 36.4 ms / 8.8 ms

# In ephemeral disk

--- . ( ) ioping statistics ---
15 requests completed in 14.5 s, 1.6 k iops, 6.4 MiB/s
min/avg/max/mdev = 532 us / 614 us / 682 us / 38 us


Jueves 22 de enero de 2015

Colectivo MediosLibres de Venezuela

MediosLibres

MediosLibres es un Colectivo tecnológico dedicado al desarrollo, migración y soporte sobre tecnologías libres para lo medios de comunicación, integrado por gente de medios con amplios conocimientos en el àrea de la tecnología.

Este Portal Web es el centro de interacción con los usuarios y usuarias de la Distribución GNU/Linux MediosLibres, desarrollada por el Colectivo MediosLibres de Venezuela con la finalidad de satisfacer totalmente las necesidades de todos los segmentos de los medios de comunicación (radio, audiovisuales, prensa escrita, medios dìgitales). Un trabajo que lleva ya mas de dos años de investigación y preparación, y que hoy junto al lanzamiento del portal sirve de puerta informativa para dar a conocer la existencia de la Beta 2 de esta Distribución GNU/Linux venezolana para Medios de Comunicación.

Los Líderes del Proyecto indicaron que el Portal http://medioslibres.org.ve, cuenta con importante información acerca de esta Distribución GNU/Linux venezolana, así como también áreas de descarga, un moderno sistema de soporte, foros, galería, podcast, wiki colaborativa, videoteca, Aula Virtual y otras interesantes utilidades al servicio del usuario.

Finalmente se informó que el venidero lunes 26 de enero será liberada públicamente de forma oficial la primera versión de MediosLibres GNU/Linux, la cual lleva como nombre código Shamatari, palabra de la lengua Yanomami que significa Guerrero y utilizarà como nomenclatura de versión la 15.01 en referencia al año y mes del lanzamiento.

Nota enviada por: Jaime Ernesto Mora

Lunes 19 de enero de 2015

Conociendo un poco a #lftp

lftp es un programa de transferencia de archivos (FTP) por medio de la linea de comandos para UNIX y sistemas basados en UNIX. Fue escrito por Alexander Lukyanov y esta diponible bajo GPL.

Leer mas en wiki/Lftp.

Uso basico

lftp ftp://ftp.my-domain.com
lftp ftp.my-domain.com:~> user myuser
Password:

Comandos de ayuda

lftp myuser@ftp.my-domain.com:/www> help
        !<shell -command>                    (commands)
        alias [<name> [<value>]]            anon
        bookmark [SUBCMD]                   cache [SUBCMD]
        cat [-b] <files>                    cd <rdir>
        chmod [OPTS] mode file...           close [-a]
        [re]cls [opts] [path/][pattern]     debug [<level>|off] [-o <file>]
        du [options] <dirs>                 exit [<code>|bg]
        get [OPTS] <rfile> [-o <lfile>]     glob [OPTS] <cmd> <args>
        help [<cmd>]                        history -w file|-r file|-c|-l [cnt]
        jobs [-v]                           kill all|<job_no>
        lcd <ldir>                          lftp [OPTS] <site>
        ls [<args>]                         mget [OPTS] <files>
        mirror [OPTS] [remote [local]]      mkdir [-p] <dirs>
        module name [args]                  more <files>
        mput [OPTS] </files><files>                 mrm </files><files>
        mv <file1> <file2>                  [re]nlist [<args>]
        open [OPTS] <site>                  pget [OPTS] <rfile> [-o <lfile>]
        put [OPTS] </lfile><lfile> [-o <rfile>]     pwd [-p]
        queue [OPTS] [<cmd>]                quote </cmd><cmd>
        repeat [delay] [command]            rm [-r] [-f] <files>
        rmdir [-f] <dirs>                   scache [<session_no>]
        set [OPT] [<var> [<val>]]           site <site_cmd>
        source <file>                       user <user |URL> [<pass>]
        version                             wait [<jobno>]
        zcat <files>  

Subir un archivo

lftp myuser@ftp.my-domain.com:/www> put file.ext
64714 bytes transferred in 8 seconds (7.9K/s)

Un pequeño tip

Si en algun momento, intentan subir algo a un servidor puede que obtengas este error:

Lftp Fatal Error: Certificate Verification: Not Trusted

La solucion es facil, solo se debe agrear en /etc/lftp.conf lo siguiente:

set ssl:verify-certificate no

Link de interes

Mailing lists

Mailing lists and archives (since July 2011):

List archives (including prior to July 2011):

Code

Browse the source code:

Bug trackers