Thursday, July 17, 2008

Fring for Maemo

Hi all!

Great news - Fring is now available for maemo platform. Fring is an application that combines a number of protocols such as Skype, ICQ, GTalk into one handy program. You may find it following this link. Here is the screenshot I took from Fring's russian blog. It should work for both chinook and diablo. The announce says about N810, but I'll give it a try tomorrow on my N800.

Wednesday, June 25, 2008

Yandex plugin for Maemo mapper

After patching maemo-mapper application to support Yandex maps Max Lapan, their employee suggested his script that worked as CGI script and converted mmapper's links to yandex's ones. That was really awesome idea as there is no need to update application and contacting its developer all the time, we can just run script on 127.0.0.1 and pass parameters like city ID and x/y/z to it. Note, that Yandex is not that simple as other map vendors - there is no world map with all cities on it. Each city has its own ID and its own set of dimensions - Xs,Ys of upper left and bottom right corners of each rectangle. So I think we(interested people from Russia and Ukraine) will have to create list of supported cities with verified set of dimensions and IDs. So each city will have it's own repository in maemo mapper(see screenshot below).

I'm open to discussions about this implementation as GPS and other features are unlikely to work seamlessly and road traffic service is currenly unsupported. It's not possible to add it without patching maemo-mapper itself. But for me and probably for other people map is the most important feature.

How to setup a new repository:
URL for the map is "http://127.0.0.1:8000/?map=NUMBER&layer=1&x=%d&y=%d&z=%d"
where NUMBER is a special code for each city(Kiev=1600, Moscow=2000, St.Petersburg=500, and so on)
Download Zoom Steps: 1
View Zoom steps: 1
Downloadable zooms: min: 6, max: 14

So then we may download map for offline use as usual. I use 11,9,7 zoom levels + 6 for city center. It's about 50mb on a flash. It's better to move data file from "/home/user/MyDocs/.documents/Maps" to somewhere at /media/mmc* and create a symlink instead.

Python script can be downloaded following this link. To run simply put it somewhere in home dir and:

$ python yandexmap.py

Roadmap for the script:

  1. Configuration file with a set of cities, dimensions, etc...
  2. deb package in extras repository
  3. install file on http://maemo.org/downloads unless I receive too many complaints about how stupid my script is.
  4. Easy way of running script - probably it will be launched by maemo-mapper's .desktop shortcut and killed when mmapper exits.
Screenshots(clickable):






Thursday, June 19, 2008

Maemo mapper + Yandex maps

Guys, I need map!

After googling for Maemo mapper format I found only this very useful link at internettablettalk with the list of supported servers. But unfortunately it's not that simple for us, Ukrainians. Google Maps does not have streets map even of our capital, Kiev. Russian yandex's map service is still the best, but its format is not that simple as google's:

Yandex Maps:
http://maps.yandex.ua/map.xml?mapID=1600&mapX=%d&mapY=%d&scale=%d
http://maps.yandex.ua/map.xml?mapID=1600&mapX=3397917&mapY=6491641&scale=4&slices=1

mapsID - city's id(from the set of cities)
mapX/Y - special coordinates in wild format:
Map is a 2^31 2-D array, coordinates are central point + shift * 2^(zoom level+8)

Google Maps:
http://mt.google.com/mt?x=%d&y=%d&zoom=%d
http://maps.google.com/?ie=UTF8&ll=50.352471,30.256348&spn=4.052146,12.44751&z=7

Very simple: long, lat and zoom :)

That's why is not that simple with Maemo mapper.

May be in a few days I'll test and polish what I got now and create special .deb package for Yandex-only mapper, because there are some changes now which break all other map repositories.

Below is a screenshot(click to see 800x480) of what's working at the moment. To be continued!

Tuesday, June 17, 2008

Arcanoid

3 days ago I was forced to leave civilized city and go to the place without Internet(which is 95% of Ukraine, I think). My precious N800 is a perfect toy to spent time with. What I wanted then is to have simple, easy, old, ancient, forgotten. Arcanoid game and I did not find it in . Only via ZX Spectrum emulators, etc...

It's a pity. Had to play Bomberman and NumptyPhysics again all day. So I promise to all who read this. I'll find native arcanoid/krakout and port it to maemo. Because it's classics. It's like to have Windows without solitaire :)

Any idea of what to look for first?

Thursday, May 15, 2008

Labyrinth - bugfix release

It was too early to release the first version of Labyrinth without proper checking. Even considering "alpha" status of the project. The issue was found almost immediately, though I did not have a time to fix it.

Pygtk in OS2008 and in SDK 4.0 does not support method `to_string` for gtk.gdk.Color, only attributes: "pixel", "red", "green" and "blue". The method is used to store RGB color values like 127/64/0 in hex text "#007f0040000". Can someone advise why it's not working on maemo? The web site says "This method is available in PyGTK 2.12 and above.", however OS2008 contains:


>>> import gtk
>>> gtk.ver
(2, 14, 0)

This was the workaround for the issue:

def color_to_string(color):
return "#00%02x00%02x00%02x" % (color.red, color.green, color.blue)

Now as the saving is fixed the only porting task left is maemo's Virtual Keyboard support ;)

Sunday, May 4, 2008

Labyrinth - mindmap tool for maemo

Hi all!

Short preamble at first. Recently I've become a fan of mind mapping. I visited Exception #07 developers conference in March and there was a guy who did his presentation using not well-known tools like MS PowerPoint or OpenOffice Impress but he used totally different approach, Mind Map. It's the way of brainstorming or displaying your ideas just the way like human brain works - not one by one like sheets of paper but radially with multiple links and forms. It's much better than scrolling page by page during workshop, for example.

For daily use my choice was Java-based Freemind - big, but powerfull and available for Linux, Mac and less popular systems like WinXP, etc . But I wanted something small and modest to use on my Nokia N800. So I've done some search and found nothing. So I(as python/bit C/C++ dev) did some search among apps written in python and found Labyrinth - http://code.google.com/p/labyrinth/

Really don't understand people who use tons of autotool/autoconf code + python script just to install 10 .py files. But I've finally managed to release an alpha-quality port of Labyrinth for maemo - http://labyrinth.garage.maemo.org/ , available also on maemo website - http://maemo.org/downloads/product/OS2008/labyrinth/

Note! It's not ready yet for `production` as I took dev/trunk version from
the original website to have more powerful application with curves and
more export formats supported. If you are interested and want to contribute
either to application itself or to maemo port in particular - you know now where to go.

Here is what it looks like:

Tuesday, April 1, 2008

Bash: top keyboard shortcuts

There are people around me who've been Linux developers for years and they haven't taken a labor of reading "man bash" so far. It will not of course give you 1000% performance increase immediately but is worth reading it at least once. Just to support popular tradition, here is my list of most useful and frequently used keyboard shortcuts in bash(in order of popularity):

  1. Tab - autocomplete current command, directory or file name. I think it's about 50% of the whole statistics :)
  2. Ctrl-C - kill currently running something.
  3. Ctrl-R - search command history backward.
  4. Ctrl-L - the same as `clear` command. Wipe the screen. Very cool when you need to have blink console for the next info.
  5. Ctrl-A/Ctrl-E - go to the beginning/end of the current line. Sometimes Home/End keys are broken. Just in case.
  6. Ctrl-U/Ctrl-K - remove text from current position to the beginning or from current position to the end. Of course you can press <- or Delete key 200 times to get the same result..
  7. Ctrl-W - Remove the word(or part of it) before current position.
And this is something I've learnt recently:
  1. M-f/M-f - just forward/back one word
  2. Ctrl-v Tab - insert "Tab" char. Previously I did copy from Vim and paste :(
  3. M-u/M-l - change the current word to upper/lower case. Especially useful when Caps was pressed accidentally :)
  4. Ctrl-x @ - auto-complete hostname