I got it – my new Nokia N800 just arrived
26. January 2007
So, I finally hold my new Nokia N800 in my hands. Nokia was so kind to give a discount code to me for the work we did on Maemomm for openismus. Thanks to Nokia and Murray for organizing this discout!
So its simply incredible! l switched it on connected the wifi and write my first N800 blog now.
I should really start to read the manual now but I am just suprised of some things:
– It’s damn small. Of course I knew the size in cm before I bought it but it should feels much smaller with this 800×600 display.
– The display is very sharp though you need good eyes to be able to read webpages in full-size mode.
– Accidently pushed the button to the right and a webcam moved out
– You can use handwriting to edit text and that works amazing
I will continue playing…
Anjuta 2.1.0 is out!
15. January 2007
The Anjuta team is proud to annouce Anjuta 2.1.0, the first beta release of the anjuta 2.x series. This release is also the first that is sticking to the x.1.x = unstable convention as many people have been confused by this before. Read the full release note and get if from our website.
++Age
12. January 2007
So I am entering the time where getting older does not have any new advantages – turning 22 today.
And just as a birthday present, they sent me a letter today about the 585€ tuition fees I have to pay for the next term – thanks much!
Printing made easy!
25. December 2006
Today, I installed my new Laser Printer (Samsung ML-2010). I thought that this would become rather difficult like most other hardware installation on Linux but it was not.
First, there is a banner on the package with says that “Windows ME/XP, MacOS X and various Linux” are supported.
All I had to do to install the printer was to connect the (of course not included) USB-Cable and click on System->Administration->Printers->New Printer. The dialog told me that it had detected the printer and asked whether I wanted to use it. I confirmed that and the use of the default driver and was now able to print a test page. Very cool!
The printer is a bit laud but you can of couse switch it off when you do not need it.
Never trust voting machines!
24. November 2006
In case you ever did (or trusted computers in general) you should watch this video (from YouTube)!
Take your bounty!
23. November 2006
There are still bountys left for Anjuta. For example Fixing the project wizards shouldn’t really be that difficult and does not even require any coding.
Go on, ask on the ML, file a bug about it and earn the money!
Getting cool auto-indent in vim
10. November 2006
Usually, I think there are better ways to write code today but often vim is simply useful because you are on an ssh connection or in a virtual environment or whatever.
Anyway, to get the IMHO quite cool auto-indent feature when pressing
“Tab” like emacs does, simply put this in your .vimrc:
set cindent
set smartindent
set autoindent
set expandtab
set tabstop=2
set shiftwidth=2
set cinkeys=0{,0},:,0#,!,!^F
Of course you can read more about the vim indenting feature in the documentation. Of course, I think most of you will know that already, so this entry is more a reminder for me.
[EDIT] uws remindend me, that the first three lines were missing. Seems the default on my system already included them. Thanks!
non-DRM stores
29. October 2006
In reply to Rodney’s post:
I pointed to akuma as a non-DRM store last time. They save see music as mp3 you downloaded an you can restore it ONCE. To protect their mp3s they add a watermark.
But it may have some disadvantages (for you):
– It’s in german (though you can pay by paypal for example)
– They don’t have all and every music availible
The second issue is due to the fact that the big labels like Sony and BMG simply do not allow selling their music as mp3. Of course this does not mean that there is only bad music in the store, they really have a lot of good music but they don’t have the music some would call “mainstream”.
gettext ?!
23. October 2006
While trying to add import and export of .po files in glom I try to understand how libgettext-po handles erros. In gettext-po.h:
/* Signal a problem of the given severity.
MESSAGE and/or FILENAME + LINENO indicate where the problem occurred.
If FILENAME is NULL, FILENAME and LINENO and COLUMN should be ignored.
If LINENO is (size_t)(-1), LINENO and COLUMN should be ignored.
If COLUMN is (size_t)(-1), it should be ignored.
MESSAGE_TEXT is the problem description (if MULTILINE_P is true,
multiple lines of text, each terminated with a newline, otherwise
usually a single line).
Must not return if SEVERITY is PO_SEVERITY_FATAL_ERROR. */
void (*xerror) (int severity,
po_message_t message,
const char *filename, size_t lineno, size_t column,
int multiline_p, const char *message_text);
This is a callback passed to po_write_file which is called on failure. Hmm, so this method is required not to return if “SEVERITY is PO_SEVERITY_FATAL_ERROR”. How could I do this? Of course I could call exit() but that not really good. An application should usually not die if an error occours. FATAL error occours for example, if the file is not writeable.
The only solution that came into my mind yet was to start another thread that would simply exit if something goes wrong but that is really ugly. Anyone here with better ideas? Maybe I just miss the point.
LibTpz and C++
20. October 2006
I am able to write that in the moment because I am hacking on the glom po import/export feature and g++ is just that damn slow that I takes ages to build glom on my Pentium M 1.73 (which is usually not really slow and has great beryl effects now).
Anyway, I have some api suggestions for libtpz (for ThreePointZero). There also is a Project at gna for it now:
Interface TpzIter
{
next();
prev();
get();
equal();
}
Interface TpzList
{
prepend();
append();
remove();
foreach();
copy();
get_length();
Iter* begin(); // first item
Iter* end(); // after last item
}
I have some initial code here but it needs some polishment to be added to svn. I still would like to derive GInterfaces but I doubt that this is possible in C. The design is very close to what the C++ STL provides.
Some might say now, what the advantage over GList* is so here are two points:
– GList* is used for the whole list and for an individual item – that is confusing
– [Edit: Removed]*
So there is another more important point: You can hide your list implementation. In fact, you do not have to use a “list” at all, you could have a tree, an array or any other data structure that you can wrap on that interface. This way, you can also add optimations that are not possible with GList*.
Of course there is a perfomance impact but I think that is not that major that we should not try it. Maybe someone wants to create benchmarks later.
Another thing: Dear Lazyweb, how can I configure beryl to maximize a window like metacity when I double-click on the title bar?
*[EDIT]
This point was not very good but it is still here:
– Writing loops is more intuitive, instead of
/*GList* node = list;
while (node)
{
/* do something */
node = g_list_next(node);
}*/
[EDIT] Some pointed out (correctly) that it is better to write
GList* node;
for (node = list; node != NULL; node = node->next)
{
/* do something */
}
you can use
TpzIter* iter;
for (iter = tpz_list_begin(list); !tpz_iter_equal(iter, tpz_list_end(list)); tpz_iter_next(iter))
{
/* do something */
}