Ika's Weblog XML
Architecting the Thought.

After a very painful data-migration process

The blog has moved to a new location: www.freshblurbs.com

Please, kindly update your RSS Reader with the new URL:
http://www.freshblurbs.com/rss.xml

I apologize for the temporary inconvenience but in the long run the new server is going to be much more featue-rich and comfortable, benefiting both me and my kind readers.

12/29/05

A Great CSS Book - Zen of CSS Design

Now, I am not a designer, not even a web designer but I am a web developer. Therefore, I can not ignore the CSS revolution. It is, definitely, no breaking news that designing with HTML tables and 1 pixel "clear" gifs is a thing of far past. Alas, too many websites still hold to bad old way. I decided not to be one of those old-timers about a year ago and that's when my search for enlightement began.

Now, it was not an easy path. First, as I mentioned, I am not a designer so it was not high on my priority list, second - I had real hard time finding a good book that would make the learning curve less steep. I think I tried all the CSS books available. Most of them ended up beeing language references of some kind. None of them too useful. There was more on the Net than in these books. Not much on the net, either, though. At least - not easily available.

And then, today, while looking for something entirely different at Borders, I ran into Zen of CSS Design book. I loved it. Well structured, well written, written by a person who clearly knows what he is talking about. The information is very concise and to the point. And, last but not least - the book quality is awesome.

If you want to learn more about semantic, CSS-based page design, you should check this book out.

Two thumbs up.

posted by irakli, 18:12 | link | comments

12/28/05

Logitech diNovo

If you are as picky with keyboards as I am, then there is something you may like and the name of it is Logitech diNovo Media Keyboard. Now, it's not just the awesomely cool numeric pad (with termomether, clock and Smart Calculator mode) or the innovative design or the insanely cool look.

You see, I am (and you should be, too) very picky about how a keyboard feels. I guess I was spoiled by the high quality of Apple keyboards. I really need that the keys be soft, stable and comfortable. Quite honestly very few keyboards meet these criterias. Most of the keyboards are clamsy and cheap (not by price, by quality). diNovo is a lucky exception. It feels great, it drives great.

Two thumbs up. Great job, Logitech! Highly recommended. A must have.

posted by irakli, 22:29 | link | comments

The Worst Manning Book - Ajax in Action

I have purchased Ajax In Action from Manning a while ago and tried to read it, several times. In vain. And not due to the lack of interest, I must say. A brief look was very disappointing and I could not make  myself to spend precious time on it.

Anyway, I finally managed to get to it. After all, bad or worse, I could not ignore it, or so I thought.

For the love of God and yourself - do not waste your money and time on this piece of crap!

God! I have never seen worse book from Manning. Absolutely useless, terirble writing, stupid narratives and huge. Costs a lot, too. I would give it away but I can not remember anybody who I hate so much to give this horror to.

Very dissappointed.

posted by irakli, 14:30 | link | comments

Dynamically Build Classpath on Unix

Useful code snippet for your start.sh scripts:

for f in `ls $BASE_DIR/lib/*.jar`
do
CLASSPATH=$CLASSPATH:$f
done
export $CLASSPATH

posted by irakli, 13:03 | link | comments

12/27/05

Funniest Thing Ever

...is when somebody does something so f..in mean, you want to cut his (or her) throat right there, right then but instead you smile warmly and say through your teeth "thank you. I really appreciate you doing this" ............ and they actually believe it!!!

There is no limit to human stupidity, indeed.

posted by irakli, 18:32 | link | comments

12/21/05

What are IPs Reserved For Local Usage?

Everybody knows about 192.168.* but it is not the only one. Actually, there is an RFC: #1918 that controls this, and the winning "combinations" are:

     10.0.0.0        -   10.255.255.255  (10/8 prefix)
     172.16.0.0      -   172.31.255.255  (172.16/12 prefix)
     192.168.0.0     -   192.168.255.255 (192.168/16 prefix)

posted by irakli, 11:50 | link | comments

12/20/05

Who Called My Method?

Sometimes you really want to track which other methods are calling/invoking a particular method, at runtime. There is a quick and dirty way of doing it that I find pretty nifty and decided to share, in case you are not already familiar with it. In this method, you can track the caller by analyzing the stack trace.

Let's look at an example. Today I wanted to track who is opening connections to a database in a particular scenario/flow. I created a "proxy" class, intentionally named DriverManager (but not java.sql.DriverManager by my.package.DriverManager) to obscure the "REAL" one and do some monitoring.

Here is the class, and I hope the code is self-explanatory:

public class DriverManager {

    public static Connection getConnection( String uri ) {

        try {
            throw new Exception("GettingStackTrace");
        }   catch ( Exception ex ) {
            StackTraceElement[] elements =  ex.getStackTrace();
            StackTraceElement element = null;

            element = elements[1];
            System.out.println ( "Connection requested from method:"
                    + element.getClassName() +
                    "." + element.getMethodName() );
        }

        Connection con = null;
        try {
            con = java.sql.DriverManager.getConnection(uri);
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return con;
    }
}

posted by irakli, 09:04 | link | comments

12/17/05

Fixing MySQL Error #1251 - Client does not support authentication protocol.

I ran into this problem more than enough times, during the last year and I am tired remembering the solution, each and every time. So, I am going to post it here, for my own sake and for the sake of those who may find it here and bless me for being so kind (heh).

Anyway, here it is:

MySQL has changed password hashing mechanism starting from version 4.1 and if you are trying to use any "older client" (including PHP 4 or the pre-last MySQL driver) you will get an error of the type: #1251: Client does not support authentication protocol requested by server; consider upgrading MySQL client.

You thought you were screwed, did not you? :) Not entirely. Those folks @ MySQL are definitely nuts, for changing password hashing, but they are not THAT crazy, after all. They did leave a way out and here it is.

When you add a user, in MySQL 4.11 and newer, with a command like:
GRANT ALL PRIVILEGES ON dbname.* TO user@localhost IDENTIFIED BY 'secretPassword';

It will create password entry with new hashing and your "old" client will not be able to authenticate.  But, if you run a command like the following afterwards:
set password for 'user'@'localhost' = OLD_PASSWORD('secretPassword');

it will update the appropriate entry with the old hashing and everything will just work, even with your poor, old, "stupid" client.

enjoy

posted by irakli, 23:45 | link | comments

12/12/05

This Is Why People Think Java Is Cumbersome

Please, take a look at this and then this.
How many similiarities were you able to find?

It's such a shame! Especially, coming from a prominent Jakarta project. At least, they could have written a decent tutorial, instead of this abracadabra bullshit.

So much for the "general-purpose tool-building factory factory factory "

/me *SIGHS*

posted by irakli, 09:36 | link | comments

12/10/05

Setting Up Subversion in 5 minutes

There are several books about Subversion, some small some huge. Yet, none of them gives a 5 minute get-going guide. Most of the developers are seasoned CVS users, so we do not really need a tirade about version control - just get us going!

And (I can hardly stress this enough) we'd really like Subversion to authenticate over SSH. Leave that "pasword db" (in essence - open text file) or Apache Module bullcrap, to somebody else. Neither do we need the WebDav for version control - thank you very  much, but no.

The last time I set up a SVN repository (accidentally - my first time, too) it took me looking through 4 different books and a week's work on and off. Today I needed to do it, again and I found out that I did not remember much of the last experience. Well, it did not take me a week, but still more than I would want to spend on it. Anyway, to save myself time, in the future and in hopes of this being useful for folks who don't want to read 4 books, here is how it is done, on Unix (Windows can get lost, as far as I care):

1) Get the source or a binary from http://subversion.tigris.org

2) If you got a binary - you know what to do. If you have a source tar, either read the INSTALL doc that came with it or just do the usual
"./configure", "make", "make install"
that's what I did - I was too lazy to read and it worked, so - it may work for you, too.

3) Check that it installed by running:
svn --version (client)
and
svnadmin --version (admin)

4) Create a repository by typing:
svnadmin create /home/svn 
(the path of your repository will be /home/svn)

5) Let's import a module, now:
go to the source tree of whatever you want imported and type:
svn import -m "Importing my module" .  file:///home/svn/mymodule

the dot after the comment is what you are importing (current folder, in this case)
and the next parameter is the svn URL of where to import your module.

6) Go to /home/svn/conf/svnserve.conf, enable (remove comment) the General section and under it set:
anon-access = none unless you want your repositories to be viewable (not editable) by anonymous users.

7) Grant read/write rights to the developer team:
Put your developer accounts under some group with a command like:
usermod -G devgroup steve

and then issue a self-explanatory series of commands:
chgrp -R devgroup /home/svn
chmod -R 770 /home/svn
chmod g+s /home/svn/db (or g+t for BSD)

after that any unix user that is in the group devgroup, on the server,
can checkout the code by:
svn co svn+ssh://steve@antiadmin.com/home/svn/mymodule

That's it. If this short guide is not clear enough for you, feel free to read 4 or 5 books about Sunversion. I'd recommend to start with the Pragmatic Version Control with Subversion, from the Agile guys. It's the shortest and makes more sense than the other, larget books. Maybe you will need just one book, if you start with this one.

cheers.

P.S. The free book on the Tigris site is a piece of crap. Don't waste your time. It's a classic case of "you get what you pay for". Sorry - just being honest.

posted by irakli, 22:18 | link | comments

12/09/05

Logical, Yet Miserable

If you think about it, it is pretty pathetic that as people get increasingly estranged to each-other, in the real life, they show more interest in Social Web (or whatever other fancy name the "celebrity" jerk bloggers come up with to satisfy their unhealthy egos.)

Logical, yet very pathetic and sad.

posted by irakli, 23:36 | link | comments

12/07/05

TV Shows Online - TiVo Gone?

iTunes Store launched TV Shows service several months ago. Initially it was just four shows but today the number drastically increased. It seems like it is becoming real thing, which is very exciting. TV has to go online. It's a shame how much behind TV industry is compared to everything else.

posted by irakli, 01:23 | link | comments

12/05/05

Web 2.0 Inspiring Music Industry?

Have you seen the Dirty Little Secret video from The All-American Rejects band? I can't help thinking that it may well be greatly inspired by the Ning Confess

posted by irakli, 21:50 | link | comments

12/02/05

Metaphors - Next Generation Programming Language?

Sun features an interview with Victoria Livschitz about the next-generation language: Metaphors.

To tell you the truth, IMHO, it is not going to make it. I am not an expert of architecting new programming languages, but it looks to me as just another artificially born, intellectually struggled, idea. It does not feel natural. Maybe it's just me.

Anyway, I am going to give Victoria this much, if this new language ever makes to mainstream, at least she is much cuter than our much respected James Gosling :)

posted by irakli, 16:38 | link | comments


Copyright (C). Irakli Nadareishvili. Picktek Ltd.