Planet maemo: category "feed:04088ede8ecf981676b12f87999d25d2"

Alberto Mardegan

Looking for new adventures

2017-04-10 19:07 UTC  by  Alberto Mardegan
Yes, I'm looking for a job. :-)

These six years I've spent at Canonical have literally been flying. I enjoyed my work from the very first day, when I was assigned to the Unity 2D team, developing a lightweight desktop environment for Ubuntu, though I stayed in that team just for a few weeks. The next task, which I've been carrying on till today, has been implementing the Online Accounts feature in Ubuntu; this project has been especially dear to me, given that I got to reuse and improve much of the work we developed for the Nokia N9 phone. Seeing it being adopted also by Sailfish OS and KDE has been a major satisfaction, and a proof that we were on the right track. And indeed, porting the UI to Qt/QML for running in Unity 8, plus extending and simplifying the APIs and helping with the development of client applications has been a fantastic ride.
In the times where calm was reigning in the project, I reached out to other teams and offered help, mainly for improving the geolocation service and the webapps project.

Unfortunately, with the decision to terminate the development of Unity8 and to set aside the convergence goals, all of the above is no longer relevant for Canonical's future and I, along many other developers, have left the company.

So, here's my CV.

Given that reading is boring, here's a few pictures (and even a video!) of programs I've done, not as part of my daily work but in my spare time; though, to be honest, I do enjoy middleware and logic development (and even kernel, though I got little chances to work on that so far) more than UI development:
Imaginario on the Ubuntu phone Imaginario for your desktop (under development)
Mappero Geotagger If you wish to see my code, please have a look at my gitlab, github and launchpad accounts.

Categories: english
Alberto Mardegan

Mappero: public source code, CLA, Qt5 port

2013-11-03 17:55 UTC  by  Alberto Mardegan
Mappero has always been distributed under a GPL licence. However, since when I started selling Mappero Geotagger (which is built from the same source), I decided not to publish the source code in a public repository, but only to provide it to those who made an explicit request to obtain it.

I spent some time reconsidering the matter, and I've finally decided to let the source code live in a public repository. I also setup a mailing list for it. And indeed I welcome code contributions, however there's a small catch: a CLA. While Mappero is distributed under the GPLv3 licence, I request that all contributors send me an e-mail in which they give me the right to re-licence their contribution under any licence published by the Free Software Foundation.

Since I believe that the busiest time for my involvement with speculo has passed, I expect to be able to spend some more time developing Mappero. The qt5 port is more or less working, but most of the cool features are missing, so it's little more than a map viewer at the moment (Mappero Geotagger, however, is fully working under Qt5!).

Here you can see Mappero running on an Ubuntu Touch powered Nexus 4. Pinch zooming and GPS are not yet working, but I promise they'll be there in less than a week. Also I found a nasty bug which can cause the application to crash when downloading map tiles, and I'll fix it ASAP (I'm mentioning it just so that I won't be flooded with identical bug reports now :-) ).
Categories: english
Alberto Mardegan

speculo, or shared memory made easy

2013-11-02 15:41 UTC  by  Alberto Mardegan
The last few months I've been dedicating most of my (very little) free time to a new project: speculo, a library which implements IPC (Inter-Process Communication) on top of shared memory. Since developers appreciate conciseness and minimalism, here's a description of speculo in a few bullet points:
  • written in C
  • POSIX (tested in Linux and FreeBSD)
  • small (~850 LOC)
  • well commented (~400 lines)
  • good test coverage
  • zerocopy
  • lockless
  • one writer, many readers
  • data is written and read in chunks of arbitrary size
  • a data chunk becomes visible to the readers as soon as the writer commits it
  • data chunks can have an expiration time
  • data chunks can be obsoleted by a newer copy
  • garbage collector
  • no file descriptors are permanently kept open
  • no change notification
But here I probably need to write some paragraphs to explain a couple of points.  Except for a few memory addresses which hold the state of the memory area and which are atomically updated and guarded with memory barriers, all the data written to the shared memory object is immutable. This in particular guarantees that readers have a consistent access to the data, which will not change under their eyes. Data chunks are only appended, which means that the shared memory object can only grow. However, data chunks can be marked as expired (if they have an expiration time associated with them) or obsoleted (if a new chunk is said to replace their contents), which means that not all of the data which is written in the SHM object is actually valid. The readers' functions know this, and skip over the invalid data.
At some point the garbage collector will kick in, when the conditions specified by the writer are met or when the SHM area is completely full. All the chunks which are still valid will be copied over to a new SHM object, and then the SHM objects will be atomically switched. Readers will be able to complete their ongoing reads, and transparently move on to the new SHM object as they request to read a new data chunk.
Click to read 682 more words
Categories: D-Bus
Alberto Mardegan

An always new wallpaper for your N900

2011-06-25 19:12 UTC  by  Alberto Mardegan

With the 0.9 version of oculo, your N900 homescreen gets one level up: beautiful wallpapers that will never be the same. Well, whether they are beautiful really depends on you: you decide what tiny part of the World Wide Web should be rendered in there!

Of course you are not forced to have Oculo manage your wallpapers. :-) Oculo can still render the web content into a homescreen widget, and you can run multiple instances of it, in different modes. Also, you can have Oculo render only some of your homescreen views, while keeping the rest static.

Version 0.9 of Oculo is in the extras-testing repository, and you can directly download it from here. Be warned that I just tested the widget for a couple of minutes, so anything bad can happen. :-)

Categories: english
Alberto Mardegan
Just a quick note: Oculo 0.8 is now in the Maemo Extras repository. Known issues with the CSSU have now been resolved, and the update interval is now configurable.
Categories: english
Alberto Mardegan

Latest news, sport results, stock market quotes, currency conversions, web comics, picture of the day... The internet is filled with dynamic content that you might want to bring into your phone homescreen, but often you don't have a widget that supports the site you are interested in. But now, cry no more! Oculo is a homescreen widget for the Nokia N900 which can take any web site and render its contents into your homescreen. Not only it can render a complete web-page, you can also choose which specific parts of a web page you are interested in!

Click to read 988 more words
Categories: english
Alberto Mardegan

Committed to Linux

2011-02-12 15:02 UTC  by  Alberto Mardegan

As a Nokia employee working on MeeGo, I feel that my career is going to be deeply affected by the recently announced Nokia strategy. I'm not going to comment on the value of the business decisions; of course I have my opinions about that too, but what I feel more important now is the future of MeeGo, and Linux-based platforms in general, inside Nokia.
The announcement mentions MeeGo only marginally, as a “longer-term market exploration”, and ends the paragraph with “Nokia still plans to ship a MeeGo-related product later this year”. This sounds to me like: we won't market any MeeGo devices in parallel with Windows Phone ones, not to hinder the latter's success, but we'll release the MeeGo product we're currently working on before downscaling MeeGo back into the R&D division.

Click to read 1220 more words
Categories: english
Alberto Mardegan

Google Maps routing: the day after

2010-08-01 13:51 UTC  by  Alberto Mardegan

Just one day after releasing mappero 3.0+beta11, another version is out. Today's hot dish is the Google Maps address disambiguation dialog:

It sometimes happens (especially to people living in Italy) that the address you need exists in different cities. “Via Roma”, for instance, is one very common street name in Italy, so if you are searching for it in Google Maps web interface you won't get a route, but instead you'll get a list of possible matches. And so far, in such a situation Mappero would have spit out the infamous “Invalid source or destination.” error message.
In today's release the situation is improved, because when we get a disambiguation request from Google Maps, Mappero shows the screen above and lets you pick your destination. This should hopefully save you some time when typing addresses.

I still have a few unclear points about Google Maps behaviour, because sometimes the reply is different from what we get via web, and it seems that it doesn't always honour our request for local results only. So, if someone is familiar with Google Maps parameters and knows how to get the destination address resolved using a local search, please let me know and as a reward I'll append your name to all street names returned by Mappero. ;-)

By the way, the main reason for releasing this today was that this version also fixes the problem when libmappero doesn't get automatically upgraded along with Mappero. Also, the fact of having received a huge donation stimulated me to do something in return. :-)

Oh! I hope that now you won't be expecting a new release every day! But in case you do, here is how you can make it happen.

Categories: english
Alberto Mardegan

Mappero is back from holidays. Version 3.0+beta11 has just been released and doesn't contain any of the big features I was planning; instead, it's mostly a bugfix release, but a rather important one. Here are the main highlights:

  • Google routing works: direct and faster
  • A new widget for inputing addresses, with history-based auto-completion
  • Bugfixes: POI edit/view screen doesn't destroy your data, fix some crashes introduced with 3.0+beta9, fix Yandex router, screen unblanking works again, and some other minor corrections.

I was hoping to make a gigantic release with some great improvements I had in mind, but the current situation of server (the routing data provider for Mappero and maemo-mapper), which lately is often not responding, forced me to hurry up and make a new release as quickly as possible.
Routing in this new version works by directly connecting to the Google Maps server (although the indirect way is still available, under the "gnuite" router option) and downloading the route as a KML file. This is much faster than the old way, because we have a few network hops less and we are not waiting for the gnuite server to process the route and rebuild it as a GPX file for us.

The other main feature introduced with this release is the address input dialog: This dialog is invoked when clicking on the route icon and then choose the "Set destination..." item. It lists the locations you've been searching before and filters them as you type, in a similar fashion as the browser URL suggestion works.
I plan to improve it by adding suggestions retrieved via the network from Google Maps, but this will require some deeper changes in the code that might take some time.

That's it for now. I hope you'll enjoy this release. :-)

(currently it's in the extras-testing repository: to try it right now, download this and this)
Categories: english
Alberto Mardegan

Lately many people have been writing to me by e-mail, IM or to my account, mostly asking for help on how to use Mappero or request new features. While I'm glad to see that there's some interest about the project, I feel a need to tell everybody that writing personal messages to the developer is not the best way to get help. I'm sorry to say that I couldn't answer most of these requests: it would have simply killed off my time, which instead was spent working on Mappero (see below in the post for some news on what i did).
On the other hand, I understand that the Maemo community is growing a lot, and many new members might not know how to find their way through all the amount of information in and related projects. Unfortunately I'm not going to deliver any solutions to this, but I can at least write here a few pieces of advice that I think are generally productive.

Click to read 1804 more words
Categories: english
Alberto Mardegan

If your favourite language is interlingua, that is. Or if you are willing to record your voice and submit it for inclusion, chances are that the next version of mappero will support your language, with your voice too! :-)

Just follow the detailed instructions in this thread, and have the community enjoy your voice. :-) All languages supported by the N900 are supported by Mappero voice navigation too.

Mappero 3.0+beta7 is now in extras-testing, and with the advent of the PR1.2 release it shouldn't make the device unstable anymore. Please install it, test it, and report your feedback and hopefully it will get promoted to Maemo extras soon.

Categories: english
Alberto Mardegan

The title says it all: for the next version I plan to change the name from Mapper to the definitely much better sounding Mapper-o. I might still be convinced to change the plan and use a different name, if someone happens to suggest something I cannot resist to.

Anyway, the main reason behind the change is that a project named Mapper already exists in maemo for the N900, although so far it's only available in extras-devel; and going back to “Maemo Mapper” doesn't look like a great option, considering that Meego is the future (and maybe some other platforms, who knows?). So, I needed a different name which would:

  • be recognizable by users already familiar with it
  • possibly start with the same letters, so that users would still find it in the application manager when looking for Mapper
  • hopefully be found in search engines when someone searches for “mapper”
  • sound really, really cool
  • make people wonder why the helsinki I chose it

And “Mapper-o” is also easy to pronounce: in fact, there are no rules on how to pronounce it! I myself read it as one would read the word “màppero” in any phonetic language (which English is not), to prove that even the silliest reading sounds just too cool. ;-)

As a slightly different topic, Mapper-o is looking for help from icon/graphics/UI designers: thread post in t.m.o.. If you happen to be interested, don't hesitate to step in! The glory is waiting for you!

Categories: english