HP iPAQ hx4700

Finally.

Last July, Lukas and me ordered HPs iPAQ hx4700 and only just today it finally arrived. Nice thing. I’m still looking at everything, so I’m going to post a deeper review sometime in the future.

But now back to my new toy ;-)

Learning by example

After getting through with Head First Servlets & JSP, yesterday I bought Programming Jakarts Struts just outof pure interest. You never know when knowing those things may come in handy.

Currently I’m somewhere in chapter 3 and already know quite a lot of things about struts (that I really like the framework is one of them – I should really try to do something Servlet-ish in the future). Chapter 3, for those that don’t know the book, is an introduction to Struts by example of a very simple online banking application.

And this gets me to the point: I’m a very practical person and I despise of doing lots of theoretical stuff. Usually I come quite soon to a point where I lose my interest because the topic gets to theoretical.

This is why I learn best using examples.

When I have to learn some database structure, I usually don’t even try to learn from the documentation. I just look at how the database is built to learn how to use it. That way, I’m doing something practical while still learning how to do the right thing. Only whhen I’m not sure somewhere, I’m going to look at the documentation.

The same thing with meetings. As soon as it gets redundant, I almose immediately lose interest. My brain hungers for more, clear information. If there is some, it just sticks. I seldom take notes and I seldom forget important stuff – just as long as it’s non redundant and somewhat visual.

So, the chapter three of the Struts-book is the optimal way for me to learn something as it’s expaining things by dissecting a complete application. This way I always know the big picture and a practical goal (the application) which helps me greatly understand and memorize the details.

And all this is the reason I so much like doing what I do at our company. Our philosphy has always been to try something out, never to think of being unable to do something, every time saying yes to some request of a potentional customer.

That way, I can always be on the lookout for practical solutions. I can always learn by example (the project I’m currently working on). In the last five years it seldom happened that I had to do something I did before. It’s learning, trying, erring, trying again all the time.

And as this is how I work best, we never failed so far to actually deliver what we promised to. From my very first CGI-script (“CGI? Never did that… but it can’t be that difficult”) over streaming satellite TV over the internet to Linux powered barcode scanners: It always worked out. And it always will.

Favourite Thunderbird Extensions

last time I talked about my favourite extensions to Firefox and while this list is outdated already (I’ve got some more on the list), I think it’s time for the Thunderbird list:

  • Enigmail is the all-you-need solution for encryption matters. Unfortunately, not many of my common adressees have GPG-keys already, but maybe that’s going to change. Important emails I’m sending out are signed.
  • QuoteColors is a must-have for me as only with this extension Thunderbird complies to point 7 on my list of features I want in a mail client.
  • ClearSearch re-adds the Clear-button to the search toolbar. It’s quite click-intensive to clear the filter without this button and it even serves as another indicator of whether a filter ist active or not (it’s disabled, if not).

So: Not many Extensions, but absolutely important to me. I wonder: What are others using? The same? More? Different?

Fix for comment spam?

Yesterday, asterisk* talks about comment spam and an easy fix to do it.

Reading the article gives quite a good insight on how those spammers work: They don’t seem to really request the page of your entry, but they only submit hardcoded values in some database.

This gets this seemingly simple trick to work. Inststead of reading the weblog page and submitting the real form, spammers still submit the hardcoded value, missing the additional form-element.

Unfortunately, this problem is easy to fix for the spammer: Just update the database with the new information form the forms. And I promise you: As soon as this hack gets more known (which is bound to happen soon as it’s so simple to impelement), they will update their scripts.

The logical next consequence would be to change this additional tag more often, leading to the spammers updating the index more often.

The ultimate consequence would be a script generating some kind of random cookie which is different on every request. This in turn would lead the spammers to actually request the form before sumitting it.

I don’t think, I have to name the consequences of that: The spam will stay, but the bandwidth needed will increase greatly. Instead of just posting, the spammer will also request the whole page.

And the spammer will certainly do that on all weblogs. Regardless of whether they deploy this cookie or not.

So in the end, this “fix” just makes the whole thing worse for all us bloggers.

Sorry. No solution. Or ist it? Convince me otherwise!

Explain This!

Would anyone care to explain me this:

stats.png

I mean: While I can understand that an entry concerning filesharing is very popular and while I really see the sense in the rdf-File being requested often, I can absolutely not understand what’s so interesting about suburban railways!

I for myself certainly find it interesting, but none of the people around me share this interest. Who would have thought that there are more fans of railways out there on the net than there are people having problems with their P800 phone…

Reading logfile analysis can be so interesting at times…

Oh and on another note: I would be really interested to know how many people have actually subscribed to the RDF-Feed and thus are coming back regularly to read what I have to write. So: RSS-Subscribers: Stand up and post a little comment here. A “I do” certianly suffices.

As the traffic really peaks whenever I post an entry, there certainly have to be some subscribers.

Web Programming with CSS

For the first time in a very long time, I’m able to use a completely de-table-ized design in pure XHTML and CSS for creating a little web-application in PHP.

While many people just quote less bandwidth usage and better maintainable HTML-Code as the big advantages of using pure CSS layouts, let me add another one: Extremely increased productivity for programmers bringing interactivity to the layout

It’s a real pleasure: Never was it so easy to just concentrate on the functionality. No layout-information creeping into the business logic because it’s the only way to get some stupid placeholder GIF into the layout. No more error-prone stitching together immense and complicated HTML-snippets. No more debugging what went wrong when building one of those complicated layout tables.

And of course: No more pulling out hears when having a look at the size of the generated HTML-Code

I’ve never been as productive in coding a web application than in this case where the HTML-code is clean and the design is where it belongs to: In the CSS (which I don’t have to touch (anymore – the whole thing happens to be written by myself – Richard isn’t that good in CSS yet))

If only all future projects would be CSS-only. It would make live so much easier…

Delete-Key in zsh

I’m a big fan of zsh. Besides it having an awful amount of features, it was this guide (called “User-friendly user guide”) that brought me up to speed on unix-shell matters back then.

So it’s only logical that my default shell is the one the guide is about ;-)

What annoyed me majorly was that in Gentoo Linux, the delete key did not work in zsh (unless of course you count outputing ~ instead of forward-deleting as “working”).

Finally I got around to fixing that.

Adding

bindkey    "^[[3~"          delete-char
bindkey    "^[3;5~"         delete-char

to your .zshrc enables your delete key on every thinkable keyboard. Finally!