Google does it again

Impress me, that is. Look at this:
Google is good at this
Not only do they flag recipe as a special search type, but they allow me to refine my search by ingredient, cooking time and calories. OK, that last one is stupid and the list of ingredients they do allow me to exclude/include are a bit short, it's still impressive.

While on the subject of Google, take a look at this:
Google is good at this
See that subtle little blue bar above "Web"? What's more, they only waste 130 pixels before getting to search results.

Microsoft wastes 145 pixels, which is not bad considering how much more fluff they have.
Bing is a fast follower

And Yahoo! wastes 190 pixels. And has blinding blue links that I kinda, strangely enough.
Yahoo! flounders around without a map
Pixels are important. Everyone seems to have made the mistake of buying a wide screen LCD, vertical pixels are at a premium.

Trust the librarian

Daniel of course nails it right on the head.


Nice one, Microsoft

For the last 2 weeks or so, I've been staring at and thinking about the UI to my new startup's flagship product. Beyond the Beyond pointed me towards a piece by the Windows Phone 7 metro design language. So I Googled up some examples. And I find this really beautiful website.

Now, if there's something I enjoy more then complaining about computers, it's complaining about Microsoft. Not only that, I've been staring at websites for the last +16 years. Rarely has a website design made me go "woah, yes!" Black/white/grey/orange? Liberal use of whitespace? Visible clutter approaching zero? WOAH! YES!

What's more, the videos of the Metro design language I've seen make it look really nice. I would call it what happens when you mix Helvetica, iOS and the minimalism of the 1972 Munich Olympic pictograms.

PS: I was going to post a link to Apple's iOS 4 page, but I had to spend a few minutes refusing all the cookies they wanted to set. Fuck 'em.


Nice one Google

I might complain about computers a bit. OK, maybe I complain about computers a lot. But last night something jumped out at me that is Just Right. I was trying to find details of a Western Digital hard drive. I'd forgotten that they have wdc.com, as opposed to to the completely unused wd.com. Anyway, I googled "western digital" and noticed the following:

YES! That is so useful, it makes you wonder why they didn't have it before. Or did they and I only just noticed.

Also works: Asus, CPAN, boardcom, youtube. (Woah, 'you' returns youtube. OK, maybe not so strange, considering who owns youtube.)

I wonder what it takes to get the site-search treatment, because the following don't work: Linux, Perl, Apple, Wacom.



Chatting away on #POE last night, someone mentioned ZeroMQ. I'd heard of it before, but this time it stuck. I read the book. And I'm hooked. I keep thinking of new ways to use it. And old problems that could be better solved with ZeroMQ. POEx::ZeroMQ might be in my near future.


CentOS4 and gcc4

Say you are merrily compiling someone else's code on CentOS4 and you get something resembling the following:
query_response_time.cc: In function `void query_response_time::add_time_atomic(query_response_time::TimeCounter*, uint64)':

query_response_time.cc:160: error: `__sync_fetch_and_add' was not declared in this scope
query_response_time.cc: In member function `void query_response_time::time_collector::collect(uint64)':
query_response_time.cc:261: error: `__sync_fetch_and_add' was not declared in this scope
make[3]: *** [query_response_time.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory /usr/src/redhat/BUILD/Percona-Server/sql'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory /usr/src/redhat/BUILD/Percona-Server/sql'
make[1]: *** [all] Error 2
make[1]: Leaving directory /usr/src/redhat/BUILD/Percona-Server/sql'
make: *** [all-recursive] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.49946 (%build)

You curse and swear. __sync_fetch_and_add is part of Intel's Itanium ABI and just plain isn't implemented in GCC 3, the default compiler in CentOS 4.

But the solution is easier then you think:
yum install gcc4 gcc4-c++

export CC=gcc4 CXX=c++4

OK, so maybe it's harder then that; you will probably have to add the following to your spec file:
BuildRequires: gcc4 gcc4-c++

%define cc_cmd ${CC:-gcc4}
%define cxx_cmd ${CCX:-g++4}

And replace any hardcoded reference to gcc or c++ with %{cc_cmd} or %{cxx_cmd}.