Lunes 01 de mayo de 2017

Alejandro Pérez

Alejandro Pérez
moving to linux

Flisol Panama 2017

Flisol this year was organized by Jose Reyes and Luis Manuel part of the new organization force in Panama, it was great to see all new generation of Fedora Panama members organizing events. While those are the faces at the events there are others working with them which make the team work.

For a while my activity has been watching new people organizing, and doing the events, which is a really good thing, we need to refresh and  recharge, plus we need to see new people in charge, it has been fun looking at Abdel playing the role of the elderly of the group couching and advising the young new generation of Fedora and Free Software fellows.

Getting back to Flisol, it was good to see new and old community members been part of the conferences and realize how some of the people in the local community has grow as professionals and as person.

Bruno Regno Floss-pa member shared with us the result of his work in the Green Freedom project, it provide 7 schools with computer rooms of 30 thin clients computer and server, running Ubuntu and xfce for desktop to provide students the skills to lean Open Office and some other Open Source tools.

Demostenes Garcia Floss-pa member demonstrate how to use GrapQL, it was nice a new tool to learn. Demostenes is working on an government agency where he is the head of the IT department he leads his team to use Open Source and Agile methodology on as many projects as possible, becoming an example of what can be accomplish on with Open Souce on the local government. You can see its work here

Ytzvan Mastino another Floss-pa member and entrepreneur from talk about DevOps.

Diego Tejera from give a talk about entrepreneurship with Open Source in Panama, something he has accomplish well. It is important to notice that he started Floss-pa and was involve on it for many years before starting his company, now is one of floss-pa sponsors, thanks for your support.

Julian Vega Floss-pa member from Chiriqui talk about Blender and later give a Blender workshop.

Gonzalo Nina from provide us a talk about ethical hacking and security.

 Vladimir Cespedes talk about Angular 4.0

Leonardo Esquema talk about reactive system and Frameworks.

Work shops of the day where:

Web Scrapping by Luis Manuel Segundo

Webapp with Meteors in real time by Mayron Torres

Marketing Campaing by Jonas Hernandez

So many new people and old ones sharing with the next generation of Floss-pa and Fedora members.

This time the event was hosted at Universidad Tecnologica de Panama  it was fun returning to this university and enjoy sharing with new students and teachers

I'm eager to know the new generation of people, it was fun. Many thanks to Ethical Hacking and Rootstack for the pizza and Alvaro Andrade for the dinner for the organization team. Many thanks to  Shelsy A who help with the design.

Sábado 25 de febrero de 2017

KDE 5.8x o 5.9x en Kubuntu 16.04

Kubuntu 16.04 es la base de KDENeon, la cual se podria decir que es la version oficial para el proyecto KDE y su entorno de escritorio.

Sabemos que la LTS tiene la version 5.5.5 - la cual se ha mantenido pulida de ha poco, pero hemos de saber que KDE LTS es la version 5.8.x y otra versiones mas nuevas que al momento de escribir este post esta en la 5.9.x,

Ahora, les muestro como actualizarlos de una manera mas simple y tener Kubuntu con las versiones de KDENeon sin tener que bajarte la imagen del disco.

Debemos mantener actualizada nuestra distribucion de Kubuntu 16.04.2 que la version mas reciente.

Lo cual notaremos que esta en la version 5.5x 
Procedemos a crear en un archivo con los repositorios que necesitaremos, lo cual en mi caso llame neon.list el cual colocamos en /etc/apt/sources.list.d/ o si desean en el archivo sources.list original de Kubuntu.

y hemos de agregar entonces las direcciones de las versiones de KDE más recientes los cuales son la version LTS y Corriente o Actual.

deb xenial main
deb-src xenial main
#deb xenial main
#deb-src xenial main

Procedemos a guardar el documento y realizamos una actualizacion de los archivos de repositorios, recordemos desbloquear los que querramos usar.

Tendremos que descargar la llave de verificacion: sudo apt-key adv --keyserver --recv 55751e5d no hay que preocuparse por la numeración final ya que al momento de dar la actualización de la lista se los facilitara como vieron en la imagen anterior.

 En este caso, nos mandara un error la version de 32bit (i386) lo cual no estan disponibles ya que solo se esta desarrollando para 64bit (x86_64) y hemos de quitarlo con: sudo dpkg --remove-architecture i386
  Como recomendación debemos desactivar el entorno grafico para que no mande error en la actualizacion utilizamos el comando: sudo apt-get dist-upgrade para que sea completa.
y tocara esperar que la actualización avance de manera natural, si notan que en la actualizacion les da alguna pausa puedes escribir: sudo dpkg --configure-a && sudo apt-get dist-upgrade si es necesario.
Al terminar la actualizacion, hemos de reiniciar el equipo y tendremos la version de KDE que seleccionamos actualizar ya sea la LTS o la Actual.
Como pueden ver en la imagen a continuacion el entorno de escritorio ya esta instalado.

En caso de querer usar la version Actual o corriente es solo comentar los repositorios del entorno LTS por los de la version Corriente y procedemos a realizar una actualizacion.

Al reiniciar, igual entonces tendras la version corriente instalada. 
Y ya tendras entonces las versiones mas recientes de KDE en Kubuntu al igual que las versiones de KDENeon.

Miércoles 25 de enero de 2017

Repositorios OpenSuse

Hace unos días (un mes mas o menos) había tenido inconvenientes con Opensuse que consistía en que los repositorios que trae por defecto el DVD de instalación no se me actualizaban y bueno.. estuve en una larga - larga agonía de "zypper ref" que no copia ejecutar ya que no avanzaba. En la cual que jamas se me ocurrio hacer un cambio de repositorios hasta que me lo aconsejaron y realize el cambio de direccion web en los archivos .repo oficiales.

Les comparto los que he utilizado en estos momentos y su procedencia.

NonOSS -->
NonOSS-Update -->
OSS -->
OSS-Update -->

Después de realizar el cambio todo se soluciono -- y pueden encontrar los de 42.1 y Tumbleweed que las próximas versiones

(Enlace Oficial de los Repositorios)

Domingo 08 de enero de 2017

David Moreno

David Moreno
dm's blog

Thanks Debian

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

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

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

[-- The following data is signed --]


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

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

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

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

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

With all best wishes,
David Moreno.

[-- End of signed data --]

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

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

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


Miércoles 28 de septiembre de 2016

Borrar Kernel Antiguos en OpenSuse

Llevo un par de tiempo en OpenSuse y bueno se ha actualizado la version de Kernel habilitado 2 veces y bueno estos pueden eliminarse si ya no los estas utilizando y no morir en el Intento.

Pues el comando es simple en terminal: rpm -qa | grep -i kernel en mi caso estaban las versiones:

Pues lo siguiente es dar: zypper remove kernel-default-4.1.12-1.1.x86_64 kernel-default-4.1.27-27.1.x86_64

No eliminar el kernel-firmware y la kernel-default mas reciente que tengan por logica.
Saludos a todos y espero les funcione.


Lunes 29 de agosto de 2016

David Moreno

David Moreno
dm's blog

Webhook Setup with Facebook::Messenger::Bot

The documentation for the Facebook Messenger API points out how to setup your initial bot webhook. I just committed a quick patch that would make it very easy to setup a quick script to get it done using the unreleased and still in progress Perl’s Facebook::Messenger::Bot:

use Facebook::Messenger::Bot;

use constant VERIFY_TOKEN => 'imsosecret';

my $bot = Facebook::Messenger::Bot->new(); # no config specified!
$bot->expect_verify_token( VERIFY_TOKEN );

This should get you sorted. What endpoint would that be, though? Well that depends on how you’re giving Facebook access to your Plack’s .psgi application.

Domingo 21 de agosto de 2016

David Moreno

David Moreno
dm's blog

WIP: Perl bindings for Facebook Messenger

A couple of weeks ago I started looking into wrapping the Facebook Messenger API into Perl. Since all the calls are extremely simple using a REST API, I thought it could be easier and simpler even, to provide a small framework to hook bots using PSGI/Plack.

So I started putting some things together and with a very simple interface you could do a lot:

use strict;
use warnings;
use Facebook::Messenger::Bot;

my $bot = Facebook::Messenger::Bot->new({
    access_token   => '...',
    app_secret     => '...',
    verify_token   => '...'

$bot->register_hook_for('message', sub {
    my $bot = shift;
    my $message = shift;

    my $res = $bot->deliver({
        recipient => $message->sender,
        message => { text => "You said: " . $message->text() }


You can hook a script like that as a .psgi file and plug it in to whatever you want.

Once you have some more decent user flow and whatnot, you can build something like:

…using a simple script like this one.

The work is not finished and not yet CPAN-ready but I’m posting this in case someone wants to join me in this mini-project or have suggestions, the work in progress is here.


Miércoles 27 de abril de 2016

Alejandro Pérez

Alejandro Pérez
moving to linux

Flisol Panama 2016

Flisol is a big event on latam, many communities join and celebrate and exchange free software and knowledge with each others and general public. Normal event will include free software installations, talks and workshops.

This year Flisol Panama was organized by Jose Reyes who took care of all organization, so many thanks for the job done,

Flisol  David on April 9 of this year hosted by  Universidad del Itsmo thanks for hosting the event on David, Kiara Navarro and me visit hosted the event, we present talks and share with the local community, which bring some new members to Floss-pa our Panamanian free software group and some of them showed interest on becoming Fedora contributors.

Blender talk by JulianVega

On Flisol official Date April 23 we celebrated it at the Universidad Interamericana de Panama  thanks for hosting it. While we did not have the normal attendance for this event  we have really interested crowd. Must interesting part of the crowd was to have 2 people interested on becoming Fedora packagers, both of them starting working to archive that task. Another interesting development was to meet a group of students who want to contribute with some software development and design for our local group Floss-pa, plus others who  wanted to contribute on organization and learn more about free software.

Special thanks to Gonzalo Nina who soon will become a packager and full Fedora Panama contributor.

So it was a good event with many things to learn and do.

Thanks to the people who work to make it possible and we hope to have new contributors doing some task on Fedora.

Miércoles 16 de marzo de 2016

Alejandro Pérez

Alejandro Pérez
moving to linux

Wayland not to Wayland, at least on Fedora 23 and comming Fedora 24

Wanted to try Wayland, since the beginning and been testing it from time to time, first when Fedora 23 was released, then some of my normal applications will crash at launch so it was no Wayland.

After reading there was no go for Wayland for the coming Fedora 24 decided to try it again, to my surprise this time all my apps run and response was good, so try it for a week to see if I can live with it for that time.

Found some issues, while not sure why, the copy and paste between some programs it is not quite working, most important to me was the gnome-terminal keyboard shorcuts for copy and paste did not work have to use mouse to do copy and paste while it is annoying, I could live with that, so keep playing with it for my daily task basically all other stuff normal.

But notice two big issues, on my normal day, my notebook has an external monitor so I'm on dual headed, first day started to work with Wayland did not notice it because started the notebook with the secundary monitor connected and everything works fine.

Then another day started my notebook outside of my desk and when arrive to my desk connected the secondary display it show as normal except that the applications on the secundary display have some issues with the mouse, once I click on the nothing happen then notice that all clicks was done on the application on my main display even do the mouse pointer was on the secondary display. So humm, solved by going into the control panel and switch primary display, that solve the issue.

What did not work for me and the more annoying bug was that some times I have to grab my notebook and move some place else to work, so disconnect secondary display and go to other room with all my gnome session and applications open so I can continue working, but not in Wayland, as son as disconnect the display gnome session shut down and all applications close, so found my no go Wayland while that can be manage by turning of the seconday display on control panel.

So, while appreciated the effort done on Wayland, it was the right call to delay it for Fedora 25. Wayland is not there for normal users yeat. But it is working better that before. Will run another try when Fedora 24 is release and later on.

Martes 13 de octubre de 2015

¿Que es QRDA? #QRDA @QRDAve

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

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

Luis en la Charla de Inicio de QRDA

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

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

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

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

Nuevamente Gracias por venir.

Lunes 14 de septiembre de 2015

La accesibilidad web para personas con discapacidad visual

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

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

Sábado 12 de septiembre de 2015

Instalar Samba en Debian

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

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

Luego modificamos el archivo de configuración de samba

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

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

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

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

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

Viernes 27 de febrero de 2015

Laravel 5 con vagrant en ubuntu

Las siguientes instrucciones fueron probadas y funcionan para Ubuntu 14.10.

Recientemente inicié a trabajar en un sitio web que usará Laravel 5 y decidimos usar vagrant para hacer el proceso de creación y configuración de nuestros ambientes de trabajo locales algo más simples.

A continuación les dejo las herramientas que estaremos utilizando:

Laravel: su eslogan lo dice todo "The PHP Framework For Web Artisans" que se puede traducir mas o menos así: El marco de trabajo en PHP para los artesanos de la web. Laravel busca ser simple y robusto, pero orientado a objetos, utiliza composer para manejo de las dependencias lo que le permite reutilizar código de otros proyectos (en especial symfony).

Vagrant: es una herramienta que permite crear ambientes de trabajo simples de configurar, reproducibles y portátiles, que emplean tecnología estándar y que son controlados en un flujo de trabajo único y constante, para ayudar a maximizar la productividad y flexibilidad de su equipo de trabajo. Por ejemplo: al iniciar un proyecto, en lugar de hacer circular un documento con los pasos que todos los desarrolladores tienen que seguir para hacer que la aplicación funcione en su máquinas (ambiente local), les pasamos una máquina virtual ya configurada y lista para usar, la principal ventaja de esto, aparte de facilitar el trabajo, es que todo el mundo tiene la misma configuración y no importa cuantos nuevos miembros se unan al equipo, todos usaran las mismas herramientas. Cabe mencionar que incluso podemos jugar con las configuraciones del servidor creando máquinas virtuales adicionales

VirtualBox: es un programa (software) de virtualización, es decir que nos permite crear máquinas virtuales a las cuales les asignamos recursos del sistema físico (nuestro computador). Vagrant usará virtualbox como proveedor para ejecutar las máquinas virtuales.

Composer: es un manejador de dependencias para PHP.


Debemos tener instalado todo lo que sigue, los pormenores de cada programa pueden ser encontrados en el sitio web respectivo, por lo que no entraremos en detalles:

  1. composer, de preferencia globalmente, ver detalles
  2. virtualbox 4.3.22, que se puede descargar desde aquí
  3. vagrant 1.7.2, que se puede descargar desde aquí

Crear un proyecto de pruebas:

Como mencioné antes, vamos a usar Laravel, por lo que ahora crearemos un proyecto nuevo, usaré composer para esto pero existe una alternativa:

cd ~/Projects
composer create-project laravel/laravel my-project --prefer-dist

La salida del comando anterior debería ser algo como lo siguiente (texto acortado por brevedad):

Installing laravel/laravel (v5.0.1)
- Installing laravel/laravel (v5.0.1)
Downloading: 100%

Created project in my-project
Loading composer repositories with package information
Installing dependencies (including require-dev)
Writing lock file
Generating autoload files
Generating optimized class loader
Compiling common classes
Compiling views
Application key [********MySuperSecretKey*********] set successfully.

Instalar y configurar laravel/homestead

Laravel Homestead es una "caja" oficial de Vagrant (Vagrant box), pre-empacada y lista para usar en tu ambiente local. No hay que preocuparse con dañar algo, pues si algo sale mal podemos ¡destruir y recrear el ambiente de desarrollo en minutos!

El siguiente comando descargará la caja laravel/homestead, esto puede tardar algún tiempo:

vagrant box add laravel/homestead

Instalamos homestead en nuestro sistema globalmente:
composer global require "laravel/homestead=~2.0"

Inicializamos los archivos de configuración de homestead:
homestead init

Editamos el contenido del archivo ~/.homestead/Homestead.yml
homestead edit

Para más detalles sobre las configuraciones pueden consultar aquí
Aquí dejo un ejemplo de mi configuración para my-project en el archivo ~/.homestead/Homestead.yml:

ip: ""
memory: 4096
cpus: 1

authorize: ~/.ssh/

- ~/.ssh/id_rsa

- map: ~/Projects/
to: /home/vagrant/Projects

- map:
to: /home/vagrant/Projects/myproject/public

- homestead

- key: APP_ENV
value: local

# blackfire:
# - id: foo
# token: bar
Vale la pena mencionar que el archivo Homestead.yml es global así que al añadir nuevos proyectos, se debe modificar ya sea para agregar dichos proyectos o reemplazar los anteriores

Antes de poder acceder a nuestra máquina virtual tenemos que modificar el archivo hosts, para añadir una línea ( que nuestro sistema operativo sepa la forma de resolver el dominio a una dirección ip, esto normalmente se haría en un servidor de nombres DNS, pero para nuestro ambiente local no hace falta.
sudo nano /etc/hosts

A continuación un ejemplo de mi archivo /etc/hosts: localhost myhost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Ahora lo que resta es ir al directorio donde está instalado Homestead y ejecutar vagrant up:

cd ~/.composer/vendor/laravel/homestead/
vagrant up

Asumiendo que todo a salido bien, la máquina virtual con su aplicación debería estar funcionando y debemos poder acceder en nuestro navegador preferido a la dirección, sino pueden revisar la sección de problemas conocidos

Problemas conocidos:

  • He escuchado comentarios de las versiones de Vagrant (1.7.2) y VirtualBox (4.3.22) afectan en gran medida, por lo que es recomendable mantener ambos actualizados
  • En Ubuntu, tuve el problema de que algunos módulos del kernel no cargan correctamente, la solución, editar el archivo /etc/modules y añadir los módulos siguientes uno por línea: vboxdrv, vboxnetadp y vboxnetflt, por ejemplo:

    #virtual box module

    Además para no tener que reiniciar cargamos los módulos mencionados:

    sudo service vbxdrv start
    sudo modprove vboxnetadp
    sudo modprobe vboxnetflt

Domingo 07 de diciembre de 2014

Instalar y actualizar ack-grep en ubuntu (dpkg-divert)

Hace poco actualicé Ubuntu a la versión 14.10 en mi laptop y traté de actualizar ack-grep pero este proceso siempre fallaba con el siguiente error:

package ack-grep 2.12-1 failed to install/upgrade: trying to overwrite 
`/usr/bin/ack', which is the diverted version of `/usr/bin/ack-grep'

Después de investigar un poco recordé la guía oficial de instalación de ack-grep recomienda renombrar el paquete posterior a su instalación para que sea posible llamar dicho programa simplemente escribiendo ack en lugar de ack-grep, lo que la guía no dice es que esto causará problemas al tratar de actualizar el paquete, al menos es lo que me pasó después de actualizar Ubuntu.

Instalar ack (guía oficial)

Esta es la forma recomendada de instalar ack-grep en Ubuntu (

Primero necesitamos instalar el paquete:

sudo apt-get install ack-grep 

Y luego, por conveniencia, renombramos el paquete instalado:

sudo dpkg-divert --local --divert /usr/bin/ack --rename --add /usr/bin/ack-grep 

Este comando causa que el paquete sea renombrado localmente y si se ejecuta sin problemas están listos para usar ack

Acerca de dkpg-divert

dpkg-divert crea una "desviación", en este caso local, que cambia el nombre de ack-grep por ack, si ejecutan el siguiente comando:

dpkg-divert --list |grep ack

verán algo como lo siguiente:

desviación local de /usr/bin/ack-grep a /usr/bin/ack

si quieren eliminar dicha desviación puede usar:

sudo dpkg-divert --remove /usr/bin/ack-grep

y deberían ver el siguiente resultado si todo sale bien:

Eliminando `desviación local de /usr/bin/ack-grep a /usr/bin/ack'

Instalar ack (mi recomendación)

El principal problema con la guía oficial es que no dice nada sobre remover la desviación y los posibles problemas que puedes encontrar, y lo cierto es que prefiero usar "ack" antes que "ack-grep" así que usaré un alias.

La instalación ack-grep es igual:

sudo apt-get install ack-grep 

Ahora vamos a crear un alias y para esto editamos el archivo de configuración de nuestra consola de comandos, por defecto en Ubuntu sería ~/.bashrc

nano ~/.bashrc

y añadimos un línea como la siguiente al final:

alias ack='ack-grep'

Para que el cambio sea visible hay que recargar la terminal, lo cual vuelve a leer el archivo ~/.bashrc, por lo general lo más simple sería cerrar la ventana del emulador de terminal o podemos ejecutar:

exec $SHELL

Y luego debemos poder ejecutar ack de forma normal.


Aunque la guía oficial ofrece una forma simple de hacer que el comando ack esté disponible para todos, crear una desviación local puede causar problemas y a menos que sepamos la forma de usar dpkg-divert podríamos terminar con un paquete roto en nuestro sistema.
Mi solución tiene la ventaja de que no afecta futuras actualizaciones y aunque el ejemplo solo afecta la cuenta de un usuario, solo haría falta actualizar el archivo /etc/bash.bashrc (o el equivalente para el shell que esten usando) para hacer este alias accesible a todos los usuarios; cabe resaltar que para mi solución ack está disponible para todos los usuarios si invocan al comando ack-grep sin necesidad de crear un alias.

Lunes 15 de septiembre de 2014

evironment specific wordpress configuration

Everyone who has ever setup Wordpress knows the wp - config.php file and all settings that you can define there, this works fine to configure your wordpress instalation on any given environment but there are times when we have to work on different environments or stages as your applications is developed, tested and installed on production.

I have worked on companies that have one local environment per developer, then one for QA(quality assurance), another for staging and finally other one for production, in some cases there is a development environment where all development code is merged so developers can test their changes with what others have done, there is not a right answer here but one thing is for sure you don 't have the same settings on each of those environments and you don' t want to, here are some reason why that is the case :

  1. your local working copy: you want to be able to do just anything and you don 't care about database access rights so is usual to setup for example mysql root account without password.
  2. staging environment: you want to configure your database and the settings of your application to be as close as production as possible but this environment is accessible to a lot of people like: QA, software architects,  system administrators and perhaps even developers so you want to keep things simple and share easy to remember passwords with those who need them.
  3. production: this is the place that you want to keep protected, very specific user access rights, security policies, strong passwords, and so on. Maybe only certain sys admins whose are trust worthy can access here and see the application event log and change/install/update any required software.

With all of that being said here a simple example of a possible configuration of database users and privileges using MySQL 5.5.x, see here for a complete list of all supported Privileges and how to grant them.

environment user name permissions
local root ALL
staging root ALL
production root ALL
production app_user SELECT, INSERT, UPDATE, DELETE

Now let's say that you want to use root on your local without password, on staging you want to configure qa and use app_user for production.

Here is an example of your wp-config.php file for production, is very likely that you will just provide an example with place holders, then a sys admin will replace with actual values and deploy the final file to production environment.

Now the questions is: how do we allow different settings on staging and local environments? some people will just edit the config file to adjust it for every environment however this is very dangerous because you could end up overwriting one or more of those files and if you do override production your site will not work.

My suggestion/solution
inspired on this wordpress plugin I got the idea of defining an stage constant and then use that constant to load an environment specific configs file, another way could be just checking if an environment specific file existed but I think using a constant is better.

So we need to update our wp-config.php file making sure that it contains the WP_STAGE constant and that this is used to load the right configs file, here is how it looks like:

And this is how the wp-config-local.php looks like:

As you can see if you define some value for WP_STAGE constant and you create a file named like: wp-config-{WP_STAGE}.php the original (production settings in this case) will be ignored and your stage specific settings are loaded instead.

You may use local settings as default and create an specific version for production and staging. In my example I am loading and external file OR what is defined on wp-config.php so If something is required in many environments I will have to redefine it as many times as it is required, you could "move" this common setting to wp-config.php outside of the if block. In the worst case scenario if by accident you upload any of your environment/stage specific configs to production it will not be used unless your WP_STAGE constant is also changed and your production files are not going to get overwritten.

Miércoles 14 de mayo de 2014

Jose Antonio Gonzalez

Jose Antonio Gonzalez

MOTO E Y MOTO G LTE debutan en Londres.

Desde la ciudad de Londres hoy en la mañana se hace oficial el lanzamiento de MOTO E y MOTO G LTE   ambos montados con el sistema operativo  Android 4.4, KitKat y con la potencia de un Qualcomm Snapdragon 200 with 1.2GHz dual-core A7 CPU Adreno 302 400MHz single-core GPU. <!--[if gte mso 9]> Normal 0 21 false false false ES-TRAD X-NONE X-NONE

Viernes 11 de enero de 2013

Jose Antonio Gonzalez

Jose Antonio Gonzalez

PowerCam: A Million Shades of Fun!

En este video se resumen muchas de las bondades de esta app una buena alternativa a instagram la cantidad de filtros o efectos que puedes aplicar en tiempo real   uno de mis favoritos es los Collage  y luego de haber encontrado el efecto indicado lo puedes compartir a travez de twitter , facebook , flickr o email con un par de toques en la pantalla. esta app esta disponible para iphone,
Jose Antonio Gonzalez

Jose Antonio Gonzalez

El Toque: Kidults, no quiero o no puedo irme de casa

Un tema muy interesante tocado por El toque de RADIO NEDERLAND un tema muy in

Jueves 20 de octubre de 2011

Gaddiel Espinosa

Gaddiel Espinosa
Gaddiel Espinosa Weblog



Gaddiel Espinosa

Gaddiel Espinosa
Gaddiel Espinosa Weblog

Como hacer un tar remoto y traer de regreso el archivo en una sola conexión SSH (En Unix)

implemente haciendo

ssh root@[Maquina] “tar -zcfP archivo.tar.gz [AlgunDirectorio] &> /dev/null && cat archivo.tar.gz” > archivo.tar.gz

noten que desvio la salida de errores y la de output a &> /dev/null para evitar basurilla, luego simplemente hacemos

un cat en el server remoto y luego desviamos la salida estandar del comando entero de SSH en un simple archivo.

Asi nos queda de forma local un archivo tar.gz totalmente pristino

Miércoles 21 de septiembre de 2011

Gaddiel Espinosa

Gaddiel Espinosa
Gaddiel Espinosa Weblog

Instalación de paquetes rpm

rpm -q (me dice si este paquete ya esta instalado o no)

rpm -qa (me dice todos los paquetes que están instalados)

rpm -i (instala el paquete)

rpm -e (desinstala el paquete)

rpm -ivh (para instalar y ver el progreso)

rpm -Uvh (para instalar y actualizar el paquete)

Jueves 23 de junio de 2011

Aristides Villareal

Aristides Villareal

Archivos temporales de google chrome en ubuntu

Encontrar archivos temporales

Google Chrome /home/tu-usuario/.cache/google-chrome/cache
Chromium /home/tu-usuario/.cache/chromium/cache
Mozilla Firefox /home/tu-usuario/.mozilla/firefox/xxxxdefault/cache

Miércoles 22 de junio de 2011

Aristides Villareal

Aristides Villareal

lista de paquetes instalados


dpkg --get-selections | grep -v deinstall > ubuntu-files
Ésto nos genera un archivo llamado ubuntu-files, el cual contiene la lista que deseamos.
Para luego instalar todos estos paquetes en las otras máquinas, bastará con llevarnos este fichero a dichas máquinas y ejecutar:
sudo apt-get update
sudo apt-get dist-upgrade
sudo dpkg --set-selections < ubuntu-files
sudo dselect install
Ya tenemos una nueva máquina que tiene una réplica exacta de la instalación de la máquina plantilla.
Nota: Si te aparece que el comando dselect no se encuentra, instala el programa con
sudo apt-get install dselect
Aristides Villareal

Aristides Villareal

Ver informacion del hardware

sudo apt-get install sysinfo

Viernes 25 de febrero de 2011

Sebastián Cervantes

Sebastián Cervantes
Notas de Mr. Shadow

Document Freedom Day 2011

Document Freedom Day (DFD) es un día mundial por la liberación de documentos. Será un día de esfuerzo a nivel local para educar al público sobre la importancia de Formatos de Documentos Abiertos y Estándares Abiertos en general.

Hay muchas maneras de involucrarse en el DFD 2011. Algunas de estas son:
  • Poniendo un banner en su sitio web
  • Escribiendo una entrada de blog
  • Organizando un evento en tu ciudad
  • Ayudando a la campaña financiera 
Este es el cuarto año del DFD y el primero en Panamá. Cada ultimo miércoles del mes de marzo se lleva a cabo esta importante fecha para promover el uso de Formatos de Documentos Abiertos.

En la provincia de Coclé este año la fecha será movida del 30 de marzo al 2 de abril y formará parte de las actividades previas al FLISoL.

Martes 08 de febrero de 2011

Sebastián Cervantes

Sebastián Cervantes
Notas de Mr. Shadow

Matrix en Windows XP

Alguna vez se han preguntado que hubiera pasado si la Matrix corriera en en Windows XP??

La respuesta es esta.

Si alguien lo consigue en español o subtitulado me avisa.

Lunes 07 de febrero de 2011

Sebastián Cervantes

Sebastián Cervantes
Notas de Mr. Shadow

Humor Geek

Aquí les dejo un par de chistes Geek para liberar el estrés XD

Oiga, usted ¿Por qué no ha levantado la mano?
Porque yo no utilizo Windows.
El profesor, extrañado, preguntó de nuevo:
Vaya, y sino utilizas Windows ¿Que Sistema Operativo utilizas?
GNU/Linux. -Respondió orgulloso-
El profesor, cuyos fanáticos oídos no podían dar crédito a algo así, exclamó:
Pero hijo mío ¿qué pecado has cometido para utilizar tal basura?
El alumno, muy tranquilo, le respondió:
Mi padre es informático y usa OpenSuse, mi madre es asesora en seguridad y usa Debian Linux y mi hermano estudia Física y utiliza Linux Mandriva, por eso yo también utilizo GNU/Linux remató orgulloso y convencido-
Bueno, -replicó irritado el profesor- pero ese no es motivo para utilizar Linux. Tú no tienes porqué hacer lo que hacen tus padres. Por ejemplo, si tu madre se prostituyese y se drogase todo el día, tu padre se tocara los cojones, bebiese como un cabrón y traficase con drogas y tu hermano atracase comercios y robase a abuelitas, entonces, ¿tú qué harías?
Seguramente instalaría Windows.

Un estudiante de ingeniería en computación enseña un programa al profesor y le pregunta:
"Profesor, ¿Dónde está el error? ¿En qué parte del código?" El profesor mira el programa, luego mira fijamente al estudiante, mueve la cabeza lentamente de izquierda a derecha y dice:
"En tu ADN".

Y Dios dijo:
No es bueno para el Programador estar solo.
Y tomo un hueso del cuerpo del Programador y creo una criatura que buscaría al Programador, lo admiraría y amaría las cosas que hiciera el Programador.
Y Dios llamo a la criatura EL USUARIO.

Un ingeniero de Microsoft, uno de Intel y un programador de Linux se encuentran en el lavabo. El de Microsoft acaba primero, y a la hora de lavarse las manos lo hace a conciencia, con mucho jabón y agua, usa un montón de toallitas de papel y dice: Los de Microsoft, lo que hacemos lo hacemos bien.
El ingeniero de Intel, también se lava a conciencia, pero utiliza muy poca agua, muy poco jabón y para secarse la esquinita de una toallita de papel. Cuando acaba dice: Los de Intel, además de hacerlo bien, lo optimizamos al máximo.
El programador de Linux, sin lavarse, mira a los otros dos y dice: Los de Linux no nos meamos en las manos...

Y por ultimo un video de un tetris humano

Y como ñapa un jueguito de PONG jajaja

Espero les haya gustado