Monday, December 15, 2008

Egypt


Egypt-140, originally uploaded by Rooosh.

I'm back from a trip to Egypt for about two weeks. Egypt is amazing, magical, old. I loved it - it was like going back to India except with 3000 year old monuments.

Over the next few weeks, as I develop my 1000+ pictures, I hope to start writing some posts about the various places we visited, with pictures, of course. So stay tuned.

Sunday, November 9, 2008

Why Do Indians Get Boned For Green Crads

Dear President Elect Obama,

A few days ago, the latest status report from the INS came out. If a person from India, qualified with *at least* a Masters Degree or equivalent work experience (around 2+ years) applied for a Green Card in June 2003 they are now eligible to get it. This means that they would have been waiting in line, patiently, for almost 6 years, chained to their current employer, fearful of getting fired or doing something wrong and losing their job, because then the wait resets!

In comparison, if you are a European with equivalent experience, you get your Green Card right away. If you are a less qualified European, you would have had to apply in May 2005, almost two years later! Finally, if you are an unskilled European, you are at about the same place as a highly qualified Indian.

And here's the kicker: Most of these Indians with Masters Degrees got them from US Universities. If you kick us out, or force us to leave because bonding ourselves to the same employer for 6 years can get a bit stifling, you will lose US educated and trained talent. From whatever angle you look at this conundrun, it doesn't seem to make sense. The only reason I can think of is that the INS is prioritizing Europeans over Indians and Chinese, and the only reason you can think about for doing this, is because the INS is trying to maintain some sort of racial equity in the makeup of immigrants to the US, an equity in which Europeans are more equal than Indians or Chinese.

As a President, you will, hopefully, have the opportunity to fix this. Please do. Giving us Green Cards can only help the US as we start companies and employ people (usually US citizens) - note that we can't start companies on H1-B visas. It would be nice to be free of the INS bogeyman and feel welcomed into this country.

Even John Doerr seems to agree
.

Thank you,
Rushabh Doshi

Friday, November 7, 2008

America 2.0

Numerous articles have been written about how Obama's victory was a victory of the Internet as a medium for reaching out to people. Elections in this country (and thus slowly around the world) are never going to be the same again. Three things, in decreasing order of impact, but increasing order of coolness:
1. YouTube: Obama's campaign used YouTube very effectively - diligently posting every single video out there for people to watch on YT. They have gotten ridiculous numbers of views on these videos, never mind all the auxilliary videos that other people made about campaign or parts thereof or Change - all basically selling the Obama brand. The numbers on his YouTube page are absolutely astounding. 1.2M views, 2.3M views - absolutely nuts. YouTube's importance as a medium for communication, (mostly) without restriction, and its gobal reach can only make this an even more important medium in the future.
(Full Disclosure: I work at Google on YouTube, but these opinions are mine and do not represent the views of Google or any of its subsidiaries or employees (other than me))
2. Twitter: Obama's twitter updates were good, but not great. They were more propogandaish and less extemporaneous, the way the rest of the world uses twitter. I think by 2012 campaigns will have fully figured out how to make use of twitter and we will see a *lot* more tweeting going on. In case you missed out, some of the best election time comedy was played out on twitter via FakeJohnMcCain and FakeSarahPalin.
3. Flickr: I only found out about Obama's flickr page today, and its fabulous. The pictures on flickr are so "in-the-moment", its unbelievable. If you wanted to show the "human" side of Obama (not that he has any trouble with image-management), that flickr site is all you would need to point people at. I can only imagine that someone like Flickr will grow as a medium for pictures that are not official and are not shot by professionals at Time and other places.

Technology, or rather, the Internet, has forever changed the way elections are run; the way campaigns get the word out to people.; the way money is raised. I truly appreciate how much the Obama campaign "gets it" as far as tech is concerned. Case in point: change.gov is up and its barely two days after election night. This is truly government that moves at Internet speeds. I can't wait for January. I truly hope that Obama makes good on his promise to open up Government and bring the best of the Internet - openness, speed, flexibility, instant communication and response - to Washington. This really is America 2.0.

Wednesday, November 5, 2008

Sold on pingg

I used www.pingg.com to host my election night party - send out
invites, manage the lists, you know, the usual sort of thing that one
does while hosting parties.

Pingg is *excellent*. Goodbye evite. I have wanted to kick evite to
the curb for sooo long, I'm ecstatic that I'm finally able to do so.
Pingg provides an unparalelled dashboard to see what the current
status of all the attendees is, manage things like sending reminders
and such. It is very, very usable - about the only quirk was not being
able to easily import my address books from gmail - I used their
import feature, but it could use some work. Other than that, it was
absolutely fabulous.

Party Throwers Unite!!! Ditch stupid evite for pingg.

Monday, October 27, 2008

[books] Brisingr

Brisingr (Inheritance - Book 3) Brisingr by Christopher Paolini


My review


rating: 1 of 5 stars
Brisingr is the third book in what was supposed to be the Inheritance Trilogy. However, a while ago, Paolini made the "Trilogy" a "Cycle" paving the way for a 4th book. So the stories do not conclude in Brisingr, contrary to my prior expectations. Disappointment #1.

Eragon, Eldest and Brisingr are, at the end of the day, children's books. And as such, not meant to be compared to fantasy novels such as Lord of the Rings. Tolkien far outstrips Paolini in terms of his language, both English and the various invented tongues. Paolini's invented languages sound rather like German or some combination of Northern and Eastern European languages, far less "outlandish" than they should be. The dwarfish that he invented is interesting though and not quite like elfish (which is what my former reference was about).

However, if my only points of dissatisfaction where 1) that it didn't end the story and 2) the invented languages were, well, not quite fake enough, it would probably mean that the book was reasonably good and not deserving of a 1/5 rating.

I think this book is arguably the weakest of the 3 so far. Eragon was powerful because he was setting up the stage, exploring the world, but threw in some large fights and chases and introducing magic and such.
Eldest was interesting because it introduced new worlds (elves) and new, powerful charachters (Oromis, Glaedr, Nassuada). It moved the story forward and culminated in a big battle (a bit reminiscent of the Two Towers in LOTR where the second book ends with the Battle of Helms Deep). Still good though.
The third (and current) book, introduces only one new charachter, and mostly meanders the story all over the place. It could have been a lot shorter - I have no problems with long winded descriptions of things, but pages and pages about walking and flying with little consequence (waaay too much like World of Warcraft) just drag the middle part of the book to no end. The final "climax" is rather predictable and expected and just leaves you with "meh".

Overall, not a great book, I will probably read the 4th to just finish off the series, but I'm no longer recommending this to any younger cousins or friends' kids. Its not worth the trudge and the return on investment for going through 1400+ pages (all 3 books) is lower than expected.


View all my reviews.

Sunday, October 19, 2008

[books] Anathem

Anathem Anathem by Neal Stephenson


My review


rating: 4 of 5 stars
Anathem is the latest of Stephenson's books after his mega-massive System-Of-The-World trilogy (I don't know *anyone* who finished all three).



A couple of things make Anathem daunting and mildly annoying (to begin with):

1. 900+ pages. Ouch.

2. It is based on the planet Arbre where people speak Orth. Yes. Its got its own language. And the language is annoying as heck. To begin with.



The first quarter of the book is the hardest. He is setting things up and taking his time to do so. The language is really, really annoying at this point. Its like someone speaking some wierd dialect of English. A lot of the major concepts in science and philosophy are thrown in, but you have to determine what those are - everything from Darwin to String Theory to Occam's Razor exist somewhere in the book, but they're probably called something Saunt Edhaar's Rake. Go figure.



However by mid-book, things are flowing. You get used to the language, even start liking it to some extent. I was always trying to map Arbre's history / philosophy to well known concepts and its sort of fun. He builds almost everything from the ground up, so its a treatise on Philosophy (to the extent that a work of fiction involving, uhm, many concepts can be). I'm trying really hard not to give away the surprise that gets built up - not really a gotcha per se, but more like, "hrm.. what the heck is going on" sort of deal.



The last 75% is impossible to put down. If you've made it so far, then you're completely hooked. Last week was hell, with three nights of reading until 3am, then waking up and going into work with a nasty mood primarily because of lack of sleep (work colleagues are awesome and put up with my grumpiness). Finally, it gets down to blowing off everything, including girlfriend, so you can really just finish the book and see what happens.



Ending is wierd, but hey, its Stephenson, if you expected a normal ending, you're the sort that believes in Unicorns.



Overall, I would highly recommend this book to a *particular* set of friends I have. I'm not sure what that particular set is, but I can picture a whole bunch of my friends who would *not* like this book (Yes, K, I'm looking at you). Thankfully that set (the unrecommendeds) are not exactly waiting with baited breath to read this review or the book for that matter. How about the following: If you like cryptonomicon, if you liked *any* of his previous work, if you like science fiction mixed with real science, mixed with philosophical questions about Life, the Universe and Everything, there is a reasonable chance that you'd like this book. Just plough your way through the first 25% and then you're good to go.


View all my reviews.

Tuesday, October 7, 2008

Mehndi


Mehndi Party, originally uploaded by Rooosh.

Friday, October 3, 2008

Henna


Mehendid Hand, originally uploaded by Rooosh.

Saturday, September 27, 2008

Vistas from the sky


Skydiving, originally uploaded by Rooosh.

The Awesomeness of Flight


Skydiving, originally uploaded by Rooosh.

Jumping out of airplanes

Chris and I jumped out of an airplane. It was his birthday present from Tanya and I was along for the ride (and doing my duties as comrade-in-arms-for-insane-stuff).

I thought I would be really scared when I'm sitting on the edge of the airplane looking down about to fall off. I was wrong. There is no time for that. Its two seconds between sitting on the edge and falling off. Before you know it, you're plumeting towards the earth at 100+mph. Whoa!

The instructions-to-peril ratio in tandem skydiving is near 0. Instructions include "hold on to straps" and "put head on my (instructor's) shoulder". Yippee.

The dive was from 13k feet, so not much freefall - about 1 minute or so.

You can't scream while freefalling. Too much wind, nothing comes out. And even if did, there's no one to hear anything.

The earth looks very pretty. Like an extremely high res, large field-of-view Google Earth. Really.

The jerk when your parachute opens up isn't that bad. I felt it for sure, but it wasn't the hard crazy jerk that I'd imagined it would be.

My tandem instructor guy let me play around with the controls a bit. Pull left hand to rotate left, pull right to rotate right, pull both to slow down. It seemed to work quite well.

Its quite common to get nauseated or even throw up after the jump. I was in the former category.

I was really worried about breaking my ankles when I landed. Turns out you can just pull in your legs towards the chest and stick them out (sort of like keeping-ski-tips-up) and land on your butt. I totally made use of this alternate landing technique and was quite happy with the results.

This checks off one of the boxes of "stuff-to-do-before-death", so YAY!!!!!

Tuesday, September 23, 2008

Spore

I finally gave in and bought a copy of Spore yesterday. I spent half the night playing it, even though I was dead tired after getting up at 4am for my flight home. Oops.

My reaction to Spore is definitely mixed, bordering on disappointment. I guess I should have figured this, given the online reviews and the Gamespot reviews (all of which I had read before), but still.

Overall impressions:
1. The game is beautiful. Even with all the graphics turned down (so my Mac Pro doesn't choke), its still pretty.
2. The game is *too* easy. I played it on normal. I was in the space stage in about 4 hours. I must have died a total of 5 times, 4 in the protein-soup kind of phase.
3. There is very little depth to the game. If you're into designing your own creatures, great - more about this later - but if you're into *playing* a game, its got very little depth.
4. The way your creature looks does not affect the way it behaves. *How* disappointing is that! There are things you can get on your creature that affect its attributes for sure, but the correlation with how your creature looks is minimal.

My creature around the beginning of Phase 3 (land animal)

At the end of Phase - 4 (small village / tribe)

My tank, to takeover cities and wage general mayhem:

At this point, I got tired of expressing my creativity and just gave up and started using standard Spore constructs to obliterate the rest of the planet (using ICBMs, no less) and take them over.

There is a lot of fun to be had designing your own cute or ugly creatures. There are definitely different strategies that I want to try out (herbivore vs omnivore etc). So there is going to be some replayability here. Also, I have to note that I haven't quite "finished" the game per se. Just getting started with the space phase, so lets see how that works out.

Finally, Spore thinks I'm waaaay too aggressive - the word it used was "Vicious". Apparently, blowing up the entire planet using nukes isn't cool. So yeah, first game was all carnivore, completely mayhem / war on every other tribe and eventual victory. In 4 hours.

Friday, September 5, 2008

Self Perpetuating Web 2.0 Hype

I've been reading a bunch of things in my Google Reader "Computing Scan" folder. This is my high noise, quick read folder where I expect to find one interesting thing every 20 entries or so. This includes blogs such as Hacker News, TechCrunch, CrunchGear and GigaOm. That's quite enough for 500+ entries / day.

I read a bunch of entries like this one from HN that talks about sharing screenshots on the web and a startup to do the same. So lets talk about this:
The problem: How do I share a screenshot.
Solution: Use floomby.com

Like. Seriously?

Sharing screenshots was such a big market opportunity that you created a startup around it? Oh and btw, it shares music too or videos or whatever files you want.

Again. Seriously?

Like there aren't half a dozen companies that have tried doing this over as many years and have had moderate to no success.

I'm all for startups, all for ideas. I'm not an entrepreneur but hope to be one someday. I do believe in ideas that are worth something. That have some hope of solving *a real problem*. Some hope of making money. This seems rather ridiculous.

Finally, on to the subject of the post itself.

I feel that a bunch of startups today - *especially* the YCombinator kind, solve problems that are largely "Web 2.0" problems. By this I mean, problems that 90% of the web doesn't have because they don't use the tools that have these problems.

I don't mean to trash YC. Clearly, their strategy works. As proven by Xobni and Omnisio and a bunch of others, they have companies that create value. Their approach to finding these companies seems to be to micro fund anyone that is willing to put in the work and create a small feature-like company. But a lot of these companies are solving micro problems that are created because other companies with web-2.0 type sites haven't caught up to them.

Please give me a YC company that is solving a *real* *hard* *problem*.

Wednesday, August 27, 2008

[books] The Innovator's Solution

The Innovator's Solution: Creating and Sustaining Successful Growth The Innovator's Solution: Creating and Sustaining Successful Growth by Clayton M. Christensen


My review


rating: 4 of 5 stars
I finially finished working my way through this excellent book. I think the Solution is actually better than the Problem - but is not a substitute.



It has excellent lessons, with the usual case studies that is standard Christenson fare. I believe these to be important regardless of your particular situation - may you be a worker bee in a big organization, an entrepreneur trying to figure out how to break into a market or a big company exec trying to figure out how to not get eaten by the dozens of downmarket competitors.



I particularly like the framework that is laid out for evaluating the position of a given company in the oscillating cycle of specialization vs commoditization (and back) and how that changes what a company should be focusing on.


View all my reviews.

Saturday, August 23, 2008

The *complete* Hacker News feed

A friend and I were discussing feeds that we read and feeds that frustrate us. One of our common pet peeves was Hacker News.

The good:
Its fresh. Compared to the news here, Slashdot feels like old and eaten by mothballs.
The opinions are not absolutely stupid (ala Slashdot).
All in all, a worthy read.

The bad:
Each item on HN is a link. And that's it. So you *have* to go to the next site to read it. This is fine on a laptop (sometimes) but it *completely* blows on my iPhone where doing this often causes Google Reader to get swapped out in Safari thereby resetting my state. Yes, yes, I know, its reader and Safari that are to blame not HN, but HN I can fix.

The fix:
Enter Yahoo Pipes
I played with it for about 20 minutes and came up with a way to get the HN feed and fetch all the content for each item and insert it back into description.
The result? A Hacker News Piped Feed that you can subscribe to! Its rough around the edges - a lot of pages have tons of horrible content and this thing snarfs it all up; but it gets the job done.

Enjoy!

Friday, August 22, 2008

Mythbusting

Tried to break a bike lock by freezing it first using inverted canned
air.

Epic fail.

Thursday, August 14, 2008

itunes and ampache: fixing a broken relationship

iTunes does not like m3u files. Or at least not the kind that ampache spits out. For the uninitiated, here's the flow of things to get music streaming to your computer:
1. Find friend with *humungous* music collection.
[check]

2. Get said friend to give you access to his collection.
[check]

3. Friend runs ampache which looks so ugly that you can't wait to get off the webpage and onto the listening. But that's okay, because the music is really good, and there are few other solutions out there that do *exactly* what you want, despite really bad html+css (user xp? what's that?)

4. Get the m3u playlist you want to play.
[check]

5. Watch iTunes add *each* song into its library as if it were a different song.
[scream in frustration]

6. Google search like crazy. Not compromising on:
6a. ampache, or
6b. itunes.

7. Turns out I'm not the first to notice iTunes's brokenness and people with more time than me have created a nifty utility called m3u2itunes which sort of fixes the problem. In the same way that a spare tire solves a flat tire problem. Which is to say, it doesn't solve it at all, but at least makes the experience a little less like a dentist appointment.

8. Be happy again. You can listen to said friend's library *and* not destroy your itunes catalog in the process. Woot.

Saturday, August 9, 2008

C++ is still #1

Love it or hate it, the data does not lie.

Google's CodeJam competition has plenty of stats about the languages used to solve problems; plus they give you the data if you want slice it and dice it differently. The two most interesting charts:
1. http://www.go-hero.net/jam/langbar

C++ is indubitably #1. And this is in a competition where coding speed actually matters - you have two hours to do 4 really hard problems. I would have thought that python / ruby / perl / lisp and other high level languages would have *dominated*, I'm glad I didn't put any money on it.

2. The Olympics of coding (by country)
Lots of Indians were enthusiastic, but we take a beating in Round 2 (the order is a bit messed up; its Qualifying, 1, 1a, 1b, 1c, 2, 3). The Chinese are *dominating*, and its a toss up between the Russians and the Americans.

Oh and try solving some of the problems: definitely my day of learning humility when it comes to coding.

Wednesday, August 6, 2008

Dictionary lookups with quicksilver

(Sorry for the hiatus, etc)

If you're using a Mac, QuickSilver becomes an invaluable add on very, very quickly. If you're not using, it stop reading and install it now.

Really, I'll wait.

Now that you have QS installed, here's a way to do really quick dictionary lookups:
Open QS preferences
Go to plugins
Add the Services Menu Module.
Note: Do *not* add the dictionary module - that will not work in 10.5.
Once this is done, you can open a normal QS window using your hotkey (mine is Apple-Space)
Hit "." to start typing free text.
Hit "Tab" to go the secondary window containing a list of actions.
Start typing "Lookup in Dictionary.app". Usually, I have to type "Loo" before QS figures it out.
Et voila!

Much better than going to dictionary.com or dict.org or even doing "define: foo" in Google.

Monday, June 16, 2008

[books] Lord of Light

Lord of Light Lord of Light by Roger Zelazny


My review


rating: 5 of 5 stars
I just reread Lord of Light and I'm promoting it to my favourite sci-fi/fantasy book of all time. It is extremely well written, its a fast read, and the Buddha kicks some serious butt. What more can one ask for.


View all my reviews.

Tuesday, May 27, 2008

[books] The Queen's Gambit

The Queen's Gambit: A Novel The Queen's Gambit: A Novel by Walter Tevis


My review


rating: 4 of 5 stars
Bobby Fischer story; except that Bobby is a "she". Really good stuff, fun, fast read. Predictable ending, but if that is the best I can come up with, it must be pretty good.


View all my reviews.

[books] Marooned in Realtime

Marooned in Realtime Marooned in Realtime by Vernor Vinge


My review


rating: 4 of 5 stars
Great fiction from an accomplished writer. It is not a Fire Upon The Deep, but it is still an extremely compelling and rather fast read. Armchair detective novel - except with statis based time travel.


View all my reviews.

Sunday, April 13, 2008

Solving the iPhone headphone problem

Inspired by http://www.blogger.com/img/gl.link.gif comparing iPhone headphone adapters, I took a pair of scissors and a knife to my own headphones and fixed the problem. For those that are unaware of the problem here's the short version: iPhone has an almost normal female headphone plug, except that its a tad too deep to accommodate the mic. As a result, almost all "regular" headphones don't work. This has led to a whole industry of adapters, ranging from $5 to $10 that fix this problem. Turns out, a knife does the same. For free (as in beer). Results below:

Those are my JVC headphones, not iphone headphones. That little ring on the side is what I cut out. All you need is about a 1mm cut and that does the trick.
Do *not* blame me if you try this on your $200 Bose headphones and end up cutting the wire instead. I am not liable, YMMV, and all that.

When the problem is really hard...

... change the problem!

This sounds like a cop-out, but by that measure, most of engineering is a cop-out.

This sort of engineering happens in all fields, but since I am most familiar with CS, I'll go over an example from there.

The problem domain arises from the design of caches. It is also applicable to any general search / query optimization and I'll talk about that briefly at the end. On to caches - I'm talking about the web sort here not the processor sort. So on to the problem itself:
Imagine you're building a large cache of webpages. You have the webpage itself on disk, but ideally you don't want to hit disk to avoid the 8ms hit. You can reference each webpage by some id, which is, say, a hash on the URL. One easy thing to do is to store all the ids in a hashtable using some reasonable hashing function. Even with perfect hashing, your hashtable is going to be size O(n) if you have to store n elements. This is fine if the number of documents you're storing is small , but if you have a large number of documents (1 billion docs * 8 bytes = 8G memory), and realistically you don't have a perfect hashing function, this can become quite cumbersome. So what do we do?

Enter bloom filters. Bloom filters are a type of probabilistic data structures that use some fixed number of bits and provide the guarantee that if an element is not found in the bloom filter, it does not exist in the cache. If an element is found, then it is in the cache, with very high probability. What this realistically means is that your bloom filter can say that you have something, when in reality you don't. In most cases this is okay, because the probability of this happening is sufficiently small.

The simplest kind of bloom filter is conceptually pretty easy to explain too. Lets suppose that you're hashing a set of elements S = {x1, x2, .. xn}. Lets use a bitset of a fixed size - say 1024 bits. Now we hash x1 => k1 where {k1..kn} is a number in 2^1024. Inserting an element x1, we hash it to k1 and flip that bit to 1. Thus your bloom filter looks like this:

x1 x3 x5
| | |
v v v
10010101010100000001100000
^
|
x2

x1 => k1
x2, x3 => k12

When we search for x1, the bit is 1, its a hit, we look for it and its there.
Similarly x2 hashes to k12 and the bit is 1, we look for it and its there.
Lets assume x3 is not there in our cache. We search for x3 and it hashes to k12 and the bit is 1 and we try to look for it and its not - its a false positive.
x5 hashes to k17 (or something like that) and the bit is 0, so we know definitively that the element is not in our set.

This is a brilliant optimization that helps out in a surprising number of search problems where the time hit on a false positive is acceptable.

I'm sure I didn't do a good enough job explaining bloom filters, so here's a great talk on the same. The first 10 minutes are really good and then he gets into a lot of very complicated stuff that optimizes various aspects of bloom filters. If you're implementing your own, I'd recommend the whole talk, else just the first 10 minutes or so.



Thus in the end, if you look at the problem definition of hash - "tell me, with certainty, whether a particular element exists in a set or not", its difficult (for space reasons). But if you change the problem definition to "tell me, with certainty, whether a certain element is not in a set, but you can be wrong about it being in the set", suddenly the problem becomes solvable along the space axis.

Monday, March 31, 2008

Snowboarding!

More snowboarding videos!
This time its Chris shooting the video with me (in yellow) going down the mountain.
The video was edited using iMovie, which is a nifty little program, if you ignore the really obvious bugs.
Enjoy!

Friday, March 21, 2008

Koenig lookup in C++

This is a nerdcentral post, so non-nerds (all two of you) can stop reading now.

I was dealing with some piece of code at work which looked like this:


// In some header file
namespace N {
class C {
...
};

void DoStuff(const C& c_obj) { ... }
} // namespace N

// In some .cc file
N::C c_obj;
...
DoStuff(c); // <-- Look! No need for N::DoStuff


I looked at DoStuff(c) without the N:: prefix and figured that it must be a bug. Someone forgot to put it in. But this code compiles fine - what gives?

I remember reading about this way back when I was really into C++ and thought it was the hottest stuff on the planet. Thankfully those days are behind me, but not everything that I learnt. So I dug into this a bit and finally came across Herb Sutter's article explaining exactly this.

Before you read the article or even read this one furthur, its a good exercise to try and figure out what's going on. What are the possibilities that would make this work? A good guess is someone did a
using namespace N;
somewhere up above. This would indeed make things work and this is why using namespace declarations are a very, very bad idea in header files. They're usually a bad idea in .cc files too, but less so than headers.

However, the above example isn't because of a using namespace somewhere up above. Instead, it is because of a feature of C++ called Koenig lookup. The basic idea is that besides the usual places where a compiler looks to resolve a symbol (local scope, global scope, etc) it must also look in the namespaces containing each of the parameters of the function. As a result, our good ol' compiler looks within namespace N as well, and lo and behold, there's DoStuff defined in N.

Why is this useful?
STL uses this feature quite a bit. Its "normal" to declare things like this:


namespace stl {
template
class datastructure {...}
}
} // namespace stl

template
void operator+(stl::datastructure& s1, const stl::datastructure& s2)


I'm not certain why this is better than declaring operator+ to be a part of datastructure itself (it will have the same effect), but this is C++ arcane voodoo that is beyond me. Anyway, I prefer using better tools these days, but now and then, we have to deal with languages that were really not intended for the ordinary mortal programmer.

Monday, March 10, 2008

Ted's mornings

This is my model of what Ted's mornings are like. Much cleaner room, of course, etc, but you get the point.

The Cult of Obama

It started with this twitter from obama's campaign:
"BarackObama: In Columbus,MS & wondering how somebody who's in second place is offering the vice presidency to the person who's in first place. Vote Tues!"
Hil-a-rious!
All things lead to YouTube and this message was no exception. In the links that followed on the reply twitters, I came across this video:

I'm a die hard obama supporter. I think the guy is awesome in many, many ways.
But that video freaked me out. That video is so singularly cult like that its not even funny. This follows on the heels of a piece I heard on NPR (podcasts) where the Wait, Wait folks make fun of Obama comparing him to Scientologists and got hordes of angry letters from the Obama supporters. Kind of like when they made fun of Scientologists and got hordes of angry letters from the Scientologists.

Edit: Kristin sent me this over IM:

Translation:
To the candidate who is Barack Obama
I sing this corrido with all my soul
He was born humble without pretension
He began in the streets of Chicago
Working to achieve a vision
To protect the working people
And bring us all together in this great nation
Viva Obama! Viva Obama!
Families united and safe and even with a health care plan
Viva Obama! Viva Obama!
A candidate fighting for our nation
It doesn't matter if you're from San Antonio
It doesn't matter if you're from Corpus Christi
From Dallas, from the Valley, from Houston or from El Paso
What matters is that we vote for Obama
Because his struggle is also our struggle, and today we urgently need a change
Let's unite with our great friend
Viva Obama! Viva Obama!
Families united and safe and even with a health care plan
Viva Obama! Viva Obama!
A candidate fighting for our nation

My take: OMG.

Wednesday, February 27, 2008

Visualizations for a new world

Data visualization is an intersection of statistics and art - one to
be correct, the other to make sense and engage our attention. Excel
and other spreadsheet programs do well at the "typical" visualizations
- pie charts, lines, bars and whatnot. Where they fail miserably is
trying to show "Vietnam today is similar to the US of 1970 based on
mortality rate and GDP". This is the sort of stuff gapminder excels
at. It makes effective use of availabie dimensions - x, y, size,
color, animation for time. One thing I would be interested in looking
at is using OpenGl or something of the sort to add the z axis and
allow the user to freely rotate and explore and even 'fly over' the
data. A good talk, albeit somewhat long.

Monday, February 4, 2008

Go. Vote.

For once, I can preach without fear of a "Did you?" backlash. Give me citizenship and I will be first in line to vote. But meanwhile...

Please. Get. Out. There. Tomorrow. And. VOTE.

Sunday, January 27, 2008

Link Blogging

New experiment: Google Reader has this awesome feature called "Share it". Well, you can only share it with other people using Google Reader, which makes sense in a "promote Google Reader" sort of way. Eh, whatever. Google Reader is an awesome product and I love using it, but if you don't want to use it, that's your prerogative.

The question then becomes "How do I get my shared stuff over to you". The idea was completely Andy's - he's doing something similar, I'll let him explain on his blog when he's ready.

I can't post the script without sanitizing it because it contains my Google Auth token (yeah, its *in* the script - ha!) but if you really want a crossposting script that will take your feed off anywhere and post it to Blogger, let me know and I can clean it up and post it.

And the whole point of the experiment is to find out if link blogging is super-annoying or not. Right now cron's running it once a day - so if you think that's annoying (or not), do let me know.

Links from Google Reader



Saturday, January 26, 2008

Snowboarding!

My Tahoe snowboarding video, as shot by famous director Stecher. Note that the director is not above taking a few videos of herself, in the third person, *while snowboarding*.

Tuesday, January 22, 2008

[books] Monstrous Regiment

I have been reading a lot of Terry Pratchett lately and been loving it. Pratchett's humour and sense of satire and style are unparalleled in the sci-fi/fantasy world. For the uninitiated: most of Pratchett's books are based in a world known as Discworld: the world is a large disc resting on the backs of 4 elephants which stand on a giant tortoise that travels through space. Asking what the tortoise rests on is considered bad form in Discworld. Pratchett's books have several recurring charachters and almost all of them share the desperately-not-trying-to-be-a-hero trait. Most of the heroes would run away from battle, hit their enemy when they're down and turned away and in general fight as unfair as possible, most of them lie, cheat, steal and do whatever is necessary (or sometimes just for the fun of it), almost like in real life.
I keep going on about Pratchett and I haven't said much about this book. Pratchett was definitely feeling pro-feminist when he wrote this one. If you ignore the message at the end, where there lie huge swaths of feminism that are hard to avoid, the book makes for a pretty good read. Generally light and humorous, standard Pratchett fair, and leaves you with a good feeling at the end.

[books] Nine Princes In Amber

I started Zelazny with Lord Of Light, suggested by my friend Evan. Read it, loved it.

The Chronicles of Amber are a whole series of fantasy/sci-fi books written by Zelazny decades ago but have maintained their awesomeness unhindered by Kronos. Nine Princes is written as seen through the eyes of a prince of Amber who wakes up on Earth with slight memory loss. It takes you through his recovery as he talks to several key charachters and tries to figure out what Amber is and who he is. Lots of interesting concepts, lots of political intrigue, subterfuge, in fighting among large royal families, and best of all, lots of unanswered questions for book 2. Can't wait.

Wednesday, January 16, 2008

On Energy Conservation

I'm an engineer. As an engineer, when you think about optimizing something or fixing something, you think about the 80% case. Its nice to think of the tiny micro-optimizations that will gain you a percent here, a percent there, but for the most part, they're futile academic exercises. Applying the same logic to energy, I think the 80% problem is energy *harvesting* not conservation.

Note: harvesting not production. Why? The sun is the closes source of infinite energy (by todays consumption rates). Various nuclear reactions on the sun are going on and are expending the energy stored there (as a result of the big bang, or God, depending upon your choice in these matters) and blasting this energy out to us. The amount of energy that sun blasts out does not change irrespective of how much you or I use. It is available for harvesting and if you don't harvest it, its gone.

Note again: I lied. Energy coming from the sun is clearly not infinite. Its a finite resource. However, it is more, by several orders of magnitude (unverified, pulled-out-of-thin-air stat here folks!) than the energy that we consume as a planet.

Hence my conclusion: Conservation is not the 80% problem. Better harvesting is the 80% problem and that's what we should be focusing on.

Now this is clearly untrue for known finite energy production resources such as nuclear fuel, coal, natural gas and of course, oil. The known capacity of these resources is within the same order of magnitude as our current energy needs x several decades or centuries. Which is worrying given that as our society evolves, our energy needs will go up and thus the known period of time for which we can survive on these resources will go down.

There is another, non-trivial argument for conservation: Energy costs. *Because* we get energy from increasingly expensive finite resources, the cost of energy keeps going up. Right now, its bordering on the edge of becoming a non-trivial part of living expenses, I think sooner or later, it will become this. Some percentage of our living expenses will be the energy. Cities will be able to attract or repel people based on how much energy they can supply and how much it costs (this already happens for industry which requires a steady supply of clean electricity at relatively low costs). So for purely monetary reasons, I think conservation is fine - even necessary in order to keep our daily costs down.

However, for anything else, we're attacking the wrong problem. Lets focus on harvesting, not on conservation. Go after the 80%.

Monday, January 14, 2008

[books] A Brave New World

My "classical" education is definitely lacking. Aldous Huxley is required reading for most high school or early college students these days. Well, not mine.
For those that haven't read it, its a vision of the future that, depending on your perspective, describes either utopia or distopia.
Unlike 1984, the people living in Huxley's world aren't miserable - far from it. Free love, perpetual employment at 30-some hour weeks and all the drugs that you want make it a great place to live. What is even more striking is the caste system, unlike any other caste system, is stable. Stable because people within a given caste are made, physically and psychically, to server their purpose. An Epsilon is happy to be an epsilon because he doesn't know any better - he doesn't know what it would be like to be an Alpha and is conditioned to not care. Very, very powerful concepts for societal control.
All in all, a definite Good Read.

Books

I've been reading a lot lately and I realize that I maintain no record of what I read. I probably don't recollect (after a month or so) what I felt were the best/worst parts of a given book. This amounts to essentially a waste of my time, other than the instantaneous temporal pleasure I derive from the very act of reading itself. Enough. I'm documenting all the books that I read, however pithy from now on. Resolution for a new year.