Am I programmer?

Saturday, May 10th, 2008 by Marcin Juszkiewicz

Many people think that I am programmer… But what is definition of programmer?

Wikipedia says: A programmer is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software.

My last desktop program was Multiview for AmigaOS 2.04+ which ended life in 2000 year (after over 3 years of development). Then I changed platform to Debian GNU/Linux and started to mainly use software instead of writing it. Of course during studies I wrote some code in few languages (C, C++, Z80 Asm, PIC16 Asm/C/BASIC and maybe some other) but none of them was something to be used by normal people.

For few years my work title was “PHP programmer” (with some variants) but writing code for websites is different thing then for desktop computers.

Eric Sink wrote one day great post about programmers and developers. According to this I am rather developer then programmer.

My programmer part of me know how to fix code written in PHP (used this language for few years to get paid), Python (but never got proper amount of knowledge about it) and few others — one day I had to debug small application written in 8086 assembler which I saw for first time — and all I had was source code printout.

But I also many times worked with clients to get informations what they really need to be done in project and those discussions changed many aspects of first draft of specifications. Then transforming specs into design and finally into code which gives working service at the end. Providing help to few ~60 years old ladies which use CMS written by you can be hard job — especially when documentation is not yet created so no one else know each system parts.

But there are many work titles to choose from: Programmer, Developer, Engineer, Software (Engineer / Architect / Developer / Designer) so I probably will stay with Developer and will not try to explain too much what exactly I am doing for living :)



History meme

Thursday, April 17th, 2008 by Marcin Juszkiewicz

My main system gives me this:

hrw@home:~$ history|awk '{a[$2]++ } END{for(i in a){print a[i] ” ” i}}’|sort -rn|head

379 git
209 bitbake
171 cd
113 sudo
111 ls
77 rm
76 mc
73 mtn
73 grep
72 svn

It is easy to see what takes most of my time ;)



My palmtops story

Saturday, February 2nd, 2008 by Marcin Juszkiewicz

All started years ago — I was living in Wrocław then. Each Thursday groups of friends met in pub. About half of them used PalmOS powered palmtops. Due to them I started thinking about buying palmtop for myself.

Palm M105

About year later I bought my first PDA: Palm M105. It had monochrome screen (16 shades of grey), PalmOS 3.5 and 8MB of RAM (which is also used as storage). Standard AA(A) batteries were able to power it for quite long time. I moved my calendar, address book into it, used it as e-book reader (with Plucker), public transportation timetable (Przewodas and Fahrplan) and many others things.

Sony CLIE SJ30

One day I decided that 160×160 screen is too small and colour would be nice thing to have. So I bought Sony CLIE SJ30. It was powered by PalmOS 4.1 and had great 320×320 screen. Took me a bit of time to collect apps which were able to make use of that resolution (as PalmOS treats all devices as 160×160 ones — only fonts looks better). I also started hacking some applications to make use of HiRes screen and fonts.

It was nice device and my first one with memory card slot — I used 128MB MemoryStick with it.

But hacking applications was frustrating — system did not made any use of HiRes screen, GUI sizes were mostly hard coded so even replacing fonts with smaller ones did not give more informations on screen. I decided to change platform.

Sharp Zaurus SL-5500

At that time (end of 2003 year) I had two other choices: PocketPC or Linux. I decided to not go into PalmOS 5 as it was not better then older versions. So after checking market I decided to go Linux way (which was even easier as I used Linux on Desktop for quite long time then).

And that’s how I bought Zaurus SL-5500. I found someone who fetched it from USA for me (I even got 3 months warranty from Sharp as it was refurbished device). It was costly device — I had to sell CLIE, its memory card to be able to get “collie” into my hands.

13 February 2004 Zaurus arrived with SharpROM 2.38 installed. It was nice change from PalmOS world but it lacked “hackability” so I decided to switch into open alternative: OpenZaurus. It was 3.2 version (last one with binary compatibility with SharpROM).

Change was great — finally system which I can hack as much as I want to. After some time I switched to “3.3-pre1″ version which was totally experimental but it had newer OPIE. But also it lacked software due to not being compatible any more with SharpROM…

OpenEmbedded

I started searching for tools to build some applications. First it was “buildroot” used by OpenZaurus but some guys told me that I should forget about it and start to use something called OpenEmbedded.

Gods… this was hard tool. I had to buy extra RAM to my desktop machine just to use it. But after about week (or two) of asking stupid questions to Kergoth and Mickeyl I finally got ideas how to use it and started to build extra applications for collie (which still was using OZ 3.3-pre1).

My Zaurus started to have less and less packages from OpenZaurus 3.3 and most of installed software was built with OpenEmbedded. So one day I decided to build whole image with OE. It took me week. After that I got write permissions and joined OE core team ;)

We worked hard on our build system and in September 2003 OpenZaurus 3.5.1 was released. It lacked some software present in previous releases but also gave many others. Community started to use it, then some developers joined us so next releases had more software, more machines supported, more environments (not only OPIE but also GPE).

Zaurus c760

Time passed… I was spending lot of time on user support and one day people from #oe and #openzaurus channels started to congratulate me on getting new toy. I was surprised as I had no idea what are they talk about. Someone pointed me to OESF forums thread where Richard Jackson wrote that he donates his c760 for me. It was great day.

Zaurus arrived few days later and I flashed it with OpenZaurus on same day (played few minutes with SharpROM). I did lot of VGA related hacking on it (mostly OPIE). It was my favourite PDA for long time.

Zaurus SL-6000L

In May 2006 one OpenZaurus user contacted Mickeyl and me. He wanted to donate two Zaurus palmtops for OpenEmbedded project: SL-5600 (poodle) and SL-6000L (tosa). Both devices arrived at my place month later.

Tosa is very interesting device — very bright screen (best in whole Zaurus line), internal WiFi (Prism2 on USB bus) and usable USB host. But it is also very huge — too big to be usable ;(

Zaurus SL-5600

Crap screen (same as in collie) and only 32MB RAM. Looks like Sharp wanted to produce newer collie but lacked RAM chips. If it would get 64MB of memory it would be nice replacement.

I did not played with it too much — it moved to Mickeyl during OEDEM 2006.

Zaurus SL-C3000

Another device from OpenEmbedded project. I took it from Mickeyl during OEDEM 2006, played a bit, resolved some problems and during FOSDEM 2007 gave it for Rolf ‘Laibsch’ Leggewie.

I did not like it — too thick and heavy.

PalmPilot 5000

One day I had occasion to buy PalmPilot 5000 so I bought it. It was funny to see that PalmOS5 Datebook is nearly same as the one in PalmOS 2.0 — only ~8 years of time difference…

Nokia 770

During FOSDEM 2007 I got Nokia 770 from MDK. For long time I did not found good use for it. For PDA usage I had cellphone (Sony Eriksson k750i), for web browsing I used my desktop… Finally it became used as games platform — Mahjongg, Sudoku, Battleweled and few others. Plus sometimes some web browsing.

Finally during last trip to London I found use for it (based on experience from GUADEC). After installation of Maemo Mapper it turns into nice city map.

FIC Neo1973 GTA01

Some time before FOSDEM I got email that I am one of 50 developers selected for OpenMoko phase0 program. In March I got GTA01Bv3 and two months later GTA01Bv4 came as upgrade.

I have to admit that I have mixed feelings about this device. Compared to iPhone or recent HTC phones it is bulky and feature crippled. But Neo1973 GTA02 has to fix at least features part :)

There were two versions of UI for them: OM 2007.1 and then OM 2007.2 version which we (OpenedHand) prepared for GUADEC. I remember that time when recipes for components were changing many times during one day until poky-image-phone was ready and working. I still have this image (but with upgraded packages) on my GTA01Bv3 phone. It was interesting to see when OH guys were comparing behaviour of applications on 200MHz device with same apps on 266MHz one.

Nokia N810

My recent buy. Hard to tell more about it now.

Current situation

Now I use my cellphone for PIM tasks (calendar, address book, tasks, notes). It is not perfect but I have it always nearby. My SL-5500 is on a way to new home where it will be used for developing Linux 2.6 drivers. Nokia 770 is game platform like it was. Tosa waits for someone who wants to work on improving its situation (it can be drivers work, images polishing etc). PalmOS devices are packaged in a box with many other not needed computer/electronics stuff.

For now I think that mainly Nokia N810 will be used (for fun and work). Zaurus c760 will be booted from time to time to test some things and so will Neo1973 GTA01Bv4 phone (this one is all time USB connected).



Building Poky Linux under commercial GNU/Linux distributions

Wednesday, January 16th, 2008 by Marcin Juszkiewicz

During last month I did testing how building Poky Linux works under few commercial GNU/Linux distributions. Due to costs I used their free versions (CentOS instead of RHEL and OpenSUSE instead of SLED).

CentOS 5.1

First was CentOS 5.1 as someone asked does Poky works under newest RHEL distribution. With VirtualBox it was easy to start with. But CentOS installation over network is total CRAP. You have to enter HTTP mirror name by hand, then (also by hand) enter path on server… Doing such installations on real hardware definitely require having second machine or long preparation. Of course you can also use CDs as install media. But then better burn all 6 of them or be surprised that #2 is needed for few packages…

But finally I installed it and landed in 2006 software… Out of box CentOS does not have required packages or have them in so old versions that search for unofficial repositories or compile software by hand is required.

Two days later (time of build) I had “poky-image-sato” and “poky-image-sdk” built. But QEmu does not want to work on this distribution so I had to say goodbye to binary locales generation.

OpenSUSE 10.3

Second one was OpenSUSE 10.3 version. This one also has network install CD which require entering name of HTTP mirror and path. But here I got few new surprises… First it ask for IP address of server but accept normal name. Second was that when I made mistake in path it ask them again but gave me old values so I only had to fix instead of typing whole path.

After installation I had to add some packages but this time no extra repositories were needed. OpenSUSE lack gcc 3.x so we added gcc-native 3.4.4 into Poky and QEmu binary locale generation was working.

Summary

Free versions of commercial distributions require a bit of time to install all required packages but then building Poky Linux under them is working like it should (except QEmu problem under CentOS).



Keyboard in palmtops

Friday, January 11th, 2008 by Marcin Juszkiewicz

Few days ago I shared my thoughts on replacing Zaurus palmtop with other device. According to comments few people do not understand why hardware keyboard is so important for me.

Collie

Nearly 4 years ago I bought my first Linux powered PDA — Sharp Zaurus SL-5500 (codename: “collie”). One of nice features was hardware keyboard:

Collie keyboard

It is thumb operated keyboard but usable after a bit of learning. You have everything needed to operate in console, writing text — even Vi is usable (”Cancel” key works as Esc).

c7×0

Time passed and I got another Zaurus — this time it was clamshell model — c760 (codename: “husky” or “c7×0″). This device has great keyboard. Keys are small but there is separate row with numerical keys so it is improvement from “collie” one.

C7×0 keyboard

Those Japanese keys right to “Fn” one are mapped as “Control” and “Alt” so user can even try to use Emacs :) For Vi lovers there is “Cancel” key which works as Esc.

Tosa

Another months passed and another Zaurus arrived at my place — this time is was SL-6000L (codename: “tosa”). It has keyboard similar to “collie”: but more comfortable due to size of keys:

Tosa keyboard

“Esc” is on “Cancel” like it is in collie.

N810

Recently one Finnish company released new product from their line of tablets: N810. It was their first tablet with integrated keyboard. Thanks to photos provided by Koen I can comment a bit on it too. It it similar to “collie” and “tosa” keyboards when it comes to mapping (no numeric keys, lot of symbols available only with “Fn” key) but it also lack “Tab” key which can make shell using a bit harder.

N810 keyboard

There is “Esc” key — one of side keys works as one (not visible on photo).

Summary

For now the best keyboard is “c7×0″ one — all needed keys are available, lot of others can be made available by editing keymap. And when I have to hack something on device good keyboard is one of most important things. I can not count how many times I ended with having 3-4 consoles running on my c760 with miscellaneous applications started due to amount of hacking required by projects.

Akita/Spitz

UPDATE: Matthias ‘CoreDump’ Hentges reminded me about Zaurus SL-Cxx00 keyboards (used in c1000/c3000/c3100/c3200 models):

Spitz keyboard

Yes — they are similar to “c760″ one but have changed cursors into 4-pad and each key is separate one — they are no longer parts of membrane. Many people found that one more comfortable then “c7×0″ one but I am not one of them — used both and still prefer older one.



How to replace Zaurus PDA?

Monday, January 7th, 2008 by Marcin Juszkiewicz

My Zaurus c760 is nice ARM based palmtop. I use it for testing miscellaneous things during my work days.

It was device where I hacked some Python based applications to fit in 10 megabytes of flash (it was fully working console system with Python and those apps). I test Ångström and Poky on it, tested different combinations of software etc…

But it shows age — batteries (950mAh and 1700mAh ones) started to lose capacity (one of them gives less then 60%) so sooner or later this device will stop booting (as battery is needed to boot even on AC).

But how to replace this device? There are lot of ARM palmtops in a world but most of it lack one or more features which c7×0 has:

  • ARMv5t instruction set
  • Linux support
  • VGA screen
  • working keyboard
  • 128MB flash
  • 64MB RAM

Due to first one all devices powered by Samsung S3Cxxxx processor can be ignored. Most of today WindowsMobile powered devices lack VGA screen (not to mention that they also usually lack Linux support). But at least those ones are available in normal shops in Poland.

I already considered few options but each of them has minuses:

  • other Zaurus (but they are few years old technologically)
  • HTC Universal (hard to get in good state, still boots from WinCE instead of flash)
  • Finnish tablet N810 (impossible to buy in Poland and lack any warranty/service)

In worst situation I will slowly switch to using QEmu ARM emulation instead of real device.