FLISOL 2015, review of the event

This year we accomplished another milestone, by we I mean the Tequila Valley Cancun group. We finalize a new FLISOL event. This one with way more support than the previous one. Although there are still a laundry list of things to improve, this definitely was a great effort, and an opportunity to evaluate how well we can play together.

The Free software installfest in Latin America got a great amount of attendance, mainly because this time we implement a press release which helped us gain an exposure we haven’t got before.

This time we had a platform to coordinate the tasks that were needed for the event. A type of canvas digital board called Trello. This gave us the chance to be able to delegate responsibility and improve our continuation.

Another big lift was the sponsorship from a major company that allowed us to not worry about space, and infrastructure (Desk, chairs, tables, etc). Which by the way, were top notch, although it’s a bit odd that in the end we couldn’t really used it as intended and end up handling the same projection presentation.

On the other hand we had a lot of things we really missed specially on promotion:

  • Visit universities and high schools, we missed many of them.
  • Academic ambassadors, people that help us from these schools.
  • Visit companies and provide a good outline of what the event is about for them to get there.
  • Promote it on more radio stations, TV shows and newspapers.

We also could have work out better on scientific software as well as games. The demos were something that we could have organize better not to say we missed showing off the VoIP, Media Center (to a degree) and the overall Linux Desktops.

Swag was something that we rushed in the end, but with better support this could have been much better. It was great we got T-shirts but with better swag we would have got USB with free software in it, as well as other things.

In the end what we need to do is also reflected on how this can benefit TQVCancun and I think that invitations were not offered as open as I would have wished for. To invite people to the group and make them members is something that could have helped the survival of the group and that is something we would need to pay more attention to in the future.


Installing Phoenix tv through the Fusion app on Kodi

So during the @FLISOL event which by the way we had a great attendance. We were able to give a small talk about Kodi.  Kodi is well known on the open source community but maybe people from other communities or none communities might not know about it.

So the big promise is to convert your TV, any TV into a smart TV.

With the power of GNU/Linux, Kodi is a great embeded device capable of having the world of communication and information to any TV, digital or analog. Yes, the use of some addons you might be able to get channels from Japan to Jamaica or from Brazil to Botswana.

All these for the price tag of 50 dls (Raspberry + Hdmi cable). But in reality, the software is really where is at, since you might want to have a cheap hardware but without the software, it wont really work as good as it deserve to work.

Here is where the real power of open source software shines. Get all your channels in an open source fashion. No need of hacking pirate streams, or subject yourself to heavy advertising and viruses. Not only that but you can also bring digital content which has a higher quality of content to your TV. This is a true device for Internet TV. The biggest podcasts and shows from youtube are on your TV with one click. All your Youtube history subscriptions to favorite channels can be watch from your couch.

Kids can get their favorite cartoons, and their favorite shows pre-recorded and 24/7 available. Same as even the maids can watch their novelas. 

So enough sales pitch, what is Kodi?

Kodi is an open source software, that can be installed on any OS and has been ported to all architectures like Intel, Power and Arm.  OpenElec is a distribution that is specially tailored for Kodi. You can install it on your apple tv, your roku box, or your android device.

Installing openelec you will need an SD card, is as easy as using dd openelec.iso /dev/sdX (where /dev/sdX is the location of your SD card).

After installing you only need to boot from it to see the xbmc default interface. Go to System -> OpenElec and Connections will show you the hotspots around the location, choose your home wifi and insert the password and you are on.

You could load your media to the SD card, or over the network and that would be enough, however Kodi have a huge list of plugins and addons. With those addons you are able to find streams and pre-recorded shows from popular internet shows, such as TWiT.TV and Jupiter Broadcasting. Other big content websites like YoutubeUstreamDailyMotion will also be available and easy to reach.

There is also a bunch of independent media that you can have access to including classic creative common material like from Archive.orgWikimedia, Jamendo, Magnatune etc. Finally yes, Live TV is possible and PVR addons are also available. The IP-tv features the addon regarding addons including Addon Installer -> Phoenix.

Distributed Source Control systems in FLOSS communities

Git logoThe final instance of the posts about the different tools used by an open source community is the core and most important part. After all software is usually ran by code. And code is what gives developers the upper hand in using the final liberties of the free software rights. The right to modify it’s code.

So how does people modify it’s code? Well there are some standard tools that allow to keep track of all the modifications of the code. These systems are called differently but you can identify SCM, or DSCM which enable developers to perform ‘commits’ on the code and keep a version of those modifications.

Here is an example, lets assume this story is being modified by 3 developers: john, patric and bob:

When I was little I had a pony.

John comes and add:

When I was little I had a pony, the pony was named katy.

John has created a new version of the story, however the previous version still exist and patric can compare the new version to the old one. The tool used here is called, diff for differential:

Ver #01 – – When I was little I had a pony.

Ver #02 ++ When I was little I had a pony, the pony was named katy.

Patric can see here where has this been modified. He can apply corrections to it by renaming the pony katy to Katy for example, and Bob could eventually see the version 02 to the new 03 version, or 03 to 01 and see how it’s different.

Code in software behave like this except it also take into account the history of the files and folders itself.

A DSCM system will usually have plugins to connect it to the web. This makes it easier for people to see and learn how the version management take place. If you ever been in sourceforge, google code, or any big open source development project you will be able to see this systems.

More to it, the DSCM could be connected with mailing lists and provide email notifications on any change happening on the source tree (what lives in the DSCM system).

Programers more involved with things like Github can be more related with how these source trees work, and how branches, and forks, take place. Github is a service tha provides some kind of social media withing the plain Git vesion control features as well as insert an Issue tracker to it.

Here comes a big difference in development, usually Git projects tend to be more distributed, while other versions of DSCM systems like Subversion, or CVS were monolitical. The difference is simple, while the code resides on your computer as well as on the system everytime you do a checkout, in git the changes are handled in a more distributed fashion as opposed to the earlier systems. This is why Git right now is the premier and favorite control.

However not all projects use git, and for the ones that don’t usually there was a level between been a commiter and being a casual programer doing some ‘hit n run‘ code. Meaning a random patch, but don’t expect to contribute again. These ‘hit n run’ programers usually couldnt submit their patch to the source tree, so a different system was used in that case. The issue tracker.

The issue tracker serves for creating and keep a track of issues, whenever is usability, documentation, testing and yes, programming bugs. A programmer that found a bug and fix it on it’s own, but holds no attachment to the project, will use the Issue tracker to report the bug and also attach a PATCH. This is the bit of code that was modified and is up for the team of developers to integrate it back into the source tree.

In a community there was a criteria to upgrade casual developers to commiters when they scored a certain ammount of succesful patches, and some other protocols were met (like signing a license code agreement) so the project can legally stand about the status of the code.

Commiters usually were required a gpg key to be able to sign their code, and be able to be approved by the DSCM system, otherwise the commit was rejected. This is also a key component of the FLOSS developer. More information could be found on their wiki stating each step of the way on becoming a contributor, but for the most part. The cycle is similar on all projects.

Getting started with mailing lists

Mailing lists
Lists are core of the community.

There are 2 different way to approach this topic, the technical part of mailing lists and the behavioral aspect of it. I’ll quickly go through the first one.

A mailing list is a mechanism where a lot of email address resource to a list address to replicate the message throughout the subscribers. It can be delivered in two modes, as single email (the preferred one) as summary which compile emails from the week or month into one single email.

To join a mailing list, there are two possible process, through the list website, or through email process. The second one is usually the more common, and the exercise go like the following:

  1. Send an email o the list suffixing ‘-subscribe‘ to the recipient. No subject or content necessary.
    ex. mylist-subscribe@domain.com where ‘mylist’ is the recipient
  2. Expect a reply from the list asking for verification, the content of the email have a URL which you can click to verify
  3. Alternatively you can reply back to the received email.
  4. Expect a confirmation-welcome email.
  5. Send your first email to the list to the list address mylist@domain.com

Now the behavioral part

Of course your motives to joining the list might vary, if you are looking for help, you might got to a list aimed at users or support. While if you want to contribute, you might look for dev which will focus on development, larger projects might have some qa for quality assurance.

So first lesson is understanding what information might be useful, again this depends on your porpoise and type of list you are on. But as a general rule, try to: focus on the information relevant to the reader, not to you.

In other words, avoid giving irrelevant information, although you might think that giving more information is better, too much information could make the reader hard to get to the point. So, avoid the spam-ish info. Information like your system specs could be valuable, make sure you show the issue first and compliment the main information with more details.

Second lesson is try to participate, voting, call for help, call for support, documentation, and other areas could be great first contributions to the community. More than asking where to start (although nothing wrong with this), try reviewing the project wiki, or documentation which will probably have you covered. Instead try to ask something along the lines of that information, or even better, comment on your first contribution to get some feedback on it.

Reviewing the DSCM (like git, svn) comments could become a great way to review code, provide patches, and get involved with cleaning up code. From comments on the class, function or modules, to refactoring (depending on your skill) and optimization.

If you think your skills or the code tree is too much to understand it. Make sure you can focus instead on the final product. Downloading and compiling (or installing) could provide good testing reports on ‘so called’ squashed bugs. Copy your comments to the list (QA or dev). This will only need power users (for compiling) or regular users (for regular install) and provide your own feedback.

A list might flood your inbox, so using filters/labels might be good to keep the traffic off your regular email. Reading emails even if they are not target to you is in general a good practice. Even if you don’t completely get it, it will help you understand what’s going on with the community. To accelerate these process, you can review the archives.

Scanning through months of conversations can quickly open your eyes with the way the community behaves, evolves and where is going to. Usually go to the signature of any email to go to the site of the list, like: domain.org/cgi-bin/mailman/listinfo/flisol

You would be able to identify the “About” section with the line: To see the collection of prior postings to the list, visit the (mylist) Archieve

A table containing months, type of order by: thread, topic, date and author. This will make you easily read the list, even if it might not be the best to search through it.

Learning about communities

Through my experience with developers and open source experts, I found something very curious. In the end, all I have seen are power users. Usually the computer enthusiast is divided by developers and users, however there are so called developers, but they are really users of a language. But (at least in public) they are only users of a language, their open source expertise as far as using Linux as their developer platform doesn’t exceed to the contribution part on not just their favorite language (which will probably be done on a different language) but to other projects built on that language.

The sad reality is that open source enthusiast don’t always grab the concept of a community. Usually community becomes something that is more socially accepted as a user group, even their blogs usually focus on new libraries, technologies and modules to use. Rarely is about a project community where gyrate around a source tree, with a product that is compiled and released on a scheduled manner.

So, for example, Big Joe who is a great FLOSS advocate and use PHP-MySQL for all it’s clients and do it on his GNU/Linux servers and wears a Ubuntu t-shirt and give advices on why everyone should use Linux. He has even gave talks about PHP development techniques, security on the language and gives the green light to trying new modules and frameworks for its development.

Yet Big Joe, however, has never imagine on even getting in touch with the people at PHP.net, has never even compiled the source code of the language, or know how to. He doesn’t even know who build what part of the language. In his head, he might even ridicule the idea of taking time off his clients to dedicate in such a task, as the language is good enough, for his needs.

When confronted, Big Joe admits that his knowledge of PHP would be useless that looking at the source tree is based on another language, C. However given his big and deep knowledge of PHP, he should be able to look elsewhere where PHP is proven to be the language of choice, a project like Drupal, which is a very popular CMS could present somewhere where he should feel more competent to work upon. The Drupal source code is in fact made out of pure PHP code, many hundred of lines of code.

Big Joe now has 2 problems, how will he be able to read all that source code? And where should he start?

Maybe Big Joe would feel Drupal is a waaaay too big of a bone to chew on. So he has other options. Sourceforge has hundred of projects of different size to contribute to. Projects like DokuWiki, or even lesser known projects that could use his help.

So Big Joe found his project where he can read up easily and contribute with his magnificent PHP skills. However there is another problem, Big Joe also doesnt know how to start. And here is where the real learning needs to happen. For all his years of apt-get install and tar -xzvf or unzip -r modules and libraries. He would now need to learn some base new technology.

ImageFirst one will help him communicate with developers, and will prove to be the most used and is called mailman. This help him keep in touch with the whole team of developers, however he will also see other users as he subscribe to the commit list which automagically email him all the changes to the code.

mediawikiThe next piece of technology is the wiki, where most of the documentation to get started, as well as some design pointers are already documented on these places. Is important that he check its out while joining the community to avoid being outcast from acting far from the status quo.

GITFinally the big and more developer-like piece is the code repository where the commits and builds he do himself should be commited and approved. Big Joe will found a new family of activities including:

  • QA, test new patches from others and give follow up.
  • Managing branches, in git this could become an all day task if the project get busy.
  • Verify bugs, evaluating bug reports and finding the issue is another big developer task.
  • Building, having cyclical builds and maintaining the successful build is another task that give some sense of stability, coding bugs might raise some flags, that something somewhere is not really working.
  • Documenting, as a user documentation is important, however as a developer, a good technical documentation can help people do their work more efficiently.

Big Joe found that contributing isn’t as hard as he thought initially, and now he has become someone with a say in a real free software project. Now Big Joe will dedicate some time to encourage people to step into this level of contribution, and maybe he could get his USER group into a real developer group and do cool stuff like a bug hunt, or a development spring.

Big Joe is very well networked withing the community and can now have some real hold on not just promoting FLOSS but actually being part of producing floss.


Community, software and great ideas at FLISOL 2014

Yesterday was the Latin-american free software intallfest, nearly 300 locations experience a lot of installations on new distributions, desktops, applications and such. I had the task of taking care of my local event. I did received a lot of help from the other members of my tech group. This group really strive making everything looked professional enough and have enough activities.

The event took some partnership, including the venue, the people around, and other things like coffee break and cake.

The event got their target market when a family came to the event and was able to learn about open source software, how it works and how to interact with the online communities around it. In a very sci-fi fashion, a talk that mimic the popular “The hitchhicker’s guide to the galaxy”. The talk focus on loosing the fear of people of interacting with a global and technical communities that work around these open source software.

Conference about communities and open source
The hitchhicker’s guide to open source

It goes into making an analogy to traveling through space and visiting colonies in far away lands and how we need to be brave enough to make an effort into interacting with them. That said, I also point out the benefits such as – the applications will forever be available to you, and your workflow and productivity will increase by magnitudes.

The second talk was full of geekiness, teaching how open hardware works and what kind of things you can do with Arduino. One of the flagship projects of the open hardware movement. By making projects such as an alarm for embedded devices, Android is able to compete on what programming for embedded applications and portable devices.

Open hardware and Arduino
Hack around with Open hardware and Arduino

The third conference was about Blender, and what this college been working on several animation projects. They go from the basics of 3D modeling, to dividing projects into departments like lightning, coloring, modeling, animating and coming into a full motion production.

Blender animation group

The event was more than conferences, it was about socializing, and getting close to understanding open source. We installed portable applications, education applications, enterprise systems and of course games.

But more than that, it was about checking out how can you be part of the free software movement. How can you contribute to it, and why you should know is a good idea for your personal and professional development. How the world is changing and technology is innovating thanks to free software, and the impact in the personal life of its users is undeniable.

The best part was the non scheduled discussions that took place about education, politics, government and how technology could easily change that. How students should learn with technology as opposed to digitize their old ways of learning. In true TQVCancun fashion, we jump from topic to topic and enhancing the dialog on different parts of the event, from the auditorium to the workshop.

After the event, there was a lot of positive response from the people that attended the event as well as people that want to do more with this. Including launching programs on teaching free software, creating new project and expanding the vision of innovation.

Hopefully our little tech group will get the chance to grow and become more popular and drive more initiatives.


Getting ready for the next big Open source event

So just a few weeks from the Latin American installfest called FLISOL.


The event happens across all Latin American countries including Spain and Brazil. Is primarily in Spanish although most of the maintaining crew of the servers are Brazilians.

Originally the event happens on the same day however due to many schools having breaks they decided to push/advance the event from the target day.

In Cancun we are in charge of the local FLISOL. We will do it on the designed date and we are gearing up to have a great audience. Thanks to many of the contacts that have been giving us support we were able to promote it on many different ways from school to business, media types and word of mouth.

A funny picture of the GNU horns and beard as I pose after the interview from the local TV station.Image

We hope to generate the same traffic from the last time we went around with the event. For more information about the event go to http://flisol.info/FLISOL2014/Mexico/Cancun

Hopefully this time around we have more business and professional audience.Image

Contributing to OpenERP translated documentation

So this is my official contribution to the project, I’ve decided to spend some time translating the strings from the OpenERP documentation. The OpenERP book holds a good amount of information about what the history, development and goals of the OpenERP project. I also appreciate the way this book have been put together, as opposed to spend time describing each screen and talking on how to use it. This book spend time looking at the tool as a business people, accentuating on the business goal. For example, titles like “How to better manage your books”, as opposed to a more boring “Accounting Module”.

The localization in Spanish have been lagging greatly mainly because the way to contribute is a bit obscure. I found out the system itself is not obscure since they use a standard Launchpad-Open Source translation tool based on PO files. The way the po are managed online is very similar to the Pootle application.

The next step is to become legit on the Launchpad application, which allow my user to get fully integrated on the OpenERP teams. I added myself to the OpenERP-Mexico group, and the OpenERP-Documentation group.

The Spanish localization is located under the 7.0 branch, where you click on translations. And are presented with a table of different languages and the progress for each language. There you can select the preferred language and then are presented with the different type of localization projects including the book, contents, contribute, faqs, index, install, legal, odoo, usability-book, etc.

My main goal is the book one which listed around 6544 with 6453 untranslated and 305 for review. You can check the project here.

One thing that was noticed earlier today was that I need to be part of the Spanish team in order to get my reviews and comments approved. You can see me already on the team either as pending or if this post is rather old, I will hopefully be approved.

Spanish locale
Graph showing the different openerp project for the spanish locale.

OpenERP power in open business software

Looking for a great video on OpenERP, I got a great presentation about why OpenERP is a good thing to have for small to medium size business owner and why is a much better asset than the hundreds of dollars invested into accounting software like Sage. OpenERP is a long standing business framework as oppose to a single purpose software.

OpenERP effectThe key is recognizing the area of connecting the business areas between each other. A personal experience during my workshop last year on business application showed how many business areas can be improved through workflows and automation of process talking between each other.

For more information on my involvement with the platform please listen to the interview last year on Caribe Think Tank as well as the earlier post on the workshop for open source Business applications.