Sebastian Gräßl

sebas: a nginx based URL shortener

nginx is an awesome web server! It is reliable has a whole set of features that have become essential to me, for example upgrading the nginx binary on the fly, without downtime, is just awesome as well as reloading the config with a HUP signal. Another interesting thing are nginx modules that can connect do a DB, like PostgreSQL, MySQL or Redis and read and write to it. That way you can build simple APIs without having a ruby or php or whatever app as a backend.

This morning I thought let’s build a lightweight URL shortener just with nginx and a 3rd party postgres module. There are implementations out there that use Redis instead of PostgreSQL, but I found that they do the same with much more lines of configuration and have to much functionality that I don’t want.

I wanted to keep the requirements to a bare minimum, it currently requires the postgres module and the Lua module. I needed the Lua model to do the redirect based on the value in the database and since nginx’s rewrite function handles variables in a weird way I used the Lua module to take care of that.

You can find the result on GitHub

I was looking into deploying it on Heroku and it should be no big deal. As soon as I found a nice short top level domain I will deploy it there and post a how-to here and on GitHub.

A distributed company: Meet when you need

In my opinion, meetings should be kept to a bare minimum or be banned. Put discussions online, use a simple messaging system, a forum or simply email. Meetings are thought of this collaborative process where people can throw in their ideas for a specific topic. In my experience this ends in an endless meeting, unless everyone takes at least an hour before a meeting to prepare.

A distributed company: The virtual office

A company needs an office. Most people think of it as a place where they have to go to their work. I like to think of it as a place where I can go to meet my co-workers, a place where we can sit side by side to work on a problem. But when it comes to working alone on a specific task, I sometimes have a hard time focusing. So, why not let people work from wherever they can be 100% focused and get into “the zone”.

On Privacy, Bonus-Cards and PRISM

The recent events around Edward Snowden, PRISM and other governmental initiatives to spy on citizens made me think a lot about privacy. A lot of people, I would even say the majority of people do not realize what privacy is. Your own privacy is invaded the moment you are born, a record is started, with your name, your date of birth, who your parents are, where you are born and probably a lot more. The country you are born in recognizes you as one of their citizens. That is just the way it is and it has been for centuries. Every time you enter a new phase of life a new entry is made. The government knows what school you went to, your insurance knows what vacancies you received, how many bones you broke in you life.

RailsGirls is a good thing.

Recently I got ask a lot why I am active in the RailGirls community. The short answer, “It is fun and I think i do the IT world good.”. Here comes the long answer…

RailsGirls is a good thing and I am greatly thankful that Linda and Karri started it and it has grown to a global initiative to give people a platform and community where they can satisfy their curiosity. All people involved in it are awesome people. People who push their students further or students pushing their coaches to the limits. I am every time amazed by how eager students are, how fast they get a grasp of things and start exploring every corner of what they can do. They start to go deeper into backend development and add new gems to their application allowing users to login. They go ahead and read up on CSS to style their login forms. They ask you “How can i upload more pictures to one idea?”… It is exhausting as a coach, but good exhausting! This is one reason why I love to help RailsGirls!

Another reason is that we need people in IT. We have a lack of developers, things that would be possible can not be done, because there are simply not enough people. We need to change that! People and companies need to change there requirements to hire developers. Being a good developer, does not mean you need to have PhD in computer science. A good developer is someone who can put knowledge into use and grows that knowledge every day and they will. The most important thing to coaching or organising a workshop like RailsGirls, next to the intro to Rails, is showing them how and where to find further information. Essentially teach them how to learn, rather then throwing information at them. I had to learn that and it took a while. I want to give them what i have learned. And they are grateful for this.

Three days ago a project originating in the RailsGirls community, RailsGirls Summer of Code raised their goal of $50k i was amazed, happy, excited, because it shows how appreciated these newcomers are! Not only by the people involved in, but companies who supported it from the beginning. This will be an annual thing, i’m sure, if not i will personally put an afford in it that it will be.

If you are a developer, help out at a RailsGirls workshop! If you are curios about programming attend one. It is simple and each and everyone gets a warm welcome to the community!

RailsGirls <3

Global before local

I am attending a couple of meetups and I coach (and help organize) RailsGirls events. I’m always looking for new events that i can attend to learn more and meet new people.Sometimes I have a little problem. That problem is that some events have not established that the primary language should be English. CodersWithoutBorders wants to connect groups of coders with coders from other cities and other countries, all meetups on that page should follow the guidelines put up on the site. The first rule is “English, please!”

Let's start CodeCafe

Recently I made it a weekly thing to go to my favorite bar after work for an hour or so and enjoy a cold baverage and work on something not work related, like Mephisto, just to get my head free. And once in a while I meet up with a friend of mine to help her with projects. I like the aspect to do work in an environment where you feel comfortable and you have company, sort of. If you need to get distance from your code for a bit, just make smalltalk with the waiter or waitress.

“Why are you not going to a co-working space or hackerspace or …”, you might ask. Co-working-spaces, even if they are as nice as sektor5, give me the feeling, that I do business there, which is exactly what I need to get away from. I get a similar feeling when I go to hacker-spaces, like I am there for a specific purpose. I also like the possibillity of my coding session to just turn into a get together with another friend joining, who is there just to enjoy a drink and most of my friends who are not coders or in IT are not comfortable to just drop by a Co-working- or hacker-space.

Today, Floor and I were talking and I told her it would be nice if I’m not the only one in the bar/cafe sitting there and staring at my laptop and we were starting to brainstorm around. “Why not make it a weelky thing?”, “We need a hash tag.”, “Wifi at Liebling is not sufficiant”, and so on.

So, let’s get this thing started.

We call it “CodeCafe”, this will also be the hashtag we will use. We will meet some day next week at werkzeugH. More info will follow. Everyone who wants to code can join.

Start follow the @floordrees and/or me for further stuff on #CodeCafe!

The perfect development setup

OS X is for my the preferred and perfect development environment. Homebrew is perfect to install software like Node.js, PHP or NGINX and it's fromulas are almost always up to date and install you the latest version. For Rails/Ruby i use RVM to manage different version of Ruby and Gemsets for different projects and Pow to avoid the hassle to start everything with "rails server". Basically everything goes through NGINX. To get this working i had to go through a couple of instructions and piece everything together. To not forget how to do it i'm gonna write it down here.

My Story

I’m a developer and I think I do a good job. I always give the best I can and strive for perfection where I can and constantly research and try to learn how to accomplish that. Information is what I am addicted to, specifically the kind that might help me move forward in my field. I do this now professionally for more than 7 years. Let me tell you about the, sometimes hard, way I took.

I became interested in computer when we got a C64. That simple little command RUN fascinated me. The whole concept still fascinates me. I loved that blue screen displaying simple interfaces like GEOS or letting us drive around with a Hotwheels car and repainting them over and over again. (I still get the purpose of that game). A few years later I got my first “Computer”, a VTech Genius Leader 5000. It is a computer with a three line display with a couple of educational games on it, including a BASCI editor & interpreter (Yes, I consider it educational). So, I started learning how to write programs in BASIC. A little while we also got an old IBM computer with an Intel 386 processor, 100MB HD, 8MB RAM etc. It was not the best for it’s time, but enough to boot and reinstall Windows 95. From that point on it wasn’t easy to get me away from a screen. And when we got a, for that time “modern”, computer and internet I published my first website on GeoCities.

This was the first time the web grabbed my attention as a platform to work with and on. I researched stuff on HTML & CSS and asked friends I knew were doing the same thing about their learnings. One day the brother of a friend of mine, Simon Dorner, was holding a book in his hand Eric Meyer’s “CSS: The Definitive Guide”, while trying out the stuff on his Power Mac G4 switching between Mozilla and BBEdit. When I showed interested in what he did, he started teaching me. He showed me that table-less layouts are better, he told me about web standards and the whole purpose behind it. I learned a lot from him and I am still thankful for that.

This is how I got into becoming a Web Developer.

School was secondary to me. I didn’t feel comfortable there. I was more comfortable trying to figure out how I could get my computer doing the work for me. I was good in what I wanted to be good in and in topics I was interested in. I could score a good grade when I wanted or needed to. I kept going with motivation barely existing. I felt it was necessary to become a professional in technology. When I was 19 I had enough, I wanted to do what I loved for living. So, I worked as a freelancer doing various jobs for different clients, after a while I realized I am not an accountant. I just wanted to be a developer. I started looking for an employment. After a few months a company hired me as a Front-End Developer. I found myself with a steady income, I moved out of my parents place etc. I was happy, because I had what I felt was my dream job. Since then I switched jobs five times. I worked at companies that had a product or a normal agency, or a mixture. I enjoyed working at all of them!

In all that time I never stopped learning. I never stopped failing. And believe me you will fail a lot. Your head will hit the desk more times than you want, because you forgot that fucking semi-colon. But all that failing kept me going and still does. I never wanted to go to college, because I knew it was not an environment for me to learn. I want to learn what interests me, what I know I will need the next day.

I don’t think that there is one way to reach a goal. I don’t feel that school, college and internship is necessarily the way to go for everybody. In my opinion if someone has a dream, she or he can reach that. And they should choose the way they feel is right for them. And if they love what they do, they will be the best in their field.

I support anyone who gets interested in what I do and how to do it. If somebody comes up to me and asks “Can you explain this to me?”, it makes me happy and I will drop everything and do my best to teach. And trust me if you want to do something, there is always a way. I had a lot of pitfalls, but you have to get up and keep going, always, because you will get more than you ever thought before.


In 2010 a new word in German has been crowned “Word of the Year 2010”. It means to feel ashamed on someone elses behalf and this is what I feel when I read or hear about how some male colleagues in my industry behave towards women. And i have the feeling these reports are getting more and more. Be it caused by more women in tech or by more women taking a stand. I welcome both and do my best I can to support them.

The mindset that these guys advocate, which is basically that women are not capable of being good in technology, is basically bullshit. There are plenty of colleagues out there who are female and without them we would not have decent Web Standards, OAuth, programming in general and much more. I admire them, the same way I admire some men, for what they contribute(d) to the field.

To assume that men are better in technology, because there are more contributions out there from men is wrong. It is a fact that there are less women in our field, therefore more contributions are of male origin, which of course does not in any way mean they are more or less valuable.

I crave for equality in technology and basically in everything I am involved with, therefore: I want more women in tech!

I do my part by helping at Rails Girls events and other workshops to get people started with programming and there are a bunch of guys, good guys, who give their support as well. If you are a woman who is interested in programming i highly encourage you to come to one of these events and see for your self that every male there is in no way to be associated with disrespecting douche-bags mentioned in this post at the top.

My albums of the year 2012

Dicovering new music, listening to the latest album of my favorite artists, seeing them live. All that is a big part of my life, therefore i decided to show you my favorite albums of this past year. Of course there are much more albums I listened to, but these are the ones I still listen to.

Mumford & Sons - Babel

What i loved about their previous album was there ability to build up tension within there songs and cause a amazing explosion of emotions. With this album the keep it this way. “I Will Wait” is the favorite of most on this record, it also is mine. I did not yet have the chance to see them live, but i imagine it an amazing concert.

Band of Horses - Mirage Rock

I listened to “Knock Knock” when they revealed the video for it, before the album release. I was stunned. It was much more rocky then I expected. The whole album is more decorated with a lot more drums and and guitar action. Rumors say that even Jimmy Page likes it.

Japandroids - Celebration Rock

And a celebration of rock it is. “The House That Heaven Built”, what a song. When I hear it, I need to bang my head. It is impossible not to. After enjoying it for weeks I had to see them live. I went out of there completely soaked. Not onlye due to the fact that the little venue was packed.

Best Coast - The Only Place

This album ruled my summer. Go out into the sun and turn on “The Only Place”. And dance. This is what it does to you. Here in vienna we don’t have the ocean, we don’t have the babes and we also don’t have the waves, but this makes you feel we do. It will probably continue to be a record I will listen to when I want to escape the city for a moment.

Paul Banks - Banks

Oh, Paul. His solo project “Julian Plenti” was already a good move. Not saying Interpol isn’t good, but somehow his solo projects seem to bring out the best of him and suit his voice even better. Even though it is sometimes rocking it keeps you in a melancholic mood.