Hackathons are bad for you.

I love developer communities. I love the spirit, the comradery and energy. But in the last couple of years or so, Hackthons have spread through the community like a plague. There are Hackathons around technologies, ideologies and everything in between. And I feel there is an urgent need to eradicate them.

Here is my main beef with Hackathon. They’re encouraging and spreading a perverse culture of unhealthy lifestyle and unsustainable workflow which has been made popular by sensational media and film.

Here’s a standard recipe for a Hackathon.

  1. Gather a bunch of developers in a location.
  2. Supply them copious amounts of junk food, booze and caffeine.
  3. Tell them to get cracking for 24hrs.

Sounds familiar?

image


Sleep

There is an almost masochistic take on sleep deprivation in the developer community. (It might be true with other professions, but let’s focus on the devs.) Working late into the night and not sleeping for days is lauded and almost considered a necessity by many these days. Hackthons, many of which last 24hrs, only serve to glorify that.

It is well-known that sleep deprivation has only negative effects on health. Sadly, popular culture in the community has only strengthened the indifference towards health. Y-combinator’s popularized (and prefered?) archetype for founder/developers who eat ramen and code into the night, or the life of Mark Zuckerberg as showcased in the movie The Social Network only make things worse.

And leaving long-term health out of the equation, lack of sleep hasn’t been known to improve your focus or the ability to be logical or creative, all of which are critical skills for developers.

When was the last time you wrote a piece of code while being totally sleep deprived, and looked at it after you woke up to say it was the most beautiful, elegant and awesome piece of code you’ve ever written?

A good nights rest and a fresh mind are critical for a good developer, that’s one thing that Hackathons completely miss.

Food and Drink

Next to sleep, your body needs good fuel to keep going. And NO! I don’t mean coffee. As much as I love my coffee, binging on coffee, red bull or is rarely good for focus. Not to mention alcohol, which makes matters worse.

It’s a short-term vs long-term trade-off. Coffee (and possibly alcohol, although I am skeptical abt it), do help you feel more focused in the short-term. But both caffeine and alcohol are diuretics and only make you lose more water in the long-term. A dehydrated body isn’t much of a help when you need your brain to focus and solve problems. “When was the last time you saw an isotonic drink at a Hackathon?”

Junk food isn’t much of a help to that. I am not even going to touch on long-term effects of eating high carb diets. The usual Hackathon menu of pizza and candy is full of carbohydrates. While sugar highs are great for short-term focus (maybe??) you tend to feel hungry very quickly after a carb heavy meal. That only means you going around for another round of pizza/candy etc. Not really the best way to focus is it?

Sedentary lifestyle

More and more research is showing a link between a sitting lifestyle and health issues. Developers are unfortunate to have a job which is inherently sedentary. Hackthons again make it worse by inciting developers to sit at the same place for 24hrs. “I’m sure your back will thank you at the end of that!”.

And what’s worse is since most Hackathon are held on weekends, the one day you usually get to be active is also spent being sedentary.

Distraction

Hackathons are distraction. There are a ton of things going on. People are talking, discussing ideas, giving talks or just hanging out. All that is competing for your attention while you need to focus. Add caffeine to that mix and that’s one hell of a party on thought in your mind. Noise cancelling headphones help, but then what’s the point?

Solutions?

I’m pretty sure there are better ways to organize hackthons. Having them over 2 days of 12hrs slots would be an idea, to combat sleep deprivation. Supplying and encouraging healthier eating and drinking options would be really useful. Fruits, nuts, and other healthy food are options. Similarly with drink, having access to isotonic drinks and lots of plain water should be a priority. Encouraging participants to do physical activities like calisthenics or just going out for walks on a regular schedule are options to consider.

But in the end, I really feel that Hackathons are beneficial less as a place and time to code out your next big idea, but more of a time to mingle and bond with the community. It’s like a gathering of the tribe. And personally, there is more value in that than actually developing anything.

TL;DR; : Hackthons promote unhealthy lifestyle. If you’re organizing one, urge your participants to hydrate regularly, eat healthy meals and take regular breaks where they do some type of physical activities.

The allure of the web.

During the interview of Eben Upton of (Raspberry Pi fame) by Leo Laporte on Triangulation, Eben mentioned that he and his peers had noticed that the applicants to Cambridge University’s Computer Science program were getting (for a lack of a better word) dumber, in the sense that they had no experience in programming, unlike some 10-15 years ago, when the applicants had been programming their Commodore64 already. The current day applicants only maybe new “a little bit of web programming”.

This was interesting. Eben, of course an old school geek and a HW geek at that (he designed the 3D Core in the Broadcom BCM2835) considered “web-programming” as a lesser skill than hardcore assembly language programming. Now, flame-bait aside, the interesting part of this the crazy popularity of the web we see today, as compared to other computing platforms.

In Eben’s comparison, students in the 80s and 90s were programming on Commodore64 in assembly. The major motivation for the students to learn programming was writing and playing games. In today’s world, students were more motivated to learn web programming. What are the major motivations for that?

I think allure of the web, which is obvious not only in Eben’s example of students only bothering to learn about web programming, but also the flurry of activities, conferences, websites, talks, meetup groups that are being organized around web technologies is fundamentally its accessibility.

Unluckily (or luckily) when I studied computer engineering, we were introduced to computing on old solaris boxes which were heavily locked down, could be only accessed through ssh telnet. It was a horrible user experience. You had to know, ‘by heart’, ~50 command and their arguments. Things looked ugly on the black screen with white characters and the best way to make your program pretty was add extra spaces.

Fast forward to the web, and you have beautifully designed tools which make it easy to understand what’s going on and what your code is trying to do. Some of the best tools for these are built-into your browser (just right-click and “Inspect Element”). A vibrant developer community has churned out integrated tools which make everything from starting new projects to testing much simpler and easier to do. It is no wonder, those getting into programming are turning towards the web. It’s waaay simpler to start hacking and making things work.

And finally, what really takes the cake for the web is the inherent display and User Interface focus it has. Making things look pretty on the web is very very simple, compared to making things look pretty on the more contemporary computing platforms. And that in itself is a great motivation especially when you’re new and learning programming. If with a little bit of work, you’re able to present your “hello world” code in much better font,colors, etc; that’s a whole lot of motivation for getting your code to run properly and look pretty. And that’s how you start learning more and more..

I am starting to see the allure of the web, it’s accessibility and it’s ease of beauty. And looks like those will take this platform well into the future.

Why I’m starting to like git.

Versioning systems is probably the thing that’s argued about next most often after editors when it comes to developers. I remember the CVS vs SVN arguments when I first started to know about versioning systems. As always the inertia makes it hard for people to move unless there is a feature which really makes their life easier.

Sad to say, I never learnt about CVS or SVN while in school. My first versioning system was Clearcase (oh! the horror). But it was a large corporation. Everyone was using clearcase, and there was definitely loads of support (tutorials, scripts, and people) to pick up and get good at clearcase. We did crazy configuration management with clearcase. Massive merges which took hours, and script which automated all sorts of build, version and release processes. The horror faded away to efficiency (alias were my best friends) and effectivity. It was a heavy duty industrial strength system which was able to bend and work as per your will. It has it’s quirks, but nothing a little bash script couldn’t solve. And my favorite part was the nice version trees it could make and show. It was great for a noob like me.

A part of my second job was to upgrade the web server, which incidentally also hosted the local code repository. That’s when I first looked at git. Being new and shiny, I wondered if it was a viable upgrade to the current SVN system that was being used. But it was shot down by engineers too used to SVN and not wanting to move.

After that my need for heavy duty versioning died. Most code was personal projects which rarely had multiple versions. I relied on Dropbox for basic versioning (“oops I accidentally deleted a file I wanted”) but that was that.

At my current job, we used SVN. It was the first time I had to do heavy branching with SVN (multiple platform support). And that’s what made me get annoyed. The whole dumb copy idea of branching was so confusing. To add to that the SVN client on both Windows and OSX were next to horrible. It was hard to understand what was going on and why there were errors in merges. Error messages were cryptic and most importantly there was no community to rely on for help.

When I found out that our online code repository supported git, I immediately moved everything to git. Boy was that a great idea! Coming from clearcase, git has a very small initial learning curve. Some concepts are a little hard to grasp. In clearcase setup I used, all files were read-only till you checked them out. While in git, your files are always “checked out”. The whole staging thing in git is also a little confusing at first. But what really helped was the millions (and I’m not kidding) of git videos, tutorials and stackoverflow answers there are. From the smallest thing to the weirdest operation, there’s someone to help you out in whatever you’re trying to do. And THAT was my golden ticket. The community around git really make git a great versioning system for me. If I’m stuck I can find commands/scripts/tricks just by asking around. This also applies to tools used for git (although I’m sticking to command line on OSX). On OSX there’s a plethora (GitBox, Tower, Github, SourceTree) of beautiful looking tools if you don’t like CLI. On Windows GitExtensions is a very intuitive tool with a nice tree showing your repo. And then there’s github..

Yup so tl;dr.. My reasons for moving to git is the community around it and the availability of great tools.

Raspberry Jam in Singapore

What’s with product being named as fruits? Apple, Blackberry and now a Raspberry. I’ve been following the development of the Raspberry’Pi since it hit the inter-webs. The concept was really great. An open source low cost ($25) ARM based board which runs some flavor of linux. Targeted for education, it provided an affordable computer which students/kids could use to start experiencing computing, electronics and start programming easily. But the best part was response from the public. Basically what the originators expected to be a few hundred units order became a few hundred thousand units. Everyone loved the concept and of course the price point. One could say that the “One Laptop per Child” premise could be finally fulfilled by this.

But I digress, the wide-spread interest in this board both from software hackers (it runs Linux and python out of the box) and hardware hackers (it has some 12 GPIO pins doing SPI, I²C, UART, etc) sparked communities all around the world. In Singapore we had our own “Raspberry’Pi & Co Singapore” Facebook group. What started off as a place to compare where to order a Raspberry’Pi and when who’s gonna get their board when, became a nice community sharing ideas, tips and tricks. There were discussions about everything from various Linux distros and libraries to use on the Raspberry’Pi to builds, mods, cases and even alternative hardware platforms to play with while everyone waited anxiously for the Pi.

When the boards finally shipped to the lucky few individuals, a meetup was proposed to share ideas, and also give those without a ‘Pi board a chance to touch and feel the boards themselves. Thanks to our dear friend at Hackerspace, Michael Cheng and CJ, the meetup was held there. Members of the community who had the boards were encouraged to bring them down and do a “Show and Tell” session on what they were doing with their Pi and what they planned to do with it.

On the last day, we found out about the Raspberry Jams. These basically are community events, similar to the one we were going to organize, happening in a few places in the UK and around the world. In support of our brethren, our event was changed from just a meetup to Raspberry Jam.

To start off the session we watched a video of a panel at the recent Maker::Faire Bay Area featuring Eben Upton the founder of the Raspberry’Pi, Ben Heck, Matt Richardson from MAKE magazine about Maker movement in the classroom.

Following that we had two great sessions from Mike Veltman and Calvin Cheng. Mike explained the various versions of Linux he played with to get a stable setup. Once he had that he setup his ‘Pi as a home media server, as well as a reverse proxy server. He has 5TB worth of storage attached to the ‘Pi, and with a miniDLNA running on it, he could stream his media to DLNA players on his mobile devices. The reverse proxy allowed him to tunnel and access websites which were banned in some countries he was visiting. And finally, the small form factor of the ‘Pi helped with the Spousal Acceptance Factor (SAF) something that geeks all over the world have to deal with.

Calvin Cheng had something else up his sleeve. He unveiled his new project, littlehackers. He is looking at building a batch (like 10) of Raspberry’Pi based small portable computers to teach young children programing. He has been sourcing for small portable displays for that build as well as getting education software like Scratch running on his Pi.

Afterwards there was a long discussion on the hardware itself and things one could do attach to it and many project ideas. The ‘Pi promises to a great enabler for all sorts of geeks, and the excitement was obvious in the attendees. For the members who hadn’t seen a Raspberry’Pi they got look at the board for themselves. For the rest, many ideas were exchanged. Overall it was a great meetup.

The next Raspberry’Pi Jam Singapore is being planned for a September/October time frame so most people would have gotten their hands on the ‘Pi boards and played around with things to share more.

Why YOU should care about SOPA?

The Stop Online Piracy Act (SOPA), also known as H.R. 3261, is a bill that was introduced in the United States House of Representatives on October 26, 2011, by House Judiciary Committee Chair Representative Lamar Smith (R-TX) and a bipartisan group of 12 initial co-sponsors. The bill expands the ability of U.S. law enforcement and copyright holders to fight online trafficking in copyrighted intellectual property and counterfeit goods.[2] Now before the House Judiciary Committee, it builds on the similar PRO-IP Act of 2008 and the corresponding Senate bill, the PROTECT IP Act.[3]

-Source Wikipedia

While I was following the fellow journalists and podcasters in the US talking about SOPA/PIPA, I kept thinking why I should bother with SOPA/PIPA? It’s a act which is being passed in the US, and if enforced, it will allow the government (with/without due process) to kick websites off the internet. But the effect of this is restricted to the US and such a banned website should be still accessible for us Singapore. So what’s the big deal for us? I bet many of your have the similar thought.

Thanks to Justin Lee, I realized my lack of foresight. Let’s start with history…

Last few years many of the governments around the world have been discussing a really unusual trade agreement. Of course the intent of this agreement is honest and fair. The ACTA (Anti-Counterfeiting Trade Agreement) had the aim of “ establishing international standards on intellectual property rights enforcement”.  While the agreement was on a voluntary basis, there were murmurs around the internet that the US government being lobbied by the MPAA/RIAA was putting their weight on countries to sign the pact. And one of the clauses of this agreement was the famous, “3-strikes rule” which basically forced the governments to force the local ISPs to give users 3 chances of “suspected copyright infringement” before stopping their access to the internet.

And among the list of countries who have signed ACTA is our dear Singapore. Singapore has always tried to stay in the good books of the US, and especially with respect to copyright issues. The current emphasis on media has heightened that significantly as a strong copyright law makes media company more willing to setup operations in Singapore.

Thus, there is a significant possibility that Singapore might import SOPA and make it a law here. In fact there are indications of that already. While it’s not that serious for Singapore, where there is already a significant censorship of the internet based on what’s considered acceptable by MDA. But allowing random 3rd parties (copyright holders) pull the trigger on censorship is stretching it.

Don’t get me wrong, I am not in support of piracy. Being a part of Tech65, we take our IP right seriously. We’d hate to see our content being stolen/pirated/abused as much as any movie producer. And I totally agree that copyright of content should be protected with government mandate. But HOW that is done is the question to be asked. Allowing copyright holders who have a definite commercial interest to practically ban any website they suspect of infringing their copyright is definitely not the way.

Here’s a simple example why such such law can be abused. Revision3 was DDOSed and “crippled” for a suspected copyright infringement in 2008 (just because they served THEIR OWN content on BitTorrent). Rev3 suspects that the DDOS was done by a company acting on behalf of the MPAA. While DDOSing is currently not legal, you can imagine that with SOPA such things can be done simply and legally by banning the site at DNS level. Too much power in the hands of people with obvious commercial interest against many smaller players on the internet. Talk about being unfair..

So here’s what you can do..

1. Stop Pirating!

2. Read up and understand what is SOPA/PIPA and what the US Congress debating on. Try to understand what banning a website at DNS level can mean to ANY website that YOU own.

3. Know and understand ACTA and see what Singapore government has agreed to do.

4. Spread the word. Take part in the anti-SOPA blackout. Or tell your friends why SOPA is a bad way to implement copyright regulations.

5. Keep your eyes and ears open to how the Singapore government reacts to SOPA. If need be, we will have to contact our representatives and tell them our view on copyright issues to be raised to the appropriate level.

6. Think about alternative ways how copyright can be preserved and protected in other ways than straight up banning suspected copyright infringers from the internet.

 

If you have some ideas, do comment below. I would love a discussion.