12-18-09 - The ACM

There's a bunch of hubbub lately in the game/graphics community about the anti-scientific actions of the ACM.

I find it all much ado about nothing. Of *course* the ACM is a bunch of cocks that are against scientific progress and dissemination of information. Ooo the group of evil bastards who claim all the rights to the paper that you yourself wrote are being dicks !? Well big fucking surprise. Woop-tee-do.

Everyone should boycott the ACM and the IEEE. Duh. The paper publications have absolutely zero purpose now. The conferences have almost no purpose, it's just a bunch of hob-nobbing and back-slapping. The internet is how real information is conveyed. I'm not quite sure why people are so enamored of conferences. I can get way more information in 10 minutes reading papers on the internet than you can get from a 4 day conference, because I am pulling the information I want at the pace that I want, not having it pushed to me.

Now, peer review and collection of papers does in fact provide a service. You don't just want researchers putting up papers on their own web sites with no organization and no peer review. (for example, Arxiv is great and all, but the lack of organization and peer review makes it weak as a primary publishing location).

If you actually cared about getting away from the evil iron grip of the ACM and IEEE bastards, you should work harder to organize and promote the free online journals, of which there are many, but they haven't caught on because the majority of major researchers are smitten by the prestige of the ACM/IEEE names.

Go to DOAJ , pick a journal, support that. Or you know, start a new one focused on higher performance / realtime computer graphics.


12-17-09 - Economics

In the spirit of not just railing against "the system" but trying to maximize within it, let's talk about money.

It seems abundantly clear now that nothing substantial is going to be done about health care at all. This is very bad for most Americans (good for the few who were being denied coverage but will now get it). It's mainly good for the health care industry. It appears health care will continue it's super-GDP growth rate. It seems obvious for me that there are two consequences of that we should care about : 1. Health care stocks will outperform the rest of the market, and 2. the US economy in general (& mainly any industry involving labor) will underperform the world.

(BTW I've seen a lot of blame making within the Democrats about who's to blame for the health care failure - Lieberman is certainly a cock, but the blame is absolutely clear : the Republican block who seem to be intent on fucking up this country)

Similarly, it is now clear that absolutely nothing substantial will be done to reform the financial sector. I find it particularly hillarious the way Obama stands up and tries to brow-beat bankers into "doing more for America". LOL. First of all, we saved those banks, we should just make them do whatever the fuck we want them to do if you had any guts. Second of all, pumping money into the economy is not how you fix it, that's how you make a new bubble. Third, of course the public chastisement is not going to create any real change, all it's going to do is create some empty gestures that look good; laws and regulations are how you really change things.

Anyhoo, again we should think about how we can play this. We should be somewhat optimistic on financial stocks. We should be highly concerned that we are moving into another bubble and crash cycle right now. We should be scared of the value of the dollar.

Randomly I was thinking to myself - who do I actually trust/respect on economics? And the one that came to mind was Paul Volcker ; he's the only Fed Chairman I know of to actually be fiscally realistic and responsible. Anyway, some random searching of him confirms that he is in fact saying good things (and by that I mean saying the same thing as me) :

volcker 1
volcker 2
Sitglitz 1
Sitglitz 2
Sitglitz 3

12-17-09 - Spam Stupidity

A friend send me this email a few days ago, and Gmail wisely decided it was Spam :

"You work on a 64 bit PC at Rad, right? Did you have any weird issues with any dev software? Was it a relatively painless switch?"

This is one of the most obvious examples yet that I've gotten which is just completely retarded.

I've written before about how they should clearly have an exclusion for people who I have extensively emailed with in the past. WTF. (one of the most retarded examples that I've mentioned previously was randomly picking a few mails out of an ongoing thread and calling them spam, but not the others in the same thread)

Clearly another one should be : if there are no links in the email, then greatly decrease the spam decision threshold (eg. call fewer things spam). Only spam with links are dangerous, and it's very rare to get spam without links these days anyway.

Also if there's no mention of banks, money, credit, penises, or viagra, it's probably not spam.

Obviously their spam filter is just broken. But even aside from being broken, I'm sure it's missing the concept of cost/benefit. That is, for a given mail, you need to decide how bad it would be to misclassify it as spam when it's not spam, and vice-versa. The thing is, that cost is not a constant. It should be dependent on the content and the sender. There are some simple cases, like if the content is "harmless" - no links, no attachments, no mention of Nigeria - then the cost of letting through spam is not very high. Once you guess the cost of each outcome, then you can have your Bayesian spam system give you a guess of what % chance this is spam, and you evaluate the EV of each classification and make the maximum EV decision.


12-16-09 - Ride Sharing

These things are inherently obvious to the most casual observer.

When someone with a car gives you a ride somewhere you want to go, you should not offer to pay half the gas, you should offer to pay *all* the gas. They are providing the vehicle usage, the depreciation due to mileage accrued, the pro-rated maintenance costs, the insurance, the registration, etc. Those fees easily match the price of the gas, plus they are doing you a favor since you don't have the car on your own. You should offer to pay all the gas and be happy about it. I don't think I've ever in my life seen other people do this correctly. Often the passenger makes no offer at all because they think "you were going there anyway, I don't add any cost". If they're polite they will offer to split the expenses somehow. No.

Asking someone to drive you to the airport is very rude and completely inappropriate. A taxi is very cheap and convenient, or there are plenty of other means. Getting someone to drive you takes at least an hour of their time, which costs $100-$200 or more. But that's the least of it. It ties them into doing something for you at an exact hour, which has an even greater hidden time cost because they can't do anything that will intersect that time period. Plus, if your flight is delayed or something, then their appointment is delayed, which ties them into all the annoyance and vagaries of your flight. Furthermore, if you fuck up and make yourself late or schedule it wrong or something, they inheret all your stress from that. It's an absolutely massive thing to ask of someone. It's pretty inappropriate even if you're completely broke. If you are broke and need a ride to the airport, the more considerate thing would be to ask a rich friend for cab fare (though the rich friend is probably too damn stupid to realize you're doing them a favor and agree).

When cars "let someone in" who's trying to merge or turn in or something, they think they're being so nice, they feel all fucking considerate and superior. Not so, it highly depends on the situation. In general by doing that you are making a decision whether to inconvenience the person who wants to get in, or the person behind you. First of all it's pretty fucking egotistical to decide that you are the person who gets to decide whether the person behind you or the person trying to merge gets your favor. Secondly, more often than not, you should favor the person behind you. For example, if you are on a major arterial and there are lots of cars behind you and some guy is trying to pull in, you should NOT let him in, because doing so severely slows the flow for many people behind you. The utility of each action is multiplied by the number of people affected. Obviously there are cases where you should let someone in, like if they've done a dumb thing and got themselves stuck where they're blocking traffic going the other way; in that case not letting them in is a huge dick move. Like most things in life, the correct action is dictated by consideration of the alternatives and how they affect various people, which is what people never do.

On a related note, this is somewhat more interesting of a topic, I think it's a bad idea to help the traffic flow of people who choose to take a very high congestion route. Let's say there's a certain commute pattern in a city that has very high congestion. In order to reduce it, the city makes it easier for those people to fan out onto alternate routes to commute (by providing travel time information for detours, or doing a little bit of through street connection). This reduces their commute time and most people are happy. I contend that this is a bad thing. You have hurt the traffic flow of the people who were on those alternate routes and avoiding the bad commute path. I contend that you actually want the bad pattern to be very painful, because it encourages people to not do it. Similarly you want the good patterns to be as pleasant as possible, because those people should be rewarded for avoiding the bad pattern. Traffic has a sort of self-regulating property where if you reduce it, more people drive and it gets back to equal badness again. I contend you generally don't want to do anything for it, and especially you don't want to spread it out onto alternate routes. The thing I'd like to see more is bypasses and better local routes so that people who are avoiding the bad traffic paths aren't affected by them.

12-16-09 - Belle de Jour

I've been somewhat amused by the Belle de Jour story at The Daily Mail or Times Online

A few things strike me. One is that pretty, intelligent girls seem to be very stupid about using their body for money. First of all, it's clear that these girls have no problem using their body for money, that's what they're doing. So, how should you do that to maximize money with minimal risk and bad consequences? There are many better ways than being a prostitute, which has a large number of negative consequences (risk of murder/abuse, risk of disease, risk of reputation destruction, risk of ruining relationships current & future, risk of messing yourself up psychologically, risk of stalkers / pimps that won't let you quit, etc. etc.). Probably the best way is just to marry rich. Barring that, even just dating rich can be very lucrative. You can make massive amounts of money just cocktail waitressing in the right place, and even more stripping. One problem for Belle of course is that she's not actually very attractive, so she can't get the top stripper dollars that you get in places like Vegas. Of course with a little savvy you can still make decent money on the internet, especially if you have some personality and create a character that people want to follow and you're not just a body; then you can make money from premium cam subscriptions, but perhaps even more so from merchandising and advertising connections.

It always kind of amazes me how little money these girls are willing to do things for. It's such a negative potentially life-damaging move, that you should only accept that if the reward was life changing money, like at least $10k (or more if your life prospects are good). But it's not even close, it's less than $100 for most girls (apparently Belle got a few hundo).

Most disappointingly, the actual blog is just really boring. It's mostly high-fallutin' self-indulgent "observations" and gossip. Not nearly enough real gritty factual story telling of encounters. And the stories of her personal relationships seem to indicate she's just very selfish and manipulative and not nice to men, which makes it all much less interesting.

I think maybe I wrote this before (?) but I had an idea a long time ago to start a Hot Chick Hedge Fund. It's really tragic (from an economic point of view) that there are really hot chicks in places like eastern europe that are not using their hotness for maximum profit. They're doing things like turning tricks for $10 or doing small-market porn. Now, they aren't money machines as is, they aren't ready for the US market. But you could take them, teach them better english, and more importantly teach them a bit of class, how to dress, hot to put on make up, how to flirt and talk to men, etc. Now they're money making machines, they could cocktail in vegas, strip, or just try to marry rich. The Hot Chick Hedge Fund spends a few thousand on each girl and in exchange gets 10% of earning for 10 years or something. It's win-win. Hot chicks are just a physical resource exactly like oil or gold, financial utility is made by transporting them to the market that has the highest prices. This is really basic capitalism.

11-29-09 - 7 Habits of Highly Retarded People

1. Being annoyed when you say something they "already know". Smart/effective people don't care when you say something they already know. They understand that you're just trying to establish the agreed basis to make the next step. Logical/effective people discuss and learn by establishing firm agreed upon tenets and then going through a series of logical conclusions. Retarded people get all annoyed when you say something obvious cuz they think you're calling them dumb.

2. Saying they "get it" when they don't. This is a huge annoyance that I struggled with when I was a teacher. Smart people will listen and then tell you "hmm I don't get that, how does this follow from this?". Retarded people are really eager to show how smart they are so they want to say "ok, I get it" as quickly as possible, but they'll say it in a really uncertain way that's obvious they don't get it. And then if you ask what part they don't get, they'll say "all of it".

3. Believing they are "too dumb" to do something. Maybe they are dumb, but that's almost never actually the problem. It's almost always laziness. Being dumb doesn't make most things impossible, it just makes them harder. This usually comes after you try to explain something for a while and then they get frustrated and give up and say "ugh, I'm just too dumb for this" (which is also an annoying plea to be told "no you're not too dumb"). In reality they are too lazy and not willing to put in the hard mental work to do it. Smart people know that some things are hard and don't come easily and you have to work at it for a while, and if you aren't getting it, it's usually because you aren't working enough, not because you're too dumb.

4. Thinking they're doing a bad job because they're "too good" for their current position. Every McDonalds cashier thinks they could be head of corporate marketing if someone would just give them a chance. Yes, they suck as a cashier and are totally irresponsible and don't come to work on time and don't take any initiative, but that's just because they're "too good" to be a good cashier. Of course this is just fantasy and self-sabotage.

5. Believing that "the system" is somehow to blame for their lack of success. Most of the underemployed believe that there are phantom hands somehow holding them down, or that society should somehow be different in a way that would benefit them. The reality of the world will always be that a minority get the spoils, and you can either earn your way into that minority or not.

6. Believing there will actually be 7 items when the title says so.


12-15-09 - Gifts

I've always struggled with buying gifts for people, and particularly for girls. Obviously buying gifts for little kids is easy and fun, because they have no money and aren't picky, and also because their parents buy them all the essentials in life, so you can buy them just frivolous things. Also I love that little kids don't get all the pressure and obligations of adult gift giving, and I despise it when the parents force them on the kid. I love it when you see a little kid gets a sweater for christmas or something and the kid is like "aww I wanted power rangers" and the mom is like "now say thank you". Fuck that, don't say thank you, it's a shitty gift for a kid, be honest.

I love getting gifts myself, but I almost never actually like the *object* that the gift is. I don't like decorative objects cluttering my spaces, I don't like electronics or gadgets, I don't like unnecessary kitchen tools. 99% of the time if I actually wanted some item, I would have bought it for myself already. But I still love gifts that show the intent of the gift-giver, something that shows time and thought. I can cherish the gift and then immediately throw the object in the trash, that doesn't diminish the value of the gift.

The thing that makes me feel so awkward giving gifts is the impression that the actual object has to be treasured. I hate it when you buy someone something, and then they feel like they have to use it all the time when you're around to show how much they appreciate it. Fuck that, just do what you want, the usefulness of the object is not the point.

In the past I've generally bought major items for girls that they need, functional objects, often very valuable ones, but functional objects like bicycles, laptops, cameras, furniture, etc. are not what they really want, especially not from their lover, they're disappointed, and it's a missed opportunity for wooing. They want stereotypical girly gifts like jewelry, dresses, all that shit, but I just can't bring myself to buy that shit because A) my taste in it sucks so I'm sure to buy bad things, and B) it's just such an overpriced ripoff that I'm opposed to that entire market segment and don't want to support it. Back when I was young I used to buy girls expensive jewelry and dresses and whatnot, and they would wear them for me even though they sucked, and I just felt mortified, so embarassed for the both of us.

While I'm on the topic, gift certificates are absolutely disgusting. You embarass yourself and everyone involved when you buy a gift certificate. For one thing, it shows you really don't care about the person at all, it's such an obligatory gift. In fact it's often just a punishment to the person because it forces them to go out to some store they didn't really want to go to. It's also just offensive in a capitalistic market sense because they are a pure destruction of utility. They take money and turn it into something less valuable. You don't just give cash to someone because it's crass and thoughtless, but really a gift certificate is much more crass and much more thoughtless.

You can't ever buy anyone clothes, even if you have great taste clothing is all about the fit on the person. Back when I was young, I bought girls lingerie; that's a big mistake too. It sounds like a good idea, it sounds sexy and romantic, you buy them lingerie, they put it on for you, and then it fits weird and you both feel awkard and embarassed, you're trying to pretend that they look great but you can't stop thinking about how the fabric is pinching or bunching all wrong.


12-11-09 - Egged

My house was egged last night. Or I should say my front door was egged as that appears to be the only spot hit.

It's perplexing because it feels like it was a targetted strike, not random kids being hooligans. I did a little walk around the neighborhood and I didn't see any other egged houses; if it was random kids I would have expected to see a whole dozen eggs used up in a spree down the street.

Also my house has a big fence in front of it with a gate you have to open. There's no way you could hit the front door over the fence, somebody specifically opened the gate and came in and threw the egg. That's not the kind of thing random kids on a spree do, they go for the easiest targets.

So now I'm trying to puzzle out who has a grudge against me that would do this (and knows my address). All I can think of is Old Lady Who Ran Into Me. Maybe that's how you settled scores back in the 50's.

The funny thing is this is exactly the kind of thing I often think about doing to people who have wronged me (like landlords, neighbors, and so on). I wish the person had left a note.


12-10-09 - Hate mail

Gmail spam woes continue :

Gmail classifies my own outgoing mail that gets a failure notice as spam. Urg.

Gmail classifies mails that are autogenerated by Google Groups as spam (signups / failures /etc). Good job.

A hate letter :

Dear Toyota Avalon rental car,

I hate you. I hate you when you beep when I unlock the doors, when you beep when I don't put on my seat belt. I hate your automatic headlights and automatic dash lights, that adjust too late and then stay on too long every time I drive through a tunnel. I hate that you're huge and slow and floaty, I hate that you feel like an old American car. I hate that even though you have no acceleration, you will happily spin the front tires, making it even harder to pull out into traffic. I hate that you have fucking push button up/down for temperature and such, which forces me to look at a digital screen to tell what I'm doing; god knows I don't need my eyes on the road. I hate that your volume knob is one of those fake digital knobs that just spins and gives me no tactile feedback on position.


12-09-09 - Possessions

I take very good care of my possessions. I used to be quite destructive of things because I don't like constraints, but I quickly learned that if you're not careful, your shit is in bad shape all the time and doesn't work as well. There's often actually a very big difference between the function of something that's cared for and something that's not. So I make sure my chef's knives never go in the dishwasher or touch other metal or ceramic, I clean and dry my camelback and water bottles every time after use so they never gets funky flavors, I never let any clothing or sponge or towel sit and be wet because that odor never washes out, I rotate my tires and get my oil changes. I lube and clean my bikes and never leave them out in the rain. The amount of labor time and love put into these items far exceeds their value in most cases.

That's all well and good, but someone external can come along and nullify years of work in an instant. It could be an old lady smashing up your well maintained car, or it could be a friend who comes over and chops on a plate with your knife. I enjoy taking care of my things, but it does put me in a bit of a quandary with guests. I find that almost everyone else in the world is so ignorant and/or careless about treating things well that I certainly can't trust them to not mess things up. So I can either be a dick and forbid them use, or I can be a dick and give them a bunch of instructions for how to use it right, or I can be a dick and not say anything but hover over them and wince. This always causes a lot of problems in my relationships.

Anyway it looks like the Prelude might be "totalled" which would be the best possible outcome I guess. I've started glancing at new cars again. I thought maybe I could get a 370Z used now for a decent price. WTF, people are listing the used cars for more than I know I could get a new car for. (for those that don't know, Nissan has standardized "VPP" (vehicle purchase program) pricing that's very low, about $2000 below MSRP, with no negotiation bullshit). I'm seeing used cars for 2000 - 5000 miles listed at right around MSRP. That's *used* for MSRP. WTF, does anybody pay these prices!?


12-07-09 - Out of Commission

I got in a car accident on Saturday. N and I were driving to buy board games and look at the Olympics from the shore when Old Lady ran a red light and smashed into the passenger side of the car full speed.

We were stopped at a red light at an intersection, our light went green. The other car in the lane to the left of me took off, and then I more slowly went into the intersection. Just then I noticed a car to my right coming down the street at me awfully fast. This was the worst moment of the whole thing - for about one whole second there I realized that the car coming at us was not stopping, and there was nothing I could do about it. I think I said "whoah" or something which N heard. I had enough time to think "should I brake or accelerate?" and then *BAM* it smacked into us, right into the side of N's door.

We were pushed sideways into the car in the left lane, which smashed in the left side of me a bit. It seems neither N nor I are hurt, so it's no big deal. (please refrain from all "are you ok?" or "I'm glad you're ok" emails). It is a pain in the ass because the Prelude is a bit too damaged to be driveable, so now I have to get it fixed or maybe get it totalled, blah blah fucking life is such a hassle.

Picture of Smashed Prelude

One thing I realized after the fact was that the accident was so quiet. There was no squealing of brakes, no swerving out of the way. Old Lady didn't slow down at all. Normally in an accident like that you expect a last minute braking, some tire tracks, all that. Nothing. When we got out of the cars to talk after the accident she was in shock of course, I was trying to get her to say what she was thinking and she mentioned how the light was green for her. That's scary, she just completely didn't see the world for many seconds there.

A few things trouble me intellectually about the whole situation.

1. the insurance will not come close to restoring the value lost of my car. Even if they fix it "completely" it has another accident on its record which greatly reduces resale value, and god knows if the frame is slightly bent they never really fix that right. I believe technically that insurance is supposed to compensate you for lost resale value, but they never do. So even when insurance is paying out, they screw you. Also, since Old Lady is completely at fault, the compensation should be way beyond just fixing the car, there should be a penalty for all my distress and lost time.

2. I've become hyper aware of how vulnerable I am and how you have to trust the other cars. Walking across streets since the accident I keep looking at the cars coming at me thinking "he has a red light, but who knows if he's actually going to stop? he might be old, or on a cell phone, or getting a blow job, and just run right through the red and smack into me". It's terrifying.

3. Old Lady and her complete unfitness to drive is very disturbing. Our roads are plagued by old folks and other unfit drivers who should absolutely have their licenses taken away, but both the state and their families are too fucking pussy to do it. My own family and myself have failed to stop our grandparents from driving even though they are horrible dangers to themselves and others. Basically just because we're afraid of the big scene where they get mad at us. It's very sad to confront your parents about their failing abilities in their old age, but you have to do it.

4. My neck is in rather a lot of pain since the accident, I'm sure I have some kind of minor whiplash. I almost certainly won't do anything about it to get compensation, but it occurs to me that other people might. By not doing anything about it, I'm basically just costing myself money, because there's some random chance that I hit someone some day and they do claim medical damages from me. It means my net EV for collisions is negative, not neutral.

5. I have to decide whether to file through my insurance or Old Lady's insurance. Under my insurance I'm limitted by the restrictions of my policy (which is a super-minimal policy because I despise insurance). On the other hand, if I file through her insurance I'm sure they'll try to fuck me as much as possible.

6. Thank god that Old Lady was driving a Honda Civic. Because of that, her total momentum was reasonably low, even at 35 mph with no braking, and perhaps most importantly, her bumper was at the right height for the Prelude's impact absorption pillars, and her front end crumples. If she had been driving a Suburban or something like that, my girlfriend might be dead right now.

12-07-09 - eBay

eBay is such a fucking scam. I recently sold a bike for $1280. eBay takes a total fee of $22.35 ; PayPal (also eBay) takes a fee of $37.42 ; UPS charges $125 ($80 shipping plus the fucking +$45 large item surchage scam).

The net result is that people pass items back and forth, and eBay and UPS get rich.

I thought the UPS home pickup was pretty sweet. For those who aren't aware, you can request a home pickup for free any time; because they do residential in the evening usually, you can request a pickup even after 3 PM and still get it the same day. You print your own label and out goes your box.

I was not aware of the large item scam. UPS apparently automatically remeasures your box in transit. This is sort of a scam because if they smash the box and it gets bigger, they will remeasure it and charge you. The large item scam is this sudden extra charge that they tack on in a weird way. If the

Length + 2 * ( Width + Height ) >= 130 inches

A standard size bike box is 54 x 8 x 30 , so you're at 54 + 2 * ( 8 + 30 ) = 130 exactly. If they remeasure it and the box is bulging at all, like if the width is now 8.5 inches, boom you get the +$45 charge.

Hey fuck you, we have a monopoly, what are you gonna do about it? Not use UPS? LOL. What can brown do for you? We shit directly in the customer's mouth and they come back for more.

12-07-09 - Food

We've made some exceptional food recently; some reminder notes for myself on how to reproduce things :

Lamb burger with Za'atar, fried egg, caramelized onions, and curried chickpeas. (plate also contains kale, coucous, and favas).


The key thing is the spicing of the lamb burger; put ground lamb in bowl and add lots of crushed garlic and za'atar, maybe a tiny bit of barbecue sauce (*). (never add shit like eggs or bread or onions to burger - this is a burger not a meat loaf, that shit all adds too much water). Stir with your fingers thoroughly, form patties, sear, cook a bit more than you would a beef burger, medium - medium/rare instead of rare - medium/rare. (* = bbq sauce and garlic will caramelize much faster than meat would, so beware of burning the surface, and don't use too much, maybe 1 tsp per pound). Dress with mayo and hot sauce. The curry and onions and fried egg were just about perfect toppings; all the greasy parts and egg yolk and mayo and curry run together and form the most delicious sauce known to man.

Oxtail Chinese/Taiwanese soup bastardization :


also contains soy sauce egg (*) (which is the wrong culture, I know, and then I added thai basil and sriracha flavoring on the table which is another no-no, but delicious), kabocha squash, pickled vegetable.

I did the "Chinese/Hawaiian" thing to do with oxtails, which is to blanche them first in boiling water, rinse them off thoroughly, then brown them in a hot pan, then deglaze and make your soup from there. Supposedly this initial blanche and rinse removes "impurities" and makes the soup have a cleaner beefier taste without some of the more funky flavors you can get from blood and such. I have no idea if that holds any water, but it turned out damn good.

Oxtails take 3-4 hours simmering on low or braising. You basically start the soup just like any other braise - brown the meat thoroughly, add some onion, garlic & ginger, brown it a bit, then deglaze with rice wine or sherry, add some spices (star anice, clove, fennel seed, etc), add water to just barely not cover the meats. Simmer very low or in a 300 degree oven.

When the meat is about to fall off the bone, remove all the oxtails and set aside; once it cools, then take the good meat morsels off the bones. While waiting, pour off the soup and strain it to remove all the solid aromatics. Return the broth to the heat and cook the kabocha chunks (10-15 mins) or whatever else you want at this point (turnips, carrots, bok/ung/pok choy, what have you). Once kabocha is nearly cooked, remove it so it stops cooking, don't leave things in the broth.

Boil noodles and assemble soup bowls on demand from separated parts like they do in asian restuarants.

One thing I would do differently next time is trim some of the fat off the oxtails before cooking. It's too hard to skim out of the soup, and it was just a bit too greasy.

(*) the soy sauce egg was a real joy on its own. A few weeks ago when we went to Vancouver we had some amazing ramen at Benkei, which looks like this : 1 or 2 . They serve a superb soy-sauce egg that's hard boiled with just the perfect glassy gelatinous yolk, then soaked in soy which gives it a salty funky depth. I used roughly this technique to reproduce it.

Boil egg for about 7 minutes. Remove, run cold water on it for a minute or so, then plunge in ice bath. Put ice bath in fridge and let cool completely (about 30 minutes). Once fully cool, peel egg and place in soy marinade (*). Let soak 3-5 hours. Yum. (* = I used just soy sauce and a bit of water for the marinade, but that was a bit too strong; I'm not sure what Benkei uses, but I'm guessing it's got some Dashi in it or something, maybe a bit of sherry would be good too, a little something to balance and cut the soy). I think my egg was in 3 hours and you can see it's only just browned; to get the super brown egg you see in other pictures I guess requires more like 8 hours; so do the prep in the morning to have it for dinner. I think the vinegar in the ice bath is a total red herring.

12-07-09 - Balancing Ranges

When you go to the bathroom, you should always turn on the fan. If you only turn on the fan when you're doing something stinky, you are creating a strong correlation between the external observable (fan on/off) and the internal hidden state (stinky). You can't hide the fan on/off state, so your goal is remove the correlation. You do this just by always turning on the fan.

In poker this is called "balancing your ranges". Basically it means making sure that when you do any given externally observable act, you do that same act with multiple different hands, so that the external observable is not highly correlated to a specific hidden state (your hole cards). For example, say you only ever raise under the gun with AA/KK - we would say your "range is not balanced". One way to fix this is to raise some bluff hands as well. Another way to fix it would be to limp your AA/KK (assuming you limp enough other hands to have balance). If you do limp some hands UTG but then you only reraise with AA/KK , you're unbalanced again, so if you are limping AA UTG then you also need to limp-reraise bluff from UTG sometimes to balance your range.


12-04-09 - You all suck

Maurice Clemmons apparently killed a few cops up here. On Nov 30, he was a suspect with a manhunt on to find him. There were no witnesses, only weak circumstancial evidence that he was the killer. He was pulled over in a traffic stop and was shot and killed by an officer who saw no gun. It's hard to say whether or not the shooting was justified or not, but it's definitely questionable. For one thing, the officer only identified the person he shot by visually seeing that he "matched the description" of Clemmons - this was in the middle of the night in darkness. Without knowing that the person was in fact Clemmons, or that Clemmons definitely was the cop killer, and without seeing a gun, the cop killed this man. Luckily the man shot actually was Clemmons and he was in fact the cop killer. However, I made the mistake of reading the comments on the news story :

seattle times or seattle weekly

Here's a semi-random sampling of the comments :

Good job, coppers!

kiro7 twitter says he's dead. I'm glad this saga is over and we don't
have to see him in court. 

Now lets hope they shot Clemmons just like the other recent police
officer killer; paralysis for life. Only Morfort was paralyzed from the
waist down. In an indeal world this S.O.B. would be a quadraplegic. 

The perfect ending for a cop killer: capital punishment by cop.

Well, best way to get him. I don't want to pay tax after any of the
criminal just to have theire "house, food and amusement" in jail. Good
job officer :)

yeeah kill that sucker I am glad he is dead, do not let this monster live just kill it

It's pretty amazing how completely retarded you all are. There's absolutely no concept of the rule of law or the function of courts, there seems to be no concept of the idea that cops assasinating suspects might be a bad thing. I'm just disgusted.

I see the same thing with the Republican comments about Guantanamo. They seem to think it's perfectly reasonable to torture *suspects* and give them no access to courts, no human rights. Now, it's one thing to debate torturing someone who you *know* is a terrorist, but these people are suspects and we know for a fact that over half of them are completely innocent. We've seen many cases of people who have zero connection to any terrorist cell being apprehended and extradited, and you still think it's perfectly reasonable !?

I listen to NPR on my commute and it almost always makes me furious. (for one thing the fucking Steve Scher who does the call in show here is such a dull moron, I just want PRI and Pacifica and BBC please). He had a guy on the other day talking about what Mike McGinn might do to make Seattle a better place for bicycles (which was a big part of McGinn's campaign). The guest was actually really smart, he made some excellent points that I hadn't really thought of before. One is that the difficult and dangerous bike routing that we currently have in Seattle causes a population selection - only young, bold, fearless, dedicated people will ride; the older more reasonable safe people won't ride because it's too dangerous and the bike routing sucks too much. What that means is the biker population is biased towards kids who antagonize cars and it creates a vicious cycle. In cities like Copenhagen or Portland where you have lots of good bike routing, that encourages a wider spectrum of the population to get out, which makes the average cyclist more calm and considerate, and gets more people interested in supporting good bike routes, which is a nice positive feedback cycle.

Anyhoo, I'm feeling happy listening to this smart guy and then they start taking calls. Every single call is "the real problem is the cyclists don't obey the laws". The call in guy is like "okay, do you have any comment on public policy?". Next caller is "I drive and all the time I see cyclists just cruising through stop signs". Okay, do you have anything useful to say? Do you really think that if the cyclists stop at the stop signs they are going to create such wonderful goodwill that the city will shower them with money for better bike lanes? Are you fucking retarded? Can you vent your spleen on your blog and not the fucking radio?

Today I'm listening and they have Obama on talking about the economy. He says jobs only declined slightly last month. Big applause. He says he is encouraging the banks to lend more to main street. Big applause. Seriously? Are you so seduced by his serpent's tongue? He has done *nothing* for jobs, and *nothing* to reform the banks. He's absolutely in their pocket. His team seems to buy the ridiculous macro-economic mumbo-jumbo that increasing GDP is all that matters, even if that GDP is nothing but financial industry profit.

12-04-09 - Sexual Bullshit

I'm so sick of reading the liberal codescending media about embracing "kinks" and the idea that any sexual behavior is okay if you're open about it with your partner. Bullshit.

First of all, all sorts of weird sex acts with your partner are wonderful. Go nuts. That's basically never what "kink" is about. Kink is really not about sex at all. It's about creating weird little role plays and fixed scenarios that satisfy some emotional defect in your fucked up little brain. People in S&M think they are "a top". No you're not. You're a fucking loser in real life who was maybe beaten as a child or some shit and you feel out of control in the real world, so you want to create a phoney scenario where you can be in charge and dominate someone else. It's not a "healthy kink" it's a fucking mental derangement. Granted it's a pretty harmless derangement, unlike molesting children or voting Republican, but it's not a healthy alternative behavior. Similarly with "furries" , etc. etc. - being a furry is not a healthy alternative sexual lifestyle, it's fucking deranged and clearly indicates serious psychological issues that should really be worked on, not accepted. (in this discussion there's a big distinction between people who just *play* at being a top/bottom/furry/scatologist/necrophiliac/whatever vs. identifying that way as a major part of their personality and/or only being able to have sex in that character). (you could say similar things about Japanese guys who are into Bukkake or rape simulations ; no that's not a "deviant" or "alternative" sexual taste, it's fucking sick and reflective of distortions in society which is making their minds so broken).

Similarly with "polyamory" ; the modern permissives like Dan Savage like to spout this bullshit about how having many simultaneous long term sex partners is perfectly fine as long as you're honest with your partners. Yes, it's certainly better than cheating, but let's not kid ourselves. Someone who identifies as long-term polyamorous is a fucking sicko (if you've actually met any, you know they are always *creepy*, like they have those googly eyes and they stand way too close and touch too much), and it's generally manipulative and abusive of their partners. The partners don't want their lover to be polyamorous, they feel like they have to agree to it or lose them; someone in a long term relationship will develop emotional ties and hopes. It's indulging in personal pleasure at other's expense, which is reprehensible. Dan and others perpetuate this liberal claptrap that the other person should "just say so" if they don't like it. That's ridiculous, just because someone doesn't speak up doesn't mean the abuse is okay.

That's not to say that I think these things are horrible. We're all human and have our flaws and weaknesses. If you have a derangement and you can channel it into a behavior that satisfies your insanity and doesn't hurt others, good job, that's better than a lot of "normal" behavior like the guys who go out and get drunk and pick fights in bars, or the girls who go out and get drunk and fuck a random guy, or the parents who repress and yell at their kids, all of which are standard good american bible belt practices and are much more destructive than being a cross dresser or whatever west coast "kink". But let's call a spade a spade - it's weird.

12-04-09 - Bike Optimization

I mentioned before about how saving money on cheap inner tubes is dumb. So there's this amusing site Weight Weenies with lists of lots of bike components and weight.

As soon as I saw it I immediately thought "MMO". It's just like the list of gear for kitting out your character. Should I get the ring of +1 str or the bracers of +5 HP ?

It's funny to me that people seem to love doing that sort of optimization in games, but not in real life. People love MMO's with lots of gear, they love to sit and think about the best way to kit out their character and how to maximize his stats and all that. It's a very detailed cost/benefit analysis, and lots of people do it. But those same people either suck at it miserably in real life, or even just refuse to do it, saying something like "I don't want to live that way" ( "that way" being rationally and logically ). So you don't want to think about maximizing benefit/cost in real life, but you enjoy it so much that you choose to spend your leisure time doing that activity, hmm. Maybe if you would think about benefit/cost in real life a bit you would decide not to spend your time playing an MMO. Anyhoo...

Weight Weenies obviously presents the idea of computing the weight of each part of a bike and its cost and finding the optimal weight reduction strategy for a given budget.

A lot of people would approach this with the "greedy strategy". That is, first find the one item that has the very best (benefit/cost) slope and buy that upgrade. Repeat until you are out of money.

This is obviously wrong for various reasons. For one thing, the upgrades are not additive, an upgrade to the same "slot" (eg. the "ring" in an MMO character, or the "seat post" on a bike) replaces the previous item in that slot. That means you only ever want to buy one item for each slot, and the greedy algorithm does not guarantee that you buy the best item for a given slot. The greedy algorithm also doesn't deal with using the finite budget well, it could leave you with left over money that isn't used well.

The obvious solution is a kind of dynamic programming like the LZSS optimal parse. Consider all prices to be in integer dollars. You have a budget of N dollars, think of that as the "X" axis on the time line. You are trying to walk from X=0 ($0 spent) to X=N (full budget spent) and get the maximum step on the Y axis (benefit).

So you can make this a graph. At (X=0,Y=0) you have the initial node with all M upgrade paths coming out of it; each path has an X length equal to its cost and Y length equal to its benefit. After you take a path, all upgrades on the same slot are excluded, so the next node has a reduced set of paths. Note that the graph does *not* branch exponentially, because the nodes come back together. That is, an upgrade like {ring,bracer} is the same as {bracer,ring} so they go to the same node. If you had infinite budget, the paths would wind up all ending in points with no exit paths (there would be many of them, equal to the number of possible ways to do a full-slot kit-out).

You can phrase this another way to make the dynamic programming aspect obvious. (dynamic program just means caching shared bits of a computation). If you have D dollars remaining and you have the set S of upgrade slots unused, the item you choose next is I(D,S). I(0,S) is null. I(1,S) is the best item in the set S that you can get for 1 dollar. Then :

I(D,S) = arg_max(i) {  Benefit(i) + Benefit( I( D - cost(i) , S - type(i) ) ) }

i = an item with type(i) in the set S and cost(i) <= D

arg_max = return the iterator which maximizes the enclosed expression

One way to solve it is the LZSS way which avoids any recursion : you start at the "end" of your spending, when budget remaining is zero, and you walk backwards doing the above computation for each D, until you reach D = N (your initial budget), and then I(N,all) is the first item you should buy (and you follow the paths back forward to get the full list of items to buy).

The other way involves heavy recursion. You just ask for I(N,all) , which will call I() on lots of sub choices, which calls I() some more until you have your answer.

I think that's optimal;


12-03-09 - Web

Jeebus the new Google fade in is fucking retarded. Seriously fucking quit it. What kind of fucking ridiculous stupid fucking retard thought of that.

"I know, let's hide all the buttons that users want to click, people will love that".

"You know what would make this page great? If it took longer to load and offered no more features."

You're fired.

It's really annoying the way I can't "own" the web. I can't freeze web pages at versions that I like. People keep changing shit under me just when I get it worked out nice. My banks and credit cards and such keep making their pages worse and worse, adding more Flash and fucking animations and gizmos and shit that just make it so much harder to find things. The fucking Chase pages have some kind of adaptive menu system where they never show you all the sub-pages in one place so you have to navigate a literal labrynth of links to find the page you want (ala Zork). Even that would be okay if it just stayed the same because I could memorize the steps, but every few months they change it so I have to go hunting again.

12-03-09 - Following

The modern emo metrosexual dorky man is often afraid to take charge and lead his lover. He's afraid of stepping on her toes, making her do something she doesn't want to, afraid of suggesting something that doesn't turn out well and then getting the blame for it. It turns every discussion about what to do into this huge sissy yielding back and forth, like "what do you want to do?" "oh I don't know, what do you want?" "well I'm flexible" "well I could maybe watch a movie" "yeah you want that? I could do that" , ugh it's revolting.

He'll claim that he's "sweet" or "considerate". Really it's nothing but cowardice and weakness. He doesn't want to just boldly lead where he wants to go, because he's afraid of rejection, afraid of the blowup if he does the wrong thing. The woman wants you to lead - so yielding and refusing to lead is not doing her any favors.

One way to get over this is of course just to not care, aka "be an asshole". BTW this is why it often seems like girls are attracted to dicks and assholes - because in many ways they have positive traits that the sensitive man lacks. They don't actually want an asshole, and guys who say "women like jerks" are being foolish and defeatest. Obviously they want someone nice and considerate, but considerate does not mean pansy. It means thinking about the affect on them when you lead.

A crucial point is that the art of Following is just as important as the Leading. It's like ballroom dance. The follower needs to subtly direct the leader, and follow smoothly, taking the cues and then moving on their own.

Perhaps the most important thing is that the follower needs to speak up immediately when the leader takes them in a direction they don't agree with. This gives the leader confidence to know that he can lead and not have to worry about "is this okay? is this okay?" all the time - he knows the follower will speak up if something is wrong. Often when I'm a guest in somebody else's house, I find myself really uncomfortable, and a large part of it is because I feel like they're afraid to just say something when I do something they don't like. This makes me hesitant about every action because I don't know what will displease them. If I knew they would just say "hey don't put your feet on the coffee table" , then I could be at ease and just do whatever.

Also, the follower needs to reward the leader when he does a good job, with enthusiasm and good spirits. If you take someone on some fun adventure and they don't go along with it and don't appreciate it, you won't want to do it again.

Almost everything in human perception is "relative to recent average". That means when you improve your situation, you rapidly acclimatize to it, and find all new things to complain about.

It's also something important to be aware of if you are trying to maximize how other people perceive your value.

If you are just nice to people all the time, they won't think of it as being nice. For example, say you just do the dishes every time your wife asks. She won't think of it as you doing something really nice for her, she'll just think "my husband does the dishes for me, that's the way life is". Instead, if you refuse and moan about it usually, but *ocassionally* do the dishes, when you do it she will think "what a sweetie".

Similarly, at work if you just put in solid hours and do good work all the time, you will become invisible to your boss. Instead, if you generally screw around and chit-chat a lot, but *occasionally* you really crunch and do some amazing work, your boss will think "oh, that guy really gave his all for the team there" and you'll get big bonuses.

I think there's a very fine moral line between "manipulation" and just being aware of how people perceive your actions.

If you find yourself being too consistently good, you should intentionally fuck up. Like say you've really sexed up your lady really nicely a few times in a row - you better do a terrible job on your next go, or it's going to become the "norm". Once it becomes the norm, then any deviation downward is seen as bad, and continued good jobs are not perceived as good, just as normal. You need to fuck up often enough that the norm is perceived to be low enough that you can beat it.

When you do something nice for someone, you're usually doing it to be *perceived* as doing something nice, not actually doing something nice. When you bake cookies and give them to someone, it's not because you think they really need a cookie and you're helping them out, it's because you want them to think "oh how nice".

Acknowledging this, when you do something nice, it should be the thing that creates the maximum perception of nice while costing you the minimum.

For example, when I do something for someone that takes an hour of my time, that costs me $200 or whatever my hourly time value is. They certainly do not appreciate that for its fair value. On the other hand, I can do something trivial like buy someone flowers and it's perceived as very nice.

Often I will choose to do the things that are "actually nice" as in actually helpful to the person, even if they don't particularly perceive it as very nice, and I refuse to do the the easy things that have high niceness perception because they're "cheating" or "too easy". Really I'm just being stupid.

In the world, we can see our choices, and we can see the results they will produce. There's no omniscient judge who is watching your choices and giving you gold stars for being "good". There are only the real world results. You should make the choice that provides the best real world results. That means buying flowers, cheating on your taxes, bribing restaurant hosts, making smalltalk, treating women like dogs, driving in the carpool lane, etc. I can't quite make myself do these things, but I also don't understand what exactly is holding me back.


12-02-09 - Board Gaming Ethics

0. Be ready to move on your turn and keep the moves fast. Don't chit-chat during your turn, and use the time when it's not your turn to plan your actions. Go to the bathroom or whatever immediately after your turn. In general don't make people wait for you. Play fast.

1. Don't quit when you're losing. Don't say "this is stupid" or complain about your "bad luck" all the time. Hey guess what, board games are probabilistic and have high variance. Usually when you win or lose it's luck, the skill shows up in how often you win or lose. Don't pout and make it obvious you can't wait for it to be over, stay interested in what the other people are doing.

2. Don't drag out runaways when you're winning. When it's obvious you will win and the loser has no hope, it's polite to offer them resignation rather than dragging it out.

3. Always be trying to win. Be competitive. Games are no fun for your partner if you're not trying. Also, it's no fun for everyone if you play your own "meta game" and make up your own goal (like defeating some other particular player in a multiplayer game, or getting the lowest score possible, etc.).

4. Don't make deals or alliances outside the spirit of the game. Also deals and alliances should only be made that are in your best interest, not to intentionally screw someone else (unless that someone else is winning and it's in your best interest to screw them).

5. Don't exploit badly broken rule systems or loop-holes. Try to play within the spirit of the game. It's polite to say "I think I could do this move, but it's totally not fair and breaks the game, so I'm not going to". If you're aware of a rule that others aren't, don't keep it secret and spring it on them, warn them about it. If someone is obviously making a move because they don't know the rules well enough, tell them about it. In general, do not treat knowledge of the minutia of the rules as an aspect of skill and a way to win.

6. Tally your own accounting. Be aware of when you need to pay or collect resources and speak up and do it yourself. Don't rely on others to see it for you. It's good ethics to alert someone a few times, but after that you are under no obligation to do so and should just keep playing fast if they consistently fail to pay attention.


11-30-09 - Some more bike notes

There really is a *huge* seasonal variation in the used bicycle market. I knew this, but I thought it was a small factor; no, it's massive, particularly in the low end. There are just tons of cheap old bikes for sale right now for under $200. I have one I'm trying to offload and I've got zero interest. You just cannot sell old bikes right now. Conversely in the summer when I was looking at buying bikes, they were few and far between. If you ever have any ability to time your bike purchasing, do it. Also, bike shops are slammed in the summer and often low on stock. They will not give you good service and if they sell you anything it will often not be what you want. Much better to go in the winter, and they will very likely negotiate quite a bit on price with you in the winter.

I just shortened chain on my new bike again. Turns out I put it on way too loose. I think particularly with a compact double (because there's a big difference in ring sizes from 50-34 vs. 53-39), you really need the chain to be absolutely as short as possible. That means big ring to big ring plus one link. You really do not need any slack for the derailleur at all - the derailleur can move to the chain. And you will never really ride big-to-big. The problem I was having was chain slip when I was near the little-to-little rings. I now know this was because I had too much slack in the chain (riding little-to-little on a compact double with a pretty big cassette range isn't a great idea in any case).

Some tips on buying a good old used bike : I think the best bargains are actually in pretty recent low end bikes; 2-5 years old, generally aluminum, they just have zero sex appeal so there's no markup. You can get used road bikes from chinese brands like Giant or the Performance Bike generic brands with Tiagra level components for $200 and they will work better and be lighter than very expensive old bikes. If you want an older sexy steel bike, here are a few tips :

1. In general you want to look at bikes from about 1985 - 1995 ; after 1990 would be preferred. If you get a bike that's Shimano components post about 1985 , that will give you compatibility with the whole modern generation of components - all the recent generations of 8 & 9 speed pretty much work back to that era (new 10-speed stuff doesn't). Avoid old Dura Ace stuff, though you probably won't see it. Avoid the older "ten speed" era bikes. Avoid French bikes at all cost because they have weird and annoying compatibility problems that make parts much harder to find and more expensive. Avoid old Campagnolo unless everything on it works perfectly.

2. I think Japanese bikes like Bridgestone and Miyata are a good way to get quality stuff without paying the "sex appeal" markup of Italian bikes. Brand names and collector's items will have big markups that you don't need to pay, you can find great stuff that's just as cool if you do a bit of research.

3. Make sure the frame is a more modern higher quality type of steel that doesn't weigh a million pounds. Obviously if you can get a real sexy frame that's like Reynolds 531 or 853 or one of the better Columbus or Tange steels, that's nice. Avoid the pre-1985 straight steel super heavy shit that's in bikes like Schwinns, Pinnacle, Peugot, etc. Look for "butted" on the stickers. Don't get sold on paying a premium just because of a "Columbus" (or whatever) sticker though, those are just steel tubing brand names and they made a whole line of steels, some cheap, some premium. But really don't focus on this other than avoiding the super old thick crazy heavy shit. If the frame is good, make sure it fits you nicely, and then you can always replace components.

4. Look for rust, dents, big gouges. You don't want to deal with any of these. A tiny bit of surface rust on one or two spots of the frame is not a big deal, usually you can just scrape it off.

5. Check for parts being frozen. Take your tools with you. In particular check the stem is not frozen in the steerer and the seat post is not frozen in the seat tube. Take off the pedals and make sure they are not frozen. Again it's not worth buying a bike that has these problems. Often people who owned these old bikes never greased them or serviced them a single time in the last 20 years.

6. Bikes that are badly adjusted can be a nice bargain. They will seem to brake terribly and shift badly, etc. The owner thinks it's "in bad shape" but you can tell it's structurally fine. Usually when I buy an old bike I plan to throw away the tires and tubes, brake pads, and cables. Replace them all it, clean it, lube it, tune it, and it works like a dream. That overhaul will cost you about $100 in parts.

7. Bikes sold with "extras" can be a big bargain. You'll see naked bikes for $150, and then you'll see bikes with fenders, racks, bags, lights, etc. for $250 ; those parts alone are worth $250 if they're in good shape. Sometimes just one component on a bike can be worth the whole value when people don't know what they have; something like a premium saddle is worth $100+ and you can find them on $200 bikes.

8. I recommend looking for a frame that's versatile. Look for braze on fender mount eyelets at the fork and rear dropouts. Old touring frames are great to turn into commuters because they have the good rack-mount brazeons on the seat stays. Look for brakes with clearance and space for fatter tires and fenders. You might never use any of these things, but it's good to have the flexibility so that you can do whatever you want.

Don't try to save money on inner tubes. The difference between a cheap tube and a good won is actually quite large. A cheap tube is around 125 grams, a good one around 75 grams. 50 grams may not seem like a lot, but shaving 100 grams = a quarter pound off a bike would cost your $50 - $100 , so saving $5 on tubes is highly irrational.

Tires are even more important than tubes. The same is true of cars of course, I've written before about how retarded it is when people buy a $50k sports car and then put cheap tires on it. It's just a radically bad price-performance decision. Of course those people don't actually care about performance, they only claim to; in reality they are spending for image, so maybe it is a logical price/image decision.

More on this later.


11-25-09 - Blurg

mscorsvw.exe gobbles CPU to "optimize" your .NET CLR assemblies. It's gotten to the point that computers are almost always running some kind of "background optimization task"

I stuck some egrips on my Canon S90 and I'm pretty happy with the result.

I updated my picture slideshow screensaver cbsaver with a "ForceWindowed" option, and a special mode if you set TransitionMillis to 0. ForceWindowed makes it use a full screen size window instead of actually going to full screen ddraw. This takes a lot more CPU, because it uses blits instead of flips, but I found the full screen ddraw caused some odd flickers on certain graphics cards. The whole point of cbsaver is that the transition from desktop to screen saving should be completely smooth and non-distracting, so the screen jumping to full screen was unacceptable. The TransitionMillis=0 mode makes it just flip pictures and skips a lot of the complication so it's much faster; the goal of this is to avoid spinning up my laptop when it's in low-heat mode.

Which reminds me : I'd like to guarantee that cbsaver in TransitionMillis=0 mode doesn't make the CPU come out of low speed mode. If I use a lot of CPU for some reason, I'd like my app to just run slower, not kick up the CPU clock rate. So far as I know there's no way to do this. I have some hacks in there to try to avoid it, for example I don't flip to an image and then immediately load the next one, I flip and then wait a few frames to do the load so that I spread out my higher CPU use tasks over time. (really I should have the load on another thread at low priority).


11-24-09 - Google Voice

I'm now using Google Voice cuz it's better than nothing, but it has some major usability problems :

1. Not integrated with Mail and Reader. I have to keep 3 web pages open if I want to see all my junk. Yeah yeah I know can make an iGoogle page or some shit to put them together but I shouldn't have to do anything. Deliver me all my notifications together please.

2. No realtime refresh, no sound notification on new messages. If I want to see if I got new messages I have to go over and hit refresh !? Not cool. I should be able to tray it. Really it needs to be a proper Win32 app and behave more like Trillian or other IM clients, not some web shit.

3. It collapses threads like a motherfucker. That's totally inappropriate for SMS conversations where each message is 1 sentence. It starts collapsing at 5 messages, which means pretty much every conversation is collapsed all the time. I find myself just constantly clicking the "N more messages" buttons to make it fucking un-collapse. Also it seems to have no sensitivity in the collapsing to how recent the thread is. Obviously the fucking thread that I'm writing in RIGHT NOW shouldn't be collapsed, but the one from two weeks ago could be collapsed even a lot more.

4. Disabling ring-through is buried too deep in the settings. It should be a toggle right on the main page whether to ring & forward through or not. My main usage now is when I sit down at my desk at work I want to disable all the ring-through and SMS forwarding, and do all my "phone" at my computer. When I get up again I want ring-through to be re-enabled. (Also if I forget to re-enable it, it needs to be easier to toggle from my phone!).

5. Previous complaint about SMS forwarding not setting caller id still stands. Hopefully this will get fixed, but I'm becoming more tolerant of it.

11-24-09 - Feedback

One of the hard things about data compression is that when you first try an idea, chances are it will appear to be a loss. That is, say you have some working compressor like an LZ77 compressor and you try some new idea like using a reduced set of possible offsets instead of all possible offsets. When you first try this, you won't have fully worked out the idea, so your implementation is not that great, you don't yet realize the key to making it profitable, so it will appear to just hurt performance.

If you have faith in the idea and stick to it and work out the fact that you need to context-select the reduced set, and only do it when the prediction set is good, and escape out to context coded literals, etc. etc. all the subtleties, then it becomes a win and a nice technique. But for a long while there you aren't sure. You feel like you might be headed down a dead end, wasting a lot of time refining a technique that will wind up being worse than the original (of course this has happened to many people many times with techniques like LZ78 and DMC and Fractal images, etc.).

This is really the key skill that makes the practice of science an "art", and what distinguishes good practitioners from muddlers - it's the sixth sense for what is a good way to spend your time, what areas to explore are likely to be profitable, and how long to stick with it before you punt. If you punt too soon you might miss a huge discovery, but if you stick with it too long you waste your life chasing dead ends.

Of course this is a common feature of all the arcane arts. Any field where you get linear feedback to your exploits is trivial (*). That is, if you start down the right path and immediately get good feedback that it is the right path - anybody can do that, it's easy. All the difficult fields share the property of nonlinear feedback - including life of course. For example I believe that "dieting" and "working out" are really fucking easy life tasks because they provide very obvious linear feedback - you act and you see results. Harder things are things like choosing to make a big career change, since it will get much worse before it gets better, or choosing to work on a failing relationship.

* = obviously that's not true, there are "simple" fields that give linear feedback that are still quite difficult simply because they are a slog. I think Chess for example is one of them; if you spend more time studying, you get better results, pretty linearly; Chess is still difficult because the sheer mental focus and rigor to put in enough study is exhausting. Poker on the other hand is not simple because of the very large variance; you might adjust your game in a good way and immediately have some very bad results due to bad luck; you have to have intuition and faith to know it was a good adjustment even though the results don't seem to indicate such.


11-20-09 - Bike Tires

A lot of people believe that they should get bike tires with a bit of tread pattern, grooves or knobs or something for "good grip" or "water channels". This is a lot of crap that's gotten into people's heads from the car tire advertisements. See the experts : 1 , 2 , 3 on tire choice.

So now that you've read them you should be drinking the kool-aid that slick tires are the way to go because they maximize grip on pavement and will never hydroplane.

I don't think so. The truth is, grip on smooth pavement will never be a problem with bike tires. As Sheldon's chart shows, it's basically impossible for you to ride fast enough or corner hard enough to exceed the friction limit of a bike tire on pavement - even wet pavement. So why optimize for that? Slicks might give you optimum grip, but you already have plenty.

In reality, grip issues when biking will occur when your tires *aren't* in contact with pavement. I've had bad wipeouts due to gravel, sand, etc. In Seattle we also have the "steed" - the rotting leave gunk that's as slippery as a banana peel. When your tires are on steed you have no grip, and a bit of a knob to cut through that and get to actual pavement would be a huge boon. (it's called "steed" because rotting leaves are almost the most disgusting thing in the world, they're goopy and brown and smelly like a giant film of shit that gets on everything - second only to Paul Steed who is the most disgusting thing in the world).

I don't know what the best compromise is for a tire that can cut through some steed but still have good pavement grip. Clearly if all you care about is wet pavement grip, the right thing is a slick tire that's as wide as you can fit, and underinflate it very slightly.


11-19-09 - Pathetic

There's nothing worse than being intelligent but lazy. Intelligent enough to know that all ordinary activities are banal and pointless, but too lazy to do anything you think is actually interesting. It's a pathetic state of feeling superior but being despicable.

Dined at Tilth the other day. I won't even write a review, but I need to stop going to "New American" restaurants because they're just so fucking boring. Seared protein, buttered veg, some broth or foam, SNORE.

The best season of The Simpsons is Season 5. Season 4 (of Mr. Plow - though the best episode is Homer the Heretic) is a little bit too rough still (earlier seasons are way too rough). Season 6 (of Itchy & Scratchy Land and A Star is Burns) is really good, but it's just a bit too smooth. Season 5 is the pinnacle where they have just figured out the magic formula (which they didn't quite have down in Season 4 so it has some real rough misses), but they haven't gotten so practiced in it that it feels old hat (which Season 6 starts to smell of). The best episode ever is Season 5 - "Homer loves Flanders" and the second best is "Homer and Apu".

Also, not having watched The Simpsons is kind of like not ever having seen a Shakespeare play or heard The Beatles music. It's *the* seminal work of the medium of Televison.

11-19-09 - Myanmar

I'm going to SE Asia for Christmas, and I'm vaguely considering trying to go to Myanmar. (probably won't)

There's some who suggest that you shouldn't go because of the oppressive government, that tourist dollars help prop up their regime. I think this is basically nonsense. It's not a huge amount of money, and not much of that will get to the government; if you're a conscientious tourist you can try to use local currency and spend it at small local operations rather than the big tourist hotels and guided tours that kick back a lot to the government. I also think there's a ton of benefit to the local people and world awareness just to have contact with westerners (I would say the same about Cuba, etc. etc.) - isolating the people of the country is a terrible way to affect change ; I think we see that throughout history the best way to democratize countries is through maximum contact with western society.

If you actually want to do something about the Myanmar government, you should boycott Chevron, who pumps a ton of money directly to the regime for the natural gas leases in the north. We theoretically have economic sanctions against Myanmar, but of course the oil companies are exempt from that, just as they were when we had economic sanctions against Iraq. The result is that the people are impoverished but the government still gets plenty of money for its military, since the oil money goes directly to the government, while any smaller businesses that would help the people are not allowed to trade.

See : Amy Goodman on Chevron in Myanmar , Amnesty International calls for protesting Chevron and Chevron's response .

I heard the CEO of Chevron on NPR once responding to questions about the Myanmar lease. His justification was basically "if we don't do it, someone else will" (and the stuff in the above link about local schools, health care, blah blah blah). He's definitely right that someone else will. There's no oil/gas in the world that some oil company won't touch. Even if our government had balls and enforced real sanctions so that Chevron and Exxon were forbidden from taking the lease, surely China would step in. CNPC is already building a pipeline through Myanmar and is the biggest supporter of the regime already; if Chevron stepped out, CNPC would step in, and without the benevolent local spending.

Despite that reality, it's a preposterous moral argument that it's okay for us to be bad because someone else would be worse. In that situation you should clearly refrain from the bad action and also try to get the world to stop the worse action. We clearly need more international pressure on China to stop dealing with oppressive regimes around the world, but we also need to start doing so ourselves.

I am the worst kind of liberal (*). I can get all outraged about some indignity and rant about how people should behave, but when it comes down to what I personally want to do, I can always rationalize why it's okay for me to do it.

(* = the most common kind / the only kind )


11-18-09 - Raw Conversion

CR2 format is a big mess of complication. My god I hate TIFF. The main thing is the sensor data. It appears to be stored as "lossless JPEG" which is a new format that uses the JPEG-LS predictor but then just codes the residual with normal JPEG Huffman coding. The sensor data is RGGB which they either store as a 4-channel per pixel [RGGB per pixel] or as 2-channel [GR or GB]. Either way is clearly not optimal. One interesting thing I could do if I cracked the CR2 format is store all these raws smaller with a better compressor. The RAWs from the S90 are around 11M on average, it uses the 2-channel mode; the RAWs are 1872x2784 = 3744x2784 samples and 12 bits per sample. That means the JPEG is getting to 8.85 bits per sample. Not very good.

Of course I probably have to use dcraw to read it for me, but dcraw is just about the worst piece of code I've ever seen in my life. It's a miracle to me that people are able to write functioning software from code like that.

Paul Lee has a modified dcraw and some nice sample pictures of how demosaicing can go wrong (click the Moire or Aliasing links).

My idea for high quality RAW processing :

First of all, abandon your idea of an "image" as a matrix (grid) of colors (aka a bitmap).

The S90 sensor has barrel distortion that's corrected in software.

It also samples colors in an RGGB Bayer mosaic pattern (like most cameras).

The two of those things combined mean that you really just have a collection of independent R's, G's, and B's at
irregular positions (not on a grid due to barrel distortion).

Now, you should also know that you need to do things like denoising on these original samples, NOT on
the grid of colors after conversion to a bitmap.

So I want to denoise directly on the source data of irregular color samples.
Denoising R & B should make use of the higher quality G data.

Denoising should of course use edge detection and other models of the image prior to make a Bayesian
maximum likelihood estimate of the sample without noise.

To output a bitmap you need to sample from this irregular lattice of samples (mosaic'ed and distorted).

Resampling creates aliasing and loss of information, so you only want to do it once ever on an image.

There's absolutely no a-priori reason why we should be resampling to the same resolution as the sensor
here.  You should resample at this point directly to the final resolution that you want your image.

For example with the S90 rather than outputting the stupid resolution 3648x2736, I would just output 3200x2400
which would let me view images at 1600x1200 on monitors with a box down-filter which will make them appear
much higher quality in practice (vs 3648x2736 viewed at 1600x1200 which involves a nasty blurring down-filter).

The output from this should be a floating point bitmap so that we don't throw away any color resolution

Exposure correction can then be done on the floating point bitmap without worrying about the irregular
lattice or any further resampling issues.

11-18-09 - Information

Intellicast has awesome interactive weather maps. The best. Also, the UW ProbCast provides sophisticated computer modelled weather predictions for Seattle. The ranges show you the 90% confidence interval; mouse over things for more info.

Hot Map is just a bunch of scanned in paper maps that you can navigate around. SO SO superior to computer generated maps like Google. See for example Bangkok ; give me a good paper map and I'll beat anybody relying on electronic maps and GPS in a scavenger hunt.

It's funny reading about Julia Child and Craig Claiborne and that era of food in America, when you could become famous just by introducing America to some exotic new dish from foreign lands, like "spaghetti". It used to be so easy to travel and see things that you've never encountered before. It's such a fundamental part of human nature to explore and discover and bring things back, and it's basically entirely gone from our lives, which is a damn shame. These days if you discover something it's just because you are uneducated - you could have easily known about it before your journey if you were a better googler.


11-17-09 - Cleaning

I did a full clean up of my laptop and it's running like a million times better now. There are lots of badly behaved apps on Windows that seem to just crud up your disk with temp files so badly that they make themselves slow. Do this on a fragmented disk and it's slowness death.

How to fix :

1. Uninstall badly behaving apps (* see later)
2. Del temp files and caches (* see later)
3. Defrag disk
4. Reinstall bad apps

The key thing is getting your disk free of all the shit before the defrag, so that the shit files aren't getting mixed in with the real stuff at the front of the disk when you defrag.

Here's my temp file cleaner :

echo dir c:\temp :
call d -r  c:\temp\*
REM call d -r "%USERPROFILE%\local settings\temp\*"
REM call d -r "%USERPROFILE%\local settings\temporary internet files\*"
call zdel -y -r  c:\temp\*
call zdel -y -r "%USERPROFILE%\local settings\temp\*"
call zdel -y -r "%USERPROFILE%\local settings\temporary internet files\*"

REM call zdel -y -r "C:\Program Files\Visual Assist.NET\vc7\history\*"
REM call zdel -y -r "C:\Program Files\Visual Assist.NET\vc7\cache\*"

REM call zdel -y -r  "c:\windows\system32\config\systemprofile\local settings\temp"
REM call zdel -y -r  "%USERPROFILE%\application data\acd systems\acdsee\imagedb.*"
REM call zdel -y -r  "%USERPROFILE%\Local Settings\Application Data\VisualAssist"

(d is a dir and zdel is a delete ; -r is recursive).

Visual Assist and ACDSee are two apps I use regularly which are fucking retarded in that they seem to just grow their caches on disk indefinately until they get so big that it badly affects their startup time. My ACDSee was taking a few seconds to start up and I was like "WTF" and found the ImageDB cache was a few hundred MB; delete that mofo and it starts up fast again. You probably don't want to do those REM'ed out lines every time you clean up junk (it will make VA do a full reparse), but they're good to do once a month or so.

(*) badly behaving apps :

There are a few apps that seem to crud up your disk super badly with temp files; you may even have trouble finding them all; they're mostly under "Documents and Settings" , spread around in Local Settings and Application Data. With all of the following apps you should first uninstall them, then go through these temp dirs and find as many of the files they left behind as you can and delete them, becuase they don't clean up after themselves correctly. The worst offenders that I've seen are :

1. Firefox. So impossible to make this beast clean itself. If your Firefox is taking a long time to start up, best move is to uninstall it. It will leave lots of shit behind, delete that manually.

2. Adobe Everything. I had tons of shit from Acrobat Reader 6, Acrobat 7, and Acrobat 8, even though I uninstalled all of them (Foxit FTW). Uninstall all and delete manually.

3. Apple Everything. Uninstall all Apple software, delete all the shit they leave behind, then do yourself a favor and don't reinstall it. There was almost a gig of mystery shit in Apple folders, including shit like copies of installation packages of various versions of iTunes. No I don't want you to backup the install packages for me thank you very much.

In all I freed up about 10 Gig from this, and getting rid of all the shit before the defrag lets the defrag do better work.

ps : may as well run Malwarebytes while you're at it.

pps : may as well delete the masses of VC shit too :

zdel -r -y "*.(ncb|ilk|idb|opt|plg|dsw|pch)"

ppps : may as well checkpoint your p4 server too :

p4d -jc -z


11-16-09 - Warning 4244

I wish I could disable warnings about float - double conversions but keep warnings about the conversions between different types of ints. I hate that every time I call sqrt() or whatever in some utility code I have to spend a bunch of time worrying about whether I'm in float or double or whatever, and every time I write FPU utility code I have to write versions for float & double, or cast at the call site, bleck blah lame.

For int - int type conversions I'm trying to be good these days and use stuff like these :

// check_value_cast just does a static_cast and makes sure you didn't wreck the value
template < typename t_to, typename t_fm>
t_to check_value_cast( const t_fm & from )
    t_to to = static_cast< t_to >(from);
    RR_ASSERT( static_cast< t_fm >(to) == from );
    return to;

#define RR_CLAMP_U8(x)  (U8)RR_CLAMP(x,0,0xFF)
#define RR_CLAMP_U16(x) (U16)RR_CLAMP(x,0,0xFFFF)

So eg.

S32 val = whatever;

U8 t1 = check_value_cast< U8 >(val); // no clamp but asserts that it fits in range

U8 t2 = RR_CLAMP_U8(val); // clamps to target type range

Losing values to type conversion is one of the few nasty bugs I continue to have, and I'd like it to stop.


11-15-09 - Braised Pork

Night 1 : Braised poker shoulder with polenta. About 4 hours at 325. I added about a cup of root beer this time which had a nice flavor but too much sugar. White wine is really the best braise/deglaze liquid IMO. Also I think it may be best to chop up the meat before browning because it gives you more surface area to get delicious brown on.

Night 2 : leftovers. On night 1 when you put it in the fridge, pour off all the liquid into a tall narrow glass so that the juices and fat separate neatly. Take the fat off and reserve. The juices should be totally solid and jello-like when cold, indicating you have rendered out the collagen. To make a sauce, take just the quantity of juices you want for the moment, reduce the juices a bit in a pan, then whisk in butter. This is a general sauce boosting technique which will make any homey braise liquid more luxurious.

Night 3 : meat pies (Pastys, Empanadas, whatever you want to call them). I've tried these a few times and they haven't been awesome, but I think I finally nailed it. There are lots of little details to get right :

1. Preheat oven to 375 with a baking stone in it. You should prep the pies on parchment paper and then just slide that onto the stone. This will cook the bottom quickly on the preheated stone which keeps the bottoms of the pies from getting soggy.

2. Forget the dough you are "supposed" to use for meat pies (be it the dull Welsh Pasty dough or the puff pasty dough or whatever, they all suck). Just make the crust that tastes delicious to you. I like Martha Stewart's Pate Brisee (BTW any time you see a hat in French it means there's an "s" there in the English version, so pate = paste, hopital = hospital, etc. ) . To make it savory instead of sweet : A. omit the sugar ; B. double the salt (or just use salted butter + the called for salt) ; C. add some pepper and herbs to the crust ; D. use a bit of the separated chilled fat from the braise for some of the butter. (note : I generally think frozen pie crust is an okay short cut for pies, but they are all sweetened so cannot be used here; plus the whole point is the delicious crust, so you're really only cheating yourself that way). (of course do all the things you are supposed to for pie crust - work very cold, do it all in advance so they have time to chill before rolling out, etc.)

3. For the filling : the main thing is it should all be pre-cooked and not have very much moisture. I tried a few things, the best filling I did was like this : cut the pork shoulder into bite size chunks; saute some onions and carrot until just al dente (it will cook a bit more inside the pie but not much) ; let it all cool and mix together. Take a few tablespoons of the mixture and pulse in food pro to make it into a paste, crack in one whole egg, stir this back into the chunky mix as binder. This should look like a very chunky meat loaf or meat ball preparation. Spoon into pie. Be very liberal with spicing - the crust will mellow out the flavors so the filling should be full of punch.

4. Roll out pie crusts quite thin - thinner than you think is okay. Don't over-fill, leave a good inch of border for crimping. Paint edges with water to seal, then crimp well. Cut three BIG air vents - they need to be big because the crust will puff a bit and try to seal itself back up. Brush with egg wash and sprinkle on a bit of coarse sea salt. Bake about 30 or until colored. Brush with melted fat near the end of baking if you want a bit of glaze.

They look like this ; BTW I'm pretty pleased with the S90. It's got its flaws, but it takes pretty amazing photos when you just put it in Auto and press the button and don't do anything (like this one) which is what you really want from a little P&S.

Night 4 : Packaged pork Ramen with pork chunks and cloves added for lunch. Tacos of pork chunks for dinner. (the key thing here is to cut the pork into chunks and pan fry it in hot oil to make it really crispy, like how carnitas is done). Om nom nom.

Night 5 : fear food poisoning risk and throw out last bit of pork.

11-15-09 - New York Times Magazine

The New York Times Magazine this week has an article on video games as "art" (See the article here ). It mainly focuses on Jason Rohrer and his game "Passage" (see it here ).

I came here to write an angry rant about how retarded the article is and how Passage is absolutely the worst kind of attempt at "art" and the worst kind of "game" (in that it's not a game at all - it's a "toy" or an "experience" ; at the Indie Game Jam we always tried to have a rule that we didn't just make "toys" or "experiences" because they're easy and uninteresting).

But then I realized that actually the article and Passage are both actually brilliant on a meta level. The article is by someone who totally doesn't understand games or art, but is trying to seem intelligent and writes a lot of pretentious nonsense. Rohrer is either an idiot or is intentionally spouting bullshit to make Passage and games seem more significant than they really are. The article is aimed at out-of-touch old people who will nod and go "hmm interesting" and then share what they read at some cocktail party and everyone will pretend to agree in order to seem smart. That's art! It's exactly like the traditional art world ! How brilliant, by being retards they have shown that games are art.

(I realized this while walking around the SAM looking at the Calder mobiles and being amazed by how "artists" can create this amazing mass delusion to make critics talk about all the powerful themes in their work that don't really exist).

This article was part of yet another weekly new low for the NYTM. This week the main articles are on Megan Fox and Octomom. It's literally a tabloid now, but even worse than a tabloid because the gossip and tawdry condescenion is cloaked in a language of detached observation and pretentiousness. It's like "oh we're way too smart to actually care about Megan Fox and Octomom so we will write about the phenomenon of other people being interested in them".

Of course that's all people really want. People don't want to actually be intellectually challenged. They just want confirmation of their existing beliefs. They want opinion without facts. They want sex and gossip and soap operas. If they're sophisticated, they like to get their trash cloaked in a veil of higher culture (see, eg. Mad Men, 2666, etc.).

.. also Passage does indeed invoke powerful emotions. It doesn't make you think about mortality or futility unless you're a fucking moron. But it does make you feel frustration, disgust, disbelief, anger, and finally sadness that you wasted your time on this pile of turd and that our cultural critics fall for this nonsense so easily.


11-14-09 - Stereotypes

I cop out of fashion choices. I like to just wear jeans and t-shirts because it shows that I'm not trying. When girls ask me about fashion things I say "I dunno, I suck at fashion, don't ask me". Of course the real issue is that I'm afraid if I try a little bit, it will just look shitty and look like I'm trying and failing. I don't want to put in the time and effort to really do a good job, so instead I just intentionally do a really bad job.

This is a shitty position to be in (not wanting to try all the way so you intentionally don't try at all). It would be much better if you could just try a little bit. The problem is that it works so well. When you try a little bit, the world mocks you. They don't appreciate the fact that you're making an effort, showing what you can do, even if you suck.

I think when girls do the whole "do I look fat?" or "you don't really love me" routines, obviously it's partly insecurity, but it's also a dominance game. They get you to prostate yourself before them, to whimper and beg them to feel okay, they humiliate you, and then if you have performed like the lowly dog that you are to their liking, they show mercy and forgive you.

Women use their emotional powers to manipulate and attack men; when women feel vulnerable or demeaned they lash out with painful words. This is a balance for the physical dominance of the male; we could beat them up at any time and they're a little terrified of that and try to defend themselves and achieve their own sort of power in a relationship. It's only fair, I don't think I'm saying anything controversial; men are very naive about interpersonal war, most women are far more adept at it, and of course they use their skills for their benefit. Women use their sly emotional dominance skills on other women of course, but also on their lover, something that most men find terrifying and revolting. There's a power gap - both sides know the man is physically more powerful, and that's a shitty feeling for the woman to have, even if you never use that power. It's sort of like a non-nuclear state being in negotations with a nuclear state. Like hey, we know you're never gonna use the nukes, but dude you have a picture of one on the wall, that makes us feel a bit uncomfortable here.

Digital ovens are such fucking retarded bollocks. I shouldn't have to hit Plus/Minus to set the fucking temperature. In order to put my oven to Bake at 400 I have to hit something like 10 key presses; I have to hit "bake" "temp set" "plus plus plus plus plus" "bake". It should be a fucking spinny knob like the old days. And my fucking OVEN SHOULD NOT BEEP AT ME EVER NEVER EVER !! Not when I press buttons, not when it reaches the desired temperature, never ever never. Fucking electronics everything flashing and blinking and beeping is a fucking awful noise polluting annoying turd. Turn off all the lights in a house these days and it's fucking red and green christmas light city of blinks everywhere. The old plain mechanical ovens with an analog dial you turn to set temperature were just about perfect in terms of user interface and usability. You modern designers all suck so damn bad.


11-13-09 - The Pixies

The Pixies are touring now. I think when you go to see a band relive their glory days even though they sound awful now, that's the defining moment when you become a pathetic old fogie.

11-13-09 - Noise

I really hate the trend for heavy noise reduction in photos these days. Heavy noise reduction gives everything a weird playboy-airbrushed kind of look with big flat solid color patches and super crisp edges. It's fucking gross. It's tacky, it's tasteless. It's like the fucking photos that people make black and white except for one object left in color. (It's almost as bad as all the mangled HDR that people are doing to make these gross artificial-color shots). Makes me want to fucking vomit.

Canon have played a dirty trick with the S90 by putting some pretty heavy noise reduction into the firmware that becomes stronger at higher ISO. Of course that's sort of what you want, but you want to do it outside of the camera ; noise reduction is a lossy operation that kills information.

The worse thing is that all the review sites play right into their hands. They will mention the S90's strong noise reduction, but they also show direct side-by-side images from cameras , eg : S90 vs LX3 and then say "the Canon shows significantly less noise at high ISO". Well fucking DUH. You aren't comparing apples to apples. Then you have geniuses like this guy who say they are doing a fair test because they don't run outside noise reduction software. Well, no that's not a fair test if one of the cameras has more noise reduction firmware. It is clear that the S90 has some kind of newer fancy noise reduction alg in the firmware, like bilateral filtering or something. There's no such thing as comparing the "raw image that the camera makes" any more by not doing post-processing in software, because the cameras all cheat and do different tricks in firmware to make their images look better.

Anyhoo. I was pondering why digital camera noise looks so objectionable. Real film noise doesn't look awful. If you take shots without enough light on a film camera, you get a nice speckly grain. Digital cameras look much worse. I think a big part of it is the uneven color matrix thing that DC's use which gives the noise ugly chroma shift speckles. The only other things I can think of are the clamping to 255 and the fact that we JPEG after noise which smears it into DCT basis functions.

One thing that's a bit perplexing is that printing noisey digicam photos makes them look a million times better. Again I'm not sure exactly why all this is. Surely one reason is that printed pixels are actually little ink blobs that run into each other and blur; this adds an extra physical level of some kind of gaussian like blur, but it's better than any digital blur you can do because it's operating at near-infinite subpixel resolution (aka the real world).

The S90 has a low-light mode that makes images with 1/4 as many pixels, presumably because they're binning 4 buckets on the sensor together to get more light per pel. I wonder if they're actually doing anything better there than what could be done as a post-process. BTW it occurs to me that you could make a much higher quality black & white digital camera if if actually had a sensor with no color filters on it, so every bucket was open to any type of photon; it would have a true pixel at every bucket instead of the funny chroma selection that color digicams have.

old rants