Pragmatic AJAX

img_hc_ajaxfreshflavour.jpg

Today, my hardcopy of Pragmatic Ajax arrived. I bought the bundle edition consisting of the PDF beta version of the book and the printed edition.

It’s a wonderful book. I have been doing AJAX since a bit earlier than the launch of Google Maps, but I still thought that I need some brushing up especially in the matters of usable frameworks (I’ve been doing everything from scratch) and useful practices.

Considering that I liked every book of the Pragmatic Programmers I’ve read so far (we share the same mindset I guess), the decision to buy that book was a non-issue.

I’ve been reading the PDF-edition so far and completed about the first half of it, but I’m very happy now to see the dead-tree edition as reading that is much easier in terms of handling (no cheap printouts and no computer needed to read it).

The first half was very interesting, but I think I’ll better write a complete review once I’m through with it.

And in case you wonder what that picture above means… Well… Here in Switzerland, we have a brand of cleaner fluid which is called AJAX.

And we have had that for years, so they are not just riding some strange fashion mood like these guys. I wonder if the inventor of the AJAX acronym knew :-)

Another day, another “head first” book

With pleasure I found out that Head First Design Patterns was in the bookstore I’m usually getting tech-books at (I like going to a store, buying the book and then immediately begin reading it – this is why I don’t order all books over the web). The book was hidden in the shelf full of UML-books where it should have been placed near the Java-books: It’s really Java-centric.

As I noted here, I really like the head first series and if you ask me, head first design patterns is the best so far which may be because the topic really, really interests me. Additionally, I so far found much less mistakes than in head first jsp (where there were quite some).

This new book of the series has something the others don’t: It has suspense. Always when one of the patterns is explained, I’m so much looking forward to learn what the next pattern will be and what the next example will be.

I’m not a theoretical guy, so it’s quite difficult to keep me reading when dry topics are to be explained. Not so with head first design patterns: They keep it interesting and they keep explaining by example (very good ones by the way). It’s really well done.

I’m now about in the middle of the book (the command pattern) and while I alreay knew some things, I was able to learn a good deal of new stuff (and the correct terminlogoy to use) and interestingly, it’s sticking in my brain. I can remember every single important thing (the rocket-powered rubber-duck, for example. Btw: Rubber-ducks do fly indeed: Just throw it out of the window and they fly – in one direction only, but they do fly. The fly()-method would have had to be overriden by many ducks anyways, but I agree, the strategy-pattern is the better solution).

Even if you are not interested in design-patterns: Go and get this book. Even during reading the very first chapter you’ll soon get interested and by the middle of the book you long for every second of free time to continue going on reading just to learn what the next pattern may be and what example may be used to explain it.

Incredibly great stuff.

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.

Head First Servlets & JSP

Today I bought myself Head First Servlets & JSP.

While I have absolutely no intention in passing any Java related exam or even do anything JSP-ish in the near future (see my reasons here, here and here), I had to have the book.

Why?

For one thing: While I have my problems with Java, I’m still very interested in it and the technologies around it. This is the reason, why I’ve already read one or the other book about JSP. The scond reason: The “Head First” series is absolutely the best way of how a tech book can be written. It’s a pleasure to read them.

They are that good, that it’s even worth reading them even when you don’t really need to learn what’s in them. It’s just fun to read it. Try it yourself!

Fun with OpenLDAP

I bought “LDAP System Administration” because I was interested in LDAP for a long time and I never really understood what one could do with it.

While the reading book is great (it lacks some details here and there, but it’s really nice to read and has very understandable explanations), putting it to work wasn’t:

What I want to acomplish is to have a central user-database for our 3 people company: Two Windows PC’s, one Linux-Router, a Mac OS X workstation, 3 Linux-Servers, my Home-PC – I want to be able to log into all of them with my one password I have in the LDAP-Server. That’s what LDAP is for anyway.

Setting up the server was done in no time (although it required some sweat because I first installed the OpenLDAP Server of debian stable but then deceided to upgrade to the current release (debian is lagging like ever) by using the server from the unstable distribution. I got it to install eventually (after purging the former installation that caused the update-script of the new installation to quit beacuse ldap-utils where not installed [side note: if a packages installation script requires tools from another package: why isn’t this dependency marked in the package?]).

Soon I’ve created my test-account, installed nss_ldap and pam_ldap and it seemd to work.

Actually it crashed my SSH-daemon as soon as I tried to log on to the machine, I could not change the password of LDAP-accounts, su did not work and login was not possible either – despite the fact I was following the clear instructions in the LDAP-Book.

The SSH-Problem got solved by updating to the latest version (uncommenting the LDAP-Support for groups in /etc/nsswitch.conf did help with the older version but this was no alternative. suing eventually began to work without me really changing anything, changing the password required me to edit /etc/pam.d/passwd despite the fact that the in-file documentation of that file states that it is not necessary. Just like the su-problem, the one with login went away eventually.

/bin/passwd requires still requires me to enter the users old password when called as root. Stupid, but can be circumvented by using a LDAP-Admin-Tool. chsh authenticates via PAM and gets the current entries correctly but tries to save back to /etc/passwd. As stupid as the thing with passwd

So the adventure is not even half completed but a day is used and I had to fight problems which are not even supposed to be existing…

Is what I am trying to do really that sophisticated that it sinply does not work? Or am I just plain stupid?

I’ll keep you updated…