GC v0.34 Tokyo* Edition

今晩は! BrewDog's Tokyo* has arrived to the taps of Vihreä Haltiatar. To celebrate this glorious nectar of gods, we shall go and drink it all on Wednesday the 18th of December, AD 2013, 19 hours past the moon cycle reset. Be there or then don't, I'm just a blog post not a beer police.

PS. Some of us will also be playing chess in Vakiopaine before the beers at 1700h. Everybody is invited~

Geeks gone Christmas (GC v0.33)

The next GeekCollision will be held in the good ol' Vihreä Haltiatar on Wed the 11th, starting whenever the bar opens (six, it normally opens at six).

Since it's The Season, we'll call it the Prechristmas GC. No secret Santa, no red elf hats – just you and bunch of guys and girls drinking Christmas beers or whatever floats their boats.

See you all there!

Meeting about meetings, Wednesday 20.11 at Hemingways, starting 18:00

Let's have informal event about hosting meetings in the area. It would be ideal to have some way of easily setting up a meeting and getting people to express their willingness to get involved and participate.

There's things like Meetup.com, facebook events (yuck), doodle's etc. Would be beneficial to have something to orchestrate GC meets, Lean Coffee's and stuff, no?

So Wednesday, Hemingways, 18:00. You want to eat something and want company around 17:00? Holler people at IRC #geekcollision

Peace, out.


Afterthoughts - GC v0.32 (Bus Problem)

So we had a little GC, weight on the world little. Five people showed up at the pre-event while there were only three to four of us at the actual event depending on how you count.

We got a nice little introduction to the topic from Tuukka and made some progress on the converter. A couple of notes:

  • Parsing 600 MB XML isn't as easy as you might think
  • grep or similar works great for getting quick insights
  • Apparently combination of grep and sed works to some extent provided your XML is formatted right

Besides the data we also had access to XML schema, documentation etc. You can find links to the relevant data at our previous post. The converter repository itself contains some interesting bits.

We tried sort of test driven approach first. The problem was that there weren't any concrete examples anywhere. It was all described on a higher level. Sure, we had that 600MB XML but try extracting examples out of that... That is where filtering approaches came in. We knew station data had an id related to Jyväskylä. Using that it was possible to access some other data as the data is relational after all.

I'm thinking XSLT could have come in handy. Alternatively we could have tried to load the data to a database (SQlite or something?) and then manipulated it further. I am sure these kind of things are easy if you have any kind of routine. Maybe I should have taken more XML courses at the uni after all...

We didn't get any test cases written yet, though. With some assistance from Tuukka we did manage to find one typo (Modetype vs. ModeType) and solved on of the three issues. There are still two issues left but I can do something about those on my own.

Special thanks to Tsuri and Michael for showing up! It is always helpful to have some extra brains in the premises. I am not sure if Hemingways is actually ideal for coding intense events like this. This time it was uncharacteristically crowded. Perhaps we just got unlucky.


Pre-GC v0.32 on Wednesday October 23 (17:00-18:00) @ Jalo

Just a quick update. Due to some sudden demand we will arrange a small pre-GC event at Jalo right before our main event at Hemingways. So consider this option when making your Wednesday plans!

GC v0.32 (Bus Problem) on Wednesday October 23 (18:00-) @ Hemingways

This time we are going to have a bus themed collision. As you might know there is going to be a nice open data related event around 8th and 9th of November. The theme ties into this closely.

Tuukka Hastrup has developed a mobile navigator that works at Tampere and Helsinki. This makes it significantly easier to figure out which bus to ride and when. In short it's a bit like car navigator but for bus people.

It is possible to make this system work in Jyväskylä. For that to happen we will need to convert certain data in correct format. This is what the collision will be about. In short we will be taking data from matka.fi (kalkati.net format) and convert that to GTFS.

In case you want to study the problem before the GC, consider the links below:

The current converter works partially. The result may be loaded into the navigator and even works on certain areas. There are some missing features, though. These include vehicle types (current all get assigned as bus), route names (missing or incorrect) and route dates (see add_calendar). Route dates should be transformed from Kalkati vector format into GTFS files calendar.txt and calendar_dates.txt.

It would be pretty awesome if we could tackle this problem. See you there at Hemingways! In the meantime enjoy this little bus video:


Afterthoughts - Lean Coffee - No Estimates

I have no estimates and I must code. How horrible is that? Or is it? That's what we talked about at today's edition of Lean Coffee. Even though it was early morning surprisingly many people showed up. Thanks for that!

In case you want to see what we talked about, check out the summary at Lean Coffee blog and my scribbling titled as Sell Value, Not Features.

I hope the tradition continues. It is definitely nice to focus on some specific topic for an hour. You can cover quite a bit within that short time and maybe get ahead with your ideas.

Please remember to register to the Open Knowledge Roadshow (8-9.11) and possible mobile testing event. The latter will happen only if enough people are interested. If mobile testing sounds like meh, we can likely do something about the topic.

Open Knowledge Roadshow - 8-9.11 - Registration Open!

I have a very interesting announcement to make! The registration to Open Knowledge Roadshow is open. You might have some idea about open data and such. This is your opportunity to take it to the next level.
Bridge to somewhere by Paul Bica (CC BY)

The event itself is split up in two days around 8th and 9th of November (Fri, Sat).

The first day focuses more on the conceptual level. Its primary purpose is to get the right people together so we can finally get the ball rolling here at Jyväskylä.

The latter day acts as a bridge to the reality in form of Konstruktori. That is where your coding skills will become really handy. Konstruktori itself is a pre-event for a bigger demoscene event known as Instanssi that will be held next year.

The exact program is available at the registration site. The roadshow site contains some interesting information as well. The event is of course free. See you there!

Special Treat and Possible Event on Mobile Testing

Testing, testing. Is the mic on? Guess so. As you might remember we had a small evening of testing a while ago. Surprisingly many people showed up. Special guest of our event, Maaret Pyhäjärvi, prepared something special for us. Check out her slides "Five Lessons of (Agile) Testing for Everyone".

There's more to it, though. If there's enough interest, we might get another testing guru around. Rather than trying to explain what this thing is about, I'll let Juha do the talking:
We have the possibility of getting a high profile testing professional Ru Cindrea to work with us in domain of Mobile Testing. Something like workshop, dojo or something else.  
Please mark down you interest of such event! If there's enough, like 10 or more, then we'll make it happen! Doodle
And please share this forward in your organization, if there's even slight possibility for interest :)  
br, Juha Heimonen 
So if this sounds interesting to you and you would like to learn more about mobile testing, sign up! Also let your friends know and make sure they let their friends know too. Laters!

Lean Coffee: No Estimates. At Media Cabinet office, on Tuesday 15.10, 9:00am

Let's talk about No Estimates!

From Neil Killick:

" It was started by @duarte_vasco, @WoodyZuill and myself, and has involved such prominent names as @mikewcohn and @RonJeffries.
#NoEstimates is a collection of writings and debate about ways of delivering software without the need for deterministic estimates"

And from Woody Zuill:

"Having noticed many dysfunctions in estimate-driven software development, #NoEstimates seeks alternatives."

Texts by Neil Killick: http://neilkillick.com/category/noestimates/

Let's start the session with short briefing by Ville Törmälä (and maybe yours truly too).
Session is hosted by Media Cabinet. Our office is at Kolmikulma. Just go right in from the main entrance, then to right to the staircase, go up to fourth floor, and turn left.

We have limited time available, so let's be sharp!

If you can't find, ring me:
Juha Heimonen / 040 5255995


Afterthoughts - Overview of Go

That's the Go critter
Big thanks to Michael Cochez for organizing the event! It was great fun. All in all around eight people showed up. There was also a new Tero around. Welcome!

We went through various tasks at Tour of Go and discussed details of the language. I think this sort of format works well for providing some idea of how some language works and what kind of concepts it provides.

Even though Michael had prepared a small assignment for us, we didn't go through it this time. There was some talk about a possible another session where we would focus on coding something. We didn't get into scheduling yet, though. It's up to Michael I think.

Likely the next bigger event we'll be organizing will be battle of web frameworks vol. 2. as there was some serious interest. It will be likely arranged three weeks from now. There will be a separate Doodle for that. In the meantime we might have a Lean Coffee or not.

Afterthoughts - Short Introduction to Metasystems

Today we had a small session with Joni Töyrylä about metasystems. We discussed a system he had developed in particular. While at it we tested Google Hangouts. Although planned we didn't end up recording the session. Instead I thought it might be a good idea to gather some thoughts.

A metasystem can be defined as a system that allows you to define systems. In this case the system made it possible to define models of the actual system. In addition the system allows to define a limited set of user interface related settings such as ordering and visibility of model attributes. All of this was possible through a user interface. The system generates actual code based on the definition.

One cool thing Joni had in place was the possibility to extend existing metamodels. In effect you could take something more abstract and then build your model on top of that avoiding some of the work required. Another thing that I took a note of was the fact that the system provided REST API for the models defined automatically.

This is something I've seen implemented before on Enginio. There are a lot of these BaaS services available these days. Firebase is likely one of the most hyped at least according to what I have seen. The primary advantage of these kind of services is that they remove one bit you have to implement anyway and take care of things like scaleability.

How about changes to data model (aka migrations)? Joni did not have a clear answer to that yet. There are some solutions definitely but which one to implement is another story. And using metamodels, such as Joni's, doesn't actually relieve you from defining your business logic and user interfaces.

In terms of business logic services such as Noflo could become very interesting. Combine that with web based IDEs such as Cloud9 and a service aimed for the user interface side, such as Jetstrap, and you might have something nice together. It would not surprise me a lot to see these kind of services (backend, logic, frontend) to meld together. With good enough integration developing web services on top of web itself using a web browser itself could become mainstream rather sooner than later.

I think the session with Joni gave us a small peek at the future. Historically systems such as these have been in use. They've never reached popularity in mainstream. This is something that just might change by the end of the decade.

In effect this would mean at least some level of commoditization on the segment of web development. In other words this would be yet another step towards a world where more people can develop and share their creations as the barrier of entry becomes lower. Services such as Yahoo! Pipes already give us some idea. Now just to wait for the solution that combines the critical bits together and provides us something to develop entire web services with.

GC v0.31 (Go programming language) on Wednesday October 2 (17:00-) @ Hemingways

Gopher (source : http://golang.org/)
According to http://golang.org/, Go is an open source programming environment that makes it easy to build simple, reliable, and efficient software.  It is supposed to be the new C, the simple C++, the typed
python and the Java without writer's cramp.

If you want to learn a new way of doing OO without inheritance, write multi-threaded code and unleash the power of the typed channel, come to Hemingways on Wednesday October 2 starting around 17:00.

We will shortly look at some of the language specific features and then try to implement some code to pass unit-tests.

People who think first class functions, multiple return values, and closures are not good for mental health should get eased by the fact that Go supports variable names in UTF-8; finally we can write käärme := "aaaaaah", but also 世界 := "world".

Go is easy to understand for anyone with some programming experience. You can try go at http://tour.golang.org/ .

If you're not convinced yet : did you know that Go has built-in complex64 and complex128 types, which surpass everyone's imagination?

Lean Coffee Jyväskylä III at Wilhelmiinan Konditorio on Wednesday 25.9, 9:00 am

Notice changed location!

Notice it's morning meeting this time.


Short introduction to metasystems

Short introduction to metasystems in Muurame on 27.9 (Friday). We will briefly explore a small scale metasystem project. 4 people max, transportation can be arranged.

Sign up at http://doodle.com/bmpac8ghkczxkvvw

Lean Coffee Jyväskylä part II on Wednesday 18.9 (17:00). at Hemingways

Another shot at Lean Coffee concept. At Hemingways, bring your own pen if you wish :)

Geeky Jyväskylä - Event Calendar for Geeks

I set up a Google Calendar known as "Geeky Jyväskylä". The idea is to aggregate geeky events into a single calendar that can be easily subscribed. The calendar has also been integrated into the sidebar of the blog.

If you would like to join the group of maintainers, let me know and I'll add you to the crew.

Lean Coffee Jyväskylä on Wednesday 4.9 (17:00). at Hemingways

Let's get together again! Talking is fun, but what to talk about? Lean Coffee is a way to have structured discussions without predefined agenda: We decide what we want to talk about during the event.

Check the website for the details, the structure is very light and the event will cozy. First we'll gather up some items to discuss of, then we vote on which items will be discussed and finally we can form groups based on the results and start talking!

Let's try this out! Come and bring a pal!

Afterthoughts - Battle of Web Frameworks

Yup, it's Haskell alright
So we had a nice little battle on Tuesday. Around ten people showed up, a few new faces even. This time we covered two Haskell frameworks, Go, Perl and MoonScript. Overall it was a nice session and it might be fun to arrange something like this again. There are still frameworks to discuss.

I've listed some of the entries below:

The sources of Dancer (Perl) and Lapis (MoonScript) entries are not available yet.

Thoughts on the Contestants

Go doesn't count as a framework but it was nice to have it covered still. At least it provided some contrast to the other entries. That said you probably don't want to implement aspects related to web with Go. It excels at data processing, though, and works as an excellent replacement for C.

Perl and MoonScript based solutions were quite "standard" at least from my point of view. It would have been more or less structurally the same using some other scripting language such as Python, Ruby or JavaScript. I think the real differences can be found on the ecosystem level. Traditionally Perl excels at this department.

The interesting thing about MoonScript is that it compiles to Lua. If you have ever used Lua you know it is quite verbose. It is a very simple language, though, and I suspect this is one of the reasons why LuaJIT is so fast. This also helps with that ecosystem part as you can use Lua libraries with it.

Lapis takes quite different approach than most web frameworks. It has been built directly on top of OpenResty. That in turn bundles Nginx core and 3rd party modules related to it. Let's just say speed isn't an issue when using these sort of tools. The primary disadvantage of Lapis at the moment is the fact that it is still at very early stages of development and relies on the benevolence of its author. Despite this its documentation is on impressive level.

The Haskell solutions were on a league of their own. The Warp based one operated on a lower level of abstraction. Snap based one actually seemed like something I might find fun to develop and maintain. I am not sure if it would be easy develop a service with it from scratch. It is so easy to get lost in the maze of abstraction. This doesn't mean Haskell based solution aren't worth studying. Some of the ideas transfer to more "traditional" environments quite well.


It was very nice to see so varied contestants. Even though the format was new and we have not tried something like this before the event went fine. This provided a way to get exposure to tools you would never study yourself.

As I stated in the introduction there are still frameworks to discuss. Perhaps we should arrange another session later. The concept seems cool. Thanks to all contestants and participants for making this happen!

Battle of Web Frameworks on Tuesday (16.7) 18:00- at Hemingways

Spitfire and Hurricane by Lightningboy2000
The long awaited battle of web frameworks is here! Come and see frameworks duke it out at Hemingways on 16th starting from 18:00.

In case you wish to participate by presenting a framework, check out the specification. It's still bit of a work in progress but hopefully we'll get something stable soon! Anyhow, see you on Tuesday!

Afterthoughts - Summer of Testing (and Tasting!)

Guess what? It was shady again.
In this post I'll go through some highlights of our testing themed Geek Collision. We covered things like unit and acceptance testing, automated accessibility testing and fuzzing. There was a nice little war story too. So something for everyone!

Overall it was great fun and we managed to cover a variety of topics. It definitely gave some extra perspective for those that attended.

At peak there were around fifteen people, a record of sorts I think. Thanks for attending!

Tuukka Turto - pyherc

Tuukka Turto showed us how he tests pyherc, a NetHack lookalike of his. You could say he has the thing covered. Besides unit tests you'll find at least acceptance and UI tests in the project.

Through testing make it possible for him to keep the ball rolling. To quote Tuukka it enables him to get back to flow after interruptions. He plans to write a web based user interface for the backend. Perhaps we'll see a MMORPG version of pyherc sometime in the future? By the way, pyherc comes with a vintage mode already just so you can relive those golden NetHack memories.

If you want to know more about the project, check out Tuukka's interview at Five Hour Projects. That should give you more insight on what he does, why and how.

Asko Soukka - Automated Accessibility Testing

Asko Soukka gave us an overview on how he tests user interfaces built with Plone. He demonstrated how to use Robot Framework to build tests executable in browser. Furthermore it was possible to get video output and individual screenshots. The most impressive thing, no doubt about that, was the way he had integrated the purposes of documentation with testing.

It is possible to use the screenshots given by the tooling in your user facing documentation. This way your tests and documentation will stay always in sync as the workflows change. How neat is that?

Even better he had integrated Wave Toolbar as a part of his automated testing workflow. In this case the screenshots contained additional information highlighting various issues detected by Wave Toolbar. Rather than having to run the tool yourself this automation makes it fast and easy to get the feedback as you developed.

Do keep in mind that you cannot automate accessibility testing fully. A real person is always required. The main point about this sort of tooling is that it raises the bar higher and allows developers to reach better initial results before tweaking further.

You can find more information about Asko's accessibility testing workflow at his blog.

Tero Tilus - a Tale of Two Codebases

Tero Tilus told us a story of a recent case he was involved in. It was a project with two distinct codebases for frontend and backend. Latter of these was well tested whereas the former was not before Tero got his hands on the project. Guess which part is going to receive some sort of a rewrite?

Dimensions of Testing

Tero also explored the dimensions of testing. It is very easy to have a narrow view on testing. There's more to it than just unit testing, TDD, acceptance testing, whatnot. It is simple to forget about qualitative testing. This includes aspects such as usability, user experience, robustness, code quality and performance. Some of these can be tested using hardware but some aspects require human effort.

It is possible to enforce some of these qualities by using the right development practices. You can, for instance, affect code quality by introducing peer reviews. If you have the right kind of process in place, quality will follow (or will it?).

Testing Maturity

Tero discussed Beizer's five levels of testing maturity. It is more about how view the purpose of testing. Unfortunately it is very hard to provide that code is correct. We can, however, try to minimize the effect of this through various ways. Of course we can ignore the whole thing and just "cowboy" it. Or we can be conscious about it and try to do something about it. That's where that testing maturity thing comes in.

Juho Vepsäläinen - Fuzz Testing

As I saw Tuukka speaking about Python testing I could not help but to showcase a couple of my approaches to Python testing. Namely documentation driven testing and speccer. The latter one is a DSL of sorts that "solves" the problem of unittest module. It is a module derived from Java. Let's just say it's a very verbose way to write unit tests. And I prefer brevity myself.


That is the reason why I wrote speccer. Implementation-wise it just generates unittest code and uses its test runner even. Some of the implementation details are a bit sketchy but in principle you may mix regular Python code with it. The slides below should give you a better idea.

The real beef of my bit had to do with JavaScript. It's something I've been dabbling with during the past few years. During this time I've developed some solutions of my own (talk about NIH). The first one I showcased briefly was bunit.js. It is something I developed because I didn't like the syntax of QUnit. Again, too verbose and not AMD compatible (at the time anyway).


After a while bunit.js started to feel verbose too. So I went to the absolute minimum I could think of and came up with suite.js. Its primary concept is a test suite. It executes a set of units (individual check) for the function provided to the suite. I guess the syntax might look a bit weird at first. It is extremely powerful for small scale unit testing, though. The slides below explain the basics.

As I developed suite.js I started to think about test automation. Wouldn't it be neat if it was possible to generate those units? This lead me to the world of fuzzing. I simply wrote something that generated units based on some simple generators and an invariant to be tested. The syntax wasn't that nice on retrospect but at least it was a start.


In order to overcome this syntax problem I decided to split the problem in two. I moved half of the definition to the function level and leaving the invariant part to the external test. This seems to be the sweet spot for me. In addition I get runtime checks which isn't a bad thing. As I don't want to drag this blog post further, have a look at a small fuzzing demo I have developed. It gets to the gist of it.

I'm still in the middle of wilderness with this thing but at least I feel like I'm going to the right direction. The audience raised some good points about improving the methodology by making it deterministic (not purely random like now) and checking certain border conditions to improve the test coverage. His thoughts on generating permutations based on these conditions were very interesting as well.


I think it was really nice to have a themed Geek Collision such as this. It provided a way for people to showcase some of the technology and solutions they use in practice. This way it fostered interchange of ideas and perhaps lead to some new development. I definitely would not mind participating in these sort of events in the future. I hope you think so too.

Speaking of future events, remember the Battle of Web Frameworks held at 16th of July. We plan to provide a specification people can write their participating entries against. It's not meant as a serious competition but rather as a way to learn something more about technology. So even less than perfect entries are allowed.

GC - Summer of Testing (and Tasting!) on Thursday (27.6) 18:00- at Hemingways

Sunset by Christian Senger
The people have spoken. There shall be a testing themed Geek Collision. See you at Hemingways next Thursday (27.6)!

Bring a laptop if you have something to demo. I'll have some fuzzy material available at least. And I hope you will bring something too.

Upcoming GC - Summer of Testing (and Tasting)!

Testing by pedrosimoes7
Testing is one of those topics that can bring endless amount of joy and make puny coders well up in tears. The purpose of this GC is to share some experiences, techniques, and perhaps war stories.

If you have some tools you wish to showcase, now is the chance. We'll have a projector available. In addition there might be something to drink.

In case that sounded like a good deal, go ahead and mark suitable dates at the Doodle.


Upcoming Event - Battle of Web Frameworks

You guys are in for a special treat. We will arrange a battle of web frameworks. What an awesome chance to showcase your framework-fu and to get to see what some others have to offer!

So far we've managed to attract two contestants, both from the camp Haskell. These are namely Snap and Warp (used by Yesod). They look awfully powerful based on some measurements.

The event will be held tentatively around 16th of July (Tuesday) although that may change. We'll let you know of the exact date closer to July.

To make the whole thing work, we'll need to decide upon a set of tasks. Each task will be implemented using each framework before the event. This way we'll have something to discuss and we don't need to get that physical (although that may still happen).

In order to make this event as awesome as possible, enroll or at least suggest some tasks for our contestants to implement. We can discuss the details at #geekcollision in IRCnet.

Lions by Tambako the Jaguar

Meet Sandman on Friday (17:00-) at Hemingways

It's time to continue our "meet famous or not so famous people" type of meetings. This time there will be an opportunity to meet the Sandman.

All you need to do is to appear at Hemingways around 17:00 today (Friday).

Devaamo Summit + treweb - 14-15.6 @ Uusi Tehdas, Tampere

It's Devaamo Summit time again. This nice little event covers quite a range of topics (mobile, open source, whatnot). This year they will be collaborating with treweb unconference.

Yes, there will be talks about web tech but as it is an unconference, you never know what you are going to get (to quote certain Forrest). You can get some initial idea of the program already although there are still plenty of blanks at the time of writing. At least Jolla will be there so you can ask them some tough questions.

Of course the event is free but I think the organizers will appreciate if you decide to register. Esp. the latter day (Saturday) is filled with action. There will be two tracks and if some talk is boring, just change the room.

The first day is for more social ones although the lightning talks can be quite nice. In this case you'll have to organize some sort of accommodation for yourself. There are affordable motels at Tampere although I recommend avoiding a room shared with too many. Someone always snores.

If there are people going, it will likely make sense to coordinate travel and so on. I'll set up a thread at our mailing list. Also IRC (#geekcollision@IRCnet) will work. Let's hope we get a delegation together. :)

Meet Tsuri on Friday (18:00-) at Vihreä Haltiatar

Penguins by Adam Foster
Apparently Tsuri will be at Vihreä Haltiatar on Friday at 18:00. In case someone wants to keep him company, be there. There are supposedly some new refreshments available for those interested.

If you don't have anything better to do, might as well show up.

Afterthoughts - Haskell/STM Dojo

Yes, it was shady this time too
Wouldn't it be fun if you knew how to implement those trendy NoSQL database engines like MongoDB?

Well, as it happens that's what the dojo held by our code wizard Zouppen taught us. He illustrated the concept of Software Transactional Memory using Haskell Platform and as a side result came up with a NoSQL database engine.

Just like the last time each participant (around ten) got to code something. And I think everyone got something out of the event. There were plenty of Haskell beards around (without beard for some reason) and a couple of new faces even. Thanks for popping by!

In case you missed the event, check out the sample code. It describes our database scheme. You can run the database server even if you have the right dependencies installed. It's an in-memory storage so don't put anything too important there. You can exercise the server quite easily using extensions such as RESTClient (Firefox) or REST Console (Chrome). If you are hardcore, you'll use curl or something.

The packages needed to run the thing should be available as standard Ubuntu packages. Otherwise you might want to look into setting up Haskell Platform. If you are an absolute beginner, Learn You a Haskell is a nice starting point.

Dojo - Haskell/STM at Hemingways (Mon May 13th 18:00-)

There is a lambda somewhere, I am sure of it
by trindade.joao (CC BY)
There is a theory according to which whole universe is just a computer simulation. It would not surprise me if they used Haskell to run this simulation.

If you want to know what STM is in the context of Haskell and are not afraid of the lambda, show up at Hemingways on May 13th 18:00-. Our guru Zouppen will show how to apply this concept. And the fun thing is, it's useful beyond Haskell!

It is recommended that you will at least try Haskell before the dojo. I can guarantee it is one of those languages that will twist your brain a little bit. And it won't be entirely comfortable. But after you start to understand the beauty of the language, nothing will ever be the same again.

According to the Doodle there is still room for a few peeps. If you know someone who might be even remotely interested in the topic, try dragging the person there with you. And given the dojo is held at Hemingways you won't have to leave with a dry throat and you might have a couple of new ideas as well. So double win!

Upcoming Dojo - Haskell/STM

Zouppen, a local Haskell guru, has promised to enlighten us on that particular topic. He will also cover STM. If you don't know what these things are or how they work, here's your chance!

Now that I got your attention, go and pick suitable times over at Doodle.

Node.js Streams Dojo Afterthoughts

Yes, it was nice, shady and nyan
Code, cold drinks and company. What else does a geek need? Not much apparently. Big thanks to our Node.js guru Esa-Matti Suuronen. The premises provided by Hemingway's Jyväskylä proved to be adequate at least. Let's say something casual like this seems to fit the sprit of dojo well.

This time we worked one at a time on the laptop while others remained in a managerial role. So we got double the experience. During the dojo we went through six more or less challenging tasks concocted by our sensei.

Even if you weren't there I do recommend checking them out. If you get stuck, just poke us at #geekcollision over at IRCnet. You are bound to learn a lot even if you know how streams work already. A couple of pointers to help you get started:

  • Readable = source, Writable = sink, Transform = filter in Unix terms. It's just a dataflow architecture.
  • In order to terminate a buffer, just push "undefined" (simple "push()" should do)
  • Node's "pipe" is equivalent to that "|" you likely know already
  • It is possible to stream nyancats
  • Wise guys read documentation

EDIT: There is a set of really nice photos available by Daniel Schildt. Thanks a lot!

Upcoming Events

Remember the data mining session at Protomo on Friday (9-11). On 22nd there will be HackJkl and on the following day the highlight of the year, AgileJkl.

Node.js dojo today!

Just a reminder today we'll be having a coding dojo about node.js streams at at Hemingways (9.4, 18:00-).

No need to bring own computers. We'll be using just one and we'll switch turns. Also don't stress if you don't know anything about node.js or even Javascript. Just bring an open attitude and you'll do fine. We'll help you if you get stuck. Point is not to test anyone's skills but to discuss the code we're doing together.

See ya!

HackJkl at Innova 1 building, Piippukatu 11 (22nd April 2013, 12:15)

Ever wondered how to make music with emacs and Clojure, what the internals of Git look like or if functional reactive programming could make you just a tad happier? This is your lucky day since HackJkl will you bring you just that information and then some.

The programme:
  • An Introduction to Functional Reactive Programming by Tuomas Kareinen
  • Clojure in real life by Mikko Heikkilä
  • Git internals John Britton (Github)
  • Hacking the DJ by Sam Aaron

Additional things on the agenda: sauna, fun, meeting awesome people.

Now, because of the limitations of the venue, we only have limited number of seats. Therefore, you need to register to the event.

More details and registration on the event site http://agilejkl.com/hackjkl/


Dojo - Node.js Streams at Hemingways (9.4, 18:00-)

His name happens to be Hemingway
by Valentina_A (CC BY-NC-SA)
The people have spoken. And as you know they are always right. This time Esa-Matti Suuronen will show us how to get most out of recently revamped Node.js streams.

After this session you should have a better idea of how to do streamy things using Node. That can't be a bad thing. Piping and all that stuff is right on our alley.

This time we will have the event on a more casual location, Hemingway´s Jyväskylä. See you there on 9th of April around six PM. Be sure to bring your laptop. It is likely beneficial to have a recent version of Node.js installed as well.

Session - Data Mining at Protomo 12.4 (9-11)

Lasse Niivuori of Louhia Consulting Oy will speak about data mining at Protomo on 12.4 (9-11). In case you want to know what analytics is, how it is used and where, you had better be there. Besides the theory part there will be demos. If this sounds interesting, be there to see what the fuzz is about.

Upcoming Dojo - Node.js Streams

Esa-Matti "Epeli" Suuronen has promised to have a dojo on topic of Node.js streams. This time we'll organize the event at a different place (most likely Jalo) and try to perform a merge between regular GC's and dojos in their traditional form. We'll see how that works out...

If you are interested in this sort of thing, go ahead and mark your interest at Doodle. The dates range from 9th to 11th. The day chosen will be announced later as we have a better idea of what suits the most people the best.

Volunteer for AgileJkl

Just thought to mention that it is a good time to volunteer for AgileJkl. It's an alright job and you get a fancy shirt in return (at least you did last year, the color was just great). Might be worth your while.

AWS Dojo Afterthoughts

Our AWS dojo was a great success. I think every participant (10 this time) learned something new. We also had some nice discussion going on about the topic. I personally learned you should not use AWS for storing 10 terabytes of backup data. So better try to avoid that.

Anyway, big thanks to Juho "enyone" Tykkälä for coming up with the material and enlightening us with AWS secrets. Should we arrange another one you know where to get the information about it. And if you feel like acting as a sensei do poke us over at #geekcollision on IRCnet.

AWS Dojo on Tuesday (19.3) 18:00- @ Protomo

As per popular vote, AWS (Amazon Web Services) dojo will be held at Protomo on Tuesday (19.3) starting from 18:00. It should take at least two hours. Sauna is possible.

Our sensei, Juho Tykkälä, describes the content of the dojo as follows:
Subjects could be registration process, S3, EC2, IAM, CloudWatch, etc. It would also be possible to create some new EC2 instance during Dojo and see what it is capable of.
If there are some specific subjects you would like us to discuss, do let us know. It may be a good idea to set up an AWS account (free but requires a credit card) though that might not be entirely needed. Bringing a laptop could be a good idea anyway.

GC v0.30 on Thursday (18.00-) @ Vihreä Haltiatar

Long time, no traditional GC. It's definitely time to collide some geek heads again. We'll see on Thursday (14.3, 18:00-) at Vihreä Haltiatar.

Remember that we will be arranging an AWS dojo soonish. Add your name to the list and mark up suitable times. More news on this once we have some concrete date settled.

Jekyll Dojo Afterthoughts + Info on the Next One

This time we had a dojo, or more like a demo, on Jekyll and web development in general. There were only five of us so the interactive demo made a lot of sense. We spent around two hours exploring the nooks and crannies of Jekyll. I hope the guys got something out of it.

The dojo material is available at yeswejekyll.com (yes, we really do!). I'll still do various tweaks to the material. It should act as a sort of narrative to the framework and help you understand better what can you achieve with it and when should you use it. There are also some more general web development tips you might find useful depending on your level of experience.

The Next Dojo?

As preparing material such as this takes considerable amount of time and it is nice to arrange events that are actually useful to people we are trying something a bit different here.

Juho Tykkälä (also known as "enyone", not just anyone) has promised to talk to us about Amazon Web Services provided there is enough interest. In case you find the topic interesting, go ahead and mark suitable times at our Doodle. If there are some specific areas of AWS that should be covered, do let us know either in the comments or over at IRC (#geekcollision @ IRCnet).

Update on Tuesday Dojo

Just a quick update on the Tuesday Dojo. Kimmo Kuisma had to unfortunately cancel. So it's just Jekyll this time. I do hope you'll find that useful as well. I'll cover Foundation and GitHub Pages a little bit while at it.

If someone still wants to speak a little bit on web design we really don't mind. See you on Tuesday at 18:00 on Protomo! :)

Dojo - Jekyll and Web Design at Protomo (5.3 18:00-)

It's time to dojo again! This time we'll be discussing static website generators and Jekyll in particular. Besides that Kimmo Kuisma of Media Cabinet will provide us some insight on web design and typography so it's not only geeky stuff.

Bring a laptop (Jekyll preferably installed), a problem (optional) and a towel (optional). If it goes like the last time a towel won't be needed but it probably doesn't hurt. If you ever wanted to get that pesky homepage or blog done now is the perfect opportunity.

See you on Protomo at 5.3 18:00-. If you have never heard of this Protomo place, check out our previous Dojo post.

You might also want to check out Instanssi, an event arranged just before our dojo. It's reasonably cheap (5 eur admission) and you are bound to meet plenty of fellow geeks there. There is a wide variety of presentations. Many of those will likely have something to do with the theme of this year: gaming.

GC v0.29 Beer Friday (19.00-) @ Vihreä Haltiatar

Today after the Ruby On Rails Friday we have also a Beer Friday from 19.00- at Vihreä Haltiatar. They seem to have few very interesting beers to offer this time!


Ruby on Rails Friday (16:00-) at Protomo

Rails folks ahoy! We will have a tutorial session next Friday (1.2, 16:00-) at Protomo. Bring your laptop with Rails development environment, preferably already set up. We will go through Ruby basics in the tutorial and then create a simple Rails app. Welcome!

To help you get started with the environment, consider following options:

Linux in the virtual machine with shared folders

If you like this option, here is a Rails development environment puppet script that you can use for
a setup. Shared folders are optional if you are comfortable with terminal text editors.

Developing in your main OS (linux or OS X)

Use RVM or rbenv, RVM could be a bit easier to setup.

Developing in your main OS (Windows)

Use RubyInstaller, I have no experience on this.

Clojure Dojo - Afterthoughts

How many geeks does it take to set up a wireless network? Around twenty it seems. Apart from some minor technical issues at the beginning (doors, network etc.) the Clojure Dojo was a great success.

We still have to refine the overall concept a little bit but I think everyone had a great fun. And we did learn bit of Clojure (clo-ju-re for us Finns, clojöö for the rest of you) while at it.

Our Dojo sensei tasked us with several problems. They highlighted quite well the declarative and functional nature of Clojure. We used cyber-dojo to implement and finally examine various solutions made. The editor isn't perfect but it's good enough for little hackery such as this.

As the Dojo was just a beginning of a great Clojure journey for some of the students it might help to have some resources to provide sustenance during it. Particularly following resources could come in handy:

There were talks about an Erlang Dojo. Stay tuned for details!

Technology Friday (14:00-) at Protomo

We're in for a special treat on Friday (18.1 at 14:00). Miika Leppänen of Eebu will be discussing how to to build web applications using Ruby on Rails platform. Live coding to be expected!

See you at Protomo. You can find address and such details on our previous post.

Geek Collision v0.28

This time around we are not just sipping wheat shakes – we actually have a proper content night coming up next Tuesday, 22.1. from 18 o'clock onwards.

Join us for an evening of short free-form sessions such as Clojure dojo, Erlang development and Freestyle Fridays. If you have a talk in mind, feel free or even obliged to say a few words on the subject. This is a great opportunity to let others know what you've been working on lately and spread the love to the community.

Bring with you
  • a laptop for the Clojure dojo 
  • towel for aftersauna
  • a friend if you can for more the merrier

Address: Protomo Jyväskylä, Ylistönmäentie 24, 40500 Jyväskylä. If you can't find the place, call Tsuri at +358 50 372 3711 for directions.

View Larger Map
Copyright © Geek Collision