For the last few days I’ve been spending time in El Rodadero, Colombia before setting off to Palomino for Hackerbeach. Another participant arrived today, and joined me in relaxing before the primary Hackerbeach work in Palomino. It’s peak season here in El Rodadero, which means all the restaurants, the malecón, and the beach are filled to the brim with people, mostly traveling Colombians who come here for what is justifiably one of the most gorgeous beaches in the country.
It’s been hell, doing a 4 flight stint for the better part of a day with no off-plane sleep. I read recently that airplane humidity is typically around 20%, which is drier than the Sahara desert. Lesson learned: always bring and fill your water bottle. When you’re dehydrated, the mucus membranes have trouble keeping a layer of mucus, and can let more dangerous external matter through. That results in a sensation, that, when you swallow, can be unpleasant.
But though the trial, I’m finally here on the Caribbean coast to kick off the Nth annual Hackerbeach in beautiful Santa Marta, Colombia.
The weather is a muggy 31C, not a fluffy cloud in the firmament, and high season is in full swing. I’m the first to arrive, and spending the 29th through the new year in the city before settling down in (hopefully) more peaceful Palomino, further east on the coast.
The Centro Historico where I’m staying is rife with touts. Taxi drivers trying to drum up business, pre-packaged adventure outfits promising the very best ziplines, and plenty of folks standing around with convincing smiles holding a restaurant menu.
Vague electronica fills the muggy air with super hip beats. It would be inappropriate to dance, but we do feel a bit more in tune with the forced vibe.
The night continued on. I took my stroll of the malecon and beach, found a handicraft market, and my guilty pleasure: street meats. Sausage fresh off a charcoal grill, covered in just-squeezed lime and roughly chopped chilis on a bed of yuca in a small styrofoam container for $1. There were a few touts there, but nobody bothered me. It must either be the default expression of a determined scowl, or having low value as a single young foreign male walking by.
While waiting for a hyped up blues-and-rock dive bar to open, I took another stroll through the neighborhood. I changed upon a shrill noise from the super(sub?)sonics of some music hurting my ears while walking through an alleyway. Investigating the source yielded a cultural celebration. It was a delightful cultural dance competition. That occupied a very pleasant half hour of my time until the acts petered out.
Onto my quarry! It’s a small dive bar in the Centro Historico called Crab’s Bar, proudly slinging blues and rock since 1999. The owner is a foreigner and doing an excellent job not paying top 80s rock, which is often the trap of places like this. When I arrive it is empty. I must have come too soon. An hour later and most of the tables are full and the atmosphere of the place is much more convivial. The cocktails are pricey, but all are double-sided, so I give it a pass.
Besides the boilerplate 60s Rock kitsch, the place is run by some excellent bar staff, who are sporting faded tattoos of the place’s logo. It’s always a good sign when folks are (hopefully not coerced into being) that invested and passionate. As the night progresses I am increasingly comfortable. Eventually I head back to my hostel and try to acclimate to the EST timezone.
That’s about it. A simple night as others have yet to arrive. I’ll be on my own for a few more nights wandering and enjoying the city.
Bonus: The exchange rate here is 3,000ish Colombian Pesos (COP) per USD, which is hard to keep in my head. Using the ATM does make me a millionaire though.
Whenever I encounter people as I travel, they are often curious about my luggage. It seems to be invisible. They’ll often ask where my bag is, assuming that it must have gotten lost in transit. Their eyes go wide and confusion sets in when I tell them that the bag on my back is the only one.
It is my estimation that at least some people would be curious about what gear I travel with. They ask how I’m able to pack all the necessities into such a small space. There is no great secret to traveling light. All it takes is a little research and compromise in creature comforts. If you have browsed the postings of other nomadic hackers, there might be little to be gleaned from this post. Here’s a basic rundown, with almost each article deserving its own article.
It should go without saying that nobody paid for me to write this post, and likewise nobody as sent me any products to test.
In many parts of the world a reliable internet connection is hard to come by. Ethernet is essentially non-existent and WiFi is king. As any digital nomad can testify, this is ‘good enough’ for doing productive work.
Unfortunately not all WiFi connections work perfectly all the time. They’re fraught with unexpected problems including dropping out entirely, abruptly killing connections, and running into connection limits.
Thankfully with a little knowledge it is possible to regain productivity that would otherwise be lost to a flaky internet connection. These techniques are applicable to coffee shops, hotels, and other places with semi-public WiFi.
As many of my friends know, I’ve been spending the last few weeks in New Zealand. Primarily it’s been for a small holiday, but also in preparation inimitable Linux.conf.au 2015 conference. Leading up to that, one of the goals of my visit was to experience the variety of places across both islands.
As would be familiar to anybody who knows me, I’m always interested in new tech, especially when it’s running free software and portable enough to be in my every-day carry arsenal.
For the past month or so I’ve been looking at a few devices as a secondary to my laptop to carry with me. In a few weeks I’ll be joining those already there at third installment of Hackerbeach, on the Caribbean island of Dominica.
I wanted an embedded Linux system that could do everything. The scope of this device just kept getting bigger the more I thought about it.
A week ago I was fortunate enough to attend the latest code sprint of the Mercurial project. This was my second sprint with this project, and took away quite a bit from the meeting. The attendance of the sprint was around 20 people and took the form of a large group, with smaller groups splitting out intermittently to discuss particular topics. I had seen a few of the attendees before at a previous sprint I attended.
Joining me at the sprint were two of my colleagues Gregory Szorc (gps) and Mike Hommey (glandium). They took part in some of the serious discussions about core bugfixes and features that will help Mozilla scale its use of Mercurial. Impressively, glandium had only been working on the project for mere weeks, but was able to make serious contributions to the bundle2 format (an upcoming feature of Mercurial). Specifically, we talked to Mercurial developers about some of the difficulties and bugs we’ve encountered with Mozilla’s “try” repository due to the “tens of thousands of heads” and the events that cause a serving request to spin forever.
By trade I’m a sysadmin/DevOps person, but I also do have a coder hat that I don from time to time. Still though, the sprint was full of serious coders who seemingly worked on Mercurial full-time. There were attendees who had big named employers, some of whom would probably prefer that I didn’t reveal their identities here.
Unfortunately due to my lack of familiarity with a lot of the deep-down internals I was unable to contribute to some of the discussions. It was primarily a learning experience for me for both the process which direction-driving decisions are made for the project (mpm’s BDFL status) and all of the considerations that go into choosing a particular method to implement an idea.
That’s not to say I was entirely useless. My knowledge of systems and package management meant I was able to collaborate with another developer (kiilerix) to improve the Docker package building support, including preliminary work for building (un)official Debian packages for the first time.
I also learned about some infrequently used features or tips about Mercurial. For example, folks who come from a background of using git often complain about Mercurial’s lack of interactive rebase functionality. The “histedit” extension provides this feature. Much like many other features of Mercurial, this is technically “in core”, but not enabled by default. Adding a line in the “[extensions]” section your “hgrc” file such as “histedit =” enables it. It allows all the expected picking, folding, dropping, editing, or modifying commit messages.
Changeset evolution is another feature that’s been coming for a long time. It enables developers to safely modify history and be able to propagate those changes to any down/upstream clones. It’s still disabled by default, but is available as an extension. Gregory Szorc, a colleague of mine, has written about it before. If you’re curious you can read more about it here.
One of the features I’m most looking forward to is sparse checkouts. Imagine a la Perforce being able to only check out a subtree or subtrees of a repository using ‘–include subdir1/’ and –exclude subdir2/’ arguments during cloning/updating. This is what sparse checkouts will allow. Additionally, functionality is being planned to enable saved ‘profiles’ of subdirs for different uses. For instance, specifying the ‘–enable-profile mobile’ argument will allow a saved list of included and excluded items. This seems like a really powerful way of building lightweight build profiles for each different type of build we do. Unfortunately to be properly implemented it is waiting on some other code to be developed such as sharded manifests.
One last thing I’d like to tell you about is an upcoming free software project for Mercurial hosting named Kallithea. It was borne from the liberated code from the RhodeCode project. It is still in its infancy (version 0.1 as of the writing of this post), but has some attractive features for viewing repositories, such visualizations of changelog graphs, diffs, code reviews, a built-in editor, LDAP support, and even a JSON-RPC API for issue tracker integration.
In all I feel it was a valuable experience for me to attend that benefited both the Mercurial project and myself. I was able to lend some of my knowledge about building packages and familiarity with operations of large-scale hgweb serving, and was able to learn a lot about the internals of Mercurial and understand that even the deep core code of the project isn’t very scary.
I’m very thankful for my ability to attend and look forward to attending the next Sprint in the following year.
I’m excited to hear that Hackerbeach will be happening again this year. Last year was an amazing and unique experience, and I can’t wait to go again. This year the village hosting us will be Lamu, Kenya.
For the uninitiated, Hackerbeach involves a group of hackers (historically 15-20) gathering in a tropical location for a month to hack on various open source projects. It can be thought of as a month-long hackathon or code sprint for nomadic open source developers. All of the code so far has been focused on the open web ecosystem.
Flying in India is a bit different than in other countries I’ve flown. All processes are more strict than at least southeast Asia, Europe, and the US. Some of the differences include the amount of documentation required.
Over the past week I’ve spent in Bangalore, I’ve come to appreciate the humble auto rickshaw, or ‘auto’ for short. For the uninitiated they are similar to a Tuk Tuk in other countreies. That is to say they are small three-wheeled covered vehicles used to ferry two to three passengers around busy streets and through traffic. This is half due to their diminutive size and the other half due to their driver’s propensity for disregarding both traffic laws and courtesy to their fellow road-sharers. Bangalore has the busiest (and narrowest) streets in India, and the auto drivers are notorious for trying to take advantage of unwitting customers.