Miércoles 10 de febrero de 2016

Modifica el cargador de UEFI desde Windows e inicia systemd-boot

Uno de los problemas de los usuarios de Linux y BSD, es cuando por algún motivo toca reinstalar Windows en la máquina, pues siempre sobrescribe el cargador de arranque e inhabilita la posibilidad de iniciar otros sistema operativo. Por ello, es necesario buscar un LiveCD o arrancar desde un USB para poder entrar al sistema operativo alterno (Linux o BSD) y reinstalar el cargador de arranque, bien sea en UEFI o MBR.

Ayer me tocó actualizar a Windows 10 porque no quería perder la licencia y así la portátil perdiera valor (por si quisiera venderla después) y como siempre, sobrescribió el cargador de arranque. Antes utilizaba Windows para cargar Linux pero la portatil tengo  utiliza UEFI y no me deja cambiar el arranque por defecto desde el menú de configuración, así que lo pasos que hice fueron los siguientes:

Reinstalar systemd-boot

La distribución que utilizo es Archlinux y desde hace tiempo utiliza el arranque de systemd, así que una vez que logres arrancar Archlinux y tengas acceso al terminal (con la partición /boot montada) ejecuta el siguiente comando para reinstalar systemd-boot:

#bootctl --path=/boot install

Teóricamente debería asignar este arranque por defecto, pero en mi máquina no fue así. Por lo que utilice el método a continuación para arrancar Linux por defecto.

Seleccionar systemd-boot como cargador por defecto del UEFI

Como siempre entraba a Windows por defecto, inicié sesión en ese sistema operativo y  abrí la consola de comandos de Windows 10 (cmd.exe) y ejecuté:

bcdedit /set "{bootmgr}" path \EFI\systemd\systemd-bootx64.efi

Este comando selecciona el arranque por defecto, si no sabes la ruta, bien sea porque utilizas otro cargador u otra distribución. Puedes montar la partición UEFI/boot en Windows con tan solo 2 comandos:

mountvol z: /s

Ahora tendrás en la letra z: (puede ser cualquier otra disponible) la partición de arranque y puedes navegar en ella desde el terminal, así puedes buscar cual es la ruta de tu cargador.

Palabras finales

¡Listo! Al reiniciar Archlinux se iniciaba por defecto, ahora para arrancar Windows, simplemente tengo que entrar al menú de arranque de la portátil y seleccionar la opción de ese sistema, tal vez es un poco molesto, pero como casi nunca inicio Windows para mí no es problema.

La entrada Modifica el cargador de UEFI desde Windows e inicia systemd-boot aparece primero en El blog de Skatox.

Martes 09 de febrero de 2016

Silvio Perez: Centos/RHEL – Install/export X11 server

Como descargar el driver para Impresoras en Linux Debian

Está Escrito:
Si, pues, habéis resucitado con Cristo, buscad las cosas de arriba, donde está Cristo sentado a la diestra de Dios.(Colosenses 3:1)

Tomado de: Youtube
Como descargar el driver para Linux Debian y poder conectar en modo Impresora mediante cable USB a una fotocopiadora Ricoh Aficio con placa de CONECTIVIDAD instalada.
http://www.openprinting.org/printers

Lunes 08 de febrero de 2016

Jesus Palencia

¡¡¡De nuevo el Carnaval!!!

El carnaval es una celebración que tiene lugar inmediatamente antes de la cuaresma cristiana, con fecha variable (entre febrero y marzo según el año), y que combina algunos elementos como disfraces, desfiles, y fiestas en la calle. Por extensión se … Sigue leyendo

Sábado 06 de febrero de 2016

Luis A. Martínez F.

Luis A. Martínez F.
Hunting Bears

Rescatando la memoria técnica del proyecto Canaima GNU/Linux

6ta Cayapa Canaima. Imagen de David Hernández (by-nc-sa).

Una actividad creativa tiene muchos matices y particularidades. Podemos estar de acuerdo en que nada está realmente hecho desde cero, puesto que siempre existe un antecedente del cual hemos tomado prestado inspiración. Específicamente en el desarrollo de Software Libre, esta es una actividad recurrente e incluso alentada como buena práctica. Y es que, todo el movimiento del conocimiento libre tiene como premisa la mejora progresiva de la forma en que la sociedad satisface sus necesidades, tomando como referencia los avances que otros han hecho y publicado.

El Proyecto Canaima, por su parte, cumple 9 años desde la publicación de la versión 1.0. Desde ese entonces, año tras año, incontables personas han ayudado con su trabajo de diversa índole a la mejora progresiva de los procesos técnicos y no técnicos de la distribución.

Realmente son incontables. A pesar de no poseer la mano de obra de otras distribuciones, Canaima es utilizada en un número significativo de instituciones de la administración pública, sirve como sistema operativo para las más de 4 millones de canaimitas distribuídas a nivel nacional y ha entrado varias veces dentro de las 100 distribuciones más populares, según distrowatch.

Como trabajador del CNTI, fuí testigo directo de la evolución de la distribución, y de como con cada Cayapa (reuniones técnicas o bug squash parties), la calidad del código, conceptos y estructura de la distribución maduraban.

Borrón y cuenta nueva

En la última minicayapa celebrada en la Escuela Venezolana de Planificación en la ciudad de Caracas, los actores presentes tomaron la decisión de rehacer la distribución desde cero, bajo la justificación de que lo existente era tan desastroso que no servía.

Con un quórum cuestionable y una premura impresa por la institucionalidad, nacieron nuevos paquetes y nuevos procesos. Pero con ellos también volvieron los errores superados, las malas estructuras de diseño corregidas, los errores conceptuales que ya habían quedado atrás, sin mencionar los acuerdos alcanzados que fueron fácilmente rotos sin mayor explicación.

No es justificable de ninguna forma este accionar. Incluso, no estaría de acuerdo si se hubiese hecho borrón y cuenta nueva para sustituirlo por algo mejor. La memoria técnica de un proyecto no debe perderse.

Rescatando lo perdido

Es así como he decidido continuar con la línea de investigación que el Proyecto Canaima (directa o indirectamente) echó a un lado. La nueva distribución tomará el nombre de Tribus GNU/Linux, el mismo nombre de su plataforma (Tribus). Preliminarmente estaré haciendo una imagen ISO con los mismos paquetes originales de Canaima (con los nombres cambiados), basada en Debian Sid y comenzando su versionamiento en 0.1, pero luego me dedicaré enteramente a terminar la plataforma de Tribus para poder establecer los criterios de participación comunitaria, modelos de gobernanza y automatización de procesos.

Por ahora, mientras la plataforma de Tribus se completa, las plataformas asistentes serán las siguientes:

Si alguno desea sumarse a esta iniciativa, es bienvenido en las listas de correo. Esta nueva distribución está dirigida al usuario común y tiene como propósito fundamental mejorar la experiencia en el área de escritorio.

Miércoles 03 de febrero de 2016

Héctor Colina

Nuevo portal de Canaima

Hoy el proyecto Canaima institucional amaneció con nuevo portal Web, acá algunos detalles que observé de pasada

¿Qué me gustó?

* Es ligero (en mi paupérrima conexión cargó rápido)
* Interfaz moderna, no lo probé en otros dispositivos aunque por el
código debería ser responsive
* Combinación agradable de colores
*Declara los contenidos con Creative Commons Reconocimiento – No
Comercial – Compartir Igual 3.0 Venezuela

¿Qué no me gustó?
* Le quitan el crédito a la comunidad de joomla ya que estando basado en ese CMS no se ve por ningún lado que diga que lo usan, sólo revisando el código podemos verificarlo.
* TIene errores ortográficos, incluso en el código (<meta name=”keywords” content=”CNTI,cnti,Cnti,Canaima,CANAIMA,canaima,
Canaima 5.0, canaima 5.0, CANAIMA 5.0, Canaima Linux, canaima linux,
CANAIMA LINUX, Canaima GNU/Linux, canaima gnu/linux, CANAIMA
GNU/LINUX, Canaima Educativo, canaima educativo, CANIAMA EDUCATIVO…)
* Hay errores conceptuales: por ejemplo, confunden la definición de sabor de canaima educativo con el proyecto de hardware homónimo [1], o confundir el concepto de cayapa [2] con el funcionamiento de la comunidad canaima [3] lo cual si alguien que no conoce canaima lee
dirá que la comunidad canaima es una cayapa (:-)
* Mejor aprovechamiento de enlaces : Por ejemplo en
http://canaima.softwarelibre.gob.ve/canaima/soporte envían a
http://trac.canaima.softwarelibre.gob.ve/ cuando debería ser
http://trac.canaima.softwarelibre.gob.ve/canaima
* Alcances del proyecto no correctos: en [4] confunden nacional al
decir que “dado que nuestros dos principales productos están dirigidos
a usuarios en todo el país, el sector educativo y el sector APN”
dejando por fuera otros importantes sectores que también conforman lo
nacional.
* En beneficios se dejan de lado componentes estratégicos tales como
que canaima es una “excusa” par construir una soberania, un país
potencia, independencia tecnológica, apalancamiento de sectores
socio-productivos, etc.

Quizás existan otras observaciones que se me escapan en este momento,
pero creo que lo importante es el punto de que, quizás, la estrategia
de sacarlo al público para su validación es interesante siempre y
cuando se tenga claro el transfondo conceptual ya que esa es la primer
imagen que nos llevamos, lo demás es adorno…

Y así deben haber muchos detalles más.

MI humilde recomendación es que revisen bien este tipo de iniciativas
antes de salir a producción, pero que sean revisadas por un equipo
multidisciplinario para que la construcción pueda ser integral y no desde una única  perspectiva.
[1] http://canaima.softwarelibre.gob.ve/canaima/sabores-canaima
[2] http://cayapa.canaima.net.ve/wiki/doku.php
[3] http://canaima.softwarelibre.gob.ve/comunidad/como-funciona-la-comunidad-canaima
[4] http://canaima.softwarelibre.gob.ve/canaima/alcance

Martes 02 de febrero de 2016

Jorge Ortega

Jorge Ortega
Joenco

gpyVozControl – El sistema de órdenes de voz en software libre

Hola amigos, les comparto mi proyecto de grado que fue el requisito final para obtener el titúlo de Ingeniero de sistemas, el cual consistió en el desarrollo de un software de órdenes de voz con las bibliotecas de reconocimiento de voz como lo son Julius y CMUSphinx con una licencia GNU Affero, a continuación les coloco el resumen del proyecto:
 
“En este proyecto se desarrolló, bajo tecnologías libres, un software o sistema que permite a una persona interactuar con el sistema operativo y su interfaz gráfica mediante órdenes de voz (como: abrir programas, cerrar, maximizar o minimizar ventanas, entre otros) con las aplicaciones instaladas. El sistema, al que se ha denominado “gpyvozControl”, también permite manejar los programas como el Evince (visualizador de PDF) y el reproductor de música (Rhythmbox). Estas fueron las características que se alcanzaron en el proyecto, pero teniendo presente que la finalidad superior es continuar con el desarrollo del Sistema de órdenes de voz que permita a cualquier persona en un futuro realizar todas las tareas del sistema solo con la voz.
 
El proyecto se decantó por el uso de tecnologías libres, después de una revisión de la oferta disponible y una estimación del esfuerzo y recursos requeridos en otras plataformas, además de las ventajas que ofrece al utilizar las mismas. Se revisó las bibliotecas de desarrollo de uso libre, creadas por un par de proyectos de procesamiento de voz como lo son Julius y CMUSphinx y que se adaptaron en la tarea especifíca de la transmición al computador de un subconjunto, seleccionado cuidadosamente, de los comandos que se transmiten con el teclado de un computador personal estándar. En el ejercicio, se identificó debilidades, ventajas y posibilidades de desarrollo, al tiempo que se terminó con un prototipo funcional personal para cada unade las bibliotecas.
 
La metodología usada, es el método ágil Scrum, que permite el desarrollo progresivo de ese prototipo, planificando los requisitos por prioridad de desarrollo, la duración de cada sprints y las actividades definidas por las historias de usuario que fueron diseñadas.
Este proyecto, además, fue un ejercicio interdisciplinario que combinó la experiencia de vida del propio desarrollador con generosas “donaciones de voz”, con herramientas para el procesamiento de voz y con el conocimiento de una experta en lingüística computacional.”(Ortega, J. 2016).
 
Puede verse una presentación en youtube:
https://www.youtube.com/watch?v=MzteJI9djm4
 
Todo el desarrollo esta disponible en:
http://bitbucket.org/gproyectogrado/gpyvozcontrol
y el wiki en:
http://bitbucket.org/gproyectogrado/gpyvozcontrol/wiki/Home
 
Aunque falta mucho por desarrollar, ya contamos con un piloto para seguir desarrollando y hacer que este sistema reconozca la voz del usuario para realizar cualquier actividad en el computador. Toda colaboración, sugerencia u opinión es bienvenida, anímate a dejarla en los comentarios y decir que te parece!.
 
Saludos a todos!!!


Lunes 01 de febrero de 2016

Jesus Palencia

¿Qué es Git?

Visto en xkcd bajo licencia CC BY-NC 2.5Archivado en: Geekstuff Tagged: git

Viernes 29 de enero de 2016

Silvio Perez: ### Recreate the GRUB2

IBM optimiza sus sistemas LinuxONE para entornos de cloud híbrida

Está Escrito:
Entonces él se sentó y llamó a los doce, y les dijo: Si alguno quiere ser el primero, será el postrero de todos, y el servidor de todos.(Marcos 9:35)

Tomado de: Diario TI
 
Las mejoras permitirán a empresas de cualquier tamaño desarrollar, desplegar y gestionar aplicaciones en la nube de manera sencilla, eficiente y segura.

IBM LinuxONE permite a los clientes, según su estrategia cloud, elegir entre distintas opciones que incluyen importantes mejoras:

Nuevas capacidades para nube híbrida – IBM está optimizando sus tecnologías Cloudant y StrongLoop para LinuxONE. Las nuevas aplicaciones ofrecen un entorno muy escalable en Node.js lo que permite a los desarrolladores diseñar aplicaciones para el servidor utilizando el lenguaje que quieran.

Cloudant, la base de datos empresarial gestionada NoSQL, almacena datos en formato JSON, el más común para datos móviles, permitiendo a los usuarios ahorrar tiempo ya que almacena esa información de forma nativa en el sistema, sin necesidad de convertirlo previamente a un lenguaje diferente.

Crecimiento del ecosistema – IBM está expandiendo las capacidades y el software para LinuxONE. Recientemente LinuxONE adaptó el lenguaje de programación Go, desarrollado por Google. Go está diseñado para construir software de forma simple y eficaz, facilitando que los desarrolladores puedan combinar las herramientas de software que conocen y manejan con la velocidad, seguridad y escalabilidad que ofrece LinuxONE. IBM empezará a proporcionar código a la comunidad de Go en verano.
Continuando su colaboración con SUSE en el ámbito de OpenStack, las herramientas SUSE podrán utilizarse para gestionar nubes públicas, privadas e híbridas en LinuxONE.

Sistemas mejorados – IBM ha lanzado nuevas versiones de la familia LinuxONE, incluyendo Emperor y Rockhopper, para mejorar la velocidad y la capacidad de proceso.

El próximo mes de marzo, IBM Open Platform (IOP), la plataforma de código abierto para proyectos de Big Data y analítica, estará disponible para el portfolio de LinuxONE sin coste. IOP representa un amplio conjunto de capacidades basadas en Apache Spark, Apache HBase así como Apache Hadoop 2.7.1. Fruto de su compromiso con la comunidad Open Source, IBM también ha optimizado el proyecto Open Managed Runtime (OMR) para LinuxONE.

Además, continuando el acuerdo anunciado el pasado año, Canonical ofrece su distribución Ubuntu Linux y sets de herramientas cloud a los clientes de LinuxONE. Con la incorporación de Ubuntu a las distribuciones SUSE y Red Hat, las empresas cuentan con una tercera opción para adquirir su sistema LinuxONE.

LinuxONE, presentado en agosto de 2015, está disponible para un amplio conjunto de herramientas Open Source e ISV incluyendo Apache Spark, Node.js, MongoDB, MariaDB, PostgreSQL, Chef y Docker.
Más información sobre la familia de sistemas IBM LinuxONE en http://www.ibm.com/linuxone

Jueves 28 de enero de 2016

Jesus Palencia

¡¡¡Feliz Día de la Privacidad!!!

Todos los años, el 28 de enero se celebra el Data Privacy Day o Día de la Privacidad, es una jornada impulsada por la Comisión Europea, las autoridades de Protección de Datos de los estados miembros de la Unión Europea … Sigue leyendo

Lunes 25 de enero de 2016

Pruebas de visualización de una página desde distintos dispositivos

Uno de los mayores problemas para los desarrolladores web es la diferente interpretación de los estándares web por parte de los navegadores, ocasionando que un sitio web se vea de forma distinta en diferentes navegadores. Ademas, con el surgimiento de dispositivos móviles en los últimos años,  ahora también se deben hacer pruebas de las páginas bajo distintas resoluciones para abarcar mas usuarios.

Aunque puede consumir mucho tiempo navegar desde distintos dispositivos y sistemas operativos para hacer las pruebas, existen herramientas para automatizar este proceso. Una que me gustó fue Remote Preview, una aplicación web que al definir una URL en un panel central, envía el navegador web de todos los dispositivos a esa dirección, permitiéndote ver como es la página en cada dispositivo, ademas, cada 1100ms chequea la URL, por lo que si la cambias, automáticamente todos los dispositivos visitan el sitio. Esto permite ahorrar el tiempo de navegación desde cada dispositivo y permite identificar rápidamente, problemas de compatibilidad entre resoluciones o plataformas.

Para entender mejor esta herramienta, les dejo un video donde pruebo como se ve mi blog en distintos navegadores y plataformas móviles:

Así que si desarrollas un sitio web, no dejes de usar esta herramienta para comprobar que el sitio se ve bien desde tu teléfono, tableta, computadora, desde los navegadores de escritorio, sistema operativo y otros. Mientras mas compatibilidad brindes a dispositivos, mas usuarios podrán leer tu contenido y recibir mas visitas.

 

La entrada Pruebas de visualización de una página desde distintos dispositivos aparece primero en El blog de Skatox.

Sábado 23 de enero de 2016

Silvio Perez: nmcli – bond – team – (Centos7/RHEL7)

Jueves 21 de enero de 2016

¿Eres una chica Fedora? ¡Entonces anotate!

No es un secreto que la presencia femenina siempre ha estado ahí, pero la mayoría de las veces no lo sabemos debido a la falta de información. Hace varios años se inició una Página Wiki con la idea de tener un listado de aquellas Mujeres que pueden proveer consejos y ayuda a aquellas nuevas colaboradoras que se inician en nuestra comunidad.

Me encuentro en la lista que Bee(IRC nick : bee2502), quien es parte del Fedora Community Operations Team “Equipo de operaciones comunitarias de Fedora”(#fedora-commops en IRC) ha iniciado una “llamada a acción”, donde esperamos qe todas las féminas que hacen vida en Fedora puedan colocar sus nombres en la wiki para facilitarnos el trabajo de reunirnos y difundir información de interés mutuo. Como Bee dice en su email:

9480323700_1b94a34651_z

“La diversidad en Fedora es una discusión que ha resurgido en los meses pasados, incluyendo la creación de la posición de Fedora Diversity Adviser (Consejero de Diversidad en Fedora), una posición que actualmente tiene María “tatica” Leandro. Como parte de los objetivos identificados en el Consejo Fedora, una iniciativa para promover Fedora a nuevos colaboradores con diferentes características e historias, ha sido enfatizada para el 2016.

Fedora Women (Mujeres Fedora) es central para los esfuerzos de incrementar la diversidad. Sin embargo, para tener un mejor entendimiento de nuestras fortalezas y debilidades actuales, – trataremos de recopilar información sobre nuestra comunidad, su composición, y sus intereses y prioridades, para poder probar hipótesis, y así poder crear y ejecutar buenas estrategias. Un buen punto de inicio es simplemente agregar tus detalles FAS a la lista de mujeres actuales que colaboran en Fedora dentro de la Página Wiki de Mujeres Fedora – la cual solo tiene ocho mujeres actualmente!”

Así que no esperes ni un solo segundo y por favor, coloca tu nombre en la wiki!
https://fedoraproject.org/wiki/Women

Puedes encontrar más información y discusiones en el ticket, relacionados con la instancia del Equipo de Operaciones de Comunidación:
https://fedorahosted.org/fedora-commops/ticket/23


This post has a nicer formatting that can be seen at it's original source at tatica.org , so feel free to hit the link and read better version!

Martes 19 de enero de 2016

Carlos Colmenarez

Carlos Colmenarez
LINUX – El Blog de Zero

BlackBerry abandonará definitivamente su sistema operativo en favor de Android

BlackBerry 10 ha muerto. Así lo ha anunciado John Chen, el director ejecutivo de la compañía canadiense que apostará por Android en 2016 con uno o dos terminales nuevos este año. El anuncio llega mientras explicaba como el BlackBerry Priv llegaría a más operadores estadounidenses, pero sin añadir fechas para Europa todavía, pero que llegará a 31 países más a lo largo de los próximos trimestres.

BlackBerry es una compañía peculiar, y al depender mucho de las ventas corporativas no necesita tener una amplia gama o tener nuevos dispositivos cada trimestre en el mercado. Pero sí necesita una buena ejecución en cada uno. John Chen piensa que es así. En los resultados financieros presentados a finales de diciembre así lo afirmaba.

Blackberry tiene una base sólida financieramente, y estamos ejecutando bien sobre ella. Para sostener nuestra dirección actual estamos aumentando las inversiones para añadir crecimiento continuado en software

Esta estrategia de apostar por el software y los servicios, manteniendo productos con un sistema operativo que las empresas estén dispuestas a implementar, así como usuarios avanzados. El salto a Android despeja las dudas que los inversores pueden tener, y permite liberar a ingenieros de software atados en BB10 para el desarrollo y personalización de Android, así como los servicios.

blackberry resultados

El hardware de BlackBerry ya solo constituye el 40% de sus mermados ingresos. En plena cima, cuando los ingresos de BlackBerry se contaban en las decena de miles de millones y no en las centenas de millones, el hardware suponía más del 80% de sus ingresos. No es secreto que el futuro de BlackBerry pasa por los servicios y el software que puedan ofrecer a las empresas. Pero no está claro cómo de potente sea la diferenciación que puedan ofrecer para seguir siendo relevantes.


Jorge Ortega

Jorge Ortega
Joenco

Agregando los repositorios oficiales en debian 8

Hola amigos y feliz año nuevo, cuando instalamos Debian por primera vez, el archivo sources.list no tiene los repositorios oficiales, por lo que debemos actualizar dicho archivo y lo podemos hacer de la siguiente forma:
 
1. Copiamos y guardamos las siguiente lineas en un archivo (para este caso es para debian Jessie):
 

###DEBIAN JESSIE ESTABLE###
## Repositorio Oficial
    deb http://http.us.debian.org/debian/ jessie main contrib non-free
    deb-src http://http.us.debian.org/debian/ jessie main contrib non-free

## Repositorio de Seguridad
    deb http://security.debian.org/ jessie/updates main contrib non-free
    deb-src http://security.debian.org/ jessie/updates main contrib non-free

## Repositorio Multimedia
    # aptitude install deb-multimedia-keyring
#    deb http://www.deb-multimedia.org testing main non-free
    deb http://www.deb-multimedia.org jessie main non-free
    deb-src http://www.deb-multimedia.org jessie main non-free

 
2. Nos logueamos como superusuario (root) en un terminal/consola y ejecutamos el siguiente comando:
cat repositorio.txt > /etc/apt/sources.list
(suponiendo que guardamos el archivo como “repositorio.txt”)

3. Luego hacemos:
aptitude update
4. Instalamos la llave publica para los repositorios de multimedia:
aptitude install deb-multimedia-keyring
5. Por último se ejecuta:
aptitude safe-upgrade
Listo, tendremos el sistema actualizado y con los repositorios oficiales de debian 8.
 
Otra forma es copiar los repositorios arriba descritos y hacer los siguientes pasos:
 
1. Abrir un terminal/consola
2. Loguearse como superusuario(root).
3. Abrir el archivo sources.list:
gedit /etc/apt/sources.list
se selecciona todo con el atajo de teclado control+A, se pega el contenido copiado con control+V, luego guardamos con control+S y cerramos el archivo con control+Q.
4. Instalamos la llave publica para los repositorios de multimedia:
aptitude install deb-multimedia-keyring
5. Ejecutamos:
aptitude update && aptitude safe-upgrade
6. Listo! sistema y repositorio actualizados.

Espero les ayude, cualquier cosa pueden preguntar en los comentarios!!


Domingo 17 de enero de 2016

Héctor Colina

Lighttpd y mod_rewrite

WordPress implementa una interesante función que se llama enlaces permanentes. Sin embargo, esta funcionalidad se apoya directamente en el mod_rewrite de apache2.

Ahora bien, algunos de nosotros tratamos en lo posible no usar apache por razones de uso de recursos (en especial en hosting donde la memoria va casi justa) y en su lugar nos decantamos por lighttpd, por ejemplo, lo cual hace que tengamos que trabajar un poco más a la hora de implementar o desplegar funcionalidades como la anteriormente descrita.

Así, al momento de migrar los blogs que estaban funcionando sobre apache y wordpress hacia lighttpd y wordpress, aparecía el detalle de que el panel de administración de wordpress no mostraba en las opciones de enlaces permanentes que  las direcciones fuesen del tipo URL+titulo_entrada sino que eran URL+index.php/+titulo_entrada

Para solventar este detalle se realizaron los siguientes pasos:

a) Se habilito el módulo de mod_rewrite

b) Se creó un nuevo bloque de configuración con una sintaxis como esta:

$HTTP["host"] =~ "(www.)?misitio.com" {
         url.rewrite = (
                         "^/(.*)\.(.+)$" => "$0",
                         "^/(.+)/?$" => "/index.php/$1"
                        )
}

Luego de reiniciar el servicio, entonces, se nos muestra una nueva opción en el panel de enlaces permanentes que se llama “enlaces personalizados”

Espero les sea útil la entrada.

 

Lunes 11 de enero de 2016

Mi experiencia en el 2do QR-DA

El pasado 28 de noviembre, se realizó la segunda edición de QR-DA en la ciudad de Palo Gordo, Táchira. Este evento consiste en un hackaton o una reunión de informáticos, para realizar un aplicativo de labor social, liberarlo y que sea utilizado por muchas personas.

2da Edición

La segunda edición fue organizada por Richzendy y Tatica, quienes prestaron su futura casa como sede del evento. La temática general era probar e intentar instalar el software EventoL para llevar un mejor registro de las tareas realizadas en el FLISOL del 2016, sin embargo, cada integrante podía llevar su propio proyecto a trabajar, siempre y cuando cumpliera con la filosofía de QR-DA.

Mi proyecto

En mi caso, como no sé programar en Django busqué una alternativa y como desde hace tiempo estuve hablando con Richzendy para reactivar el grupo de Linux/Software Libre del Táchira, aproveché la oportunidad para realizar el sitio de Linux Tachira o mejor conocido como TALUG (Tachira’s Linux User Group).

El diseño inicial fue realizado por Tatica, quien se encargó de definir la disposición del sitio, donde ubicar el contenido. Posteriormente junto a Xombra, construimos ese diseño en Bootstrap mientras Tatica ayudó a mejorar el arte creativo. Una vez construido el HTML inicial, llegó Johnpunk para ayudarnos con detalles para hacer el sitio lo mas tachirense posible.  Finalmente luego de construir el sitio, Richzendy se encargó de actualizar los DNS, configurar el envío de correo y corregir bugs iniciales.

Fase de planificación "Todos" programando con mucha concentración Maria "Tatica" Leandro, Hector "Xombra" Mantellini y yo En ningún hackaton falta la Pizza y Refresco Xombra mirando la vista de la ciudad en el receso Maria Leandro editando una foto mía Programando Cierre del evento con una sesión de Guitar Hero Cierre del evento con una sesión de Guitar Hero

Proyectos realizados

Debido a que estuve concentrado en el desarrollo del sitio de TALUG, no me fijé mucho en lo que hizo en el resto, solo lo de  Maria Leandro porque estaba a mi lado. Por mi parte logramos finalizar el sitio de Linux Tachira, pude acomodar algunos detalles visuales de mi sitio web profesional. Tatica se que ayudó con mejoras del arte de Linux Tachira, hizo el diseño de papelería para el FLISOL, acomodó detalles del sitio web del FLISOL, entre otros.

Por parte de EventoL, tengo que entendido que se logró descartar las plataformas donde no puede correr,  las dependencias necesarias, se logró crear scripts para crear espejos de repositorios de distribuciones Linux para usarse en el FLISOL, entre otros. Tal vez parezcan pocas cosas, pero trabajamos solo 1 día y fuimos como máximo 8 personas en el evento.

Experiencia adquirida

Algo que me gustó del evento, aparte de compartir con amigos y panas de otras ciudades, fue el ambiente hacking. Por una parte, dar parte de tu tiempo para realizar tareas de código abierto. Por otra parte, compartir conocimientos y permitir expandir tus habilidades gracias a otros, por ejemplo, ese día descubrí una herramienta recomendada por Xombra para el diseño de interfaces con bootstrap, Richzendy me recomendó un servicio para el envío de correos desde aplicaciones Javascript, entre otros.

Palabra finales

Ojalá en el futuro se realicen mas eventos de este tipo y se realicen ediciones en distintas ciudades. Así podremos lograr avances en el desarrollo de software libre y mejorar nuestra experiencia profesional.

Les deseo un Happy Hacking!

La entrada Mi experiencia en el 2do QR-DA aparece primero en El blog de Skatox.

Sábado 09 de enero de 2016

ubuntu-ve: HackLab Ubuntu-Ve 2016
Héctor Colina

¡Hola mundo!

Bienvenido a WordPress. Esta es tu primera entrada. Edítala o bórrala, ¡y comienza a escribir!

Sábado 02 de enero de 2016

Feliz Año... 2016

<?php
session_start();
session_name("loginUsuario");
if ($_SESSION["autentificado"] != "SI") 
{
header("Location:index.php");
} else {
    //sino, calculamos el tiempo transcurrido
    $fechaGuardada = $_SESSION["ultimoAcceso"];
    $ahora = date("Y-n-j H:i:s");
    $tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));

    //comparamos el tiempo transcurrido
     if($tiempo_transcurrido >= 600) {
     //si pasaron 10 minutos o más
      session_destroy(); // destruyo la sesión
      header("Location:index.php"); //envío al usuario a la pag. de autenticación
      //sino, actualizo la fecha de la sesión
    }else {
    $_SESSION["ultimoAcceso"] = $ahora;
   }
}
?>
 Si Me Dan Unas Sujerencias...

Sábado 26 de diciembre de 2015

Ernesto Crespo

Ernesto Crespo
Blog de Seraph1

Instalar Docker en Debian Jessie


Hace un tiempo me toco dictar un curso de empaquetado para Debian y un compañero preparo una máquina virtual de Virtualbox con vagrant (un tutorial lo pueden revisar en el siguiente enlace).

Hubo un momento que dañamos algunos paquetes y recuperamos la imagen de forma rápida para continuar con el curso.

En mi caso como mi máquina personal no tengo como manejar varias máquinas virtuales con virtualbox preferí irme hacía la tecnología de contenedores con Docker. Pueden revisar wikipedia para saber más de docker.

La guía de instalación para Debian Jessie en inglés lo pueden encontrar en el siguiente enlace; y la guía de usuario en el siguiente enlace. El repositorio donde se alojan imágenes lo pueden revisar en este enlace.

0. Instalar soporte de https para los repositorios:
#apt-get install apt-transport-https

1. Borrar paquetes viejos o de lxc:
#apt-get purge lxc-docker 
#apt-get purge docker.io

2. Agregar la llave gpg de docker.io:
#apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys  58118E89F3A912897C070ADBF76221572C52609D 

3. Agregar el repositorio al sources.list.d:
vim /etc/apt/sources.list.d/docker.list

deb https://apt.dockerproject.org/repo debian-jessie main


4. Actualizar la lista de repositorios: 
#apt-get update

5. Verificar que se baja el paquete del repositorio correcto: 
#apt-cache policy docker-engine

6. Instalar docker:
#apt-get install docker-engine

7. Iniciar el demonio docker:
#service docker start

8. Verificar que se instaló correctamente:
# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b901d36b6f2f: Pull complete 
0a6ba66e537a: Pull complete 
Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7
Status: Downloaded newer image for hello-world:latest

Hello from Docker.
This message shows that your installation appears to be working correctly.

9. Dar acceso de docker a usuarios no root:

9.1 Agregar el grupo docker si no existe:
$sudo groupadd docker

9.2 Agregar al usuario al grupo docker:
$ sudo gpasswd -a ${USER} docker

9.3 Reiniciar el demonio docker:
$sudo service docker restart

En siguientes artículos se mostrará el uso de docker, como crear imágenes y por último se creará un entorno para empaquetar para Debian.
Dejaré por acá las referencias para usarlas en un futuro:
Referencias:
10. Algunos artículos del blog de Javier Garzas: 


Viernes 25 de diciembre de 2015

ubuntu-ve: Feliz Navidad 2015 y un Venturoso Año Nuevo
Ernesto Crespo

Ernesto Crespo
Blog de Seraph1

Volviendo a lo básico, POO en Python (parte 2)

Continuando con la serie de artículos sobre programación orientada objetos con python, les dejo el enlace del primer artículo.


El siguiente artículo se basa en un artículo de un blog publicado en www.toptal.com.

En el artículo anterior se muestra las variables id_ciudad y cont_ciudad como atributos de la clase. Se mostrará con el siguiente ejemplo que no siempre es bueno usar atributos de una clase, que se rompe la norma de encapsulación de la POO. 



#!/usr/bin/env python3


# -- coding: utf-8 --








class Servicio(object):


dato = []





def init(self,otro_dato):


self.otro_dato = otro_dato





if name == "main":


s1 = Servicio(["a","b"])


s2 = Servicio(["c","d"])


s1.dato.append(1)


print "dato de S1: ",s1.dato


print "dato de S2: ",s2.dato


s2.dato.append(2)


print "dato de s1: ",s1.dato


print "dato de s2: ",s2.dato


print "otro dato de s1: ", s1.otro_dato


print "otro dato de s2: ", s2.otro_dato




Al ejecutar el código se tiene:


dato de S1:  [1]


dato de S2:  [1]


dato de s1:  [1, 2]


dato de s2:  [1, 2]


otro dato de s1:  ['a', 'b']


otro dato de s2:  ['c', 'd']



El las 4 primeras líneas de la ejecución muestrán que la instancia s1 y la instancia s2 practicamente tienen el mismo valor a pesar de que se agrega el dato en s1 y se refleja en s2, luego se agrega el dato en s2 y se refleja en s1.

En el artículo en inglés mencionan que la solución sería no tener una lista vacía como instancia de la clase si no colocar None. 

A continuación el código:


#!/usr/bin/env python3


# -- coding: utf-8 --








class Servicio(object):


dato = None





def init(self,otro_dato):


self.otro_dato = otro_dato





if name == "main":


s1 = Servicio(["a","b"])


s2 = Servicio(["c","d"])


s1.dato = 1


print "dato de S1: ",s1.dato


print "dato de S2: ",s2.dato


s2.dato = 2


print "dato de s1: ",s1.dato


print "dato de s2: ",s2.dato




El resultado de la ejecución es el siguiente: 


dato de S1:  1


dato de S2:  None


dato de s1:  1


dato de s2:  2



Como se ve ya no muestra valores iguales entre las dos instancias de la clase.

Ahora muestro el código sin la instancia de la clase, creando dato como una variable privada y unos métodos que acceden a dato:



#!/usr/bin/env python3


# -- coding: utf-8 --








class Servicio(object):








def init(self,otro_dato):


self.dato = []


self.otro_dato = otro_dato





def mostrar_dato(self):


return self.__dato





def agregar_dato(self,dato):


self.__dato.append(dato)





def inicializar_dato(self,):


self.__dato = []





if __name == "main":


s1 = Servicio(["a","b"])


s2 = Servicio(["c","d"])


try:


s1.dato.append(1)


except AttributeError:


print "No se pudo agregar a dato de s1"


finally:


print s1.mostrar_dato()


print s2.mostrar_dato()


s1.agregar_dato(1)


s1.agregar_dato(3)


s2.agregar_dato(2)


s2.agregar_dato(4)


print s1.mostrar_dato()


print s2.mostrar_dato()






Al ejecutar el script se tiene lo siguiente:


No se pudo agregar a dato de s1


[]


[]


[1, 3]


[2, 4]




No es un error crear atributos de una instancia lo que se tiene que saber es exactamente que lo que se necesita en la clase para evitar estos errores, y lo mejor es seguir el paradigma de programación orientada a objetos.

Viernes 18 de diciembre de 2015

Ernesto Crespo

Ernesto Crespo
Blog de Seraph1

Volviendo a lo básico, POO en Python (parte 1)

Luego de un tiempo escribiendo artículos de temas muy diversos sobre python, ahora iniciaré una serie sobre programación orientada a objetos desde lo básico hasta las nuevas características incorporadas en el lenguaje.

Esto me ayudará también a mí a corregir unas práctias en cuanto a la programación orientada a objetos y aprender nuevas prácticas.

Actualmente estoy usando una herramienta de una página web que permite evaluar la calidad de un código, este sitio se llama www.quantifiedcode.com.

Me he encontrado con errores en un desarrollo que por eso inicio esta serie de artículos.

En la siguiente figura verán como muestra los errores la herramienta:


Lo bueno es que al hacer un commit a github automáticamente quantifiedcode envía un correo con las incidencias.


Bueno, ahora toca ir al artículo en sí.

Se tiene una clase ciudad con varios métodos.

A continuación se muestra el código:

#!/usr/bin/env python3



from math import *



#Se crea la clase ciudad que hereda de object.

#Esto se declara asi actualmente por convencion.

class Ciudad(object):

#Datos

cont_ciudad = 0 

id_ciudad = 0





def init(self,nombre='',x=0,y=0):

"""Constructor que recibe el nombre de la ciudad,x y y"""

self.nombre = nombre 

self.x = x 

self.y = y

Ciudad.cont_ciudad += 1

self.id_ciudad = Ciudad.cont_ciudad



def str(self):

"""Metodo que retorna un string con la info de la ciudad"""

return 'Ciudad: ' + self.nombre + ',id= ' + str(self.id_ciudad) + ',x= %s,y=%s' %(self.x,self.y)

    

def set( self, nombre):

"""Metodo que asigna un valor"""

self.nombre= nombre



def get( self):

"""Metodo que obtiene un valor"""

return  self.nombre



def mover_a(self,x=0,y=0):

"""Metodo que cambia de valor a x y y"""

self.x += x

self.y += y



def distancia(self, otra_ciudad):

"""Metodo que calcula la distancia con respecto a otra ciudad"""

xi = pow(otra_ciudad.x-self.x,2)

yi = pow(otra_ciudad.y-self.y,2)

return sqrt(xi+ yi)



def del(self):

"""Elimina la clase"""

#obtener el nombre de una clase

class_name = self.class.name

print('class ', class_name, 'destroyed')





#Inicializando un metodo estatico

#Es el caso que no se referencia al objeto en si mismo con

#self

@staticmethod

def info():

"""Metodo que devuelve el nombre del desarrollador"""

return  "Desarrollado por Seraph"







if name == "main":

a = Ciudad('Valencia',5,5)

b = Ciudad('Maracay',5,15)

print(a)

print(b)

print(Ciudad.cont_ciudad)

a.mover_a(4,3)

b.mover_a(7,12)

print(a.info())

print(a)

print(b)




El método info maneja un decorador llamado staticmethod que lo define como un método estático, ya que no se le pasa self para trabajar con métodos o variables del mismo objeto.

El resultado de ejecutar el script es el siguiente:

Ciudad: Valencia,id= 1,x= 5,y=5
Ciudad: Maracay,id= 2,x= 5,y=15
2
Desarrollado por Seraph
Ciudad: Valencia,id= 1,x= 9,y=8
Ciudad: Maracay,id= 2,x= 12,y=27
('class\t', 'Ciudad', 'destroyed')
('class\t', 'Ciudad', 'destroyed')



Miércoles 09 de diciembre de 2015

Extensiones útiles en Chrome

Esta vez quiero darte pequeños tips de algunas extensiones, para que tu navegador google chrome pueda lucir aun mas amigable Read Later Fast: Te permite almacenar paginas en esta aplicación que podrás consultar/leer luego. URL shortener:  Puedes cortar la URL del sitio que estás viendo, lo genial es que puedes configurar los atajos del teclado, […]

Lunes 30 de noviembre de 2015

Hackfest pre FLISoL 2016

El sábado pasado nos reunimos varios amigos acá en la casa para trabajar en los preparativos logísticos del FLISoL 2016 y su edición en Venezuela. Fue una jornada de QRDA divertida en la que no solo trabajamos, sino que nos divertimos cerrando la noche con una buena partida de Rock Band.

  • Repositorio de Documentos Actualizado: Ya que varias personas siempre necesitan algunos documentos para las formalidades de la organización, me tomé un tiempo para revisar entre mis archivos viejos y subí 5 que creo que pueden serles de utilidad.
    • Invitación a Grupo de Usuarios
    • Carta base de solicitud de patrocinio
    • Extracto de prensa
    • Confirmación de asistencia
    • Programa / Cronograma
  • Repositorio de Arte: Como ya es costumbre, todos los años hago una propuesta de arte para la publicidad del FLISoL. Si bien es cierto que cada país usualmente hace su propio arte o variación, en muchos este primer arte termina siendo el punto de partida para que los grupos participantes den inicio a su creatividad. En fin, por ahora el repo solo consta de lo siguiente (espero ir agrandándolo de aquí a diciembre)
    • Afiche (Tamaño Carta – Luego vendrán más medidas)
    • Banner web cuadrado
    • Membrete para documentos
    • Identificativo/Distintivo: Instalador, Patrocinador, Asistente y Ponente.
flisol16-afiche

De la misma los otros integrantes del hackfest realizaron diversas actividades en la prueba del sistema de registro EventoL y también aprovechamos la oportunidad para trabajar en la página de linuxtachira.org.ve (gracias skatox!), por lo que creo que fue una jornada realmente productiva!

Si están interesados en darle seguimiento a cualquiera de estos proyectos, pueden revisar el repo principal en el Github del FLISoL-VE. De más está decirles que están bienvenidos a colaborar.

Debo agradecer a aquellos que tomaron un tiempo de sus actividades personales y se dieron la travesía de viajar hasta San Cristóbal (Génesis, Hector, Xombra, David, Quidam), a aquellos locales que hicieron el tiempo para compartir con nosotros (richzendy, skatox y  jhonpunk), esperamos la hayan pasado bien y recibirlos con los brazos abiertos en otra oportunidad!


This post has a nicer formatting that can be seen at it's original source at tatica.org , so feel free to hit the link and read better version!

Martes 17 de noviembre de 2015

Jorge Ortega

Jorge Ortega
Joenco

Actualización – Configurar nuestra cuenta de facebook en pidgin

Un compañero me comento que tratando de configurar su cuenta de facebook en pidgin, esta no se conecta al chat y revisando un poco, esto se debe a que ya no hay soporte para el protocolo XMPP, pero tranquilos porque con solo instalar un plugin podemos resolver este inconveniente!!
 
El plugin se llama “Facebook IM” y para instalarlo solo agregamos el repositorio correspondiente a nuestra versión de GNU-Linux:

Lunes 09 de noviembre de 2015

Valencia Software Libre: Reunion QR-DA en miras al Flisol 2016 en San Cristobal - Tachira

Viernes 06 de noviembre de 2015

Medidas estándar para fondos de pantalla (wallpapers)

Si eres un diseñador, fotógrafo o un simple entusiasta que quiere colocar una imagen como fondo de pantalla, pero no sabes la medida que mejor se acople a tu resolución, has llegado al lugar indicado.

En la actualidad, la gran variedad de monitores disponibles hace que encontrar la mejor resolución para tu pantalla sea una tarea propensa a dolores de cabeza, sin embargo, una vez que comprendes como funciona la relación de aspecto de tu resolución es pan comido. Primero dividamos nuestro artículo en dos secciones: La relación de aspecto 16:9 y el 4:3

widescreen

Relación de aspecto 16:9

Es el estándar usado por la televisión de alta definición y se ha convertido en un estándar para los monitores. Es ancho y normalmente se le suele llamar panorámico o widescreen.

  • 960×540 px
  • 1024×576 px
  • 1280×720 px
  • 1366×768 px
  • 1600×900 px
  • 1920×1080 px
  • 2048×1152 px
wide

Relación de aspecto 4:3

Hasta 2009 fue el estándar utilizado en la televisión PAL; muchas pantallas de ordenador y televisores utilizaban este estándar. Se le suele llamar cuadrado, rectangular o wide.

  • 800×600 px
  • 1024×768 px
  • 1152×864 px
  • 1280×960 px
  • 1400×1050 px
  • 1440×1080 px
  • 1600×1200 px
  • 1680×1260 px
  • 1920×1440 px
  • 2048×1536 px

Evidentemente hay muchas mas medidas y relaciones deaspecto, sin embargo, la lista anterior muestra los dos más utilizados. A continuación y de forma complementaria, listaremos los tamaños recomendados para fondos de pantallas que tienen relaciones de aspecto 5:4, 16:10, 5:3 y 3:2

Relación de aspecto 5:4

  • 1280×1024 px

Relación de aspecto 16:10

  • 960×600 px
  • 1152×720 px
  • 1280×800 px
  • 1440×900 px
  • 1680×1050 px
  • 1920×1200 px

Relación de aspecto 5:3

  • 800×480 px
  • 1280×768 px

Relación de aspecto 3:2

  • 1152×768 px
  • 1440×960 px
  • 2000×1333 px

This post has a nicer formatting that can be seen at it's original source at tatica.org , so feel free to hit the link and read better version!

Lunes 02 de noviembre de 2015

Como instalar xanadu

Video de como Instalar Xanadu GNU/Linux 0.8.0 utilizando el instalador automatizado…

XANADU Linux

Y ya que hablamos de xanadu les comento que ya esta distro esta en su versión 0.8

Después de varios meses de desarrollo la versión 0.8.0 de Xanadu GNU/Linux ya esta entre nosotros.

Asi se ve actualmente Xanadu

xanadu linux desktop

Pasen por su blog y bajen esta distro que esta muy buena!!

https://xanadulinux.wordpress.com

Martes 13 de octubre de 2015

¿Que es QRDA? #QRDA @QRDAve

QRDA nace bajo la idea de proveer soluciones tecnológicas a distintas organizaciones sin fines de lucro, a través del apoyo de twitter.com/delbosquetech y con el respaldo de la Comunidad del Software Libre en Venezuela.

Esta idea la propone Luis Ortiz, gran amigo y compañero de trabajo. Se desarrolla en una reunión social (agua, cerveza, jugos, refresco, pizza) por lo que es considerado un evento entre panas que buscamos un mismo fin: dar apoyo con nuestro conocimiento tecnológico para desarrollar proyectos determinados.

Luis en la Charla de Inicio de QRDA

Luego de establecer las bases que sustentarían este proyecto, se fueron creando diferentes tickets en github que permitieran establecer un orden a las actividades que se van desarrollando, para luego crear las diferentes listas de correo y comenzar a trabajar.

Al final de la actividad pudimos compartir con personas que se acercaron de diferentes parte de Venezuela y que integran la Comunidad del Software Libre, gente con la cual me identifico y que se ha ganado mi respeto.

La lista de agradecimiento es extensa, son muchos los involucrados en este maravilloso proyecto que, aún y cuando está comenzando, podría asegurar que ayudará a muchas personas y tendrá un crecimiento positivo. Muchas gracias a todos.

Les dejo las redes sociales de QRDA para que también puedan seguir este proyecto y, si lo desean, puedan unirse a nosotros:

https://twitter.com/QRDAve/
https://instagram.com/qrda.ve
https://www.facebook.com/QRDA.com.ve
http://qrda.com.ve

Nuevamente Gracias por venir.

Viernes 25 de septiembre de 2015

Listado de directorios en github pages

Recientemente decidí migrar mi sitio web a github pages. El proceso es muy sencillo y perfectamente descrito en https://pages.github.com/. Los dos únicos bemoles de este servicio son:

Lunes 14 de septiembre de 2015

La accesibilidad web para personas con discapacidad visual

“La Accesibilidad” hoy en día es una de las palabras más utilizadas cuando nos referimos a las persona con alguna discapacidad, más específicamente la discapacidad visual. Ésta no solamente abarca los aspectos de software y hardware, sino que además se centra en la vida misma de estas personas, cómo puede hacerse más fácil la tarea de convivir con personas que no tienen este tipo de desventaja; debido a esto, las instituciones del Estado se han interesado y comprometido a realizar medios más accesibles para ellos, así por ejemplo tenemos los pasos peatonales, incluso hoy en día hablamos de la creación de páginas web o sistemas de información accesibles. Es importante resaltar que se debe hacer un buen uso de la tecnología para poder romper las barreras que se presentan.
La construcción de estos sistemas o páginas web son de gran ayuda para las personas que viven con esta discapacidad debido a que han sido de alguna forma discriminados, sin dejar a un lado que este grupo está ya formado por más de 30 mil personas en nuestro país, esto de acuerdo a las cifras arrojadas en el censo realizado por CONAPDIS (Consejo Nacional para las Personas con Discapacidad). Es por ello que en estos momentos se debe luchar por incluir a todas estas personas en las actividades cotidianas del hombre, más específicamente en el mundo de las tecnologías, permitiéndoles conocer, por medio de páginas web por ejemplo, todo el contenido que puede ser de su interés y así pueda salir adelante de una mejor manera. El objetivo principal es que estos sistemas estén disponibles para todas estas personas y que sean incluidas en el aparato productivo de nuestro país, además de que la misión es producir, transformar e implantar bienes y servicios lo suficientemente accesibles para ellos.
La tiflotecnología ha logrado grandes avances; a nivel mundial existen organizaciones dentro de las cuales podemos mencionar a La Once (Organización Nacional de Ciegos Españoles), la cual ha sido pionera en el uso de herramientas o dispositivos que ayudan a las personas con esta discapacidad, a ser independientes. También existen escuelas destinadas a la enseñanza completa de estas personas, como son la Lighthouse International en Estados Unidos, encargada de enseñar de manera completa con la finalidad de lograr el desenvolmiento de estos; les proporcionan ayuda en cuanto a la orientación, el uso del computador, el uso del bastón, además de otras actividades, todo con la finalidad de que cada uno de ellos no pase a ser una carga para sus familias, sino que sean personas independientes y capaces de desenvolverse tanto tecnológicamente como en las relaciones de su vida diaria.
La metodología aplicada en esta investigación es documental, ya que trata de ver lo que existe hoy en día, cómo se puede mejorar y cómo se pueden crear herramientas que verdaderamente sean útiles para el trabajo diario, ya que no tendría ningún sentido desarrollar aplicaciones sin tomar en cuenta a los usuarios interesados acerca de cómo se les puede ayudar.
Palabras Claves: Hardware, Software, Software Libre, Tiflotecnología, Discapacidad, Discapacidad Visual.

Este es uno de los tantos articulo arbitrado realizado en el proceso de postgrado, luego explicare las fases y las herramientas a usar.

Domingo 13 de septiembre de 2015

Richzendy Contreras

Richzendy Contreras
Richzendy.org » Gnu y Linux

Taller de empaquetamiento RPM en Fudcon Cordoba 2015

Sábado 12 de septiembre de 2015

Instalar Samba en Debian

Primero que nada hacemos la instalación del paquete
root@orthanc:/home/julioh# aptitude install samba

En nuestro home creamos el nombre de una carpeta que vamos a usar para compartir
mkdir share
chmod 777 share

Luego modificamos el archivo de configuración de samba

root@orthanc:/home/julioh# nano /etc/samba/smb.conf


# Samba config file created using SWAT
# from UNKNOWN (192.168.42.219)
# Date: 2014/05/15 14:19:36
[global]
server string = %h server
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
hosts allow = 127.0.0.1, 192.168.41.0/24, 192.168.40.0/24
#hosts deny = 0.0.0.0/0
#Comentamos el HostDeny para que me acepte los rangos de ip #de nuestra red interna
#[homes]
# comment = Home Directories
# valid users = %S
# create mask = 0700
# directory mask = 0700
# browseable = No

#[printers]
# comment = All Printers
# path = /var/spool/samba
# create mask = 0777
# printable = Yes
# print ok = Yes
# browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
[SALA]
comment = Archivos Compartidos
path = /home/julioh/share
#admin users = root, SalaP, sala01, sala02
#username = root
#hosts allow = 192.168.41.0
#read list = @users
#public = yes
#only guest = yes
#Le descomentamos para que puedan escribir
writable = yes
read only = yes
valid users = SalaP, root, sala01, sala02
write list = SalaP, root, sala01, sala02
# Lineas agregadas
# crear archivos con permisos rxw
create mask = 0700
# crear directorios con permisos rxw
directory mask = 0700

Luego Detenemos el demonio y lo volvemos a levantar
root@orthanc:/home/julioh# /etc/init.d/samba restart
[ ok ] Stopping NetBIOS name server: nmbd.
[ ok ] Starting NetBIOS name server: nmbd.
[ ok ] Stopping SMB/CIFS daemon: smbd.
[ ok ] Starting SMB/CIFS daemon: smbd.
[ ok ] Stopping Samba AD DC daemon: samba

Luego de esos podremos compartir archivos en un directorio seguro para una red interna.

Martes 08 de septiembre de 2015

Alvaro Jésus Hernández Arteaga

Alvaro Jésus Hernández Arteaga
Cacho y Capote

Volver a-Marte o migrar cuando todo se jo..

Cuando migrar a cualquier otro país no resuelve nada, Marte puede ser una buena alternativa.

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.

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:

Domingo 23 de agosto de 2015

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 libfreeimage-dev libprotobuf-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.

Domingo 09 de agosto de 2015

David Moreno

David Moreno
dm's blog

0x1F

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

I’ve now turned 0x1F.

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

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.

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

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!

Lunes 18 de mayo de 2015

David Moreno

David Moreno
dm's blog

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

I turned 30.

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

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.


Viernes 03 de abril de 2015

Carlos Colmenarez

Carlos Colmenarez
LINUX – El Blog de Zero

¿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
LINUX – El Blog de Zero

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


Domingo 15 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