Miércoles 30 de julio de 2014

Cortar una imagen con una relación de aspecto definida: Darktable Vs. Gimp

A veces las cosas más fáciles son a las que menos les prestamos atención, y son estos trucos pequeños los que marcan la diferencia a la hora de editar rápidamente una imagen.

En el podcast de hoy, les daré una breve explicación sobre qué es la relación de aspecto, los tipos mas comunes para la fotografía, y como utilizarla. En el podcast está incluido el tutorial tanto en Darktable como en GIMP, ya que como siempre digo, lo bueno de Linux es la variedad.

Últimamente, cuando nos piden enviar un wallpaper a las distribuciones a las cuales colaboramos, uno de los requerimientos más importantes, mas allá del formato, es que tengan una relación de aspecto de 16:9. Es por eso que, si estás pensando colaborar con algún proyecto enviando tu wallpaper, que este pequeño tutorial de ayudará.

Espero que este tutorial les guste, y si además de eso también les gustó la imagen que se utilizó, no olviden darle click al post donde pueden encontrar los wallpapers de las avispas.

flattr this!

Martes 29 de julio de 2014

Jorge Ortega

Jorge Ortega
Joenco

Instalar Debian 7 paso a paso con accesibilidad

Una de las caracteristicas de la versión estable de Debian 7, es que ahora los que tenemos discapacidad visual, podemos instalar sin problemas esta versión, ya que han integrado un sintetizador de voz en su instalación, lo que la hace accesible.

En este sentido, es importante mencionar que en la instalación se cuenta con diferentes listas de opciones que debemos elegir durante el proceso, las mismas, se encuentran asignadas con un número único, dicho número debe ser usado para elegir la opción que sea requerida.

Requisitos para la instalación:

  1. Un CD con la iso de Debian 7 (http://www.debian.org).

  2. Unas cornetas o audífonos.

  3. Conexión a internet

  4.  

A continuación se explican los pasos a seguir para instalar Debian 7 (Wheezy) de forma accesible:

  • El primer paso a seguir consiste en reiniciar el equipo con el CD de instalación en la unidad correspondiente. Espere hasta que se detenga el CD.

  • Luego se procede a presionar la tecla S y pulsar Enter. Esto activará el sintetizador de voz, utilice unas cornetas o audífonos para escuchar, ya que en ocasiones el volumen esta muy bajo.

  • Ahora elegimos el idioma de instalación, para el español es el número 42.

  • El paso siguiente consiste en elegir el país de ubicación, para el caso de Venezuela corresponde el número 20

  • Luego debemos elegir la configuración del teclado, en nuestro caso es Latinoamericano, siendo el número 49.

  • Para comprobar la detección del hardware de la red, se debe atender a la siguiente pregunta. ¿desea cargar los controladores que hacen falta de un medio extraíbles? Elegiremos No, que es el número 2.

  • Para elegir interfaces de red, si se tiene más de un dispositivo de red solo se debe seleccionar aquella que se va a utilizar durante la instalación de Debian Wheezy. En este caso es la opción 1 (ETH0).

  • Se nos pedirá el nombre de la maquina, sera de la preferencia del usuario.

  • En el siguiente paso se insertará la contraseña al usuario “root”, y se debe confirmar.

  • se procede a escribir el nombre completo del usuario.

  • Luego el nombre con el que se iniciara la sesión (login del usuario).

  • Así como con el superusuario root, se escribe la contraseña y se confirma para el usuario creado.

  • Este es un paso importante, aquí se elige donde se instalará Debian Wheezy en el disco duro, si no se tiene experiencia en particionado es recomendable realizarlo utilizando todo el disco. Así lo haremos para esta guía, por lo que elegiremos la opción 1: “Particionado guiado utilizar todo el disco”.

  • A continuación podemos elegir entre 3 opciones:

    • Una sola partición.

    • Separar el Home.

    • Separar OPT, Usr, var entre otras.

En mi caso siempre elijo la opción 2, para separar el home.

  • una vez realizadas dichas particiones, ya estamos listos para instalar el sistema base, por lo que elegimos la opción: “se ha terminado de definir la partición”.

  • Se muestra un resumen con las particiones, la cual deberemos aceptar, eligiendo la opción 1: “Sí”.

  • Luego preguntara ¿desea utilizar una replica en la red? Elegimos el numero 1 asignado a la opción si.

  • se debe elegir la ubicación donde se va a conectar, para nuestro caso es el 74: “Venezuela”.

  • Elegimos una replica de Debian, tenemos dos opciones:

  1. debian.unesr.edu.ve

2cdn.dedian.net

se puede seleccionar cualquiera de ellas, escribiendo 1 o 2.

  • por ultimo debemos elegir entre los programas:

  1. dedian desktop

  2. web server

  3. print server

  4. sql database

  5. dns server

  6. file server

  7. mail server

  8. ssh server

  9. laptod

  10. utilidades estándar del sistema

    aquí escribiremos dejando un espacio en blanco en cada opción elegida, de la siguiente forma: 1 8 9 10

  • Esto puede tardar algo de tiempo, dependiendo de su conexión a internet.

  • Cuando se termina la instalación, nos preguntará si deseamos instalar el sistema de arranque “grub”, elegimos la opción 1: “Sí”, es de acotar que si dejamos pasar un tiempo, por defecto lo instalará.

  • Una vez se complete la instalación, debemos reiniciar el equipo, habiendo sacado el CD previamente.

  • Al reiniciar se nos pedirá el nombre de usuario y la contraseña, la escribimos para iniciar sesión en nuestro sistema Debian 7.

  • Felicidades!!! ya haz instalado con accesibilidad Debian 7 en tu equipo.

Si te ha gustado, tienes alguna pregunta o sugerencia, te animo a dejarla en los comentarios.

Descargar archivo de instalación Debian 7.

Saludos a todos!!!


Lunes 28 de julio de 2014

Ramon Marquez

Ramon Marquez
Libuntu » Linux

Se lanzan nuevas versiones de actualización en varias ramas de Linux

Greg Kroah-Hartman ha anunciado a través de la lista de correo del kernel Linux, una serie de nuevas versiones de actualización para varias ramas de Linux. Específicamente se tratan de las versiones 3.15.7, 3.14.14, 3.10.50 y 3.4.100, estas nuevas versiones traen consigo numerosas mejoras, actualizaciones de drivers y varios arreglos al respecto. Vale reseñar que […]
Jesus Palencia

Xanadu GNU/Linux libera su versión 0.5.9

El proyecto Xanadu ha liberado su nueva versión 0.5.9, teniendo como principal novedad el estreno de la imagen minimal para amd64 además de múltiples optimizaciones y correcciones de errores.

Acá les dejo el enlace de la nota de lanzamiento:

https://xanadulinux.wordpress.com/2014/07/28/lanzamiento-de-la-version-0-5-9/


Tagged: lanzamiento, xanadu

ColorZilla, recoge muestras de color en tu navegador

La gente de ColorZilla ha creado un par de plugines tanto para Chrome como para Firefox que te permiten tener un gotero integrado en tu navegador, y así, poder recoger muestras de color de forma fácil y rápida. Vamos, es como tener un kcolorchooser a un solo click de distancia.

screenshot2

 

ColorZilla incluye varias herramientas adicionales:

  • Cuentagotas - para obtener el color de cualquier pixel en la página
  • Una busqueda de colores similares.
  • Analiza los colores del elemento DOM en cualquier página Web
  • Generador de gradientes en CSS
  • Palette Viewer con 7 paletas preinstalados
  • Histórico de los colores escogidos recientemente
  • Información del elemento de la etiqueta, clase, Identificación, tamaño, etc
  • Manipular los colores por sus componentes / saturaciones / Valor Rojo / Verde / Azul o Hue.
  • Copia automática de los colores generados o muestreados en el portapapeles en CSS RGB, Hex y otros formatos.
  • Atajos de teclado para el muestreo rápido colores de la página.
  • Características adicionales

screenshot1

Si eres un diseñador y siempre necesitas revisar los colores con el inspector de código de tu browser, esta será una fácil y rápida solución para tu flujo de trabajo diario.

flattr this!

Ramon Marquez

Ramon Marquez
Libuntu » Linux

Linus Torvalds considera que la versión 4.9 de GCC es “una pura y absoluta mierda”

Linus Torvalds ha criticado la mas reciente versión del compilador de software libre GCC diciendo que dicha versión “es una pura y absoluta mierda”. A raíz de un random panic que se origino en una función de carga de equilibrio en el desarrollo del kernel 3.16 de Linux, Torvalds ha criticado la versión 4.9 de […]

Domingo 27 de julio de 2014

Puntero del mouse no visible en gnome

Download PDF

Si por alguna razón utilizando alguno de los componentes de gnome (como gnome-settings-daemon en mi caso porque gnome-terminal todavía me gusta) el puntero del mouse no es visible pero aún funcional, entonces lo más probable es que tengas que ejecutar:

dconf write /org/gnome/settings-daemon/plugins/cursor/active false

Este problema se da puesto que Gnome esconde el puntero cuando se detecta algún dispositivo touch¹ (vaya estupidez cuando lo touch no es la pantalla, pero el trackpad). Así pues, es necesario hacer entender al !@#$%&*@# Gnome que no se trata de una !@#$%^ pantalla touch pero de un !@##$%%^ multi-touch trackpad.

1. https://bugs.archlinux.org/task/34901

Jueves 24 de julio de 2014

Shortcodes Ultimate, un plugin para todo.

Una de las razones por las que utilizo WordPress como CMS es la facilidad, comodidad y versatilidad que me provee a la hora de publicar. Desde que migré a WP no me preocupo de actualizaciones, y escribir se ha convertido en un placer más que en una obligación; y de vez en cuando, aparecen plugines como Shortcodes Ultimate que hacen la experiencia aún mejor.

 Este plugin provee un mega-pack de shortcodes con el que puedes crear etiquetas, sliders, cajas, botones y mucho más. Si eres de esas personas que les gusta tener un artículo con un poco de interactividad, este es el plugin que debes instalar.

Este plugin también tiene una versión paga con la cual puedes conseguir más mejoras. La lista completa de mejoras que incluye la versión gratis de este plugin son:

screenshot-2

  • Servicios
  • Cajas
  • Notas
  • Secciones privadas
  • Youtube
  • Vimeo
  • Audio
  • Video Embedido
  • Tablas
  • Permalinks
  • Membresía
  • Invitados
  • RSS
  • Menú
  • Sub-páginas
  • Documentos
  • Mapas
  • Slider
  • Carrusel
  • Galería
  • y más!

flattr this!

Miércoles 23 de julio de 2014

Ramon Marquez

Ramon Marquez
Libuntu » Linux

Se comienzan a anunciar algunos cambios que vendrán en el venidero Linux 3.17

A pesar de faltar varias semanas para que comience el ciclo de integración de ventanas de Linux 3.17, Bjorn Helgaas , uno de los encargados de mantener el sub-sistema del kernel, a publicado a través del mailing list de Linux, algunos cambios que vendrían en la próxima versión del núcleo. Helgaas ha publicado en la […]

Lunes 21 de julio de 2014

Convertir archivo de audio WMA a formato MP3

Vamos a convertir archivos VMA a MP3, de una manera bastante simple y directa. Los pasos descritos acá son de utilidad para esas ocasiones donde te bajas un audio WMA pero tu reproductor, celular, etc no lee ese formato, así que lo único que quieres es transformarlo a MP3 para que pueda reconocerlo. El procedimiento […]

De .NEF a .JPG en Linux sin perder calidad

El día de ayer mi amiga Gabriela me comentó que estaba tratando de transformar archivos .NEF (formato electrónico de archivos RAW de Nikon) a .JPG y que estaba perdiendo calidad en la imagen final, y que además tenía un lote de unas 2000 fotografías que deseaba procesarlas a JPG sin pasar por un proceso manual (ella usa Darktable ó UFRaw para ello). Durante un rato estuve jugando con las herramientas de imagemagick y notaba la alta perdida de calidad, por ejemplo:

Imagen Original .NEF

 

Imagen JPG procesada con Darktable/UFRaw

 

Para ello escribí un pequeño y sucio script en bash que:

  • Convierte los archivos .NEF a .PNG y luego con imagemagick transforma el PNG a JPG (método sucio que funciona usando netpbm, dcraw y imagemagick).
  • Procesa un lote de .NEF que estén ubicados en el directorio donde se corra el script.
#/bin/bash
# Instrucciones:
# 
# 1. Para que este script funcione, necesita tener instalado: netpbm, dcraw, imagemagick
#
# sudo aptitude install netpbm dcraw imagemagick
#
# 2. Setear permisos de ejecucion al script
# chmod +x nef_a_jpg.sh 
#
# Enjoy :D
#
# Por: Juan Angulo Moreno <apostols@gmail.com> 2014-07-20
 
echo "Preparando el ambiente..."
 
total_archivos=`ls *.NEF| wc -l` 
echo "Iniciando conversion... Total de archivos a convertir: $total_archivos"
 
# Que comience la fiesta
for ARCHIVOS in *.NEF ; 
do 
	nombre_base=`basename "$ARCHIVOS" .NEF`;
	echo "Conviertiendo $nombre_base.NEF a JPG...";
	dcraw -c -w $ARCHIVOS | pnmtopng > $nombre_base.png;
	convert $nombre_base.png $nombre_base.jpg
	echo "Listo."
done

Viernes 18 de julio de 2014

Carlos Colmenarez

Carlos Colmenarez
El Blog de Zero » LINUX

4 grandes mitos sobre Linux que la gente necesita dejar de creer

Linux lleva consigo la carga de los estigmas que ha acumulado con los años, y aunque ha hecho todo lo posible por borrar la mala imagen que tienen muchos de las distribuciones, aún la gente sigue creyendo cosas que dejaron de ser ciertas hace rato. Si quieres saber por qué Linux ya no es lo que era, no es lo que era, no es lo que era, sigue leyendo y entérate de por qué ahora es incluso mejor.

65242980_6a359a1a57_oMuchas veces cuando se habla de sistema operativos pareciese que se está discutiendo una religión, en la que el rebaño de cada uno ve con ojos de hereje a todos los demás. Mi dios es el verdadero y único camino. Puede que suene a exageración, pero si alguna vez te has visto envuelto en un debate sobre si es mejor un iPhone que un Android, o una Mac en lugar de una PC, o el Software Libre en lugar del privativo, de seguro notas las similitudes de inmediato.

“Expande tus horizontes y mira un poquito más allá de tu propia nariz.”

Es normal que muchos sintamos cierta pasión por las cosas que nos gustan, y que estemos dispuestos a defenderlas como lo mejor, pero la delgada linea que nos separa del fanatismo y le fe ciega es muy delgada, y a mucha gente le cuesta ver las cosas desde otro punto de vista, o siquiera darle una oportunidad a algo diferente. No se trata de traicionar tus creencias, se trata de expandir tus horizontes y ver un poquito más allá de tu propia nariz. Además, en la variedad está el gusto.

He usado Linux por muchos años, quizás una década, eso es más o menos el 40% de mi vida, y aunque pasé por una etapa muy estúpida en la que recurría a hablar mal de Windows para intentar tristemente promover el Software Libre con mis conocidos, ya he madurado lo suficiente como para entender lo falaz y lamentable que es esa actitud. Y, de hecho, sigo usando Windows felizmente. No necesitas echar tierra a los demás cuando lo que promueve tiene bondades, eso es muy de políticos, y solo deja una mala impresión. Es más fácil exponer tu punto si no estás intentando desesperadamente ganar una pelea.

Linux es difícil de usar

Esto es cierto, sumamente cierto, Linux es difícil de usar, pero solo porque para empezar a usar Linux por primera vez tienes que dejar el miedo al cambio de lado, y dejar el miedo a un lado es muy, muy difícil. De resto, instalar una distribución y comenzar a usarla es pan comido, ya no estamos en 1998. Hay tantas versiones amigables por ahí que cualquier niño, tu mama, o tu abuelo podrían aprender a usarlas en unos minutos. No tienen ni que abrir una terminal nunca en su vida, la tan temida y malentendida terminal.

“En Linux todo es muy parecido a lo que estás acostumbrado, la brecha se ha acortado mucho.”

Esto es un hecho, lo he probado con mucha gente, usuarios que entienden de informática lo que yo de física cuántica, personas mayores que sabemos tienen más dificultad para llevárselas con la tecnología, niños, cualquiera que haya usado un ordenador antes. En Linux todo es muy parecido a lo que están acostumbrados, la brecha se ha acortado mucho, y de hecho más de uno lo siente más fácil y divertido de lo que esperaban. El que más dificultades presenta es aquel usuario malcriado y caprichoso que todos conocemos, ese que hace berrinche porque le cambiaron un botón de sitio, esos que crean un grupo de Facebook para quejarse del nuevo diseño todos los años.

Linux no va a funcionar en mi PC

mitos-sobre-linux-portada

Esto es súper cierto, Linux funciona mal en muchos ordenadores. Pero, ¿saben ustedes cuantos modelos de ordenadores hay en el mundo?. Linux tiene un problema, los fabricantes de hardware, esos que construyen y venden las piezas de las PCs, no ofrecen soporte para Linux la enorme mayoría del tiempo, por lo que Linux depende totalmente de la comunidad para desarrollar controladores para los millones de componentes y las diferentes marcas de todo el planeta tierra. Y a pesar de esa limitación, en la mayoría de las PCs puedes ejecutar una distro Linux. ¿No es eso sorprendente y digno de una ovación?.

Saben que es más sorprendente aún, que cuando sistemas operativos como Windows y OS X dejan a un lado el hardware viejo, eliminando el soporte porque ya no les produce ninguna ganancia a sus respectivas empresas; en Linux la historia es todo lo contrario. Mientras más vieja es una máquina, más probabilidades hay de que funcione bien con una distro Linux, de hecho hay muchas que están orientadas a ordenadores de pocos recursos, PCs viejas que están listas para el basurero, pueden conseguir una segunda oportunidad gracias a Linux.

En cuanto al hardware moderno, el soporte cada vez es mejor, y de hecho fabricantes como NVIDIA y AMD han empezado a mejorar su compatibilidad principalmente por la revolución de Steam y sus juegos. Lo que me lleva al siguiente punto.

En Linux no puedes jugar nada

Hey, esto era 99% cierto hace 2 o 3 años. Jugar en Linux siempre fue una experiencia terrible, y la razón de que muchos entusiastas del SL y de los videojuegos aun usaran Windows para poder jugar. Pero, hace un par de años dios volvió a la tierra en la figura de Gabe Newell, y Steam llegó a Linux. Steam es la plataforma de videojuegos para PC más grande del mundo, cuenta con miles de miles de juegos y millones de usuarios, y unas ofertas que dan gastritis.

Valve planea su propio sistema operativo basado en Linux para dar vida a las Steam Machines, su propio híbrido entre PC y consola de sobremesa para jugones. Una iniciativa que promete revolucionar el mercado, y sí, de la mano de Linux. ¿Quien lo diría?. Aunque el panorama aún luce a años luz de lo que representa la experiencia de juego en Windows, ya Linux cuenta con más de 500 títulos disponibles, muchos son triple A, como The Witcher, la saga de Metro, Left 4 Dead, etc. Y estamos seguros de que solo vendrán más y más.

Cómo es gratis, Linux no tiene soporte

mitos-sobre-linux1

Esto es cierto, yo nunca he pagado por una distribución Linux, y en mi vida he llamado a soporte técnico… ya va, un momento. El Software Libre no es sinónimo de “software gratis”, de hecho hay empresas enormes como Red Hat que utilizan Linux para ofrecer soluciones empresariales, sí, esta gente cobra por su trabajo, son sumamente respetados y ofrecen calidad.

Android es software libre, y adivinen que empresa hace dinero con Android, no es solo Google, sino vean a Samsumg. Canonical, los responsables de Ubuntu, si bien no cobran por Ubuntu, tienen muchos otros servicios basados en el open source. Y así muchas más. Muchos de estos proyectos ofrecen soporte especial para los usuarios a través de portales especiales, wikis, foros, comunidades llenas de gente que busca ayuda y gente que busca ofrecerla.

Linux tiene una comunidad enorme que te ayuda a conseguir la solución a tu problema solo por amor al arte. Es de hecho una de las maneras en las que he terminado conociendo gente genial por muchos años, y haciendo amigos.

vito en: bitelia


Lunes 14 de julio de 2014

Miguel Ángel Useche

Miguel Ángel Useche
El weblog de Skatox » Planetas

Desarrollo de aplicaciones web con MEAN.io (Mongo, Express, Angular y NodeJS)

Hace unas semanas, elaborando un sistema interno para Oja.la tuve la libertad de escoger la plataforma a desarrollar y como este año me había decidido a realizar una aplicación web escrita 100% en Javascript empecé a investigar sobre como empezar con la plataforma  MEAN (Mongo, Express, Angular y NodeJS), para quienes no la conocen, es como LAMP (Linux, Apache, MySQL y PHP) pero orientada a usar JS tanto en frontend como en el backend. Investigando conseguí MEAN.io, un framework para desarrollar bajo esta plataforma.

Instalación

Al momento de iniciar el proyecto, no sabía utilizar Express ni Mongo, respecto a NodeJS sólo había hecho unos experimentos sencillos para ver como funcionaba, pero ya tenía experiencia en AngularJS y herramientas como: Yeoman, Grunt, Bower y NPM. Por ello, la instalación de este framework me pareció muy sencilla: clonar el repositorio y luego mediante bower instalar todas las dependencias automáticamente. Solo realicé algunos cambios para evitar actualizar versiones no estables de librerías (no me gusta actualizar  en pleno desarrollo para evitar incompatibilidades con funcionalidades ya escritas) y eliminar cosas innecesarias para el proyecto (como autenticación usando redes sociales).

Esqueleto inicial

La forma en como está estructurado me ha gustado mucho, la separación del backend y frontend se hace notable. Respecto a Express,  la estructura es muy sencilla, principalmente se divide en las carpetas: models (los objetos que permiten se comunican con la BD), controllers (donde se guarda la lógica del proceso), routes (maneja las rutas de las peticiones del servicio web), views (las vistas a mostrar desde el servidor, las cuales son diferentes de las vistas generadas en el frontend).

En la parte pública se trabaja como cualquier aplicación de Angular, se crean carpetas por cada módulo a desarrollar, por defecto vienen incluidas 2: auth y system. La primera es el módulo de autenticación que trae MEAN.io para permitir identificarse utilizando redes sociales y la segunda, donde va la aplicación como tal. También se incluyen los archivos para manejar las dependencias del proyecto usando npm, bower y se incluye un archivo de Grunt.

Este último, trae configuraciones para montar un servidor: de desarrollo, pruebas y producción. Cada uno de ellos tiene su propia  configuración, permitiéndote trabajar con diferentes bases de datos, bibliotecas comprimidas solo en la versión de producción y pruebas. Me pareció raro que no incluía la tarea grunt-ngmin, pues permite facilitar la compresión de archivos JS de AngularJS.

Logo de Mean.io

Logo de Mean.io, chévere que sea una chica ninja

Desarrollo

El desarrollo de la aplicación se me hizo fácil gracias a esta plantilla base, si nunca has desarrollado una aplicación bajo este modelo, te recomiendo iniciarte con MEAN.io. Lo único extraño es que generalmente en otras plataformas el código de backend es diferente al de frontend, permitiendo determinar fácilmente la ubicación del código que estas viendo, como aquí todo es JS a veces debes mirar la ruta para ver si estas en frontend o backend, además, probablemente llames a los modelos de Express y Angular con el mismo nombre, confundiendo a veces la apertura de archivos.

La desventajas que vi con esta plataforma fue: la poca documentación debido a su poco tiempo de disponibilidad e incompatibilidad para navegadores antiguos (Android 2.3, IE 8, entre otros), sé de la disminución de la cuota de mercado de estos navegadores, pero aún existen clientes/usuarios que lo utilizan y en el ambiente empresarial se les debe dar soporte. Y finalmente, no me gustó mucho trabajar con MongoDB, es muy chévere almacenar los objetos en JSON y la lectura se hace rápida, pero no sé si es por mi años utilizando BD relacionales pero la falta de restricciones de diseño o tanta libertad de almacenar lo que se desee allí, me parece que puede crear daños en la integridad de datos en el futuro. Tal vez porque estoy acostumbrado a manejar toda la validación de la data en la BD y no en la aplicación, me pareció inseguro que con MongoDB toda la validación se hace en la aplicación (si me equivoco, por favor me lo aclaran en los comentarios).

Recomendaciones

Te recomiendo utilizar Mean.io si deseas hacer una aplicación bajo esta plataforma en poco tiempo, realmente es sencilla de usar si tienes experiencia desarrollando aplicaciones web con Javascript. Probablemente la curva de aprendizaje para un novato sea fuerte pero vale la pena el esfuerzo. Si deseas algo mas sencillo o simple (sin sacrificar calidad), puedes probar Mean.JS un fork realizado por el autor de Mean.io para mejorar algunos problemas de diseño de la plataforma.

 

Jueves 10 de julio de 2014

Jesus Palencia

El Blog de Sinfallas ahora en Planeta Linux

Planeta Linux es una gran iniciativa que nos permite leer publicaciones de cientos de latinoamericanos entusiastas del software libre en un solo lugar, de manera cómoda y sin complicaciones, ya sea desde su sitio web o utilizando tu lector de noticias favoritos.

Ahora, gracias al equipo de Planeta Linux este blog también podrá leerse en sus feed, que esperas entra ahora y entérate de las noticias mas interesantes sobre Linux en tu propio idioma.

Enlace: Planeta Linux


Tagged: planeta

Lunes 07 de julio de 2014

I’am Back

De vuelta a mi espacio, no lleva mejor nombre que ese El  Espacio que Necesitaba!!

Domingo 06 de julio de 2014

José Miguel Parrella Romero

José Miguel Parrella Romero
null pointer dereference

Understanding records in Koha

Throughout the years, I’ve found several open source ILS and most of them try to water down the way librarians have catalogued resources for years. Yes, we all agree ISO 2709 is obsolete, but MARC has proven to be very complete, and most of the efforts out there (Dublin Core, etc.) try to reduce the expression level a librarian can have. If your beef is with ISO 2709, there’s MARC-XML if you want something that is easier to debug in terms of encoding, etc.

That said, Koha faces a challenge: it needs to balance the expressiveness of MARC with the rigidness of SQL. It also needs to balance the convenience of SQL with the potential shortcomings of their database of choice (MySQL) with large collections (over a couple thousand records) and particularly with searching and indexing.

Koha’s approach to solve this problem is to incorporate Zebra to the mix. Zebra is a very elegant, but very difficult to understand piece of Danish open source software that is very good at indexing and searching resources that can come from, say, MARC. It runs as a separate process (not part of the Web stack) and it can also be enabled as a Z39.50 server (Koha itself is a Z39.50 consumer, courtesy of Perl)

The purpose of this post is to help readers navigate how records are managed in Koha and avoid frustrations when deploying Koha instances and migrating existing records.

Koha has a very simple workflow for cataloguing new resources, either from Z39.50, from a MARC (ISO 2709 or XML) file or from scratch. It has templates for cataloguing, it has the Z39.50 and MARC capabilities, and it has authorities. The use case of starting a library from scratch in Koha is actually a very solid one.

But all of the libraries I’ve worked with in the last 7 years already have a collection. This collection might be ISIS, Documanager, another SQL database or even a spreadsheet. Few of them have MARC files, and even if they had (i.e., vendors provide them), they still want ETLs to be applied (normalization, Z39.50 validations, etc.) that require processing.

So, how do we incorporate records massively into Koha? There are two methods, MARC import or fiddling with SQL directly, but only one answer: MARC import.

See, MARC can potentially have hundreds of fields and subfields, and we don’t necessarily know beforehand which ones are catalogued by the librarians, by other libraries’ librarians or even by the publisher. Trying to water it down by removing the fields we don’t “want” is simply denying a full fidelity experience for patrons.

But, in the other hand, MySQL is not designed to accommodate a random, variable number of columns. So Koha takes the most used attributes (like title or author) and “burns” them into SQL. For multivalued attributes, like subjects or items, it uses additional tables. And then it takes the MARC-XML and shoves it on a entire field.

Whoa. So what happens if a conservatorium is making heavy use of 383b (Opus number) and then want to search massively for this field/subfield combination? Well, you can’t just tell Koha to wait until MySQL loads all the XMLs in memory, blows them up and traverse them – it’s just not gonna happen within timeout.

At this point you must have figured out that the obvious solution is to drop the SQL database and go with a document-oriented database. If someone just wants to catalog 14 field/subfields and eventually a super detailed librarian comes in and starts doing 150, you would be fine.

Because right now, without that, it’s Zebra that kicks in. It behaves more like an object storage and it’s very good at searching and indexing (and it serves as Z39.50 server, which is nice) but it’s a process running separately and management can sometimes be harsh.

Earlier we discussed the use case where Koha excels: creating records from scratch. Does this mean that Koha won’t work for an existing collection? No. It just means the workflows are a tad more complicated.

I write my own Perl code to migrate records (some scripts available here, on the move to GitHub), and the output is always MARC. In the past I’ve done ISO 2709, yes, but I only do MARC-XML now. Although it can potentially use up more disk space, and it could be a bit more slow to load, it has a quick benefit for us non-English speakers: it allows to solve encoding issues faster (with the binary, I had to do hexadecimal sed’s and other weird things and it messed up with headers, etc.)

Sometimes I do one record per file (depending on the I/O reality I have to face) but you can do several at a time: a “collection” in just one file, that tends to use up more RAM but also makes it more difficult to pinpoint and solve problems with specific records. I use the bulkmarcimport tool. I make sure the holdings (field 942 in Koha unless you change it) are there before loading, otherwise I really mess up the DB. And my trial/error process usually involves using mysql’s dump and restore facilities and removing the content of the /var/lib/koha/zebradb directory, effectively starting from scratch.

Koha requires indexing, and it can be very frustrating to learn that after you import all your records, you still can’t find anything on the OPAC. Most distro packages for Koha have a helper script called koha-rebuild-zebra which helps you in the process. Actually, in my experience deploying large Koha installations, most of the management and operational issues have something to do with indexing. APT packages for Koha will install a cron task to rebuild Zebra, pointing at the extreme importance (dependency) on this process.

Since Koha now works with instance names (a combination of Zebra installations, MySQL databases and template files) you can rebuild using something like:

koha-rebuild-zebra -b -v -f mybiblio

Feel free to review how that script works and what other (Perl) scripts it calls. It’s fun and useful to understand how old pieces of Koha fit a generally new paradigm. That said, it’s time to embrace cloud patterns and practices for open source ILS – imagine using a bus topic for selective information dissemination or circulation, and an abstract document-oriented cloud storage for the catalogue, with extensive object caching for searches. And to do it all without VMs, which are usually a management nightmare for understaffed libraries.


Jueves 03 de julio de 2014

Carlos Colmenarez

Carlos Colmenarez
El Blog de Zero » LINUX

Diferencias entre Software Libre y Open Source

No deben ser pocas las veces en has utilizado estos términos sin conocer bien que son. A pesar de que están estrechamente relacionados, los movimientos de Software Libre y Open Source tienen sutiles diferencias y es importante conocerlas.

Diferencias entre Software Libre y Open Source

A pesar de que son términos relacionados y solemos usarlos indistintamente, Software Libre y Open Source no son exactamente lo mismo, al menos no según la FSF, de las iniciales de Free Software Foundation, organización creada por Richard Stallman en el año 1985 con el propósito de difundir este movimiento.

A pesar de que están intrínsecamente relacionados, hay algunas diferencias puntuales. Veamos cuales son.

¿Qué es Software Libre?

El Software Libre o Free Software en inglés, es un software que respeta las cuatro libertades que la FSF establece:

  • La libertad de usar el programa, con cualquier propósito.
  • La libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a tus necesidades.
  • La libertad de distribuir copias del programa, con lo cual puedes ayudar a tu prójimo.
  • La libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie.

En otras palabras, es aquel que respeta la libertad de todos los usuarios que adquirieron el producto para ser usado, copiado, estudiado, modificado, y redistribuido libremente de varias formas. Es muy importante aclarar que el Software Libre establece muchas libertades pero no es necesariamente gratuito. Con esto quiero decir que conservando su carácter libre (respetando las libertades), puede ser distribuido de manera comercial. Esto garantizando sus derechos de modificación y redistribución.
Software Libre y Open Source
¿Qué es Open Source?

Open Source o código abierto, es la expresión con la que se conoce al software distribuido y desarrollado libremente. Es un movimiento más pragmático, se enfoca más en los beneficios prácticos como acceso al código fuente que en aspectos éticos o de libertad que son tan relevantes en el Software Libre.

Su premisa es que al compartir el código, el programa resultante tiende a ser de calidad superior al software propietario, es una visión técnica. Obviamente para lograr calidad técnica lo ideal es compartir el código, pero no estás obligado a hacerlo.

Diferencias

Como podemos ver, el movimiento del Software Libre hace hincapié en cuestiones éticas y morales relacionadas con el software, viendo el aspecto técnico como secundario, a diferencia
del movimiento Open Source que lo establece como prioritario, siendo esta su diferencia más grande.

Otra de sus diferencias, quizá la más importante para lo que al ámbito comercial concierne, es que con una aplicación desarrollada bajo los estándares del Software Libre puedes obtener remuneración por conceptos de desarrollo, soporte y puesta a punto siempre y cuando entregues los fuentes, a diferencia del movimiento Open Source que no te obliga a hacerlo. Todos los productos desarrollados en Software Libre así como sus derivados siempre deben ser libres, a diferencia de Open Source.

Como podemos ver, básicamente el movimiento de Software Libre tiene diferencias de índole filosóficas con el Open Source, sin embargo, ambos han permitido el desarrollo de software de gran calidad y con muchísimas mas libertades de las que el software privativo otorgaría jamás.

Fuente: bitelia


Martes 01 de julio de 2014

Miguel Ángel Useche

Miguel Ángel Useche
El weblog de Skatox » Planetas

Internet’s Own Boy: El documental sobre Aaron Swartz

Hace unos meses escribí sobre el aniversario de la muerte de Aaron Swartz, pero esta vez les escribo sobre Internet’s Own Boy un documental de su vida realizado por Brian Knappenberger (director de We are Legion donde se muestra la historia de grupo hacktivista Anonymous). Siempre consideré a Swartz uno de los genios de Internet y seguí su carrera, por eso, al enterarme de la existencia de este proyecto, estuve esperando con ansias su estreno que ocurrió esta semana.

Historia

El filme comienza desde que Aaron era un niño aprendiendo a leer, sus inicios en la informática y luego empieza a hacer un resumen sobre los distintos aportes que hizo durante su vida. Gran parte del documental se enfoca en explicar el objetivo de liberar los documentos que le ocasionaron problemas legales, cómo funciona el acceso a los  mismos en Estados Unidos, las consecuencias de ello y los cargos presentados por el MIT, cómo fue el juicio, entre otras cosas. Esta parte, la cual ocupa gran parte del documental, me ayudó a entender bien todo lo acontecido respecto a la problemática de liberar esos documentos y como le afectó emocionalmente, pues a pesar de haber leído el tema, escucharlo desde el punto de vista de expertos en el área (como su abogado) entiendes mejor las cosas. Luego, el documental muestra la etapa hacktivista de Swartz:  como logró organizar a la gente para protestar en contra de SOPA y la censura en la red.

Finalmente, viene un momento triste al escuchar de sus allegados los problemas que pudieron llevarlo al suicidio. Sin embargo, luego el ambiente se vuelve  alegre al ver los frutos de su trabajo, no les voy a contar el final pero me gustó ver como en tan poco tiempo se ve resultados favorables de liberar las publicaciones científicas.

Participantes

En el documental participan personas que lo conocieron y trabajaron con él, familiares, Tim Berners Lee el creador de la web, su abogado en el caso, parejas, amigos y otros. Escuchar a Tim expresarse sobre Aaron, realmente te ha pensar sobre su contribuciones, ademas que las palabras del abogado sobre el problema con el MIT, permite conocer muy bien los cargos presentados.

¿Cómo verlo?

Realmente deben ver este documental si:  son hackers, activistas de la libertad de la información, apoyan el conocimiento abierto y global, informáticos y usuarios avanzados de Internet. Aunque pueden donar al proyecto, pueden ver legalmente el documental completo a continuación, gracias a su liberación bajo licencia Creative Commons.

Luego de verlo, te darán ganas de hacer algo por Internet.

 

Sábado 28 de junio de 2014

Milton Mazzarri

Milton Mazzarri
milmazz

Grunt: The Javascript Task Manager

Grunt

When you play the Web Developer role, sometimes you may have to endure some repetitive tasks like minification, unit testing, compilation, linting, beautify or unpack Javascript code and so on. To solve this problems, and in the meantime, try to keep your mental health in a good shape, you desperately need to find a way to automate this tasks. Grunt offers you an easy way to accomplish this kind of automation.

In this article I’ll try to explain how to automate some tasks with Grunt, but I recommend that you should take some time to read Grunt’s documentation and enjoy the experience by yourself.

So, in the following sections I’ll try to show you how to accomplish this tasks:

  • Concatenate and create a minified version of your CSS, JavaScript and HTML files.
  • Automatic generation of the documentation for JavaScript with JSDoc.
  • Linting your Javascript code.
  • Reformat and reindent (prettify) your Javascript code.

You can install Grunt via npm (Node Package Manager), so, in order to install Grunt you need to install Node.js first.

Now that you have Node.js and npm installed is a good time to install globally the Grunt CLI (Command Line Interface) package.

$ sudo npm install -g grunt-cli

Once grunt-cli is installed you need to go to the root directory of your project and create a package.json file, to accomplish this you can do the following:

$ cd example_project
$ npm init

The previous command will ask you a series of questions in order to create the package.json file, package.json basically store metadata for projects published as npm modules. It’s important to remember to add this file to your source code versioning tool to facilitate the installation of the development dependencies among your partners via npm install command.

At this point we can install Grunt and their respective plugins in the existing package.json with:

$ npm install grunt --save-dev

And the plugins that you need can be installed as follows:

$ npm install <grunt-plugin-name> --save-dev

Please note that the --save-dev parameter will modify your devDependencies section in your package.json. So, be sure to commit the updated package.json file with your project whenever you consider appropriate.

Code documentation

If you document your code following the syntax rules defined on JSDoc 3, e.g.:

 /**
  * A callback function returning array defining where the ticks
  * are laid out on the axis.
  *
  * @function tickPositioner
  * @see {@link http://api.highcharts.com/highstock#yAxis.tickPositioner}
  * @param {String} xOrY - Is it X or Y Axis?
  * @param {Number} min - Minimum value
  * @param {Number} max - Maximum value
  * @returns {Array} - Where the ticks are laid out on the axis.
  */
 function tickPositioner(xOrY, min, max) {

    // do something

    return tickPositions;
 }

If you need more information about JSDoc, read their documentation, it’s easy to catch up.

The next step to automate the generation of the code documentation is to install first the grunt-jsdoc plugin as follows:

$ npm install grunt-jsdoc --save-dev

Once grunt-jsdoc is installed you must create your Gruntfile.js in the root directory of your project and then add the jsdoc entry to the options of the initConfig method.

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
      pkg: grunt.file.readJSON('package.json'),
      jsdoc : {
          dist : {
              src: ['src/*.js', 'test/*.js'], 
              dest: 'doc'
          }
      }
  });

};  

Then, you need to load the plugin after the initConfig method in the Gruntfile.js:

// Load the plugin that provides the 'jsdoc' task.
grunt.loadNpmtasks('grunt-jsdoc');

The resulting Gruntfile.js until now is:

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
      pkg: grunt.file.readJSON('package.json'),
      jsdoc : {
          dist : {
              src: ['src/*.js', 'test/*.js'], 
              dest: 'doc'
          }
      }
  });

  // Load the plugin that provides the 'jsdoc' task.
  grunt.loadNpmtasks('grunt-jsdoc');

};  

To generate the documentation, you need to call the jsdoc task as follows:

$ grunt jsdoc

Immediately you can see, inside the doc directory, the available documentation in HTML format with some beautiful styles by default.

JSDoc

Linting your Javascript code

In order to find suspicious, non-portable or potential problems in Javascript code or simply to enforce your team’s coding convention, whatever may be the reason, I recommend that you should include a static code analysis tool in your toolset.

The first step is to define your set of rules. I prefer to specify the set of rules in an independent file called .jshintrc located at the root directory of the project, let’s see an example:

// file: .jshintrc
{
    "globals": {
        "Highcharts": true, // This is only necessary if you use Highcharts
        "module": true // Gruntfile.js
    },
    "bitwise": true,
    "browser": true,
    "camelcase": true,
    "curly": true,
    "eqeqeq": true,
    "forin": true,
    "freeze": true,
    "immed": true,
    "indent": 4,
    "jquery": true,
    "latedef": true,
    "newcap": true,
    "noempty": true,
    "nonew": true,
    "quotmark": true,
    "trailing": true,
    "undef": true,
    "unused": true
}

If you need more details about the checks that offer every rule mentioned above, please, read the page that contains a list of all options supported by JSHint

To install the grunt-contrib-jshint plugin do the following:

$ npm install grunt-contrib-jshint --save-dev

Next, proceed to add the jshint entry to the options of the initConfig method in the Gruntfile.js as follows:

jshint: {
 options: {
  jshintrc: '.jshintrc'
 },
 all: ['Gruntfile.js', 'src/*.js', 'test/*.js']
}

Then, as it’s done in the previous section, you need to load the plugin after the initConfig method in the Grunfile.js

// Load the plugin that provides the 'jshint' task.
grunt.loadNpmTasks('grunt-contrib-jshint');

To validate your Javascript code against the previous set of rules you need to call the jshint task:

$ grunt jshint

Note that if you need more information or explanations about the errors that you may receive after the previous command I suggest that you should visit JSLint Error Explanations site.

Code Style

As I mentioned in the previous section, I suggest that you should maintain an independent file where you define the set of rules about your coding styles:

// file: .jsbeautifyrc
{
  "indent_size": 4,
  "indent_char": " ",
  "indent_level": 0,
  "indent_with_tabs": false,
  "preserve_newlines": true,
  "max_preserve_newlines": 2,
  "jslint_happy": true,
  "brace_style": "collapse",
  "keep_array_indentation": false,
  "keep_function_indentation": false,
  "space_before_conditional": true,
  "break_chained_methods": false,
  "eval_code": false,
  "unescape_strings": false,
  "wrap_line_length": 0
}

Next, proceed to add the jsbeautifier entry to the options of the initConfig method in the Gruntfile.js as follows:

jsbeautifier: {
  modify: {
      src: 'index.js',
      options: {
          config: '.jsbeautifyrc'
   }
  },
  verify: {
   src: ['index.js'],
   options: {
   mode: 'VERIFY_ONLY',
   config: '.jsbeautifyrc'
  }
 }
}

The next step it to load the plugin after the initConfig method:

// Load the plugin that provides the 'jsbeautifier' task.
grunt.loadNpmTasks('grunt-jsbeautifier');

To adjust your JS files according to the previous set of rules you need to call the jsbeautifier task:

$ grunt jsbeautifier:modify

Concat and minified CSS, HTML, JS

In order to reduce your CSS, HTML and JS files do as follows:

$ npm install grunt-contrib-uglify --save-dev
$ npm install grunt-contrib-htmlmin --save-dev
$ npm install grunt-contrib-cssmin --save-dev

Next, proceed to add the htmlmin, cssmin and uglify entries to the options of the initConfig method in the Gruntfile.js as follows:

htmlmin: {
  dist: {
    options: {
      removeComments: true,
      collapseWhitespace: true
    },
    files: {
      'dist/index.html': 'src/index.html',     // 'destination': 'source'
      'dist/contact.html': 'src/contact.html'
    }
  }
},
cssmin: {
  add_banner: {
    options: {
      banner: '/* My minified css file */'
    },
    files: {
      'path/to/output.css': ['path/to/**/*.css']
    }
  }
},
uglify: {
 options: {
   banner: '/* <%= grunt.template.today("yyyy-mm-dd") %> */\n',
   separator: ',',
   compress: true,
 },
 chart: {
   src: ['src/js/*.js'],
   dest: 'dist/js/example.min.js'
 }
}

The next step it to load the plugins after the initConfig method:

// Load the plugin that provides the 'uglify' task.
grunt.loadNpmTasks('grunt-contrib-uglify');
// Load the plugin that provides the 'htmlmin' task.
grunt.loadNpmTasks('grunt-contrib-htmlmin');
// Load the plugin that provides the 'cssmin' task.
grunt.loadNpmTasks('grunt-contrib-cssmin');

To adjust your files according to the previous set of rules you need to call the htmlmin, cssmin or uglify tasks:

$ grunt htmlmin
$ grunt cssmin
$ grunt uglify

After loading all of your Grunt tasks you can create some aliases.

If you want to create an alias to run the three previous tasks in one step do as follows:

// Wrapper around htmlmin, cssmin and uglify tasks.
grunt.registerTask('minified', [
        'htmlmin',
        'cssmin',
        'uglify'
    ]);

So, to execute the three tasks in one step you can do the following:

$ grunt minified

The previous command is a wrapper around the htmlmin, cssmin and uglify tasks defined previously.

Wrapping all together we get the following [Grunfile.js][]

Other plugins

Grunt offers you a very large amount of plugins, they have a dedicated section to list them!

I recommend that you should take some time to check out the following plugins:

Conclusion

Certainly, Grunt do a great job when we talk about task automation, also, automating this repetitive tasks is fun and reduce the errors associated with tasks that in the past we used to run manually over and over again. That been said, I definitely recommend that you should try Grunt, you will get in exchange an improvement in your development workflow, also with it you can forget to endure repetitive tasks that we hate to do, as a consequence you will get more free time to focus on getting things done.

Last but not least, another option for Grunt is Gulp, I recently read about it, if you look at their documentation you notice that their syntax is more clean than Grunt, also is very concise and allows chaining calls, following the concept of streams that pipes offer in *nix like systems, so, I’ll give it a try in my next project.

Grunt: The Javascript Task Manager was originally published by Milton Mazzarri at milmazz on June 28, 2014.

Miércoles 25 de junio de 2014

Kingsoft office suite, una alternativa a microsoft office en linux.

Está Escrito:
¿Se ocultará alguno, dice Jehová, en escondrijos que yo no lo vea? ¿No lleno yo, dice Jehová, el cielo y la tierra? (Jeremías 23:24)

Tomado de: Espaciolinux

Creo que no me equivoco al decir que hay muchos usuarios de Linux que echan en falta una buena suite de ofimática a la altura de microsoft office. Y otro tanto, que no se ha tenido que quedar estancado en windows porque Linux no le ofrecía la contrapartida a microsoft office.
Kingsoft office (http://www.wps.com/) es una suite de ofimática de origen chino, muy similar a la ampliamente conocida suite de microsoft office. Esta suite es multiplataforma, estando disponible para: Windows, iOS, android y…Linux!! (en fase alpha)
all_kingsoft_2
La suite consta de las 3 principales utilidades para la ofimática: Presentation (PowerPoint), Writer (Word) y Spreadsheets (Excel). La descarga de la versión básica es gratuita, siendo las versiones para empresas y material adicional de pago.
La interfaz de usuario recuerda mucho a la de microsoft office desde la versión 2007, con el menú organizado en secciones y las opciones más usadas en iconos más grandes; pero con algunas interesantes mejoras como el uso de pestañas en lugar de ventanas o una herramienta selector, por poner unos ejemplos.
La suite soporta los formatos de microsoft (.doc, .xls, .docx, etc.) mejor que libreoffice, así como sus propios formatos propietarios y también permite exportar a .pdf o a .rtf. Desafortunadamente, no tiene soporte de formatos libres: .ods, .odt y .odp
La versión para linux se encuentra todavía en fase alpha, lo que significa que es posible que el programa tenga fallos, por lo que no se recomienda confiar altamente en él; pero, basado en mi experiencia, el programa funciona muy muy bien, y no he experimentado cierres repentinos o errores inesperados como sin embargo si los he experimentado en otras suites de ofimática.
KSO_WRITER_sample
Para instalar este programa, simplemente debéis acceder a la página de descarga y seleccionar el instalador que se ajuste a tu distribución: .deb para debian, ubuntu y derivados; o .rpm para redhat, fedora y derivados. Una vez descargado, lo instaláis (en la mayoria de sistemas, un doble clic hará el trabajo) y lo ejecutáis desde vuestro menú (dentro del submenu office o buscando por kingsoft).
Debido a cuestiones de licencia, algunas fuentes no se incluyen con el instalador del programa, pero pueden instalarse fácilmente descargándolas y siguiendo las instrucciones aquí.
El proyecto se encuentra en pleno desarrollo, la última alpha es de marzo y se prevé que para este año se pueda sacar ya una versión beta.
A mi está suite me ha solucionado mis problemas de malentendimiento con libreoffice y ahora incluso cuando estoy en windows la prefiero por encima de microsoft office. Recomiendo a todo el mundo que la pruebe y si os gusta os iré poniendo algunos trucos más para que le saquéis el mejor partido.
Qué lo disfruteis!!
Milton Mazzarri

Milton Mazzarri
milmazz

The DRY principle

The DRY (Don’t Repeat Yourself) principle it basically consist in the following:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

That said, it’s almost clear that the DRY principle is against the code duplication, something that in the long term affects the maintenance phase, it doesn’t facilitate the improvement or code refactoring and, in some cases, it can generate some contradictions, among other problems.

Recently I have inherited a project, and one of the things that I noticed in some part of the source code are the following:

After a glance, you can save some bytes and apply the facade and module pattern without breaking the API compatibility in this way:

But, if you have read the jQuery documentation it’s obvious that the previous code portions are against the DRY principle, basically, this functions expose some shorthands for the $.ajax method from the jQuery library. That said, it’s important to clarify that jQuery, from version 1.0, offers some shorthands, they are: $.get(), $.getJSON(), $.post(), among others.

So, in this particular case, I prefer to break the backward compatibility and delete the previous code portions. After that, I changed the code that used the previous functions and from this point I only used the shorthands that jQuery offers, some examples may clarify this thought:

Another advantage of using the shorthand methods that jQuery provides is that you can work with Deferreds, one last thing that we must take in consideration is that jqXHR.success() and jqXHR.error() callback methods are deprecated as of jQuery 1.8.

Anyway, I wanted to share my experience in this case. Also, remark that we need to take care of some principles at the moment we develop software and avoid to reinvent the wheel or do overengineering.

Last but not least, one way to read offline documentation that I tend to use is Dash or Zeal, I can access a bunch of documentation without the need of an Internet connection, give it a try!

The DRY principle was originally published by Milton Mazzarri at milmazz on June 24, 2014.

Lunes 23 de junio de 2014

Instalación de Raspbmc

Raspbmc = Rasberry Pi   XBMC

Un amigo me recomendó esta distro para correr XBMC, ya que según me comentó el desarrollador de XBMC sacó optimizaciones específicas para que corriera mejor en el hardware del Rasberry. Entonces me animé a probarla y explicó aquí todo lo que tuve que hacer para realizar la instalación, que dicho sea de paso me pareció algo accidentada pero al final satisfactoria.

Raspbmc desde el instalador|

Raspbmc install error

Desde la página del proyecto recomiendan usar el instalador o Network Image, un script en python que prácticamente hace todo el proceso de instalación, particionamiento y configuración inicial…o por lo menos lo intenta, ya que en mi caso no funciono debido a que la conexión a Internet en casa no ayudaba y por ende no podía descargarme la imagen. Por lo que tuve que usar la imagen completa de Raspbmc.

Imagen completa de Raspbmc

La otra opción que ofrecen en la página del proyecto es la de descargar la versión completa de 235 MB llamada Standalone Image, la cual al descomprimirse queda en 1.4 GB aproximadamente. Esto fue un problema ya que mi SD es de 1 GB y no pensaba comprar otra porque tengo un disco duro de 320 GB dedicado al Rasberry Pi. Entonces se me ocurrió que podía reducir el tamaño de esta imagen para que entrara en la SD de 1 GB.

Reparticionado de la imagen

Similar a como hice en el artículo que explica cómo Correr Raspberry Pi desde un disco USB, volqué la imagen en un pendrive de 8 GB para poder extraer luego la partición /boot y la partición del sistema operativo o partición raíz. Para copiar la imagen en el pendrive se debe descomprimir la imagen y luego volcar en crudo, como se muestra  a continuación:

# gunzip raspbmc-final.img.gz
# dd if=raspbmc-final.img of=/dev/sdb

Si verificamos con gparted veríamos algo como esto:

Rasbmc image

Luego con el mismo gparted se debe redimensionar el tamaño de la partición /dev/sdb2 para que ocupe 800 MB aproximadamente, de esta forma podría meter también la partición /boot de 74 MB en mi tarjeta SD de 1 GB.

Raspbmc

Luego para extraer la partición /boot del pendrive se debe hacer lo siguiente:

# dd if=/dev/sdb1 of=raspbmc-final_boot.img

Y de forma similar para extraer el sistema de archivos de 800 MB  que se encuentra en la otra partición:

# dd if=/dev/sdb2 of=raspbmc-final_fsext4.img

Configuración inicial

La configuración inicial se realiza desde el instalador, que en esencia es un script que realiza una serie de preguntas como parámetros de red, etc. Luego esto se puede modificar desde el mimos XBMC con un script que se agregó para Raspbmc:

Raspbmc

Reparticionado del disco

Si bien la instalación detectó el disco duro de forma automática no me dejó particionarlo, de hecho borra todo el contenido y crea una única partición que se monta en /media con el UUID de la partición. Pero lo que quería era tener tres particiones: una para el sistema operativo (/), otra para la memoria de intercambio (swap) y el resto para los datos (/media/Toshiba320), aparte de la partición /boot que debe estar en la tarjeta SD .

Para particionar el disco, borré y creé las particiones usando para ello fdisk. Al final el disco quedó distribuido de la siguiente manera:

Raspbmc

Luego edité el /etc/fstab para reflejar estos cambios:

proc /proc proc defaults 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0
#/dev/sda2 / ext4 defaults,noatime 0 0
UUID=e7db90716-9911-4fc8-95da-86c463f926a4 / ext4 defaults,noatime 0 0
UUID=70a55bca-9fdb-4073-87f6-c15fd7b351dc none swap sw 0 0
UUID=1ff934a3-f7ce-451f-9a07-0915e174a007 /media/Toshiba320 ext4 defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults,noatime 0 0

Y por último modifiqué el archivo /boot/cmdline.txt, en particular para que la partición del sistema operativo fuese leída desde el disco duro y no desde la tarjeta SD:

dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 noatime quiet rootwait loglevel=1   persistent-logs sdhci-bcm2708.enable_llm=1 dwc_otg.microframe_schedule=1 dwc_otg.fiq_fix_enable=1

Deshabilitar el Firewall

Para deshabilitar el firewall que viene por omisión con una regla  DROP  en el Raspbmc,  hay que editar el archivo /etc/network/if-up.d/secure-rmc, donde se debe comentar la línea:

iptables -A INPUT -i $IFACE -j DROP

También puedes deshabilitar el firewall desde el script de configuración desde XBMC como se muestra a continuación:

Raspbmc settings

Control remoto

Si bien tengo un teclado un un ratón conectado al Rasberry Pi, lo ideal es tener un control remoto. Como el Rasberry Pi está conectado a la red WiFI lo ideal es usar este medio y no tener que usar IR o Bluetooth. Por eso pensé en una aplicación en Android y mi primera elección fue XBMC Remote pero pareciera que tiene un problema de comunicación que vuelve loco al XBMC (tanto del Raspbmc como el XBMC que se puede conseguir por ahí para el Rasberry Pi), pero al final conseguí otra llamada Yatse que funciona correctamente y la presentación es mucho mejor como puede verse a continuación de las capturas que tomé desde mi teléfono:

Yatse XBMC remote  Yatse XBMC remote  Yatse XBMC remote

Desempeño

Comparado con el XBMC que había probado con Raspbian, esta versión verdaderamente se comporta muy bien. Reproduce las películas en varios formatos (.avi, .mkv, .mp4, etc) de forma fluida. Adicionalmente como tiene Linux también es mi centro de descarga con qbittorrent-nox, y otras cosas adicionales que le estoy colocando para pruebas. Y esto es lo que reporta XBMC como consumo de recursos:

Raspbmc

Referencias

Bajar/Subir volumen desde la terminal de Linux

En este artículo haré un resumen de algunos pasos que realicé para configurar el audio de una máquina con Canaima GNU/Linux, de tal modo que cada vez que el usuario inicie su sesión el audio esté con volumen alto. No estoy muy de acuerdo con ese lógica de iniciar con el volumen siempre alto pero […]

Viernes 20 de junio de 2014

Hacer Paquetes de Configuración para Debian

En este enlace de la wiki de Debian se encuentran reseñados varios consejos, herramientas y mejores prácticas que pueden servir para mejorar los paquetes de configuración de Canaima y para aquellas personas o instituciones que deseen personalizar su Canaima automatizando a través de paquetes la aplicación de sus configuraciones.

Lunes 16 de junio de 2014

Jesus Palencia

Tor + polipo + privoxy

Navegar a través de tor puede ser una experiencia anónima mas no necesariamente rápida, para mejorar un poco la velocidad y aumentar la seguridad vamos a utilizar dos programas.

El primero se llama polipo, el cual es un proxy ligero que hará un pequeño cache de las paginas visitadas a través de tor mejorando así la velocidad de carga la próxima vez que visitemos el sitio.

El segundo se llama privoxy, es un proxy que no hace cache y cuya función es filtrar el contenido no deseado además de mejorar la privacidad.

Como podrá observar hay que hay que hacer una cascada con los proxy que permita al usuario disfrutar las ventajas de cada uno de los sistemas.

Esta es la forma final que tendrán las conexiones:

navegador ==> privoxy ==> polipo ==> tor ==> internet

Antes de comenzar a modificar las configuraciones debemos instalar el software que necesitamos:

# apt -y install polipo privoxy tor tor-arm

Ahora abrimos la configuración de tor en /etc/tor/torrc y borramos el contenido para luego colocar este:

## SocksPort para trafico generico
SocksPort 9050 IsolateDestAddr IsolateDestPort
## SocksPort para el navegador
SocksPort 9151

RunAsDaemon 1
DataDirectory /var/lib/tor
CookieAuthentication 1
LearnCircuitBuildTimeout 1
EnforceDistinctSubnets 1
WarnUnsafeSocks 0
DownloadExtraInfo 0
OptimisticData auto
UseMicrodescriptors auto
UseNTorHandshake auto
NumCPUs 0
ServerDNSDetectHijacking 1
ServerDNSRandomizeCase 1
PIDFile /run/tor/tor.pid
AvoidDiskWrites 1
VirtualAddrNetworkIPv4 10.192.0.0/10
DNSPort 9053
AutomapHostsOnResolve 1
AutomapHostsSuffixes .exit,.onion
TransPort 9040
User debian-tor
DisableDebuggerAttachment 0
ControlSocket /run/tor/control
ControlSocketsGroupWritable 1
CookieAuthFileGroupReadable 1
CookieAuthFile /run/tor/control.authcookie
Log notice file /var/log/tor/log

Ahora modificaremos la configuración de polipo en /etc/polipo/config.polipo, con el mismo procedimiento que el anterior, borramos y colocamos el siguiente contenido:

logSyslog = true
logFile = /var/log/polipo/polipo.log
socksParentProxy = localhost:9151
socksProxyType = socks5
proxyAddress = "127.0.0.1"
proxyPort = 8123
allowedClients = 127.0.0.1
allowedPorts = 1-65535
diskCacheRoot = "/var/cache/polipo/"
cacheIsShared = false
localDocumentRoot = ""
proxyName = "localhost"
disableLocalInterface = true
disableConfiguration = true
dnsUseGethostbyname = yes
dnsQueryIPv6 = no
disableVia = true
#censoredHeaders = from,accept-language,x-pad,link
#censorReferer = maybe
maxConnectionAge = 5m
maxConnectionRequests = 120
serverMaxSlots = 8
serverSlots = 2
tunnelAllowedPorts = 1-65535
pidFile = /run/polipo.pid

Como puede observar en la linea numero 3 y 4 se encuentra la conexión con tor, permitiendo que el trafico entrante en polipo tenga su salida a través de la red tor. Ahora realizaremos el mismo procedimiento con privoxy, abriendo /etc/privoxy/config.privoxy y colocando lo siguiente:

user-manual /usr/share/doc/privoxy/user-manual
confdir /etc/privoxy
logdir /var/log/privoxy
actionsfile match-all.action
actionsfile default.action
actionsfile user.action
filterfile default.filter
filterfile user.filter
logfile logfile
hostname privoxy
listen-address  :8118
toggle  1
enable-remote-toggle  0
enable-remote-http-toggle  0
enable-edit-actions 0
enforce-blocks 0
buffer-limit 4096
enable-proxy-authentication-forwarding 0
forward   /               127.0.0.1:8123
forward         192.168.*.*/     .
forward            10.*.*.*/     .
forward           127.*.*.*/     .
forwarded-connect-retries  0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
tolerate-pipelining 1
socket-timeout 300

En este caso la privoxy se conectara a tor a través de polipo como puede verse en la linea 19, luego de realizar estas modificaciones solo falta configurar nuestro navegador para utilizar privoxy agregando los siguientes parámetros a su configuración:

  • Dirección: 127.0.0.1 o la ip de la maquina donde estén tor, polipo y privoxy
  • Puerto: 8118

Adicionalmente debe confirmar que las siguientes carpetas:

  • /var/cache/polipo/
  • /var/lib/tor/
  • /var/log/polipo/

existan y sean accesibles.

 

Referencias:


Tagged: optimizaciones, polipo, privoxy, tor
Miguel Ángel Useche

Miguel Ángel Useche
El weblog de Skatox » Planetas

Hackers: el sistema inmunológico de Internet

Hace unos días Keren Elazari, una reconocida experta en el área de seguridad informática, dictó una charla TED sobre como los hackers son el sistema inmunológico de Internet.

Me gustó mucho su manera de explicar ante el público como es la manera de pensar de un hacker, como el personaje de Angelina Jolie en la película Hackers la inspiró a entrar a este mundo, la manera como expresa el sentimiento de poder que se siente al descubrir una falla en un sistema ajeno y la responsabilidad de tener ese conocimiento, de como se puede utilizar para el bien o para el mal. En el caso del bien, siempre benefician a todos porque al reportarse la falla y encontrar una solución, se evita que en el futuro sea utilizada para el mal, mejorando la infraestructura digital y atacando cualquier amenaza, tal cual como lo hacen nuestro sistema inmunológico.

Te recomiendo ver esta ponencia si te gusta mucho la seguridad informatica, pero si no sabes nada de ella debes verla para que aprendas el verdadero significado de un hacker.

Recuerda…HACK THE PLANET!!

Domingo 08 de junio de 2014

Configurando un sitio estático con flask

Continuando con la serie de artículos sobre el microframework de desarrollo web flask, ahora se mostrará como crear un sitio estático.

Este artículo se basa en un artículo en inglés llamado Introduction to Flask, Part 1 - Setting up a static site.

Se usará el mismo archivo utilizado en los artículos anteriores (app.py), en este caso simplemente se agregará el decorador y la función que se va a usar que será para llamar una página de bienvenida.

Aparte del archivo app.py se necesita crear dos directorios, uno llamado templates el cual contendrá la plantilla html y el otro se llamará static que contendrá archivos estáticos como archivos css y archivos javascript.

ernesto@heimdall:~/proyectos/tutorialflask$ ls -l
total 12
-rw-r--r-- 1 ernesto ernesto  792 jun  7 20:56 app.py
drwxr-xr-x 2 ernesto ernesto 4096 jun  7 21:09 static
drwxr-xr-x 2 ernesto ernesto 4096 jun  7 21:10 templates

El archivo app.py tendrá la siguiente información adicional:
#Se agrega el renderizado de la plantilla

from flask import Flask,request,redirect,render_template









#Se usa el decorador ruta para ver el url bienvenido.


@app.route('/bienvenido')


#Se crea la funcion welcome que renderiza una plantilla html.


def welcome():


    return render_template('bienvenido.html')  # renderiza la plantilla bienvenido.html.






Ahora en el directorio templates se crea el archivo bienvenido.html con el siguiente contenido:



Se ejecuta la aplicación y se consulta el url http://127.0.0.1:5000/bienvenido


Ahora se usará un estilo que se llama bootstrap para descargarlo lo puede hacer desde el enlace. Al bajarlo y descomprimirlo copie los archivos bootstrap.min.css y bootstrap.min.js al directorio static, como se muestra a continuación:
ernesto@heimdall:~/proyectos/tutorialflask$ ls -l static/
total 132
-rw-r--r-- 1 ernesto ernesto 99961 feb 13 12:54 bootstrap.min.css
-rw-r--r-- 1 ernesto ernesto 29110 feb 13 12:54 bootstrap.min.js


A continuación se muestra los nuevos cambios a la plantilla bienvenido.html para que use los archivos mencionados anteriormente.

Ahora se abre el navegador al url http://127.0.0.1:5000/bienvenido y se obtiene lo que muestra la siguiente figura:

Micro framework flask (parte 2)

Continuando con el artículo inicial sobre el microframework flask, ahora se muestra el manejo de distintas rutas de urls, se muestra también como obtener información sobre el navegador que se está utilizando para ver la página y por último como redireccionar una ruta a otro url.

A continuación se muestra el código de app.py:
#de flask se importa Flask, request y redirect.

from flask import Flask,request,redirect



#Se crea la instancia del objeto Flask.

app = Flask(__name__)



#Se define el decorador ruta en este caso será la raíz del url, donde

#se muestra hola mundo desde flask

@app.route('/')

def hola_mundo():

    return "Hola Mundo <strong>desde Flask</strong>"



#En este caso el decorador ruta maneja un directorio ususuario y se coloca el nombre del 

#usuario en el url 

@app.route('/usuario/<nombre>')

#Se define la función usuario donde se le pasa el nombre

#devuelve un texto que dice hola y el nombre del usuario.

def usuario(nombre):

    return "<h1> Hola, %s </h1>" % nombre



#Se define la ruta navegador

@app.route('/navegador')

#Se crea la función navegador

#donde se obtiene el headers de User-Agent el cual maneja el nombre

#del navegador que se está usando, la función navegador retorna un string con

#el nombre del navegador.

def navegador():

    user_agent= request.headers.get('User-Agent')

    return "<h1>Su navegador es: %s </h1> " % user_agent



#Se define la ruta redirect

@app.route('/redirect')

#se crea la función redir el cual retorna el nuevo url que será este blog.

def redir():

    return redirect('http://blog.crespo.org.ve')



#Se define la ejecución del servidor.

if __name__ == '__main__':

    app.run(debug=True)



A continuación se ejecuta app.py:
python app.py 
 * Running on http://127.0.0.1:5000/
 * Restarting with reloader

Se abre el navegador colocando en el url el nombre que se desea mostrar en este caso ernesto:
http://127.0.0.1:5000/usuario/ernesto

La imagen muestra el resultado:


Ahora se colocará el url que permite mostrar la información del navegador:
http://127.0.0.1:5000/navegador

La siguiente figura muestra el resultado:

Para terminar se colocará el url que permite redireccionar un url a otro url, en este caso se grabará un screencast para mostrar la acción.
El url es: http://127.0.0.1:5000/redirect

El vídeo se muestra a continuación: 


Sábado 31 de mayo de 2014

Micro Framework de desarrollo web Flask


Flask es un microframework escrito en Python y basado en la especificación WSGI y el motor de plantillas Jinja2.

Su documentación la pueden encontrar en el siguiente enlace.

La instalación en distribuciones basadas en Debian se puede hacer por medio de apt:
#apt-get install python-flask python-flask-doc

También se puede realizar con pip:
#pip install flask

Ahora se creará un script (app.py) que diga hola mundo por medio de flask:
#Se importa flask de Flask

from flask import Flask

#Se crea la instancia de la aplicación app.

app = Flask(__name__)



#Se define el decorador route donde se da la ruta del directorio del servidor web.

@app.route('/')

#Se crea la función hola_mundo que retorna un string con contenido en html.

def hola_mundo():

    return "Hola Mundo <strong>desde Flask</strong>"





#Se define la ejecución de la aplicación.

if __name__ == '__main__':

    app.run()



Se ejecuta el script:
ernesto@heimdall:~/proyectos/tutorialflask$ python app.py 
 * Running on http://127.0.0.1:5000/

Ahora se abre el navegador con el url mostrado anteriormente, la consola muestra lo siguiente:
127.0.0.1 - - [31/May/2014 16:41:12] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [31/May/2014 16:41:14] "GET /favicon.ico HTTP/1.1" 404 -

La página principal abre sin problema, luego devuelve un mensaje 404 que no logra encontrar un archivo favicon.iso (el cual no existe en realidad).

La siguiente imagen muestra la página desde chrome:



Martes 27 de mayo de 2014

Certificados de Novell

Novell® Certified Linux Administrator Data Center Technical Specialist

Comentando con un amigo le dije que la certificación LPI valida unas certificaciones adicionales con Novell que en esencia es como un incentivo para seguir las carreras de certificaciones que tienen la misma gente de Novell. Una de ellas es la certificación Novell(R) Certified Linux Administrator y la otra es la de Data Center Techinal Specialist.

¿Cómo obtengo estas certificaciones?

Al presentar y validar LPIC-1 en la página de  Novell puedes incluir tus datos de LPI para que te envíen estos certificados en digital (formato PDF). Entonces mi consejo es presentar la certificación CompTIA Linux+ Powered by LPI que con el convenio que existe con LPI (Linux Professional Institude) se obtiene  la certificación LPIC-1 y luego validar los datos de la cuenta LPI para obtener estas dos certificaciones extra.

Referencias:

 

Jueves 22 de mayo de 2014

Cómo instalar VMWare Tools en Red Hat y CentOS

VMWare how to install VMWare tools on CentOS and Red Hat - running Si necesitas instalar los VMWare Tools en máquinas virtuales corriendo Red Hat o CentOS como sistemas operativo, puedes seguir  el procedimiento descrito a continuación:

Procedimieto

Primero que nada en VMWare vSphere ubica la máquina virtual a la que deseas instalarle los VMWare tools y haz clic en donde dice “Install VMWare Tools” como se muestraen la siguiente imagen: VMWare how to install VMWare tools on CentOS and Red Hat Aparecerá una ventana de diálogo que indica que se montará el disco con los VMWare Tools en el sistema hacendo clic en el botón “mount”. Luego en la máquina virtual donde deseas instalar los VMWare Tools debes hacer lo siguiente desde un terminal de texto:

# mount /dev/cdrom /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only

# cp /mnt/VMwareTools-9.0.0-782409.tar.gz /opt/

# cd /opt/
# tar xvzf VMwareTools-9.0.0-782409.tar.gz

# cd vmware-tools-distrib/

#./vmware-install.pl

Este último es un script donde te realizarán una serie de preguntas relacionadas a la instalación de los VMWare Tools. En general las opciones por omisión son suficientes, pero si requieres modificar algún comportamiento puedes camiar el valor según tu conveniencia:

Creating a new VMware Tools installer database using the tar4 format.

Installing VMware Tools.

In which directory do you want to install the binary files?
[/usr/bin]

What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc/rc.d]

What is the directory that contains the init scripts?
[/etc/rc.d/init.d]

In which directory do you want to install the daemon files?
[/usr/sbin]

In which directory do you want to install the library files?
[/usr/lib/vmware-tools]

The path "/usr/lib/vmware-tools" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]

In which directory do you want to install the documentation files?
[/usr/share/doc/vmware-tools]

The path "/usr/share/doc/vmware-tools" does not exist currently. This program
is going to create it, including needed parent directories. Is this what you
want? [yes]

The installation of VMware Tools 9.0.0 build-782409 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/vmware-uninstall-tools.pl".

Before running VMware Tools for the first time, you need to configure it by
invoking the following command: "/usr/bin/vmware-config-tools.pl". Do you want
this program to invoke the command for you now? [yes]
Initializing...

Making sure services for VMware Tools are stopped.

The VMware FileSystem Sync Driver (vmsync) allows external third-party backup
software that is integrated with vSphere to create backups of the virtual
machine. Do you wish to enable this feature? [no]

Found a compatible pre-built module for vmci. Installing it...

Found a compatible pre-built module for vsock. Installing it...

The module vmxnet3 has already been installed on this system by another
installer or package and will not be modified by this installer. Use the flag
--clobber-kernel-modules=vmxnet3 to override.

The module pvscsi has already been installed on this system by another
installer or package and will not be modified by this installer. Use the flag
--clobber-kernel-modules=pvscsi to override.

The module vmmemctl has already been installed on this system by another
installer or package and will not be modified by this installer. Use the flag
--clobber-kernel-modules=vmmemctl to override.

The VMware Host-Guest Filesystem allows for shared folders between the host OS
and the guest OS in a Fusion or Workstation virtual environment. Do you wish
to enable this feature? [no]

Found a compatible pre-built module for vmxnet. Installing it...

The vmblock enables dragging or copying files between host and guest in a
Fusion or Workstation virtual environment. Do you wish to enable this feature?
[no]

!!! [EXPERIMENTAL] !!!
VMware automatic kernel modules enables automatic building and installation of
VMware kernel modules at boot that are not already present. By selecting yes,
you will be enabling this experimental feature. You can always disable this
feature by re-running vmware-config-tools.pl.

Would you like to enable VMware automatic kernel modules?
[no]

No X install found.

Creating a new initrd boot image for the kernel.
vmware-tools start/running
The configuration of VMware Tools 9.0.0 build-782409 for Linux for this running
kernel completed successfully.

You must restart your X session before any mouse or graphics changes take
effect.

You can now run VMware Tools by invoking "/usr/bin/vmware-toolbox-cmd" from the
command line.

To enable advanced X features (e.g., guest resolution fit, drag and drop, and
file and text copy/paste), you will need to do one (or more) of the following:
1. Manually start /usr/bin/vmware-user
2. Log out and log back into your desktop session; and,
3. Restart your X session.

Enjoy,

--the VMware team

Found VMware Tools CDROM mounted at /mnt. Ejecting device /dev/sr0 ...
No eject (or equivilant) command could be located.
Eject Failed: If possible manually eject the Tools installer from the guest
cdrom mounted at /mnt before canceling tools install on the host.

Al finalizar el script ya están instalados los VMWare Tools en la máquina virtual. Ahora se puede desmontar el ISO haciendo:

# umount /mnt

Luego en VSphere, puedes verificar que efectivamente están corriendo los VMWare Tools como se muestra en la primera imagen de este artículo.

 

Miércoles 21 de mayo de 2014

Gabriel Vegas

Gabriel Vegas
Gabriel Vegas » Linux

FAT filesystem – bad superblock

Tiempo sin publicar nada. Hace poco tuve un problema con una memoria sd, movía unos archivos y el Gala de Elementary OS se congelo. Me salia el siguiente error : mount:/dev/sdf1 can’t read superblock Con sudo fdisk -l /dev/sdf me salia: Disco /dev/sdf1: 1973 MB, 1973416448 bytes 61 cabezas, 62 sectores/pista, 1019 cilindros, 3854329 sectores…

Domingo 18 de mayo de 2014

José Luis Rivas

José Luis Rivas
ghostbar

Framework Challenge Bogodev 2014

Ayer participé en el framework challenge de Bogodev. Fue en la sede de Wayra Colombia que es genial.

El reto era hacer una visualización de objetos espaciales alrededor de otro (la "estrella de la muerte") y actualizar sus posiciones a partir de coordenadas X, Y y Z.

La solución que le dió mi equipo consistió en Angularjs y D3js para el frontend y un expressjs muy simple para el backend.

Para este tipo de visualización three.js da un mejor aspecto, genera 3D de verdad y no hay que forzar un fake 3d como nos tocó hacer con D3js, y eso fue lo que hicieron otros equipos. Pero: aprendimos D3js, SVG y cómo funciona D3js cuando da el órden de renderizado lo cuál fue muy instructivo (pista: cuando le pasas un array toma la posición como identificador para hacer el renderizado, tanto posición como transisiones).

Aquí está el código y cómo correrlo por si quieren probarlo: https://github.com/ghostbar/fchallenge-ngjs.

Miércoles 14 de mayo de 2014

Carlos Colmenarez

Carlos Colmenarez
El Blog de Zero » LINUX

Editores de texto basados en terminal más usados en Linux

Editores de texto basados en terminal más usados en Linux

Los editores de texto son una parte fundamental para el manejo de nuestro sistema. Ciertamente hay un montón de aplicaciones que permiten hacerlo desde la terminal, pero estas tres son las más populares.

A pesar de que para muchos es más simple editar sus textos desde utilidades gráficas como Gedit, la capacidad de poder hacerlo desde la terminal es imbatible, sobre todo en esos casos donde tenemos problemas con la interfaz gráfica o cuando estamos trabajando sobre un servidor remoto.

Existen muchas alternativas para este fin, pero son principalmente las tres que mencionaremos a continuación las más populares.

Nano

Ioannis Kedros  cc

Nano es un editor de texto basado en Curses, una biblioteca para el control de terminales sobre sistemas Unix. Es muy similar a Pico, un editor minimalista basado en terminal. A diferencia de Pico, Nano permite el resaltado de sintaxis y en términos generales es muy sencillo de usar.

Para editar un archivo con nano, solo debemos invocarlo en la terminal junto con el texto que deseamos editar. Cuando editamos un archivo con nano se despliega su interfaz junto con el contenido del archivo. Las opciones de edición incluyen moverte entre paginas si el texto es muy largo, buscar, copiar, cortar y guardar los cambios, entre otras. Para seleccionar una de estas opciones debemos presionar la tecla ctrl más la letra de la opción deseada.

Vim

jasonwryan

Vim es un editor de texto muy completo. Es una versión mejorada de Vi, un editor de la década de los 70’s que se encuentra en casi todo sistema de tipo Unix. Vim incluso es utilizado por programadores y administradores de sistema, su gran variedad de opciones lo hace perfecto para este fin. Es avanzado y versátil, incluso permite la configuración o instalación de temas personalizados que resaltan la sintaxis de una manera específica.

Vim te permite hacer tantas cosas que sería casi imposible poder asignarle un atajo de teclado único a cada una de ellas. Es por esto que Vim presenta varios modos de operación, para que puedas realizar varias operaciones con el mismo atajo. Entre los modos de operación mas útiles están:

  • Comando: este es el modo inicial. Permite ejecutar instrucciones para trabajar el formato del texto borrando lineas, por ejemplo. No permite escritura.
  • Inserción: se puede cambiar del modo comando al modo inserción pulsando la tecla i. Este modo es para escribir, borrar y editar texto.
  • Visual: para seleccionar bloques de texto o realizar operaciones por bloques. Una vez se tiene el texto marcado se pueden usar órdenes del modo comando para manipularlo.
  • Linea de ordenes: en este modo se pueden realizar búsquedas. Para acceder se pulsa la tecla dos puntos :. Las búsquedas se pueden realizar hacia adelante y hacia atrás.

También dispone de modos de Selección y Ex. Sin embargo, Vim no es tan fácil de aprender, pero una vez que lo dominas el esfuerzo se paga solo. Vim también tiene plugins para búsqueda difusa de archivos, explorar directorios y mejorar la interfaz de usuario, entre otros. Con un poco de conocimiento en Python o en el lenguaje de scripting de Vim, puedes programar tus propios plugins.

Emacs

Kelsin5

Emacs es un complejo editor de texto siendo GNU Emacs del Proyecto GNU, su implementación mas popular. Al igual que Vim, es muy usado por usuarios avanzados y programadores. Dispone de una gran variedad de características y funciones. Entre otras opciones, permite personalizar el resaltado de sintaxis, usando distintos tipos de letra o colores para mostrar las palabras reservadas, por ejemplo.

Gran parte del poder de Emacs viene de Emacs Lisp, una poderosa extensión de lenguaje que permite manejar múltiples tareas. Emacs tiene varios modos de edición llamados major modes. Hay major modes para edición de archivos de texto ordinario, código fuente para diversos lenguajes de programación, documentos HTML, y LaTeX, entre otros. Estos a su vez permiten la activación de varios minor modes, que contienen características relacionadas a un major mode, haciéndolo aun mas robusto. Los major modes disponen también de comandos especiales de edición para un tipo concreto de texto.

Emacs permite a sus usuarios extender o personalizar aún más sus funcionalidades, pudiendo estos escribir código en Emacs Lisp. Su curva de aprendizaje es elevada, pero una vez dominado se pueden lograr grandes cosas.

Los usuarios de Emacs y Vim suelen ser muy apasionados acerca de cual es el mejor editor pero la idea no es armar una guerra campal, sino que cuentes con excelentes opciones a la hora de editar tus documentos y decidas cual se adapta más a tus necesidades. ¿Usas otra aplicación? Cuéntanos cuál es tu favorita y por qué.

via: bitelia


José Luis Rivas

José Luis Rivas
ghostbar

transloadit-api v1.0.0-rc1

El release candidate de v1.0.0 para transloadit-api ya está disponible.

Puedes instalarlo vía npm y probarlo:

npm install transloadit-api@1.0.0-rc1

Ahora soporta la API completa de transloadit: firmas, assemblies, notifications y manejo de plantillas.

El código está en github, la documentación en este website así como en los comentarios del código (que son la fuente para el website) y por supuesto: cualquier problema repórtalo en el tracker de github. Tiene un montón de pruebas pero aún le faltan algunas, especialmente para operaciones que requieren internet.

Quizás tenga tiempo para escribirlas esta semana y entonces lanzar una v1.0.0 como es.

Martes 13 de mayo de 2014

José Luis Rivas

José Luis Rivas
ghostbar

Primera versión de angular-geocomplete

Esta es la historia de un día que necesitaba con una dirección o el nombre de una ciudad conseguir un array JSON que me diese los posibles lugares donde eso fuese cierto.

Y entonces nació angular-geocomplete.

Lo fino es que se puede combinar con algún typeahead y se obtiene un autocompletado demasiado genial como el de Google Maps.

Y sí, usa el API de Google Maps.

¿Cuál es la gran ventaja? Que obtienes no sólo el nombre del lugar sino sus coordenadas.

Instalable vía bower también con bower install angular-geocomplete.

Problemas a los issues de GitHub.

Domingo 27 de abril de 2014

Valencia Software Libre: Instalaciones y Charlas para el Flisol 2014 Valencia - Carabobo

Jueves 24 de abril de 2014

Valencia Software Libre: Flisol 2014 Valencia - Carabobo

Sábado 19 de abril de 2014

ubuntu-ve: UbuConLa 2014

3D Roll Over Links – version 1.0

Así funciona

Así funciona

Este plugin nació de un requerimiento que me hizo un cliente, ya que había visto este efecto en otros websites, realmente colocar a funcionar esto en el sitio del cliente fue rápido, lo que si me costó fue convertirlo en un plugin para WordPress, es mi primer plugin así que estoy abierto a criticas.

Si quiere saber más sobre el plugin, he creado una página en mi blog para mantener la información del mismo y de los futuros plugins que desarrolle.

El plugin es muy sencillo, pero me sirvió para practicar como hacer un plugin y estoy seguro que iré haciendo más ya que estoy trabajando activamente con WordPress en este momento.

Viernes 11 de abril de 2014

Jorge Ortega

Jorge Ortega
Joenco

14 Encuentro nacional de activadores tecnológicos Marzo/2014

 

Los días 20, 21 y 22 de Marzo del 2014 se realizo en Pto la Cruz el 14 encuentro nacional de activadores tecnológicos(en su mayoría son personas con discapacidad visual), con el objetivo de fortalecer los conocimientos que se tienen sobre el software libre y que ellos a su vez los multipliquen en las regiones.

El contenido que se desarrollo en el encuentro fue:

  1. Generalidades de la distribución Canaima4.0: objetivos, nuevas características, usabilidad.

  2. Repaso del lector de pantalla y magnificador orca: preferencias, atajos de teclado, entre otros.

  3. Conocimiento del escritorio Gnome3.4 (gnome-shell): configuración avanzada, configuración del sistema, navegación por los menús.

  4. Uso básico del terminal/consola: copiar, renombrar, mover, crear, eliminar carpetas y/o archivos, actualización del sistema, instalación de aplicaciones.

  5. Edición de audio: abrir, crear, guardar, grabar, mezclar, añadir efectos y exportar.

  6. Uso del gestor de correos Guacharo: configurar o eliminar la cuenta, enviar y recibir correos, añadir contactos.

Para mas información pueden revisar:

Saludos a todos y los animo a colocar sus comentarios!!

 


Lunes 07 de abril de 2014

Xavier Araque

Xavier Araque
Rendergraf

Calumnia, Difamación, Injuria y Rock and Roll

Xavier Araque | Rendergraf

Foto en la que aparece Xavier Araque junto a miembros de la Comunidad de Software Libre en Venezuela | Rendergraf

Acabo de enterarme en Twitter amigos que me informan que han tomando una de mis fotos realizada en una visita al CNTI cuando hacía la entrega de 20 contenidos educativos “Canaimaedu” para las canaimitas de educación básica, luego de haber participado en el lanzamiento de la versión 2.0 de Canaima y de la cual estuve a cargo 100% de la interfaz gráfica de la distribución.

Me sorprendo al ver que un Blog habla de la detención de personas que comercializaban Canaimitas pero usan una de mis fotos como si fuera yo, es triste saber que personas han difundido en las redes sociales la noticia como cierta pero usando una fotografía que solicité tomarme con varias laptops del plan piloto en el 2008.

Como les dije es triste saber que la gente difunde más rápido una mentira que una verdad y que nadie sepa que realmente yo fui quien doné ad honorem (sin costo alguno) toda la interfaz gráfica de las canaimitas para que ese año se pudiera distribuir en los niños de primaria.

Fotografía en una visita al CNTI, Utilizada por un perfil en Facebook llamado Pepsico Ventas – https://www.facebook.com/pepsico.ventas

Para finalizar quisiera me ayuden a difundir la falsedad de la noticia:

Sí tienes cuenta en WordPress puede reportar ese artículo, Reportar a los administradordes de Wordrpess.com

Voy a escribirle a la cuenta de https://twitter.com/julioCAPerez para que se retracte de la calumnia de la imagen que publicó sobre mí.

Respuesta: https://twitter.com/julioCAPerez/status/453271903634227200

Les recuerdo que los “Delitos Contra el Honor” como la calumnia, la injuria y la difamación.

LA INJURIA

Delito de acción por  instancia de parte   previsto y sancionado en el artículo 444 del Código Penal  Venezolano que  establece: “ Todo individuo que en comunicación con varias personas, juntas o separadas, hubiere ofendido de alguna manera el honor, la reputación o el decoro de alguna persona será castigado con prisión de seis meses a un año y multa de cincuenta a cien Unidades Tributarias.

LA CALUMNIA

Consiste en la imputación falsa a una persona de la comisión de un hecho que La Ley califique como delito, a sabiendas de que este no existe, o de que el imputado no fue quien lo cometió, es decir acusar a una persona de un delito que no cometió. Ella constituye una forma agravada de desacreditación de otro, por lo que ha de reunir todos los caracteres de La Injuria que es el género de los delitos contra el honor. En Venezuela el delito de calumnia está previsto en el Titulo IV, Capitulo III, Artículo 240 del Código penal, el cual establece una pena de prisión de seis a treinta meses, con dos numerales de agravantes que aumentan esta pena.


Archivado en: Personal

Operación Windingo: Malware utilizado para atacar a más de 500 mil computadoras

Está Escrito:
   Pero no oyeron, ni inclinaron su oído, antes se fueron cada uno tras la imaginación de su malvado corazón; por tanto, traeré sobre ellos todas las palabras de este pacto, el cual mandé que cumpliesen, y no lo cumplieron.(Jeremías 11:8)


Tomado de:WeliveSecurity
Desde el año pasado venimos publicando información sobre códigos maliciosos que afectan Linux. Tal es el caso de Linux/Ebury un backdoor OpenSSH utilizado para controlar los servidores y robar credenciales y Linux/Cdorked un backdoor HTTP utilizado para redirigir el tráfico Web
Sin embargo, después de una muy importante investigación desarrollada por el Laboratorio de Investigación de ESET, en colaboración con CERT-Bund (Swedish National Infrastructure for Computing) y otros organismos, se pudo determinar que ambos casos están relacionados y pertenecen a una campaña de infección denominada Windigo.
Con esta campaña los atacantes lograron infectar miles de servidores Linux y Unix, los cuales una vez comprometidos son usados para robar credenciales SSH, para redirigir a quienes visitan los sitios web a contenido malicioso y para enviar spam.
Esta operación ha afectado servidores y empresas de alto perfil, entre las que se incluyen cPanel (la empresa tras el famoso panel de control de hosting de sitios Web) y kernel.org de la Fundación Linux (el repositorio principal de código fuente para el núcleo de Linux.
De acuerdo con nuestro análisis, más de 25.000 servidores se han visto afectados en los últimos dos años, de los cuales más de 10.000 aún están infectados. Si bien la cantidad de equipos afectados no está cerca de los millones que puede afectar un código malicioso en Windows, es importante tener en cuenta que esta cantidad es muy significativa si se tiene presente que cada uno de estos sistemas tienen acceso a ancho de banda considerable, almacenamiento, potencia de cálculo y la memoria. En América Latina, los reportes indican aproximadamente 900 servidores infectados en Brasil, más de 250 en Argentina y 300 en México.
Se ha calculado que Windigo es responsable de enviar un promedio de 35 millones de mensajes de spam diarios y cada día más de medio millón de visitantes de sitios web legítimos alojados en servidores afectados son redirigidos a un paquete de exploits.
En la investigación se contó con la participación de diversas organizaciones internacionales, entre ellas el CERT-Bund, la Infraestructura Nacional Sueca para la Informática , la Organización Europea para la Investigación Nuclear (CERN) entre otros. Con la ayuda de todo el grupo de trabajo, miles de víctimas han sido advertidas sobre la infección de sus servidores, en un esfuerzo por limpiar tantos sistemas como sea posible.
Como resultado de la investigación ponemos a disposición de nuestros lectores un artículo en español con la descripción de la operación Windigo sus escenarios de infección, la forma en que trabaja y la manera de identificar si los servidores están comprometidos. Además tenemos un completo artículo con todo el detalle técnicos de las diferentes amenazas involucradas en Windigo.
ubuntu-ve: FLISoL 2014

Martes 01 de abril de 2014

Actualiza tu Samsung Galaxy Mini (GT-S5570 y GT-S5570L) a Android KitKat 4.4.2 con CyanogenMod 11!!

Cyano 11Larga vida al Samsung Galaxy Mini Original (GT-S5570 y GT-S5570L). Actualízalo a Android Kitkat 4.4.2 gracias a CyanogenMod 11 y al equipo de XDA

/*
* No me hago responsable por dispositivos dañados
* tarjetas SD rotas, guerras termonucleares, etc.
* Investiga un poco antes de hacer este procedimiento.
* TU y solo TU has escogido modificar tu dispositivo,
* así que no soy responsable de tus actos. Este
* procedimiento  podría anular la garantía de fábrica.
*/

Todas las instrucciones para actualizar, así como los enlaces de la descarga podrás encontrarlos en este enlace

Lunes 31 de marzo de 2014

Acceso root en el nuevo Samsung Galaxy S5!!!

Galaxy S5

El día de hoy les traigo los pasos a seguir para tener acceso súper usuario en el nuevo Galaxy S5, buque insignia de Samsung para este 2014.

/*
* No me hago responsable por dispositivos dañados
* tarjetas SD rotas, guerras termonucleares, etc.
* Investiga un poco antes de hacer este procedimiento.
* TU y solo TU has escogido modificar tu dispositivo,
* así que no soy responsable de tus actos. Este
* procedimiento  podría anular la garantía de fábrica.
*/

Primero que nada, algunas consideraciones

  • Se recomienda hacer un respaldo completo de la información contenida en el móvil (Fotos, música, archivos, contactos, SMS, etc.)
  • El dispositivo debe tener al menos un 80% de carga en su batería
  • Los drivers USB deben estar correctamente instalados en tu computador y la depuración USB (USB debugging) debe estar habilitada en el móvil

Ahora debemos descargar todo lo que necesitamos para rootear el Galaxy S4:

Ahora si, los pasos a seguir:

  1. Apaga tu móvil para encenderlo en modo descarga: para ello presiona simultáneamente los botones Volumen-, Home y Power. Luego de una advertencia, presiona el botón Volumen+  para entrar al modo de descarga.
  2. Ejecuta Odin 3.09.exe como administrador en tu máquina, y conecta el móvil en modo descarga mediante el cable USB. Si la conexión es exitosa, aparecerá un mensaje diciendo “Added!!” en Odin.
  3. Ahora haz clic en el botón “PDA” y selecciona el archivo “CF-Auto-Root” descargado.
  4. Selecciona las opciones “Auto Reboot” y “F. Reset Time” del Odin.
  5. Asegúrate que la opción del Odin “Re-partition” NO está seleccionada
  6. Haz clic en el botón “Start” para comenzar el proceso
  7. Una vez se complete el proceso, el móvil se reiniciará y un mensaje con la palabra “PASS” en fondo verde debe aparecer en el Odin.
  8. Desconecta el móvil y disfruta xD

Martes 25 de marzo de 2014

Configuración de un servidor web Apache en CentOS

Está Escrito:
Si confesamos nuestros pecados, él es fiel y justo para perdonar nuestros pecados, y limpiarnos de toda maldad. (1 Juan 1:9)
Tomado de : Desarrolloweb
Cuando contratamos un servidor a nuestro proveedor de servicios, podemos elegir el sistema operativo, la distribución y la configuración inicial. En nuestro caso optaremos por un servidor Linux con una distribución de la última versión de CentOS, configuración mínima y 64 bits. 

Una vez que el servidor este disponible podremos acceder por SSH. Nada mas conectar podremos empezar con la siguiente configuración:

1) Cambiamos el nombre de nuestra máquina

Podemos hacerlo editando el fichero “/etc/hosts”. Al final de la línea que empiece por 127.0.0.1 añadimos el nombre que queramos, quedando de la siguiente manera:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 minombre

 
También habrá que hacerlo en el fichero “/etc/sysconfig/ network”, cambiando el valor de la variable “HOSTNAME”. En este caso el fichero queda de la siguiente manera:
NETWORKING=yes
HOSTNAME=minombre

2) Actualizamos el sistema con el siguiente comando


#yum update
Si queremos que al instalar los grupos, que veremos mas adelante, se instalen también los paquetes opcionales, añadiremos entonces en el fichero "/etc/yum.conf" la siguiente línea:
group_package_types=mandatory,default,optional

3) Instalamos las herramientas de desarrollo, como el paquete de compiladores GCC, make, las fuentes del kernel y Perl


#yum install gcc make kernel-devel perl
Esto instala los mínimos paquetes para desarrollo. Si queremos instalar todos ellos, podremos hacerlo ejecutando el siguiente comando:
#yum groupinstall “Development tools”.

 
Si antes de instalarlos queremos sólo ver los paquetes que contiene el grupo de desarrollo, ejecutamos la siguiente línea:
#yum groupinfo "Development tools"

4) Instalamos PHP

Con el siguiente comando instalamos todo lo necesario:
 
#yum groupinstall "PHP Support”

 
Puede que nos falte alguna cosa, así que podemos correr la siguiente línea para completar la instalación de PHP:
#yum install php-mbstring php-devel php-mcrypt zlib zlib-devel zlib-static

 
Seguidamente, podemos configurar la zona horaria predeterminada usada por las funciones "date" y "time", para ello en el fichero "/ etc/php.ini" añadimos la siguiente línea:
date.timezone = "Europe/Madrid"

5) Instalamos y configuramos el servidor Apache


#yum groupinstall “Web Server”.
Como hemos dicho, si antes de instalar queremos ver todos los paquetes que contiene este grupo, haríamos "groupinfo" en lugar de "groupinstall".
Podemos completar la instalación del servidor Apache instalando las librerías de desarrollo:
#yum install httpd-devel

 
Para ver la versión de Apache instalada, ejecutamos:
#httpd -v

 
El fichero principal de configuración se encuentra en "/etc/ httpd/conf/httpd.conf", y el resto de ficheros de configuración en "/etc/httpd/conf.d".
Hay que decir que cualquier fichero con extensión .conf que coloquemos en el directorio "/etc/httpd/conf.d" será procesado por el servidor Apache. Tener en cuenta que los procesa por orden alfabético. Si hacemos un cambio en alguno de estos ficheros o añadimos uno nuevo, hay que recargar para que el servidor recoja los cambios y para ello hacemos:
#service httpd reload
Ahora daremos un nombre al servidor. Aunque no es necesario hacer esto, sí es recomendable para que no aparezcan problemas en los arranques. Para esto nos aseguramos de que en el fichero de configuración httpd.conf tengamos la siguiente línea:
ServerName localhost
También es recomendable eliminar la página de prueba que nos instala el servidor. Para ello editamos el fichero /etc/httpd/ conf.d/welcome.conf y comentamos todas las líneas, quedando de la siguiente manera:
#<LocationMatch "^/+$">
#Options -Indexes
#ErrorDocument 403 /error/noindex.html
#</LocationMatch>
Si queremos utilizar servidores virtuales (virtual hosts) y tener los ficheros organizados, podemos crearnos un fichero llamado por ejemplo "vhosts.conf" que contenga nuestros virtual hosts y colocar el fichero en "/etc/httpd/conf.d". El fichero quedaría con un contenido parecido al siguiente:
NameVirtualHost [IP]:80
<VirtualHost [IP]:80>
ServerName www.midominio.com
ServerAlias www.midominio.com midominio.com
DocumentRoot /var/www/html/midominio.com/www
CustomLog /etc/httpd/logs/midominio.com.access_log combined
ErrorLog /etc/httpd/logs/midominio.com.error_log
</virtualhost>

 
Sustituir [IP] por tu IP pública y “midominio” por el dominio que quieras dar servicio.
Ahora podemos arrancar el servidor Apache de la siguiente manera:
#service httpd start

 
Si queremos que el servicio se inicie al arrancar nuestra máquina, podemos habilitarlo con:
#chkconfig httpd on

 
Si en los servidores DNS de "midominio" tenemos las entradas correspondientes apuntadas correctamente a nuestra IP, ya podríamos verlo a través de un navegador entrando en http:// www.midominio.com 

1) Instalación de MySQL

Tal y como hicimos con Apache, instalamos MySQL de manera similar, es decir:
#yum groupinstall “MySQL Database server”

  Esto instalará el paquete mysql-server necesario para ejecutar el servidor de base de datos. A continuación instalamos las herramientas del cliente MySQL con:
#yum groupinstall “MySQL Database client”

  A continuación editamos el fichero de configuración de MySQL que podemos localizar en “/etc/my.cnf”.
Por cierto, el editor que suelo utilizar en el terminal es “nano”. No es tan potente como Vim o Emacs pero para ediciones sencillas, como en estos casos, es más que suficiente y su uso es muy simple: al editar cualquier fichero podemos ver en las dos líneas de abajo la ayuda.
Por tanto, hacemos:
#nano /etc/my.cnf

  El contenido de my.cnf podría ser algo tan sencillo como esto:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

  Otros ficheros con configuraciones diferentes podemos encontrarlos en “/usr/share/doc/mysql-server-x.x.x” (sustituir x.x.x por nuestra versión de MySQL). Aquí podremos encontrar ejemplos de configuraciones para sistemas muy grandes (my-huge.cnf), pequeños (my-small.cnf), etc.
Lo siguiente que debemos hacer es ponerle la clave al usuario root de MySQL, así como eliminar la base de datos “test” y el usuario anónimo que se instalan por defecto. Para ello arrancamos el servicio con:
#service mysqld start

  A continuación ejecutamos la siguiente línea:
#/usr/bin/mysql_secure_installation

  Después de contestar a una serie de preguntas que nos hace, ya tendremos nuestro servidor MySQL instalado y ejecutándose. Es recomendable poner que se inicie al arrancar nuestra máquina Linux, para ello basta con hacer:
#chkconfig mysqld on

  Si queremos ver la información de los servicios del sistema y comprobar que los que hemos instalado hasta ahora se inician al arrancar la máquina, podemos hacerlo ejecutando:
#chkconfig --list

  En este punto podremos ver los servicios httpd y mysqld configurados en los niveles 2, 3, 4 y 5.

2) Instalamos el servidor FTP

Actualmente existen varios servidores de FTP que podemos instalar en nuestro sistema. En nuestro caso hemos optado por instalar ProFTPD, ya que es bastante estable y seguro.
Lo primero es asegurarnos de que no tenemos ya instalado otro servidor FTP, como pudiera ser vsftpd; en tal caso habría que eliminarlo con:
#yum remove vsftpd

  Si queremos instalar proftpd con yum debemos habilitar EPEL, que es un repositorio con paquetes adicionales. Lo habilitamos de la siguiente manera:
#rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

  A continuación basta con instalar proftpd:
#yum install proftpd

  Seguidamente lo configuramos editando el fichero “/etc/proftpd.conf”. Algunas líneas útiles que deberíamos agregar al fichero de configuración y que no vienen en la instalación por defecto son:
#Para que no muestre los directorios superiores
DefaultRoot ~
#Para ocultar . y ..
ListOptions "" strict
#Permite continuar descargas incompletas
AllowRetrieveRestart on
#Permite continuar subidas incompletas
AllowStoreRestart on
Arrancamos el servicio:
#service proftpd start

  Lo habilitamos para que se inicie al arrancar la máquina:
#chkconfig proftpd on

  En este punto ya tendríamos el servidor listo para empezar a funcionar, pero antes de nada lo recomendable es asegurarlo. Aquí hay algunas cosas que hacer, pero para no alargar demasiado el artículo comento un par de puntos importantes para hacer ya mismo:
  • Si contamos con un firewall lo ideal es utilizarlo y cerrar todos los puertos excepto los que vayamos a utilizar: 80(http), 443(https), 20, 21(ftp), 22(ssh),…
  • Si accedemos a nuestra máquina por ssh podemos añadir una regla a las iptables para restringir el acceso por IP, lo mismo para el ftp (sustituimos las Xs por nuestra IP):
#/sbin/iptables --flush
#/sbin/iptables -A INPUT -s XXX.XXX.XXX.XXX -p tcp --dport 20:21 -j ACCEPT
#/sbin/iptables -A INPUT -s XXX.XXX.XXX.XXX -p tcp --dport 22 -j ACCEPT
#/sbin/iptables -A INPUT -p tcp --dport 20:21 -j DROP
#/sbin/iptables -A INPUT -p tcp --dport 22 -j DROP
#/etc/rc.d/init.d/iptables save

  Sé que se puede profundizar mucho mas en cada uno de estos puntos, pero el objetivo era hacer una guía breve y sencilla para poder comenzar a trabajar con el servidor.

Lunes 24 de marzo de 2014

Montando Imagenes de Discos

Casualmente necesite hacerle un fsck a un disco con LVM de una maquina virtual en KVM. Antes de ponerme a pelear con la VM y ver como iniciar en modo single, el vnc, y hacer el papeleo y protocolo correspondiente … Continue reading

Domingo 23 de marzo de 2014

David Moreno

David Moreno
dm's blog

New Debian mailing list: debian-astro

I will try to report my Debian activities here. I am trying to retake them and as I'm usually busy at work, I have limited amount of time to do so, they stand small for now.

A new mailing list, debian-astro, has been created. This was requested to create a space to allow a discussion space around astronomy for Debian, both for professionals and amateurs, to potentially look into a blend, and in general to talk about packaging and development of astronomy-related tools into Debian. Thanks to those interested on making this happen. Go subscribe today!

Jueves 20 de marzo de 2014

Open Data Monterrey 2014

Desde que Milton y yo llegamos a Monterrey habíamos estado alejados de la actividad de participación en comunidades de Open Source en la ciudad, solo unas pocas asistencias a reuniones organizadas por la comunidad de Python de Monterrey.

Nos enteramos del Open Data Monterrey 2014 por invitación del CIC, con quién  Milton ha colaborado en sus ratos de ocio desarrollando un cliente en Python [https://github.com/milmazz/pycic] para interactuar con el API del Centro de Integración Ciudadana (CIC) quienes promueven la participación ciudadana a través de medios tecnológicos para organizarse y resolver problemas comunes, uno de ellos por ejemplo es el tema de la inseguridad o el tráfico en la zona metropolitana del estado de Nuevo León.

El evento se realizó los días 22 y 23 de febrero en el marco del International Open Data Hackaton y el CodeAccross The World. Organizado por el CIC y Codeando México con aliados como: Alcalde ¿Cómo vamos? , rutadirecta, Mente y Nongrid

Se dictaron talleres interesantes como Análisis espacial y estadístico de delitos: más allá de los hotspots y correlaciones por Carlos Castro representando Estrategia Digital Nacional (México abierto),  Civic hacking 101 – Creando tu primer aplicación cívica de código abierto por Braulio Chávez y Noé Domínguez representando a Codeando México. Scraping de datos públicos por Francisco Mekler representando al Instituto Mexicano para la Competitividad.

Los lineamientos para conceptualizar el proyecto era usar los datos disponibles en http://data.cic.mx y lograr obtener información que pueda ser interpretada en beneficio de la comunidad.

Surgieron ideas muy interesantes como una app móvil para implementar la alerta Amber, para los que no la conocen esta es una alerta para la búsqueda de menores desaparecidos y en la actualidad se hace por medios tradicionales como la radio, este proyecto tuvo mención honorífica. El tercer lugar se lo llevó un software para geolocalizar las patrullas de policía de acuerdo a las estadísticas de incidentes de delito en una zona.

En el primer y segundo lugar hubo empate con el proyecto ¿Cuánto debemos? y nuestro proyecto ¡Pregúntale! 

Ganadores

Pregúntale está basado en varias iniciativas de peticiones a nivel global, hay muchas, cada una con su concepto, para nosotros askThem.io fue nuestra mayor inspiración.

¿Por qué pregúntale? El estado de Nuevo León cuenta con  la iniciativa de Alcalde ¿Cómo vamos? En donde existe un espacio de comunicación con los alcaldes del área metropolitana, conformado por los alcaldes de los 9 municipios.

Es muy importante saber que en Nuevo León solo el 2% de la población manifiesta interés en participar en cualquier causa social.

Pregúntale es una aplicación web que puede ser un medio para incentivar la participación ciudadana, en donde cualquier persona de la comunidad puede plantear preguntas dirigidas a los alcaldes y promoverlas en las redes sociales teniendo una posibilidad real de recibir una respuesta de la autoridad. La aplicación fue desarrollada en el lenguaje Python haciendo uso del microframework Bottle.Para el desarrollo de las vistas HTML se usó de Jinja2  junto con Bootstrap para el delineado del layout, para la muestra de gráficas y estadísticas se uso HighCharts.

Los próximos pasos consistirán en armar un API para el manejo de preguntas, respuestas, alcaldes y usuarios y organizaciones.

Si alguien desea contribuir con el desarrollo de ¡Pregúntale! el repositorio del proyecto se encuentra en [github.com/milmazz/preguntale] porque ciertamente cumpliremos con aquello de: “Lo que se hace en el hackatón, no se queda en el hackatón”, continuaremos mejorando ¡Pregúntale! y por supuesto, haciéndolo de dominio público.


Android Kitkat 4.4.2 en tu Acer Iconia A500!!!

Acer Iconia A500

Nuevamente, debemos dar gracias al trabajo de Thor2002ro, desarrollador en el Foro Tegraowner, quien ha estado trabajando de forma ardua en portar las últimas versiones de Android a nuestra Acer A500, proporcionándole nueva vida y ahorrándonos la necesidad de darla de baja. 

/*
* No me hago responsable por dispositivos dañados
* tarjetas SD rotas, guerras termonucleares, etc.
* Investiga un poco antes de hacer este procedimiento.
* TU y solo TU has escogido modificar tu Tablet,
* así que no soy responsable de tus actos. Este
* procedimiento  podría anular la garantía de fábrica.
*/

Requerimientos:

  • Acer Iconia A500 Rooteada
  • Bootloader ICS v8
  • Thor Recovery v1.7.3 o superior

Si no tienes los requerimientos anteriores, y tu tablet se encuentra con la última versión oficial de Acer (4.0.3), puedes usar la herramienta Afterota v1.09 y seguir las instrucciones en el post de XDA Developers

Si ya cumples los requerimientos, deberás suscribirte en el Foro Tegraowners para poder descargar la ROM y flashearla de acuerdo a las siguientes instrucciones:

  1. Entrar a modo Recovery (Power + Volumen[+])
  2. Hacer wipe de Data, Cache y Dalvik Cache
  3. Instalar ROM (Tiene su propio instalador luego de seleccionar el Zip). En este paso podrán seleccionar si desean soporte 3G para modems Huawei
  4. Instalar Gapps (De este enlace)
  5. Instalar SuperSU para acceso Root (De este enlace)
  6. Reiniciar y dejar algunos minutos a que complete la instalación
  7. Disfruta

Domingo 16 de marzo de 2014

ubuntu-ve: IV Encuentro Nacional de Tecnología adaptativa de personas con discapacidad visual

Lunes 10 de marzo de 2014

Milton Mazzarri

Milton Mazzarri
milmazz

libturpial needs your help

Do you want to begin to contribute into libturpial codebase but you don’t know where to start?, that’s ok, it also happens to me sometimes, but today, the reality is that we need your help to fix some errors reported by our style checker (flake8), this errors are:

  • E126: continuation line over-indented for hanging indent
  • E128: continuation line under-indented for visual indent
  • E231: missing whitespace after :
  • E251: unexpected spaces around keyword / parameter equals
  • E261: at least two spaces before inline comment
  • E301: expected 1 blank line
  • E302: expected 2 blank lines
  • E303: too many blank lines
  • E501: line too long
  • E711: comparison to None should be if cond is not None:
  • E712: comparison to False should be if cond is False: or if not cond:
  • F401: imported but unused
  • F403: unable to detect undefined names
  • F821: undefined name
  • F841: local variable is assigned to but never used
  • F999: syntax error in doctest
  • W291: trailing whitespace
  • W391: blank line at end of file
  • W601: .has_key() is deprecated, use in

As you can see, some errors are really easy to fix but are too many for us, so please, we desperately need your help, help us!

The following is how we expect the community can contribute code into libturpial via Pull Requests.

1) If you don’t have a Github account, please create one first.

2) Fork our project

3) Install Git, after that you should setup your name and email:

    $ git config --global user.name "Your Name, not your Github nickname"
    $ git config --global user.email "you@example.com"
    

4) Set your local repository

    $ git clone https://github.com/your_github_nickname/libturpial.git
    

5) Set satanas/libturpial as your upstream remote, this basically tells Git that your are referencing libturpial’s repository as your main source.

    $ git remote add upstream https://github.com/satanas/libturpial.git
    

5.1) Update your local copy

    $ git fetch upstream
    

6) Verify that no one else has been working on the same bug, you can check that in our issues list, in this list you can also check Pull Requests pending for the BDFL approval.

7) Working on a bug

7.1) In the first place, install tox

    $ pip install tox
    

7.2) Then, create a branch that identifies the bug that you will begin to work on:

    $ git checkout -b E231 upstream/development
    

In this example we are working on the bugs of the type: E231 (as indicated by our style checker, flake8)

7.3) Make some local changes and commit, repeat.

7.3.1) Delete the error code that you will begin to work from the ignore list located at the flake8 section in the tox.ini file (located at the root of the project)

Example:

    # Original list:
    ignore = E126,E128,E231,E251,E261,E301

    # After we decide to work in the E231 error:
    ignore = E126,E128,E251,E261,E301
    

7.3.2) Execute tox -e py27 to check the current errors.

7.3.3) Fix, fix, fix…

7.3.4) Commit your changes

    $ git commit -m "Fixed errors 'E231' according to flake8."
    

7.4) In the case that you fixed all errors of the same type, please delete the corresponding line in the tox.ini file (located at the root of the project)

7.4.1) Don’t forget to commit that.

8) Publish your work

    $ git push origin E231
    

Please, adjust the name E231 to something more appropiate in your case.

9) Create a Pull Request and don’t hesitate to bug the main maintainer until your changes get merged and published. Last but not least, don’t forget to add yourself as an author in the AUTHORS file, located at the root of the project.

10) Enjoy your work! :-)

If you want to help us more than you did already you can check our issues list, also, you can check out the Turpial project, our light, fast and beautiful microblogging client written in Python, currently supports Twitter, and identi.ca.

You can find more details on our guide, also, in case of doubt don’t hesitate to reach us.

About libturpial

libturpial is a Python library that handles multiple microblogging protocols. It implements a lot of features and aims to support all the features for each protocol. At the moment it supports Twitter and Identi.ca and is the backend used for Turpial.

About Turpial

Turpial is an alternative client for microblogging with multiple interfaces. At the moment it supports Twitter and Identi.ca and works with Gtk and Qt interfaces.

libturpial needs your help was originally published by Milton Mazzarri at milmazz on March 10, 2014.

Sábado 08 de marzo de 2014

Nerissa Aguilera

Nerissa Aguilera
Blog de Nerissa

HISTORIAS I - Mujeres

Días de Software Libre en el X Salón de Arte Digital de Maracaibo

Salón de Arte Digital de Maracaibo

Salón de Arte Digital de Maracaibo

Sobre el Evento

El Salón de Arte Digital de Maracaibo se celebra anualmente con participantes locales y foráneos, con el objetivo de reunir y mostrar el trabajo creativo de todo el que desee participar que involucre la tecnología en su proceso creador o como plataforma. Cada año hay diversos participantes divididos en cuatro categorías: impreso (subdividido en fotografías e ilustraciones digitales y digitalizadas), videos (animación 2D, 3D, Flash y stop motion), música digital y multimedia. Además de una Charla-Foro durante los cuatro días del evento bajo el título Creatividad + Tecnología.

¿De dónde viene la idea de hacer un Salón de Arte Digital en Maracaibo?

Según Fernando Asián, Fundador del Salón de Arte Digital “La idea nace de la necesidad. En Venezuela dejaron de celebrarse salones nacionales de arte desde 1989. Como artista plástico participé en muchos de ellos, siendo reconocido con premios como el Premio Emilio Boggio para Dibujo en el Salón Arturo Michelena, y el Premio Metro de Caracas para Dibujo, en el Salón Nacional de Artes Plásticas, 1989, entre otros. Deduje que la inevitable, y cada vez más presente, tecnología era un elemento aglutinador, o mejor, una excusa para convocar actividades artísticas que usan el formato digital en su realización. Esta incorporación del elemento tecnológico facilita la participación de cualquier género, lo que permite romper el paradigma del salón clásico. Por otra parte la herramienta digital no producirá un nuevo tipo de arte, pero favorece la interrelación entre géneros y facilita la producción de expresiones como el cine, la multimedia, etc…¨

Salón de Arte Digital, es un evento realizado por 10 ediciones, que reúne artistas multimedia de todo el mundo. Este edición ofrece nuevas tecnologías, nuevos medios en las artes y en las ciencias. Este evento se estará realizando desde el 10 al 28 de Marzo 2014.

ACTUALIZADO:  Sirva la presente para comunicar que se cambio el inicio de las actividades de los talleres al Software Libre en Salón de Arte Digital debido a las protestas que se encuentran cerca de PDVSA La Estancia Maracaibo, mas se estima iniciar una semana después de lo planeado, es decir, el 17 de Marzo hasta el 28 de Marzo, allí los esperamos.

Información básica

Lugar: PDVSA La Estancia Maracaibo. Ubicado en la Calle 77 (bulevar 5 de Julio), parroquia Olegario Villalobos del Municipio Maracaibo, al lado del Edificio Principal de Enelven.

Costo: ENTRADA TOTALMENTE LIBRE Y GRATUITO

Inscripciones: Desde el 5 de marzo de 2014, en la recepción de PDVSA La Estancia Maracaibo.

Cronograma de Software Libre en el Salón de Arte Digital de Maracaibo.

Primer día – 10 de marzo

Titulo: ¿Qué es el Software Libre?

Descripción: esta cátedra habla de Historia, Definición y Filosofía de The GNU Project, Free Software Foundation (FSF), Software Libre (Free Software), El Núcleo Linux, Código Abierto (Open Source), Open Source Initiative (OSI). Además trata sobre las Licencias, Distribuciones, Alternativas Libres, Comunidades de Software Libre, Ventajas, Desventajas, Situación Actual del SL en Vzla, Sitios en Internet.

Duración: 1 hora académica

Titulo: ¿Qué es Hardware Abierto?

Descripción: esta cátedra habla de la Problemática actual, Historia, Lee Felsenstein y el Homebrew Computer Club, FPGAs y Open Design Circuits. Definición y Filosofía según su naturaleza (Hardware estático y Hardware reconfigurable); y según su filosofía, Open Hardware, Open source hardware, Free hardware design, Libre hardware design, Free hardware. Además trata sobre el Licenciamiento, Comercialización, Modelos de intercambio, Proyectos, Comunidades de Hardware Abierto, Ventajas y Desventajas, Situación actual en Venezuela, Conclusiones, Sitios de Referencia.

Duración: 1 hora académica

Titulo: Del uso de la tecnología a la innovación tecnológica.

Descripción: esta cátedra habla de la experiencias de muchos activistas Venezolanos dentro de las comunidades de tecnologías libres y su formación socio política ante la tecnología y su impacto en la sociedad, formando a nuevos ciudadanos, estos actualmente no solo son activista en tecnologías que promuevan el conocimiento libre sino forman parte muchos movimientos culturales y sociales a nivel mundial, nacionalmente y regionalmente. Con esta experiencia se educa como involucrarse en estos movimientos.

Duración: 1 hora académica


Segundo día – 11 de marzo

Titulo: Distribuciones de Software Libre Venezolanas

Descripción: esta cátedra habla de Distribuciones GNU/Linux, ¡GNU/Linux a la medida!, Clasificación de Distribuciones, Historia en Árbol genealógico y Mapa mental de distros. Además las Implementaciones Venezolanas de distros como: HVLinux, Bluewall GNU/Linux, KnoppixMED, LinuxDoc, Latinux, GNU/Linux – Venezuela, Soliedelca, Lavicux, ULANIX y sus sabores, Kuntur y CANAIMA GNU/Linux, con algunas demostraciones y anexos las referencias a Sitios en Internet.

Duración: 1 hora académica

Titulo: Proyecto Canaima

Descripción: esta cátedra habla del proyecto Canaima surge como un proyecto para normalizar la migración a Software libre en al APN en Venezuela, en esta charla busca compartir las experiencia del proyecto Canaima globalmente no solo como un producto tecnológico sino como el estado ofreció la apertura a la comunidades de software libre para compartir saberes y ayudar a construir una base de socio productiva en tecnologías libres en Venezuela, aquí se comenta un poco de su historia, productos tecnológicos y organización social de la comunidad hasta el momento, encuentros comunitarios y recursos tecnológicos disponibles en redes sociales e Internet para colaborar virtualmente con el proyecto.

Duración: 1 hora académica

Titulo: Diseño Gráfico Digital en Software Libre

Descripción: esta cátedra habla de Alternativas Libres para Editor de gráficos; Editor de gráficos vectoriales; Editor de animación 2D; Editor de gráficos 3D; Editor de gráficos de post-producción; Editor de Fuentes; Maquetación y Publicación; Animaciones Web; Editores Web; con sus características técnicas y tabla de costos por licenciamiento de software. Además trata sobre Sitios en Internet y Demostraciones.

Duración: 1 hora académica


Tercer día – 12 de marzo

Titulo: Sistema de gestión de contenidos Plone

Descripción: esta cátedra habla de como crear facilmente usando el software de sistema de gestión de contenidos Plone ideal para creacion de Paginas Web

Plone es el mas longevo, poderoso, flexible, seguro y premiado sistema de gestión de contenido escrito en Python. Utilizado en sitios como Brasil.gov.br, CIA.gov y VTV.gob.ve, él es conocido por su seguridad e flexibilidad. En esta charla exploraremos, ¿cómo funciona él?, ¿cómo funciona su comunidad organizada?, y vemos como los usuarios exigentes con fechas límite de entrega le encanta Plone, ya que les permite no tener que inventar la rueda de nuevo cada vez que trabajan en la carga de contenidos en la Web.

Duración: 1 hora académica

Titulo: Traducción asistidas por computadoras en Software Libre

Descripción: esta cátedra habla de ¿Qué es la traducción?, describir los recursos del traductor, también como ha evolucionado hasta la actualidad la industria de la Lengua. Herramientas CAT (Computer-aided Translation), Memorias de Traducción. Se ofrece un análisis comparativo entre herramientas CAT privativas y libres donde se describen sus ventajas y desventajas, costo de licencias de software y soporte. También se ofrecen algunos recursos en la red y demostraciones.

Duración: 1 hora académica

Titulo: Montaje de un proyecto de Software Libre

Descripción: esta cátedra habla de ¿Cómo montar un proyecto de software libre?, lo que hay que hacer antes de comenzar el proyecto se explican los temas de: Lenguaje de programación, Plataforma, Especificaciones, Luego se debe definir algunas metodologías de desarrollos que se asemejen a SL y las herramientas de trabajo colaborativo para el desarrollo y control de gestión y proyectos para definir roles del proyecto, uso de recursos CVS, Lista de correos; tales como algunos recursos de la Web 2.0 disponibles para empezar a organizarse, y también sobre algunos FOSP-hostsites. Y una vez que esta listo la primera publicación se deben tomar en cuentas los aspectos legales, buenas prácticas al liberar, la publicidad del proyecto, el empaquetamiento y distribución (fuentes y binarios), el cuidado con la imagen, el soporte a usuarios: sitios de referencia, BTS, comunidades. Además trata sobre el Tiempo de dedicación al proyecto, Conclusiones, Referencias, Sitios en Internet, Demostraciones, Preguntas.

Duración: 1 hora académica


Del 13 al 18 de marzo

Actividades simultaneas de talleres de diseño gráfico y dibujo, exposición de arte. Mas información recepción de PDVSA La Estancia Maracaibo.

Mas información

Para difundir a través de las redes sociales:

Google+: https://plus.google.com/u/0/events/c0shdk3hpl860gg9v90iq7lbsu0

Facebook: https://www.facebook.com/events/595560203864477/


Martes 04 de marzo de 2014

Días de Software Libre en el X Salón de Arte Digital de Maracaibo

1546369_10152125041544300_839636421_nSalón de Arte Digital, es un evento realizado por 10 ediciones, que reúne artistas multimedia de todo el mundo. Este edición ofrece nuevas tecnologías, nuevos medios en las artes y en las ciencias. Este evento se estará realizando desde el 10 al 28 de Marzo 2014.

Lugar: PDVSA La Estancia Maracaibo. Ubicado en la Calle 77 (bulevar 5 de Julio), parroquia Olegario Villalobos del Municipio Maracaibo, al lado del Edificio Principal de Enelven.

Costo: ENTRADA TOTALMENTE LIBRE Y GRATUITO

Inscripciones: Desde el 5 de marzo de 2014, en la recepción de PDVSA La Estancia Maracaibo.

Cronograma de Software Libre.

Primer día – 10 de marzo

Titulo: ¿Qué es el Software Libre?

Descripción: esta cátedra habla de Historia, Definición y Filosofía de The GNU Project, Free Software Foundation (FSF), Software Libre (Free Software), El Núcleo Linux, Código Abierto (Open Source), Open Source Initiative (OSI). Además trata sobre las Licencias, Distribuciones, Alternativas Libres, Comunidades de Software Libre, Ventajas, Desventajas, Situación Actual del SL en Vzla, Sitios en Internet.

Duración: 1 hora académica

Titulo: ¿Qué es Hardware Abierto?

Descripción: esta cátedra habla de la Problemática actual, Historia, Lee Felsenstein y el Homebrew Computer Club, FPGAs y Open Design Circuits. Definición y Filosofía según su naturaleza (Hardware estático y Hardware reconfigurable); y según su filosofía, Open Hardware, Open source hardware, Free hardware design, Libre hardware design, Free hardware. Además trata sobre el Licenciamiento, Comercialización, Modelos de intercambio, Proyectos, Comunidades de Hardware Abierto, Ventajas y Desventajas, Situación actual en Venezuela, Conclusiones, Sitios de Referencia.

Duración: 1 hora académica

Titulo: Del uso de la tecnología a la innovación tecnológica.

Descripción: esta cátedra habla de la experiencias de muchos activistas Venezolanos dentro de las comunidades de tecnologías libres y su formación socio política ante la tecnología y su impacto en la sociedad, formando a nuevos ciudadanos, estos actualmente no solo son activista en tecnologías que promuevan el conocimiento libre sino forman parte muchos movimientos culturales y sociales a nivel mundial, nacionalmente y regionalmente. Con esta experiencia se educa como involucrarse en estos movimientos.

Duración: 1 hora académica

Segundo día – 11 de marzo

Titulo: Distribuciones de Software Libre Venezolanas

Descripción: esta cátedra habla de Distribuciones GNU/Linux, ¡GNU/Linux a la medida!, Clasificación de Distribuciones, Historia en Árbol genealógico y Mapa mental de distros. Además las Implementaciones Venezolanas de distros como: HVLinux, Bluewall GNU/Linux, KnoppixMED, LinuxDoc, Latinux, GNU/Linux – Venezuela, Soliedelca, Lavicux, ULANIX y sus sabores, Kuntur y CANAIMA GNU/Linux, con algunas demostraciones y anexos las referencias a Sitios en Internet.

Duración: 1 hora académica

Titulo: Proyecto Canaima

Descripción: esta cátedra habla del proyecto Canaima surge como un proyecto para normalizar la migración a Software libre en al APN en Venezuela, en esta charla busca compartir las experiencia del proyecto Canaima globalmente no solo como un producto tecnológico sino como el estado ofreció la apertura a la comunidades de software libre para compartir saberes y ayudar a construir una base de socio productiva en tecnologías libres en Venezuela, aquí se comenta un poco de su historia, productos tecnológicos y organización social de la comunidad hasta el momento, encuentros comunitarios y recursos tecnológicos disponibles en redes sociales e Internet para colaborar virtualmente con el proyecto.

Duración: 1 hora académica

Titulo: Diseño Gráfico Digital en Software Libre

Descripción: esta cátedra habla de Alternativas Libres para Editor de gráficos; Editor de gráficos vectoriales; Editor de animación 2D; Editor de gráficos 3D; Editor de gráficos de post-producción; Editor de Fuentes; Maquetación y Publicación; Animaciones Web; Editores Web; con sus características técnicas y tabla de costos por licenciamiento de software. Además trata sobre Sitios en Internet y Demostraciones.

Duración: 1 hora académica

Tercer día – 12 de marzo

Titulo: Sistema de gestión de contenidos Plone

Descripción: esta cátedra habla de como crear facilmente usando el software de sistema de gestión de contenidos Plone ideal para creacion de Paginas Web

Plone es el mas longevo, poderoso, flexible, seguro y premiado sistema de gestión de contenido escrito en Python. Utilizado en sitios como Brasil.gov.br, CIA.gov y VTV.gob.ve, él es conocido por su seguridad e flexibilidad. En esta charla exploraremos, ¿cómo funciona él?, ¿cómo funciona su comunidad organizada?, y vemos como los usuarios exigentes con fechas límite de entrega le encanta Plone, ya que les permite no tener que inventar la rueda de nuevo cada vez que trabajan en la carga de contenidos en la Web.

Duración: 1 hora académica

Titulo: Traducción asistidas por computadoras en Software Libre

Descripción: esta cátedra habla de ¿Qué es la traducción?, describir los recursos del traductor, también como ha evolucionado hasta la actualidad la industria de la Lengua. Herramientas CAT (Computer-aided Translation), Memorias de Traducción. Se ofrece un análisis comparativo entre herramientas CAT privativas y libres donde se describen sus ventajas y desventajas, costo de licencias de software y soporte. También se ofrecen algunos recursos en la red y demostraciones.

Duración: 1 hora académica

Titulo: Montaje de un proyecto de Software Libre

Descripción: esta cátedra habla de ¿Cómo montar un proyecto de software libre?, lo que hay que hacer antes de comenzar el proyecto se explican los temas de: Lenguaje de programación, Plataforma, Especificaciones, Luego se debe definir algunas metodologías de desarrollos que se asemejen a SL y las herramientas de trabajo colaborativo para el desarrollo y control de gestión y proyectos para definir roles del proyecto, uso de recursos CVS, Lista de correos; tales como algunos recursos de la Web 2.0 disponibles para empezar a organizarse, y también sobre algunos FOSP-hostsites. Y una vez que esta listo la primera publicación se deben tomar en cuentas los aspectos legales, buenas prácticas al liberar, la publicidad del proyecto, el empaquetamiento y distribución (fuentes y binarios), el cuidado con la imagen, el soporte a usuarios: sitios de referencia, BTS, comunidades. Además trata sobre el Tiempo de dedicación al proyecto, Conclusiones, Referencias, Sitios en Internet, Demostraciones, Preguntas.

Duración: 1 hora académica

Del 13 al 18 de marzo

Actividades simultaneas de talleres de diseño gráfico y dibujo, exposición de arte. Mas información recepción de PDVSA La Estancia Maracaibo.

Para difundir a través de las redes sociales:

Google+: https://plus.google.com/u/0/events/c0shdk3hpl860gg9v90iq7lbsu0

Facebook: https://www.facebook.com/events/595560203864477/


Domingo 02 de marzo de 2014

Oliver Rivas

Oliver Rivas
orvtech.com

Conectarse a Twitter y Facebook usando TOR para proteger tu privacidad

The Onion Ring (TOR) protege tu privacidad haciendo que tu conexión navegue a través de una red distribuida por todo el mundo. Evita que alguien malintencionado o un gobierno totalitario se de cuenta que sitios visitas y al mismo tiempo que sitios malintencionados sepan tu ubicación geográfica.

La instalación en dispositivos Android es sencilla y configurar el cliente oficial de Twitter para que navegue por esta red es aun mas facil como lo puedes ver en este video.

Como ven el procedimiento es fácil y una vez instalada ORBOT en cuestión de segundos pueden tener el cliente oficial de Android configurado para que use como proxy HTTP la IP 127.0.0.1 a través del puerto 8118. Cabe destacar que a pesar de que mi tablet tiene acceso a root en ningún momento me pidio autorizacion para usar el modo super usuario asi que esto debería de funcionar en teléfonos o tablets sin acceso a root.

Las aplicaciones que use en este video las pueden descargar desde el Play Store de Google.



Y para Facebook como hago?

En el caso de Facebook recomiendo usar Tinfoil for Facebook y configurar el HTTP Proxy, Puedes descargar la aplicación directo desde el Play Store . Si quieres saber mas de esta aplicación hecha por un Venezolano no dejes de pinchar en Tinfoil Facebook: funcional y respeta tu privacidad.

Aquí les dejo una captura de pantallas que les muestra como configurar Tinfoil for Facebook, usen los mismos datos para el proxy que usaron para configurar twitter (127.0.0.1 a través del puerto 8118).

Configurar TOR en Tinfoil for Facebook


Desde la computadora.

Si también quieres mayor privacidad desde tu computadora puedes usar TOR Browser Bundle que es una suite the software que incluye el cliente de TOR y una versión de Firefox pre-configurada para usar este cliente. Tor Browser Bundle soporta distintas versiones de los sistemas operativos Windows, Linux y Mac OS X.

Miércoles 26 de febrero de 2014

Valencia Software Libre: Comunicado a favor de la libertad y neutralidad de la red en Venezuela

Viernes 14 de febrero de 2014

Jorge Ortega

Jorge Ortega
Joenco

Actualizar espeak en Debian Wheezy

Este es otro aporte de Leandro Benítez y lo comparto con ustedes.

 

Para actualizar Espeak, haremos lo siguiente:

1. Descargamos espeak de su página oficial:

http://espeak.sf.net/download.html

para esta guía es “espeak-1.48.02-source.zip”

2. Descomprimimos el archivo descargado.

3. Buscamos dentro de la carpeta descomprimida la carpeta “src” y eliminamos el archivo “portaudio.h”

4. Le cambiamos el nombre al archivo “portaudio19.h” por “portaudio.h”, desde la misma carpeta anteriormente abierta.

5. Abrimos un terminal/consola y entramos como superusuario (root).

6. Escribimos en el terminal/consola, lo siguiente:

find /usr | grep libespeak

esto nos informa donde se encuentra la librería compartida libespeak.so, en mi caso estaba en: /usr/lib/i386-linux-gnu/, como esta ruta es diferente a /usr/lib/ entonces debemos cambiar el makefile, que se encuentra en la carpeta antes abierta.

6. El makefile debe quedar de la siguiente forma:

————————–

DATADIR=/usr/lib/i386-linux-gnu/espeak-data

 

PREFIX=/usr

BINDIR=$(PREFIX)/bin

INCDIR=$(PREFIX)/include/espeak

LIBDIR=$(PREFIX)/lib/i386-linux-gnu

las lineas 3 y 8, son las únicas que se deben modificar en el makefile, luego que hayas hecho los cambios, guardas el archivo.

7. Ya que hemos realizado los cambios necesarios, en la terminal/consola instalamos los siguientes paquetes:

# aptitude install libpulse-dev portaudio19-dev build-essential

8. Cuando se termine de instalar los paquetes, vamos a la carpeta “src” que se encuentra en la carpeta que descomprimimos, escribiendo en el terminal/consola:

# cd Descargas/espeak-1.48.01-source/src/ y presionamos enter.

9. Al estar dentro de esa carpeta, haremos:

# make

y luego:

# makeinstall

10. Si nos comienza a verbalizar todo extraño, felicidades!, haz actualizado Espeak.

11. reinicia el sistema y disfruta de tu actualización!

Saludos a todos!!!!


Lunes 13 de enero de 2014

José Miguel Parrella Romero

José Miguel Parrella Romero
null pointer dereference

Surviving NYE: Times Square

Ailé and I spent the last week of 2013 travelling in the United States’ Northeast. We had decided on spending December 31st in New York City, but we wondered whether receiving 2014 in Times Square would be a sane decision. But we did it, and we loved it. And in the process, we noticed that a lot of blogs and webpages, as well as most of the people we met in New York City, actually discouraged it. So in true Internet spirit, we’ll share our learnings from a great evening with a million of our friends from around the world.

Spending New Year’s Eve in Times Square means different things for different people. Coming to terms with your expectations is the first step in this process. Is seeing the ball drop your main expectation? Or is it to be on TV? Or is it to receive party favors? Or to see fireworks? Or getting drunk with your friends? Or enjoy the artists that play during the evening? I would say that if any of this is a priority for you, then probably spending the evening in Times Square like we did may not the best option for you.

We committed to spending the evening, and receiving the new year in Times Square because we wanted to be part of it: being with strangers from around the globe, feeling the energy of 1 million people and just being dazzled by Times Square. We didn’t care much about Macklemore or Miley Cyrus, or about the fireworks, or even about the ball itself which frankly is a very small object when compared to the screens and everything else in Times Square.

With this in mind, there are options for everyone. You can reserve early in the year for one of the few rooms with a view, you can pay from a couple hundred to a couple grand for one of the parties (with no actual view), you can spend it elsewhere in New York City, like in Central Park, or, you can do as we did and join the public event in Times Square, the one that is actually broadcast on TV, and the one attended by some 40% of the people that are in Manhattan. Keep reading if you want to learn more about this option.

Surprisingly, there are few sources of information about what exactly happens in Times Square in NYE. One of the most complete sources is the Times Square Alliance which has a useful FAQ and a discussion on NYE parties and tickets, etc., but also a wealth of discussion on the actual public event. It might be worthy to monitor local news channels sites 72 hours before, as well as sources like Twitter.

But, since we found a lot of New Yorkers didn’t actually attend the party in Times Square, there are few first person accounts of how exactly this goes. So we’ll try to explain from our experience, and hopefully provide some useful insights if you ever plan to do this.

The first question is when to arrive. We arrived at 2 PM. By that time they had closed some 3 blocks and we were at 48th. Street. After we got in they closed 49th, 50th and so on all the way up to Central Park. This means we spent 10 hours there. After the ball drops, confetti rains and both Auld Lang Syne and New York, New York plays, the NYPD will allow people to leave. This is around 12:10 AM.

How do you enter the event? The event actually happens on Broadway and 7th. Avenue, so NYPD will close cross streets and put entry points on the 6th. and 8th. Avenues. Our recommendation is to take the subway and exit on the 50th or even the 59th, walk towards Times Square on either the 8th or the 6th Avenue and try to get in as up front as you can get. The worst option is to exit on the 42nd. and start walking north to try and find an entry point.

Once you get in, you’ll see pens set up and depending on the time, NYPD might have started allowing people in. There will be a metal detector wand and a bag check. Then you’re free to go stand wherever inside the pen you want. Our suggestions are to secure a spot where you can lean against the fences. Up front is best, because you have uninterrupted view. The fence helps to cope with the crowds pushing, you can lean on it, you can sit and spread your legs, etc.

Notice the crowd will be a living organism. People will start leaving when they realize they have to stand for 10 hours. People will definitely leave to use restrooms (nowhere to be found) only to discover that they can’t come back to the pen. All this will result in natural crowd movements. Every time someone leaves the crowd will push to the front, and depending on what NYPD says, even move to the pen in front of yours. Try to anticipate. Choose good crowd neighbors at least for the first couple hours. Be polite, smile!

Lack of restrooms does not necessarily mean you will stand on a puddle of urine and feces from other attendees, as some blogs say. We sat on the pavement most of our 10 hours there and we never had to cope with such a situation. Note we were in the front of our pen. The pavement is very cold, though. More on cold below.

For most of the evening there will be people selling pizza, water and hot chocolate. Drinks are a no-no because there are no restrooms, and pizza is a no-no because it will make you thirsty. If you have to, it’s something like $20 and I suggest you wait until late-ish 10 PM. Don’t wait TOO long, though, because NYPD will enhance security as midnight approaches and this includes not letting pizza to be sold. We had just one bottle of water reserved for both of us, had a pizza before 11 PM and had a few sips of water just before midnight. We also had granola bars for earlier in the afternoon.

The evening was very cold. We actually had something similar to snow for a few minutes when the sun was still up and then we had the fortune of a clear but actually very cold evening, around the -4C or so. Preparation was key. I had thermal underwear and snow pants, and then a thermal shirt, a T-shirt, a sweater, a synthetic fleece jacket and a heavy fleece jacket on top. I had ear muffs, a thermal hat and thermal gloves. We had double wool socks and both hand and feet warmers (feet warmers are not awesome, but hand warmers are amazing) Also, you will get a runny nose.

You have to think how you will kill 10 hours. I had bought a couple e-books to read on my Kindle app, but I did not read as much as I wanted as the gloves were not touch-ready. I had to control the phone with my nose. We talked a lot to each other (most of our crowd neighbors were Chinese, Japanese or Korean) and listened to music for a while. AT&T data service was not bad for such a big crowd. The event officially starts at 6 PM, and they will keep you entertained with some stuff like the sound checks, an hourly countdown, some videos, etc. We really liked the NASA NYE Video and the AP 2013 Review.

We learned some interesting things. For example, we knew that some people from some parties were allowed to go out in “expanded pens” 15 minutes before the ball dropped. They just didn’t knew which lucky ones were going to be allowed to do so. Also some bystanders were allowed entrance some 40-50 seconds before the ball dropped so if you just wanted to see the confetti and take a quick picture before the crowds were released, that’s also an option.

Going back to sleep requires preparation, too. Going underground is impossible and so is taking a cab. We just had committed to walk to Columbus Circle, but we were actually surprised that most people were walking towards Times Square and not away from it. So trying to walk against the crowd and within the NYPD barricades was a bit awkward. We did end up in Central Park near the Bolívar statue which was a photo-op for Ailé, and then were surprised that the Columbus Circle station for the Uptown 1 was not crowded.

And finally, was it worth it? Just take a look at this or this. It was absolutely worth it!