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.


No Battle Plan Survives Contact With the Enemy

Last year when I decided to change my life the only way I knew how I could change it was to quit my job. It was a good job and a great set of people, but I did not feel that my life and career was going forward. I was in a standstill and in some ways I felt that when I was at Nokia I were happier.

I guess good things are never easy. Finding a job that would be good to me has not been easy. During the past year I've applied to 17 jobs, have talked to 8 recruitment consultants, and interviewed 5 times. I've applied to Technical Product Manager, Technical Program Manager, Team lead, Agile Coach, Release Cordinator, Developer Advocate, Group Manager, and to Developer positions. Some of these have been ideas from recruitment consultants and some are still on-going. As you can see from titles I'm not really sure of my path, but I definitely want to get forward from where I have already been. I'm willing to work hard and if necessary to relocate.

I just had my latest interview last week. I think it went well, and the job sounds like a good fit. I've also been in touch with a recruitment consultant that thinks he is going to have an interesting and well paying contractor gig for me really soon.

On the personal side of my life things were also looking good. I've been chatting with a nice lady I met during my last trip, and my plan was to go to see her this week. Just when I thought finally everything is going to work out great, things got complicated again due to a small accident. I broke my elbow last weekend while doing workout. It needed minor surgery, couple of weeks of wearing a cast, and couple of months to fully recover. This may mess with the jobs I was near to land, and destroyed my travel plans.

It is so disappointing when good things are so near that you can almost touch them, and then they are again somewhere far away and you are unsure if you can reach them.



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.