Linux for travel laptop

Late last year I needed cheap and light laptop for travel use. I ended up buying Acer Aspire V3 11.6" -laptop and used it with kubuntu. The laptop was ok for my light needs during my long trip. Laptop's 4GB of RAM, slow CPU, and slow disk meant that occasionally swapping made the experience a bit annoying.

My needs for personal travel laptop have not really changed, at home I'll continue doing majority of heavy lifting with iMac that is starting to be old, but still feels quite snappy (16GB of RAM helps). Mainly for fun and curiosity I decided to see how much better the laptop would feel with SSD. I bought 240GB SSD for it. Installing it was easy. I just opened bunch of screws from bottom, pulled the old drive out and replaced it with new one.

I decided to start from scratch and install fresh OS to the upgraded laptop. Starting from scratch was a good opportunity to try out couple of different linux distros to see if any of them would work better for me than kubuntu has.

At first I installed Ubuntu Mate. Install was trivial, this seems true for all Ubuntu variants I've tried so far. The desktop resembles traditional Gnome desktop. Bootup was fast. Menus and app launches seemed quite snappy. The desktop wastes a bit space as there is toolbars both on top and bottom, but otherwise UI seemed ok. Trackpad settings UI was minimal. It allowed me to enable two finger scrolling, but did not allow inversing directions, which is a must have for me. The sensitivity and sensitivity could also use some adjusting. For desktop use with mouse the distro could be good, but these few issues were enough for me to move to next candidate.

Xubuntu was my next candidate. I've used xubuntu earlier in my work laptop for a while. I liked it, but ditched it when I realized that its multidisplay support was not good enough for my use. I often used different monitor setups and needed to quickly setup the laptop with new display when holding a presentantion. For personal use that is not an issue. Xubuntu feels quite fast in basic use, but the graphics are not entirely smooth. There is some tearing in cases like watching fullscreen video on youtube or scrolling graphics intensive website in Firefox. I got the touchpad set the way I like it, and I like the minimal desktop that xfce provides. I definitely prefer xfce desktop over Mate. The look is nicer and with one toolbar the screen usage is also more efficient.

SSD doesn't make the laptop amazingly fast, but a lot of basic tasks like bootup, start of apps, and install of packages got a lot more pleasent. I've seen a lot less lag due to swapping so far. Xubuntu seems good enough for me. I think I'm going to keep using it in this laptop.


First day with Apple Music

My first impression on Apple Music is good after one day of use. Apps are a bit complicated, but so are competitors. I don't think Apple Music is a game changer. Transition toward streaming services has been happening for long time already and Apple Music isn't bringing anything radically new to market. I'm not even sure if it is any better than competitors, but it is not bad either. Apple Music will accelerate the transition and a lot of Apple users that have so far been buying music from iTunes are now going to switch to Apple Music.

I started my experience with upgrading my iPad Air and then starting using the service. Apple Music obviously had my iTunes purchases, playlists, and had subscribed the artists whose music I own in the Connect automatically for me. Discovering new music is quite easy. "For You" -tab provided good recommendations and playlists for me. Curated playlists seem like a good idea and I found quite many songs from them.

I was surprised by the many crashes when browsing through artists and albums on my iPad. AirPlay playback via AppleTV to my amplifier was also very unreliable from iPad. Quite often the songs just went silent after few seconds of play, and only when I skipped to next song playback resumed. AirPlay from my iMac worked without any problems so could be an issue in my WiFi setup somehow.

I've never been a big radio fan, and rarely listen to Internet radio so Apple's Beats 1 is not for me. I also don't see a lot of added value in the "Connect" social media. Hardcore music fans will anyway follow their favourite artists in other social medias, and artists simply have to put their stuff to FB, Twitter, Instagram, etc. anyway since majority of world will not be using "Connect". Apple Music team could just focus their efforts on making integration of Apple Music to existing SoMe services and Web (provide API!) as fluent as possible instead of trying again to reinvent SoMe.

Personally, I have never spent a lot of money to music. I've been buying 3-4 albums of music from iTunes every year for about 10 years now and additionally I've got plenty of mp3 files from my student years. I've also been using free Spotify to listen to current hit singles. Streaming service like Apple Music or Spotify Premium would be a better user experience for me, but I'm not yet convinced that benefits are big enough for me to justify additional cost. I'm probably going to enjoy my three month free trial and after it is over go back to using combination of free Spotify and sometimes buying songs from iTunes.

Edit: After upgrading my Mac to 10.10.4 AirPlay from iPad to AppleTV has worked without any issues. Perhaps discoveryd was messing up something in my network.


Google Photos

Just two months ago I complained about problems in Android's Photo management. I've been using Google's new Photos app for few weeks now and I have to say that I'm impressed.

Most of the things I complained about have been fixed. I've tried the app on my iPad and Nexus5 and it works nicely on both. Also the web app works well in browsers I use. The default quality is good enough for me, so I enjoy the unlimited capacity offered.

Photo editing options are quite basic, but good enough for most of my uses. Synchronization has so far worked quite well. Sometimes there is a bit of delay even when devices are on same WiFi, but this has so far been so rare that it has not really bothered me. I've also seen couple of crashes on Nexus5.

Search feature is quite cool. I haven't added any metadata (apart from location) to images and search is able to recognise if the picture is about a skyscraper, cityscape, a person, cat or something else.. I haven't tagged person's names to images since I'm still slightly privacy paranoid about letting google now who is who.

I'm happy enough that Google Photos is my main image library from this point forward. I'm not going to migrate my old iPhoto library, but all new pics goes to Google by default and I will occasionally make local "backup" to iPhoto.


Elop is gone

I can't say I'm sad about Elop finally leaving, but unfortunately this may just be one of the next steps toward new rounds of layoffs among the ex-Nokia people now working at Microsoft.

I'm happy to see Jo Harlow gone. I haven't got any inside knowledge how the decision to go to all-in to Windows Phone -platform happened, but I've always suspected that there was a lot of company politics involved and that Harlow was one of the key proponents of the WP-strategy. After all, she was one of the few old Nokia executives that had better position after the strategy change. As Symbian boss she had most to lose if MeeGo would've succeeded.



About two years ago I did couple of public presentations and prepared the slides with LibreOffice. That was quite frustrating experience. LibreOffice is like MS Office in the way it offers huge amount of features which makes the UI a mess. My slides are always quite simple: texts, boxes, and images. Presentation programs' features are total overkill for my needs, but on the other hand I've been seriously frustrated by how difficult is to align the elements in the screen the way I want.

Apple's Keynote has one feature I really like. Its use of anchor lines instead of grid for aligning elements is really nice. When you move an element and it comes near existing anchor line, the anchor line becomes visible meaning that element will snap to it. There are anchor lines, in middle and edges of elements, and screen making it easy to align elements. And anchor line stays visible only for certain time, so you can ignore it easily.

From my frustration to Office suites and admiration of Keynote's anchoring mechanism I come to conclusion that I would really like to make my own simple presentation program that would support anchoring the way Keynote does, but other than that it would be minimal so that unnecessary complexity will not distract user from essentials.

Around july 2013 I started working on the app I call Stage. I haven't worked much on it and it is far from being useful yet, but I still like the idea and the anchoring code was interesting to write. I'm using Qt5 and QtQuick Controls since I want to make the app cross platform and QML is just so much fun. On the technical side I'm also playing with idea of doing as much as possible with QML and only using C++ when absolutely needed. In case anybody is curious, the project is at https://github.com/veskuh/stage. The code is quite quick and dirty, and the architecture hasn't been thought about at all.

I've been playing with Stage code again for few days. Doing desktop development this way is super nice and easy compared to the mobile development and the kind of projects I've been working. It's a fun little project, but it is likely that it will never be anything more than toy program. There is just too much work to be done, even for the simple set of features that I need in my presentations. It is good to have different kind of hobby projects, you always learn new things from them.


Developing competence

Long term survival in technology business requires companies to have top notch engineers. The companies in Silicon Walley benefit from the huge talent pool in the area. The best companies do think about developing their people, there even the bad ones benefit from the smart companies and are only willing to hire people they think are already good.

European companies face a different challenge. There are not many R&D hubs with many big companies present. Typically the local talent pool is smaller and focused on narrower segment, like mobile game development in Helsinki, or car software in Germany. Finland used to have large amount of mobile software engineers, but due to platform change, the old Symbian skills are obsolete.

Nokia managed to develop many great engineers that are now great specialists at other companies. To grow into a great engineer usually needs two things 1) right amount of time 2) suitable challenges. For example to become a great browser engineer, you would have to spent many years in doing fixes and new features for browser engine, even if you are talented. Nokia's best browser engineers have joined companies like Intel, Apple, Samsung, Microsoft, Huawei, and Nvidia and still work on browser technologies. To develop that kind of talent Nokia invested in Webkit development for many years and then on Linux side on Gecko development for several years.

Sometimes companies forget that they have opportunity to grow the engineers from talents to great engineers and only setup new R&D in already hot areas like Silicon Walley, or even worse only hire top engineers (instead of top talent).

There are challenging software areas where it can make a huge difference what kind of people you have and how long are you willing to stay in the area. All too easily I see companies moving responsibilities and restructuring their operations. These can be really bad for talent and demanding asset development. For example Google couldn't have made Chrome great by just developing one more UI on top of Webkit. Google needed to invest time and money on Webkit engine development, their own JavaScript virtual machine development, and forking Webkit to Blink. All of these required years of work, hiring great people, and growing talent into great engineers.

While I applauded Nokia's browser team development as a good thing, sadly most of Nokia's development work seemed to be much more short sighted, and even in the browser area Google is much better than Nokia ever was as Chrome's success both on desktop and mobile proves.

Way too often I still see companies only willing to hire ready people, instead of healthy mix of eager young engineers and experienced guys. Hiring is only small part of developing people. Keeping the right people and giving them right jobs is probably even more difficult.


Programmer stereotypes

M.E. Driscoll wrote an interesting piece about the traits he sees in top engineers in Silicon Walley:
A couple of weeks ago, I was drinking beer in San Francisco with friends when someone quipped:

“You have too many hipsters, you won’t scale like that. Hire some fat guys who know C++."

It’s funny, but it got me thinking. Who are the "fat guys who know C++”, or as someone else put it, “the guys with neckbeards, who keep Google’s servers running”? And why is it that if you encounter one, it’s like pulling on a thread, and they all seem to know each other?

And continues to characterise them as:
  • Their craft is creating software
  • Their tools of choice are C, C++, and Java – not Javascript or PHP
  • They wear ironic t-shirts, and that is the outer limit of their fashion sense
  • They’re not hipsters who live in the Mission or even in the city; they live near a CalTrain stop, somewhere on the Peninsula
  • They meet for Game Night on Thursdays to play Settlers of Catan
  • They are passive, logical, and Spock-like
  • So it's C++ fat guys with neckbeards vs. JavaScript hipsters. In my experience its quite different in Finland.

    We do have JavaScript hipsters and some of them are really competent and obviously some not. Fat C++ guys that are great engineers are actually quite a rare.

    Majority of super competent C++ developers I know are regular boring engineer types (we used to use term "Nokia Engineer" to describe the type). These are people with 1,5 kids, golden retriever, wagon Volvo, and lives in a house in suburbs. They dress like normal engineers and most of their free time they use with their family. They really are passionate about their work and see it as craft, and do tend to use languages that are appropriate for the job, and definitely are logical. When they go shopping in saturday with their families they will not stick out in the crowd from the regular folk.

    I don't know if my experience is because of the companies I've been to, or if Finland's culture of not sticking out of the crowd has really limited the size of fat C++ coder community and forced the to fit society more than in Silicon Walley.


    Photo management with Android

    During my recent trip Nexus 5 was the only camera I used. I know its not the greatest, my Pureview 808 would have been a lot better, but I decided to only carry one phone daily. I'm usually quite happy with the quality of the pictures Nexus 5 is able to capture.

    The longer I've used Android I've discovered more and more little things I do not like in it. Photo management is something I've actually started to hate in Lollipop. Photos app UI is ok, its not great but does the job. I think most of the issues are because of cloud synchronization and grouping of local images.

    For example deleting image is a blocking operation and may take several seconds and I need to confirm dialog "Delete everywhere". The app does poor job in figuring out local vs. cloud and many times I had to wait loading of image for long time (loaded from cloud) even though the same image was available locally. Also, in "All images" list I see duplicates of images (cloud, local) and in some cases even a third one (local low resolution preview).

    After trip I wanted to import images to iPhoto. For all images it imported both preview and the actual image. Perhaps that was an issue in iPhoto, but couldn't Android have stored previews to non-visible dir so that they would not be imported?

    There is also plenty of little annoyances in photos app and photo management like notification with led/sound about such a trivial thing as "n of your images was backed up" on succeeding automatic backup. I hate these issues because taking photos is one of the key features in a mobile phone for me. I like to take photos, share them, modify them, transfer them to computer for various uses and do all of this often.

    I may need to install Sailfish on my Nexus before I throw it to the wall. I'm also seriously considering iPhone 6.



    When I last year left my job I was generally unhappy. I did not love my job, I did not find my life exciting, and I did not know what do about it. Only thing I was sure was that I needed to change something. I decided to at least see some parts of the world I haven't seen, and do things I've always wanted to, but haven't had the courage.

    I just last week come back to Finland after almost three months of travel in South-East Asia and Australia. I had a great trip, probably best trip I've ever made and my biggest adventure so far. I spent a lot of money, but it was worth it. As a person, I'm still the same I've always been with the same problems and strengths, but I found courage to do things I never thought I could and found little moments of happiness. I hope I'm a bit braver and confident than before the trip. I will definitely pay more attention in living the life instead of just being.

    Now, I'm actively looking for a job. After my break from work I've started to enjoy programming again so I'm also looking at developer positions. I'm mostly interested in Qt/QML and web technologies. I've always had a regular job, but this time I'm also thinking of getting into contracting. The idea of doing a 3-6 month contract and then having another contract or a small break could be just right for me.