2015-06-18 10.48.02

Notes from mloc.js 2015 – JavaScript Conference

It’s easy to get stuck in a filter bubble of technologies that we use to solve our problems. Good conference will challenge your view on how you solve problems and present novel concepts. Mloc.js (million lines of JavaScript) was such a conference. Main idea behind the talks was how to manage projects with such a wast code bases.

Things I learned, that will influence my future projects:

  • Reactive programming is growing and it looks it’s going to stay. One way bindings and data flows make it much easier to manage state in Single Page Applications.
  • One way bindings with immutable data, fit well with functional programming. A lot of new experiments are in FP domain.
  • Compile to JavaScript is the way forwared. ES6 is nice, but currently the money is on building better tooling, instead of staying with JavaScript. TypeScript looks like a good starting point. Having types allows for better static analysis and IDE integration.
  • Concepts like graceful degradation and progressive enhancement are out. The only context in which people care about HTML is for Search Engines. If you can render good enough version of Website for Google – you don’t have to worry about anything else.
  • It seems that new solutions target only evergreen browsers.

I do see a lot of challenges. We’ll have to train people to understand FP. Now it’s a good time to pick up your Haskell book, once again.

I’ll also have to switch my tooling to TypeScript and replace jQuery with another layer of abstraction on top of it.

Jay for the speed of progress and the fact that I now how to learn completely new skills, while still staying ‘just’ a web developer.

Notes from OpenData Ljubljana Meetup


Sometimes people look back at certain points in time and say – we were too early. When we started doing work on OpenData in Slovenia in 2010, there was interest but no critical mess yet (just a handful of people showed up for meetup).

But this time, it went much better. ~25 people showed up, despite not having a clear agenda – just a topic of OpenData. Many years of efforts of different individuals and organisations worked!

What we learned:

  • Slovenian Ministry of Public Information is continuing their efforts on NIO Portal and they’re developing now solutions and policies related to Open Data. There were more personal discussions on how we can help them with these efforts.
  • There were other people present from different Ministries and Government Services that were all championing Open Data within their institutions.
  • Developers are using different Open Data tools and projects within their institutions. They promised to keep us updated, once they’re ready to release it to public.
  • Journalists are still trying to figure out how to position Data Journalism/Visualisations within the failing Newspaper industry in Slovenia.
  • http://danesjenovdan.si/ are working on much better version of http://www.delajozate.si/
  • ARSO (Slovenian Weather Agency) has a Data Portal: http://gis.arso.gov.si/geoportal/catalog/main/home.page

Given the big amount of interest, I’ll try to organise another event in the fall, with talks and a bit more structure.

Special thanks to Podcrto, FMF and everyone that shared the news and attended.

(Photo by Crt Ahlin).

Photo CC by Nahuel Hawkes - https://www.flickr.com/photos/nahuefox/12862209904/

How to fix Ubuntu font from Google Fonts on OS X

If you are Web site owner and would like to fix this for your site, repackage the Ubuntu font under a different name and serve it from your site. You’ll lose Google’s CDN, but your OS X users will be happier.

For about a year, a few sites would always display broken Š character on my Chrome in OS X. Example:


Debugging this lead me to a rabbit hole of bugs in different upstream sources. My first reaction was that Google Fonts serves bad font. But that doesn’t explain why it appears only on OS X.

So I started thinking – what if broken font is coming from my computer. It turns out that it’s common for Open Source applications to install Ubuntu font. It also means that because the way web font rendering works, it will always try to use local version. This almost always makes sense, since local fonts can be much better then your web optimized subset.

So to fix this, disable Ubuntu font from Font Book Application. If you realise later that you need it, you can enable it again.


But what’s the core reason for this breakage? OS X Font rendered has a problem with the way font is built. Some of the tables in the font are too large. Launchpad tracks this bug at #1334363. It will soon be one year old, with no resolution yet.

If you are Web site owner and would like to fix this for your site, repackage the Ubuntu font under a different name and serve it from your site. You’ll lose Google’s CDN, but your OS X users will be happier.

All solutions are bad, but I’m confident that in another year Apple can fix font renderer or that Ubuntu will repackage font.

Photo by Marc Blickle

Slovenian Supervizor data in Python Pandas

A few years after starting to work with Open Data, I’m still amazed by Python Pandas. I’m still very much a novice, I’ve got enough experience that I’m dangerous. I also don’t get enough opportunities to work it.

So when Nino invited me to do a workshop about Pandas at Faculty of Mathematics and Physics in Ljubljana, I took the chance to dive back in. So many people applied that we had to do it twice.

The first time, we used the Matura dataset, that I used for my previous talk on Pandas in Kiberpipa. It turns out it’s a rather bad dataset to show off potential of framework to novice users.

So the second time, I rewrote it to use Supervizor data. It worked much better and I got to explore new dataset. I’ve published resulting iPython Notebook on Github and also embedded below:

Photo by David Klasinc  (cc-by)

What I learned by organising WebCamp Ljubljana 2015

We did it – 350+ happy web people enjoying a day together, talking about the things they are passionate about. I’m sure it was mostly not about “web”, but it was as good excuse as any to get together. It took about 25 people in the end to make it happen and I’m thankful to all that made it possible. Thank you!

Despite being our ~6th event with 100+ participants, I still learned a lot of important lessons.

Lesson: Make (transparent) plans and document things

Helmuth von Moltke the Elder said: “no plan survives contact with the enemy*”. I never understood it, until we made plans and then we tried to execute them and things changed. But just going through the motions of making a plan was useful.

Having a shared Google Drive folder helped. A set of documents, expectations and timelines allowed us to synchronise our expectations.

It’s also important that you make an archive of data available to others as team members change between events. It’s no fun if you have to ask people to dig through their archive of 1 year+ old emails.

Lesson: Effort is diamond shaped

If you look at amount of work required, you start with a small core, grow it and then wind down, after the event.
This has implications for staff meetings and timelines. You don’t have to have meetings of everyone, feel free to just email updates to people that will help you later.

Lesson: Involve external groups

Conferences usually consist of presentations with many side activities. This allows you bring more interesting people to event and to hand them over certain level of autonomy in planing them. Less work for core team with a better end result.


It’s a weird sport – a couple of months of work for a single day event, but it ends up being a really good party.

*(“Moltke’s main thesis was that military strategy had to be understood as a system of options since only the beginning of a military operation was plannable.”).