I was doing some Node.js V8 profiling work at the office near the end of the day and noticed my profile processing was taking a long time.
I figured it is just processor intensive and left it running for the day while I went home. To my surprise, the next day it was
still running! htop showed me it had accumulated 12 hours of CPU time and was still not finished. This led me to track down
a related issue and how to fix it.
When improving Code::Stats’s Atom plugin, I wanted to add the plugin version
as the User-Agent header: code-stats-atom/x.y.z. I used the fetch API and set the header there but it did nothing!
By googling a bit I found that User-Agent used to be a “dangerous” header that wasn’t allowed to be set in browsers.
It was only recently allowed, but Chromium
has not implemented support for it.
People commented so nicely on my first build tool FBU
that I decided to push it to the Elixir package manager Hex.pm. I renamed
it, though, since people pointed out that it could be used to build anything, not just the
front end. So now it’s called (still unimaginatively) MBU: Mix Build Utilities.
EDIT 2017-04-04: I have since renamed the project to MBU: Mix Build Utilities and published it on
Hex.pm: hex.pm/packages/mbu. I have edited the links and code examples in this post to
tl;dr I wrote my own build tool using Elixir’s Mix:
It’s no secret that I somewhat dislike the state of modern
is the ecosystem and tooling around it. There’s a lot of innovation and hard work going on
in very many fragmented projects, resulting in reimplementations of already solved problems
and a ton of half working, alpha quality, 0.x versioned packages with unknown support status.
With these packages, you start your project by building an elaborate house of cards that is
the build system. And you dread the day when you need to touch it again.
What better way to spend a slow weekend than by writing another blog engine? Plenty, actually, but that’s what I did
anyway. The result of this work: Mebe! This blog is now powered by a wonderful mix of
Elixir and Phoenix. It has all the features that Laine
had, with the addition of an actually working Disqus comment system. It’s also search engine indexable, which I thought
I didn’t care about, until I didn’t have it anymore. Not that I’m aiming for tons of visitors, but writing about some
tech problem I have fixed is kind of pointless if no one can find the post by googling for it.
I had some free time this weekend, so I decided to pick up on an old piece of code I wrote back when I started learning
Elixir. It’s a URI parser I called Nurina (the word nurina is Finnish and means
grumbling or complaining — it sounded funny and it contains the word URI). It’s not really a well put together piece of
code but more of a learning excercise. I also decided to avoid using regular expressions entirely and instead used
pattern matching to parse the whole URI — an additional challenge.
Pitot — my SailfishOS GPS/GLONASS speedometer app — has reached a state where I’m confident to
release it for others to use. You can download the RPM in
the BitBucket repository.
Some screenshots showing the basic functionality below:
Some notes about the accuracy when using with the Jolla phone:
It takes a long time to get a location when you are moving. This is due to the phone’s GPS
being pretty bad. I don’t know of a way to alleviate it in the app.
Jolla’s speed readings come rounded to around 0.25 m/s. So for example when walking, the app
will report 4.5 and 5.4 km/h but nothing in between. To my knowledge this cannot be changed
from the app either.
The app is feature complete and I’ll just wait until QtPositioning is allowed in Harbour to publish it.
There’s still one little problem, the font is really jagged and ugly. I tried following a Jolla
employee’s instructions in setting the text’s renderType to Text.NativeRendering but it seems to
have no effect. I’ll take a better look at that later. (Also the logo is quite ugly, but I’m bad at
graphics, so any help on that would be much appreciated!)
If you encounter any problems, I’d appreciate bug reports or even pull requests in the BitBucket
My work laptop got its first sticker today — a Code from Finland sticker. I think it’s a nice
idea of marketing that we do our work in Finland, employing Finnish people and boosting the domestic
economy. Kind of akin to the Key Flag Symbol for other products.
First post of undoubtedly many to come in my SailfishOS adventures. This time it’s to tell about a small app I made
during the weekend.
Pitot is a simple GPS/GLONASS speedometer for Sailfish. It will display the current speed of the device in big
letters on the screen. It has a few different units, including kilometers per hour, meters per second, miles per hour
and even knots.
It still needs some polish and a good smart cover. Also, it can’t be released in the Jolla Harbour yet, since it uses
QtPositioning to get the speed.
Having used it a couple of times, it seems that the Jolla phone’s GPS is really terrible, though, since it takes ages to
get a speed reading and when you do, the readings jump up and down even though your speed is constant. It also seems the
resolution of the speed readings is too bad for trying to measure walking speed – I either get 4.5 or 5.4 kph, nothing
Hopefully I get enough time to finish it next weekend. Now I’ll have to be off to work!