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.


Travel laptop

I wanted to get a cheap and light laptop mostly for travel use. I did not need a lot of performance, but I wanted enough so that I could do a build of Tweetian using Sailfish SDK if I wanted to. This rules ARM based netbooks out and in practice means that device needs to have 4GB of RAM at minimum and reasonably modern CPU.

I ended up buying Acer Aspire V3-111P The device was quite cheap at 399€. The performance seems to be good enough for the tasks I had in mind and even though the hardware has a bit cheap feel to it the device looks good. Trackpad and keyboard are OK and its surprisingly fun occasionally use the 11.6 inch touchscreen for pointing and scrolling.

I've never had Windows 8 or Windows Phone device before so I was curious about the Metro UI and for the first days I used the preinstalled Windows 8.1. The UI indeed was quite nice for touchscreen use. However, a lot of the time the things I needed were traditional mouse/keyboard driven things and the mixed traditional/touch environment become quickly painful. Originally I thought of making dual boot system with preinstalled Win8 and Kubuntu. The device had secure boot and UEFI enabled in BIOS and getting dual boot to work correctly did not work right and quick Googling did not help so instead I just changed to traditional boot and installed only Linux.

Display brightness adjustment has issues and Ethernet does not get IP, but everything else works with Kubuntu. Two finger scrolling is too fast with trackpad, other than that keyboard, trackpad, and touchscreen are working quite well. 4GB of memory means that sometimes the device lags a bit, but less than it did with Windows. Also, Sailfish SDK is clearly quicker under Linux. According to specs battery should last 7h of use. I haven't measured, but my feeling is that it is probably true, could be even a little better.

I really wanted to buy a MacBook Air, but it would have been way too expensive just for travel use. I think I got good value for the money and if the laptop gets stolen or broken during a trip it will not be a huge loss like it would be with a premium laptop. I may still swap the 500GB harddrive to SSD to get a bit more speed some time later though.


Stella Launcher

I've been using Stella Launcher on Nexus 5 for a while now. Originally I was skeptical about the whole concept. Jolla's UI is just so different than Android's so how could it be a good experience to have launcher from Jolla and then just normal Android UX in apps, system, and settings? Also because of Android API restrictions the launcher could not support all the things Jolla's homescreen has, so even the launcher is not 100% same as homescreen experience in Sailfish OS. There are some rough edges, but all in all I'm positively surprised on how it turned out. Personally, I prefer using Stella Launcher on my Nexus 5 over having standard Google launcher.

I think I prefer Stella Launcher because it makes the homescreen simpler. There is just my apps and running apps. No widgets, no app shortcuts, nothing extra. All the apps I rarely use are in folders so my app grid is just one page and I get to apps I use often really quick. The one thing I'd like to see improved is the integration to Android notifications. It would be really nice if access to Android's pulldown notification menu could somehow be improved.

It's great that with Stella Launcher wider audience gets to explore a bit about Sailfish experience.



I pretty much always listen to music in random order and I have not moved on to Spotify and instead listen to tracks from files. It has annoyed me a bit that in Jolla's Media Player I had to first open it up, then go to "All Songs" and wait for 5 secs for all my tracks to load, and only after then I can choose "Shuffle all". I thought that I could do something simpler for myself and thus started a little hobby project I call Shuffle.

Shuffle is now ready for its first release. The UI is as simple as possible. When you start the app it starts playing immediately and only options for user are next and pause. I'm not going to add much more, the idea really is to keep the app simple and optimized for random playback.

Shuffle is now available from OpenRepos and sources are at github.


Pragmatic programmer

"The boring front-end developer" by Adam Silver:
Cool front-end developers are always pushing the envelope, jumping out of their seat to use the latest and greatest and shiniest of UI frameworks and libraries. They are often found bridging the gap between native apps and web and so will strive to make the UI look and behave like an app. Which app? you may ask. iPhone? Android? What version? All good questions, alas another topic all together. However, there is another kind of front-end developer, the boring front-end developer. Here is an ode to the boring front-end developer, BFED if you will.


When given the choice to add a preprocessor (e.g. LESS, SASS, CoffeeScript etc) to the technology stack, the BFED realises there is a deeper impact beyond just "writing less code". Will developers need to learn a new language beyond the language of the web (i.e. HTML, CSS, JS)? Will debugging code be harder? If the answer to any of these questions is yes then the BFED will say no to preprocessors.


The BFED realises that users have different abilities and preferred ways of using a computer, whether its a mouse, finger, thumb, screen reader, keyboard or a combination of all, websites should be consumable no matter the audience, screen size or capability of the browser.

This great post got me thinking about my own attitude towards code. I've always thought that I'm pretty good programmer but not a great one. I lack the ambition to know everything there is to know about certain specific area. I prefer just to solve the problem at hand and move on to solve the next challenge. I always try to solve the problem well, but I rarely go the extra mile to create awesome solutions.

Sometimes I get annoyed when rockstar programmers create really ambitious and risky solutions (or use tools unfamiliar with the team) to problems that are in my eyes just regular problems where regular solutions work quite well. Of course sometimes radical approaches are needed, otherwise we wouldn't have really great improvements like QML. I guess having the taste to understand when its appropriate to take risk and go with radical solution is what separates wannabe rockstars from truly great programmers.

I just try to be practical and get things done.


Taking a break

After two awesome years, I left Jolla last week. I felt a strong need to do something else since coding hasn't felt as fun as it has been earlier. I still have huge respect for Jolla and for the people in it. The company is still a young and evolving. If someday Jolla has the kind of position I want, I'd love to go back.

Next I'm planning to chill, travel, and do some hobby projects, like continue to maintain Tweetian for Sailfish. I'm of course keeping an eye out for great opportunities and I'll surely apply if I see something close to my dream job, but I'm not stressing at all about getting a day job quickly and instead I just want to be sure that whatever I do next is just right for me.

My dream job? I don't know, who really does? I'm nowadays more interested in what software does than actually creating the code so I think I would like working as a product owner for an app or service. I've also enjoyed a lot doing the Sailfish app development presentations at conferences and would definitely be interested in a job where I could do more that kind of tasks. Startups are interesting and I think I would be ready for taking a big role in a startup and help it make the product and grow bigger. I've also done project management and team leading. Perhaps being a technical program manager or a team lead in some interesting project would be a nice challenge.

The farewell wishes from the whole Jolla crew was heart warming. I really appreciate their kindness and understanding. They gave me this awesome lifebuoy as farewell gift and it will surely keep me afloat while I try to find dry land.