Read my book

I wrote books about Webpack and React. Check them out!

Wednesday, April 24, 2013

Afterthoughts - HackJkl and AgileJkl 2013

It was that time of a year again. AgileJkl time that is. The event was organized for the first time last year. I wrote a brief report on the event back then. This time I gave a brief talk even and probably dragged the quality of the event down a bit while at it. Oh well.

In addition to AgileJkl a pre-event known as HackJkl was organized. Around 25 geeks gathered around to share some experiences and learn about new technologies. And there was sauna of course.

Overall both events were well organized. Big thanks to the crew for making it happen! Hopefully we'll see AgileJkl again next year. I know it takes a lot of effort but it was worth it at least from attendee's point of view.

HackJkl

As you might expect based on the name of the event it was really technology oriented. There was a nice selection of sessions, something for all.

Tuomas Kareinen - Functional Reactive Programming

Tuomas Kareinen discussed the joys of functional reactive programming (FRP). It is an emerging paradigm and in some ways it simplifies things somewhat. It does come with some new vocabulary and you have to think differently. His session material contains a couple of examples. Basically he shows how to do things the traditional way and then by using FRP. I am not a total convert yet but I can see the value.

Metosin - Clojure in Real Life

The Metosin guys discussed Clojure and how to apply it in practice. One of the main findings was that even though the language has braces (since it's a LISP), equivalent Java code might have even more of them. The Clojure code was more compact as well. It would not surprise me if Clojure gains popularity in various Java shacks around Finland.

John Britton - Git Internals

John Britton of GitHub (you might know the company) discussed the internals of Git, particularly the data structure side of it. I probably now know more about the internals than I would have ever wanted to. Thanks John.

Sam Aaron - Hacking the DJ

Finally Sam Aaron of Overtone fame demoed his fantastic tool and unleashed the power of Clojure. In short Overtone allows you to program synthesizers. You can even hook up real hardware to your synth quite easily. The key advantage of this approach is that it allows you to document and reproduce your work. Rather than relying on knobs and electronics you have something more tangible: code.

The approach is very powerful and illustrates well the value of interactive programming environments. I have done some work myself on this field. It is a really nice way to program thanks to the fast, iterative way of working. You can literally see your code become alive in front of your eyes. Very satisfying.

Conclusion

And of course there was free pizza and sauna. Very nice event overall. It would be very cool to organize these sort of hack days more often although I am pleased that we have the occasional dojo and meetups over at Geek Collision.

AgileJkl

This year AgileJkl had two tracks: business and development. In addition there were two keynotes and a panel discussion. Quite a bit of material! I participated on the development track. I am certain the business talks were interesting as well. I likely have to take a good look at the recordings later on.

Jurgen Appelo - Let's Help Melly (Changing Work Into Life)

The day was started by Jurgen Appelo, one of the leading agile management people in the world. He is a natural presenter. It was just amazing to see how well he took the stage and captured the attention.

Jurgen highlighted various ways in which to make workplaces happier. Happier workers lead to better retention, improved productivity and innovation. If you optimize just for productivity, you might have a high turnover rate for instance.

I don't know that much of management myself. That's just one of my numerous weak points. I think Jurgen made some very valid points, though. You have to give certain amount of slack for your employees. There has to be trust. And with trust comes responsibility. Are you managing toddlers or adults?

As evidenced by the panel discussion there are no proverbial silver bullets. Each organization has its own set of problems. Management practices used should reflect the company values. Those are not just something you put on your office wall. They are something you instill in the way you work.

Juho Vepsäläinen - Survive JavaScript -- Strategies and Tricks

Yup. This presentation on the tech track was by yours truly. You should check out Survive JS the guide to get a better idea. You'll also find the slides and such there. Overall the presentation was a mixed success based on the feedback. Of course I cannot possibly match the quality of seasoned speakers but I think I could've done quite a bit better.

I decided to cater two main groups with my talk. I wanted to give some kind of an overview of the field for total beginners. In addition I wanted to give an idea or two for the more experienced ones. On retrospect I should've just focused on one of these goals and trimmed the material accordingly. It might have worked better as a workshop or as a traditional lecture (2 x 45 mins). 45 minutes is really not that much time to go through these issues in any sort of detail.

Basically you can choose one thing and explain that really well in that timeframe. Or you can go really broad like I did and end up with "meh". I'll probably stick to more focused content in the future provided there will be any opportunities again after this.

In addition there were some technical problems. First of all the audio wouldn't work and later on I heard the people on the back row could not hear my voice. Spring time is always tough for me due to allergies so I was even more quieter than usual. I should have made sure the people on the back can hear me, though.

There was also some fiddling with slides (web based of course). It might be a safer bet to stick with plain old PDF in the future. Harder to fail with that. Timing was a bit tight and unfortunately there was no room for questions.

Even though I've shifted my style from "Death by Powerpoint" to something more contemporary it seemed there were still too many bullets. I also tried "recaps" (basically went through main points after each important section) but I am not entirely sure if those did any good. I know there should be some amount of repetition but perhaps there are limits for that even.

Overall it is very hard to please everyone. It's not that I didn't have material. Just lacked the skills and experience to make it work in this particular occasion. If something good came out of this endeavour, it is the Survive JS guide. It goes way more detail and hopefully fills in some of the blanks left by the presentation.

Lasse Koskela - Habits and Technology

Lasse Koskela of Reaktor discussed habits and technology. To be honest this talk didn't resonate with me a lot. I did manage to get something out of it, though.

People are fairly driven by habits. It can be very easy to attain those. But try getting rid of them. That's tough as you probably have noticed.

On technology level this means you could get too comfortable with some solutions you are using. This leads to myopia. You might ignore some viable options just out of sheer ignorance.

Sometimes it might be worth it do things differently just for the sake of breaking the habit. Rather than taking the same route always perhaps that other one, although maybe longer, contains some hidden insight. At least this allows you to evaluate your habit if nothing else.

John Britton - Github: Distributed, Asynchronous, and Self-directed

John Britton of GitHub discussed the distributed nature of GitHub and the way they work. It is very antithetical compared to the way traditional organizations work. Believe me, I have some experience of those. GitHub is nothing like a pyramid you might've gotten used to. Rather it seems like a very flat one (yes, they still have a CTO).

People choose what they work on and with whom. In this way people are empowered to make the decisions that help to further the goals of the organization. One interesting side benefit of this is the fact that they have developed multiple internal tools to help them operate more effectively. If you let people do this sort of work and trust them enough, they'll optimize the business and make it more fun for themselves. So you get all sorts of plusses.

It is also very interesting to note how they relate to the usage of time. You basically don't have any fixed hours. I think that itself can be quite liberating although it comes with responsibility. You have to do what you have committed yourself into.

It is clear this sort of organization is not suitable for all sorts of people. I think you really have to love what you are doing to make this sort of thing work for you. It's definitely not for nine-to-fivers.

Perhaps we will see more GitHub type firms in the future. They seem to value and trust their employees a lot. Rather than having some kind of an antagonist relationship between the employer and the employee, they seem to aim for something entirely different. And they might be onto something with this.

Sam Aaron - HyperAgile Development

Sam Aaron discussed agile development taken to the max. This actually related back to the HackJkl session and in some ways overlapped with it. This was very understandable, though, given the larger audience. It was still very impressive.

The key point in this presentation had to do with the fact that you should write your own tools to serve you. Forge your own tools and destiny while at it. There is still a lot of room for improvement in this sector.

I think we'll see more graphical tools to emerge sometime in the future. The holy grail for me at least is a graph editor that generates some meta level description that is then converted into some real code (Clojure for instance). The bridge should work in two ways of course.

I discussed this topic with Sam briefly. It isn't as easy as it sounds but it is definitely doable. Things will get pretty nasty really fast and some ways of grouping data have to be developed. It will take some amount of innovation to make all that's needed to happen. I would not be surprised to see Sam demoing a graphical editor within a couple of years, though.

Panel Discussion

I was a bit tired at this stage of day (woke up at five) so I probably didn't get most out of it. The topics discussed were related mainly to management, agile transformation and such. It could have been interesting to have some more technical questions injected in. Again, Appelo showed his showmanship. That guy is some kind of a genius.

Conclusion

We ended the day with an official GitHub drinkup. First of its kind in Jyväskylä. Personally I'm not much of a bar person but it was a nice way to end the event.

Overall HackJkl and AgileJkl were highlight of this Spring. Apparently there's an agile event at Turku around May. Perhaps that's something that could fit into calendar as well. It was impossible not to get one of those business cards.

Friday, April 12, 2013

Louhia's Brief Introduction to Data Mining

I participated in a data mining related event today held at a local Protomo. The guys from Louhia Consulting Oy provided us a brief introduction to the topic. In this post I will go through some of the main observations made. Overall the presentation was well prepared and gave me some new insight to the topic.

I've discussed this topic before as I showed you how to use Node.js to scrape the web. Interestingly Louhia doesn't apparently perform web analytics or scraping at the moment. Rather they focus on deriving results based on client, and sometimes public, data.

Louhia is still a small and fresh (established 2009) company that aims to grow into a major player in the Finnish market. They are tool agnostic and seem to use whatever suits their purposes. Of the major tools used they mentioned at least SPSS, Rapid-i, SAS, Cognos, R, QlikView, pentaho and a few others. I have covered R earlier on this blog. Suffice to say it is a nice little language for statistical analysis.

When to Mine Data?

From business point of view it is not feasible to apply data mining techniques in case you do not have data in the first place. Data mining is something well established and mature companies may want to use to optimize their operation. They often gather data already. Data mining provides means to extract value out of it.

The Louhia guys made it clear that for data mining to be useful, certain criteria must be met. These criteria are the following:

  1. Data exists (need to mine something)
  2. Suitable mathematical models and algorithms exist. Sometimes these may vary based on domain and in cases you need to work hard to develop suitable
  3. There is a reasonable way to visualize the mined data. This is something that helps decision makers (such as you when you decide or not to go out)
  4. The insight gained leads to decisions

They put particular emphasis on 4. If there is no will to use the insight to support decisions, there is no much point in data mining business-wise. This means there has to be certain level of commitment on the client side as this affects the value proposition in commercial terms.

Case - Insurance Sales

They showed how an insurance company can benefit from data mining. They gather a lot of data by default so that definitely fulfills that history requirement. There are also models and algorithms suitable for the domain. And visualization of the data may lead to material useful for decisions. In this case the decision had to do with marketing. The insurance company wanted to know how it should spend its money on marketing a certain additional insurance.

By default it would have cost around 500 000 euros to launch the marketing campaign. This effort would have yielded a million in profit and a conversion rate of 3% (converted as in "bought insurance"). So in goes a euro and out comes two. Not that great a ratio. By using data mining techniques they managed to establishing 11 variables affecting the way people buy insurance (down from 86 originally). As a result they were able to provide a probability based on which a given person would buy the insurance.

This information lead to significant improvements in effectiveness. They decided to target people for which the probability of purchase was >= 50%. In practice this lead to a tenfold increase in conversion rate (from 3% to 30%) and decreased marketing costs to 50 000 euros consequently. Even with consulting costs (let's say 20 000 euros) this is a substantial improvement over the original.

I think this is a very good example of how to apply the techniques. And the techniques have their uses beyond the domain of business. For instance it was shown that they may applied to improve the way the healthcare system selects people for cancer screening improving the overall efficiency of the system. There are some ethical issues to consider of course but in theory data mining can be a great tool to utilize for these sort of things.

Conclusion

Data mining doesn't yield results always. Sometimes you can still end up with nothing. The data doesn't always hide patterns. You might just end up with random noise. Still, I'm very convinced that the techniques will be used in a larger scale in the future. At least in Finland the market is still a very emerging one. Pretty much only the larger companies have the interest and resources to leverage it to improve their business.

If there is one area that seems kind of hot for me at the moment, it's analytics. Apparently the guys get hired pretty fast and some into the gaming sector even. You can probably infer why. It's not just about web analytics. There's a whole world of analytics out there.

Monday, April 8, 2013

The Future of ICT in Central Finland

Today I visited two events. One was related to Kasvu Open, a competition aimed for startups (both ideas and established ones) while the other focused on the future of the ICT sector in Central Finland. As I have seen events like these before, there was nothing new format-wise. Participating in these events made me think about the future of the sector. And that is what this post is about.

It might not be the most exciting topic but it's still something worth ruminating. I tend to see these things from trenches, the lowest possible level. This is opposed to what the people giving the talks often presented. There were politicians and people that make decisions on these sort of things. It is very easy to use fancy words. Still, the core ideas they entail always have some truth in them.

In this post I will try to get beyond the fancy words and provide some views on how I see the future of the area and more specifically the city. It might not be the most exciting of posts but it is a post I definitely want to write. Nothing is more fun than reading a post later on and seeing how wrong you were about something.

Jyväskylä - Athens of Finland

Before getting any further it's probably a good idea to describe Jyväskylä a bit. It is a smallish city located in Central Finland (roughly 300km from Helsinki and Oulu both). It is also known as Athens of Finland thanks to its strong history related to education. In fact the Finnish education system originated from here. It is a city that has seen a tremendous amount of growth (around 3k people at 1900, 130k now in 2012). This is partly due to the fact that it is a hub of education.

Besides vocational training there is also a university and a university of applied sciences. These higher levels schools serve a bit different purposes although there are some commonalities. Interestingly they both compete from the same resources to some extent and both seem to have their own distinct identity. Especially in the ICT training there is overlap.

Unfortunately being Athens of Finland isn't entirely a good thing these days. As you probably are aware of the situation in Greece we have something similar going on here at Jyväskylä. The city has whopping 8000 euros of debt per person. It has to do with some large investments made lately. And then there was a merger with a neighboring municipality that probably didn't help things, at least short term.

Traditionally the city has relied on wood and metal based industries. There was some change to it thanks to Nokia during the IT boom. Unfortunately Nokia has since left the city. At least the buildings remain and have been put into a good use. Now we are living in a transition stage of sorts.

During the last ten years or so the city has focused on developing a central part known as Lutakko. It is close to completion and the city has put its sights on a new area known as Kangas. Kangas is sort of a relic from the era in which paper was an important source of income for the city. As the facilities were given up the city bought them. And now it aims to transform the area and make it a hub of commerce while providing some residential space as well. This process will take decades of work and is supposed to be ready by 2040 although they expect major progress by 2020 including thousands of new jobs created.

The Current State of ICT in Central Finland

Currently ICT sector employs directly around 6000 people in Central Finland making it the third largest individual sector in the area. As I mentioned it has suffered thanks to the Nokia effect. On the other hand given the layoffs were made earlier than on other parts of Finland, that gave us some time to recover. In that sense we're better off than some other cities.

There is plenty of ICT related education available. Both universities have their programs. And there's also vocational level. Besides that there are more unofficial ways to stay in touch with the field. These include Geek Collision and Hacklab for instance. I personally think it is a very good sign to have some "underground" things such as these going on. They are communities run by volunteers and are not bound by some official agenda. Good things, such as AgileJkl, have been born out of this sort of voluntary action.

There are also official organizations, such as Jykes, that aim to leverage the profile of the area. There are so many of these around even I cannot keep track of them all. That might be weakness on my part, though. That said perhaps it tells you something about the situation.

I know for certain that there are at least 400 companies dealing with ICT in the area. In case you are interested I can share a list I maintain. We have a couple of big ones such as Tieto and Digia. Some international ones such as Cassidian and Fujitsu. And then there are plenty of smaller ones in which I won't get into. Public sector employs ICT people as well. Kela, the social insurance policy institution of Finland, is a good example of this. If I remember correctly Kela employs somewhere between 100 and 200 ICT people here.

At times you receive remarks that it can be difficult to hire people here. Interestingly the representative of Kela mentioned in his presentation that it is not a problem for them at all. I think it all depends on what kind of people you are after. Our salary level is definitely below the national average so that cannot be the issue. It has likely more to do with experience since there can be only so many experienced people in a given technology. And as you know the technology tends to advance at quite the pace.

The talent pool is always limited. And by the time people graduate half of the things they know will be obsolete. In my view especially the university should be about providing the tools that allow the alumni to keep up with the development and maintain their skills. Granted it takes a certain amount of passion to achieve this. Unfortunately the sort of career thinking that for long has been the basis of the whole Finnish system is at its end. You simply cannot expect to be "ready" when you graduate.


The Future of ICT in Central Finland

What sort of future do I envision for ICT in Central Finland and Jyväskylä in particular? I will split my analysis in three possible scenarios: negative, neutral and positive one.

Let's start with the negative one to get that out of the way. Given Jyväskylä is in a dire financial situation already, things can get only worse. Debt per citizen will at least double by 2020. We will lose a major ICT firm and smaller ones to competing cities. The sector will continue to shrink. The local authorities, companies and communities will not find effective ways to collaborate. Kangas will prove to be an expensive mistake and fails to reach the expectations placed upon it.

In a neutral scenario things would stay more or less the same. Jyväskylä will still continue to exist more as a "pass through" city although it will keep on growing steadily but surely. The ICT sector might be able to attract a bigger company or two to the region thanks to the friendly environment, good connections and affordable yet skilled workforce. The collaboration between local authorities, companies and communities will improve ever so slightly although there will still be some overlap and just poor coordination between the parties. Kangas will do okay although it might not reach all the expectations.

In a positive scenario the ICT sector of Jyväskylä will become competitive on a national and in some cases on international level. In fact it will become strong enough and will be able to lure top talent from neighboring cities. This is enabled by stronger coordination between local authorities, companies and communities. A strong startup ecosystem will foster further growth. Success stories feed upon each other and new business will grow. Jyväskylä will become top 2 place for a startup to be right after Helsinki.

Conclusion

I know I am very biased in my analyses. I think the most likely scenario is the neutral one. Not much will happen in a direction or another. There will be fancy talks on how things should change yet they won't. I fear that for major changes to happen something big has be happen as well. That seems to be the nature of Finns. You literally need to shake them into action. But after they manage to do that, nothing can stop them for a while.

Wednesday, April 3, 2013

JSter - Templating in JavaScript cont. + Sneak Peek at Survive JavaScript

Since I do a fair bit of publishing these days over at JSter's blog, I thought it might be a good idea to bump some of those posts here.

I think my recent, expanded post on templating, is a good idea of one. It delves a bit deeper than my post here and should give you even a clearer idea of what it's about and what kind of alternatives there are.

Survive JavaScript - Sneak Peek

On other news I have been working on a little booklet on JavaScript. My goal is to show people how to survive with JavaScript. It is aimed primarily for beginner to intermediate level. So if you are a pro, just skip it. :)

At the moment the first few chapters are about ok. The rest are just stubs. Regardless feedback is welcome. I am particularly interested in which sort of topics you think I should cover. It can be a little difficult to see which are tough ones anymore.