Posts Tagged ‘linux’


FAD Latam 2017: x3mboy’s Event report


Last week ( from 13 until 15 July 2017) I had the honour of attend the FAD Latam 2017 representing Chile, the country where I’m currently living. This FAD (Fedora Activity Day) was organized by Alex Oviedo, an Ambassador from Perú, with the intention of discuss several topics and problems that Latam community is facing. I’m going to divide this in 2 parts:

Organizing the event

At first, Alex come with this idea after a new that affect all Ambassadors in different ways: Council rip out the FUDCon lines from the yearly budget. A lot of emotions were dropped in meetings an emails. Having this out, Alex, as well as others, though that was our (Ambassadors) fault and then he came out with the idea of an activity to work in the internal problems, to cover the community part of our FUDCon.

At first it wasn’t easy, a lot of things needs to be done, a ticket, a properly wiki, also to convince other ambassadors that we need the event, and try to make them choose a representative per country. I try to help Alex as much as I can, but the accomplishment of the FAD is totally on him, that dedicate a lot of time and effort, communicating with the council, fixing the tickets, with FAmSCO, and finally putting 2 bids to choose where to run the event.

Right now, I’m very proud of him, he made something really good, almost without help, sending email. But mainly because he is worried about our Latam Community. Even fighting against time and flight prices. Finally we get the list of attendees:

  • Alex Irmel Oviedo Solis from Cusco, Peru
  • Tonet Jallo from Puno, Peru
  • Itamar Reis Peixoto from Uberlandia, Brasil
  • José Reyes from Panama City, Panama
  • Adrian Soliard from Cordoba, Argentina
  • Brian Exelbierd from Brno, Czech Republic
  • Samuel Gutiérrez from Managua, Nicaragua
  • And finally me: Eduard Lucena from Santiago de Chile, Chile

It was a hard journey, but we finally made it.

The event

The event was held in the Universidad Global del Cusco, where people was really interested in help a Linux Community in their city. We need to thanks their rector, who give us a warming welcome in a great welcome speech. After that we start by doing a SWOT analysis. A SWOT analysis is a methodology that allow team to identify identifying Strengths, Weaknesses, Opportunities and Threats, cross them and create strategies to improve the work an attack the weaknesses and threats detected, taking advantage of the strengths. We work during the first day we work identifying the 4 points:


  • Diversity (diversity of technical skills)
  • Strong Community
  • Initiative
  • Availability of tools


  • We don’t offer right solutions to users
  • Language barrier
  • Cultural differences
  • Ignorance of rules
  • Lack of presence in Colleges
  • Budget isn’t well managed
  • Lack of communication


  • Red Hat support
  • Presence on upstream lines in compatible projects
  • Impact generated for Fedora
  • College’s support
  • Possibility of show Fedora to students from different branches


  • Collaborator’s economic activities
  • Microsoft communities and use of the term “Open Source”
  • Greater presence of Ubuntu in colleges (users and labs)

We spent a lot of time talking about this topics, and we brainstorm a lot trying to figure it how to attack them. Finally, on the second day, we came with some strategies:

SWOT Analysis

SWOT Analysis

On the second day, we try to discuss about how to attack the events in a better way, to fit the new Fedora Mission Statement (thanks to Brian “bex” Exelbierd) and the Council point of view (again thanks to bex). Attacking in a better way the 4 questions that Council is now asking for funding events, and what these questions means. At this point, we understand what the no FUDCon in the budget means, and how the Council is looking for original ideas, and better and greater ways to people contribute and improve the Fedora Project. We came out with a new process, that will improve our internal communications and how we promote our events, taking advantage of our tools (fedocal and Fedora Magazine):

  1. Pre-event
    1. Create wiki event page
    2. Create a ticket
    3. Create event in fedocal
    4. Post in Magazine
  2. Post-Event
    1. Make reports
      1. CommBlog
      2. Wiki
    2. Request reimbursement

This will allow us to improve the visibility of the ambassadors work, both to the project and to the public.

On the last day we talk about budget and swag, where bex help us a lot, also Eduardo Echeverría (echevemaster) and Abdel Martinez (potty) join us in this discussion where we understand better how Council is funding the project this year, opening, for example, the door to fund other contributors aside ambassadors, trying to expand the vision of people about the Fedora Project. Talking about Swag, we hit the same wall that is always our great obstacule: Distribution. Even when we could find printing quality in our countries, the problem is that produce little quantities is expensive, also not all providers accepts the payment methods that the project have to pay, and not all contributors can pay and wait for reimbursement. Finally, we came out with a strategy that allow us to move to a central production, this suppose to allow us to save money and move those savings to distribution; and also, taking care about countries that have problems with mail and couriers, to produce swag in their places without worries, because the general case is solved and possibly with savings.

Special thanks to Neville Cross (yn1v), who takes a time to explain us how his community has been working and improving.

Final thoughts

It was a really long journey, with a lot of work, a lot of discussion, sometimes is hard to a group that diverse and with so many different point of views to make agreements and finally came with a solid plan, solid strategies and consolidate a great region work. I want to thank bex, who take the work and the time to come to our region and help us, his help is really appreciated and we hope he can come back soon. We really hope that a lot of people, and hopefully all regions, can use our work and the guidelines to help them improve their work.


The Final User


This is the first entry written in English in my blog. I will allocate some ideas about Linux, Community and, more than anything, about Fedora.

I want to thank the Fedora Community to let me be part of this great project.

Now, the article.

The issue

We, the old linux users are used to our environment, and we should understand what can be done and what can’t be done on Linux, limitations, advantages and everything related to our OS. With the pass of time we become power users and we forgot how is to be a new user.

When users come from Microsoft Windows, they have expectations, and they have things that normal users want to do in their OS, and more important: “THEY DON’T CARE ABOUT FREEDOM”.

The Ambassadors Project

Fedora project members had an idea to bring new contributors to the project. The Ambassadors are the representative of the project and they are the one who supose to attract new contributors to the cause, they are the face of Fedora. If we think a little on this, maybe we should supose that we (the ambassadors) should be the ones who understand the Final User, but this isn’t always true. In my opinion this is because of the issue I describe above: we forgot about the feeling of coming from another OS.


Desktop Environment

For me, the best example is the Desktop. When a user comes from Windows 10, and before it has Windows 7, they ask about the Graphics Effects. They normally come to Linux with low expectations, because “Linux is Ugly“. But they don’t know that we have “Peek” since at least 7 years, or the “Task View” since 5 or 6 years, the same is with “Action Center” or “Multiple Desktops”, and a lot of the New Features of Windows.

With this, the problem with Linux is the multiple choices. But how is this a problem? Well, we, as old linux users, tend to take defensive positions all the time, and this is not the exception. A normal discussion about the Desktop Environment can last 2 or 3 hours, just saying why a DE is better than other: XFCE is light, Gnome is more productive, KDE/Plasma is better looking, LXDE is light and modern, Unity is for Ubuntu users, Shell Desktops are the future, and a long list continue. Then the issue became present: We forgot the user.


Almost all multimedia files can’t be played without restrictions in Linux, at least no with only free software. This is because codecs are usually released with restrictions, just “free to use”. Almost all distributions have a workaround for this, in the form of a non-free repository, or a 3rd party repository, but I don’t remember a Linux distribution that have non-free codecs enabled out-the-box. This usually means that extra steps needs to be taked to make things work. Then the usual answer of old time linux users became present: “It’s not free”. Again the issue: We forgot the user.

Hardware Support

This is a hard point to bring to the table. Why? Because hardware support doesn’t depends on the community, it depends on the manufacturers. But this became a problem when a new user come to an install fest and receive the answer: Your hardware is not compatible and THIS IS YOUR FAULT. Sometimes I think: Really? I remember the first time I had a computer of my own and I want to install Linux, I didn’t ask about the BIOS, or the graphic card, or the most painful, the wireless card; I was just so happy to install Linux in MY computer. I’ve passed through a lot of forums receiving “google it”, RTFM and a lot of this kind of answers. That is where the issue become present: We forgot the user.


This is one of the big “missings” of Linux. Even when there is a lot of good games for Linux, like alien arena, 0 a.d. and so on; it’s not a lie that none of the most popular games came for linux. and won’t come soon. Steam and sites like GOG or have opened a door for Linux users, and now it’s a little better to be a gamer on Linux, but still we miss some of the titles that are released on Game Conferences. But looking again to the community, some of the more common answers are: “It’s not free” or “Gaming isn’t a need”, one of the answers that make sense is “dual-boot” but then the linux users look at you like a demon or an alien and you became an outcast. Again: We forgot the user.


This is my last example. It’s no a secret that MS Office is one of the most powerful tools that is created by Microsoft. With more than 20 years in the market and with a lot of users, it’s one of the biggest reasons for people to keep MS Windows in their machines. I know that OpenOffice (now owned by Apache Foundation) and LibreOffice (by The Document Foundation) are doing great efforts to bring a suite that can replace MS Office in the people machines and both have great features, but still the race is hard against MS Office. For me, having more than 10 years using Linux, it’s still hard to replace MS Office, even with Google Docs, because some things simply aren’t mature enough or the way to work with it it’s harder or take too much time.

It’s not FLOSS

All members of any linux community, or working for any FLOSS project need to remember how is to be a new user, and to understand what are the needs of the computer’s users. We shouldn’t let the pass of time to became us indolents, and forget how is to migrate from a privative OS.

Someone that want to listen the music that he convert in mp3 from his CD, or a teen gamer that want to play the latest Diablo, or just a mom or a dad that want to read some news, some emails, maybe check the facebook to have a connection with their family, a student that put all his effort to buy a new laptop and only can afford the economic serie of any brand. That final user need to be listened, and the answer for them is not freedom. You can educate them to freedom, but you shouldn’t close the door of something they want or need just because “It’s not FLOSS”.

P.D.: Final User or End-user is the same in Spanish, sorry that I missed that.


[bash-tip] Trabajando con fechas


Trabajar con fechas en una versión actual de bash es algo muy simple, el comando date de la mayoría de las distribuciones es bastante robusto (proveniente del paquete coreutils de GNU Project). Por ejemplo obtener la fecha del día previo al actual (ayer):

date -d=yesterday

Existen también formas de formatearlo según las necesidades, los parámetros se pueden leer el manual del comando (man date) pero los que yo más utilizo son los siguientes:

Parámetro Descripción
%d Día en formato dd (rellena el espacio con cero [0])
%m Mes en formato mm (rellena el espacio con cero [0])
%Y Año en formato yyyy
%D Fecha en formato americano (lo mismo que %m/%d/%y
%F Fecha completa (lo mismo que %y-%m-%d)
%y Últimos dos dígitos del año
%H Hora en  formato hh
%M Minutos en  formato mm
%S Segundos en  formato ss
%T Hora en  formato hh:mm:ss (lo mismo que %H:%M:%S)
%x Fecha en formato local

Para utilizar los parámetros se introduce un signo de suma “+” seguido de los parámetros, vale decir que lo que no es leído como un parámetro se imprime de manera literal, y el resultado es un string o cadena, esto para las asignaciones en scripts. Como pueden notar en la tabla, pueden ver la hora; es muy importante notar esto porque aunque existe el comando time, el mismo no es para mostrar la hora sino para mostrar el tiempo de ejecución de un comando o programa.


x3mboy@Liss ~ $ date +%d-%m-%Y
x3mboy@Liss ~ $ date +%D
x3mboy@Liss ~ $ date +%F
x3mboy@Liss ~ $ date +%T
x3mboy@Liss ~ $ date +%x
x3mboy@Liss ~ $ date +%D" "%T
02/05/15 10:37:09
Como pueden ver en el último ejemplo, si los parámetros van a estar separados por espacios en blanco, se debe colocar ese espacio entre comillas.

Personalmente utilizo mucho estos comandos en asignaciones de scripts, sobretodo cuando estoy trabajando con archivos que se generan diariamente, pero la razón original por la cual realicé este post es porque en versiones antiguas de bash no existe algo como la opción -d o el parámetro %x, es por ello que he tenido que aprender a manejar el comando date, pues algo que suponemos tan simple como calcular la fecha del día de ayer se vuelve algo un poco complicado. Les dejo este script que hice hace algunos años para trabajar en un BSD con el comando date, sirve para calcular el día de ayer:

Espero les sea de utilidad.

Be Free, Be Linux


[bash-tip] Instalando Turpial


Conversando por twitter con Wil Alvarez (@satanas82) Carlos Guerrero (@guerrerocarlos), sugirieron hacer un script de instalación de turpial (de hecho se pusieron más creativos, pero luego iremos con otros cambios), basados en el script de actualización del post anterior.

Bueno, hay muchas cosas en este script que no voy a explicar en este momento, pero lo más importante es el uso de los “if”. Les recomiendo que chequeen esto bastante bien, pues hay muchas cosas que notar en estos condicionales.

Bueno sin más preámbulo, el script:

No coloco el script directamente pues son más de 100 líneas de código.

Be Free, Be Linux


[bash-tip] Actualizando turpial


Desde que comenzaron las primeras versiones públicas de turpial (el cliente de microblogging) he estado participando en las discusones del grupo de desarrolladores de tan maravillosa herramienta. Para la última versión (v3.0) he estado haciendo testing y pues para estar al día con las actualizaciones es necesario actualizar 2 cosas: libturpial, el motor que mueve todas las conexiones; y turpial, el front-end de la herramienta.

El problema es que ambas cosas están por separado en github, y hay que actualizar cada cosa por separado. Por ello me he crado un script que haga el trabajo por mí. Lo dejo por acá:

USER_HOME=$(eval echo ~${SUDO_USER})
if [ `whoami` != root ]; then
echo Please run this script using sudo

cd $USER_HOME/libturpial
git pull origin master
sudo python develop
cd $USER_HOME/turpial
git pull origin development
sudo python develop

Lo único que tiene de especial este script es que chequea el directorio del usuario antes de convertirse en root para encontrar la ruta de los directorios, lo demás es algo de git e instalación de cosas con setupotools de python. Este script requiere tener instalado sudo en su sistema, cosa que si es un debian-derivated ya viene por defecto, pero en mi sistema (Fedora) no. En estos dos SO he porbado y funciona a la perfección, teniendo cómo único requerimiento que turpial haya sido instalado siguiendo las instrucciones de la wiki de desarrollo de turpial.

Be Free, Be Linux


[bash-tip] Condicionales


Una estructura muy importante a la hora de programar son los condicionales, también conocidos como if (inglés de “si” en el contexto de pregunta lógica “si voy, entonces voy en avión”). Y de eso se trata básicamente, tomar una decisión de que acciones tomar dada una condición. Este punto ya lo expliqué en los post de python, no voy a profundizar mucho en la lógica de los condicioneales, voy a ir directo a la sintaxis en bash:

if condición; then

condición es una experesión lógica, que devuelve verdadero o falso, pero en el caso de bash, que no es un lenguaje de alto nivel, evalúa 0 ó 1. Esto significa que:

if 0; then echo "Hola"

Siempre imprimirá Hola en la pantalla. También es necesario saber que para evaluar expresiones es necesario colocarlas entre comillas, y cualquier evaluación que devuelva 0 ó 1 es válida.

Tenemos una larga lista de parámetros que se pueden evaluar, cómo pueden notar en la tabla siguiente:

IMHO las más importantes son -a con la que puedes verificar si un archivo existe, -d con lo que puedes saber si es un directorio y las evaluaciones aritméticas -eq, -ne, -lt, -le, -gt y -ge que significan igual, no igual (diferente), menor, menor o igual, mayor y mayor o igual respectivamente.

Espero les sea de utilidad este pequeño tip.

Be Free, Be Linux


[bash-tip] Automatizar tareas


Lo primero que hace cualquier usuario linux cuando es novel (nuevo o newbie). es personalizar los comandos con alias. Pronto descubrirá que esta prática es muy mal vista además de ser insegura, y encontrará que lo más común es tener pequeños scripts que le faciliten la vida. Lo primero que tenemos que saber es que un script simplementes son instrucciones una después de otra, tal como las instrucciones o sentencias de un lenguaje de programación.

Veamos algo rápido de sintaxis:

Comenzamos el script con algo llamado “shabang“, simplemente consiste en decirle al interprete de comandos “ con qué se come” el script. Simplemente le decimos con que programa debe interpretar las sentencias dentro del script. En este punto resalto que un script es un conjunto de sentencias o comandos, uno debajo de otro, guardados en un archivo de texto. Los que han seguido mis entradas de Python me entenderán, y ya estarán familiarizados con el “shabang“.

Mi primer script fue el siguiente:

sudo aptitude -y update
sudo aptitude -y safe-upgrade
sudo aptitude -y clean
sudo aptitude -y autoclean

Muy simple, sin estilo, pero en ese momento hacía lo que yo quería. Luego de eso, simplemente darle permisos de ejecución, y ejecutar con ./:

chmod +x

Be Free, Be Linux