Tag Archive - freesoftware

Of ready-made solutions…

Weird bug here. I’ve been locked with one main client for about 2 years, I’m losing my edge.

I’ve been suggesting, going as far a setting a demo system, that their document revision system be migrated from Rational ClearCase to GIT. The current setup support code (developers) and documentation (infrastructure, products, management teams).

Change rational: I don’t have anything specific against ClearCase, but their licences are ending and, as a corporate decision, they are looking into cutting recurring costs. Going for a widely deployed & supported open-source/free software solution looked like a safe bet. While not involved in the decision process, I suggested GIT as an alternative to whatever they could be thinking of. I’m that kind of ‘consultant’, always with an opinion on everything, hmm… computer related.

The bug is: Why the hell did I suggest GIT ? I’ve entered a weird mental pattern. Through the years, I’ve convinced myself that peoples would be supported by an outdated system (ie: CVS), then upgrade to a more recent one (ie: SVN), then change their ways to a true developer friendly revision control system (ie: GIT).

GIT and SVN aren’t the same type of product.

Sometimes, you DO need a central repository – mainly if all you are doing hard-to-merge binary file commit. Sometimes, you DO need a locking mechanism. Think of 10 employees working on different part of the same Visio document. A project complete and you get 10 ‘branch’ merge request ? You’ll want to kill yourself. At least with locking, they will fight amongst themselves!

But the GIT vs SVN vs ‘whatever‘ isn’t the point here. The problem was that I took a ready-made solution (that I deployed long ago) and went as far as proposed it ‘to the outside world’. That would have never happen while I was leading the infrastructure decisions of 5+ startup (and maintaining a lot more). I’m losing my edge. It’s time to start posting a bit more (on this blog) and bouncing ideas off my entourage.

Couples of stats/facts.

As I look over 6 very interesting projects overview on my desk, I’m forced to do a bit of thinking about how the last year went by. A year is a lot of time, and so much plans finally came to fruition that I can’t think of listing them all here today. Which is kinda a good sign for me and my enterprise ;-)

Most of my readers doesn’t really know who I am, even when you take into account that I blog under my real name. Most don’t know that I bought a condo in Hull (now part of Gatineau, near Ottawa – the capital of Canada), that I still have a rent in Montreal, that I proposed to my girlfriend (she said “Yes!”), that I own a dog (greatest experience of forcing a regular schedule I ever had), that my greatest motivation in life is to be able to go where I want, whenever I want. My dream is going back to Yosemite, California… and bring hiking gear.

Another big aspect of my life is my business, Les Laboratoires Phoenix. I’ve been working full time at it for the last 9 months and its been a great experience. Over those months : I’ve worked with clients from 7 countries, contributed to 3 major open source projects, went to the “Free Software Foundation” Libre Planet confrence in Boston, went to the DefCon in Las Vegas, I’ve been named SME for {Zabbix, Zimbra, Asterisk, OpenLDAP, extended LAMP Stack, Mailman, GlusterFS, Lustre, MySQL, Cloud Computing, …}, 3 of my articles have been published (>40K prints), and I’m involved in a book project (from a major publisher)…

And, even thinking about all those achievements, I still look for the future of Les Laboratoires Phoenix. I guess that working with startups influenced me a lot : those 6 projects are all different from each others, they represent good revenue potential (clear business plan) and require low capital input to be started. So, I guess I’ll stop speaking about them and work ;-). Btw, two of those projects would be online services (SAAS) for well known parts of Internet infrastructure (not webserver). Another is a cloud computing infrastructure services based in Montreal (this one if almost finished! & I got an hardware provider)… A lot of fun to be had.

More news to come.

a bit technical ; nginx, passenger, 4gb seg fixup

Lets dwell into the technical world that had me captive for a couples hours, last week:

The installation of NGINX & Phusion Passenger should be very straight forward and no cause for a blog post. Except, and the fun start here, if you are compiling both from source, inside Amazon AWS, on a small EC2 instance (32 bits) and your dom0 is 64bits (no way of knowing, but most should) and Amazon gave you a slice of memory over the 4gb of normally addressable slot (small windows of opportunity, but still). How bad can it get ? Well, you will be flooded by the dreaded “4gb seg fixup” error message in your log files and your ruby process will drop to an almost standstill speed.

Your god, Google, will advice you to do stuff (which you should have already tried):

apt-get install libc6-xen

echo ‘hwcap 0 nosegneg’ > /etc/ld.so.conf.d/libc6-xen.conf ; ldconfig

mv /lib/tls /lib/tls.disabled

And this is where you will start to despair, because, of the 26 200 Google results for “4gb seg fixup“, 26 000 are either linking to a post asking the same question or answering with one of those two answers and 200 are for 4gb usb key. Neither of which will help the message to go away from your syslog and bring it back NGINX/Ruby to decent speed.

So. At this point, where you are starting to think about wiping everything and starting back from scratch (which won’t help), try this little procedure. The principle is to remove the passenger gem from your system, reinstall it (which will only download the source), modify the makefile, recompile NGINX (which in turn automatically compile the Phusion Passenger module) and take a beer while your system serve ruby pages without (systems) errors.

#> gem uninstall passenger
#> gem install passenger

We have a valid passenger gem source code in /var/lib/gems/1.8/gems/passenger-2.2.4 - version can vary and location is valid for Ubuntu/Debian, but could change on others distro. We will be modifying the optimization flags given to the compiler. Since Phusion Passenger does not accept command line argument and variables declarations, we have no other choices than to modify the rake file pre-compilation.

#> sed ‘s/EXTRA_CXXFLAGS = “-Wall #{OPTIMIZATION_FLAGS}”/EXTRA_CXXFLAGS = “-Wall -mno-tls-direct-seg-refs #{OPTIMIZATION_FLAGS}”/g’ /tmp/rakefile

#> mv /tmp/rakefile /var/lib/gems/1.8/gems/passenger-2.2.4/Rakefile

This being done, we will start an NGINX compilation process which will, in turn, start passenger-2.2.4 compilation. Using the -mno-tls-direct-seg-refs will allows us to work arround the 4gb seg fixup error.

#> CFLAGS=”-mno-tls-direct-seg-refs” CXXFLAGS=”-mno-tls-direct-seg-refs” ./configure –prefix=’/usr/local/nginx-0.7.61′ –add-module=’/var/lib/gems/1.8/gems/passenger-2.2.4/ext/nginx’ –with-http_ssl_module –with-http_stub_status_module

There you go.

Zimbra & Sphinx & inodes & U.P.C. ; Being a free software consultant is all about diversity

Being a free software consultant is all about the ability to adapt to any given situation… As the main conduit between my clients and the world of cutting edge technologies, they often call me to complete mandate that have little to do with my specialties. Officially, I build high throughput, high redundancy information system. However, here is a quick glance of my ‘monday’:

 

1. no more free inode on server
Database server of a client is sometimes throwing out error about inodes. This morning, I’ve decided to correct the problem once and for all.

#checking inodes
root@server:/home# df -hi | grep sda
/dev/sda1 640K 606K 35K 95% /

#checking free space
root@server:/home# df -h | grep sda
/dev/sda1 10G 5.1G 4.4G 55% /

A quick check shows 4.4G of free disk space but a little bit less than 35K inodes availables. Taking into account that each file require at least one inode… this could easily become a very dangerous situation. Resolving this issue isn’t very complicated : I’ve destroyed some of the 500k idle file on the server and move some more to another partition. Easy solution for a problem that can easily crash your server.

 

2. Zimbra & Sphinx ; 2 deployments
One client wanted an easy to manage, web accessible and fully featured messaging & collaboration software. Zimbra [website, download] is one of the easiest open source solution to recommend in those case. It integrate with active directory, it support full text search, tagging and got a very good web interface. Kinda of remind me of MailEnable (for Windows), but a lot less costly and available on GNU/Linux. I’ve completed quite a few single/multi-node deployment of Zimbra and I’ve always been impressed by the quality of the system. Hoo, and btw, I’m a certified Zimbra consultant.

 

Another wanted to add full-text search capacity to an existing MySQL database. While innodb & MyISAM built-in indexes can help speed up some queries, they are restricted by the b-tree data model. The second problems in this scenario is that the data is already partitioned in multiple database / servers. This is the perfect use case for Sphinx [website] with multi-tables/multi-databases data sources.

 

3. U.P.C. – BarCode reader
I’ve received a shipment of 8mm barcode reader for a client. The device is to be integrated in a point-of-sale solution my corp. (Les Laboratoires Phoenix) is developing for them. The small USB Acan device [ebay search] is easy to configure (scan specific code) and to use (act as a keyboard). True plug-and-play on Microsoft Windows XP, Vista, on GNU/Linux and Mac OSX Tiger… I’m very satisfied by the device and look forward to complete the assignment.

 

4. More stuff
Did way more stuff than those 3 contracts today… but hey, I can’t be writing down for all to see all my cool gigs and contracts! Some of those are actually protected by NDA or are still stealth.

SFLC vs Cisco

The SFLC (Software Freedom Law Center, the ‘legal arm’ of the FSF) lawsuit against Cisco Systems (nasdaq:csco) has been settled . The details are not yet available.

Related:
December 11, 2008: SFLC files lawsuit against Cisco Systems on the behalf of FSF. The complain is available as PDF
December 11, 2008: FSF publish a press release.
May 12, 2009: recap of the settlement on PROSKAUER ROSE NewMedia law blog.

Page 1 of 41234»