Read my book

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

Saturday, June 15, 2013

Thoughts on Devaamo Summit 2013 and treweb

Guess what, it was Devaamo Summit time of year again! This time it was a double event as they organized treweb, a web focused unconference while at it. I visited the conference the first time last year and it was great fun. For some reason there were less people around this year but it was still quite nice. It's all about the quality as you know.

SurviveJS - Redux

I posted a talk proposal to the Summit at the end of April. That was direct continuation to my previous talk at AgileJkl. The idea was to prepare something shorter and more focused. As I didn't hear from the guys after that, I thought they ditched the idea. You can bet I was surprised when I discovered my name on the official program yesterday.

As I did not want to disappoint the organizers, I decided to wing it and use my AgileJkl slides in my 30 minute slot. Overall the presentation felt nice (from this point of view) and I think I might have gotten a few points through. I made the whole more practical by showcasing actual implementations and tools. It felt like a good idea to get the audience involved a little bit.

Somehow the stage was easier this time as the audience was on the same floor level as you and it was very easy to question them. Maybe it wasn't that bad a thing not to prepare too much after all. Anyway, it was yet another good learning experience. I think caffeine added some extra buzz to the whole.

In case you are interested in the associated material, check out the companion site of the presentation at Survive JS. It delves way deeper in the topics discussed and should provide some food for thought for the technically minded.

Thoughts on Presentations

Overall the presentations I saw were at least adequate quality. Yes, there were some perhaps more boring ones than others but that's just fine. At least the short slots more or less force you to get to the point eventually. I know mine would have been more effective had I trimmed it. If I get to present the ideas again, I just might do that.

Jolla - Keynote

Marc Dillon, the former CEO of Jolla, gave the keynote of the conference. As you might already know, Jolla is Finnish for dinghy and is a company that spun off Nokia. Quite apt naming, eh? They're building on the legacy of MeeGo and aim to shake the mobile world in their own way. Who says the lightning doesn't strike twice in the same spot?

Android and Fragmentation

Marc made some interesting points about how Android is become more similar (less variance between vendors) and the fact how walls are erected between Google and the developers. I am actually not sure whether making the Android ecosystem more homogenous on the whole is a bad thing. At least in my mind the current state of fragmentation that Google needs to take seriously as it impedes the value of the ecosystem.

Android is a very difficult target because of this. There are simply so many possible configurations around it is difficult to test everything. Contrast this with something simple like Apple's iOS and you understand why it is such an issue.

The Other Half

I was initially somewhat skeptical about the concept of "other half" introduced by Jolla. Marc alleviated my concerns a little bit. Now I understand that it's more than just a gimmick such as Nokia's Xpress-On (N79) which could manipulate the system theme based on the cover inserted. Rather it's a hardware extension point for the whole phone.

Imagine if you could attach some new sensors or perhaps a QWERTY keyboard to your phone. The concept seems to allow this. I know these sort of things are still very much vaporware. Still, you have to admit there's some idea. We shall see whether it's enough.

Sailfish OS

Marc didn't go into the specifics of Sailfish, the operating system they are developing. It was glanced at a high level. Basically he stated it is more open than Android and given that the business starts to grow, they'll open it more. He did make the point that it is essential for a company to retain at least part of the secret source to itself even if it dealt with open source.

I think this might be something that's more critical for companies such as Jolla. They cannot afford to allow some other company to replicate their whole business. My guess is that the secret bit is there just to counter this scenario.

The Future of Jolla

It seems like Jolla tries to position itself somewhere between hardware and software. If I understood correctly, they want to be more like a community shepherd and enable growth on top of their system. Eventually this should lead to them working as a licensor so that bigger companies, such as Samsung, could build on top of their technology.

It remains to be seen whether they can reach some critical mass needed for this type of strategy to work. Especially the Samsung case seems intriguing. Why would Samsung license Sailfish rather than to focus on some of their own initiatives? What value could Sailfish possibly provide Samsung could not otherwise reach? I hope the Jolla guys have a good idea.

Enabling Open Data Communities

Jarkko Moilanen of Avoindata.net discussed the topic of how to enable open data related communities to emerge. We're still pretty new to this concept of open data here in Finland and are just starting to really open up our data reserves for the public. Jarkko discussed some of the challenges involved.

The Need for Vocabulary

Interestingly one of the main challenges seems to be finding the right Finnish vocabulary to discuss the concepts related to the topic. This sort of work is required so that things may be communicated effectively in the right places for progress to happen.

The Value of Open Data

Open data provides clear value to commerce. Unfortunately opening data is not that simple. Besides money it takes certain amount of political will and resolve. The site, Avoindata.net, developed by Jarkko aims to ease this process. It seems to have gained some traction already.

Monthly Meetups

Besides maintaining that Stack Overflowish site, they've arranged monthly meetups for around half a year at the time of writing. The meetups have been a great success. Interestingly it has lead more data to become available. Deadlines motivate even government people it seems.

The meetups foster interchange and enable new ideas to emerge. The format seems quite simple. There are just a couple of short presentations and some working together. Unfortunately it seems the time available isn't enough to reach concrete enough results. Currently they are thinking of arranging a hackathon type of event to remedy this.

Other Thoughts

It seems there's some seriously good buzz on the area of open data around Tampere. It seems they understand the value it provides for the local business and are willing to work for it. I can only hope the local powers that be at Jyväskylä understand the same thing very soon as well. At least there are some signs of that already.

HSL Navigator

Tuukka Hastrup gave a talk on HSL Navigator, a web based concept for bus passengers. We have navigators for cars already but what if we had one for these guys as well?

If I've understood correctly, HSL takes care of the public transportation around the metropolitan area (Helsinki, whatnot). They've made some great progress in opening data. In 2009 around 30 apps had been built on top of it. In 2012 the figure was 670. That's a massive increase and shows the power of developers.

Tuukka showed a visualization I found very interesting, a journey time map. You simply provide your current location and it shows on the map how long it takes to take from that spot to nearby areas. There's some sophisticated math behind that.

I'll get back to this topic at my summary of the last talk as it was related to this one.

Traffic API Developer Sandbox

Tero Piirainen of ITS Factory discussed what they've been doing with traffic data over at Tampere region. One of their primary objective seems to be to generate business by making traffic data available.

There are many sources. These include road traffic, geodata and public transport to mention some. Currently the data that is available is often in non-standard, proprietary format. They aim to change this and want to use open, standard formats instead.

As I said earlier, they seem to have some good buzz going on at Tampere and this presentation confirms it. They've acknowledged the value and seem to be willing to work for it.

Firefox OS

Thomas Rücker of Tieto gave a talk on Firefox OS. To be more accurate it was more of a talk of a talks given multiple slidesets were used. All I know about Firefox OS before this talk was that it was web based. The talk clarified some details.

The platform itself is very affordable, somewhere around 100 euros. Besides buying a new phone, you might get it to run on your current Android although apparently there may be some issues with resolutions. But there are supposedly hacks for that.

The nice thing, depending on your viewpoint, of the platform is that you get to do everything in JavaScript. There are hardware level APIs available natively. As you might not want to give everyone at the web access over your phone, there is some kind of an elevation based security model included as well. You can decide not to allow that nice app to send SMS messages unless you really want to.

To be honest, out of Sailfish and Firefox OS the latter one seems more promising to me at the moment. At least they've gotten out of the vaporware stage and have something concrete to show. I would not mind if it became a great success. Even as a minor success it might force some of the bigger players to rethink their approach and make web a first class citizen on their platforms.

The next sections will be shorter as they were part of treweb and more technical in nature. I've tried to pick up the juiciest bits rather than boring you with the details.

Typography ABC

Antti Mattila talked about the basics of typography. I won't go into details as you can pick up the basics at a resource such as Hack Design. I will mention a couple of core points:
  • Learn to pair typefaces
  • Don't use too small typeface. Consider poor eyesight and all that
  • Most of Google Fonts aren't that good. Use Beautiful Web Type to find the good ones
  • Font Squirrel has a nice set of free fonts available
  • Of commercial ones Typekit and Fontdeck should be nice
  • Fonts are expensive for a reason. You get what you pay for

CSS Flexbox

Janne Kallunki discussed CSS flexbox. It's one of those features that would make the daily drudgery with CSS so much nicer. It provides some well needed functionality and turns some difficult things into almost intuitive. Rather than having to fight with floats and display options your declarations become more natural.

The biggest issue with the feature seems to be poor support. There are multiple versions of the specification. This has lead to some major fragmentation between browsers. And then we have IE. I won't go into that.

It looks like it's still too early to use flexbox in production. The feature shows a great deal of promise. I think it will take a couple of years till we see it in the mainstream. Even then it will be likely with some kludges.

This, That and the Self

Antti Järvinen talked about this. I mean that. Okay, bad pun. Anyway, the talk was interesting and highlighted various corner cases. Personally I like to avoid this and too object oriented code these days but perhaps that's just me. You still have to be aware of the basic binding rules.

The biggest gotchas seem to be related to closures as they don't work as intuitively as you might expect. I remember tripping on this when I got started with JavaScript. Remember, if you use a closure and want to use this, you will likely want to use that instead. Oh, and be careful with jQuery and this. It does some strange things to it.

Web Frameworks on Cloud Platforms - Pitfalls and Improvements

Jukka Tupamäki's presentation was probably the most academic one in the track. I won't go into much detail here. I expect you know cloud is the shiz, it's elastic and everything. Even though cloud is the new hip thing, frameworks haven't quite kept up with the progress. As a result there is all sorts of nastiness around the developers have to deal with.

When you start to scale and share data and logic between servers, traditional approaches fall apart. Your cronjobs might start running multiple times and wreaking havoc on your database. Data might get stored on the wrong server. You get the idea.

This leads to macro scale changes. You should take cloud and scaleability in count on your application design. If the architecture doesn't scale to multiple servers, you will be in big trouble at some point.

I think that in practice this means that you should aim to encapsulate your service into smaller compartments with well defined interfaces. This is perhaps starting to sound a bit like SOA could be a good idea.

Offline Transit Routing in JavaScript

Juha Järvi of Busfaster continued on where Tuukka left. Offline usage is particularly important for user groups such as tourists. Nobody wants to store a terabyte of map data on their phone, though, so how to get something that's useful enough? That's where various compression techniques come in.

First of all the whole map has been sliced to smaller areas. Within each area nearby points may be merged without sacrificing too much accuracy. Dead ends may be eliminated. There are these sort of small things which you can do to drastically remove data while still retaining enough so that valid results may be attained.

Even timetables may be compressed as they contain regular data. You simply need to store some sort of an offset rather than each time. Better yet the data doesn't have to be exactly correct. This provides room for further optimizations as you afford to let the data to be a minute or two off for instance.

On interesting scenario he mentioned is that the data could be served on some cloud service the user has access to. Dropbox could be a good alternative for instance. If they can make the workflow simple enough, I guess even the less nerdy of us would find this useful.

The technology stack they use was quite conventional. Basically just Closure Compiler, Node.js, PostGIS, Emscripten and asm.js (Emscripten target). I thought everyone used Uglify these days so Closure Compiler was bit of a surprise. I guess it must have its benefits especially in a case such as this.

Conclusion

It was very nice to visit Devaamo Summit again. treweb was just a nice bonus. The venue is just great for something like this. I hope they'll have more resources available next year so they can make the event even more awesome. It's just a matter of pulling the right strings.

I had actually prepared some bonus material for treweb that would have included some live coding. Perhaps it's better to save that for some another time. :)