Creating Techup.lu (well…copying Techup.ch)

I commute every day 2 hours to work and after more than one year of doing so I was tired of reading stupid books, listening to music,… In other words I was bored on public transportations in Luxembourg. The best thing as a Software Developer, your office is always where you are. If you are lucky and have a notepad on your knees to can even code instead of just scribbling notes to your notepad. Techup.lu was born.

So I decided to create a small Grails project and deploy it to Heroku. The first idea to do as a project was a clone of the brilliant techup.ch. (Techup.ch is a community effort to create a centralized, but open repository for meetups in Switzerland) My plan create a techup for Luxembourg. Just to be sure I asked them if I could create a copy of their project.

Just at that time I found Heroku a PaaS, which had everything I needed and allowed me to deploy the app for (almost) free to the www. Deploying a Grails application to HEROKU is as simple as a Git push command. Deploying a sample App to Heroku took me less than 20 minutes. I really like the approach Heroku choose as a PaaS. You get a command line tool (I think written in Ruby), and I love working with such tools. I always believe command line tools don’t need to put effort in the GUI, giving more budget to create a robust tool. Besides the Heroku tool, there are quite a few Heroku Addons and most of them have a free plan for small apps. For example, a MemCache Addon gives you a free of 25mb MemCache bucket. Further Heroku have excellent support for Postgres DBs, that I use at work too. The DB for development is free, and you get 5mb for free, but a shared plan is available at 20$. Further a small decicated DB is already available for 50$ per month.

Getting started is usually very simple and on the train I got my 1 hour dev time per day. Usually I deployed the app at night from home, just to be motivated to see the app online. And to be able to test it on other devices, as soon as an iPad, iPhone or other tablet was around, I tested the running app.

I used Twitter Bootstrap (2.0.2) from the start, which was looking back a bad idea, since I produced a lot of html tags, css classes only for styling. So I guess this is not the way it should be I thought at some point. I spend a lot of time getting rid of most of this overhead HTML code.


<div class="article row">
<div class="content span3"></div>
<div class="sidebar1 span5"></div>
<div class="sidebar2 span2"></div>
</div>

Do you see what we have done with our code? We have created a table, and tables we know should not be used for layout. So where is the difference from the above code to a table? Instead use the Bootstrap mixins in your LESS files.


.article{
makeRow();
}
.content{
.makeColumn(3);
}

Unfortunately as the design was binded to my HTML, I could not get rid of some bootstrap style classes in my HTML. This is going to be something that next time I would do completely differently. Instead of binding my dev code to some framework, or produce overhead code for styling, I would develop with a blank app, completely without styling. Maybe this will not give me the same additional super power (by motivation), but in the end will not be frustrated to spend so many time cleaning and refactoring the code.

Another problem I had was that g.formatDate gave me different values for Phones(iPhone and Android) and Desktop, which lead to quite some confusion that I am still investigating and will make an additional post on this issue. It seems that formatDate, if no TimeZone specified takes it somehow from the request?

Today I am launching techup.lu, after more than 2 months of “in train” development. (The google maps and twitter part of course had to be done at home with an internet connection, to test and read the docs, this means I cannot give it the certification of “Developed on Public Transporation 100%”) I don’t know how the community in Luxembourg is going to react and if the hackers from Luxembourg are going to use it. Of course if the community would use it, I would be very pleased and I would be happy that I could have given something to that community. If nobody wants to use I will have lost nothing and just spend some time doing what I love.


The app is still BETA, so be nice and please report bugs and feedback to me viw twitter @techup_lu. The performance on Heroku for Grails is unknown to me, so I will have to keep an eye on that :)

 

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre user="" computer="" escaped="">