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.



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

Installing OpenERP 6.1 and 7.0 on the same Linux Box


After a few rants and raves thrown at the #openobject channel on IRC about why Ubuntu is not the only Linux in time. I was able to get solved some of the issues involved with installing different OpenERP instances and also remember some of the steps that were required to install a general OpenERP system.

First remember that most of the packages will come from PIP but in case some of the packages got issues is important to rely on your distro packages.

The first pain point could be setting up the postgresql database. I experience some issues trying to run postgresql 9.0 and downgrade to 8.5. So first lesson learned is that both database work fine with OpenERP.

Another point is to watch out for the psycopg2 module, in my environment it was best to get it from my repo, since I use mandriva, I need to do:

urpmi python-psycopg2 python-imaging python-pychart

This allowed me to get the openerp-server server running. Another key thing here is to remember to open different ports, so is important to open like this:

openerp6/openerp-server.py –xmlrpc-port=1800
openerp7/openerp-server.py –xmlrpc-port=8059

This is important to get the correct applications running on the different ports. You will end up with localhost:1800 for 6.1 and localhost:8059 for 7.0.

One important thing regarding postgresql is that I wasn’t able to start the services as I should so instead I have to run the server manually doing the following command:

postgres -D /var/lib/pgsql/data/

Following the tutorial on installing openerp v6.1 on ubuntu, I should be able to get the services started from init.d.

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.

Creating a coder portfolio

I have usually mentioned of the advantage of the Internships in Open source, whenever is Google summer of code, or FSF collaboration projects, or project specific internship. However there is some pre-required knowledge students should get. Having and organizing a professional portfolio is very important.

Companies and other developers have some new protocols to view and understand the way programmers can be recognized from their work. Although there are still many things that haven’t catch on. Social networks, code repositories, and open development has definitely been part of them.

First thing is first, who are you? Having a personal page help, whenever this is on a local host or this is a free account on a service like about.me. Or even your G+facebook or blog. Is important to list your contact mediums, make sure they point to active mediums like avoid having your old college email that you haven’t touch since you left many years ago.

Although you are not forced to change, be aware there is certain elitism in technology and using AOL or Hotmail account will lower people’s expectation. Some people tend to think that your IT skills are very outdated. On the opposite side of the spectrum, having your own email like me@myname.com or pointing to a project you contribute like in my case jza@apache.org and previously jza@openoffice.org, may generate the opposite reaction.

Is important to also be able to show your work, here is where there are many issues and controversies. As a private employee, there is contractual obligations in order to show or not how your code.

This is why is important to have personal projects that you can show your proficiency. Showing and describing the modules or classes you have generated is always a good way to show off your knowledge in the area.

Here is where public repositories make their play. For almost 2 decades Sourceforge has been the most popular code repository. Since then, we have other well recognized repos like Google Code, and more recent Bitbucket, Gitorious and the premier GitHub.

Having a good amount and up to date projects could be a great way to show your skills. Updates could be fixes for updates on the language convention (making your code Python 3 or PHP 6.x compatible). Fixing bugs or just having other developers adopt it and contribute patches to other projects could be a great YES.

Writing whitepapers is also a non-coding way to show your knowledge. Having research, and something more complex than a random blog post could be a good way to let employees know, that you are actively looking for ways to improve the status quo. Something that companies with the right culture will be open to.

Talking about development processes like XP programming, SCRUMsoftware architecture and IT Project management. If you ever had the opportunity to have a presentation on slideshare or a youtube conference.

There could be a time that you have too much of everything, there is when your content management skills need to kick in. It should be easy to read and follow through, the last thing you want your scout is to get distracted with un-related content that could affect you. This is why is good to maybe have a service like storify or a link bank that can pick and choose what show and what not. This will maximize the possibilities to hit of their needs.

Mind maping

Mind maps is also a good way to expose your broad experience in different topics all in one simple image. A friend of mine, did this on his site, where he show it’s specialties and also link to different areas. Mind maps can be done on a more artistic or more mundane fashion, important is to make your strong points more prominent and not confusing. Semantik is a great software for this, an alternative would be Freemind.

If you want it to take it the next level, you can also plan on having a dedicated website and look your image as a business brand. Investing in a good photo shoot, with a good make-up using a image manipulation software like Gimp or MyPaint. Editing an introductory video using KdeLive, or OpenShot. If you aren’t the best looking guy for a photo shoot, you can always get a service or artist to draw a cartoon of yourself. This will make you a bit more marketing-driven than competitors. Don’t over do it, but also show interest in your image.

A good example is the Twit avatars here:Image

Here are different options, you can hire a professional artist, if you don’t know any in your area you could use services like liveperson, elance, or good ol’ craiglist.

To finalize you want to be able to promote your image on the web, a good way to do it is to be able to generate visitors. Adding your website to your email signature, or to your personal card is a good way to start. But also be able to spread it through professional networks and old friends is also a great way to get business going.

Business contacts as well as commerce chambers are great way to establish professional networks, events at local chamber of commerce or just be able to subscribe to their feed can allow you to open the door to interact and push your brand. Although you shouldn’t be too aggressive to an extend to hijack conversations. But should open enough to people to learn about you and recognize your skill sets.

Linkedin is a great resource since you already have a uniform way to present content, however, the key to Linkedin is their groups and their Answers areas, where people get to interact and people looking to either hire or get hired are in one central point of communication. Even as a freelancer, you should let people know that you are always looking for projects, and how you can benefit to their business.

This is by no means a small point, is actually the very first point. Most users would be thinking on how can this guy make me money. So is important that you don’t hide this information but quite the opposite put it right next to your name. Something like John Doe: Making your operations run smoother, but also that doesn’t look as cheesy. A quote is usually useful, and understanding business and buzzwords can get to the perfect quote. Something like Mary Jane: Social media is the fastest growing market, make your business be part of it. As a programmer, or coder a good quote would be Mike Johnson: Code is art, without passion is just math. Obviously here we have some keywords like code and passion. For people that read this, they understood that you care about your craft.

Think about your own buzzwords and come up with a nice quote and embrace it for you and for everyone that meets you.

Python Certification and O’Reilly

Today I saw this great conference about the Python certifications that O’Reilly (the company that does IT books) is offering through their school of technology.

A few month’s back there was a rather interesting discussion bout the value of a certification, and how many people disagree about the nature and the goals should be. However is good to know that there are some certifications available and even better that they are connected some how with an authoritative figure.

In this case The Python Foundation chairman is one of the designer of these Python Certified Class. This O’Reilly Webcast show the whole process and thought put into this program and how it can help many people that want to get into programming as we all develop core knowledge.

The video is here:

Some notes on the video are the following interactive Q&A and some key minutes in the presentation:

Min: 15 Biggest difference between Python and PHP? The use of namespaces to create larger systems.

Min: 17 Which toolkit (or UI) will the course include? Several frameworks like TKinter, PyQt y WxPython were reviewed. In the search for pragmatism we choose Tkinter, but in a way that is easily portable to Qt, GTK, etc.

Min: 19 The courses are credited by the University of Illinois.

Min: 23 How will these course help more experienced programmers? You can skip the entry-level classes although if you want the certificate you most take them at some point.

Min: 28 Explain the story on why The Python Foundation don’t offer the certifications directly and how data is not equal to knowledge and experience.

Min: 31 who do the grading? Is a combination of members of the University of Illinois and O’Reilly School of Technology.

Min: 32 Why does the Python course looks more involved than the PHP course? The approach to the PHP course is different and Object oriented is been reviewed further  in the course.

Min: 34 Sneak peaks on the second class? Second class would deal with testing and development. Things like unit testing.

Min: 36 deals with packaging and how to generate packages in Zip, tar, etc.

Min: 42 what kind of jobs can I obtain from these classes and certifications? Right now programming skills are very well marketable although usually is focused on programming jobs. However, we see these programming courses to extend to other disciplines like journalism, technicians, educators. Also the curriculum and portfolio of real code that can get you a Jr Developer position.