2012-03-13

Minor update to VeskuMaps

I just released VeskuMaps 0.2.0. It's available as debian-package here.

There is one cool new feature, which was actually really simple to implement. VeskuMaps now uses magnetometer to detect the orientation of the device and shows it on the map. First I was thinking of adding traditional compass to the bottom corner of map view, but then I realized that most of the time people are actually not that interested where the north is, instead they want to understand that which way they are facing. This they should be able to see now quite easily. In the map view north is still always up, and in the bottom left corner there is miniature N9 rotated to show what orientation the device is pointing.

Another new feature is that now it is possible to get back to map view from details-page of a location by clicking the minimap in the details-page. Main map is centered to the selected location and the map marker is opened.

In addition I added loading indicator to show when the app loads initial map and an error message to show when connecting to Google's server failed.

2012-02-25

2012-02-14

Preview release of VeskuMaps

My hobby project, a simple Google Maps -client, called VeskuMaps is ready for its first public release.

VeskuMaps 0.1 Features:

  • Show map
  • Pan map
  • Pinch-to-zoom map
  • Show current location on Map
  • Find near by service
  • Show list of search results
  • Show details of search result
  • Show service on Nokia Maps
  • Open service contact card for dialing/saving
  • Open service details on browser
  • disable GPS while on background

    The app is for Nokia N9 and N950. I'm calling it 0.1 release. Most important stuff is there, but the functionality is quite minimal. There are few bugs and usability issues I already know of and there is plenty of improvements I'd like to make. Since the basic functionality is there, the app should be useful in some situations. That is why I decided to make the app now public.

    The app is not meant to replace the built in Nokia Maps as most of the time the built in app is great. The main point of the app is that it starts quickly and you are able to search local services with it easily. Once you find what you are looking for you can easily up the details in browser, make a call, or if you want to navigate to the place, you can open Nokia Maps for directions.

    Download the debian package for N9 from here.

    Currently my plan is to polish the app and push the next version to Nokia Store. This might take few months though. In the meanwhile, I hope you find the app useful.

  • 2012-02-11

    Next Steps

    It was a year ago when Nokia's Windows Phone strategy was announced. I remember being very curious about the new strategy. I didn't feel that MeeGo was under any threat, since just few days earlier Elop had said that he thinks that N9 is great. My guess at that point was that Nokia would take Windows Phone to make products for operators in USA since that was the market where Nokia had most troubles with customers and operators.

    I took the news pretty hard, I was very passionate about what we were doing. I had been working on Harmattan from its beginning and I was always confident that when it was finished it would be great OS. Developing Harmattan had been rocky ride with a lot big changes both in UI and technologies used. In february it was finally starting to look like we were on the final stretch. I was totally convinced that finally we had all the pieces (OS, HW, design) needed for challenging iPhone. My confidence on the OS made hearing the bad news even worse. I was not the only one who took the news pretty bad. That night there were plenty of drunk Nokia engineers in bars around Tampere. There was a lot of very committed and passionate people working on the N9.

    The great "Unfollow"-ad for N9 pretty well describes my feeling about N9 now.

    I've been now working on the open source MeeGo (MeeGo Community Edition first, and now Nemo Mobile) for almost a year. Unfortunately, after this month my current position ends, and I will have couple of months to look for new job within Nokia. I've been actively following internal job market, and HR has proposed few jobs for me, but unfortunately most interesting opportunities so far have not been in Tampere or the role's offered have not been what I'd want to do. Relocating further up north in Finland is not an option, since I hate winter already here. I do not think I want to relocate to capital area either unless I get a nice salary increase, and knowing Nokia HR I do not see getting one so likely. I've been eyeing on few positions abroad, but so far I have not yet found the perfect match. It is starting to look that I will not find interesting enough opportunity anymore in Nokia and I'll just take the resignation package and do something else.

    I would be sad to leave, the company has been good to me. I've worked with brilliant, fun, and interesting people in interesting projects at Nokia. If I'll leave I will wish the people remaining all the best.

    One of the options I've been pondering is to found a one man company that would develop mobile software to be sold at app stores. With the resignation package, my savings and if I could get funding from the company through the bridge program I would have quite good nest egg. According to my calculations I could comfortably live with the money for 1-2 years even if the apps I develop would not bring any income. The problem here is that I do not have any good ideas of apps to develop and I'd really prefer to develop my own apps instead of doing contract work.

    I'm also looking for good opportunities in big technology corporations. I could relocate to an European city like London, Berlin, or München for an interesting enough opportunity. So far I have not yet applied to anything, but I've seen few interesting job postings in London. However the positions were not detailed enough to know how interesting those positions really are. Too bad that nowadays mobile operating systems seem to be developed in the other side of the pond. I'd really love to develop iOS, Android, or Web OS.

    I've talked with couple of different startups that my former colleagues are founding. There are couple of really interesting ones even in Tampere. Some of these have been very tempting, but so far I haven't said yes to anything.

    I'm quite excited about taking next step in my career. I've been pondering my options almost too much, because I want to really be sure that I know what I want to do. I want to make sure that I'm stepping forward. I really want do something meaningful and I want it to be challenging. I want to find the next thing I will be passionate about.

    2012-02-04

    Work-in-progress: VeskuMaps

    I've been working on a simple Google Maps -client for N9 as a hobby project on my spare time. At the moment I'm calling it VeskuMaps, but I'm going to figure out better name hopefully soon.

    I originally got interested in writing my own Google Maps -client when I started using Nokia N900. Quite quickly I got frustrated on the built in Maps app. It was too slow, had strange UI, and worst of all it often failed to find what I was looking for. My previous phones before N900 had nice simple Google Maps -clients.

    I decided to write a simple Google Maps-client optimized for searching services. In my work I had gotten familiar with Qt and QtWebkit, so it wasn't a big effort to write a simple client using them. After I got basic functionality working, my role in work changed a bit and I got a lot more busy. I did not have enough time or motivation to really polish what I had done and publish it. In anycase, it already worked for my occasional needs. The screenshot shows what it was about.

    Nokia Maps in N9 is a lot better than the maps app N900 had. It's not quick to start, but otherwise I'm pretty happy with it, and I use it a lot. Still, sometimes I want to use Google Maps for finding services, since their database of services and points of interest covers couple of places that Nokia's doesn't. This is why I took my old N900 app's code and decided to port it to Harmattan.

    I did a first version before QML was chosen as the main UI framework, so I did it using MeeGo Touch Framework. I basically threw away all the QWidget code and replaced it with MTF. Not a big effort and worked quite nicely too. It was far from complete though and I had to use Scratchbox for development since QtSDK support for Harmattan was nowhere to be seen at that time. History repeated itself and again I got more busy at work so my motivation to work on the app on my spare time disappeared.

    Lately I've been working more and more with QML apps, like Helium-browser. I enjoyed working on making QtComponents version of Helium. This was because QtSDK finally supports QtComponents in Qt Simulator. This makes development really quick and easy. Last weekend I remembered my old Maps-client and picked up the MTF-based sources and started to port it to QtComponents.

    I threw away all the C++ code and just kept HTML/JavaScript/CSS and started adding QML around it. In the application HTML and JavaScript is used for accessing Google's APIs and for the map content. QML defines the user interface around the map content and provides the location information. Only C++ is only used for loading the QML and for setting configuration options for the WebView. After couple of long days and few evenings I'm starting to be quite happy about the result. There is plenty of things still to polish and few features I'd like to implement, but I think already now the app is usable. Probably after this weekend I'll make the .deb for N9 available and after some polising I may even publish it in the store. This time it very likely that I'm not going to be busy at work.

    The app also runs on Nemo Mobile, but I have not yet done the packaging since it is not as useful in Nemo, because GPS does not work in Nemo yet.

    2012-01-24

    A Bugs Life

    In this post I collected the things I did to fix a bug and get it released in Nemo Mobile. While this is not exactly guide on the matter, this might help if you are interested in helping Nemo.

    Every monday morning at 10 o'clock Nemo-project is having a error triage meeting to set priority for new bugs. We do it as open IRC meeting, everybody is welcome, like the project does all of its meetings. One of the bugs we discussed yesterday was bug 56: "VKB overlaps with terminal content in landscape". Originally we thought it might be issue in the virtual keyboard code and therefore we decided to file bug to upstream (maliit) bugzilla. This I agreed to do. I marked the bug status as assigned and myself as assignee.

    I had taken a look at terminal code already earlier and knew that it had some strange looking code related to virtual keyboard handling. I decided to take one more look at the terminal, before filing the bug. Quickly I saw where where problem likely was. Terminal checked if the screen area of virtual keyboard started from edge of device for detecting if screen was in landscape orientation. Since in N950 the virtual keyboard does not fill the whole width of the device in landscape, its screen area does not start from edge and therefore terminal does not understand that it is in landscape. That is why it miscalculates the available size for the content.

    I decided to test if using MInputMethodState::instance()->activeWindowOrientationAngle() to check orintation would fix the bug.

    I pulled terminal sources from its gitorious repository and created a local branch for my fix. Since terminal does not have dependencies to internal APIs I was pretty sure that I could just compile it using QtSDK for Harmattan and test the resulting binary on Nemo. This turned out to be true. I opened the the project with Qt Creator and added Harmattan as the only target. I added my fix and did a build. As result I got a binary, which I copied to my device with scp. Binary worked fine on my N950 with Nemo. The bug was gone.

    Since the fix worked I decided to submit my fix to Nemo. First I commited the change to my local git bug fixing branch. Then I created a patch file that included the fix with git format-patch. I logged into community OBS Web UI and searched for meego-terminal. From the search results I choce the version of the package that was in project CE:Apps:MTF, since I knew that it is the repository that we use in release.

    I branched the package to add my fix.

    I added the patch file as part of the sources.

    Then I edited .yaml to include the patch. At this point I changed from community OBS's web UI to command line on linux. I checked out my branched package with:
    osc -A https://api.pub.meego.com/ co home:vesku:brances:CE:Apps:MTF/meego-terminal

    I changed into the directory that I checked out and for updating .spec file I executed: specify meego-terminal.yaml Finally, I updated .changes file by adding the following on the top:

    * Mon Jan 23 2012 Vesku H <vesku.h@gmail.com> - 0.2.2-1
    - Fixes NEMO#56: VKB overlaps with terminal content in landscape
    

    Both the header and the fixes line follow a specific syntax so that build system can automatically parse them and make certain checks and do some automated tasks.

    I was now ready to check in my changes and see if package builds and works. I checked in my changes to OBS with: osc ci -m "Fix for Nemo#56"

    I went back to web ui and checked my packages build status. OBS built it quite quickly. From repositories I had to change publish flag true for all architectures. To grab the generated .rpm I clicked: CE_MW_MTF_armv7hl -> Go to download repository -> armv7hl from there I copied url to the generated rpm. Then I logged into my device and pulled the rpm with wget and installed it with rpm -U meego-terminal*.rpm.

    Since the package worked fine I went back to Web UI and submitted my package. I marked the bug as fixed and added link to the submit request as comment.

    I had to do a minor change to my initial submission based on automated review and another minor change based on comment I got from Nemo maintainer (Sage) at irc before the submission was approved. If you do contributions it is good to hang around at #nemomobile and #mer channels (@freenode) for feedback.

    Finally the submission was approved and fixed package is now at the repository. After approving the submission request Nemo maintainer marked the bug as released in bugzilla and the fixed package will be included in the next weekly build of Nemo.

    As a last step I should contribute my fix back to upstream project (gitorious), so that future versions of terminal would have the fix by default and the patch would no longer be needed.