03-31-07 - 3

World Mapper very cool visualizations sort of in the theme of gapminder or something.

03-31-07 - 2

Arg; in my window my poor computer is directly in the sun, very not good for a laptop with a little fan. Yarg arg blarg. I'm getting too much sun on my face too.

03-31-07 - 1

* the way poker has changed * "dinosaur time" - not sharing information, not learning, no competition


03-30-07 - 1

We took a random little trip out to Amador County, which is like near Sacramento on the way to Kirkwood in the Sierra. Tasted some wine from the Shenandoah Valley there (old Zin region). All the wine there is really dry and peppery, I'm not a huge fan. The Renwood Colheita Port was really fantastic, also the Mount Amauk Syrah is from near there, very nice. The best wine we had wasn't from that county - the Navarro Pinot Noir is so rich and flavorfull for a Pinot, but still has the nice light fruitiness of a Pinot, highly recommended. The area is full of old gold rush towns and mines that have been turned into tourist traps, it's a really weird place. There's lots of gorgeous country around there, but not really anywhere too great to bike or hike.


03-26-07 - 2

The "Jeopardy!" buzzer works like this : at a certain point, it is activated and you are allowed to buzz in. After that point, the first person to hit the buzzer gets the question. If you buzz in before that point, you are frozen out and can't buzz in for a few seconds. That point is defined as "when Alex finishes reading the clue", but in practice is just a beat after he end the last word. I believe a light also goes on to tell you the buzzing has opened, but if you wait for that you will never get in first, all the good buzzing contestants do it by timing.

This system is retarded. First of all, it severely favors returning champs who have experience with the buzzer. Someone like Ken Jennings can become a real master of the buzzer. The Jeopardy producers might like this because a long running champ is good for TV but it doesn't make for a fair game. Second of all, the point where the buzzing opens is ambiguous and you have to sort of learn what they expect - it's not something you can go into and do well just by knowing the rules. It's not a well designed game mechanic. It would be okay if you got a practice round to get used to the system, but you don't, and if you don't learn it right away you can get too far behind to catch up.

Oddly, the fix for this is trivial and also makes the game more interesting, and lots of other game shows do this. You just let people buzz in at any point after the clue is shown. If they can read the clue faster, they can buzz in sooner. They can also choose to make a strategic decision and just buzz in immediately and hope to know it without seeing the clue. This takes away the arbitrariness and the need to master some weird skill that you can't know in advance, and makes it more strategic and more fair.

03-26-07 - 1

Italian Salami guide; my local shop Lucca has Coppa Salami that's quite excellent. Coppa is nice and lean and dry sort of like Prosciutto; I don't like the standard Salamis that are moist and have balls of fat throughout and get gummy in your mouth. Coppa + fresh mozerella + Tartine bread = chow down.


03-25-07 - 3

So we went to the symphony last night. The hall here is really quite nice, cool looking and functional. It was pretty boring so I spent a lot of time looking around noticing little things. For the first time I really paid attention to the conductor. My mom was a concert violist (not a typo of violinist but a viola player), and she taught me that there really is a point to a conductor - without him the orchestra can actually get out of sync. You see an orchestra plays without monitors, and while you can hear your own instrument fine and your own group, you usually can't hear the instruments on the opposite side of the stage, so if there was no master sync, there could be a spectrum across the stage of people being slightly off from each other. The conductor provides a visual guide to keep everyone in sync. Anyway, I've seen a lot of conductors that just sort of seem to be dancing along with the music, waving their arms to the beat. I suppose that works okay to keep people in sync, but it's not guiding the music because if you're moving *on* the beat it's too late to guide people to hit the beat. This guy actually appeared to be directing the music. He would point out the cues to the different instruments, and he would actually do it *ahead* of the beat. It was really weird to watch him because he'd make a big arm movement and it would appear totally unrelated to anything, and then half a second later the horns come screaming in from his cue. For me, conducting like that would be impossible - there's this natural urge to sync your movements onto the beat, and fighting that to do them just ahead seems really difficult.

03-25-07 - 2

I've just found out the JIF peanut butter I love is full of transfats. They use that fucking trick where a serving size is really small, and they size it so a serving has 0.4 grams of saturated fat, and they're allowed to round down on the nutritional info and just put 0. What's worse is that they're allowed to say "0 grams of trans fats per serving!". This is how things like the Pam Oil Spray can say they are "fat free" even though they are 100% fat - there's "0 grams" (with rounding) per serving, so they are "fat free". Anyway I guess that means no more JIF, and I hate that nasty natural peanut crap so no more PB :(

03-25-07 - 1

An excellent trick to avoid parking tickets : when you get a ticket, save the envelope they put it in (or just save the ticket depending on how they do it in your area). Next time you park somewhere marginal, put the ticket on your car the way they would. Most ticket givers will see it and just drive past. Also for the cases where someone has to call to get you a ticket they often won't make the call if they see you already got a ticket.


03-23-07 - 3

Well, I guess I'm not finishing Baldur's Gate 2. I think the AD&D system becomes really retarded at high levels. Your party becomes so insanely powerful that any kind of normal enemies are trivial (normal = physical attacks & hit points). The only way to make enemies tough is to make them powerful casters, and make them resistant to various of your attacks, so it becomes this whole thing where you have to put up resistances to their attacks, then you cast debuffs to take down their resistances, they take down your resistances, you put them back up, they put theirs back up, you take them down again, it's so annoying. And of course once in a while in there they just disintegrate your main character and you have insta-non-raisable death. Fun fun. Also you have to die a few times to see what all kinds of powers they have so you can memorize exactly the right protections to ward yourself.

03-23-07 - 2

Some tricks for allergy suffers and nose cloggies like me :

1. The coffee steam. When you make your coffee or tea in the morning, leave the kettle boiling so tons of steam is coming out. Breathe this in through your nose repeatedly so you get a ton of moisture in your sinuses. Blow it out. This is like a light/easy version of the Neti Pot treatment, a good way to start the day.

2. The pluck. If you want your sinuses to instantly flush - pluck a nose hair. It's surprisingly painful and irritates the hell out of your nose, it'll give you a violent sneezing fit. Good to use after #1 so the mucus is loosened.

3. The breathe-right strip. Athletes use these, but most people don't know they're awesome just every day. When I have one on I feel like I'm breathing pure oxygen, it's unbelievable how much fresh air I'm getting, my head clears, it makes me realize that just about every minute of my life I'm suffering from mild oxygen deprivation which gives me headaches and makes me feel fuzzy.

03-23-07 - 1

How to balance on a (freewheel) bicycle :

One of the few ways that a fixed gear bicycle is superior to a freewheel is that it's far far easier to balance on the bike at a full stop (such as when you come to a light and have your toes clipped in). For one thing, you can roll back & forth which helps, but more importantly, you're constantly in tension between your feet and the movement of the tires, which is what allows you to balance. Inspired by this I got an idea for how to balance on a regular freewhile bike like mine so the fixies can't show me up.

The secret is : brake.

As you're coming in to a light to stop, you apply the brakes to slow down, and you should stand up. You will be standing to balance. Your two pedals should be at the same height, eg. horizontal to each other. Now, as you come to a stop - simply keep holding the brakes compressed, and apply forward pressure with your feet. You are now in a tense equilibrium - your feet are gently pushing forward in the pedals and your hands are holding the brakes which keeps the bike still. This is "The Balance". Once you have mastered The Balance you be able to simply hold here and keep the brakes fully held and be completely still.

When you are working on developing The Balance, you should let off the brakes gently so that you can inch forward very slowly. This makes it a lot easier to balance; if you like you can imagine that you're on a Segway - you have your weight to the front of the bike to hold the brakes, which makes you want to topple forward, you compensate that by allowing the base of the bike to slide forward to get under your falling weight and keep you balanced. When working on developing The Balance, you should stop 5-10 feet behind the crosswalk so you can allow yourself to inch forward very slowly while the light is red. Practice by trying to move as little as possible during the red. If you feel yourself losing your balance, let the bike go forward by releasing the brake, don't put your feet down.

This will be much easier with something like Power Grips - some kind of good toe clips; I can't do it without clips yet but I imagine it's possible. The reason you need to be in tension with the brakes on is so that you can use your leg muscles to move your body and support yourself in balance; it turns the pedals into fixed structures that translate your force to the ground. If you don't use the brake trick on a freewheel bicycle, the pedals will either just let you fall or make the bike move.


03-21-07 - 5

The Rosso Shiraz at TJ's for $6.99 is so ridiculously good for the price, you can't pass it up.

03-21-07 - 4

I have this hang-up where if a chocolate bar advertises its anti-oxidant benefits, I want to boycott it. I am NOT some fucking yuppy-pretend-hippy who is sucked in by your bullshit about sustainable agriculture and anti-oxidants and free radicals and such shit, your marketing is not going to work on me. I hate hate hate all these hipster/yuppy products where they basically take a totally standard product, usually reduce the quantity a lot, put it in a cute package and slap on some bio-mumbo-jumbo marketing words. The problem is that the quality of a lot of these products is actually pretty good, and I would enjoy them if I didn't see the packaging.

03-21-07 - 3

I'm starting to think that the so-called "Web 2.0" of user-created content is going to ruin the internet. In the early/middle age of the internet, content creation was restricted to geeks and corporations, a sort of Elite who were mostly smart and knew something about what they were talking about. The current push is for more and more democracy on the internet. Users create articles/reviews/blog-entries/etc. and other users review them and link them. Instead of hiring a team of writers and editorialists, sites these days create user communities and let the users create the content. In fact, the whole profession of reviewing & writing articles is disappearing. The most popular review sites, travel sites, etc. are user-content aggregators. Now, certainly there are some nice things about these sites. For one thing, they sort of automatically fix gaps - if some important piece of information was left out in the old model, it could go unfixed for a long time; in the democratic model there are so many people watching it that it gets fixed very quickly.

The big problem with this "democracy of content" is that people are retards. Say for example you want a recipe. If you just search google you will find recipes from the democracy. Often the top hits will be from places like "cooks.com" or "recipesource" etc. which are themselves user-contribution recipe sites. These recipes are then reviewed by other users. What you get is stuff like this for a top hit :


2 cans cream of mushroom soup
1 can tomato bisque soup
2/3 c. dry sherry
1 c. light cream
2 c. milk
1 (7 oz.) can lobster or crab with liquid (I use crab because lobster is so expensive; lobster tastes better)

Blend sherry, milk, and cream into soups in saucepan.
Add lobster/crab and heat gently, stirring often, until hot. 
Do not boil. Very good for lunch with green salad.

This is completely retarded. It's not a difference of taste, it's a problem that 90% of the people in this world are just fucking retarded, and when they get to run the democracy, the institution is ruined. It's not just recipes that have this problem, it's movie reviews, restaurant reviews, articles on politics, sports, etc. To find actually useful valuable content, you have to sift through tons of garbage to find the valuable stuff - and the valuable stuff comes from an old-media style content producer most of the time.

One example I've encountered is with upcoming events in San Francisco. There are tons and tons of sites that supposedly track and report on cool stuff happening, like upcoming.org, flavorpill, nitevibe, etc. When I got here I was excited to check them all out. Guess what, they're all pretty much just retarded crap. Some are user-maintained which makes them crap, and others are corporate but are just trying to make an easy internet buck and not doing good reporting. If you actually want to know about events your best bet is the old-world paper copy of a weekly newspaper.

Now, it's no so bad yet because the old media outlets are still around, but the trend is that they will die. For one thing, they have to actually pay a staff of writers who are knowledge about a topic, they actually review postings and fact check and all those things that the "Web 2.0" sites don't have to bother with. That's a lot of cost overhead and they can't produce nearly as much content. Furthermore, users prefer to go to the "Web 2.0" sites because they can join in the forum and talk about soap operas, make clever tag-lines and hook up for one night stands, become a respected figure in the forum community which boosts their ego, etc. etc. This will kill the old media sites and really fuck us for decent content.

Fortunately, the thing that can save "Web 2.0" is an idea that already exists - the Network of Trust of course. First of all you have to realize that just plain rating systems like Digg don't work, because the same retards that make the content are dominating the ratings. What you need is a system of ratings by people who you trust and/or people who have similar taste to you. This allows you to have a personalized search, personalized view of the internet where you can find the sane people, the good content. In the simplest form, it allows the old internet "Elite" - the nerds and old media - to create a sort of internet within the internet where they can find each other, but more generally there are a huge number of overlapping sub-nets.

ps. I hate the term "Web 2.0" so so much.

03-21-07 - 2

Some tax tips I've learned that weren't totally obvious to me : (mainly for independents or self-employed)

1. Health care deduction. Health insurance costs (literally your monthly payments for health insurance) are easily deductible. Your actual out of pocket health care costs are NOT deductible easily (unless they are huge, they have be greater than 10% of your income or something like that). This means that there's actually a big tax advantage to having a health plan with a higher cost and a lower deductible, even if that plan is not the optimal plan for you in a straight sense. I guess with the deduction you're getting a 30% discount or whatever on your dollars spent on the health care plan, so if you can spend another $1000 per year on the health care plan, you only need to reduce your expected deductible payouts by $700 to break even.

2. Estimated tax. If your tax is not being with-held you need to make estimated payments with 1040-ES. There are a lot of funny caveats with this. Basically it's not that bad to just not do it at all. The only penalty is you have to pay the interest they would have earned if they had your money, but presumably by keeping the money you made that interest, so you break even on that. The problem occurs if they think you *intentionally* didn't pay your estimated tax, in which case you're liable for fines and audit and all that. So if you make a good faith effort to estimate and pay your quarterly, it's not a big deal if it's too much or too little, you just fix it up at the end of the year.

3. Credit card for deductions. I hate keeping track of this stuff. The way to do it is really to just get a seperate credit card for "business expenses". The credit card companies want you to have cards all the time, so just get one, it's quick and easy, you use it for all your biz purchases and there you go - records.

4. Seperate home office. If you're working from home, try to get a setup with your "home office" as a separate room. eg. don't just use a corner of an existing room. This is pretty significant and should be a factor you consider when looking at apartments or choosing how to lay out your furniture. To be a legal/safe deduction the home office must be a separate room, so you should prefer apartments with a few small rooms rather than one large one, which is what I would normally prefer.

5. An "Enrolled Agent" is a tax specialist, a CPA is not. You should use an EA if you hire someone to do your taxes and you can find them here : NAEA

03-21-07 - 1

I'm having some super great beers right now, all in the 22 oz format.

Hop Henge (from Deschutes brewery, the prople who make the great Mirror Pond) is an IPA, a classic "hop bomb" and it doesn't disappoint with tons of hoppy bite and aroma. The thing that makes it special is it doesn't have too much of that hoppy bitterness, and has some nice fruity sweet notes to balance the bite. Goes well with my house-made spiced nuts.

Anderson Valley's Dubbel (aka "Brother David's Double") (from the folks who make the very nice Boont Amber) is a dark belgian ale, which is pretty rare in the US but very common in Belgium (I adore the dark Affligem but it's impossible to find here). It's got the yeasty fruity notes that you expect from a Belgian ale, but it has more malt and sweetness which makes it an extremely full sip, you definitely have to chew it and it doesn't need any food to complement it. The lingering taste is only sweetness, it's lacking some kind of depth. It reminds of a few nights I spent in Belgium; right after college I took the summer and backpacked around Europe in stereotypical fashion; I spend a few days in small towns in Belgium checking out Marc Chagall and learning the difference between the French and Flemish Belges, eating the most amazing Gauffres (waffles) in the world, and spending nights drinking this dark sweet high alcohol nectar of the gods in these great fun bars at picnic tables. It was one of the coolest hostels I stayed at, there were always fun people hanging out in the communal room and we'd meet up and go out for dinner and drinks. There was this hot American backpacker girl there who was just looking for fun and "experiences" but I was still in my "sex is for true love" phase so nothing happened.

I know there are tons of fancy beer review sites on the net, but I just can't dig their beer-snob culture yet. I love tasty beer but it's still just freaking beer.


03-19-07 - 3

We got some fresh Dungies last night (very end of the season, but they were huge, full of meat). Today I've been making a bisque from all the left over bits. It's the first time I've done this and I won't do it again. I've always told people making stocks at home is just not worth it, and this is even worse because the fishy crab bits are so stinky and you have to smash them up and skim them and you get bits of crab everywhere and it's a huge mess, and then there's straining and filtering and skimming and cheese cloth and omg so not worth it. Anyway, the resulting bisque is pretty nice.

I'll also probably never do crabs at home again. For one thing if I'm going to spend a fortune on some nice protein I'd much rather have a real good piece of beef or pork. For another thing, eating them is such a mess it's worth it to pay to do it at a restaurant. I used to really love crabs when I was a kid, I'd fly out to visit my grandma in Pennsylvania and we'd get Maryland Blue Crabs that were steamed and smothered in Old Bay. I think I just liked it because the eating is so fun, and I love that spicy Old Bay seasoning.

BTW my idea for a better crab bisque : reduce it so it's extra strong. Don't add the cognac and cream to finish like you normally would. Instead make a fluffy creme fraiche infused with chives and drop a dollop in the middle of the bisque, so it sort of starts to melt but stays semi-solid. Revision : that's retarded, the standard bisque method was delicious.

addendum : had bisque the night after with Salmon. I finally did the Salmon Jacques Pepin's slow cook way - you just toss it on a plate (with EVOO S&P) and stick the plate in a 200 degree oven for 45 minutes. The result is so soft and smooth and tender, perfectly rare, really probably the easiest way to make perfectly cooked fish.

03-19-07 - 2

Canada's Test the Nation is the best online IQ test I've seen, partly because it's got short time limits which make it actually pretty fun to take.

03-19-07 - 1

We went to see this movie "Into Great Silence" which is this like 3 hour long nearly-silent movie documenting the life inside an ascetic monestary. It's meant to be a sort of meditative ordeal to watch it; the film-maker repeats the same bits of text every so often, pauses the action intentionally with even slower scenes, every time you sort of start getting excited by a semi-narrative portion, he cuts it back to just stillness. Even the fact that it's 3 hours is part of the overall experience - at some point you start thinking "oh my god this is never going to end" - and then when you reach peace you just stop thinking about when it will end because the end if so far away. I think it was very masterfully done, and something you can't really experience without being in the dark uncomfortable torture chamber that is a movie theatre.


03-18-07 - 4

For a long time I've been looking for a page that has pictures + descriptions of all the Italian & other rare cold cuts. I haven't found one yet, but this is a decent cold cut glossary . Mmmm I love me some real Lebanon Bologna. If you're ever out in Lancaster County in the real country parts you can find these barns where they have tons of different varieties of it hanging up to age; I like it sweet and smokey.

03-18-07 - 3

PBS has somehow turned into pseudo-science infomercial central. There's show after show of these "authority" personalities speaking in these warm tones and constantly smiling and they just spout nonsense. Like if they pause a whole lot and smile and act like they're talking to children we assume that they must be right and we should pay attention. The original master of this is Deepak Chopra, but now we're bombarded with the idiocy of Suze Orman and Andrew Weil and that Morricone face guy and on and on. Most of them have little or no actual qualification to be experts and they generally embrace the health fad of the moment and give you platitudes and panaceas. Anyway, the things that's really disgusting is THIS IS FUCKING PBS!!! It's supposed to be the serious, quality, intellectual programming where we can actually hear some real hard science, some real journalism and investigation. So there are two disturbing possibilities - 1) PBS has become so watered down by the Republican dismantling of their content machine and the push for ratings that it is forced to resort to this crap, or 2) This is what American Intellectuals now consider quality informative programming.

ps. how did "Rick Steves" get to be such a prominent travel writer / TV tour host ? First of all, anyone with two first names is to be hated. Second of all, the man is such an unbelievable American dork - he wears fannie packs in this day & age, and he tries to "join in" with the locals and I don't think he even realizes they're laughing at him not laughing with him.

03-18-07 - 2

Recently watched movies reviewed. I hate any kind of spoiler in reviews so I write very vague reviews.

The Edukators - 4/5 - I got this because I'm a closet anti-capitalist and have dreams of creating real social change (and revenge) through anarchist action, so this is sort of vicarious-porn for me. The first half of the movie is satisfying enough in that way, but you start to get the feeling that it's just such trite obvious crap. But then the second act kicks in, and it's a huge shift. At this point you get the feeling that an American director would wrap things up and give us satisfaction with some violence and deaths, some major tragic acts. Instead it stays thoughtful and the characters all deal with their thoughts. A very nice movie in the end.

Mutual Appreciation - 4/5 - This is almost the movie you would make if you wanted to make a sarcastic stereotype of urban hipster cinema. And yet, despite that, I enjoyed it and it worked pretty well, partly because the acting is so simple and earnest, it feels like real people in a student film project and it sort of works.

The Story of Qiu Jiu - 2/5 - the Chinese version of "The Trial" but without the humor. So tedious and repetetive. The major redeeming thing about this movie is the slice of life into Chinese culture; most of the actors are not professionals, just real people, and the city scenes are real cities, not sets full of extras. Would've been a nice 15 minute short.

Swimming Pool - 3/5 - I'm still not sure what to think about this movie. On a totally superficial level, it has the beautiful slow direction of Ozon and the sexy body of Ludivine Sagnier half naked all the time and fucking everything that moves, so your attention is sort of engaged by that. On a secondary level, it seems to be a retread of the horribly cliched older British repressed woman (played by Charlotte Rampling who seems to be type-cast in that role) who travels south to the warmth of the Mediterranean where people live wild and free. Ozon does do a good job of threading an eerie premonition throughout the movie and a stillness which foreshadows the ending, but does a twist ending really redeem the fact that 99% of the movie is totally trite tittilation?

The Grifters - 1/5 - wow, what is the point of this movie? It's so broken on so many levels. It's hillarious to watch John Cusack switch randomly between doing his sort of standard self character, and then going into old-timey Grifty Mc. Grift hard-boiled pulp novel dialogue. The movie sets you up from the beginning expecting a big clever con; a whole complicated scenarios is layed out and Cusack's mentor tells him "never go for the big con; the greatest thrill for a grifter is to con another grifter, to beat him at his own game" - so we totally expect Cusack is going to screw up and go for the big grift, to grift another grifter. Then the Annette Bening character lays out the big con she used to be running. And then - none of it ever happens and we're totally disappointed. I can't believe it won all these awards, this movie is so awful and there is zero point to watching it. If you want to see a good con movie watch "House of Games" or "Nine Queens" instead.

Take My Eyes - 3.5/5 - decent movie about love and spousal abuse. It's somewhat broken because the husband is just made a bit too ridiculous and unlikable, and the little aside with his family that's supposed to make us sympathise with him doesnt' really work and is unnecessary. Fortunately it's Spanish so the scenery is beautiful, all the people are sexy, and that adds a lot.

Zorba The Greek - 2/5 - yikes. Yet another disappointment in my attempt to get through the classics. From the first frame of the movie you know this is the same story as "Swimming Pool" - repressed British/American visits the Mediterannean and blossoms in the emotional openness of the French/Italians/Greeks/Spanish. Okay, you accept that and just go along for the ride and try to enjoy it. But it just fails, and laughably so. Perhaps most disturbing, the Greeks are portrayed as savages, they hardly seem to speak at all, just cawing like crows and grunting, they're provincial, small-minded, afraid of technology, murderous, barbaric - it's shocking that this was written & directed by Greeks. Then our Englishman - he's just so completely wooden that you can't sympathise with him at all, and he never really transforms, even when he's thrust directly into love and violence, he just becomes despicable when he doesn't stand up for himself or his lover. Also the black and white really hurts here; if we actually could get some gorgeous color shots of the greek isles it might make this watchable, as is, not recommended.

The Awful Truth - 3/5 - this is sort of a classic Cary Grant screwball vehicle with lots of banter and quick comebacks and everything you want from one of these movies. But, it's really not very clever, a bit too screwball and not enough smart dialogue. If you want one of these types of movies I recommend "His Girl Friday" or "The Philadelphia Story" instead.

Uptown Saturday Night - 1/5 - this is a "classic" Bill Cosby / Sidney Poitier comedy, from what some consider the golden age of 70's swinging black comedy. Wow, it's bad. I sort of can't tell what parts of the movie are making fun of things and what parts are just so bad that they're funny. Poitier does a horrible horrible job of trying to act like a regular working class person, he really can only pull off the sophisticated well-spoken roles. Cosby is actually really great, but just seems awkward in the material and never really gets to shine. I can't believe they made a whole series of sequels.

The Perfect Crime - 4/5 - "El Crimen Ferpecto ? it's Perfecto with a P !" ; quite a delightful little caper movie, surreal and energetic. As usual with Spanish movies it's full of style, color, beautiful people, and lots of sex. We get the sort of surreal graphic over the top violence that's so fun, a deluded ridiculous protagonist who's so charming we go along with him, and throughout just lots of fun touches that keep us entertained, and the ending doesn't disappoint. It is very sexist, and I was a bit disturbed with the "ugly girl" character who's basically super hot and just sticking out her teeth. This movie reminds me of a thought I often have - I wonder to what extent Almodovar should really get credit for the "Almodovar Style" (which is flamboyant, surreal, sexy, colorful) and to what extent that's just Spanish. If he really did create that style, then almost every Spanish movie in the last 10-20 years has copied him.

03-18-07 - 1

My parents are pretty well off and not super cheap, but they were always thrifty, and somehow I got a very thrifty gene. Anyway, something that blows my mind and I just find disgusting is all these people who moan and sob about all the horrible debt they're in - but then they don't live cheaply. To me, "living well" is a treat that you earn by having money - it's not a necessity. If you're fucking broke, you live in a shack and you take the bus until you pay off your debt and then you can afford to move up. It seems that my attitude is a depression-era relic that's quite rare in America these days. Most of the people who declare bankruptcy are living in fancy houses, driving new cars - in fact they're buying the new cars after they already have a ton of debt racked up. I mean it's one thing when you have an income stream and are steadily paying off the debt, you don't need to live in total poverty. Anyway, it's the most disgusting when you're going to your friends and family for money. So many people, especially young ones, borrow and scrounge up money, and then they're buying clothes and going out to dinner and going to shows and they consider that just "living" ; no, that's not living, those are all optional expenses. You need to stop for a minute and look at the Chinese immigrant living a few blocks down the street from you - how does he spend his money?


03-17-07 - 2

City Data on 94110 is pretty amazing, though all the data is from the 2000 census which would normally be fine but we've had an insane housing boom in the last 6 years so all that data is crazy out of date.

It's interesting to compare to my old neighborhood in Austin . For one thing you can see the crazy college-dominated population in Austin and then they all leave. Also the rent spectrum in Austin is very sharp because it's market controlled, the rent spectrum in SF is a much broader histogram because of rent control.

Finally check out the neighborhood my mom used to live - Houston / Bellaire - you can actually see the population spike from the baby boom (I think that's what that is), and there's a huge dip at college age because everyone leaves the area to pursue their lives.

03-17-07 - 1

Some random fun links for you :

Projection Bombing ; temporary graffiti with a powerful digital projector

How to tie a Shoelace ; I had no idea I've been tying Granny Knots my whole life by tying the two knots in the same direction!! Clear evidence that knot theorists (me) don't tie good knots.

How to find mp3's with Google ; duh

Jackson Pollock painting applet ; also use space bar & click the mouse button.


03-15-07 - 2

Okay, so in case you don't know this C++/STL performance stuff I'll just list some random things you should be doing if you are expecting to use C++/STL and have it be fast. Once again, if you use C++/STL often you should read Alexandrescu, etc. and there are lots of good articles in CUJ, etc.

1. Use a custom allocator. The STL containers do lots of allocations (if you tell it to). Your app should already be using a customer allocator, like dlmalloc, but you still might want to turn on one of the node/pool allocators in the STL because things like map,list,etc. have a very reliable node style allocation pattern. You might also consider using arenas or the stack for temporary work. Just to be clear I'm not talking about the per-container allocator nonsense that the STL supports, I'm talking about changing the overall allocator in the STL which is a non-standard thing but pretty easy. In STLport this is in _site_config.h and _alloc.h

1.B. Most STL implementations come with some replacement allocators you can turn on. Also, most STL implementations are by default exception-safe and thread-safe. That requires some overhead, and if you don't care about that you can turn it off. There's usually a config.h for your STL implementation and you can go in there and hammer on the options to make it more performant. I like to disable iostreams and other things I don't use to speed up my compile. In STLport this is in stl_user_config.h and there's some more in _site_config.h

2. Don't use vector<> like an array. vector is a heavy thing that stores an ordered list. It shouldn't be what you pass around in function arguments - functions should take iterators, or just raw pointers. That allows the client code to just use a regular C array, or some kid of templated fixed-size array<> , or a stack array, etc. If you're going to use vector like an array, then go ahead and construct it to a set size using vector x(5); or whatever. A lot of game developers over-use vector because they think it's light-weight and efficient (it's not), so we'll do more points on :

3. vector<> can be really inefficient. When vector has to realloc it has to destruct all the originals and construct new copies, which can be really bad if the contained things do allocations. Most of the other containers don't have this flaw, so don't use vector<> on things that allocate. Or, make sure you reserve enough space so it doesnt have to realloc. People often write really bad code for building lists where they just start a vector and keep pushing onto it. vector<> also doubles when it has to grow which can be really dumb in some cases for games. A lot of people in games use vector<> when they're really just going to be adding things in one spot and never again, well vector's very heavy for that and the memory used could be close to 2X as much as actually necessary.

4. A pointer is a type of iterator, so all the cool algorithms that work on iterators work on pointers. So you can just use flat C arrays and still use the STL. In particular if you have a sorted array, you can use binary_search and such to do logN lookups and you don't need to bother with a map<> or whatever.

5. The string in the STL will do a ton of allocs, especially if you do something evil like vector< string >. If you're going to use strings much you really want a COW ref-counted string which will allows you to do things like sorting without a ton of allocs. BTW I personally still use COW strings in threaded apps & use the STL in non-threaded support mode in threaded apps. All communication between threads I do either with primitive types only or with manual protection. This is just because I'm a major threading paranoid lunatic and like to keep my threading as simple and contained as possible.

6. Override the std::swap and std::hash when appropriate. The STL algorithms for sorting and insertion and such make use of swap() to avoid allocs. The default swap() uses a temporary which is very evil if your object does allocs. Say for example you have a simple Buffer class which owns an m_ptr. The standard swap() will duplicate it, assign it, delete the temporary. You should replace it with a swap that just swaps the internal pointer. This is a huge performance issue if you ever try to sort or insert in a list of these things. Similarly for the non-standard hash_map , if you want to key your hash_map on anything other than an int it might do something very stupid unless you define your own hash() function which does something reasonable. (and even if you're just keying on an int, if you know the range the int takes you should use that info to define an optimal hash) (BTW see also Google's SparseHash and Super Fast Hash )

7. The STL containers and algorithms are very well implemented for the constraints that they are designed for, but if you don't care about those constrains you can obviously do better. Don't bother trying to replace them with some other totally generic container, but if you're doing something that doesn't match their constraints then by all means write your own thing. For example you might want some kind of container where you don't really care how long it takes to build but you want the lookups to be as fast as possible, well then you can easily beat the STL because their containers all limit insertion time.

8. If you're paranoid about performance like me, make all your constructors "explicit" so you don't get any implicit temporaries. (IMHO this is a good style thing to do regardless of performance, but the performance nazis also like it because it means there're no hidden constructors happening so they can sleep at night).

9. The return-value-optimization only happens when the function is inlined, so for functions where performance is important, either don't return by value, or use __forceinline and/or make sure the function is very simple. This goes for constructors as well. Also try to use the initializer list in constructors as much as possible, because it eliminates temporary initialization of those variables which may be expensive (eg. don't let things just default construct and then fix them in the code of your constructor). (BTW LTCG sort of makes this go away if you trust it to take care of all sorts of magic for you, but I prefer to not trust it and then if it can make things even better then that's awesome).

BTW , Won made an interesting reply and I made some revisions. He pointed me to this VList thing which is sort of interesting.

03-15-07 - 1

Ok I'm going to link to this game : Perfect Pitch because this is type of total ball-licking shit game that people keep sending me. It's a horrible crappy unplayable remake of Quix. All these fucking Java games have just awful stutters and latency that makes them so sick bad, and yet people play them, they're so much worse than the original game from fucking 1980 or whatever and yet people play them. WTF is wrong with you fucking game makes and the fucking population who plays this garbage !? ARG. ** ANGRY FACE **


03-14-07 - 2

I almost had a life plan worked out and then I realized it was broken. I was thinking I could make a little more money and then retire to the mountains somewhere really cheap. You can buy a tiny cabin for like $200k, and then I would just eliminate all expenses, try to get some little part time job to be able to buy food, and just hike and fish and stuff and be a mountain man. Doing that alone would get boring, but with a woman I loved it could be real nice. The problem with the plan is that surely we would want to have kids, and kids are expensive as hell and break the whole living cheap model where I have crappy health insurance and all that.

03-14-07 - 1

In some circles in game development I've become the "C++ advocate guy". That's really weird to me, because in my past life pre-games I was the anti-C++ guy. Way back in the day at Contemporary Tech and Data General and then Eclipse I was the guy who really liked low level C, getting in the nitty gritty, and C++ was scary and evil. Over the years I evolved into the "C++ is okay, but only in very limited use" then I became the "C++ is cool, but templates and multiple inheritance are evil" , and now I'm the "C++ is all good" guy. In hindsight I see that at each point my view was not based on logic, but just on what I was familiar with. When I was totally anti C++ it was really because I didn't know C++ at all, and I didn't want to go from being a bad-ass C coder to being a crappy C++ coder. Then as I learned it more, my aversion was based on working with bad C++ coders and working in bad C++ code bases where complex features had been used badly and turned into a mess. I saw that ugly mess and the problems with them and didn't really understand the systems and just wrote those features off as evil without really understanding them. I still think that many of the C++ features are scary and need to be controlled carefully in the development environment (it's sort of like the D&D wizard spell Gate - you can invoke great power, but if you're not Protected from Evil that power can turn against you). Compared to a full C++ embracer (a beast which does not exist in game development, but there are many of them out in the large business applications world) I'm still a low-levelist and scaredy-cat.

Unfortunately, some of the things that make the overheads of C++ almost free on a modern processor (large caches, out of order execution, complex load-store units) have already disappeared from current consoles and may be disappearing on future PC's. That blows.

Anyway, this thought process makes me doubt the common assertions like "Perl code is an unmaintainable mess". Yeah, maybe, but I believe that largely because the Perl code I've seen is an unmaintanable mess. Maybe I've just seen bad perl code? I've certainly never tried to write a large clean app in Perl, so maybe you totally could and it would be fine if you had a strong style guide, etc. The same thing goes for contentions like "X language is too slow" - is it really, or is it just a matter of newbs not knowing how to write fast code in that language? (I guess the best way to compare language speed is to look at those contents where people write speedy algs in different langs).


03-13-07 - 1

I biked over the Golden Gate Bridge last weekend for the first time. When I first got out on it I was absolutely terrified. I'm afraid of heights, not mentally, but in the real physical vertigo way; I get nauseus and dizzy, my eyes keep focusing deep & shallow, the height gets heigher and heigher but at the same time feels very close and I feel drawn towards it. In the mean time I'm trying to bike and not run into anyone in the massive jam of bike traffic. Then another fear kicked in - I could just jump right off the side, maybe just ram my bike into the railing and let my body fly over from the momentum. This suicide fantasy is very common and nothing new for me, but it felt very real on the bridge (and the addition of the vertigo didn't help).


03-12-07 - 4

Iron Chef epitomizes everything that's wrong with the world. These super-talented passionate chefs slave away to make this amazing food, and then they get judged by these total retards that we have to listen to pontificating about their uneducated palates.

03-12-07 - 3

I'm having a sort of email exchange about C++/STL and it's making me really depressed. It reminds me that you basically can't have a useful discussion with anyone ever about something involving opinion. You can talk to people you already agree with. You can talk to people who worship you (or who you worship). You can not talk to someone who disagrees with you and is "strong" in not being influenced by your relationship. Usually they will intentionally hold their ground so as to not "give in". The most common example of course is politics. It's so common that it seems germane, but if you stop and think about it, the idea that a political analyst has a pre-set position is absurd. The job of a good policy mind should be to evaluate the situation and talk to various experts and formulate the best response. Instead, an expert on policy approaches problems from the stand point of using their pre-determined dogma on the problem. Most/all programmers (and humans) are the same way. They don't go into a situation with an open mind, rather they go in with their pre-set way of doing things and find how to solve the problem using that way. Mostly this is a perfectly fine way to work (for example, if you don't want to ever use the STL, that's fine), but it makes it impossible to talk to people about the actual pros & cons of doing something. Every time I think I should get back into the business, something like this happens and it reminds me how much I hate all the little foibles of human interaction, and I stay out.

(I'm not implying that I don't have these human flaws, in fact I probably have them more than usual, but I try to fight them as much as possible)

Another thing keeps happening recently where I do some minor thing which I slights a friend and they hold it against me as some major transgression. I sort of don't care any more so I just roll my eyes and say "whatever" and might never interact with them again pleasantly.

On second thought, the more depressing thing about the exchange is what a jerk I am and what a bad communicator.

03-12-07 - 2

It was gorgeous today so we thought we'd try cruising over to Golden Gate Park and ride around. Bad idea, as soon as you crest the ridge (the spine across the back of SF) it's Fog City, cold and windy. Fortunately we were headed to eat too, so we crossed the park and down to Irving Street, which is like a more Vietnamese version of Clement St. - the places where the real heart of the asian people actually live. We hit up Loi's for some Bun Cha Ha Noi and other tasties. The pork meat balls are delicious, tender, soaked in fish sauce and charred. Rode back very slowly and very full through the park. Man it's a gorgeous huge park, too bad it's always freaking England over there.

03-12-07 - 1

The thought process of an indie musician : "Hey this nice little guitar and piano thing we have going is really nice, but it's missing something; oh, I know, let's lay down like 5 minutes of crashing distortion and pure noise, then transition into a droning monotone chant that we repeat over and over." Brilliant!


03-10-07 - 1

It's pretty sweet that a Gallon is 16 cups, because that means a Quart can be thought of as a quarter of a gallon or a quartet of cups (or quatro cups or quatre cups if you prefer).


03-08-07 - 4

It's really hard to hate things that are beautiful. It's obvious for people, they're beguiling, but my car keeps doing it to me. Bastard car, I want to sell it, parking here is so awful, it's dumb to have a car. But then I see it parked outside with the lines of reflection arcing across its shiny silver surfaces, and I say "oh baby, I'm so sorry, forgive me, take me back, I want you so bad".

It's interesting to me the way SF has all these micro-communities that feel like small towns. NY or any other big city has them too I guess, but NY is so big that each area is like a city. SF the city is actually pretty small, so each neighborhood is more like a small town, where you can get to know all the shop-keeps, not just on your block but in the whole neighborhood. The 'hoods tend to hate each other, and travelling to another 'hood is like taking a day trip, you pack a lunch and wear your travel clothes and you laugh at how different the people are in this strange other town (that's 1 mile from your home).

03-08-07 - 3

We went to see Steve's band "8 bit Idiots" at Thee Parkside last night. It was totally rockin', I would highly recommend them even if you don't know anyone in the band. They're good simple punk rock, definitely some Pixies influence, the band is pretty tight but sloppy enough to be punk, and Steve rocks out like a true punk god. He's definitely reminiscent of Henry Rollins with his barrel chested frame and tattoos and jumping around breaking mic stands. Thee Parkside is also a great little bar for a punk show like that, nice and divey, with lots of easy parking and a cool big patio.

03-08-07 - 2

I got Power Grips for my bike a while ago. They're totally awesome, I recommend them. They're way better than the old fashioned toe clips + straps. It's very easy to get in & out of them and they hold your feet in well. Not a replacement for real clipless pedals, but great for around town riding.

03-08-07 - 1

The "Game Tech" meeting at GDC was always one of the highlights of my year as a game developer. I got to sit in this year as an uninformed ear so I could see what was going on, and it was as fun as ever. I still love thinking about the challenges and technology and what you can do and the best ways to handle development, but thinking about the reality of building a big modern game, especially for the future multi-core systems, just seems like such a nightmare.


03-05-07 - 1

Followup on my AComdata 509 HDEXXU2FE3 external enclosure : still happy with this thing, though customer service is non existant. I'm annoyed that I can't control it's spin-down timeout at all. The spin-down is a cool feature for a backup type drive that you rarely use, HOWEVER it has a major flaw. When your system goes to sleep the drive has to spin up to make sure it's flushed (dumb), then it spins down again. I have my system sleep after 20 minutes idle, but the damn drive seems to sleep after about 10 minutes, so first I hear the drive spin down, then 10 minutes late I hear it spin up again and then the whole kit spins down. The drive is really quiet except for the spin-up/down which is what is so annoying.

I've also read some weird stuff on drives. In the old days I'd always heard that the spin up/down was the most dangerous time for a drive, that just having it on and spinning wasn't very bad for it. Now recently I've read that the main thing that makes drives fail is just their total spinning time, so spinning up & down all the time will actually make a drive last longer. That's a direct contradiction with the common wisdom that I'd always gone by.


03-02-07 - 1

Popping up "are you sure you want to exit?" boxes all the time doesn't help at all, because people just learn to quickly click it or hit enter to get past it. What's much worse & a cardinal sin is if you sometimes pop up boxes with a different meaning or default action, "file changed on disk, do you wish to load the saved version?" , so you quickly tap enter like usual and suddenly you lost your work.


03-01-07 - 2

A lot of Republicans seem to think Cheney is very admirable, very smart, with firm convictions and America's best interests at heart. That certainly isn't obvious. He's been the puppet-master to many of this administration's worst decisions - the energy policy which is basically "more money to private industry and no substantive steps to improve our situation" , the attack on Iraq, the depowerment of the CIA, the undermining of Powell & attacks on other major figures who tried to right the ship. What's stranger, publicly he has taken on the role of just an insane booster. His role in news interviews is just to take any event and claim it's actually a good thing that validates the administration policies, and he has no problem completely lying and contradicting himself in doing so. Obviously this is just a performance and he doesn't actually believe the things he's saying in interviews, but it's a very strange public role to take.

03-01-07 - 1

The attitude towards hipocrisy in this country is retarded. It's gotten to the point where pure evil-doing is shrugged off, but if you're a hypocrite about it, zomg we've lost all respect for you. Someone could have a public stance that they like to eat babies and they think babies are delicious. The public says "meh". Then we find out that they actually have babies at home that they love and don't eat. ZOMG what a hypocrite! Someone who sticks to their guns with pure insane/evil views will actually be loved by some portion of the populace, but someone who is a strong advocate for good but waffles on some minor details will be cast aside.

old rants