Another day, another video; this time its Nokia's Head of Marketing Peter Schneider. In this talk, Peter details what we can expect from Fremantle, the next iteration of the Maemo platform.
"What can we get out of Fremantle" - Peter Schneider - Nokia from Jamie Bennett on Vimeo
Content will slow down, however. I accepted a job in the SF Bay area yesterday and am already working starting today. It's 6:20 AM and I am posting this on my way to shut down the Mac and head to the airport. When things are settled, my new employer will be about 6 miles away from Nokia's Mountain View office where we already have friends in the maemo/tablet team. I'll see if I can talk some into having webcast coffee with us.
A funny thing to mention is: Nobody had any objections to this.
Most responses were apologies for not doing it sooner. When I started this, I expected to have some resistance, but so far there was none.
This is a good thing! It seems the community wants things to change too.
How can you help?
If you know somebody developing applications in their own repository, try to convince them to move their packages into Extras(-devel). Please edit the wiki page to reflect the status of each repository.With the help of a few people, I think we can get number of repositories in the list down quickly!
Visible results
When looking at the Gronmayer listing, you can see that more and more repositories are being removed and end up as: 'Repository is offline'.A community distribution lets us do a lot of cool things that working within the limits of Nokia's setup does not. It'll allow us to ship an OS that isn't so locked down by Nokia's corporate policy, remove dependencies on proprietary advertising (Skype, Gizmo, etc.), remove superfluous and problem-causing bundled media and documentation, modify existing packages with community patches, and ship community add-ons and community-patched Nokia applications. It gives us a distribution that is more stable, more useful, more versatile and more interesting.
I've started drafting a proposal of jott's idea in the wiki. I've outlined some of the issue we'll need to tackle, and started fleshing out the specific ideas on what packages we'll add, remove, and modify (anybody up for a graphical bootmenu with a GUI control panel applet to configure it with, perhaps? ;)). Discussion is being held on maemo-developers, and feel free to add your ideas to the wiki.
There are really a lot of cool things we can do with a community distribution not encumbered by Nokia's corporate policies. So let's take the strong software foundation Maemo Software has given us and really run with it.
In other news, I've been working on killing the old wiki for good, as it's been cluttering up google results, cluttering up maemo.org and generally making a nuisance of itself as an un-editable-wiki-paradox that's providing practically zero useful information.
I ran through the list of old pages to see what more could be salvaged and what pages should be replaced with redirects (Don't break the web!) to the new wiki. I think I did a fair enough sweep, but my definition of useful isn't the same as someone else's, so if some more people could eyeball my list and add anything they think should be moved and/or redirected, it'd be much appreciated.
Yup, thanks to Matan Ziv-Av who did a few improvements and fixes and uploaded him-arabic to maemo extras.
The good part is the addition of the Hebrew keymap (And a few other things).
Look what turned up in the post today.
I have big plans for this little beauty. First I need to play around with it but on my list of things to do in the not too distant future is port Entertainer to the beagle board with the intentions of running it on the new Maemo 5 platform.
For those people who don't follow the linux-omap mailing list, a nice set of patches that begin to enable the HSPA modem of the new Nokia tablets, has just landed. These patches have yet to be reviewed but from a quick scan, they look in pretty good shape. They have been posted to the main kernel mailing list as well but as of this time, no comments have been made.
I wish the developers at Nokia would be more vocal about the development process, especially as there is a lot of anticipation for the Maemo 5 platform. I guess until we have them all blogging somewhere we will just have to piece together the parts of the puzzle ourselves.
Nokia's Carlos Chinea has announced:
Thanks to Movial Kilikali got a modern UI and looks quite nice now:
Kilikali development has moved to a GIT tree (branch generic-2) hosted by linux.onarm.com.
Although the UI got improved and the playback on n8×0 got fixes there are still some bigger task to be done. E.g. adding single files, adding directories recursively and skipping unknown media types. Integration with Light Media Scanner has also been discussed.
I believe it’s important for mobile platforms to specialize on what is important for mobile and embedded. This includes dealing with high latency networks, low amounts of disk space, high I/O costs, slow memory bandwidth. The development tools are often either far more or far less integrated.
There is a lot of overlap with desktop software development. If companies who make mobile technology want to build a developer ecosystem, like the web and the desktop already have, then my advice would be to start integrating with these overlapping areas. This is indeed more expensive and more difficult than doing your own thing. In the long run, this is how you make an ecosystem for mobile software development.
After youtube’s madness, I wouldn’t ever underestimate the creativity of the kids anymore. After wikipedia, the Linux kernel, KDE, GNOME, Webkit and Firefox as browser components, I wouldn’t ever underestimate the energy of volunteer experts anymore.
The music industry usually only allows big corporations to hook-in their music selling. Why aren’t they investing in conferences where they invite both the industry players and the developers who are making tomorrow’s music players? What if they’d involve them in specifying a standardized protocol for buying music? Right now the music industry is making it harder for its customers to buy music than it is to copy and steal music. Right now people who want to buy music are required to own a desktop. How silly is that? With a standardized protocol you’d see mobile software developers writing mobile music players that’ll also be clients communicating over 3G, UMTS or GPRS.
At the Boston GNOME summit I’m meeting Gabriel and Aaron who both developed Banshee. We will discuss a standardized cache for album art and a DBus interface to implement an album art downloader. As a Nokia contractor I will implement this specification on the Maemo platform. This way, all music players that will be made for both desktops and mobile platforms can share the same album art, use the same DBus interface to request album art, and share album art downloaders.
We’re proud to release a new version of LightMediaScanner, the fastest media scanner for your embedded device
This version now adds the direct relationship of audios and artists table, this will allow album-less audios to have an artist as well as have collections audios to display their artists. Yes, Canola will behave better now.
Also new are the often requested single-process scan and progress reporting.
Progress is reported using callbacks. Since it is impossible to know beforehand how many files will be in the directories before walking them, there is no “total” item reporting or percentage, this is up to you if you think it is worth to pay such penalty. Check also does not report so it’s uniform, but number of items to check is easier to discover, just check the database. These callbacks will also report the state of such file, so you can notify user if some files were skipped because they took too much to finish (more than slave_timeout
).
Single process scan is now available, but it’s mostly there to aid debugging. While it will speed up scan on single-CPU machines (ie: Nokia N810), it is less safe and if it breaks/hangs (ie: due MMC being removed during parse, or bad FAT filesystem) it will bring down your whole software, so be aware of that before using.
Last but not least, our GIT moved from http://staff.get-e.org/ to http://gitweb.profusion.mobi/ (Gitweb) with repositories being cloned from git clone git://git.profusion.mobi/$PROJECT
Please report any bugs to our project at garage.maemo.org!
So that is my way of doing that:
1. On the desktop, setup an adhoc connection manually using the pc's wlan interface (eth1).
2. And enable ip_forward in order make it to bridge to the wired network interface (eth0).
For (1) and (2) I use to use the following bash script (to be ran as root):
modprobe iptable_nat
iwconfig eth1 essid tonikitoo mode ad-hoc key off
ifconfig eth1 10.0.0.1 netmask 255.255.255.0
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
3. Set an ad hoc connection in the tablet as following (sshots taken by using system's Connection Manager):
Note is to be replaced by whatever name here.
Note: the SSID (also 'tonikitoo' here) has to match to the essid value set in line #2 of the pc script above.
Also note the value 'ad hoc' in 'network mode'.
Note2: Set proper 'Security method' here.
If your wired connection is under a proxy, set the same proxy address for your adhoc (in Advanced Settings palette).
Note: if the wired network requires no proxy, just ignore this step.
Set your ip, router and dns.
note: 'IP address' has to be in the same network of 'Router'.
note2: The IP set in 'Router' has to match the IP set in line #3 of the pc script above.
note3: 'Primary DNS address' has to match your pc's one (run 'cat /etc/resolv.conf' on the pc to check that).
Maybe this can help someone else, maybe not ... Maybe someone wants the tablet to be adhoc'ed to his laptop and also sharing its connection (wired, ppp, usb), maybe not ...
--Antonio Gomes
A Quick Look at maemo Bugzilla
2008-09-29 through 2008-10-05
Last week I gave a course on Python for S60 as part of the Mobility Week event in São Carlos, held on the USP (University of São Paulo) campus there. It was a 12 hour course, divided in three 4 hour sessions. Gustavo had already blogged about the event before here, so I’ll just add a few comments about how my course went.
The first day was just an introduction to development on cellphones, and since some of the people who were attending had never worked with Python before, I also gave a really fast Python introduction. We finished this first day with a few examples of software that were developed using pys60. When preparing the course, I wanted to find some really nice examples to show that Python enables people to quickly develop applications that were probably going to take at least a few weeks with C++ or JavaME. One really nice example I found was Cellphabet, a software that uses the Cell Tower information your cell phone provides to transform a path you walked into an english word (his post explains the design alot better than I possibly could in one sentence). Since the source code wasn’t available (it was hosted on a wiki that had to be taken offline due to spam), I contacted the author and he was quite happy that I was planning on using it as an example. We started talking and he asked me what I was going to tell them Cellphabet could be used for. When I replied that it could probably be used for security (which is one of the reasons he listed on his original post), he gave me an answer that completely took me by surprise :
Yes, that was one of my prime concerns, the other was romantic. If a
lover wrote his partner a message by walking for a few hours non-stop,
it would be saying a lot. So the message becomes ‘the medium’. It is
no longer a short message, it becomes a long message.
After ending the first day with this most romantic example, we spent the following session going over the Symbian API and doing small examples. Unfortunately we did not have test cellphones available, so people had to work with emulators.
The final day was open for each student to develop their own project. One of them has already been published, an wordpress tool for S60 devices (blog post in pt_BR here). Hopefully more will follow.
ProFUSION is proud to announce the first public release of our Guarana framework and its demo Enjoy.
Guarana is a set of free software libraries to aid embedded application development. It comes with with a remote control access library, module loader, model-view-controller machinery, basic data structures and a fast growing widget set.
Enjoy is a demo music player targeted at embedded touchscreen devices. It uses Guarana’s MVC and widgets and Emotion to play media.
Here’s a video running on the target demo platform, a Freescale imx31 3-stack board. (it will run on N8×0, but will not play music because Emotion’s gstreamer backend uses decodebin, we need to patch it to use DSP decoders/sinks)
More information about Guarana features and an Enjoy screenshot see the original press release.
For those that don’t know, Guarana is a Brazilian plant and also the name of an excellent soft drink. It’s also the base of some energetic drinks. That’s why the demo is called Enjoy… okay, okay, it’s also because it starts with “e” as well
* compiled for arm/maemo
* hildonized (fullscreen, menu, toolbar) main, account and new transaction window
* converted svg icons to png (maemo doesn't seem to like svg icons)
* created deb infrastructure
it seems to work fine! now i have to port my data from gnucash to homebank.. will do!
what remains to be done:
* create a garage project
* add application to extras
* contact homebank author so we can merge my work
All positions are based in Tampere, Finland. Some interesting facts and figures related to Tampere and surrounding region can be found here.
If you want to help, here is a short list of TODOs that you might want to have a look at and decide if you could help on any of these:
- Bindings: Although the more bindings we have the more worlds we can conquer but what we definitely need is bindings for most popular languages in GNOME/Maemo world, namely C#/mono, Java and Python. If you are interested in helping with this, I strongly suggest you take the g-i-r route. Also if you are only interested in C# bindings, I suggest you talk to Jerome Halton who already have a half-baked solution.
- Integration: GUPnP can't possibly become the standard UPnP framework of the GNOME world until we have:
- plugins for Totem, Rhythmbox and Banshee enabling these apps to browse and search contents on UPnP MediaServer (MS), export playback control on the UPnP network by implementing a MediaRenderer (MR) and to redirect playback of contents to other MRs.
You might notice that I didn't mention sharing of contents on the network, the reason for which is that I believe (and Jorn agrees) that that should be the responsibility of a dedicated MS (gupnp-media-server) as part of the desktop session. Having a dedicated MR OTOH hardly makes any sense. - GVFS backend for UPnP, allowing the GIO world to browse, copy and move contents to/from UPnP MS as if it was just a local filesystem.
- PulseAudio integration: Wouldn't it be nice if I could redirect all audio output of my laptop/internet tablet to my cool UPnP-enabled speakers or my desktop machine running Totem, Rhythmbox, Banshee or better yet PulseAudio itself (which would mean p-a implements both an MR and an MR control point (CP)? This is actually part of Lennart's great plan to conquer the world so I thought I mention it here in case someone does it before Lennart gets the time to do it himself.
- plugins for Totem, Rhythmbox and Banshee enabling these apps to browse and search contents on UPnP MediaServer (MS), export playback control on the UPnP network by implementing a MediaRenderer (MR) and to redirect playback of contents to other MRs.
UPDATE: Forgot to mention a very imporant task: Porting to platforms other than Linux. We mostly use glib, libxml2 and libsoup so this shouldn't be a huge task. The only platform-specific code in the whole stack that I know of is the networking bits.
SharePy just have come to its second important release, so it’s a good moment to present it in society, since I couldn’t be in the Maemo summit presenting it.
I have created an application to upload files to the Nokia service Share On Ovi from the Internet Tablet. In the actual version it’s a simple application, you can add files (images, videos and audios), tag it and upload to some of your channels in Share On Ovi.
The important change in the 0.2 version is you can add multiple files at once, and tag it as a batch.
http://www.youtube.com/watch?v=0pEoaCVgygg
BlueMaemo is my new Open Source project :), basically BlueMaemo is a port of my Google Summer of Code project, ReMoko, to the Maemo powered devices.
With BlueMaemo you can turn any Maemo-powered devices in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile. Right now the program still in a alpha version, I’ve planned the first release for the next week. The program functionalities are very similar to the ReMoko functionalities, exception to the accelerometer profile that doesn’t exist in BlueMaemo, because any of the Maemo devices have accelerometer capabilities. The program UI still very beta right now, I’ve to make some changes in order to support different UI themes. In order to support the maemo devices without a hardware keyboard, I had to add a virtual keyboard to the keyboard profile, I reuse a keyboard shipped in the python-efl demos, this virtual keyboard are made in INdT Brazil, so the credits of the virtual keyboard graphics belongs to them.
A Quick Look at maemo Bugzilla
2008-10-06 through 2008-10-12
My beloved N810 died last Tuesday. Well, not died died, but the screen stopped working. The topmost plastic layer is fine, but the LCD is probably cracked underneath. This probably happened while I was in an Apple store watching a friend of mine buy an iPhone. Coincidence?
I ordered a new one from Amazon that evening, and it arrived on Thursday. It had the oldest possible OS2008 version (and an incorrectly-formatted internal flash card), so I had to reflash it, and then install the OS feature updates one at a time, with forced a reboot in between. Untimely breakage of extras-devel didn't help either, and neither did the broken maemo-mapper package in extras. (Both are fixed now.)
Almost all of my data was on the miniSD card (including a week-old backup). To get the rest I had to blindly get the old N810 online and open a browser page (measuring distances from the corner of the screen) to get past the hotel wireless nag screen, and then guess its IP address, so that I could ssh in.
It thought maybe I could use arping on its MAC address to get the IP, but had no luck there. It didn't respond to broadcast pings either. Finally I had to ping every IP in my subnet individually and then grep for the MAC address in my kernel's ARP cache. Oh, how I wish Maemo came with avahi-daemon preinstalled! ssh mg-n810.local would have been so much simpler!
I'll try to get the old one repaired.
Update: thp describes how to get avahi-daemon on the tablet.
Update 2: the old N810 is repaired (screen replacement cost me 510 LTL, which is ~200 USD, at the local Nokia service center). It now serves as an Internet Radio station at home.
My beloved N810 died last Tuesday. Well, not died died, but the screen stopped working. The topmost plastic layer is fine, but the LCD is probably cracked underneath. This probably happened while I was in an Apple store watching a friend of mine buy an iPhone. Coincidence?
I ordered a new one from Amazon that evening, and it arrived on Thursday. It had the oldest possible OS2008 version (and an incorrectly-formatted internal flash card), so I had to reflash it, and then install the OS feature updates one at a time, with forced a reboot in between. Untimely breakage of extras-devel didn't help either, and neither did the broken maemo-mapper package in extras. (Both are fixed now.)
Almost all of my data was on the miniSD card (including a week-old backup). To get the rest I had to blindly get the old N810 online and open a browser page (measuring distances from the corner of the screen) to get past the hotel wireless nag screen, and then guess its IP address, so that I could ssh in.
It thought maybe I could use arping on its MAC address to get the IP, but had no luck there. It didn't respond to broadcast pings either. Finally I had to ping every IP in my subnet individually and then grep for the MAC address in my kernel's ARP cache. Oh, how I wish Maemo came with avahi-daemon preinstalled! ssh mg-n810.local would have been so much simpler!
I'll try to get the old one repaired.
Update: thp describes how to get avahi-daemon on the tablet.
Update 2: the old N810 is repaired (screen replacement cost me 510 LTL, which is ~200 USD, at the local Nokia service center). It now serves as an Internet Radio station at home.
Here is the Akademy video. Nokia gave devices for KDE developers and I have quite many faces who received one on the video. Have a look if you are interested:
Akademy 2008 KDE conference - Nokia gave out N810 devices for free from Karoliina Salminen on Vimeo.
Kate Alhola had linked to my Maemo summit video on her earlier post. Because of technical issue on her blog software, she embedded the Youtube link. The Youtube offers poor quality, especially the audio quality is severely degraded since Youtube only supports mono sound. Here is the same video in 720p HD quality and stereo in the Vimeo-service (by the way it is the best video service I have found to the date):
Maemo Summit 2008 from Karoliina Salminen on Vimeo.
If you go to the vimeo page, you can watch these videos in 720p HD when you click the full screen button.
Unlike most would say, x11 does quite well. See our benchmarks comparing X11, FB, DirectFB on a Fresscale imx31. There you can see how x11-16 bitch-slaps everything… that’s even better on n8×0 and that’s why Canola runs fast
One of the little things I love about Python is that you can chain comparison operators like this:
10 <= x <= 20
or
x == y == z
Strangely, I hadn't realized until yesterday that this also works with the
is
operator:
x is y is z
Blobby Volley 2 is a nice volley ball game in the spirit of clbuttic arcade volleyball. However, the default AIs are beatable by jumping in certain point, definitely too easy. Found some AIs over at esnips, and for convenience packaged them for maemo. .install file available as usual. Just install the package, start the game, go to options and select some AI.
Warning: these AIs aren't easy to beat.
Lately there has been a lot of talk about commercial contributions to the Linux kernel, specifically from distribution vendors.
At the Linux Plumbers Conference in Portland, Oregon, Greg Kroah-Hartman of Linux kernel fame recently took a swipe, specifically at Canonical (blog post - google video). Now this may (or may not) come as a shock to you but the most popular Linux distribution (number 1 at distrowatch for many a moon) doesn't seem to 'give back'. In retaliation people have come out to defend Ubuntu but this got me thinking, where does Maemo and Nokia stand with regards to Linux kernel contributions?
- fixed stats report window
- fixed manage transactions window
- added dependency to libofx to enable OFX support
- fixed packages
get it from extras-devel while it's hot! And feel free to donate something if you want!
Now you can play with this flashy little app yourself; it is no longer a shaky playtest demo, it is a usable beta-quality app. Gary (lcuk) has been working hard to get things user-ready, and he's finally ready to share it with all of us.
Go over to liqbase.net to get a copy of this shiny little toy, and if you have problems, you can post on the ITt thread, the #maemo channel on IRC, or at the Garage project page. You'll get a fast response; lcuk doesn't seem to sleep much, and he seems to respond so quickly sometimes you wonder if he wasn't watching you type.
Lately I’ve been working on Ltib (Linux Target Image Builder) in order to have Enjoy running on a demo iMX31 board here in ProFUSION. We’ve already published a few videos on youtube demoing our work here and here (more to follow soon), but so far the packages were scattered through different e-mails on the Ltib mailing list. But as of yesterday, Stuart Hughes merged those packages upstream and now it’s publicly available for all users of Ltib. Also, I’ve been given access to Ltib’s CVS and will be uploading more packages there soon (Enjoy and Illume are next on the list, already packaged and just in need of a few clean-ups).
If you are using Ltib and wish to test E17 (or just X.Org), here are the steps necessary (if you find anything missing from this guide or have any other suggestions, please do leave a comment here since this guide will probably be posted later on Ltib’s homepage) :
1) Update to the latest CVS version if you haven’t already.
2) If you’re going to install the Enlightenment packages, you’re going to need a few packages to be available on your host. Luckily you can just use Ltib to install them :
$ ./ltib –hostcf -p eet.spec
$ ./ltib –hostcf -p embryo.spec
$ ./ltib –hostcf -p evas.spec
$ ./ltib –hostcf -p ecore.spec
$ ./ltib –hostcf -p edje.spec
3) Run ‘./ltib –configure’, and inside Package List, there should be two new submenus, one for Enlightenment and one for X11. Choose the packages you wish to install. One package worth mentioning is Expedite, which can be easily used to benchmark your device and see if the installation was OK.
4) If you are going to run X.Org, you might need to patch xorg-server depending on your device’s supported display resolution (on CVS there is already a patch to add support for vga-portrait mode which is the default resolution for our test board, and I’m sending another patch soon to add support for WVGA).
5) Example of how to start X :
$ Xfbdev -screen 480×640 -mouse tslib,,device=/dev/input/ts0
6) Example of how to start Enlightenment :
$ DISPLAY=:0 enlightenment_start
Try it out and tell us if it worked well for you. Cheers.
Rasterman’s Gang: Nokia N810, Sharp Zaurus, OpenMoko Freerunner and Palm Treo-650
After Rasterman announced he had “The Gang” running Illume we decided to help him and run it in yet-another platform, the Freescale iMX31:
Some days ago raster already posted video of his virtual keyboard doing correction/prediction and operating on various resolutions, for those that liked my iPhone-like virtual keyboard demo for n800, this one looks better and is for real, check out his videos: 01, 02, 03 and 04
Take a look:
Woot !!!
The first alpha of Fennec (Mozilla Mobile) is just out of the closet, aiming mainly to get feedback about the user experience ... If you have a n800 or n810, give it a try and file bugs on it.
Check a video of it in action here.
One-click install available here. Localizers, addon developer and whoever do not have a device in hand, desktop (x86) builds are available as well for Linux, Windows and Mac.
Performance is now under attack.
Stay tuned.
--Antonio gomes
tonikitoo at gmail
It’s been a quiet day in GNOMEland here in Lyon. Not too many people around the JDLLs this year - hopefully things will be more lively tomorrow, and some lessons will be learned for the organisation for next year.
I finally got some A1 & A2 posters printed up that look very nice, if I may say so myself - special credit to artists & contributors andreasn, mizmo & zagorskid for the material.
Along with some “Why choose GNOME?” hand-outs, a Nokia N810, Nokia N800, a couple of laptops, and fredix, Dodji fredp and myself, the stand is looking not too shabby - could be better, could be worse. Tomorrow Dodji will be gone, but vuntz will be here.
On another note: The Nokia N810 WiMAX Edition is up for sale too. I'm going to see if some friends at Nokia (thankfully right down the street) have one in the office they'd let me take glamour shots of. The design is nearly identical to the N810 but with a sexy dark color scheme and a small bulge out of the back antenna area for the WiMAX radio.
As for myself: The N810 is getting me navigated around Silicon Valley just fine, but the problems with the GPS signal are almost enough to convince me to buy a stand-alone GPS until I am acclimated to the roads in this area. I played with a stand-alone GPS last week and was impressed at how fast and accurate satellite locks SHOULD be. Sometimes, the N810 loses signal between the time I am approaching a turn and the time the turn had passed, forcing me to re-route.
Everybody is very happy with the support of the full web in mobile devices, but any regular user knows/suffers the fact of trying to enjoy rich web sites from a mobile device. Even with a powerful mobile device like the Nokia N810, making use of WiFi connectivity powered by a good ADSL/Cable network connection behind, certain web sites are a hell to enjoy.
The user, although having a full-web browser, ends up using a simpler mobile version for the browser not to drain battery power (for instance, due to the Javascript engine making intensive use of the CPU in Facebook or in Google Reader). The Google Reader site is a good example of how the mobile version is good enough for us to do what we want with almost no cost in computational terms.
I have always loved visiting Spanish sports online-newspapers like As or Marca from the N810, but always making an exercise of injecting patience to my state of mind before accessing: they are filled with Flash content (mainly with advertising purposes) that makes loading the main page as painful as a kick on your butt.
Some days ago, I specifically searched for some sort of Flash blocker, taking into account that such an add-on exists in Firefox and that maemo’s microb is based on the Firefox engine. I discovered the Browser Extras repository and then found a Flashblocker port for MicroB.
Using Flashblocker has changed a 100% CPU into an idle CPU when browsing those sites I mentioned, and I can spend the whole weekend fluently browsing for sports results and with no care about the gadget’s battery.
Thanks to Andre Pedralho for such a great job. I encourage you to read the Maemo Browser Extras web page and install the Browser Extras repository for maemo which will give you access to other stuff like the User Agent Switcher or AdBlock.
- fixed more too large dialogs
- moved from gtk file chooser to hildon file chooser
some brave itt users have already tested this version so i'm now telling it to the main public! i'll wait more positive reports and then i'll promote this version (or the next one with more fixes) to extras.
thank you very much to everyone who tested this anf older versions. my next blog posts will be about some tips while porting a gtk app to maemo.
As discussed before, I am working on a little hobby project called mu, for indexing/searching e-mail messages in maildirs. As a true hobby project, it's about finding things out. I'll take notes as I go along.
indexing
One important part of indexing and searching is.... indexing. Indexing (in this context) is the operation of recursively going through a maildir, analyzing each message file, and storing the results in a database. In mu's case, there are actually two databases, one SQLite-database and one Xapian-database (a really interesting tool - to be discussed later).Indexing may take a considerable amount of time; mu version 0.1 took 192 seconds (on average) to index 10000 messages in my testing corpus. And this version did not even support the Xapian database. Indexing involves reading from disk, querying the database to see if the message is already there, and if not, storing the message metadata. Because of this scheme, re-indexing of the same 10000 messages only takes about 5 seconds (with re-indexing, only modified/new messages need to be indexed).
Finally, someone took up this task and has succeeded. BlueMaemo turns your tablet into an input device for your PC. (And, yes, right+left mouse clicks, scroll wheel functionality, and customizable keymaps are all there, not to mention media and presentation controls.)
I've tried this baby out with Ubuntu Hardy, and works perfectly. It is also confirmed working with Windows XP and Vista. Mac, on the other hand... Well, it might be another story. If you're interested, please see the original discussion.
And, my advice... Get it now!
Finally, someone took up this task and has succeeded. BlueMaemo turns your tablet into an input device for your PC. (And, yes, right+left mouse clicks, scroll wheel functionality, and customizable keymaps are all there, not to mention media and presentation controls.)
I've tried this baby out with Ubuntu Hardy, and works perfectly. It is also confirmed working with Windows XP and Vista. Mac, on the other hand... Well, it might be another story. If you're interested, please see the original discussion.
And, my advice... Get it now!
The first release of BlueMaemo is now available on garage.maemo. I’m very happy with all the community feedback and support, thanks to all the guys that sent me emails and made blog posts about BlueMaemo.
Download instructions and other information can be found here.
A Quick Look at maemo Bugzilla
2008-10-13 through 2008-10-19
In this presentation from the Maemo Summit 2008, Marcelo Eduardo gives his views on producing custom user experiences and interfaces.
Marcelo is the user experience designer at Nokia's Institute of Technology (INdT) and has been involved in projects such as Carman and the hugely popular Canola.
Marcelo gave a great and entertaining talk, well worth a watch so go do it now !.
Rejecting packages when the same version is uploaded for the second time.
The autobuilder has been modified to reject a package when the same version is already available in the extras-devel repository. This change will force developers to increase their package version number after each successful upload and build. In the past we've had problems in the repository where a package was uploaded twice and caused 'Size Mismatch' errors.Package signing no longer required.
The autobuilder and Extras Assistant no longer require packages to be GPG signed. It seemed to cause a lot of grief for developers without any real benefits. This change is targetted to making uploading packages easier. Every uploader has to be authenticated to upload a package, so we can already trace back the uploader. The autobuilder signs packages which are moved into the repository.Upload to multiple repositories at the same time.
You can now use the Extras Assistant to upload a source package to chinook and diablo at the same time. No need to do two separate uploads anymore. This feature has been requested for quite some time, let's hope it helps.
static GtkWidget *
menubar_to_menu (GtkUIManager *ui_manager) {
GtkWidget *main_menu;
GtkWidget *menubar;
GList *iter;
/* Create new main menu */
main_menu = gtk_menu_new();
/* Get the menubar from the UI manager */
menubar = gtk_ui_manager_get_widget (ui_manager, "/MenuBar");
iter = gtk_container_get_children (GTK_CONTAINER (menubar));
while (iter) {
GtkWidget *menu;
menu = GTK_WIDGET (iter->data);
gtk_widget_reparent(menu, main_menu);
iter = g_list_next (iter);
}
return main_menu;
}
And you can use it this way:
ui = gtk_ui_manager_new ();
....
hildon_window_set_menu(HILDON_WINDOW(window), GTK_MENU(menubar_to_menu (ui)));
widget = gtk_file_chooser_widget_new(GTK_FILE_CHOOSER_ACTION_OPEN);
with hildon file manager? I want to embed a file chooser in another dialog.. is it possible?
thank you!
I haven't been very productive lately. My two projects are blocked by missing people (karsten and jott, where are you hiding?). Need to harass the rest of the Council about blogging and finishing up everything on our wiki page, but I'm sure they're busy (as am I).
We did restart discussion on the categories issue, which is ongoing, if you want to weigh in (deadline for a a final list is sometime before things really start ramping up for Fremantle). There are some interesting ideas being tossed around. One of which, sub-sections, qwerty12 successfully tested with Extras and Application manager yesterday morning—a good candidate for a hildon-application-manager patch if I do say so myself. ;)
On the subject of sections, over the past two weeks I've also been harassing package maintainers about clearly invalid sections, and suggesting general packaging improvements (like using some of the Maemo-specific package fields). The response has been fairly positive so far, though there have been more than a few non-responders (Boingo just subscribed me to their newsletter when I emailed their support address). I started a very rough first draft for a Maemo-packaging overview article if anybody's interested in adding to it.
Going to bug the maemo.org guys more about the server updates today, doesn't seem like there's been much progress since the new boxes were delivered and I'm not really sure what's going on.
Just like with thumbnails are there a lot of applications that want to share media art. Media art is the politically neutral name that we picked for what I used to call album art. Instead of just for albums we concluded that art for other things like podcasts and radio channels exists too. We made sure that the specification acknowledges that.
We still have a few open and unspecified ideas like:
- Filtering patterns for fields like album, artist and title
- Support for front, back and pages in a booklet
- A way to mark artwork as temporary
- Cached thumbnails of artwork
- Storing artwork on removable media for reuse by another device
- Temporary write location to rename to final to gain atomicity (.part files)
I guess this means Aaron, Gabriel and me should do some more meetings. I think it’s time however to involve people who are working on other media players. Especially since the Banshee- and the Maemo team are fully agreeing on the necessity of such a storage specification. Which means that one will be made and most likely shared by Banshee, the advisory documentation for third party players on Maemo and by standard players that will be shipped.
You can find a draft of a draft on Live.
Fennec Alpha Walkthrough from Madhava Enros on Vimeo.
http://vimeo.com/1981300?pg=embed&sec=1981300
I already have it on my n810, very interesting piece of software, a little bit buggy right now, but deserve a try
The idea is as follows: some file systems, in particular ext3, support hashed b-trees to speed-up lookups in large directories (paper). That's nice for finding particular files. However, as a side-effect, when you scan full directories (as mu does when indexing), you might get the entries back in a rather chaotic order. If you then try to open the files in that order, you suffer from long seek times, and consequently, bad performance.
The solution is to sort the dir entries by their inode (in ascending order), and then open the corresponding files in that order. This is what mu (mu-index) does by default, starting with version 0.3. You can turn it off with --tune-sort-inodes=0, but there is usually little need for that, as the overhead of sorting is negligible.
So, what difference does it make? Answer: it depends on how the files are laid out; if you already get your files back in their 'natural order', there won't be much difference - this is what happens on my main machine. But, on another (old) machine where the files are not in that order, the improvements are substantial: I found that indexing 1500 message in 25 seconds without inode-sorting, goes down to 15 seconds with inode-sorting; a nice 40% improvement.
Note(1): this works for ext3 directories with dir_index enabled; there's a HOWTO. There are other file systems that have similar features, but I haven't tested those. Note(2): This optimization is not very useful for flash-based file systems, as they don't really care in what order you open files.
Andrew Bennetts writes why narrative tests are lousy unit tests. I completely agree.
Narratives are great as documentation, and the embedded doctest sections help (1) keep the documentation up-to-date and (2) provide concrete examples that make the documentation easier to understand. Here's a good example of that: Storm ORM tutorial. But for unit tests you want many small, isolated tests rather than one big narrative, for reasons that Andrew so clearly elucidated in his post.
My preferred way of writing unit tests is a mixture of unittest and doctest:
import unittest import doctest from cStringIO import StringIO from mysuperduperpackage import Gronkulator def doctest_Gronkulator_parseXML(): """Tests that Gronculator.parseXML does the right thing >>> g = Gronkulator() You pass a file-like object to Gronkulator's parseXML(): >>> g.parseXML(StringIO(''' ... <gronk id="g42"> ... <item id="a">One</a> ... <item id="b">Two</a> ... <item id="c" important="yes">Three</a> ... </gronk> ... ''') and the items are loaded into ``g.items``: >>> for item in g.items: ... print item.id + ':', item.title, '!' if item.important else '' a: One b: Two c: Three ! """ def doctest_Gronkulator_parseXML_error_handling() """...""" def test_suite(): return doctest.DocTestSuite(optionflags=doctest.NORMALIZE_WHITESPACE) if __name__ == '__main__': unittest.main(defaultTest='test_suite')
I've written more about this on Zope mailing lists on several occasions.
When
Saturday 25th - Sunday 26th October 2008 17:00 - 17:00Where
'casa do fedoraeiro'Why
Some of the FUCAPI Linux Lab students joined our local Debian Users Group and one of them, Henry Bilby, posted this a while back
Estou achando um pouco parado o grupo, em questão de contribuição para a comunidade. Minha sugestão é que, seja marcado pelo menos um encontro por mês, em um final de semana (local a ser definido), para desenvolvermos algum projeto parado, retirar bugs do gnome, desenvolvermos nossas próprias idéias
What
Using Python GASP, PyGame and a git repo develop a game. Put a simple QT User Interface onto it and package it for Debian
How
Get a good start by checking out the existing GASP games which give an idea of what is possible
bzr branch lp:gasp-gamesPython QT documentation is here and a quick Hello World PyQT app is below
import sys
from qt import *
class HelloButton(QPushButton):
def __init__(self, *args):
apply(QPushButton.__init__, (self,) + args)
self.setText("Hello World")
class HelloWindow(QMainWindow):
def __init__(self, *args):
apply(QMainWindow.__init__, (self,) + args)
self.button=HelloButton(self)
self.setCentralWidget(self.button)
def main(args):
app=QApplication(args)
win=HelloWindow()
win.show()
app.connect(app, SIGNAL("lastWindowClosed()"),
app, SLOT("quit()"))
app.exec_loop()
if __name__=="__main__":
main(sys.argv)
Extra Info
If any graphic artists are reading this and are available to help design a UI for the game you are encouraged to come along
Final Note
This is a technical event. This means it is a chance for developers who normally collaborate online to meet up in person to gain creative synergy through peer interaction and source code. It is *not* an install fest or a chance to clear any doubts about whether you want to install Linux on your computer or not. If the internet connection stays up and there are no power failures we should have have a productive event. ThanksI have released Glom 1.8, with many new features and bug fixes. We have not yet fully completed some of the new features, and the refactoring may have introduced regressions that we must fix in 1.8.x releases, but we need to get it all out into the world and move on to Glom 1.10, including porting to libgda-4.0.
Thousands of tons of e-waste – such as discarded PCs, mobile phones and TVs - are dumped in Africa and Asia every year. Some of this waste is exported to Pakistan..
In the Karachi district of Lyari, hundreds of workers, including teenage children, earn their livelihoods by dismantling the electronic scrap and extracting valuable components such as copper to sell.
The photo story below by Robert Knoth reveals what happens to that e-waste and the people who try to scrape a living from it. This is an insight into the personal cost of e-waste.
It is good to know that Nokia is innovating in this area. It does quite well on e-waste issues with a comprehensive take-back programme that spans 85 countries providing almost 5000 collection points for end-of-life mobile phones (it has one of the best take-back programmes in India for example) However, its overall recycling rate of 3-5% is relatively poor and needs to be focused on.
Other pluses for Nokia are that it does very well on toxic chemical issues, launching new models free of PVC since the end of 2005 and aiming to have all new models free of brominated flame retardants and antimony trioxide by the end of 2009. Nokia’s overall energy score is boosted by sourcing 25% of its total energy needs from renewable sources in 2007 and a target to increase use of renewables to 50% by 2010. Nokia also scores top marks (doubled) for all its mobile phone chargers meeting Energy Star and exceeding the Energy Star requirements by 30-90%.
Yesterday I held a G1 phone in my hands. An interesting little device. I'd buy one in a heartbeat, if I could. T-Mobile sells them only with a data plan, and T-Mobile doesn't operate in Lithuania.
Opennes is the primary reason I'm interested in Android phones. I don't see how that can be compatible with operator lock-in.
In the latest Internet Tablet School editorial, The future of Nokia, Maemo and the Internet Tablets, krisse explains why a Maemo-based netbook makes the most sense for Nokia now.
Respectfully, I've never heard a more crazy idea:
- Maemo is a touch-based OS, which doesn't work well with a larger style keyboard.
- People who don't want Windows would find Mac OS X or Ubuntu Netbook Remix a much more compelling user experience on such a device.
- What on earth is the benefit of Maemo here, vs. an alternative OS?!
- The comments when the 770 was released were "where's the phone?", and although Nokia make lots and lots of non-phone devices (such as one of our DVB-T receivers), the comments about Nokia trying to break in to a crowded market (of laptop makers) would be easily compiled into an hilarious book.
IMNSHO, it's just plain bonkers to go down that line instead of a small, tablet form factor - however unproven that may in the end-consumer mainstream.
In the latest Internet Tablet School editorial, The future of Nokia, Maemo and the Internet Tablets, krisse explains why a Maemo-based netbook makes the most sense for Nokia now.
Respectfully, I've never heard a more crazy idea:
- Maemo is a touch-based OS, which doesn't work well with a larger style keyboard.
- People who don't want Windows would find Mac OS X or Ubuntu Netbook Remix a much more compelling user experience on such a device.
- What on earth is the benefit of Maemo here, vs. an alternative OS?!
- The comments when the 770 was released were "where's the phone?", and although Nokia make lots and lots of non-phone devices (such as one of our DVB-T receivers), the comments about Nokia trying to break in to a crowded market (of laptop makers) would be easily compiled into an hilarious book.
IMNSHO, it's just plain bonkers to go down that line instead of a small, tablet form factor - however unproven that may in the end-consumer mainstream.
I wonder when Nokia is going to run up against the concept of "applications which are so compelling you want to run them all day long" and "A battery which cannot run all day long, and which cannot be changed out without rebooting"?
A truly useful device will have an external battery sufficient to run most peripherals and the CPU constantly all day long. Power saving is for weenies who aren't actually using the device. It will also have an internal battery sufficient for occasional use as long as you recharge daily, and enough to tide you over while you're switching external batteries.
I wonder when Nokia is going to run up against the concept of "applications which are so compelling you want to run them all day long" and "A battery which cannot run all day long, and which cannot be changed out without rebooting"?
A truly useful device will have an external battery sufficient to run most peripherals and the CPU constantly all day long. Power saving is for weenies who aren't actually using the device. It will also have an internal battery sufficient for occasional use as long as you recharge daily, and enough to tide you over while you're switching external batteries.
[Tags n800, n810, nokia ]Personal outcome of the trip was:
- Qt (Extended) 4.5 will rock! (Note: first technology preview was just released)
- Future Qt versions will rock even more ;-)
Special thanks goes to Aaron, for good discussions and for having similar UI thoughts as yours truly. Hopefully there is more time to spend next time!
This weekend I’ve taught the first sessions at Caixanova Free Software Master. It consisted of a brief introduction to basic command line tools and some concepts about shell scripting and regular expressions tools.
All the course slides are licensed under a Creative Commons license. Until we finish to set up the course collaborative platform, the slides and exercises will be available in my personal web page. I’ll update this link when a final destination for those materials is found.
In addition, Ive compiled some interesting links related to the subject, which can be found in this dedicated Delicious section.
Rights vs. executing the rights
Joel explained the idea of community openness by using three different characteristics:
1) the IP (right to use),
2) the development (right to influence the direction of the code) and
3) the governance (right to make decisions like who's in charge).
Then, Andreas talks about comparing and constracting community models by two axes:
- governance model
- license type used.
Both Andreas and Joel seem to have similar ideas, and I think they both have very good characterizations. But, in addition to these, I'd like to add an other dimension. The three elements above talk about the rights. In addition to the rights I'd like to think about the reality; i.e. is anybody really using these rights. And if not, why not.
Let me give you an example. Suppose I start on open source project and put my stuff into the sourceforge under GPL. I then invite others to discuss and influence the direction of the code I'm developing. And invite them to contribute. I also say that any time somebody suggest to change the leader, I'm ready to step down if somebody else gets a majority vote. So now, in Joel's three dimension model presented above, this would be very open, eh?
But what if nobody shows up? What if nobody is interested in my project and I'm left alone to develop it. Or if somebody just takes bits of my code and uses them elsewere inside another project. Is my project then open? I theory it is, but really? I'd claim that the project is open only if people use their rights, show up and contribute, and thus make it open. To me open source is more about "doing it" -- less about theory or human rights. So, to make the project open I also need to get others involved.
Another interesting aspect by Joel was his study on corporate sponsored open source projects. Check this one out!
Other comments
A good summary of different projects was provided by Smancke. He compares different projects in terms of their openness.
Jaffa gives us some ideas and opinions on how to continue with maemo. He talks about the community involvment, openness and control. He says "Nokia need to take action to really push community involvement. Nothing's got for free: if Nokia aren't seen to be committed to the community, why should the community be committed to Nokia?" Good points, Jaffa!
Usability
Then last but not least, David opened up a discussion on usability and open source. He refered at a good article by Matthew Paul Thomas. An interesting topic that needs attention. While talking to different people, I hear a lot of similar concerns and discussions.
Thanks!
A Quick Look at maemo Bugzilla
2008-10-20 through 2008-10-26
Harassment of package maintainers is still ongoing, but the responses so far have been quite good (no negative responses, yet, but more than a few non-responders which could be taken a few ways). A few packages have already been updated with section fixes, and I even managed to get a positive response from Boingo (thanks Marcell)!
The package categorization discussion has started to net some interesting results. Andrew Flegg proposed to use the freedesktop.org specifications as our base for developing our category list. Which makes sense, as aligning with an upstream increases consistency and helps reduce confusion. David Greaves makes a good point when he says that the freedesktop.org specification feels outdated and somewhat inappropriate for the type of device we use. Getting the specification updated might be the correct approach, but we'll see what happens.
A good set of categories isn't much use if the software doesn't make them useful (as is true of the current Application Manager). As such, Andrew Flegg began hacking on the Application Manager source today, and has already put together patches for bug #2710 and bug #3103. I've also filed bug #3822 for the corresponding changes to the application menu.
On another front, Carsten Munk's (of Deblet fame) reply to the discussion about Maemo's alignment with upstream bears some thinking on, and hopefully will hit home with Nokia.
Here's what I'd want.
- Desktop music manager application so I can finally be free from the Apple players.
- Google Local style search functionality with a click to get directions. I have been using Wayfinder constantly since I moved to Silicon Valley, but I'd prefer a faster, more up-to-date, and more friendly search mechanic. The Wayfinder POI database tells me how many miles to a destination, but does not tell me if it's in San Jose, Milpitas, Santa Clara, Sunnyvale, or any more information.
- A desktop screensaver style information display. The N810 spends a LOT of time on my desk. It'd be fun if I could keep the display on and have it scroll RSS feeds and twitter updates as they happen.
It’s been a month since my last post. As usual, lots of work but also lots of fun. A couple of weeks ago I went to the Igalia Summit, where we discussed about the future of the company, played geocaching, football, tute, …
Here are our guitar heroes Edu and Claudio:
Besides all of this, I’ve also found a bit of time to play with my tablet. I’ve just ported Fuse, the Free Unix Spectrum Emulator (unrelated to this FUSE, btw) to Maemo.
Fuse is one of the best Spectrum emulators I’ve ever used (definitely my favourite one for Unix), and also one of the few released as free software. It supports all standard models (16K/48K/128K/+2/+2A/+3) and some Russian clones too. It can load most file formats, has good sound support, joystick emulation, … well, better go to the project page to see all features ;-)
The port still has a few rough edges, but it’s perfectly functional for everyday use.
Here is a screenshot of Fuse running Head Over Heels on Maemo:
Fuse is available in Maemo extras. For more information go here.
On another note, Vagalume development is progressing slowly, but there are some news: we have Vagalume packages for Intel MIDs based on RedFlag Midinux. Go here to get them.
Last weekend we went to the Free Society Conference and Nordic Summit in Gothenburg to talk a bit about the new direction Midgard has been taking: making it a general replicated persistent storage library for multiple programming languages. The CMS itself is just an application using the library.
The basic idea is that the cloud is a trap that will move your data, and your applications beyond your control to proprietary data servers and web applications run by multinational corporations. If free software doesn't provide a compelling answer to that, we risk irrelevance.
A replicated, peer-to-peer system of synchronizing and sharing your data could be the answer. And Midgard2 is a framework providing just that. Bindings to different languages like PHP, Python and Mono, interprocess communications via D-Bus and XMPP, replication, and ability to run the same software from big server clusters to Nokia internet tablets should all help us get there.
In the conference we focused on outlining the big vision, and then ran a workshop where we showed some practical aspects of this. We set up Midgard2, and built a web application that allowed user to input a RSS feed address. This was stored to the database via midgard-php. Then a midgard-python process got notified about this via D-Bus, fetched the items and stored them to the database. The web front-end then displayed the articles. A clean example of interprocess communications.
Peer-to-peer replication we demonstrated in Ville Sundell's XMPP workshop where we built a Python replication daemon monitoring for database changes via D-Bus and transmitting them via Jabber to other Midgard boxes. Quite promising! But still many things need to be written before we are in the "your data everywhere" utopia...
Oh, and for those wondering: Midgard2 is very much GNOME software, running on top of GLib, libgda, D-Bus and so forth.
That's right - it's been little over a full year since the N810 was announced and previewed on this blog and others. It's been a heck of a year for the operating system, developers, and users. For the first time, serious competition in dedicated mobile Internet devices is arriving too.
What has been your favorite development? What do you want in the next year? How does the N810 compare to smartphones/mediaphones, Netbooks, and MIDs for competition?
One thing is clear: In a "down market," consumers are going to be holding on to their money. Even those without stock losses and with jobs will still be more afraid to spend. Even though netbooks are not direct competitors to Internet Tablets, consumers will likely not purchase both and pick one over the other. The current N810 (which looks like it will be the only Nokia offering in this space for this holiday season) needs another killer app, advertising boost, or just another extra special kick to bring it back to the spotlight if it wants to sell.
Discuss this - and happy birthday to the N810.
p.s.
Other mobile tech bloggers who read here may want to check www.kosarit.com for stolen content. I found an article of mine when Googling around. It was stolen without attribution. If you check that site - do it with your AdBlockers on so they don't profit more from your work. Update: DMCA notice to the rescue. The page is gone
Just a heads up, there are only 6 days remaining until the Midgard wiki dies for good, so if there are any other pages you'd like to have moved or redirected, please list them. Otherwise, they'll all be gone after November 4th, 2008.
A few days ago I tried to connect my n810 to my University wifi network (WPA-TKIP-EAP-PEAP-MASCHAPv2), but after following the Linux tutorial for the eduroam network, the device discovered the network, but can’t connect to it.
After a few tests I discovered a way to get my table connected to the eduroam networks.
Here is a little tutorial for the OS2008 with all system updates:
First you have to install a certificate for the network, go to Settings -> Control panel -> Certificate manager and click in import. My university provide two different certificates (.pem and .cer) only the .cer works in maemo.
After the certificate is correctly installed, go to Connectivity -> Connections and create a new network, following the steps below.
Today just a short tip: if you are using emacs and git, I can recommend magit.
Magit is a git-mode for emacs, which makes using git convenient and easy to use. Magit was created by running mate Marius. It's under heavy development, but I have been a happy user for while. There is even a user manual, which you actually don't need very much, as things work very much as you would expect.
If you are not using emacs, this might be a good reason to start.
Its been nearly 4 months since the last release of Entertainer but now version 0.2 RC (Release Candidate) has been made available. This release has many bug fixes, some minor enhancements (slide show feature, video playback eye candy among others) and some code clean-up but the real story is how Entertainer is progressing.