Hello!

You're visiting my little space on the web. This should be place where I share my thoughts with the world. But I often end up writing code instead of prose, even though I always tell myself I should write down my thoughts more often. You can read more about me here


#Blogs

Website Update

2 February 2015

Updating your website or blog is a great excuse for learning a new technology. In the past I used this webpage as a pretext for getting more familiar with backbone.js & javascript in general, now I've built this (static) website using clojure. I've been looking into clojurescript & clojure for a while now, but not always very actively.

True to the spirit of clojure, I tried to keep this website as simple as possible. That means that:

  • I have just one page, no need to add the additional complexity of multiple pages. In the end I only have a few of them.
  • The css is built using skeleton, a very simple framework.
  • No special features, the website just present the information you would expect from a blog/personal website. No tags, comments etc.
  • Almost no custom js. The previous version of this website relied heavily on javascript, which made it more fancy, but also more complex and less robust.
  • This is a static webpage, meaning that the page is built only once and can then be hosted on every http server.

Now that I have a new website, one that should be simpler to use, the goal is to write content more often. But given my track record, I don't have high hopes in this regard. In any case, this was already a start.


IAESTE reunion & Tatra Mountains

30 August 2013

Sailing Ireland

30 August 2013

Sailing with Les Glenans in Collanmore, Ireland. Just before the closing of the base, which is a real shame as it's an absolutely gorgeous spot.


London & Kew Gardens

28 February 2013

Processing streams with scala

2 December 2012

Lately I've been looking into the scala, a programming language that tries to combine oop & functional paradigms in an elegant way. In addition it's compatible with java ( scala compiles to java byte code ). This allowed scala to become more than a theoretical exercise. Companies like foursquare and twitter are now succesfully using scala, which stands for scalable-language, to power their backend. It's good to see that a great technology is popular aswell.

As an excercise to get more familiar with scala and surrounding technologies I've written a streamprocessor. You could see it as an 'alternative' to the famous storm streamprocessor by twitter. To build the processor I've leveraged the following technologies/libraries :

The rickshaw library is only used to visualise the data that the stream processor sends over websocket.

My minimal streamprocessor is based on 2 concepts : Taps and Sinks. They are similar to Storm's Spout and Bolt concepts. A Tap will generate the stream, typically by getting data from an external system. In my application it listens to messages from statd daemons, but it could also fetchtweets from the twitter firehose. A Tap is in fact just a wrapper around an Enumerator ( for documentation on Iteratees check the play framework wiki ). A Sink is the endpoint ( in my example application it sends messages over a websocket ). You can connect a Tap with a Sink by providing an Enumeratee that will transform the stream, an example might be filtering tweets on hashtag. Enumeratee's are very powerful but I must admit that I'm not fully comfortable with the concept yet, so I still need to find out if there're things you can't do with Enumeratee's. I guess I'll have to find out while adding features.

To end a screenshot to show how it looks, if you want you can try it yourself, the code is available in my repo

statsd test.


A new website

21 October 2012

I've decided to revamp my personal website, this might seem odd as my previous one was only a few months old. But the truth is that I wasn't entirely satisfied with it. It was my first encounter with Backbone.js and while the application works as it should. It's not the greatest example of a good architecture. After gaining more experience while building a git ( or rather github ) based wiki. I decided to build it from scratch. On a functional level the goals were still the same :

  • support for showing blogs
  • support for showing pages
  • support for showing albums
  • nice animations

In addition I also wanted it to be easier to write blog posts with prose.io.

But the real changes happend behind the html/css curtains. I still wanted to build a fully client based system based on backbone. But it had to be far more robust and easier to extend. That's something that wasn't easy enough before. It's now quite easy to add new functionality.

The main concept or idea of the new version is that every page is a query. For this I've implemented a very simple query language, which allows you to display all matching items. So you can for example go to : http://jolos.github.com/#type/album/title/2012&!summer. This query will give you all items of type album wich contain the word 2012 and which not contain the word summer. This query language is already sufficient for doing most simple queries, but there's still room left for improvement. I should for example still add support for querying nested datastructures and using parentheses to expression precedence rules correctly.

The provided query string will be recursively parsed into a filter. This filter is built using the decorator pattern, so NOT, AND and OR filters can decorate another filter.

Once the filter is parsed several fetchers are fired to fetch all items from several sources. These items are all added to a collection. If the item matches the filter it's then being copied to a second collection. The latter will be used by the main view to actually display the items. This main view relies on a view factory to construct and intialize the view that corresponds with the item.

To conclude some words on the animations. This was something I struggled with while building my previous application. It's not easy to get the state flow 100% right. That's why this time I built an abstract StateView. You can use this stateview to control the states of your view. You just have to define states and the animation callbacks that correspond to the transitions between the states.

If you're still interested in finding out more, take a look at the code


Realtime searching logstash

7 June 2012

Lately the web is seeing a lot of fundamental changes, the explosion of this mobile thing, the possibility to create advanced web applications with modern js libraries and css3,realtime web thanks to websockets and there's probably more. I had already experimented with one of the modern mvc js libraries ( backbone ) of which you see the result at this very moment. I was already planning for a while to take a look at websockets as it really redefines the concept of a webpage.So I decided to implement a realtime search frontend. Why? Well when I was looking at Graylog and logstash I noticed that neither of them supports realtime search.And when you watch your logs, you do want it to see it in realtime. or this small project I set the following goals:

  • written in scala as it's one the (many) languages I wanted to learn
  • use akka: a framework for message passing
  • make it scalable
  • use zmq 'the intelligent transport layer'
  • make sure it's event driven"

I barely scratched the surface of all these new technologies but still I think I can make already a first judgement:

  • Graylog's ui is much neater, but I prefer the pipe architecture of logstash
  • Scala is at first overwhelming ( and it still is ), but it's certainly a powerful programming language and I'm very much interested to learn more about it
  • Akka: I was impressed on how easy it was to integrate with zeromq. If you have to implement a scalable and distributed application you should certainly consider Akka
  • Zeromq: don't waste your time, learn it now! :-)
  • So most of the good things I heard about these technologies are at this point certainly justified. To conclude a screenshot of my hello world, the code can be found at my github repo


A new website

24 April 2012

You can't really call yourself a (web) developer if you don't have a ( fancy ) personal website. I did have a website and it was not even that bad. But somehow I didn't get to actually using it ( except for the one or two blogposts, which I'm planning to preserve for the sake of the future generations ) and I always planned to build a small website from the start myself. So time to start working on a new website!

From the start my plan was to heavily depend on javascript and to work with backbone.js, a mvc library implemented in javascript. Backbone.js is pretty powerful so the basic frontend code was finished quite quickly, although there's still room for some improvements ( and bug fixes ). I didn't bother testing it on older browsers. So if you're not using a modern browser, I can't guarantee that everything will work as it should. Firefox and Chrome should do the trick though.

The backend part took some more time, not because this was the hardest part. But somehow I never got really satisfied. For now I settled with a rather peculiar content repository : git on github. That's not the most straightforward way of storing content. It's certainly not the most scalable solution, but it has some advantages. The biggest one being that it costs me absolutely nothing.


Spring 2012

1 April 2012

Strolling through Japan

27 September 2011

My view on this enigmatic island.


Two weeks of Japan

27 July 2011

Some people started complaining about the lack of blogposts ( actually, only one person, but never mind that ) so today I'll try to make up for that. The reason why it took me so long is simple, I was just too busy :-). Last two weeks really have been like a rollercoaster and rollercoasters in Japan are quite spectacular. It's a bit of a challenge to put all these new experiences into words, but let's try anyway.

I think it's a good idea to kick off with the practical side of my life here, the dry facts so to speak. The travel to tokyo went quite smooth, but flying is only fun for two hours but after that it gets boring. I didn't have much problems with the jetlag, tough the first week I had difficulties to fall asleep. Right now I'm staying in Ikegami, ota-ku a city in the Tokyo prefecture with a population of about 700.000 people. For people who want to suprise me with a visit this google map shows the exact location of my dormitory.

The dormitory is quite a big building, I guess that about 40 people are staying here. Not only students by the way, a lot of people here are employees. It's a decent place, I don't have to cook myself, breakfast and dinner are prepared for me. Which is very convenient. There's only a public bath and it takes a while to get used to that. I've got an airco at my room, but due to the powershortages you're only allowed to set it at 28° C. Which translates in a room with a temperature of 29° C. So let there be no misunderstanding, Tokyo is hot. 'Atsui' (hot) is probably the most used word out here.

Also, it's unfair to compare it with hot weather in Europe. With an humidity of over 60% 30° feels much hotter. When you leave the relatively cool trains, the heat and humidity blasts you in the face. When you walk for 10 minutes, you're wiping the sweat of your face. Most people in Japan dislike this weather and I can't blame them. But it's part of daily life and life doesn't seem to slow down because of it ( as is sometimes the case in Europe ). Instead people use things like umbrella's, sensu's and airco's to fight the heat.

The main reason I'm in Japan is for an internship, I'm a trainee at Sony Computer Science Laboratory. It's a very interesting environment, in the sense that the researchers there all have very different research areas. It's also a very challenging intership, so I'm more than lucky to get the opportunity to work at sony csl. I'm able to do this internship because of a program called IAESTE, which is a program to help engineers to do an internship abroad. The best thing about IAESTE is that there's a whole group of volunteers in Tokyo who support me and the other trainees, introduce us to their culture, organize events and take you out for sightseeing even while they are studying for their exams! ( In Japan Summer holiday starts in August and the schoolyear ends in march) I've already met some nice people and even after just 2 weeks it will be clear that it's going to be hard to say goodbye.

Japan is a civilized country, but you can't compare living here with living in Belgium/France or other western countries. Of course people in Japan have mostly the same dreams, desires and hopes as in any other country. So the basics aren't that different, you sleep you work you eat and you sleep again. But the difference is really in the details, little things that make it a different world. A lot of things you are used to in your own country you have to relearn. Things like working with the washmachine, queueing left, opening keylocks, using hashi ( chopsticks ), bowing, etc. At home these are things you do without much thinking, it's good to lose this stability from time to time as it forces you to live more intensively.

In any case, I already have a lot to write about. About food, Japanese people and their culture, about earthquakes and energy, language and so much more. I hope to write about at least some of these things, but time is limited so it might be hard. Anyway, this was a start!


#About

I'm Joris Geessels, Jolos is the pseudonym I use on the net since the age of ~15. I graduated as a computer science engineer from the University of Ghent. As an engineer I'm interested in 'building stuff'. You could say that as a software engineer I do this by means of code. But it's my belief that building software is often more about 'engineering' people than programming a machine. Nevertheless I certainly get excited by solving a technical challenge.

I spend most of my day at Luceda Photonics a company that I co-founded. At Luceda Photonics we build design software for photonics, an emerging high tech market. I think that we're doing some really exciting things, if you would like to hear more, ask me about it!

#Interests

Dinghy Sailing

It's wet, it's cold, it's exhausting but everytime when there's a nice breeze, I long to go out sailing.

Sadly it's an expensive sport, so I only do it a few times a year. Almost exclusively at the French sailing school Les glénans. I especially adore sailing the 29er.

Computer Science

Computer Science & programming is a rapidly changing industry & domain. This makes it interesting, but it's also a challenge to keep up with all the advancements.

Some random keywords (or buzzwords ?) : python, clojure, functional programming, immutability

Japan

One of the most intriguing and versatile countries I've visited. I had the chance to do an internship in Tokyo in the summer of 2011. The memories I have from this time and from my travels afterwards are still very vivid. I'll certainly go back, but unfortunately you can't just walk there.

Film & Photography

I really enjoy watching a great movie. To me, a great movie is a movie that makes you think differently about something, and succeeds in telling its story in a visually appealing way.

Reading a book

Reading is something I want to do much more often. In a world where fast-paced consumption of information is the norm, reading a book is more important than ever

Minimalism

A vague and broad term, but the more I realise that the world is a complex thing, the more I get to appreciate the value of simplicity and minimalism

#Links