Wednesday 25 June 2008

When being a genius means you know you aren't one

I was reading this post by a fellow Googler, and I have a hunch: he is exactly the person he describes in the post. I bet he has this superhuman ability of coming on Monday and telling that the code you talked about is ready, he refactored the whole code base, and since he was bored, he made some nifty application that you needed for a presentation.
And while you are trying to understand what he has done (how is beyond mere mortals), he wants to play foosball.

Add to Technorati Favorites

Monday 16 June 2008

Workign in a meritocracy

I find it so refreshing working in a meritocracy. The lack of turf wars has such a great impact. I started workign on my 20% in an area I am not going to disclose, but let's call it A. There are people already working in A.
In a normal company it would go like this:
I have to ask my manager if I can work in A.
My manager thinks about whether he is going to gain or lose power with that.
If he approves, I go to my project manager, who can still reject it, because he will lose someone from his project, and possibly, is afraid of losing me completely.
My project manager fights with my manager, and I may go to square 1 if the project manager wins (notice the word "win").
After all this approval, my manager will think the best way of telling the manager A that I'll be working part time in that.
The manager in A will be afraid that my manager is planning a takeover, so they will keep information away just from me.
Whatever was wrong, it will be my fault (because I am the inefficient minion of my manager who is trying to spy in A).
If everything goes well, my contribution will be ignored, since prizes, raises, etc. are for "full time staffers only".

In Google, on the other hand it goes like:
Checking that I am not in absolute crunch time, I tell my manager I'll work in A (and notice it is not ask, request, it is just tell).
I read the documentation.
Tell the team A that I am planning to work on this.
Team A will be really helpful since they can use whatever assistance they get.
If it works out, I will get a positive review, raises bonuses, etc.

Add to Technorati Favorites

Sunday 8 June 2008

Why is it profitable to goof off?

Last Thursday my desktop was running the tests, I had read all my mail so there was nothing to do on my notebook, so I decided to grab a book I had to read for the job , a Diet Coke and go to the massage chair (OK, it was not goofing off, but the title makes a bigger hit this way). In other companies they would tell me that if I want to read, I do it in my own time, and of course, pay for the book myself.
Maybe that was not the most profitable hour that Google paid, but it meant that on Friday I really wanted to get a test suite to run in 60 seconds, no matter if I had to stay until 2 AM (which I did).

Add to Technorati Favorites

Saturday 7 June 2008

Creation Museum

Looking around the web (hey, it is almost 1 AM and I am having fun programming and surfing the web), I came across this wonderful description of the Creation Museum (link missing not accidentally).

Add to Technorati Favorites

Tuesday 3 June 2008

Playing board games Google style


As you can imagine, we have a board games group in Google (actually, several, one per major location). And by board games, we DON'T mean Monopoly . We mean serious games, and, this being Google, it must be large scale.
Last Saturday we played Twilight Imperium Third Edition with the Shattered Empire expansion. It lasted a mere 11 hours (from 12:40 to 23:55). I cannot recommend it enough (if you are into board games, of course), since it has a really good balance between races and the combination of long term strategy and random events works wonderfully. And to understand what I mean by large, just check the picture.

Add to Technorati Favorites

Monday 2 June 2008

Why return isn't evil?

We know that GOTO is the root of all evil (OK, GOTO and premature optimization). However, why return is different? For instance, if you write in Java...

boolean equals(Object o) {

if (!o instanceof MyClass.class)
return false;
....
}

it is salt, and spice and everything nice, even though it is unstructured. Not only is it OK, it is recommended.
I think I have an idea. In this case you are not breaking the structure of the code. You are just shortcutting a huge else; it is the short for of "else do the rest of the stuff, clear local variables and return a value". However, this doesn't apply for continue of break; In both cases they are unstructed and mean: "continue with an unnamed block of code, but leave variables as they are", which is exactly what GOTO does.

Update Jun 4, 4:04: A colleague reminded me the amazing number of WTFs that can be produced just with returns. I have seen them and they can be as ugly as GOTOs; I mainly meant those clear returns that are nested only one or two levels deep.

Add to Technorati Favorites

Thursday 8 May 2008

The world worst traveller: beating my own records.

This time I had to travel from Dublin to Valencia, changing planes in Madrid. When I arrive to my second flight, I am elated to find out that the flight has only 4 passengers in an ATR 72 (with capacity for 68 people). I sit down, after double and triple checking it is the right flight (since there is another Iberia flight traveling at exactly the same time to Valencia). I arrive to Valencia quite fast, even before the planned time (I guess a couple of tons make a difference to such an small airplane), just to find out that my luggage isn't there! There were more crew-members than pieces of luggage, but they still manage to delay mine. They sent it to my hotel the following day, no harm done, but it is amazing they can screw up moving 3 suitcases!
Add to Technorati Favorites

Tuesday 22 April 2008

Airline prices (or how to make a convoluted system not even operators can understand)

A few months ago I bought a plane ticket and I needed only one way; however, it was cheaper (in absolute terms, not relative or anything fancy) if I bought a return ticket.
As if that weren't enough nonsense, now I had an extra leg I am not going to use, so I'd like to change it to some date when I can effectively use it. After listening to music for 30 minutes the phone operator tells me that changing the date, since it exceeds the maximum stay, is more expensive than buying a one way ticket (and I guess much more than a return).
I think Google will never make a search engine for plane rates. Indexing the web: easy.
Finding the cheapest rate from A to B: hard (heck, I guess it is NP-complete)

Add to Technorati Favorites

Saturday 5 April 2008

This is the kind of people you find in Google...

So, the standard way of doing thing in the music business is:
-You publish crap
-Your sales suffer because you publish crap
-Some of your suffering customers download your stuff even though it is not worth the electricity it takes to download them
-You sue your customers

Now, the new EMI CIO, ex Googler, says that suing your customers is not a good idea, even though the full music industry is going for it. Again this is what I like about working in Google: nothing less than a full-scale revolution is good enough

Add to Technorati Favorites

Saturday 29 March 2008

Travelling salesman with N processors

XKCD applies one more... I have to say that in this case the problem is slightly changed, since it is no longer the travelling salesman, but N customers going to the distribution office, but heck, the joke is still good.

Add to Technorati Favorites

Tuesday 25 March 2008

Blackberrying and eating gum

I am getting tired of famous magazines plagiarizing my blog. In this case, Time blatantly copied my post about Google reducing my lifespan. I hope my formula for profits works this time... I have a big time lawyer: his last client was SCO!

Add to Technorati Favorites

Monday 24 March 2008

How to update Netgear WPN824

In this post I just want to single out a something from my previous post... If you have a Netgear WPN824, the auto-update feature doesn't work. You have to download the firmware image from the website and apply it.
Of course, applying a firmware upgrade is not for the faint of heart. It is one of those cases when reading the manual and following precautions is useful. You have to do it with the device firmly connected to the wall, in a sunny day, without cats, dogs or children around, praying to your favorite deity (in my case, Steve Jobs) that everything goes well.
In a related note, it reminds me of something I learned in my previous jobs. Electric companies don't apply patches to their EMS or other important systems in rainy or windy days, just in case there is a power failure.

Add to Technorati Favorites

The state of plug and play

Today I finally managed to configure my VOIP adapter, a Grandstream Handytone 286. Mind you, it was not easy, to say the least. And that's considering I am a graduate software engineer with 7 years of professional experience; the only way you have a chance is if you fully understand XKCD.
The first strange issue was that my router, a Netgear WPN824, crashed when I plugged the VOIP adapter into it. My first idea was to check if it had the latest firmware; the update system said so, and I went on. Since I had some problems with some VOIP providers and my softphone, and some reports on the Internet said that the firewall could crash the router, I tried to set the adapter in the DMZ. Since my router could only take one server in the DMZ, I had to disable DHCP and manually setup the address, which involved typing the MAC address in the router configuration. As that didn't work -I guess I would have needed to force the expiration of the DHCP address in the adapter- I had to set it statically in the adapter too.
It was really fun to find that the problem was still there: the bloody adapter still crashed the bloody router. I still had a couple of tricks left. I tried disable UPnP, which I read it also caused problems, but to no avail. I was thinking of setting up some port triggering, but I thought that if setting the adapter in the DMZ didn't work, port triggering would be quite useless too.
Going around the router documentation I come across some firmware downloads. I see the versions available and with the corner of the eye I see something strange: the latest version number seems to be different than the one I saw in my router. Fiddling a bit I check and, indeed, I had an old firmware version. All I had to do is a firmware upgrade.
For those of you who have never done it, firmware upgrades is something that really makes a person nervous. If something goes wrong you turn a piece of hardware into a nice decorative ornament; there is no undo, no turning back, it is the point of no return, you cross the Rubicon, you burn the bridges, etc.
Fortunately, the firmware upgrade worked OK and the router no longer crashed. So all I had to configure was the SIP address, the STUN server, the works. That was pretty simple in comparison.
In case you didn't notice the irony of plug and play, I included 11 very technical terms just to configure a bloody VOIP adapter, which took me 2 hours and lots of guesswork to make it work


Add to Technorati Favorites

Wednesday 19 March 2008

Internet as a catalyst...

a catalyst of people with way too much time in their hands. Just check this video.... These guys would not have spent those days setting everything up if they couldn't show it in the web (and even if it is tricked and isn't continuous, I dare you to set up all that stuff). But what is even worse, the video has 538,169 views, which means, that if every person just saw 3 minutes (less than half), humankind has lost 3 man/years of people just for watching this video. Yes, 3 man/years were lost just because people were watching a video of boxes falling in a supermarket!

Add to Technorati Favorites

Sunday 16 March 2008

Behold, mere mortals! My prophetic powers show themselves all seeing once again

Some time ago, I wrote a post about the Oyster card; I also mentioned some privacy concerns from a fellow blogger. Well, in this article it is stated that it is being discussed whether the government should be able to access those records. A very smart comment in Slashdot shows how stupid this idea is, since a not-completely-stupid-terrorist will still use single tickets (hey, you are going to blow up yourself, you are not going to need that pension fund)


Add to Technorati Favorites

Saturday 15 March 2008

Bubblesort with N processors cannot still be reduced from O(n)

So, continuing with the previous post, let's assume we can make N comparisons simultaneously. Bubblesort won't still improve the speed from O(n); in the pathological case, where we have MAX, x, x2, x3, ..., x(N-1). Only one comparison per cycle will return that a swap has to be executed. so, we still have to do N-1 swaps.
Now, how we use all this comparisons? Well, a simple algorithm will be to make N/2 comparisons per cycle, comparing all elements xE with xE+1 (where E is all the even numbers). In the next cycle, we compare xE-1 with xE. Why not do both at the same time? It is very simple: we might have a problem that both return true, and we must execute both swaps; which is the equivalent of swapping xE-1 with xE+1. But how do we know that? We must compare the results of the comparisons, and we still have the problem of how xE+2 may compare with xE+1.

Add to Technorati Favorites

Thursday 6 March 2008

Bubblesorting with N processors (where N is REALLY large)

I was reading this article in Slashdot, and after this comment an interesting question came to my mind: what may happen if you have a massively overpowered computer for solving a problem. By "massively" I mean that for an O(n) or O(n .log n) you have C.n or C.n.log n processors and equivalently ingent amounts of memory considering parallel memory access (usually memory is not a problem, since even if you solve problems with 1.000.000 integers, that doesn't make a dent in present computers).
So I will try to think how to implement some of this algorithms... if I have too much time (I won't) I will check if I can simulate them. Unfortunately, normal multithreading may not work optimally, since to have some real simulation I would need a per-instruction round-robin, so I don't think that will be possible.
Of course, I am not original. This is the same concept as the Chinese Lottery Cryptanalisis attack (there is even an RFC about it)

Add to Technorati Favorites

Sunday 17 February 2008

Do Aliens dream of Alien sheep?

In the xkcd blag there has been an interesting post about detecting alien life. Here come my two cents:
Our bloody telescopes are not powerful enough! They are only capable to detect signals emitted directly to us!
According to the sci.astro.6.FAQ, our TV signals are only detectable within 0.3 light-years by the the equivalent of an Arecibo Telescope. Even if we manage to make a telescope 100 times more powerful than Arecibo, since non-directed radio signals are lost proportionally to the distance squared, we could only receive a TV signal emitted within 3 light-years. As every fifth grader knows (most probably not the other participants in the show), there is no star in that range.
And if you think about directed signals, isn't a bit optimistic to assume that you'll detect something, after you multiply all factors in Drake's equation and then multiply again by the probability of being listening at exactly the right time in the right direction?

And that's why we haven't seen Melmacian Idol or Wookie Inventor.

Add to Technorati Favorites

Hi to Indonesia and the Netherlands

Looking around the web (let him who has not used Google on himself cast the first stone) I found Pelopor, an interesting blog that quoted my post about being a Mac Convert. Hi to Bonnie2405 and her/his/their fellow writers!

PS: even though using Google as a verb would have sounded better in the initial phrase, it would be a blatant trademark violation, and you certainly don't want to do that (especially against your employer)

Add to Technorati Favorites

If you visit Orlando don't miss Busch Gardens

Last weeks I was in Orlando (that's why I didn't write, not because I am lazy). Besides missing the Dublin weather, I was enjoying Busch Garden's roller coasters (and others). I especially liked SheiKra; it is smooth and soft (yes, you can say that of a roller coaster with a vertical drop). Unfortunately, due to Earth's high gravity field, a vertical fall cannot last long, unless you parachute; even the 200 feet fall cannot last more than 3.5 seconds (even less if you take into account friction with the rails and air). It is quite scary before you go up; afterwards, wooden roller coasters like Gwazi are way scarier.

Add to Technorati Favorites

Wednesday 6 February 2008

Haven't you always wondered...

How expensive it would be to fill your apartment with plastic balls? No?
Ok, maybe you didn't, but someone else, besides me, did.

Add to Technorati Favorites

Wednesday 30 January 2008

You are old when you are a part of a museum...

Last few months I've been to a couple of “Living History” museums. What I mean by “Living History”? These were historic museums, but some parts are so recent that actually people who lived through that age are teachers themselves. Last weekend I went to the California State Railroad Museum in Sacramento. It was really interesting, especially where they showed a Railway Post Office; in this car mail was sorted while the train was riding, so letters could be delivered as soon as the train arrived to the destination! The guy who explained all this, now in his seventies, was actually a clerk, so he explained how he did his job. Actually, since the last wagon was retired in 1977, I was alive when this kind of cars existed!
In addition, 6 months ago, I went to the Computer History Museum in Mountain View. They have a restoration project for a PDP 1, and the teacher has actually worked with the computer when he was at university. He told the story how they found the data for a music program, but not the program itself. Amazingly this guy had written the original program, so he reconstructed it from the data! As if that wasn't enough, one of the first Google servers was on display... if you thought turning forty was a crisis, being a part of a museum is way worse!
I can imagine in thirty years being a teacher in a museum explaining the history of the Internet.
I: “So, when I was young, we communicated our computers with modems over a phone line... (young girl raising her hand) Yes, darling?”
Young girl: “What is a phone lane?”
I: “A phone is what we used to talk before we had iBlackBerry's, but the difference is that it was connected to the wall.”
Young girl: “My daddy connects my iBlackie to the wall one night a month, and it is terrible, I cannot use it at that time”
I: “Well, actually, phones had to be connected to the wall to be used....”
Young girl: “But how did you carry it to the playground, to school?”
I: “We didn't” (young girl looks perplexed, not understanding the concept of being out of touch)
Young boy: “How fast were these “phones”? How many Gbps?”
I: “My first modem was 2400 bps”
Young boy: “Ohh, 2400 Gbps is quite good”
I: “No, no, sorry for not being clear: I meant bps. That's like 1 billionth of a Gbps” (the boy refrains from asking me how we hunted mammoths)

Add to Technorati Favorites

Monday 28 January 2008

gHaircuts

No, I am serious. Not only you can have gourmet meals, massages, pets, clothes, doctors and laundry at Google, you can also get a haircut. We have our official hairdressers and they are pretty good (ok, my standards are quite low, so a good haircut is whatever leaves my head on my neck without any major hemorrhages). I guess I'll need some informed opinion about it but I don't think many Googlers have a clue; it is not something simple as stellar astrophysics, Fermat's theorems or Quantum mechanics.

Add to Technorati Favorites

Tuesday 22 January 2008

The power to change Google

So, you assumed you had to be a major player to change Google results, like Oprah or China? Think again. You can write a small stick figures cartoon and make results jump with just one picture. This picture is way beyond being worth a thousand words; it is more like thirty nine thousand seven hundred (and going up). Will this entry have the same result?
On related news, I've been watching The Big Bang Theory; I have never seen such a thing happening in real life (except the time I've played ONE board game from 1 pm to 10 pm on a Saturday, random discussions about the theory behind moving a couch upstairs and the fact that I will not allow my children to have any inheritance if they even think of using derivation to get the area below a curve).

Add to Technorati Favorites

Thursday 17 January 2008

The customer is always right, as long as you can rip him off

I am starting to get tired of hotels not offering free WiFi. We all know the cost of the service... U$S 99 for a router you can share among different rooms, a broadband connection that you can cap per user and some technical support. Instead, you get U$S 500 flat screen TVs and cable, that nobody really needs or wants. Amazingly, cheap hotels and hostels realize that it is a useful service they can easily provide, and give it away more often than upscale hotels. I can think of three reasons why that happens: the first two are convenient and the last one, sadly, is the most likely.

  1. Inertia: hotel chains take a long time to make a decision, since they have to check with their technical departments, ask for several quotes, discuss the quotes, negotiate an order, get it delivered, etc. while a small hotel owner just goes to the neighborhood store and buys U$S 2000 worth of equipment and some network access
  2. Not understanding the market requirements: Nobody needs Internet Access in a hotel... it will take only a couple of years until it is an absolute barrier of entry, just give it time.
  3. Cuts into their profits: this is the sad truth. Do hotels really want to replace their U$S 10.95 movies and U$S 5 a minute calls with free movies (and porn) and 3 cents Skype? I don't think so.


Add to Technorati Favorites

I am a Mac convert...

Steve Jobs, Who art in heaven,
Hallowed be Thy Name.
Thy Kingdom come.
Thy Will be done,
on desktops as it is in Notebooks.
Give us this day our daily cool gadget.
And forgive us our Windows CE,
as we forgive those who Blackberry against us.
And lead us not into Office,
but deliver us from Windows. Amen.

Maybe I went too far?
Nah... A full notebook you can get in a Manila envelope?. Creating the Universe in 6 days may be harder, but not so fashionable.
I am writing this from the MacBook Pro, and I cannot get tired of saying how good the hardware is...

  • the touchpad, once you add right click, double click, dragging replaces a mouse completely (I have not used my Mighty Mouse in 4 weeks)
  • the integrated camera is amazing: I have used it today with only 2 non direct 40-watt bulbs and I was still recognizable
  • the keyboard has exactly the right size; not too small, not too big, just perfect
  • the power source and cables are completely unobtrusive (especially with US plugs that fit perfectly in the power source) and I love the magnetic lock of the plug that goes into the computer
  • the speakers are really good
  • the keyboard lighting allows you to type even in the night

The only drawbacks: it is on the heavy side, and it becomes hot if it is not in a proper table (right, you have always used it as the manual says).
It used to be a problem that you couldn't run Windows on Macs, but that is no longer the case... just search in Google and you will see how to install it with Boot Camp et al. And of course, you can always use Linux, but you don't really need to, since all the power is already there.
Now, let's look at another nifty piece of hardware: the iPod. It is so beautiful... of course, it doesn't do much more than any other MP3 player, but it is so well designed that my alarm clock was replaced yesterday with an iHome. So now, if I actually had an iPod, I could play it there. I have also seen the iPhone, and the design is just perfection, not your average clunky Blackberry, that weights 110 grams (3.9 ounces) and cannot point where you are without Google Maps or a GPS. Of course, Android is much better, but still...


Add to Technorati Favorites

Tuesday 15 January 2008

Google food is way beyond my level...

Today dinner: salmon with lemon sauce and oysters with caviar horseradish.
I rest my case.

Add to Technorati Favorites

Saturday 12 January 2008

How to treat your customers...

Today I've spent my full morning looking for a VOIP service. Unfortunately, the VOIP market has only two players: Skype and everyone else. Skype is good, their payment processing is nice and you have lots of hardware, but they are missing a critical feature for me: they don't have incoming numbers for Argentina. I have looked at the Gizmo Project, which is good too, but my credit card doesn't work with them and they have disabled Paypal, so I cannot use them either; they both have strong barriers of entry to me.
I have looked at different options and finally hired a company that didn't look really good, but offered me one big advantage: No strings attached, one time payment of 15 dollars via Google Checkout. Unfortunately, the service is crappy, so I won't be their customer anymore. However, due to the low price and the one time payment (with the extra assurance of using Google Checkout) I gave them a try, and they sold 15 dollars. There are other companies who look better, but they require a 1-year-long ironclad contract, and that means I will never use them. This is what Joel meant by saying that you have to get your customers IN before you can try lock them in, or they are locked out.
In case you have not read any other common sense marketing articles, I certainly recommend Seven steps to remarkable customer service, or Joel's Strategy Letters. I know what I say, I have an MBA, you can trust me on this.


Add to Technorati Favorites

gGym

I have described some time ago how we ate in Google, how much weight we win, and how that is evil. Well, we have the gym of course. Most probably you are joking about us using the net in the gym. It happens you are right. Our bicycles and treadmills are network enabled, so you can compare your efforts, times, calories spent against other athletes. Amazingly (or not) this is the first time were I see Googlers having the worst scores by a large margin.

Add to Technorati Favorites

gBus

After a really long hiatus, I am writing again. Last months have been pretty hectic, so I am taking a chance to write about some Google perks I had not used before. This time, it is the gBus. There have been some comments about it, but I don't know how many people have written first hand about them. As a matter of fact, this is as first hand as it gets: I am writing this on the bus, using the wirelesss network. gBus etiquette is strict: you can either sleep, use the computer or talk in a really low voice (because people are sleeping or using their computers, and those activities rank higher in Google's pecking order).
The bus is not your run-of-the-mill bus. It is actually closer to a Limo than a bus, with the leather seats, tables, carpets, etc. I guess I have never driven a car as luxurious as this Limo. In my case I am commuting to San Francisco, so my choices are an hour in the crowded highway getting mad at drivers, or fifty minutes relaxing in the bus in the pool lane... The choice is quite clear, isn't it?
My main complaint: my MacBook Pro doesn't fit in the seat tray in front of me, its screen is too wide.

Add to Technorati Favorites