Old Rants 4


The older rants are semi-regularly moved off this page. You can always read the old rants here (or here or here ) if you're a masochist. You can see some of my photos at Flickr .


11-25-07

So Youtube is totally broken if you tell Firefox to not save passwords. If you try to upload a video normally, you fill out the description and hit upload, then it says "enter your password" but it's a confirmation email screen. Okay, so you enter your password, it sends the confirmation email. You click the confirmation email and it takes you to a page that says "email confirmed". Now when you hit upload again you go back to the description page and repeat this cycle endlessly.

I have found a way to get videos uploaded though. This seems to be the best process : log in, and go to My Account and click on My Videos. This will trigger a "confirm password" screen. Do that and click the confirmation link in the email. Okay, now do NOT click Upload. Instead click My Account again, click My Videos, and click "Upload a video" from there. You should be able to proceed now.

WTF.


11-25-07

If you like hiking and enjoy nature, do NOT read "A Walk in the Woods". If you enjoy condescending jabs at the South and Americana interspersed with random statistics and historical trivia, you will love it.


11-25-07

So, I used to have a Persimmon tree at Alrita and hardly knew what to do with them. It turns out I had an "astringent" tree. I don't know the exact type. Persimmons come in two very different familes, the astringent and non-astringent. Astringent are ripe when they're super soft. If you catch them at just the right moment they can be a sort of pleasant jello-like sweet gel jelly gel gel. One day later and they start getting really liquidy and gross. I guess they might make good jam but the only thing I ever liked with them was bread, persimmon bread is kind of like banana bread or pumpkin bread, it's quite tasty. Anyway, the other type is "non-astringent" which you can eat while still crunchy. They're only slightly sweet and I've come to like them quite a bit with just a bit of fleur de sel. Many people here refer to the two types as "Hachiya" and "Fuyu" because those are the varieties that we typically see; Hachiya is just a variety of astringent persimmon while Fuyu is a variety of non-astringent persimmon.

I took this picture at market today :
image
Fuyu persimmons to the lower left, Hachiya to the upper right

I have leftover Panettone so I'm going to try making a Panettone-Persimmon bread pudding tonight.


11-24-07

8 oz Dark meat turkey = 425 Calories, 36% from fat
8 oz White meat turkey = 357 Calories, 20% from fat

That is in fact a noticeable difference and if your diet is *extremely* clean it might be significant to you, but for the average person another 50 Calories of fat is a drop in the bucket. The NYT did a similar comparison but based on 1 oz servings which is totally retarded, it's similar to what "Pam" does in order to claim to be "fat free". The amount of fat is so small it rounds down to nothing.

8 oz Dark meat turkey has 16g of fat. The minimum you should eat per day is around 25g. My goal is to eat 60-80g of fat per day. BTW the proper serving size for someone who's not bulking is 3-4 oz.


11-24-07

One thing I've learned living in the city is that city people really are way way better than country people. The population of San Francisco is like the cream of the US (and similarly for New York, less so for Boston, Austin, etc. etc.). There are so many gorgeous people, and they're intelligent, musicians, artists, cooks, the food is unbelievable, the people are aware of politics, cultured, they're up on current fashion, news, etc. It's a real shock when you go back to the country or the "heartland" and you see what a fucking backwards cesspool most of America is. The people are ugly, fat, uneducated, they speak poorly, they're woefully out of touch with the news and culture and fashion, their taste is just laughable, the food and decor that they like is just so disgusting and tacky. It's really not a question of needing to be "balanced" or remove the bias against the country; the best people of the country leave and come to the city, what's left are the people who couldn't make it for whatever reason, either lack of ability or lack of gumption. (obviously there are tons of exceptions, we're just talking about the general trend here). This doesn't apply so much for the people born and raised in cities, who you can tell by their dingy clothes and lack of eagerness, it goes for the huge amount of newcomers.

Another thing I've learned is that city people have way more sex. I think San Francisco is probably even well above average in the US in this regard, but it's just a sexual playground. People move here and go nuts. Not only is there the anonimity of numbers, there's a straightforwardness about it, people are too busy to mess around with dating, they go straight for the kink. In SF there's the added idea that anything goes, there are tons of membership sex clubs here. So many people move here for an "adventure" and the most adventurous thing they can think of is having a threesome.


11-20-07

Hitman movie continues a long line of "why the fuck did they decide to make a movie out of this videogame?" ; it has no story, no characters, absolutely nothing that suggests it would make an interesting movie. Plus there have been a billion other hitman-based movies already that are all better. I mean the only thing worse would be a Doom movie or a Dungeon Siege movie or a Mario Brothers movie, AMIRITE ?

Anyway, this reviewer pissed me off :

Ultimately Hitman is about bullets, blood, and bombs. For die-hard fans of the videogame, there is much to relish in terms of cobblestone car chases, punishing fistfights, cool weaponry, impossible physical feats, and ear-popping gun battles that rage through exclusive hotels in exotic locations.

Yeah, we like videogames with lots of action, therefore we will like movies that have nothing but action. Nevermind the fact that you aren't actually doing those things when you watch a movie, which takes away the whole fun and immersion of the violence. Maybe they should make a movie based on Unreal Tournament. All they have to do is put in tons of shooting and respawning and it will be a favorite of video game fans! Or they could make a movie about Chess and just show nothing but pieces moving around the board. I mean, people who play chess just see the pieces moving, who needs stories or characters in the movie!? If you have no clue WTF you are talking about then just shut the fuck up.


11-20-07

I've got horrible code writers block. I've been trying to make myself finish this certain project for the last like 6 months. Days like today I make myself sit down and I open VC, and I browse around a few different cpp files, make some notes about what I should do next ... and then I just can't get going. Maybe I write a function header and then I decide that's not really the right way to go. Sometimes I'll pick some little stupid peripheral thing, like working on my Timer class or something that doesn't advance me towards completion at all. It feels horrible.

To make it worse I didn't sleep at all last night, as has been happening often lately. I went to bed around 12. At 1:30 some people coming home from the bars walked by outside, some guy was on his cell phone. At 2:30 Dan came to bed (she falls asleep on the couch a lot). At 4:00 someone in the building went in and out; I think they were going to catch a plane, I heard roller wheels like luggage. At 5:30 the garbage truck came down the street, which has horrible loud beeping on top of the loud sound of the arm lifting garbage cans. At 8:00 Dan started getting ready to go to work and I realized my chances to get a little sleep were all past.


11-19-07

Some different Thanksgiving suggestions :

Plain roast pumpkin is really delicious. Scoop out all the pulp, cut into moons, rub some olive oil on, salt & pepper, and roast in the oven for 30 minutes or so, just like a butternut squash or something. Finish with a pat of butter and maybe a drizzle of honey or a tiny dash of nutmeg. Roast beets and roast brussel sprouts are also easy to do in a similar way and go great with thanksgiving.

Grilled polenta is a really convenient thing because you can make the polenta the day before and just grill it at the last minute. I recommend using a spring-form pan to cool the polenta in, it makes it really easy to pop it out and cut nice perfect wedges to grill. Coat very thinly with OO before grilling. Use a vegetable peeler to cut flakes of parmesan to top each wedge.

Make a cranberry gastrique instead of regular cranberry sauce. Combine 1 cup sugar, 1 cup cranberries, 1 cup red wide vinegar + 1 cup red wine. Boil then reduce to a simmer for 20 minutes. Mash the cranberries. If it's not thickening enough you could add a cornstarch slurry. Of course you can add whatever other flavor elements you want; some standard would be a bit of orange rind or some ginger. If you want it chunky you can serve just like that, or you can blend some of it or all of it. You can also strain through a mesh strainer if you want it really smooth. It should be bubbling and syrupy when you take it off the heat and it will thicken more as it cools. Oh you can also finish with butter if you like.


11-19-07

Ben Stein has always been an opportunistic scum bag; he's sold himself and repeated his Bueller character in horrible commercials, of course he's an arch-Republican and his New York Times articles are very juvenile-Republican-Ayn-Rand-myopic intellectualism. Anyway, the new "Alaska Seafood" commercials make me sick. They don't say "seafood is great, eat some" they say "the oceans are full of fish, eat all you want, there's a lot more out there". It's such disgusting lie, just thumbing a nose at reason, and winning since they're on TV and logic isn't. The reality is that the oceans are being destroyed by overfishing and line dragging. We don't see it because we don't live in the ocean, but the affects of man are near catastrophe. As our human population continues to skyrocket, the fish population is plummeting. Already many species are in desperate conditions, and worst of all very little is being done about it world wide. This kind of advertising is just so irresponsible it makes me want to boycott Alaska seafood. This page is a little old but very thorough.


11-18-07

Simpsons today made a "black guys have big dicks" joke; wow, it just blew me away when I saw it; that's a 90's-comedian level of comedy, I expect that stuff on "Premium Blend" but Simpsons mostly doesn't go into that ridiculous cliche cheap territory. It's been a steady downhill since about 1999 and this was one of the major milestones to me on the road to comedy garbage. As much as I hate to admit it, the Simpsons is hardly even watchable any more; it just barely makes the TiVo list mainly on the merit of the fact that there's nothing to replace it, but if the Sunday night football game was ever any good I would watch that instead.


11-18-07

We're losing all the people with really weird cool looking faces. Everyone is getting too healthy. You know how everyone in Sweden just looks clean and has good posture and a healthy glow? How boring! If you look at like old photographs, especially of peasants, there are all these people with bizarre facial features (aka "character"), which I guess comes from malnutrition and disease and such, and that's going away.


11-18-07

I really really just don't get people who dress weird every day. I mean, I get doing it once in a while, it makes you feel weird and you get reactions from people and all that. But, like on a daily basis, just going to your job. Like a guy who wears bow ties. Or someone with bizarro facial hair like Jared Diamond (a "chin curtain"). Or the hipsters around here who go really bizarrely allout with the style. I just can't imagine what's going through their head when they get dressed and all day long as they go around town and get stared at, and people like me give them "what the fuck is wrong with you" looks. I mean I just can't explain it other than they must be partially retarded in certain brain pathways.

BTW it's much easier to understand with something like the 80's extreme punk culture, where the elaborate costume is partially a form of protest, but also a way of peacocking to other punks to show your coolness.

I also don't get people who can actually write serious programs in less than a day. I hear people say "I wrote a jpeg library in about a day" or "I wrote this seam carver in about a day". WTF? Really? I can only assume they're either lying or they're super geniuses. Even back in my youth when I was crazy fast it always took me a week or so to write anything serious. Maybe I'd getting working in a day but it would be totally buggy and nonfunctional, then after 3 days I'd realize I did it wrong and start over, and finally rest on the 7th day.


11-18-07

God "Beowulf" looks so awful. The CG is just disgusting looking, something about that super fake bad animation just hurts my eyes, and I HATE HATE HATE the CG stages with real actors on them and the stupid drop shadows and full-screen flickers and all those other lame tricks they do to try to merge the chromakey. These kinds of movies will not age well. Hey, I want to make my characters look like cardboard cutouts oddly stuck into an oversaturated unmatching background! Oh, then animate these stunt moves instead of getting standins, and I want the moves to look as jerky and unhuman as possible. Great idea! How avant garde!

On a semi-related note, we saw "Mirrormask" recently which is the same sort of horrible super-fake-looking CG, but it's way way better. For one thing, the designs are not supposed to be realistic, the characters are in a dream world and the designs are all the wild stylized Dave McKean stuff, which is what makes the movie worth seeing. I found the story and acting to be pretty juvenile, but Dan thought it was an accurate depiction of the struggles of a teenage girl. The backgrounds are totally flat and the characters look like they're standing on a page - you have to sort of pretend that's what's happening, it's almost like they stepped onto a comic book and are standing on the pages. Okay, it's still bad bad bad but it's not as bad as something like "Beowulf".

Zemeckis I guess likes to work with technology; he did Polar Express and Roger Rabbit, but if you look at his oeuvre it's evident that's he the master of semi-pleasing unremarkable pop fluff. Most of his movies are sort of enjoyable, but not at all risky, have no emotional connection other than cheezy sentimentality and don't say anything about anything. I didn't like Forrest Gump at all, so I guess "Back to the Future" is his best movie, which was quite enjoyable, but you could go back in time and prevent it from being made and there would be absolutely no bad consequences.

BTW I noticed the credits for Mirrormask actually credit each of the technical artists specifically and even says what each one did. I don't think I've ever seen that on any other major CG movie, it shows a lot of respect for the artists.


11-18-07

XBLA game ideas :

Mafia/Werewolf game that everyone loves right now. The code for this is so trivial, it's almost totally played just over voice comm. But it would be cool to have the xbox faccilitate the rounds and the day/night and randomly assigns everyone's secret identities, does the voting, lets the seer act, lets the werewolves talk at night and just turns their mics on, etc.

Army vs. Terrorists game. Team "shooter" trying to capture the dynamic of Iraq. One side is a squad of like 4-8 guys that's like the US Army - they have totally superior weaponry, night vision, money, whatever they want. The other side are the terrorists and they have a specific mission to accomplish, the Army side doesn't know what the mission is. It's always played on the same decent sized map, but the mission is random, it might be blow up a mosque, or assassinate a diplomat, etc. there are various sites around the map. The terrorists big advantage is they look just like the civilians and there are tons of civilians wandering the map. So the army guys basically have to wander around the map looking for suspicious behavior, maybe they can also leave decoy targets or decoy munitions to try to lure the terrorists; once they actually figure out who the terrorists are or what their target is, it's pretty easy for the army guys to take them out. Somebody must've done this already but I've never really heard of this dynamic existing in game, it seems like most people who do Army vs. Terrorists just make standard shooters with different graphics.


11-17-07

"The Tree of Wooden Clogs" by Ermanno Olmi is a beautiful, slow, sad pastoral movie. It's a three hour long, and the plot and character development is very thin; it's really just a picture of life. Most of the scenes serve no narrative purpose, they just portray the lives of the Italian peasants working, praying, struggling, loving. It is a little overly sentimental, but we can forgive that.

I really liked "Il Posto" too. (not "Il Postino"). It's of a similar style, like an eye on life, but it's contemporary with when it was made which makes it rather more realistic; it's the better movie of the two I suppose, but the depiction of the dehumanization of modern society is a little painfully close to home. It's much more fun to watch peasants in the countryside and pretend it would be a lovely way to live despite the crushing poverty and hard work.


11-17-07

It's really a tragedy that Hugo Chavez is such a nutter. Not only is he bad for Venezuela, he's bad for populism across the world. Countries will see the havoc he's causing and choose to not elect populist leaders and instead stick to the IMF/WTO/US slavery model. To a lesser extent Evo Morales also appears to be a bit of an extremist nutter. I think it's a great and long-needed more for the masses of poor in central and south america to reclaim control of their countries. The wealth inequality all across the Americas is disgusting, and just about every country is plagued by these semi-state-endorsed private monopolies. The IMF/WTO/US model does absolutely nothing to help these people because it they work with the "capitalist" system that's already in place which is completely corrupt and provides no opportunities for the poor.

Unfortunately, the dictatorship of Chavez will be held up as an example of failed populism (it's not) which will help the causes of all those in the US who are against real change in the Americas. Just as an example, he's being used as an argument that "nationalizing oil is bad". That's totally retarded, nationalized oil profits make perfect sense, and just about every single country in the world with oil does it (the US is one of the very few exceptions - our government gets relatively $0 from oil under our soil, and in fact the very small amounts that we take from oil companies often go unpaid as found by the GAO). Many companies have nationalized oil companies and run them just fine; others have private oil companies but take some large chunk of their profits which also works fine.


11-17-07

Link day :

Grafica Obscura old SGI graphics articles by Paul Haeberli ; some really neat fun stuff here.

Paul Phillips Blog is just kind of scary cuz the guy is a bit too much like me. At OW when the poker boom hit we all sort of hated Paul as a TV character cuz he was such a Silicon Valley stereotype; he got lucky and cashed out and became a maverick with colored hair and sort of geeky personality. I'm definitely just jealous.

I found this Ask a Scientist thing. Wow, I was so excited, it looks so promising! Then I read some of the physics ones (which I have some expertise in) and found the answers to be both condescending and uninformed. In fact their big thing about Google on the main page is really hillarious and a good example of all the content.

This page on Tone Mapping is okay and has a decent references section.

Lost in the Static is an interesting experimental game. My eyes can't handle it, but I like the idea.

Also, browsing to a web site and having it play audio is fucking completely unacceptable. To stop it, 1. get flashblock . 2. put this in userContent.css :

/* block embedded sounds */
object[data*=".mid"],embed[src*=".mid"] { display: none !important; }
object[data*=".mp2"],embed[src*=".mp2"] { display: none !important; }
object[data*=".mp3"],embed[src*=".mp3"] { display: none !important; }
object[data*=".mp4"],embed[src*=".mp4"] { display: none !important; }
object[data*=".wav"],embed[src*=".wav"] { display: none !important; }
object[data*=".wma"],embed[src*=".wma"] { display: none !important; }
I guess .ogg should be in there too.


11-16-07

I really don't enjoy wine tasting. I used to make myself do it and try to enjoy it around San Luis because it's supposed to be "fun". I just don't get it. I do really enjoy tasting different wines, but I really don't like some salesperson staring at me the whole time telling me a bunch of nonsense tasting notes, and then the implied obligation of buying a bottle even though they're generally outrageous, and all the other people in there tasting and trying to act like they know the first thing about wine, or even if they do know a lot about wine that's often even more insufferable to be around.

Some of the tasting rooms are legitimately nice, but I prefer the tiny shack on a hill in the middle of a real vineyard over these ridiculous Disneyland like constructions with fake stones and waterfalls and all that nonsense. At Wolff in SLO you could taste outside on the terrace on the hilltop over the vineyards which is pretty ideal. Outside (nature) = good; inside (man made) = crap.

Personally I have much more fun buying a wide selection of $4.99 wines from Trader Joe's and carrying them all out in the woods, drinking them all and jumping in a river.

For comparison, test driving sports cars is really fun, so is going to high end audio shops and listening to their gear; both of those would make excellent weekend activities except for the fact that you have these horrible salespeople with you the whole time who are totally condescending and pushy.


11-16-07

I put up floatdd in the exe section. It's the little float gamma+exposure test I was talking about yesterday. I put some new funny rational exposure functions in that I think are pretty neat. It's purty, it's pointless, whatever it was fun. The general form of rational exposure is :

x * ( a + b * x ) / ( 1 + c * x + d * x * x )

As x -> 0 , this is (a * x) ,
As x -> inf , this is b/d , then you have some other parameters to play with shape.

(a) of something like 6 to 16 makes sense. The slope of sqrt or other gamma functions goes to inf at x = 0, but if you look at the actual slope of a discrete 1/255 step it's just very steep.

(b/d) of 1.0 to 1.5 is best. At 1.0 you never get white until infinite intensity which is not ideal (you can see that in the basic rational exposure modes of floatdd). Something above 1.0 means you hit white somewhere sooner (you can work out for what x exactly you hit white and formulate it that way if you want). Hitting white somewhere around x = 3 or 4 feels good to me.


11-16-07

You know, the one instruction we've never gotten that would be really rad is the ability to zero big chunks of memory quickly. I'm pretty sure RAM chips could be made with a special command to make a whole 4k page zero. If nothing else you would eliminate a ton of bus traffic and CPU time.

Here's some funny stuff about Kernel page zeroing and COW that sort of does something like this, but is not ideal.


11-16-07

I've mentioned before that our system of taxes is badly broken. Roughly our system now (if we ignore Bush's temporary destruction) is a progressive income tax with lots of little regressive taxes and deductions and tons of exceptions.

Many of the deductions are designed to motivate certain good behaviors, but I believe that doesn't really work. Rather they just motivate people to find ways to save on their taxes and don't actually lead to good behavior. This is because they're too specific which leads to "I can do this to save on taxes" rather than "I need to behave differently to save on taxes".

A classic example of this is the hybrid car deductions (or solar panel deductions, or energy efficient appliance deductions, etc.).

The problem with these deductions is they are sort of one time things that allow rich people who can afford them to do something and get some bonus money. While it does have a certain small positive effect, it's not nearly the effect you could get through actually motivating people to do the right thing.

So people with hybrids get deductions, but people who carpool get nothing. Same with people who just don't buy a car and use public transit or bicycle. People who choose to live closer to work get nothing. And people who own 3 SUV's and also a hybrid get the deduction. Clearly the money is not reflective of benefits to emissions at all, and conceptually knowing that the hybrid deduction is out there is not a thought in people's heads which affects their day to day behavior. (it may affect their car buying choice, which is the small positive effect, but it doesn't encourage them to not buy a car at all, and it has this bizarre nonlinearity)

The best way to do that is through the capitalist system, where people can look at prices and make decisions. The problem is that prices do not reflect the true cost of things, and the government should logically step in to remedy that.

In the case of emissions, you have the ideal method - gas tax. Not only is this the ideal motivator, it's only a fair reflection. Gas taxes should pay for all the highways, bridges, vehicle testing, oil pipelines, foreign expenditures for oil, as well as the estimated long term future cost of cleanup due to emissions and other waste. This lets people see the true price and make a logical decision. The republicans weill say "but the taxes!" , well of course you can lower the income tax by the same amount that you take in, so there's no total change. The question of how much total tax you should take in is separate from the question of from where you get it. Anyway, regardless of the fairness of the charge on the gas tax, it's the best way to motivate conservation.

It's hard to think of any deductions in the tax system which are actually beneficial to the country and wouldn't be better served as fair usage taxes in a more capitalist pricing model.

You get the same thing on bigger scales with corporate tax breaks. Rather than motivate good behavior, they generally just provide loopholes and pork (free money) for specific companies that figure out how to capitalize on them. You would get much better results from using a market-based charge system. The goal should be to motivate companies to do the right thing on their own, economic benefit should correspond with national benefit. If for some reason they can't, they should be able to choose not to and just pay the price if that makes more sense. That price should be set high enough that the populace is willing to accept that payment in exchange for their bad behavior. If you think about that way, that price should be very high. How much money should a company pay to cut down a forest or blow up a mountain, or destroy habit? Every company that uses electricity is playing a small part of that.

Other obvious cases I've mentioned before are the fees charged to mining and drilling and logging companies which are not close to covering their actions & not close to motivating conservation. Another obvious one is the cost of water. Not only is water ridiculously subsidized across most of the US such that the cost of water doesn't pay for the infrastructure that delivers it - it should not only cover that but also be expensive enough to balance the environmental damage due to using that water and motivate conservation.

I don't mean to use Europe as an example of a place that gets it right because they certainly screw plenty of things up, but you can see the difference in behavior of everyone when prices are motivating. In many countries in Europe not only is gas very expensive, but so is power and water, and everyone just gets in the habit of conserving - people turn off lights when they leave a room, they wash dishes with the minimum of water, they reduce driving as much as possible - it just becomes part of your daily living, which the US system of tax breaks doesn't accomplish.

Of course this is likely to never change in the US because "tax break" sounds good while "gas tax" sounds bad, even if you adjust the overall rates so that the total tax taken is reduced, you'll get destroyed on the soundbite news programs.


11-15-07

I'm so far out of knowing what's up with hardware (I didn't even know AMD bought ATI's card business). Anyway, this got me excited -

The flash ("SSD") hard drives coming out now are very exciting; they seem a tiny bit too early to jump on just yet, but in a year or so they should be big and fast (64 mb is common now and bigger is available but the prices are still insane). Better read speed is sort of meh, but the super fast seeks are awesome (of course using all this hard drive terminology is kind of silly, there isn't really a seek). Best of all is the silence. Ah the sweet silence, and lack of spin-up and spin-down sounds and delays. Also the reliability is pretty appealing to me. Dealing with hard drive crashes is not fun. Oh yeah and they're very small and low power so they are awesome for notebooks.

On that note Intel's 45 nm (and smaller) cores are also killer for notebooks; we're going to have some super sweet notebooks in 2008. I don't know what's up with GPUs but it looks like powerful GPUs might be the biggest energy draw and heat generator in 2008.

On the flip side the "Hyperdrive" RAM hard drive thing is totally retarded. Taking a bunch of RAM and segregating it off and calling it a "disk" is just a freaking ram disk that you can do in software, or not do! There should just be more RAM slots on the main board and a battery backup so it's persistent.


11-15-07

I'm using KeePass for all my passwords now. It's reasonably easy to set up and use, though the auto-import from Firefox is kinda broken. Anyway, it provides absolutely zero security against local machine spies such as keyloggers since it uses unsecure methods (either typing or the clipboard) to enter your data into web forms. It has no choice, Windows doesn't provide a way for apps to securely communicate with each other (I dunno maybe Vista improve this? you would also have to sign the apps so that they can know they are talking to the app they think they're talking to). Also Firefox could provide custom accessors to fix this as well, they could have their own PGP key inside firefox, make the public key public, and let other apps encrypt things with the public key and send them to Firefox, then internally decrypt with the private key and send it on the web, which perhaps you keep hidden at all times if you're on an https page (I imagine there must be a way to change your encryption algorithm without actually ever decrypting).

Anyhoo, the only thing it really does do is let you use a different strong password everywhere you go. That makes you secure from leaky sites spoiling your entire security. So one of the sites you go to is corrupt or just incompetent, they can't get to all your other sites. What with having money on poker sites of dubious integrity, that's a pretty useful protection.

Unfortunately that still doesn't protect you from the retarded fucking banks which seem to just lose hundreds of thousands of records on people all the time. It's so retarded that you can't change your social security number. You should be able to get a new one once a year. The government would keep a record of who corresponds to what numbers, but would only provide those records to law enforcement. Similarly with drivers licenses and credit card numbers. And anyway WTF why do I need all those different numbers, just one number is plenty. Being able to change it once a year severely reduces the risk of identity theft, and also makes it easy to catch them when they try to use someone's old data.


11-14-07

I put up the assembly for ConvertColorsGamma that does 4float -> dword color conversion and gamma correction. This is like super non-optimal assembly, and furthermore you can do this a lot faster with video cards these days (in fact they pretty much do the whole thing for you). I'm not very good at writing assembly anymore, I'm not even sure what the major issues are (other than memory accesses).

I've looked a little at the ASM output form the VC intrinsics and it looks pretty good; the compiler will do reordering and all that good stuff for you, so dumb assembly like this should pretty much be written with the intrinsics and let the compiler do the little stuff.


11-14-07

A little more on the rough Gamma thing. Another cute thing to do would be to go ahead and combine our Gamma step with an Exposure step. Now instead of taking linear light in [0,1] we're taking brightness in [0,inf] and we still want to output in [0,255].

We want a function like 255*(1 - exp( - C * x )). For x = 0 we output zero, and we get 255 as x -> inf.

We can make this match the gamma curve for low x. Again just assume gamma = 2 and match against sqrt. When you do the integral to optimize C, you get an error function which you can't solve analytically so you have to do it numerically. I just ran rough numbers and got C = 2.69 which is awfully close to "e" (2.718) so I wonder if I did it more precisely if I would actually get "e".

Anyway that's not what we really want, cuz the exposure for large values is very different. We really only want to force them to match for the small values of x. If you optimize for the low value of x you get C = 3.0 almost exactly. (again we're integrating in steps of sqrt(x) not in steps of x).

So our combined gamma + exposure function is :

255*(1 - exp( - 3 * x ))

I have no idea if this is actually cool, I haven't tried it yet or anything.

Won says a more common tone mapping form is x/(x+C). The optimal C for matching sqrt in the low range is around C = 0.25 This form is actually a better match for sqrt in that range, but has the disadvantage of being pretty far off 1.0 when x is 1.0 (it's only 0.8, unlike the exp form which is 0.95).

Both of these forms are actually pretty shitty for very low x which is pretty bad. They do a bit better if you use e^(-4*x) or x/(x+0.2)


11-14-07

Some thoughts on metadata and reflection. So far I'm just really happy with the cblib system for prefs and reflection, and I was thinking about why exactly. Maybe it's just cuz I designed it and I'm an egomaniacal programmer like everyone who loves their own work way too much. I'm going to compare to the standard alternative, a data-based metadata system. The data-based system basically stores a list of the members with typeinfo & offsets for each marked up class. This is pretty standard and what we had at Oddworld. (The other common method is an autogenerated metadata system which is often done by putting a comment on the line with the variables; the autogen just creates the data definition for you though, so this isn't really a different system at all, though it does have some minor advantages).

BTW the "Reflection" method I'm talking about is an "imperative templated visitor" system. It's probably easiest to look at the code in cblib to tell what's really going on. Note that there's absolutly zero code to implement the "Reflection system". It's simply a policy for client classes that want to be reflected and for the functors that want to visit them.

First of all, if your metadata system is designed well it's about the same amount of work for the client in either case. In an autogen system you have to comment the members with whether they get metadata or not. At the end of the Oddworld system we had nice macros to just list all the members and it would create the right metadata through template type detection. The reflection system is about the same, you just call reflect on all the members the template finds the type.

Basically the reflection system will have client code that looks like this :

	template 
	void MyClass::Reflection(T & functor)
	{
		REFLECT(showControl);
		REFLECT(controlgraphic_x);
		REFLECT(controlgraphic_y);
		REFLECT(showMucks);
	}

While the Metadata system will have client code that looks like this :

	START_METADATA(MyClass)
		METADATA(showControl)
		METADATA(controlgraphic_x)
		METADATA(controlgraphic_y)
		METADATA(showMucks)
	END_METADATA()

In either case you could also add info about valid ranges and descriptions and whatever else extra markup junk you want to add.

So, what's the difference? There are two issues. One is how do you add a new type to the system, and the other is how do you handle weirdo nonstandard junk in your marked up classes.

Adding a new type in the description-based system required me to make a new metadata type for that class, or to somehow tell the system that it's the same as some previous type so you can use that description. Using templates here is an advantage already because it will autoconvert for identical types, as opposed to like a parser-based system that will struggle, but data-based or reflection-based can both use templates. Also in either case if your system is good, you should generate a reasonable compile error when you try to metadata or reflect a type that isn't supported. Actually that seems to be pretty much identical.

The big difference comes from nonstandard iterations. The "standard" case is that your class is just a bag of other types, and you iterate over each of those members and call the functor on those members. Of course reflection and metadata are identical for the standard case. The nonstandard case happens when you have some nonstandard junk.

The cool thing about the reflection system in this case is that it's "imperative" ; in Casey World we would say that the reflection way is "immediate mode" and the metadat way is "retained mode". Basically this is cool because it lets us interject code right into the member iteration.

For example you can do conditionals, like :

	template 
	void MyClass::Reflection(T & functor)
	{
		REFLECT(isAngular);
		if ( isAngular )
		{
			REFLECT(angle);
			REFLECT(radius);
			length = width = height = radius;
		}
		else
		{
			REFLECT(length);
			REFLECT(width);
			REFLECT(height);
			radius = (length+width+height)/3.0;
			angle = 2*pi;
		}
	}

Of course you can do stuff like this in the metadata method too but it's messy. Also, the derived-data type of fixups are normally done in a metadata system with "Finalize" type of call. The problem with that is that it's done after the metadata iteration is all done, which means that you are temporarily in a state where it's not fixed up. With the imperative method, you can fix derived data and then immediately be using it for the rest of the iteration.

For example, say you own some little other class that you don't want to bother to mark up, you can just reflect its members :

	template 
	void MyClass::Reflection(T & functor)
	{
		REFLECT(m_ptrData->x);
		REFLECT(m_ptrData->y);
	}

Basically you can do whatever you want because it's just code. More than anything, that freedom just feel liberating. You're no longer locked into a system where you "must do it like this" for it to work.

Oh yeah, the big disadvantage of the Reflection way is that it has to be in the header. IMHO that's not so horrible. It's no worse than having the members in the header. If you want to hide the members you have a pImpl thing already, or a derived class, or whatever. So you have the members and the Reflection there with the pImpl. Now, you can't get through to it with arbitrary template functors, but you can still get there with specific calls passed through a concrete class dispatcher. Anyway, an advantage of the metadata method is you can iterate around in peoples' data without even seeing their header, in fact it provides a whole alternative way to do linkage, such as named variable access if you want to go down that route (I don't approve of that).

In fact you need that dispatcher anyway so that when you call Reflection on a parent class it will get passed down to the derived class. This doesn't work automatically in C++ because you can't do virtual template functions (yuck). So you have to have a virtual that will get you down to the most-derived type. You can see such a thing in "Prefs.h" in cblib. (there are different ways to do this too if you want to do more of an RTTI type of thing with a description of the classes).


11-14-07

ImDoub notes

The basic approach of the trained image doubler works like this :

The goal is take an image I and pretend it was created by downsampling it from an image of 2X the res, we'll call it 2I.

Of course there are many images 2I that when downsampled would produce I. Of those many possible 2I images we want to choose the most likely. To define "most likely" we assume that all images are generated by a statistical source.

So, how do we model this statistical source? We simply gather a big library of images {L} and say they are likely to come from the universal image source (UIS). For each of these images we have an example "doubling", we say that the downsampled image (L/2) when doubled should be L.

So we have this huge space of training samples, { L/2 -> L }, and we basically want to find our image I in that space and interpolate. That space is way too big and too sparse for this to ever work, so we make the assumption that the UIS is *local* and also *unoriented* and also *relative*.

Local means that a pixel's probability is only affected by it's neighbors. In practice we'll use the 2-ring (the immediate neighbors and their neighbors).

Unoriented means that if you take a neighborhood and flip it in X or Y or rotate it 90 degrees, the probabilities are the same.

Relative means that if you add or subtract a constant value to the whole neighborhood it doesn't affect the probabilities.

Now, all 3 of these assumptions are in fact obviously wrong. Locality is obviously wrong because images may have repeated features, like a wallpaper pattern, and obviously having the same pattern in another part of the image far away affects the probabilities in the repeated area. Unoriented is obviously wrong if you just consider images of text that obviously treat X and Y differently, and even in photos they are much more likely to have the horizon line horizontal. Relative is also obviously wrong when you get near the neighborhood of 0 and 255 where you have clamping; perhaps logarithmic-scale infinite range images would be close to being "relative" but real images obviously are not.

Regardless, we're going to use these 3 assumptions (as do almost all image transform algorithms). Furthermore note that we are NOT assumping *scale* independence, either in spatial scale or value scale. That is, we are not assume that you can multiply a neighborhood by a constant and get the same result, nor are we assuming that if you zoom out and take a wider set of neighbors you will get the same result.

Anyway, using these symmetries we can now create a much denser training set. Instead of using a whole image from the library {L} we take a local neighborhood of pixels N (the 2-ring) around each sample in L/2. We put the neighborhood into canonical form. First subtract off the average of the neighborhood, this removes the constant offset. Then flip in X and Y until the values are growing in the +X direct and in the +Y direction. This orients all neighborhoods in the same way.

This canonical form of the neighborhood now predicts a certain doubled pixel, this makes up the training set {N -> L}. Again the procedure is simply take the image you want to double {I}, form the neighborhoods in canonical form, look them up in the training set {N} and interpolate between the closest ones you find. Once you find the prediction, you take it back out of canonical form, putting the right local offset back in to create an output pixel.

In practice how do you do this interpolation? Neural Nets would work fine. So does a pure dense sample search like k-Means where you have a distance metric to find samples. Perhaps the best way is a Support Vector Machine (SVM) which is precisely designed to be ideal for this type of work; all of the neighborhood samples {N} are the support vectors and you can optimize for a desired machine size (which is equivalent to the sensitivity to noise in the training samples).

How does this ideal doubler work differently than any fancy filtering algorithm? First a little review. Normal image filters work by creating a linear combination of the local neighborhood. Any rotationally-symmetric filter can be decomposed into the product of two 1d filters, which is what everyone does (actually that's not true, needs investigation), so you can work first on the rows then on the columns. It's an inherent problem of sampling that you cannot create a filter which is ideal in terms of "ringing" and "blur" - you either have to tolerate one or the other. I'm not really going to get into this right now but it's an interesting topic with lots of papers on it.

So the first thing that the trained doubler can do is make a per-pixel decision about what filter to use - a more blurry filter or a more ringy filter. (of course it isn't explicitly making this decision, it's just finding neighborhoods where the training set L/2 -> L either looks like a blurry upsample or a ringy upsample).

But the trained doubler can do more than that. It can see patterns in the downsampled image which typically come from hard curves of various types in the higher res image, such as hard diagonal stair-steps, or even rasterized circular curves.

BTW the old-fashioned style image doublers work by explicitly looking for these types of patterns. They basically work by assuming that all neighborhoods of an image are either smooth (locally polynomial) or a hard edge of various types (horizontal, vertical, diagonal 45, diagonal 135). They best-fit the neighborhood to one of those groups and then use a different anisotropic linear filter for each case. This is how the old DPCM / CALIC image compressors work and how Wm Withers' "Augural Image Zooming" worked. These semi-heuristic approaches actually work very well.

Another way to think about it is this : for any image that we are given I , imagine we downsample it to I/2 with a filter , and then we double it through the trained doubler J = 2*(I/2). The result J should be as close to the original I as possible. This is how we can formulate the problem as a standard machine learning optimization.

Addendum : Well, back when I worked on this I did a literature search and didn't find much; Won has pointed me at a paper by William Freeman , "Example-based super-resolution" which is almost exactly this approach.


11-13-07

It would be nicer if the while() at the end of a do{}while was treated as being inside the scope of those braces, so you could continue or not using variables that are only in that scope.


11-12-07

Yesterday we went out to the Inner Sunset since it was a rare clear sunny day out there. The arboretum / bonatical garden in Golden Gate Park is really lovely. It's a detailed miniature, a densely detailed jewel, riddled with a million paths and tiny discoveries. A few blocks away is the 9th Ave / Irving Street corridor which has got a ton of little family restaurants, some of which are decent, and just a nice functioning neighborhood. I really like it out there, much better than the Mission, it feels really unpretentious, and there are great groceries and bakeries and such that cater to the locals who really COOK instead of the yuppies who read about it in the New York Times. Unfortunately it's godawful foggy out there 90% of the time which I can't handle. Anyway, it might be one of my favorite "tourist day" activities; you can go eat lunch in the Sunset, walk around the arboretum, then go to the DeYoung. Or you could just look at the outside of the DeYoung and go to the Victorian flower greenhouse thingy.


11-12-07

I finally got off my ass and started uploading some of the junk I've worked on in the last few years. Some of the stuff has mod times from January 2006 which is pretty scary; WTF happened to 2007? Oh well.

I put my new "cblib" in the Misc section. So far as I know the old "crblib" (which was ugly as hell) and the newer "Galaxy3" never really caught on with anyone (for actual use as a library), but since I have an audience of zero I'm devoted to updating them with another library that noone will use. Anyway the point of cblib isn't that anyone use it as is, but rather people can look at the code and steal some snippets they like. It's got a bunch of the old stuff cleaned up and unified as well as some hot new stuff.

Some bits you might be interested in :

There's lots of good 3d maths stuff, but it's the same stuff that's in Galaxy3 for the most part. There's really nothing new in terms of 3d stuff, but there are a few little cleanups and fixes compared to the Galaxy3 versions.

Lots of funny STL and C++ ism stuff. If you think this stuff is retarded you can have a good laugh looking at the weird stuff I do. Probably the funniest of these are the next two :

Reflection & Prefs mechanism. The code for this looks rather complex, but it comes out very very simple to use in the client and I'm very happy with how it works. My big poker app uses this system and it roxors the hizzouse. The prefs are very easy to mark up in code, human editable, and the whole system is "Immediate Mode" to use Casey's lingo which means you can do version-conversions right in the reader and nice stuff like that very elegantly. The system is so simple to the client that you can use it without understanding it; if you want to decode some template functor insanity you can try to follow the execution flow.

safeprintf - looks just like printf to the client but validates args (at runtime). I'm mostly happy with this. It has helped me find a lot of bugs already and it does create a pretty nice human readable error that tells you exactly what the error is, like "printf expected %s but got data of type (int)". You could easily use the exact same mechanism to make a printf that does conversions, eg. so you can just pass in your own String and print it with a %s, but I haven't actually done that because I'm not sure if it's a good idea. For one thing that makes it no longer directly interchangeable with printf and that could lead to disasters when you search-replace to change your printf to a fprintf or something that's not patched.

Some useful Win32 junk, like a little DirChangeWatcher file that compactly exposes the ReadDirectoryChangesW that everyone does; the "Metered Section" code that I mentioned here previously, and some goodies in Win32Util like how to make an app that can be either console-attached or make its own console, how to really mess with other apps, stuff like that.

BTW while I'm on the topic, the damn HWND system in Win32 is so fucking hosed. The handles are not unique (they get reused), they can become invalid at any time, and it's not a valid safe weakpointer system so if you are holding HWND's to other apps they can suddenly and with no notification to you either change identity or become garbage pointers. Now of course you should never store an HWND to another app's window in your state, but even if you're just holding one in a local while you do some work on it, a thread switch can destroy you. Stupid OS should've had a proper Smart/Weak pointer system so that my HWND reference was a unique weak reference.

There's a half decent BmpImage class finally; I'm still not delighted with it; how is it that I've worked on images for all this time and never really written a decent image class?


11-11-07

Hmm. So, I've often used this rough approximation that gamma on monitors is pretty close to 2.0 , so you can just use square and sqrt to degamma and regamma. Well, sqrt is kind of annoying. So what if you approximate sqrt(x) under the constraints that the approximation is exact at 0 and 1 ? For a quadratic you must have something in the form f(x) = { x + c*x*(1-x) }. This is a cool form, the first term gives us the endpoints f(0) = 0 and f(1) = 1 , and the second term gives us the curve to try to match the sqrt. Now we can minimize the error over the interval {0,1}. If we minimize by integrating in dx we get c = 0.92857. But that's sort of wrong because x is in linear light space which is not what we see, we see more like gamma, which would mean integrating in even steps of y, so if we integrate instead using dy, we get c = 1.03125 Well, guess what's in between? c=1. So a pretty okay approximation is f(x) = 2*x - x*x. This is a rad approximation because it can be done without even any constants.

BTW the inverse is x = 1 - sqrt(1-y)


11-11-07

I did some random vaguely game related stuff yesterday and put some junk up on my exe page (namely ImDoub), including fixing the broken compile of all my own DDraw toys. It reminded me how much fun that stuff was (the old DDraw stuff). So I started playing around with a full screen floating point 2d drawing engine and was wandering around looking up SSE2 float to int stuff and somehow found myself at Casey's MollyRocket Forums (oddly, one of the top Google hits for float to int was Sean's notes on his Ogg Vorbis work). There's lots of good stuff there and I started thinking how fun it is to work on technology and maybe I should get back into it.

This morning I'm back to cynical. I was thinking it would be fun to just work on an all 2d game with like floating buffers and proper gamma and everything and do some fun image self-feedback like an analog synth, and make the image the actual gameplay, but then thinking a little more about what it would take to make an actual game, it's just glue glue glue and I know I would get bored after a few days. For a game like Casey's it seems like a big waste to do anything at all novel or risky with technology; sure it's fun and maybe it keeps you motivated to stay focused on your game, but really you just need to be getting it done and working on all the PopCap-like retardedness that people seem to love so much. Hell, even with AAA games it's pretty much a bad idea to do much that's novel or risky with technology; the limiting factor for the game being good is almost always content and dev tools and all that kind of stuff. In reality the code bases are a disaster and you have to work with these teams and meetings and the fun high tech code is like the 5% and the vast majority of your time is in the glue, the tools, all that junk. Casey is a unique individual who seems to be making it work, but for a normal ADD person like me, the technology coding is a way to avoid doing all the dumb glue junk that's so boring and is actually what you need to be doing. Lord knows at every job I ever had I spent way more time than I should have on high tech stuff just to keep myself interested.

On the other hand there's working on technology or engines in isolation. That's equally unsatisfying in a different way, you just feel so disconnected from reality, like you're doing all this clever work and it's totally pointless because nobody really needs it and noone is ever going to see it and it may not even ever make it into a single product. It can be really fun for short bursts of time when you're working on something cutting edge and making discoveries and breaking ground, but then the pointlessness of it all sets in again.

There's a pure joy in like - hey I figured out how to do Perlin noise or draw Bezier curves and look I made a little app and it runs fast and it looks really pretty too and hey I can make Bezier end points fly around the screen and put a spring between them and look how fun it is. I absolutely love that work and it's what got me into games. The problem is that real game work is not like that, and I don't know how to make a career out of that kind of stuff. Part of the problem is that you can't because that stuff is easy and anyone could do it and not useful.

I guess I had the exact same problem with physics. I mean I absolutely loved learning about particle physics, and making all these realizations, and figuring out my own ways to derive things, and coming up with clever formulations and connections between things like spin and symmetry groups and all that stuff. But that's not what doing physics is like. Anybody can learn that stuff, and you can't make a career out of learning stuff that other people have figured out. Doing actual cutting edge research particle physics today is not very similar at all to that excitement of learning it, it's very similar to making games, you have the exact same kind of horrible tedious "glue" work (doing tons of hard math, verifying experiment numbers, writing grant proposals, etc. etc.) and then once in a while you get those good bits again.


11-09-07

I mail ordered a 9 pound bag of raw in-shell peanuts cuz I can't find them anywhere here. Well, I found out that 9 pounds is a whole lot of peanuts. I still haven't found the right recipe for roasting them. Alton has a Good Eats on peanuts, but I don't like his method, I can't get nearly enough salt on the peanuts that way and wind up having to use a salt-lick while I eat them. Commercial roasted peanuts are way saltier than his method. I'm pretty sure that commercial roasted peanuts are blanched in a brine or at least soaked in brine before drying and roasting. Perhaps the commercial brining is even done while they're still green before the initial drying?

So far this is my working method for peanuts : dissolve 1 tablespoon of kosher salt in 1/2 cup of water, bring to a boil, stir to make sure salt is fully dissolved. Add 2 cups of raw peanuts (in shell) and stir while boiling until all the water is gone (just a few minutes). Pour peanuts out onto a sheet pan, then put in a 350 degree oven for 30 minutes or until roasted to desired color (shells should be just starting to darken). If you can smell them in the oven they're probably done. Allow to cool - they harden as they cool, so you can eat them sooner if you like them warm and somewhat soft.

Revision : I think it's better to use just the minimum amount of water possible to dissolve the 1 tbsp of salt. That seems to be slightly more than 1/4 cup of water. It won't dissolve until the water is nearly boiling.

Peanuts can be roasted to various amounts of doneness, and it's pretty much exactly analogous to a coffee roast. Lightly roasted peanuts still taste somewhat grassy, more like a boiled peanut. Medium roast is what you normally get and think of as peanut flavor. Dark roast brings more of the oil to the surface and has a stronger sort of charred flavor, just like a french roast coffee. I enjoy all the different flavors of a peanut, but my default is somewhere in the medium-dark range. One of the real joys of roasting yourself is getting to eat them while they're still warm. They're SOOO much better than roasted chestnuts which I still don't understand.


11-09-07

Ignacio pointed me to this game September 12 at Newsgaming. Go play it now then we can talk about it ...

.

.

.

Ok, so you see it's a little moral game with a message that you discover for yourself. It's pretty obvious what it's going to be right from the beginning. I don't really think that this game "works" in the sense that it doesn't actually teach anyone anything, and it will never convince anyone to change their mind on the topic. That is, people come into the game having a preset idea on the topic, and the game just reinforces that. People sympathetic to the message will go "oh yeah" while people who don't agree will think "this is stupid, it's not like this". Of course the movies of Micheal Moore et.al. are pretty much in the same boat or even worse.

I was thinking about what it would take to make a game that could actually change someone's mind. It's something I've always wanted to do and something I often think of. People are so pig headed, they have some retarded idea, and they can manage to see every bit of news in a way that just supports their preconception, and all the news that doesn't reinforce their preconception they either just ignore or claim is lies. With games, in theory you can put them in the actual position of the thing they misunderstand, and make them actually make a decision, and perhaps they will see the logic of the decision that they disagree with.

One of the key factors to successfully teaching someone in this way is that you have to let them discover the connection to the real world issue themselves. If you show that this is a game about terrorism, or a game about global warming, or whatever - you've already lost. As soon as they see that issue, their head fills with their preconceived ideas, they presume that your game has some certain message, and they're not going to convinced by anything they see. They begin judging the game based on how it fits their preconceptions - either they approve or they think you're full of it - they no longer judge the scenario on its merits.

Instead, you have to present them with a purely logical or immersive situation in which they are making a decision based on either rational thought / logic (eg. if I do move X I get more reward than move Y) or their immersed emotions (eg. I need to save my character's family). That is, they're judging it as a fresh situation seperate from their memories and their political identity.

Once you achieve that, hopefully they can make the connection back to the real world issue. This is a tricky part, because if you're too obvious about it, then they will see the hand in the machine and know they've been set up and reject the lesson, but if you're too subtle they won't see it.

Of course, getting to children is much easier.


11-09-07

Sometimes when I'm walking around the Mission I like to pretend there are sandworms under ground, and I have to walk without rythm to avoid attracting them. It's really hard to walk arythmically, if you stop concentrating for one second you will slip into a pattern.

I also like to do the little skip-step that they do at the end of Buckaroo Banzai when they're walking around in that big concrete flood basin or whatever that is.


11-08-07

For movies, there should be a service like Netflix where you order your queue, but instead of coming by mail it digitally downloads in the background. It could either just be on your PC or perhaps through your DVR (Tivo). They could easily use some DRM thing so the movies aren't copyable, you can watch them, then whenever you want to send it back you hit some button and it becomes unavailable and the next one downloads. This has tons of advantages over the regular mail, for example you can hit "undo" on your mailing and get it back immediately if they leave the file for a bit, and the next movie in your queue can be pre-caching so that you get it immediately. And of course you never have to worry about the newest releases being unavailable.

For music, my big problem is that I really like to download and listen to something before I buy. Subscription services would be great, the problem is the record labels don't want to make their catalogs available. One thing I'd be happy with is a listen-limited free download. So you can download any music for free, something like 2 listens per song is free, and then after that it locks up unless you pay for it. I know you can preview songs at Amazon and iTunes and such, but I can't really getting a feeling for whether I like something when I do that preview.


11-08-07

I continue to be right about the shitty US economy, and I put a real recovery at at least 2 years away. Unfortunately I continue to play it badly. Some "expert" on the interweb gave me the idea of buying some TIPS as a bet on a bad economy, but that hasn't gone well at all. A better play would've been some leveraged shorts of the dollar, or just buying gold. Unfortunately I'm unable to find good advice.

Hmmm.. I wonder to what extent the current over-leveraged operation of the US economy is due to "Rich Dad, Poor Dad" ?


11-07-07

Sleep inventions :

padded knee pajamas : when sleeping on your side, you ideally would have a pillow between your legs to raise your upper leg so your hips are more neutral. But that never works, you toss and turn too much and the pillow gets all messed up and just becomes annoying. So, we've created Padded Knee Pajamas. These pajama pants have a ring of cushioning all around the knees about 1 inch thick, so that when you lie on your side your knees are seperated just like having a pillow between them.

warm human size body pillow : didn't I post this before? I can't find it. Anyway, this is the ideal sleep solution for single people in cold weather. It's a standard large "body" pillow that you sleep with, it just has some heating elements in it so you can warm it up. The heating elements are just standard electric blanket coils with a thermostat so you can set it close to body temperature of a normal human. The core is a latex gel like the fake flesh of sex toys which spreads the heat so there are no hot spots and gives it a pleasant fleshy squishy firmness.


11-06-07

So I've ripped all my CD's and I'm finally listening to music via mp3. 68GB in 12775 files. Despite what the scientists claim, I can *totally* hear the difference in sound quality between a CD and a 320kbps mp3. With the mp3 there's this horrible sound of whirring and air that seems to always be in the background of every song. (that's a joke, btw)

Back when I used to work on 3d stuff and I would crash my machine every 30 minutes, I though the idea of playing music on my computer was totally retarded. The #1 most important time for me to have music is when the machine is rebooting, as the music soothes the savage beast and keeps me from totally losing it after the fucking driver and 3d crashed me once again. Now that I rarely crash I still think it's moderately retarded.

When I got the amp back I went fishing for some tracks that really sound beautiful on the old stereo.

Radiohead - on OK Computer - tracks 2 and 3 - but just the instrumental intros, those sound great on any system but on a clear analog system with separation they're just delicious.

U2 - a lot of stuff on Joshua Tree sound great.

Timbuk 3 - Big Shot in the Dark - especially track 1, but the whole album has a really great sound, lots of space, but also really wet.

Bjork - on Homogenic - especially Bachelorette but also Hunter. I bet these sound amazing on anything.

Sufjan Stevens - not really something that sounds "amazing" cuz his music isn't really beautiful to begin with, but sounds incredibly different and much better. The layer really come apart and surround you. Actually this is one album that would be really awesome to have in 5.1 surround, or to listen to at Audium or something. I'd love to see like Beirut and Sufjan do pieces for Audium.

The standard thing that stereo stores use to show off an analog stereo kit is acoustic classic rock, especially live recordings. Yeah, it works. The Eagles and Buffalo Springfield actually sound good and you can forget how overplayed the songs are. Supposedly part of the reason these sound so good is they were mastering for vinyl back then, and doing some things differently, I dunno what exactly. I hear that today they actually master with headphones/digital use in mind which means a lot of albums have "crosstalk" intentionally built in which is super lame.

BTW that reminds me, headphones should be cross-mixing the left and right channels somewhat, the extreme seperation you get is totally wrong and evil. I guess there are some iPod mods that do this and call it "Crossfeed", or there's the BitHead AirHead which is a bizarro hardware device to do the same thing. Apparently most headphones have quite a large amount of undesired "Crosstalk" which bleeds the channels, but that's not really desirable because it's not got the right offset/phase, and since it's inductive I assume it's also low-passed. I guess more generally rather than just mixing L & R you should do some of that 3D HRTF stuff to simulate the sound is affected by your head. eg. what you actually play in your ears (via the headphones) should not be the same L & R that you play at speakers, they should be convolved by the operation of the sound travelling from theoretical ideal speakers at ideal locations through the air and to your ear holes. So far as I know, none of the standard audio apps actually do this even though headphone listening has become extremely common. I guess part of the problem now is that people are mixing for headphones, so if you apply the convolution it's like you're doing it twice. Mixing should've been standardized to an ideal speaker listening environment, and then any modification of that should've been done at playback time, where the player can know the geometry of their actual setup. Obviously people have had these ideas before. I just randomly found this cool and bizarre thing - the Smyth Virtual Surround Technology that converts surround sound to head phones and does all the HRTF measurement junk. Anyway, this is getting overcomplicated; just doing a simple LR mix is super easy and it's just retarded that the iPod doesn't do it by default; songs like Bjork's Hunter that does extreme LR stuff sound really great on a proper stereo but just sound like awful garbage on unmixed headphones.

Oh, of course if you want to go even more nuts, ideally every instrument would be recorded with positioning info, and then on playback you could choose where your listener is. That way you could put the music "on a stage" (which is what a standard stereo does), or you can put yourself right in the middle of the stage, which is sort of like what plain headphone playback does, or you could pick anywhere in between, or even something different like putting yourself 5 feet above the band or whatever you want.

Okay now I'm really stalling trying to avoid doing some work.


11-06-07

High Stakes Poker Season 4 Episode 11. This is the biggest cash game ever shown on TV so to commemorate the occasion I'm going to do a watch-along guide for you semi-poker enthusiasts. This may be the best poker that's ever been on TV. I still love the old Showdown at the Plaza where Howard Lederer did the commentary, but this is hella good. You can find it on Youtube, Pokertube, Pokerbay, or just torrents anywhere.

First of all, the lineup :

Doyle Brunson - big poppa, his game is still well respected though he does now get bored & tired and can play badly at those times.

Barry Greenstein - pretty well respected online, but certainly not at the top of the modern game.  One of the best of the old live players.

Antonio Esfandiari - Antonio used to be a cash game pro in LA but doesn't play much any more.  His game is solid.  Of note is that he does not have
the bankroll to play this game, he must be playing staked.  In fact even guys like Barry & Doyle who can afford it have probably traded pieces of each
other to reduce variance.  Normally Antonio would be playing too scared at this level but if he's fully backed he should play well.

Jamie Gold - medium stakes cash game player from LA, won the 2006 WSOP Main Event, wants to prove he didn't just get lucky.  Huge fish.  Tells you his hand and then
bluffs predictably and doesn't value bet in the same spots.

Sammy Farha - Sammy is a wealthy businessman who is absolutely awful at poker.  The other pros go along with the myth that he's good at Omaha because they
want him in the game.

Guy LaLiberte - one of the founders of Cirque de Soleil, plays a LOT of poker, and generally loses.  Plays online under the name "noataima" and has lost
around $20 million online.  Also plays the "Big Game" in Vegas and is said to have lost a lot of money there.  Single handedly supports many top pros.

Patrik Antonius - one of the absolute top players in the world, both live and online.  Now plays all the games.  One of the biggest online winners ever in
both Hold'em and Omaha.  Was previously a semipro tennis player, and is currently the object of crushes from girls and boys alike.

David Benyamine - degenerate mediocre player; ran up about $20m in profit playing in the highest stakes games, but has now lost it all and is broke and
often playing staked; probably playing staked here.  He can play very well, but often plays 40 hour+ sessions where he starts playing awful, and
he's also an action junky who chases his losses.

Phil Galfond who is Jman/OMGClayAiken online was also supposed to play in this game, but the producers decided he was bad for TV and didn't let him play; he's a 2+2'er. Several other 2+2ers such as sbrugby (Brian Townsend) (as well as durrr, krantz, etc) would've loved to get in this game but weren't invited.

Each player bought in for $500k and they're playing 300/600/1200 (the blinds are nominally 300/600 but with a forced straddle all day). Even with the straddle that means they're 416 straddles deep which is really really deep stacked poker. It's a very interesting and difficult type of poker which is rarely played, partly because the better player has a huge edge. It makes it very hard to get "all in" which exposes you to danger. You see, getting all in is a form of protection where you know you don't have to make any more decisions. Say for example you bet the flop and someone raises pretty big - with 100BB poker you can just shove and you don't have to worry about being out of position for the rest of the hand and what might come on next cards, etc, but 400BB deep you can't shove. If you 3-bet you still have a lot behind and you're OOP if he calls. If you just call again you can face big bets on the turn and the river. Your opponent is always able to put you to a big bet.

BTW it's definitely not the biggest cash game in history. If you count limit poker, the $100k/$200k limit hold'em game against Andy Beal was the biggest in history. In no limit, just this year there was a huge game at the Bellagio during the WSOP with Brian Townsend, Sammy Farha, and Bobby Baldwin that was a $1000/$2000 no limit holdem/omaha mixed dame where the guys were sitting with several million each. If you adjust for inflation there may have been bigger games in the old days when the mob was working with Doyle and others, but nobody's telling.

The only person at the table I would be really really scared to play would be Antonius, because he has both the well-balanced frequencies, and the guts/insanity/aggression to put you to a huge test in any pot that you show weakness. Against PA you have to either keep showing strength or be ready to call a big bluff at any time.

I'm gonna put the hands in white so there's no spoilers - (BTW "Guy" = Guy LaLiberte , not just some guy)

Hand 1. Guy has AJo ... and Jamie makes a retarded bluff with 84s. This bluff is retarded because the board is drawy and Guy will call with a draw, and also Jamie could well have a draw so Guy will call with a top pair. Flop raise bluffs are much better on dry boards. Also it's 4 handed which makes it way more likely that Guy has a real hand. On the other hand, Guy 3 betting is kind of retarded as well. He lets Jamie rebluff him if he wants, and it's not a big enough raise to get him off a draw. If Jamie had a good combo draw he could even shove! Furthermore if Jamie wants to retardedly bluff it's better to just check-call and let him bluff.

Hand 2. Guy has JJ and flops a set ... Sammy's overbet on the turn is interesting. That's a move you rarely see online but it is more common live. I think Guy plays it pretty well, though he should perhaps go ahead and shove the river since the only thing that calls a raise is TT for the 2nd house and I don't think Sammy can fold that even to a shove. Raising the turn would be really bad. Calling is okay since Sammy might have a lower set.

Hand 3. Doyle has T8s and Jamie has 97s, they both limp preflop ... .. and they both turn a flush. Tough spot for Doyle. He correctly reads that Jamie most likely called the flop with a flush draw and just hit it. The Jamie does one of his retarded speeches that he thinks is so clever but actually totally gives away his hand. He goes on and on about how he came to bluff, and then he makes a big raise. That's what Jamie does when he has a hand and is trying to get paid off. The problem is Jamie doesn't really have a hand and he doesn't even realize it. This is one of those spots where in a 100 BB game I'm sure Doyle would call and get all in for $120k, the problem here is even if he calls on the turn they have almost $400k behind on the river and there will be another big bet. In reality, Doyle could call because Jamie is actually a wuss and would give up on the river without the nuts.

Gabe's commentary about new school vs. old school isn't really right. Gabe doesn't really know much about poker and certainly not about the new school. Doyle's range to overbet the turn there is pretty narrow, when Jamie raises like that he can only ever bet called by a flush, so if he's sensible he can't be doing it for value with a low flush. Ten-high flush is pretty good though. Note that the online guys who play heads up is a whole different game - this is a full ring game.

Hand 4. One hand where Guy has ATo, another with A7o and another with T8o ... Two little random hands; we've now seen that Guy just can't fold the flop even with total garbage, and he's also not semibluffing at all when he has very good equity. Seems to play like a classic fish - chasing too much, and then only betting with the nuts or "bluffs".

Hand 5. Antonio limps with AA ... meh, he's not doing this because he's scared, he's doing it because he's played so tight so far in the session that he knows if he shows strength people are just folding, so he's trying to get someone else to raise. This is Antonio's normal game, he plays really tight, but then he also makes big moves on pots using his tight image. Barry plays roughly the same style. Not sure if I like Barry's big bet on the river, if he wants some lone junky pair to call he should maybe just bet $10k.

Hand .


11-03-07

I thought of another million dollar website idea : "Fattie or Preggo". It's a voting site like kitten war or something, but it shows girls with a slight tummy and you have to vote fat or preggers. So money.


11-03-07

I almost wrote a movie review on Netflix - but why should I spew yet more content into somebody else's "Web 2.0" profit pocket? Why should I spew unfunded expert advice into some provide data horde which isn't shared with its users, isn't shared with other sites, and ties me forever to a specific for-profit site? It's a giant scam that they've gotten everyone to go along with it and it fucking sucks and I won't do it.

Which reminds me, I think I've written this here before, but the fucking scam of online music pricing makes me ill. They cut EVERY SINGLE FUCKING COST. No salespeople. No retail shop. No rent. No liner notes, no manufacturing, no shipping, no warehouse, NOTHING. And then they still charge roughly the same price as the old regular stores for the digital download, and people go along with it because they have no choice because it's monopoly and there's no competition.

Anyway, I was going to review "Stranger than Fiction". Why is my success rate at finding decent movies so bad? I know there aren't many great movies out there, but it seems like with all the information available I should be able to get at least a 25% chance of picking one I'll like, and it's way way below that.


11-01-07

I really like doing nothing, except for the loneliness, the feeling that I'm wasting my life, and the fact that I'm running out of money, oh and I hate my apartment and wish I could afford to buy a house in the country. Other than that it's pretty great. I like coming up with own ideas for what to do each day, for the most part, until you get those days where everything seems pointless and stupid and why bother getting up. But other than that, you can decide to go check out some area that's supposed to be nice for bike riding and cruise around, or just go to some shop and try some new ingredients, decide to cook something you've never done before and try a few different recipes, find a river that's supposed to have good swimming holes and get naked, or just wander the city and check out public art and galleries and so on.

Today I'm making Savory Pumpkin and Oxtail Cous Cous from Emeril of all people. Now, I hate Emeril's show, he just comes across as a loud retard, and he often doesn't give me the impression of even knowing what he's doing on his show, like obviously his back kitchen staff prepared the recipe and did the various steps for him and he almost seems like a Today Show host in their cooking segments. But, ignoring all that, "his" recipes on the Food Network seem to be generally very good ("his" = who knows who actually writes them). I'm modifying it some, I'm going to make it a bit more Spanish in flavor. The experiment for me is that I've never cooked with fresh pumpkin in anything but desserts.

Result : meh, I don't really like fresh pumpkin, it's kind of stringy like spaghetti squash which I don't enjoy. I'd rather use sweet potatos or turnips in its place. Otherwise very tasty. Also, I didn't know this but the couscous you buy everywhere in the US is actually pre-cooked instant couscous. If you're using the instant couscous stuff, there's no need to cook it at all. Just put some in the bottom of each person's bowl, serve the stew with plenty of broth, and it will cook right on their plate.


11-01-07

Another simple fun math problem for like the high school level : Say you have some cash, and it is appreciating at X% per year, and you are spending Y dollars per year (after the appreciation, so the principle changes like P*(1+X/100) - Y), how much money must you start with to last N years (after N years you have zero left) ? (assume no inflation)

Some easy algebra and series gives you the answer : P = Y * ( 1 - 1/(1+X%)^N ) / (X%)

First of all, the whole thing is proportional to Y, your yearly burn, so let's ignore that part and just concentrate on the scale factor, P/Y

Let's look at X = 5 which is perhaps somewhere reasonable. For N-> infinity , you get P/Y = 20. That's the most you ever need. A few values :

inf: 20
30 : 15.37
20 : 12.46
10 : 7.72
 5 : 4.33
 1 : 0.95
The first few years of retirement almost cost you 1 unit, but each year you add is much cheaper than the last, so that going above 30 years is very cheap indeed. Unfortunately this isn't of much use unless you are a royal family thinking of how your fortune will easily ensure a legacy for many generations.

In some cases it's surprisingly low. If you own your house and live frugally you could easily survive on 30k a year, which means you can retire on just 600k principle; that also has a safety pad because near the end you can sell your house or get a reverse mortgage or whatever to cover any exceptional costs.

One thing I don't see discussed very much is that volatility is really bad for investments. Say you have two investments with the same average return. The more constant one will give you a much better net. This is because the way to maximimize the area of a fixed-perimeter rectangle is with a square. Say both funds average 5% over two years , one is (1.05)*(1.05) = 1.1025 , the other is (1.0)*(1.10) = 1.10 , and in fact it's even worse if they occasionally take losses, like (0.90)*(1.20) = 1.08


11-01-07

I still think Hillary Clinton is a terrible general election candidate for the democrats (because she will mobilize Republicans and moderates against her; totally irrationally there is a massive anti-Hillary force). Fortunately, the Republican candidates all seem to be such absolute losers and looney-tunes that I don't think we have to worry too much. They seem to be competing with each other in a race to crazy town, trying to get more and more illogical about family values and "islamic fascism" (LOL). OTOH I think she would be a fine president; she's obviously not going to disturb the system, but it's hard to imagine anyone getting elected that would. The pillars of retarded suckitude in the US are so entrenched now that nobody really has any hope to break them (some of those pillars are : no funding for education or research, anti-immigrant including highly skilled and educated immigrants, cripling health care costs, insane government-gauranteed monopolies and props for big businesses that drive up prices and prevent competition, no funding for national tech infrastructure and tech for children and the poor, government funding for pharma, the military, and props for finance, etc. etc.). No Democrat or Republican will do anything about those Pillars of Suckitude, and as far as just running the system as-is goes, Hillary seems like a pretty competent manager that would get quality people in the beaurocracy and rebuild some of the system that GWB has destroyed.


11-01-07

Crime is not an evil of society that should be stamped out. Crime is much like revolution and terrorism - it is a natural balancing force in society which should rise and fall depending on conditions. When the normal pathways of civilization provide opportunities for people to be prosperous, they will naturally take those pathways and turn less to crime. When those pathways are not available, they turn to crime. In particular, in a society with a very few super rich and a huge very poor population, it is only natural and appropriate for the poor to take from the rich. This is hardly even "crime" in a naturalistic sense - it is for the benefit of society as a whole, and the majority of the people would approve.

Fear of crime is a legitimate motivating factor for the rich to not treat the poor too badly. It has been so throughout history. A good feudal lord would know that he needs to treat his serfs with a certain degree of kindness and generosity or they will rise up against him. A social structure only exists through the will of the people, and crime is the enforcing factor. At some point the poor become so desperate and hopeless that getting caught or punished doesn't seem that bad, while stealing from the rich could feed their family. The rich can protect themselves with armed guards and gates (as they do in many parts of the world today), but that has a high social and economic cost of its own, which should motivate them to try to help the poor which will reduce crime.

An unfortunate problem is that criminals are not very well aimed. The natural crime balancing system only requires a few criminal acts, and they only need to be committed by the poor against the rich. Typically there is a massive buildup of petty crime, which doesn't really serve any social balancing purpose that I can think of, before it reaches the point of a real anti-society uprising.


11-01-07

Many people think the "legal system is out of hand" and punitive damages are too high. (Of course this perception is largely fueled by heavy marketing from the corporations that are the targets of suits). In fact, I contend that punitive damages are almost always too low.

In our system, lawsuits are basically the only checks on many types of illegal behavior or predatory practices. For example, companies are not required to prove their products are safe (except for very narrowly defined pharmaceuticals). If a company sells a dangerous product, the government doesn't pursue it, it's up to lawsuits to punish them.

In order for this check to be effective, it has to be damaging enough that the company is motivated to not release the dangerous product (or to pollute, or manipulate markets, or whatevber). Let us first banish the thought that the company will voluntarily do the right thing - first of all if you're a capitalist free-marketeer you must assume the company acts in the interest of maximal profit and with no other motivations, and second of all history certainly seems to show that almost no company ever gives up a profit opportunity because it is harmful to the populace or the planet. If they do choose to give up a profit opportunity it's because the risk and potential damage from getting caught is too great.

Finally we must face the reality that for most of these crimes the probability of getting punished is very very small. If we consider some of the most common crimes that companies commit - creation of illegal shells to manipulate profit reports, tax evasion or use of illegal tax shelters, pollution, illegal use of part time employees to deny benefits, selling of products that are known or suspected health risks (often through simply choosing not to test or ignoring tests or advice to test), advising bad financial decisions in order to increase commisions, etc. etc. - all of these have very very low chances of getting caught, perhaps 1%. For one thing the particular incident has to manifest itself in such a bad way that it causes demonstrable harm to an individual. Often that is hard to do. Consider the case of meat packers who are unsanitary. They have to not only pack some bad hamburger, it then has to be undercooked, the person has to actually contract E.Coli, and then probably has to die in order to generate a significant suit, each of those has a very low chance of actually happening.

So, in order to be correctly financially motivating, the punitive damages have to be large enough to beat the very low chance of the suit succeeding. A company cheating on its taxes might see it can save $10M with a certain tax shelter. The chance of actually getting busted is maybe 1%. That means the damages should be 100X , or $1B. This seems ridiculously excessive, but that is the MINIMUM damages to just make cheating a break even proposition, at that level they aren't even actually losing anything by cheating. In order for them to really be disuaded, damages should even be higher.

This is probably even more obvious with small claims against big corporations. Say your cell carrier does something rotten in your contract and overcharges you $100. That is 100% free money for them. Even if you take them to court and win, you will only be rewarded the $100. So they have some chance of just getting to keep it, worst case they lose the money that was yours anyway. In order for them to be motivated not to do it, the punitive damages should be 100X - 1000X the actual damages.

With something like environmental disasters (see the recent BP refinery disaster for example) the companies usually have to pay something close to the cost of cleanup. For one thing this doesn't come close to estimating the real cost, which should include the cost of losing the use of that land for years and the very long term and unknowable effects on the ecosystem. But even if you did include all those costs it wouldn't be nearly a large enough penalty. The penalty should be multiplied by the chance of the accident happening and them getting punished.

For similar reasons, doctor's malpractice insurance should be illegal. It completely removes the motivation for them to be careful, and they definitely need more motivation as evidenced by the high rate of surgical instruments left inside people, lack of hand washing, wrong-side surgeries, etc. etc. tons of mistakes that are just sloppiness.


10-28-07

I think it would be faster for me to download the CD's I already own via torrents than to actually rip them. The rip doesn't take that long but all the getting it in and out of the case takes forever. And fucking CD ROM drive design is retarded. For a brief period audio hardware was making top loading CD players which is so so much better, these fucking flimsy slow trays that slide in and out are awful. I know, I know, they do it so it can be stacked in a rack, but that's retarded, nobody at home has a real rack, and you always have one thing on top, the thing on top can be the top-loading CD player, you just lift the lid and swap the CD's, so much better.


10-28-07

AHAHAHAHA. I downloaded this "Atmosphere Deluxe" product to create background noise at night while we sleep. I set it up to play some ocean loop last night and went to sleep. It suddenly stopped playing around 5 AM, and I come over to look at the computer and it's got a critical out of memory failure. The damn thing has a memory leak and used up my 2G of RAM. Since I have no virtual memory it crashed the app, which probably just starts grinding disk on most people's machines. LOLOLOLO


10-25-07

JungleDisk is this storage service based on the Amazon Swarm (which is a totally awesome thing). The pricing is okay for like a small crucial data backup, but you could just burn CD's with that. The pricing is pretty awful if you want a full backup, 100G would be $15/month so you can easily just buy a hard drive instead. For small amounts of backups you can just use your gmail account. I guess Google is launching this GDrive / Google Storage thing but the prices for that are even more retarded than Amazon. The only application I can see is if you travel a lot and for some reason can't carry a hard drive around with you, perhaps because you're a secret agent.


10-22-07

"shelled" (the adjective, not the verb) is a totally ruined word. Some people use it to mean "shell removed", others use it to mean "with shell on". You can't tell which they mean until they use "deshelled" (indicating that shelled = shell on) or "unshelled" (indicating that shelled = shell removed). Because of this I recommend using "shell-on" and "shell-off" instead.

For example this page at VA Peanuts uses the word "shelled" to mean "shell-removed" but if you click on the link for the in-shell peanuts, their text here uses "shelled" to mean "with shell".


10-20-07

I've got a new trading strategy that I'm pretty excited about. The market goes through these retarded panic selloffs that make no sense where people sell mutual funds that have various stocks. Some of those stocks do indeed deserve to fall, because the bad news affected them or they were previously overvalued in bubble sectors, but some of them don't. Some of the stocks that fall are just solid basic companies that weren't involved in the crazed bubble or the bad news and they're just falling because people are in a panicked sell-off mode. Recently there have been quite a few 2% drops in single days which gives you a great opportunity to buy into things at a discount. If I had some real guts I'd do some kind of leveraged bet thing that could return a lot, but I don't really know about all that junk, so I just use it as a chance to buy into things that I've thought were solid.


10-20-07

Christ fucking people right outside my window at 4 AM blabbing away and stomping around in high heels. God damn girls are fucking awful with their clompy shoes and their high voices and their "oh my god"'s. I love having a window but I hate that people can see me. I want a window out on nature, not the fucking neighbors and random people walking by who always have to fucking look back at me.


10-19-07

One of the wonderful things about SF is how many cool little secret places there are all over that even most locals don't know about. There are just so many, I keep discovering them at a high frequency. All over the Mission there are of course amazing murals and graffitti works, some huge panoramas across buildings, alleys of many peoples' work, and they're in strange hidden places where I keep finding new ones.

Today I found the Douglass Playground. I was just looking for a little grass to run on (which I still haven't found), but instead found this deserted neighborhood park with dense trees and a really cool sketchy trail that goes up the steep hill to some amazing view spots.

A few days ago it was Cayuga Park. It's a little park down on Alemany in the southern mission, and it's full of these bizarre sculptures and tree-house like things all made of wood and left out to age.


10-19-07

On change :

The average amount of change you get from a transaction is 2 pennies, 0.4 nickels, 0.8 dimes, and 1.5 quarters.

The average value of change from a transaction is 49.5 cents, the average number of coins is 4.7

The ratios are 42.55% pennies, 8.5% nickels, 17% dimes, and 31.9% quarters.

The weights of the coins in order are 2.500 g , 5.000 g , 2.268 g , 5.670 g .

The weight of an average coin transaction is 17.3144 g (1 lb is 453.6 grams)

The value of 1 lb of random change is $12.97 ; if like me you generally remove your quarters from the random change, the value of 1 lb of random change without quarters is $6.17 ; in practice it's even slightly lower because so often you're paying a $.99 or $.95 price which gives you the worst coins by weight, the nickel and the penny.


10-19-07

Confirmation hearings are so pointless. The congress has absolutely zero ability to determine if the person would do a good job. They would do better to treat it like a job interview, get experts to ask them technical questions, get references from previous employers, etc. The person undergoing the hearing can pretty easily tell what they're supposed to say and they just say that. Many just lie their way straight through it (like pretty much every supreme court justice), and there's no consequences at all. The only thing the confirmation does determine is that the person has the tiny amount of political intelligence to be able to get through the hearing, but even morons like Gonzalez were able to pass that low bar.


10-18-07

Little news story about Richard Lee . This is sort of interesting for everything it doesn't say. Richard Lee cashed for $2.8M at the 2006 WSOP. He was in no way a poker player, never has been, and is still not really a serious poker player. What he was was a huge illegal bookmaker. Reportedly one of Texas' biggest bookmakers. His net worth from bookmaking is estimated at at least $25M. His home was raided in 2006 shortly after the WSOP after a long investigation into his doings and $3M in cash was found at his home. Lee claimed he was never a bookmaker and the cash was his winnings from the WSOP. This is highly dubious, since a businessman like him surely would've wired the winnings somewhere and invested them, not just held onto cash. What is likely is the cash was his supply for paying out sports bets, or betting profits that he hadn't yet managed to launder. The prosecutor winds up doing a deal where the government keeps $2.5M of what they seized and Lee goes free and keeps the vast majority of his illegal profits.

This struck me as a nice example of how our legal system treats white collar criminals. If they'd found a few ounces of drugs he'd be in jail. Instead he loses maybe 10% of his profit; I suppose he'll have to stop bookmaking, though he could probably start right back up in a year or two if he buys a few restaurants for laundry.


10-16-07

Food trends that need to stop now :

Deconstructing. There's a reason why all these classic dishes are "constructed". When you put various ingredients together you create a composed bite which is balanced, the flavors meld, that's what cooking is all about. The real truth is that "deconstructing" is easier for the "fancy" restaurant line-cooking style where they can pre-do a bunch of work and then toss things together on a plate at the end. Deconstructed food is sort of like a minimalist modern art painting - it's a brain-stimulating thing to see once in your life, to make you think about the form, but you ONLY NEED TO SEE IT ONCE.

"Surprising" accent flavors. Chili in chocolate. Lavender in oatmeal. Ginger in hamburger. Yes, yes, it's very surprising and amusing that these strange accents taste okay in places we might not expect. OKAY NOW STOP IT. When I get chocolate, I want a rich deep chocolate taste. If you can do something clever with your cooking to enhance the chocolate experience, that's great, but that takes skill and lots of practice and most people don't do it. Just randomly tossing in green tea or hibiscus or whatever flavor of the month is not well crafted food. Maybe back in like 1970 somebody made a trio of creme brulee's each with a surprising accent flavor and that was cool, but IT'S OVER. Too often this is just a way of taking a poor dish and punching it up, used by chefs who want to make something "gourmet" but are unable to improve the basic quality and taste of the dish.

Other retarded food trends are the super high vertical stack (hello, it looks silly and it just falls apart when I try to eat), the sauce paintings on the plate (meh, this isn't bad, but it's just not hip), foam, the seared scallop (the trend that will not die), and the deluxe versions of ordinary foods like burgers and grilled cheese.


10-16-07

Lately any time I decide to do something, as soon as I start doing it I think "WTF is the point" and then I don't do it. I was going to paint the lugs on my sweet old road bike, and started to look into what kind of paint and such, and then went "WTF is the point" and stopped.

I'm in the middle of this giant endeavor to rip all my CDs and then get rid of them. I've done a few hundred and I'm up to "C" and I'm starting to think "WTF am I doing this for". It would be nice to just not have all these fucking things to lug around, but then I have to get some kind of iPod adapter thing for my car and spend a lot of time loading songs on my iPod and all that garbage waste of time. It's just busy work.

I still want to write a nice auto-DJ app. It would scan through your whole music library and analyze all your songs (which would take several days). Analysis would detect the beats and also the "energy level" and "style" of the songs (there are various papers on making estimates of these things with subband spectrum analysis and "timbre" study and so on). Then the user could pick a song to get it started. When that song ended, the autoDJ would randomly pick another song which was close to the original in all 3 attributes, and perhaps beat match and cross fade if the beat structure is clean enough (a lot of rock songs do annoying intros or fade outs that don't match the primary beat, so you wouldn't want to crossfade them). So the autoDJ takes a random walk through your music collection in a way that provides pleasing transitions that stay in the sort of general musical area of the seed song. Anyway, this is like a few weeks work, but WTF is the point?

Addendum : I've found two existing things that are similar to the auto-DJ I described. One is Pandora which appears to be based on a database that's manually marked up by human listeners. The other is MusicIP which has a free Mixer app you can download. They seem to actually do an automatic content-based identification of song "mood". It appears to me that they don't actually run it on your client, but rather identify your songs and look it up in their online database. In my experience there are a lot of problems with MusicIP. It's just not nearly good enough to actually let it just play. It is, however, kind of a fun tool to browse your music collection if it's way too big and you haven't even listened to half of what you have.


10-15-07

I guess I'm finally gonna go ahead and sell my Prelude. Man I love that car. Yeah the power really sucks, and it's too back heavy for a front wheel drive, so even if you souped it up it would just spin the tires, and yeah it's really too small for me inside, but man it just FEELS good to drive, so responsive, no latency, it's low so it feels way faster than it really is, and it's got these weird impact moments. When the VTEC kicks in it just feels good, even though it's still really not fast, you feel the difference. When you go around a corner and accelerate through it and the ATTS kicks in to whip the wheels through the curve it just feels great. You just feel so in control. Of course that's largely an illusion, which is why I crashed it once or twice. Anyway, there's no reason for me to have it, it just doesn't make sense. The sick thing is that rent is so fucking totally out of hand outrageous that selling the car for $10k only makes me like 6 months of rent. The first car I bought cost $1600 which is less than one month of rent. WTF. Of course the only thing more outrageous than the rent here is the equivalent mortgage if I actually bought a place like this. California is slumping slightly but we're still in the insane situation where mortgage is 3-4X rent, which is even more insanely out of whack than the super high rents.

In her honor I'll post a few photos of when my baby was happy, roaming the curvy back roads : Nacimiento-Fergusson or Figueroa Mountain


10-14-07

"Inland Empire" is a steaming pile of garbage and a very good barometer for detecting movie critics that won't knock the masters and just praise things they don't understand because they think they should. I'm a big fan in general of Lynch and his stream-of-consciousness style movies and the idea of literally getting lost in the movie, but this is just pure self-indulgence completely gone off the rails. Obviously "Blue Velvet" is his masterpiece, it brings his strangeness and style of metaphoric cinematic painting into a real world that we can believe is just under the surface, either in existence or in people's minds. Strangely, I really liked "Lost Highway", which most critics seem to think is inferior to "Inland Empire". If you compare the reviews of the two films it seems to show a retarded lack of logic; Lost Highway is widely criticized for "coming off the rails and making no sense and failing to connect the two stories at the end", while "Inland" is praised for the way you just get lost in the nonsense. To me that reflects a lack of subtlety in the critics who don't want to actually have to watch a movie and think about it. They want to know exactly what they're getting into from the beginning so they can compare it to their expectations. "Inland" to me doesn't work largely because it is just a pure stream of nonsense and you can never really get into. "Lost Highway" really does work because at first you think it's just a normal movie, albeit with some Lynch strangeness, but you try to watch it as a murder/mystery/drama. Then it makes the jump and you try to figure out what's happening, then you settle in to the second part and it seems like a normal movie again, and then the wrap up really leaves you thinking and wondering if you can figure it out or not. I still wonder about what the movie is supposed to mean and if you're supposed to be able to figure it out. In contrast, with "Inland" you very rapidly give up on trying to figure it out because it's just nonsense, you never mentally get to sink into that state where you don't know if you're in fantasy or reality, you're just always in fantasy, which drastically weakens the effect. I also feel like artistically, "Lost Highway" creates a more coherent and powerful mood through the lighting, the music, the cinematography, everything comes together to create this eerie, heavy atmosphere, like a humid southern day, so still it's spooky. On the other hand, "Inland Empire" does have a gorgeous pallet of really rich color and texture, and it does create some really sort of unnerving scary imagery (I watched it alone, late at night, in the dark, which is the only way to see it), but the impression is not sustained, it jumps into these ridiculous dance numbers, semi-normal scenes in the real world, and the mix diffuses the impact.

Oh, and the stupid digital video in "Inland Empire" is really gross awful. It's got tons of that nasty banding that happens when you shoot DV in low light. I don't know if that's just because of the crappy CCD response, or if it's actually the 8 bits of intensity revealing themselves. 8 bits really sucks, especially when you take dark stuff and blow up the contrast and the brightness. Human intensity perception is relative, so the difference between 0, 1, and 2 on an 8-bit image is immense. Now of course film also sucks bad in low light, but it is better, and even when the film shows its limitations, it does it in a pleasing organic semi-random way, rather than the chunky blocky banding that you get from DV. You can just compare the low light scenes of real film in "Days of Heaven" to the modern DV low light stuff to see what we're losing. It's also possible that they fucked it up in processing. I was semi-shocked to find that the classic Avid systems work in 8 bit, and they save intermediate processing to disk in that format, so if you do something like run through a bunch of frames and play with contrast, then run back through and undo it, you can totally destroy your image quality. I believe the newer high end Avids are now 16-bit which sort of makes this okay, but in general in the little exposure I've had to film I've seen a lack of understanding of digital image quality and how to process frames; there's sort of a culture of "if I do this step and it looks good on the monitor it must be right" without thinking about what's happening to the digital value registers and the information you might be losing permanently. Fortunately I believe the scientists have finally gotten the upper hand and we will eventually have full HDR video and editting pathways standard.


10-14-07

Good ideas we've had recently :

Checkers drinking game. Lay out a checker board, but the pieces are shot glasses. One side full of whiskey, the other side vodka (or any two alcohols of different color so you can tell the pieces as usual). Play checkers, and when you jump a piece, you take the opponent's shot. This game is so much better than your normal drinking games in that you drink regularly, it's actually a fun game, and the person who's winning has to drink more which evens out the game.

Indian burrito. Why doesn't this exist? Just take a nice curry, combine with basmati rice and wrap it up in naan bread like a burrito. So delicious and great to-go food. Much much better than the actual Indian to-go foods like samosas which are foul pastey starchy fried heaviness. BTW there a few to-go "hand pie" places in San Francisco which revises the old English tradition of the "pasty" (pronounced pahsty); unfortunatley all the current ones are just not very good so that delicious portable food is not really making a strong comeback yet. (update : I've now learned that Indian Pizza is made at a few places around SF, will have to try that, but isn't Indian food like always pizza? I mean you scoop up some meat and sauce on a piece of bread, that's pizza. Of course that's how the real Burrito was invented as well...)


10-14-07

Went for another little hike. The Peninsula here has got to be one of the most blessed places on Earth. Perfect weather (on the east side of the ridge), none of the horrible bugs that plague most of the US, great roads for cycling, tons and tons of open space preserves and hiking, old growth redwoods, valleys and peaks, views, etc. Unfortunately it's full of dot commers and other insufferable self-righteous rich people.

We saw this strange mass of ladybugs. They were all piled on top of each other; it reminded me of the monarch butterflies at Pismo that land on each other in the eucalyptus. I put a photo on my Flickr . I read up a bit on Ladybugs; apparently they do some weird things and I'm not quite sure what they were doing there. They do migrate seasonally chasing an ideal temperature range. The masses of ladybugs in the central valley will migrate up into the high Sierra Nevada, and then come back again. They also fly in this really weird way where they constantly are climbing while flying under power, and then they get too high and go into a coma and free fall until they get back down to a lower altitude where they wake up and repeat the oscillation. Very strange.


10-13-07

The US economy sort of looks good if you don't think about it. After all, the stock market has grown by 15% per year on average for the last 5 years. On the other hand, that is way behind average international growth in that time. Measured in any currency except the dollar, it hasn't grown at all. Even with that growth, the actual median income has stagnated or perhaps fallen. That's also a period immediately following a market crash which should normally be a period of growth. We've also had historically low interest rates and a huge tax cut and deficit spending spree which should've stimulated the market more. The government reports that we keep adding jobs, but those additions have been way behind maintenance rates. We have nominally low unemployment, but that's partly because the number of people who are not looking for jobs is at an all time high percentage.


10-11-07

TreePie is sort of okay for viewing disk usage, but really a linear chart makes so much more sense than the silly pie thing. Still, it looks like those goofy GUIs that they always have in movies which has a certain absurdism appeal.

I found this thing a while ago about the Alex Singer bike shop. Those old bikes have so many gorgeous little hand-worked touches.


10-11-07

Well, I'm disgusted by the shitty service NAD has given me for my amplifier. Not only that but they provide zero information that could be used to repair it, they sell the repair manual for $100. Supposedly it's an easy repair but I've never done anything like that so I would need good manuals. Old stereo amps like mine have depreciated horrifically, to where $1000 amps now sell for $50 on eBay. At the same time electronics repair shops are a dying species, and the costs are shooting way up. The NAD-approved repair shops want around $300 for a repair which is outrageous. The local non-english speaking ghetto shop wants $100 but god knows what those guys will do. SIGH. I guess the most +EV move is to throw it in the trash and buy a replacement on eBay.


10-08-07

In the real battle of Good and Evil, the only advantage of Good is if they can win the support of the populace, if the populace can see the truth, but that is no gaurantee. Evil always has the huge advantage that they can use the tools of evil to accomplish their goals - lying, cheating, stealing, killing. In the end, evil always wins. In our world they usually win by changing what is considered acceptable or legal, or by changing what is "admirable" or "fair".


10-08-07

Jet Audio is pretty rad. I don't really like those all-in-one kind of apps with fancy looking GUIs but it does a lot and it's not too intrusive. The alternatives are all pretty rotten (iTunes, Nero, WinAmp). Why do media apps all have to have these awful "looks like a stereo" custom GUIs ?

I'm depressed today, maybe partly because I'm in horrible physical pain. Life is a fucking dreary effort, some days are so hard to get through. It really doesn't matter what I do with myself long term, I'm just a miserable fuck of a human being, I'm going to be unhappy and bring unhappiness with me wherever I go.

The NFL has gotten itself in a sucky state. Pretty much no game matters until the AFC Championship game when the Colts and Pats meet, and then the Superbowl won't matter either (not that it has for years).


10-08-07

Crazy upsets in the Rugby World Cup this weekend. Rugby Dump is the best sports video clip aggregator of any sport I've ever seen.

I see my boys Gabriel & Dresden are doing a Halloween show. Ooooo. Being a DJ would be pretty fun, you get to travel the world just going to different party spots, you get paid to do very little and be out at the club, and you're a semi-celebrity in the club scene which has its advantages.


10-07-07

We got some live New Zealand Green Mussels at Sun Fat; they're bigger than your regular mussel, sweeter and more tender. You can eat them raw if you want, but I steamed them and just undercooked them a tiny bit so they were rare. Sun Fat totally rocks my world. It's like the best seafood I've ever gotten anywhere, lots of variety, spanking fresh, great quick service, and it's CHEAP! It hasn't even been invaded by yuppies yet, probably because the parking in the area sucks, so most of the clientele are the local hispanic working people. It just makes me so happy that there is this shop selling some of the freshest fish in the city to the local minimum wage families.


10-07-07

A.O. Scott's review of "Knocked Up" makes it sound amazing. Maybe Netflix made a mistake and sent me the wrong movie? The piece of crap that I saw was a mix of two of the worst genres in Hollywood - the cheesy saccharine "romantic comedy" and the juvenile stoner comedy. The result is neither funny nor sweet, and is certainly not "honest". This is hardly an original tale or an unlikely route to love; in fact, it's a recasting of classic 18th century cheese, where a sweet girl and an ogreish man are forced into a relationship and discover that they love each other. Mr. Scott is indeed correct that this movie does "capture our moment". It captures the thievery of classic stories, the fear of Hollywood to do anything controversial or realistic, the trend of unrealistically pairing super hot girls and dorky guys which is so standard these days, and comedy that's so watered down and sanitized that it loses all its punch.

On the other hand "Flight of the Conchords" is brilliant. I don't even like the songs all that much (I'm not a fan of humor in musical form), but the two guys are hillarious, even just standing casting sideways eyes at each other going, "mmm, mhmm, yeh, yesss".


10-06-07

The biscotti recipe at Joy of Baking let me down, but Cooking for Engineers came through. I added some ground fennel seeds which gives that nice little anise flavor. When you make the biscotti yourself you get the nice treat of sampling some of the cookies after the first bake when they're still soft in the middle; they're very nice warm out of the oven like that. I actually like my biscotti a tiny bit nontraditional, I prefer them a bit crispy as opposed to just hard, which I think could be acheived by adding a tiny bit of butter to that recipe, maybe 1 tbsp of butter next time.

Saw this "chef" on PBS today absolutely ruining the most beautiful rib eye I've ever seen; it was from Lobel's in New York which has this unreal dark old dry aged beef. Looks like the going price for good beef now is around $40/pound or more. LOL ? It's certainly true that people are better off than ever they were in the past, but at the same time there are these very simple good things, like clothing that's tailored and hand-made specifically for you, or grass fed organic meat, or real fresh eggs - things like that which everybody had in the past when they were cripplingly poor are now so expensive that many people in industrialized societies have them not ONCE in their lives.


10-06-07

I loved the "Dark is Rising" books when I was a kid. I read them in like 6th grade or so, which is about the right age for them. Part of the charm was the multiple levels of anachronism for an American reader in the 90's. The series is one of the pioneering modern works of what became a whole genre of fantasy novels set in the current-day real world, starring children, but in an alternate real world where all the old legends of Merlin and magic and fairies and such is all true. Anyway, part of what made it so cool to me was that the "current day" was itself so unfamiliar, I was enchanted by the charm of 1960's Britain. I was super into the Arthurian legends at the time and the idea of the "once and future king", so all the allusions to that were exciting, and to a 6th grade mind the story revealed itself slowly and with great surprises. It has a good deal of subtlety and believability that is lost in most modern children's fantasy. You could believe that the struggle of Light and Dark could be going on right now in our very own world, and you might not even know it unless you knew the right signs to look for, and that struggle has been going on in the British Isles all through the past, from the time of Faeries when Celts and Picts battled, until the Romans and later Normans swept in and the magic went into hiding, but never completely left.

Anyway, this new movie "The Seeker" seems to have completely removed everything that was charming about the books. It's been moved to the present in America, which totally ruins the charming Britishisms as well as the whole connection to the past and the Arthurian tale. Oh well, even if it was rendered perfectly it wouldn't have been popular and wouldn't be watchable by me anyway, it's one of those things you have to see as a kid, and kids like that are no more.


10-05-07

Daniel Bouloud is such a hack. I dunno if he was a legitimate chef at some point, but at this point he has fallen into the cadre of big-name chefs who have mastered the art of conning rich people with really boring overpriced food and celebrity names. This is a whole market segment, largely driven out of New York, but it's also big in Vegas. These guys make food for the Wall Street types, for people on expense accounts, but also for retarded Midwestern tourists who want to blow a paycheck at the fancy place they read about, or for Long Island prom-nights. The target demo are people who really don't like good food, or at least don't like anything terribly interesting, and want something that they can brag about to others and say it's "the best", whether it's the "best steak" or the "best burger" or whatever. The food is generally ostentatious, sort of like a McMansion - it's got lots of rich sauces, truffles, caviar, foie gras, heavy fancy ingredients that make it "amazing". It's one of those amazing Emperor's New Clothes situations, sort of like our current president, where I can't believe that these guys get away with it; they just do it right in front of everyone so obviously.

I'm even more upset that I've eaten at a number of these places in my youth before I realized what was going on. When you're young or dumb, you can easily get sucked in by all the "buzz" that they create with all the other dumb socialites saying how great it is, and you think you have to go and appreciate it, and if you don't think it's anything special it's just because your taste buds aren't sophisticated enough.


10-04-07

ARG! This is the era of internet search, can we freaking get companies and bands and such to use unique proper names! Don't name your company "Versus" or a band named "Unicorn" , WTFBBQ.


10-04-07

It's Always Sunny in Philadelphia seems to have lost it. Season 2 was one of the best seasons of comedy TV ever (up there with the good years of Simpsons, Seinfeld, Arrested, Curb), but Season 3 has already gone into standard sitcom jokes and super-exagerrated characters. I noticed that the original gang isn't writing the episodes any more, they have a bunch of professional TV writers helping, which must be part of it. The scripts feel more like something from a "Two and a half men" or a "Home Improvement" super-standard sitcom script factory.


10-04-07

I've talked before about the "dick factor"; I think I wrote about it in offices, the way dick-heads can come to dominate a group because their very dickishness makes the more reasonable people so annoyed and frustrated that they choose to disengage.


10-01-07

There have been many video compression algorithms developed that work well with packet loss - eg. on average, losing random packets is only slightly worse than compressing to that smaller size, quality degrades smoothly as you lose packets. This can not only give you much faster streaming in an unreliable networking scenario (cuz you don't have to do the whole TCP thing of saying whoops you missed this packet send it again), it would also be awesome for torrents. I often find with torrents that I can get 90% really quickly, and then that last 10% is only available from the seed and he goes offline or something. If I had a continuously degrading video format, I could just watch it as is and it would look really good.


09-30-07

Some things I've learned about rehabbing shoulders :

One crucial thing at all times is to fight kyphosis and keep "military" posture (shoulders back and down, chest puffed out), and retract the scapula during exercises. Scapular retraction may be weak so strengthening that is crucial.

The big muscle that lifts the arm up and down is the deltoid, but there are also all these stabilizers that hold the humerous in place. The idea of a "ball and socket" joint is not accurate; really the humeral head just sort of rests against the gleno-humeral socket, and muscles and tendons hold it there, it isn't in any socket. If the stabilizers are too weak, the humeral head is not held in the right place, which can cause pinches and tears and general badness. These stabilizers need to be strengthened to do anything - throw a ball, non-shoulder exercises, etc.

The shoulder is very mobile, but a lot of the angles it can be in are actually very hard on the joint. If your stabilizers or tissues are too weak, you should not put it in difficult positions under load. The safe range of motion is with your arm at 20-50 degrees in front of your body, and from down at your side up to parallel with your shoulders. That means not raising your elbow above your shoulders and not putting your elbow parallel to the plane of your body or behind. You should stretch your range of motion without load, but don't go into those positions under load.

In particular, that means some of the standard weight lifting moves are forbidden. Standard barbell bench presses are very bad. The safest substitute is the dumbell incline bench press with the hands in "neutral" position (turned at a 45 degree angle so your palms face your crotch). Another big standard press that's forbidden is the back squat, because of how you hold the bar behind your back. Possibile substitutes are the front squat, hack squat, or the sled squat machines.

Upright rows are very bad for the shoulder and should never ever be done even when the shoulder is fully healthy. The same goes for military presses behind the head or lat pulldowns behind the head. There's no reason to do these, don't do them.

Throwing a ball is something I continue to do which is very dangerous for shoulder health. It's really crucial to warm up and stretch before throwing as it's a very hard motion on the shoulder. The crucial thing with throwing is to think of it a full body "jerk" motion like an olympic lift with a big weight. To throw properly you need to generate the force from your legs and hips. All your shoulder strength should be focused on stabilizing the shoulder joint as your trunk power jerks your body and whips your arm to release the ball. The way you can easily get injured is if you stand still and try to launch the ball just by jerking your shoulder.

To work the stabilizers, you probably only need zero weight or a tiny bit of weight. Most physical therapists would recommend rubber bands. You need to strengthen scapular retraction and protraction. If you use computers you are probably in a state of constant weak protraction and your retractors are atrophied.

Most of the stabilizers can be hit with humeral rotations. Imagine your arm rotating around the humerous. All you do is bend your elbow 90 degrees in some comfortable position (eg. at your side, or straight out from your shoulder, lying on your side, lying on your stomach), then rotate your arm around the axis of the humerous in each direction with as much resistance as needed. This can be done as a high-rep low-weight move.

The other simple lift is a lateral raise. This actually is just a deltoid move but it's a safe direct way to target it. The arm should move in the safe plane, that's 20-30 degrees in from of the body, with elbow straight and thumb pointing up. Don't raise the elbow above the shoulder. Next time you see someone at the gym doing lateral raises with their arms straight out at their sides and raising their elbows way above the shoulder, have a good laugh.

The trickiest thing is that you need to work these stabilizers, but working them makes them fatigued, and when they are fatigued it's dangerous to do any other exercise that uses the shoulder. When you're not specifically working the stabilizers, you need to hold the shoulders in a strict position of scapular retraction, back and down. If your shoulders are too tired or weak to keep this posture when you do your other exercises - don't do them.


09-28-07

I hate people who think how drunk they got or how much they puked or how dumb they are is something to brag about.

I hate people who don't confront you about an issue but then will drop hints about it in casual conversation.

I hate people who put themselves in bad situations and then complain about it, or who constantly bitch about something they could change but don't do anything to change it.

I hate people who act like your friend but would stab you in the back for their own good.

I hate people who will fight to the death to protect their children or family but aren't bothered by the slaughter of other humans, and generally anyone who ridiculously favors their own family or race over humans as a whole.

I hate people who get emotional revenge on you when they think you're slighting them, by giving you the silent treatment or befriending your enemy or excluding you from things you'd like to do.

I hate people who think that sexual partners are like prey to be hunted and bagged, and that more notches on your bedpost is "winning".

I hate people who show off or brag about their success.

I hate people who constantly only think of ambition or money, and use every social event to "network".

I hate people who think they earned their place in the world when they obviously didn't.

I hate people who have to interject their opinion and relate it to something in their life when it's something they know little about.

I hate people who use counterculture and bohemianism as a way to sell products or advance their career.

I hate people who tell you horrible things and cast it as a positive.

I hate people that are bothered by something that others voluntarily do that doesn't affect them or hurt anyone.

I hate people that smile too much and give too much eye contact and laugh when it's not funny.

I hate people who act confident and commanding all the time, even when they are totally lost or out of their element.


09-27-07

I still think the US economy is headed for a recession. I've been thinking about how to play it; I don't really know finance very well and have had zero success trying to get help on message boards. The best I've come up with is to just try to pick some companies that I think are really bad business or overvalued and short them. Ideally if I make good picks the shorts are +EV even if the economy doesn't crap out, but if there is a big dive then the shorts like automatically become a huge win. The key is to find a company that's reliant on the current over-inflated consumer boom in the US which will soon collapse. Maybe an auto-maker that focuses on luxury gas-guzzlers. I really think Amazon and Apple are both way over-valued right now, but people are so high on those mistakes I dunno if they'll ever have stock prices that are based in reality.

I'm trying to imagine the middle class guy who's way over-reached in his home purchase. He's been subsidizing all kinds of companies, what is he going to cut back on? Hmm.. I think "Whole Foods" is a horrible company, but the stock is already plummeting so dunno if I want to chase that down, but that is the type of company that will burn bad in a recession as people switch the cheaper alternatives. Harley Davidson would've been another good one, but they've already announced cuts and the stock is falling. I need to find the one that hasn't announced bad news yet, cuz the market is so retarded it doesn't anticipate at all, it's so obvious that this kind of company is going to bite it.

The other way I could try to play it is to pull all my money out into cash and then try to snap up a house in a foreclosure auction. I don't really know much about that and I hear you have to be able to buy places sight-unseen with cash and no refunds. Obviously you can make a lot of profit at those auctions but it's a huge risk and it's one of those things in capitalism that works far better when you have a huge bankroll and can buy lots of those houses and resell them, it's not a great way to buy a residence.


09-27-07

I cashed out this life insurance policy that my grandparents bought for me. Wow, what a good move that was. I would've cashed it out for almost any amount, cuz what good does life insurance do me? Hell I'm pretty close to just cashing out all my IRAs and eating the penalty because money that's no good until I'm old is worth ZERO, while money I can have now is actually worth something. Anyway, the life insurance policy was for like $30k which is not much, but it paid out cash value of like $8k. It took like 3 weeks to get it cashed out and they kept trying to talk me out of it, which is one of the clear signs that it's a scam. Anyway, if you assume I'll live to around 70, that $8k at 5% a year would appreciate to $56k, and they only pay $30k, so they make a profit of $26k on my policy. Pretty sick, and of course the longer I live the more they make, with life expectancy going up all the time the life insurers are rolling in the free mobnies. The only time I can see life insurance being a good move is if you are the big wage earner and you have a wife and kids that can't make any money, AND you also have no savings, because if you have decent savings that they could live off of then the life insurance is still -EV. In almost any case you're better off taking the money you would've paid to your life insurance premiums and just putting it in an emergency savings account instead, but there are a few rare cases where it would be prudent (in those rare cases you can usually get your employer to buy you a policy).

Anyway, lesson is : if you have some dumb life insurance policy, cash it out !! Also, if you have a creaking bottom bracket, just remove it, clean it, grease it and put it back in! (don't grease the crank arm axles though, and don't try to grease inside a sealed cartridge bottom bracket which you surely have, just grease the threads).


09-27-07

We got a whole roast duck from Chinatown the other day. I've seen them so many times, curiosity got me. They're quite cheap so far as a whole duck goes, about $9. It was cooked very nicely, crispy skin, fat melting all over the meat, and the cavity was stuffed full of anise and other spices which infused the whole bird. On the negative side, they're very small ducks that they sell, and there's hardly any accessible meat on them. I think we maybe got 6 oz of actual meat off it, and it's a pain to work with because they are so fatty and bony you have to dig around. For just eating duck meat, I would probably never get one again, but if I had some recipe where I needed a whole chopped up cooked duck (like for a Duck Pho or something) it would be a good way to go. I also imagine that the reason the ducks are so cheap is they come frozen from China which is a little scary.

It's weird how Chinatown is totally like another country. Grant Ave is overloaded with tourist traps now, but one block off it on Stockton it's like another world. The population density is like 10X higher than anywhere else in San Francisco, everyone is speaking some type of Chinese, there are tons and tons of grocers and their prices are way lower than anywhere else, of course the crazy dried goods shops - and weirdest of all, people actually stop and wait at red lights! It's the only place in San Francisco where the locals don't just ignore the reds and jaywalk! I don't know if it's a habit left over from China, or perhaps left over from early Chinese immigrants that were treated so badly here and surely learned that they had best not give the law any excuse to harrass them.


09-26-07

Meh, this whole holocaust denying nonsense should not be given any attention. Just cuz some nutter says something silly doesn't mean it's worth paying any attention to. Governments all over the world are *DOING* horrific things and nobody seems to give a rat's ass, someone just saying something about the past is so far down on the importance scale, it's irrelevant.

In video game coding we would keep all these todo lists of problems. For me there were 4 categories - 1. critical must do, 2. really really need to do, 3. would like / pretty important, 4. wish list. Everybody knew the #4's weren't gonna happen, but as the lead coder I also knew that the #3's were pretty much not gonna happen either. There are just way too many #1 and #2 tasks and more will keep popping up so that you won't get to many of the #3's, even though you think you would and management hoped you would. In meetings designers/producers would want to get into big discussions about #3 level tasks, and I'd try to say "look, we'll put it on the #3 list and we'll come back and discuss it more when we get to it, let's talk about these #1 and #2 level issues right now".

In world politics you have the same situation, but the prioritizing is totally retarded. People get all riled up about #3's and #4's , while the #1's are still being largely ignored. In world politics, #1's are basically "people being killed" or "people dying from malnutrition/disease that is easy and cheap to prevent". After that you have #2's like "severe human rights violations" , "people being imprisoned long term without trials" stuff like that. A #3 is something like "incomplete freedom of speech". It would be nice to deal with that around the world, but it's so far down the list of todos and that it should never even come up.


09-24-07

We went to the Bike Film Fest on Sat; meh it was fun because the crowd was nuts rowdy, but the films were pretty poor. The best films were already available on Youtube, such as the awesome stuff by the SF track bike trick squad MACAFRAMA crew . There was nothing by good directors getting interviews with interesting people like there had been in the past. The movie "Pedal" which is from 2000 is still miles ahead of anything else.

The one really exceptional film was "Ski Boys" by the Zenga brothers. It's so cool and perfect that I thought it might be faked, but apparently it is real home movie footage that the boys shot themselves in the 70's. I guess the Zengas have a web site and do various fun things. The film really captures the feeling of youthfulness, the open country, experimenting and just the joy of movement.

I just got some secret information - the film isn't really from the 70's, it's recent, and that whole story is part of the playful disruptive philosophy of the Winking Circle . Wow, these guys are so inspiring, it's the way I wish I was. I love their manifesto on Eccentrification . The problem for me is that this stuff really isn't fun without a partner in crime. I mean yeah it's fun in the abstract, but really you're doing it for your mates.


09-24-07

Most of you are probably aware of the Republican schemes to disenfranchise poor voters across America. The one that's strongly going forward these days is the requirement of picture ID; roughly 20-30 million people who are eligible to vote are estimated to not have a valid photo ID (the claim of "fraud" is a preposterous insult, sort of like claiming that the Bush tax cuts are for economic stimulus). Another one that's passed in some states is requiring people to fill out their voter registration themselves, making illegal a long-standing Democrat procedure of having volunteers fill them out on people's behalves who were either not very good with the language or writing or just not motivated enough to do it themselves. Yet another one that's passed in many places which is a bit more subtle is making absentee ballots available over the internet. This doesn't technically disenfranchise anyone, but it makes it far far easier for the lazy rich to vote than the lazy poor, and ease of voting is a major issue in this society where nobody gives a fuck. The other one that's happened a few times lately is the cleansing of voter rolls of people who shouldn't be allowed to vote and "accidentally" cleansing lots of people who have the right to vote.

The latest crafty play is underway in California. A Republican group is pushing a proposition which would make California a proportional electoral college state in Presidential elections, rather than winner takes all. It's unlikely that this prop will pass in CA because we do have a reasonably politically aware population, but it could pass somewhere else. Oddly, it's up to each state whether it is winner take all or proportional electoral college. The only states that aren't winner-take-all at the moment are Maine and Nebraska. There's nothing wrong with proportional votes in general (in fact it would be a much better system), but selectively switching democratic states to proportional is a nasty scam. Say you have two states, both with 20 electoral votes, and they are 51-49 democratic in one state and 49-51 republican in the other state. Both winner-take-all or both proportional is okay, but if you make the democractic one proportional, suddenly you have a 30-10 republican win. Propositions like this can also easily pass at the state level if not enough people understand or care how nasty it is.

In fact, these sort of crooked local voting laws bubble all the way up. Throughout the country you have really twisted crooked systems for electing state representatives. Nobody gives a rat's ass about the laws controlling how an incumbent state rep can campaign, they figure it's irrelevent. Well, the state reps get elected, then they get to make the state laws that control the election of the congressional reps and the government, draw the voting districts, etc., and rig the shit out of their stat's voting as much as they possibly can. This might get a little more attention, but it still doesn't really raise people's hackles enough to do anything. Before you know it the entire system is distorted. It's not that people are "stealing" votes - it only takes small distortions to skew things enough one way or the other.

It's interesting to think of the electoral college historically. It was really part of the general system in early America which was designed by the founding fathers to be a plutocracy. In most states only landowners were allowed to vote, which of course was just rich, educated, white males. The poor and uneducated were essentially serfs and certainly not considered fit to make decisions about the country. The electors were of course from the educated class, and gathered in the "electoral college" (a term coined later) to choose the president and vice president. In many states the electors weren't even voted for, but chosen by the state legislature. I don't mean that as a diss on the founding fathers, it's just important to remember where our system came from, and how these weird structures from darker days hang around and screw things up.

BTW it reminds me of another odd thing I always think of. America has toppled countless governments and set up new governments all over the world. To my knowledge, we have never once set up a government that's at all similar to our own. If they're democracies, they're always more European style, with a single parliament and various ministers led by a relatively weak prime minister (relative to our president).


09-22-07

I, like 99% of guys who lift weights, have an overdeveloped chest. It's pretty useless. If you only worked functional strength, you would have a strong core, very strong butt, strong shoulders, and much smaller chest and biceps. The chest is crucial for birds, it's important for quadrapeds; the chest is sort of like the "butt" of the arms, just like the butt provides the real big muscle power for the back legs, the chest does the same for quadrapeds front legs, but we don't really use the arms much in that way; it's even important for gorillas, who do a lot of knuckle walking and such. Anyway, I realized part of the reason it's fun to exercise is specifically *because* we hardly use it in ordinary life. You can pound the hell out of in the gym, and it will be sore, but it's not like you're using it a lot while it's sort. On the other hand, the legs/butt are much stronger, and it's fun to really beat them up in the gym, but then the next day you can hardly walk, and that's really not fun, and it prevents you from biking or whatever you might want to do on your off days. Having a destroyed sore chest doesn't really stop you from doing many leisure activities, unless you're a break dancer.

BTW this is related to a general problem that many people have, not just weightlifters. The modern fad for abs and pecs causes people to overdevelop their anterior (front side) muscles, which causes a contraction of the front of the body and no balancing pull on the back. This leads to "kyphosis" , which is basically a hunched posture mainly due to anterior curvature of the upper spine. Kyphosis is very bad for you, not only causing spine injury and nerve impingement, but also leading to neck problems, and improper shoulder function which can lead to rotator cuff injury and other shoulder problems due to lack of scapular retraction (shoulder blades not held together).


09-21-07

It's PARKing day today in SF. On the one hand it's kind of lame but on the other hand, what a fucking rad city this is. Most of the parks are retarded, but there's a nice big patch of sod out in front of Ritual Coffee which is some of the best coffee ever and lots of people just chilling on the lawn. Nice.

In sad news, the Red Bull Air Race isn't going to be at fleet week this year !? WTF, that's the best thing about fleet week by far. The Blue Angels are kind of boring, they just fly too fast.

LoveFest is next week and it seems pretty cool. I need to buy some E.


09-21-07

I'm still riding the same bike I had in high school, I think I got it when I was 13, and I'm 30, so it's 17 years old. I've done lots of tiny fixes on it, stuff like brake pads, bar tape, tubes and tires, a cable, but I've never once replaced any of the major components. I guess the biggest thing I ever did on it was overhaul the headset, but I only put new bearings in, which cost like $5. Anyway, my point is 1. that bikes will last for EVER if you just treat them half decently (eg. don't leave in the rain to rust), and 2. all that stuff you're supposed to do yearly as preventive maintenance is a load of hooey. If I haven't had one problem in 17 years, the amount of problem-reduction from a big yearly overhaul must be microscopic. It's clearly not worth the work, better to save the energy for when you have a problem and then make a repair. (supposedly you're supposed to overhaul or check the bearings yearly, grease all kinds of bits that I never dig into, even out the spoke tensions, etc. etc.) Actually for an average shlub I imagine they're more likely to screw something up in a yearly overhaul than they are to help anything.

I wonder if the same goes for cars, and that whole 30k mile "tune up" is a similar load of hooey.


09-21-07

I got a Trader Joe's employee to spill the beans on the new "German" eponymous beers (the Hofbrau Bock and Bohemian Lager) - they are in fact Gordon Biersh. It's pretty obvious if you look at the clues, and I had seen that guess at beeradvocate. The clues are : they're brewed in San Jose, and they have the exact same barley graphic design on the bottle cap. The bock in particular is superb, and perhaps the best beer value in America in terms of taste/price.

They also have a new unfiltered olive oil which I'll be sampling this week, the "First Lady" ; results : hmm, it's pretty nasty but I prefer the California unfiltered in the tall skiny bottle. The California unfiltered has a really strong grassy taste which I just love in a raw olive oil. BTW never ever never cook with this stuff, it's just for drizzling on canteloupe and figs.


09-20-07

Everyone who said "Casino Royale" was cool because it's a superhero genesis story is fucking retarded. Superhero transformation stories may have been cool back in the 80's, but they're so fucking played out and all the same and not interesting. And now we get to see all these heros that already have fucking genesis stories get ANOTHER FUCKING GENESIS STORY. I mean fucking Batman is nothing but fucking remakes of genesis stories over and over. Fucking Superman has whole fucking TV shows about his transformation to superhero. Also making Bond more "edgy" is not cool. It's fucking copying every other action movie which is getting more "gritty", which basically means that the hero is becoming more of emotionless and brutally violent and uninteresting. The thing that made Bond so unique and cool was his charm, his sort of amusement with himself and the whole situation, how light-heartedly he took danger, women, and killing. You've turned him into a clone of the current fucking trend. Okay, that's what I expect from stupid fucking Hollywood but the dumb ass critics don't have to all jump on and say how great it is. Other than that aspect, the story is retarded and the pacing is awful, we get overly long action sequences that don't build intensity, followed by really long boring talkies, and bits where we think the movie is over and then it just goes on. The villains are as uninteresting as Bond and his love interest. Eva Green's only redeeming quality is her rack and we don't even get to see it. I'm all for breaking the Bond "rules" and updating some of the quite silly out of date Bondisms for the modern world, but you don't have to ruin everything that makes you unique. You also don't have to just make a badly written & directed movie.

Just as an example, let's think about the two big action sequences in the movie. The second one with the house in Venice, I'm not even sure what to say about, at that point we already know exactly what is going to happen, this new villain who's the boss guy we know nothing about which makes him totally boring, and it's not exciting. Okay, the first one chasing the African terrorist guy. Now, hiring a Parkour expert to do some city running is a good idea, but they completely fuck it up. First of all, the whole thing is completely retarded, the guy who knows the area flees up a skyscraper under construction, WTF, then he goes up a crane. Eye roll. Even that would be okay, but the camera work is so ridiculous and showy that it doesnt even get the adrenaline running, we get cut after cut of panning shots and fly-bys trying to show us the amazing spots they're in. Ugh, hello, action directing 101, that totally destroys the immersion which ruins the adrenaline. We need 1st person or behind-the-head shots where suddenly their foot slips on the crane and they look down and we see how high they are. Of course they shouldn't be on a fucking crane anyway, but if you're gonna be retarded at least make it fun!

How/why is it so fucking hard to make a decent movie with hot women, smart spies, fast car chases, glamorous locations, cool gadgets, etc. We just want a decent FUN movie. Oh, and you don't need to make the "hero" a despicable cold-hearted brutal immoral killer either, it would be nice if it was someone we could actually respect/idolize.

On a related note, we really liked the latest Bourne movie, so much so that we decided to rent the first two to watch again. Bad idea. After seeing the later ones, the first one is really bad. The 2nd one is okay I guess, but it is SO similar to the 3rd, the whole pacing and structure and everything is identical, if you sort of zoned out you wouldn't know which one you were watching. BTW yes I know the Bourne movies are completely intellectually retarded, they try to make Bourne the "smart" super-spy, but everything everyone does is just so absurd and illogical, whatever it doesn't matter, it's a stupid action movie and the action is good. It does make me roll my eyes when people try to discuss the meaning of this or that; lol, people it's RETARDED, if you spot an inconsitency it's not because it means something, it's because the director/writer is making an action movie and doesn't care. I'm so sick of reviewers like A.O. Scott calling it a brainy CIA cloak and dagger movie. It isn't! It's a HORRIBLE brainy CIA movie, it has absolutely nothing in common with what spy agencies actually do. The CIA character in James Bond movies is more realistic. It's a straight-up violent action movie and a very good one.


09-20-07

Jon Stewart's kind of a thick-headed idiot, I'm getting pretty tired of him. He does a good job in his interviews some times, but he's just not super smart (in the sense that he often doesn't seem to grasp what the interviewee is trying to say, and he makes replies that don't really reply to the point the guy was making) and his politics and understanding of the world is not deep. More and more it seems like he uses the interviews to just say his favorite little points, and doesn't really listen to what the other person has to say and doesn't draw out the useful information from them. He's the kind of guy you can't actually have a political discussion with because he will just keep going back to his same points over and over.

Wesley Clark on the show was very impressive. Obviously he's been out of the military and government for a long time now so he has some freedom to be honest that people closer to the shit don't have, but he came out and said the things that are basically true : the counter-insurgency strategy is basically right; the "surge" is just a band-aid that's not gonna do shite long term; to really create peace we would need to send in a ton of troops which we don't have and can't get; even if we could, the American people are now against it; and even then it may be too late in Iraq, or it's way harder anyway, because we've allowed the political situation to get screwed up there.

Of course he didn't get into what he would do now, dunno if that's in the book. His article from late 2005 was a pretty good (and obvious) action list for the time, but it's too late now. The only thing I can see that's workable is partition. Partition sucks for a few reasons, one of which is that Baghdad is not easy to partition, but of course in the last few years it has become much easier to partition. Kurdistan is already nearly independent, and basically the success in Anbar that the administration loves to talk about is really just the Sunnis taking a step towards an independent security force.

We have just enough political will to support a troop presence for a bit longer, and that could be used to help establish the partition and support & train the seperate security forces in each region, and also to enforce peace between the regions. We could help set up a weak federal government with some kind of parliament from the regions and an oil-revenue sharing plan that's built into the constitution. Perhaps the biggest problem with partition is that apparently the Iraqis really don't want it (except for the Kurds).


09-20-07

Two additional great things about left-hand-mousing :

1. It's so fucking hard and uncomfortable that it makes me just not want to sit at the computer and browse the web, so I get up from the damn idiot box more. That's a nice bonus. Of course it doesn't stop me from wasting time typing this nonsense.

2. When you are browsing around or playing poker or whatever, it leaves your right hand totally free to drink coffee, dip biscotti, shuffle poker chips, or do other things with your free hand (wink wink).


09-19-07

Noe St. between Duboce and Market is one of the secret gems of SF, it's a gorgeous walk, locally maintained. Right nearby you have two of the best sit-outside cafes in the city, Duboce Park Cafe and Cafe Flore. You can also walk up to the hill by the Randall Museum which is a relatively easy climb for San Francisco and has an amazing view. For some fun you can cross right over to the Castro and hit the Seward St. Slide (or the Moby Dick if you prefer).

There's a huge amount of great budget dining in the Tenderloin now. Of course you have very strong Vietnamese, the standouts being Saigon Sandwich, Pagolac, and Bodega Bistro. But you also have two of the best Thai places in the city - Thai House Express and Sai Jai. You also have fantastic Indian (Sultan) and Pakistani (Lahore Karahi).


09-19-07

Made some lamb last night and kind of fucked up. For one thing, I did the old quick sear. That works fine, but I should know that the sear and finish low and slow is so much better, I should've done that. Secondly, I did the old deglaze and make a wine reduction pan sauce thing. That was fine, but lamb really has enough of its own great flavor you don't need to be adding any other sauce. Also the lamb fat is so tasty that it's a shame to waste it (you pour most of it off to deglaze). Next time I'll do the low-slow-finish thing, and I'll also just use the pan full of lamb fat to cook some spinach or chard or something and make a bed under the chops. The low slow finish method also makes timing a lot easier cuz you can just do the meat sear first and then worry about your sides while it finishes, it's not all going nuts at the same time, which stresses me out and makes me realize I'm definitely not cut out for pro cooking.


09-18-07

I wrote back on 8-13-06 about how shitty most heirloom tomatoes are. One thing that has caught on here which I can totally get behind is "dry farmed" tomatoes. Dry farming just means using either no artificial irrigation or just minimal watering, which makes the tomatoes firm and very flavorful, as opposed to your average grocery store tomato which they water as much as possible to make it swell up because they sell it by weight, of course that just waters down the already bland flavor. The dry-farmed Early Girls at the local farmers markets are almost as good as a real home grown tomato.

I dry farmed tomatoes at Alrita Street one year, but actually overdid it a bit; the flavor was intense and delicious, but they were too dense and the skin was very tough. Anyway it's awesome to see that things are sorting of straightening out and growers are actually producing what's best, instead of what's most profitable (big watery tomatoes) or what's trendy (organic heirlooms or some such nonsense). I remember checker telling me that Fuji apples were the sign that people were okay after all; I wasn't convinced, but dry farmed early girls do give me some hope for civilization.


09-18-07

So, I'm reading some book of Nader's and it's actually pretty good stuff. I can never forgive him for getting Bush elected, though. Running as an "issue candidate" does absolutely nothing. Perot is probably the most successful issue candidate ever, and are we doing anything about reducing the defecit? No. The American people are totally retarded and have very short memories, and the media goes right along with that. An issue can be a big stink one day and then it's gone and nothing happens. That's why whenever the government is caught doing something awful, the population gets all upset, so they create some kind of committee to formulate reforms, they go away for a few months, and then everyone forgets about it and nothing ever happens. Issue candidates : save your money, or better yet, use it to lobby, buying votes is more effective than buying awareness.


09-18-07

Some food network show said "hard cheeses generally have more calories than soft cheeses, because the soft cheese has more water in it". Okay, that's sort of true, but also retarded. For example :

1 Oz parmesan = 111 calories from 7.3 g fat and 10.2 g protein

1 Oz brie = 95 calories from 7.9 g fat and 5.9 g protein

And obviously "cream cheese" is like the worst thing by far. What's really at issue here is whether it's made from milk or cream.

I've been trying to sort of "diet". My diet is I can eat absolutely as much as I want, I'm just not allowed to eat anything that's horribly bad for you (eg. no chocolate, no pie, nothing that's pure fat or sugar basically). It's surprisingly hard. When I have that craving for dessert no amount of balsamic-fig-crostini with prosciutto or whatever I come up with is going to satisfy it.


09-18-07

When you type "finance" in Google it gives you Yahoo finance, not Google finance. WTF Goog, favor yourself please!!


09-18-07

Healthy San Francisco is a pretty rad program. Of course the descipicable business people make a lot of noise about how it will "put them out of business" , which is so completely retarded and untrue. If we actually had low-wage manufacturing which was trying to compete with other exporters, it might hurt them, but it doesn't hurt restaurants at all because they are only competing with each other, so if all their prices rise they don't suddenly get undercut by cheap external competition. It's also one of those programs that's almost free, in the sense that the spending for preventative care will be matched by savings in emergency care.


09-18-07

I've written about this before, but there's a huge retardation in having cities and states with these hard boundaries and drastically different laws. Part of the problem is the local tax situation. For a long time in America there's been this pattern that you have some city with lots of people in it. The city has to have pretty high taxes to support all the infrastructure, health care, education, etc. All around the city are sparsely populated suburbs with very little tax burden. Big company X moves in, and the suburb offers them tax breaks, of course they locate there. But what do they get? Workers from the city who come out using the city's public transit, educated by the city's schools, healed by the city's clinics, and yet company X pays taxes to shitty little suburb. This is a seriously broken ass fucked up situation in which company X is basically getting a huge government subsidy in the form of reduced taxes in the suburb, and free services for all its employees from the city, and of course the roads & highways to support all those commuters.


09-18-07

The main advantage of privatization is that it wipes the slate of regulation. It's not because the private enterprise is "more efficient" - a privatized public operation works in a subsidized cocoon free of market pressure, it's not part of the magic capitalist efficiency machine. Rather, it gets to severely cut quality, and thus cut costs. The sneaky thing is this quality cut is not always obvious, because it's often a cut in disaster preparedness or safety or environmental cleanliness, etc. Over the years of a public institutions' existance, the regulations build up as different people spot problems and pass laws to handle them. Certainly you often wind up with too much regulation, but most of the time that is still better than none at all. Politically, you can't strip away those regulations because people can easily see them and object, "we need the safety, we need the quality", so just privatizing the whole thing sounds great and people don't realize that they are all losing all the quality and operations protections.

In general, preventing rare problems is incredibly inefficient and private enterprise doesn't want to do it. One of the interesting things to me about the Minnesota bridge collapse is that there was this little subtext that nobody wanted to say publicly : our infrastructure maintenance program is specifically designed so that we have an occasional bridge collapse. That is, we have a very limited budget for new bridges and repairs, so things are evaluated for safety and the ones that are obviously critical are repaired, but it's all about percentages. One bridge might be evaluated as a 0.1% chance of failing next year, then they have to decide whether that's worth repairing. In private enterprise you would evaluate the cost of preventing the accident to the cost if it happens, in terms of all the suits you'd have to pay and the negative publicity. Usually what you find is a sort of exponential decay of failure rates to constant expenditure. That is, say you're running an oil refinery. There's a pretty high chance of some kind of industrial accident injuring someone. Maybe you estimate the current chance is around 1% and the cost to halve that chance is about $1 Million. Okay, you pay that. Now the chance is 0.5% and the chance to have that is $1 M again. Okay, go ahead and pay that. But pretty soon you get to a point of diminishing returns and you just want to accept the small chance of failure.

Of course those higher standards can also really screw up public enterprise. Say you're running a bussing company on a limited budget. The private company might decide to just run a fleet of busses along the main commuter routes, stopping every 5 blocks only on major roads. Not everyone can use them, but they get a lot of traffic and the users are quite happy. The public company is forced by voters to run busses all over the city, stopping every 2 blocks; they're now accessible to all but everyone thinks the service sucks.

There are of course also other tricks that the government can use to wipe regulation. One is making a brand new institution or agency, then having it gradually usurp responsibilities from old agencies, but under new names.


09-17-07

So we've been having problems with our fridge and I've been thinking about how they work and such and something occurs to me: There's this voice of my mother in my head that always yells "don't stand there with the fridge door open, you're letting out all the cold air". This, I suspect, is nonsense. The air in the fridge is an insignificant amount of its cold store. You could flush out the air and replace it with hot air and it would not affect the temperature of the large objects in the fridge much at all. A much larger effect, for example, comes from putting a hot or room temperature object into the fridge, which our silly moms surely often did.

The funny thing is, I do believe that standing there with the fridge door open is significant, it's just not because of the air. It's because of the light. Fridge light bulbs are typically just something like a 75W bulb, especially on older fridges, and if you stand there with it open a while, the light gets blazing hot (and also heats up everything around it with radiant heat). Then when you shut the door you're sealing the hot bulb inside. I'm pretty sure this is a bigger factor than the air getting in or out.


09-17-07

The fridge thing reminds me of another wives' tale which I recently got egg on my face over. There's this old wives' tale that the crust of bread is healthier than the inside. Of course that's nonsense, right? Crust is not some different material that's wrapped around bread - it's the exact same dough, it's just more browned! Saying it's healthier is preposterous, and in fact it might be worse for you because it's browned and anything browned is slightly carcinogenic.

Well, it turns out that the crust might actually be better for you. Supposedly the Maillard reaction which browns the crust also creates this antioxidant pronyl-lysine . This seems to be an isolated study so who knows what the truth is, but the next time somebody says "the crust is the healthiest part" , don't just say "you're retarded" , cuz they might trot out this study to make you look bad.


09-17-07

Here's an interesting physics problem I don't think I ever did : you have a rectangular box resting on a plane, it has some friction, how far up on the box should you push it so that it has no angular motion (eg. it doesn't tip). I dunno if there's some clever easy way to work this out; in practice we know the answer is usually something like 1/3 of the way up, but I'm sure it depends on the geometry and such. I'm also not sure if you have to consider static friction in this phenomenon or if I can pretend I'm in a steady state dynamic friction situation.


09-17-07

The "Big Man" myth of history certainly dominates, for various reasons; it's the idea that heroic figures (or villains) like Churchill, Lincoln, or Hitler really shaped the course of history with their individual actions. 1. it's used to create a national heroic myth and identity, 2. it's just easier for historians to report and easier for people to understand, as opposed to the actions of hundreds of beaurocrats and populations, 3. it's more exciting for people to read about, so of course those are the books they will write because they sell, 4. it's really what people want to hear and want to believe, we don't want to think that the world is made by folks just like us, we want these superhero daddy figures to rule us.

Anyway, not only has this myth dominated history, it dominates popular reportage of science, and it's equally wrong in both cases. Especially in the modern world, any time somebody invents or discovers something, it's usually a tiny incremental step based on the work of hundreds of people before them. Furthermore, there are usually scores of people on the same trail who are right behind them, and if they didn't rush to publish first someone else would've gotten there a few months later. In the modern world saying that so-and-so is the inventor of this or that really doesn't mean that much. Often it just means they happened to be in the right field at the right time when the whole field was making exciting advances. For example, if you worked in computer graphics in the early 90's, how could you not invent something?

There are people in physics with Nobel prizes who just happened to be first of hundreds in the field to make the next step. If they hadn't done it someone else would have. Of course there are exceptions where someone really makes a leap or works ina field where no one else is working, but that's very very rare, especially nowadays with so many researchers.


09-17-07

Basically any time there is an opportunity for someone in power to use a system to their own benefit, they will do so. It's just human nature.

The latest one I've been thinking about is inflation and the fed prime rate. I certainly don't understand money supply well at all, but something occurs to me : 1. Inflation (the CPI) in the US has not been over 5% since 1983, which is a very long controlled span, despite several economic cycles and recessions that might normally be periods of inflation (see US Historical Inflation ) ; 2. If the reported inflation rate (CPI) was lower than the true cost of living inflation rate, that would be a big benefit to corporations.

Why is it a huge benefit for corporations (& hedge funds & large investors in general) to pretend inflation is lower than it really is?

1. They get a low fed funds rate which makes investment capital cheaper than it should be. At the same time this hurts ordinary poor people with savings accounts because it generally correlates directly with savings return rates. In general when the fed rate is low, that's a huge boost to financial institutions, but bad for ordinary savers. Whenever the "economy grows" that means that large corporations and banks grew. Now of course in theory that wealth spreads out as it creates new opportunities and jobs and so on.

2. Benefits like social security, welfare, union salaries, etc. are generally set by the CPI. If the CPI is not increasing to track actual costs of living, these people are all getting shorted. More generally, employers can set wages, and the government can tout the fairness of wages if they generally track with the CPI. The employers' wealth grows proportional to the economy's growth, but employee's wages only grow proportional to the CPI. For example, the minimum wage and poverty line can be set far lower than they should be.

It's an interesting question to me whether wealth and poverty and necessarilly connected. The US seems to be the richest country ever by far, and we have massive income inequality and severe poverty. In the EU, the UK is by far the best of financially, and they are also the country with the most people in poverty and the worst conditions of poverty. Obviously it seems that the country's overall financial success (measured in terms of total wealth or average wealth, anyway) is correlated to income inequality. The question is whether people in poverty are necessary to this, or whether that's just a bad side effect of a laissez-faire system which encourages entrepreneurship. For example, if you just took the poor people away, would that hurt the economy? Would some of the middle class be forced down into poverty by system forces? Is it possible to have a dynamic growing economy without a massive base of poor people doing the low-skill low-wage jobs?


09-17-07

(I'm stealing this from Nader and others but : ) there's zero reason why corporations should be allowed to contribute to political campaigns or political advertising. It currently is justified because in the US, corporations legally have the rights of people (and thus 1st amendment rights), but that's absolutely absurd and every humanist rails against it. Now, certainly corporations do often act in the best interests of the population - but when that is the case the population can support that cause themselves, there's no benefit to the population in having the corporation lobby directly.

Removing corporate money from politics is almost 100% a win, but I'm under no illusion that it would magically make things better. Obviously there would still be huge corporate influences - news people are paid by corporate advertising, owned by conglomerates with many arms, and don't want to say anything that would stir the established order or anger their money sources. Furthermore, even if the population is presented with the truth and allowed to make a judgement, I have zero faith in them to be reasonable, not just because they're retarded, but mainly because they just don't care, they don't pay attention, they don't study and learn about politics and the world, etc. In any case, it would be an improvement.

The idea that you shouldn't do something which is an improvement just because it's not a full solution is one of that retarded fallacies that is often used to sabotage perfectly good proposals. Everyone does it, but it seems the Republicans really like to use it with environmental proposals. Oh, this program that would definitely cut our dependence on foreign oil wouldn't completely solve our energy problems, therefore we shouldn't do it. Great logic mate.


09-16-07

Jacques Pepin was always trying to push the idea of shaving garlic with a vegetable peeler. I'm not too hot on that idea, I can do nice shavings faster with a knife. It is, however, and awesome way to make parmesan shavings. I used to always just do the standard paring knife technique, which is fun and old-school and makes you feel a Spanish rancher shaving his dry ham, but man the vegetable peeler works way better for producing uniform big thin flakes of parmesan.


09-16-07

I'm in intense pain, my shoulder, my neck, my upper back, my lower back. There's no position I'm comfortable in, not sitting, not standing, not lying down. I can't sleep; I toss and turn all night every night trying to find a position without pain, but it doesn't exist. All my younger life I slept on my stomache and I still try to do that subconsciously but it's too painful now, I have to try to sleep on my back which I hate. Stretching and good posture really do nothing at all to help the pain in the short term, I guess over time they help. The only thing that really helps is cracking my joints, because that triggers the body's natural adrenaline pain-killing response, and it feels okay for a while, but of course that's actually bad for you long term. I don't mean to whine, I'm just trying to chronicle what life in pain is like for those that don't understand it. There are really no medical solutions; the main options I've been offered are fusing vertebrae, which is of questionable benefit and has very definite disadvantages, and epidural painkillers, which would help the pain of course but has to be repeated periodically, is ridiculously expensive, and of course doesn't fix anything and can lead to further injury because it totally numbs the area.


09-15-07

Runnymede Sculpture Farm is this huge private modern outdoor sculpture collection on someone's huge estate in Woodside. It's right off Canyada where I bike. It's one of those cool totally under the radar secret spots that you might never hear about. I guess you can get in once in a while for fundraiser events. Seems like a fun place to sneak into and go exploring.


09-15-07

I've always had some kind of allergy/exercise induced asthma. I don't get the attacks where I can't breathe, it just feels really hard to take a breathe. I've often described it as though I need to "loosen up" my lungs before I can breathe - when I first start cycling I feel like I'm breathing with 10% of my lungs, and as I warm up they open, and then there's a point where they "pop" and suddenly I can breathe. I've been doing some reading, and apprently my recent severe "bonk" followed by a massive mucus expectoration attack is actually a classic symptom of a severe EIA (exercise induced asthma) attack.

Anyway I found a confirmation for something I've always empirically known - Cycling is better than running . I've always been able to work myself up to decent cycling shape, but running has just been brutally difficult for me. I've tried to make myself run, but I've never been able to jog more than a mile without just going into wicked horrible breathing difficulty. At the same time I can cycle 50 miles at high intensity, so something weird is happening. (BTW this finding confirmation nonsense is sort of a red herring of the internet these days; there are so many pages out there you're likely to find confirmation of almost any thought you have, regardless of whether it's true or not).

I'm also more able to work out in a rugby/soccer type running mode, which is spurts of jogging and sprinting followed by time to recover. Apparently there is a so-called "refractory" effect which I haven't found good information about which makes this type of exercise easier for EIA sufferers.

So, a long time ago I tried using OTC asthma inhalers to help my condition. They didn't really help a lot, and now that I've actually done some research I'm not surprised. OTC inhalers are freaking epinephrine. That's pretty useless as a preventative, and in fact is only really useful as an absolute emergency aid when you're suffering a wheezing attack. The FDA has several times considered banning these, and the Association of Allergists recommends banning it, but the drug is popular and profitable so the FDA does nothing unless a lot of people die from it. What I should be on is something like Albuterol or various similar drugs. These require a prescription, but you can easily get them cheaply via the internet. (I've had trouble with Canadian pharmacies, they seem to want a prescription or something; I like the Indian pharmacies a lot better, they will generally do an online diagonosis and you can get whatever you want).

As usual, by far the best web site is American Family Physician which is one of the few places you can find actual medical articles online (without a password), not the garbage stuff that's written for the lay person that just says "talk to your physician".


09-14-07

Of all the science/math disciplines that I've encountered, finance/economics guys are generally the biggest assholes by far. Whenever you try to talk to them and you don't know the right terminology, they put you down and won't explain things in lay language. Of course there are exceptions, and the real academic guys are generally way way better, I've mainly encountered the pricks in the working field. I guess the obvious reason would be that they're really not very bright and trying to hide it in lingo. It's frustrating.


09-13-07

Quaffability is a nice site with cheap wine reviews.

We had the TJ "Captain's Reserve" Syrah tonight. I'm very curious what winery it comes from, but some net searching didn't reveal it. It doesn't have a lot of fruit, and the nose is rather thin in general, but it has a nice strong tannin and spice. Not a great wine just for sipping, but it did pair perfectly with the rib eye we had for dinner.

Which brings me to another point : I HAVE A NEW WAY FOR COOKING STEAK ! ZOMG.

Ok, it's basically the "Good Eats" method (sear in a pan then pop in the oven). The little wrinkle is that instead of a quick finish in a 400 degree oven, instead you do a low slow finish in a 300 degree oven. Here's the whole procedure for the record :

Take steak out of the fridge well in advance to get it up to room temperature. As you get close to time, dry it thoroughly, then salt and pepper. Let it sit out a while longer.

Preheat oven to 300 degrees. Prepare a roasting pan with a wire rack. You don't want the steak sitting on a metal surface. Heat a hot metal searing pan or grill pan on the stove (empty and dry). Rub a bit of oil on the steak and sear thoroughly on all sides, about 5 minutes total. Remove from the pan to a plate and let rest.

At this point you can add more spicing to the steak; don't spice before searing as the high heat will burn it. Cracked pepper is nice, as is a tiny tiny tiny bit of cumin. You now also insert your probe thermometer into the steak and set the alarm for 135 degrees. Put the steak on the roasting rack - don't put it in the oven yet, wait for it to relax from the searing and come back to room temperature. Okay, now put it in the oven.

The thermometer will tell you when it's done, it'll take roughly 20 minutes. Remove steak and let rest. A long rest is actually not crucial because it's a pretty low even temperature already, but a 5-10 minute rest certainly won't hurt.

The result is medium rare all the way through, seared on the outside, and very juicy and tender. I just tried it with a rib eye but I imagine it would work with almost any (thick) cut. BTW yes I know this a semi-standard way of cooking the very large rib eyes "for two". It's significantly better than the standard "Good Eats" steak method, so I think it's worth the extra time. Yeah I also guess this is the same thing I do for double cut pork chops so it's not even new to me, but it's still surprising because I assumed that the standard quick high heat steak was a good way to do it, but this is just so much better.


09-13-07

Collisions are a really annoying thing in physics. It's one of those cans of worms where if you dig into it you have to keep going and going into insane complexity. You start out with this basic point-mass theory where the collision is instantaneous and you're just doing momentum transfers. Okay, that's nice and simple and elegant, but it's bogus for real objects. Say we want to get into slightly more realism, we want to know something about the force and energy of the collision to measure how "hard" it was. Well, the first thing we can do is just pretend that we know the duration of the collision force being applied, and then we can just measure F = momentum change / duration. Okay, but where did we get that duration? And of course in reality the force isn't constant, it's actually more like a really really tight spring that starts off at zero and gets stronger as the objects push together, and then eases off again as they seperate. Of course the geometry of the objects matters too and how they contact, but we'll keep ignoring that and pretend they're spheres. To get the duration of collision and the way the forces vary with depth we have to model the objects as a bunch of finite cells which are compressible with some type of spring constant (or a gas pressure if you prefer). To actually put that model on a solid first-principles basis we should model the atomic structure of our material and figure out the material properties from that. Yuck!

Anyway, I was thinking about why Rugby tackles are so much safer than American Football (NFL) tackles. For background, in rugby tackles you are required to wrap up and stick to your target; it's a penalty if you just come smashing in and bounce off a guy - the reason it's a penatly is specifically for safety purposes. In the NFL, the really hard hits are generally those types of hits where a defender flies in and bounces off his target. There are several factors at play. I'll try to go through them.

1. Inelastic collisions have lower forces. In rugby tackles you have to wrap and stick so you become a single mass after the tackle, in NFL hits you bounce away like billiard balls. Assume you have two momentums, each P, going straight at each other. In the rugby tackle, the two objects collide and stick together and now have zero velocity. Momentum is conserved, but all the kinetic energy is gone from the system. In terms of the force applies, 2P became 0 in some amount of time T, so we'll say F = 2P/T. Now consider the same situation, but instead the two objects collide totally elastically and bounce away in the opposite directions. In this case kinetic energy is totally conserved, but in terms of forces, 2P became -2P , and the force is F = 4P/T - the collision is twice as "hard".

How big of a factor is this in real games? I believe it's not a huge factor. The thing is, in NFL hits the guys don't bounce away totally elastically; they bounce away with a much lower velocity than they came in with. The hit is "harder" proportional to how fast the players are moving away after a hit, which is generally 10% or less of the incoming speeds. So, this is a small contributor, but not a huge difference.

2. Helmets and pads actually make hits harder. When rugby players collide, it's flesh and cloth against flesh and cloth. Those materials deform and absorb a lot of the energy of the collision, so it's not transfered to the skeletal system. The collision is "soft" in the sense that the objects can sink into each other and the full force doesn't happen all at once, the mysterious "duration of collision" is longer. Helmets and pads are designed to protect, but they're actually very hard rigid objects, so they collide and don't deform and take the full force of the momentum change over a very very short time frame. It's hard to estimate exactly how singificant this duration difference is to the forces being applied, but it seems like a helmet to helmet NFL collision could have a contact duration in the milliseconds, while a flesh on flesh tackle is going to be closer to a full second, which is something like a 100X difference in intensity. They do have padding inside which is designed to deform and not transfer the full load to the body, but the actual force transferred is much much greater. The role of the internal padding is to take the force and transfer it on to your head gradually over time. Designing padding with the ideal characteristics is very difficult and may be part of the problem. This is also why bicycle helmets are designed to be destroyed in collisions - much of the energy of the collision goes into the material destruction of the helmet, and the crumpling spreads out the impact duration over time so there isn't an instantaneous huge force to the head. But helmets and pads are not actually the question - the rugby rule is specifically about not making bouncing tackles, so something else must be at play.

A related factor is the area of contact. We've just been talking about forces, but we could also talk about pressures. The force of contact is spread over some area, and the smaller the area, the higher the pressure. When two helmets hit, they are nearly spherical, and the area of contact is very very small, which means the pressure on that point is immense. The same is true for shoulders bouncing off eachother, or helmet-to-chest, etc. In contrast, in a wrapping tackle, your body is spread out to make the wrap, and while the initial touch maybe just over a point, as you tackle the area of contact grows and the force is spread out over a larger area. Think of two globs of silly putty thrown at each other. The initial contact will be at a point, but that won't carry much force; over time the two putties deform and sink into each other until the area of contact is very large, and that's when they stop moving.

3. Psychology. Obviously aside from the physical factors there are some large behavioral factors. When you're wearing helmet and pads you feel more invincible and will go in harder with more risks. To make a rugby tackle you generally have to lead with your face up into your target which is subconsciously very scary and will keep you from going full force. The other big factor is that in a rugby tackle you have to be worried about technique and penalties and making a good wrap, so you have to go in slower simply to concentrate on form and be in position to make a proper tackle; if you just fly in at full speed you can't control yourself to make a clean hit. This may actually be the biggest factor of all.


09-13-07

How American could get ahead and also fix a lot of IT monopolies :

The government should run super-fat broadband pipes to every home. This could be started by using emininent domain to seize the existing broadband networks (and rent them back to their previous owners), but the goal would be to rapidly replace with with super-fat pipes. These pipes would then be open to all - there would be no more monopolies controlling internet or TV or phone or any other IT service since nobody owns the pipes. You would still need to sign up with a provider, but it would be a wide open truly competitive market. This is where capitalism actually works well, when you have a truly liquid open market with a standardized structure for everyone to operate on interchangeably. It would also blow the cable TV broadcast market wide open since cable just comes over the same pipe and anybody can put a channel out there.

Of course you'd like to have the same thing for cell networks; there should be a nationwide fast wireless network, and providers just lease access to it from the government.

A standardized pipe for power companies would be a massive benefit. The whole country is already on a grid, so you just have the government own the grid and the lines to people's houses. Private power companies supply power to the grid. People pay based on their usage and that goes out to the power companies in a sort of automated eBay-like bidding system. Each provider picks how much power they will provide at various fees, and the system automatically contracts out to the lowest bidder and then keeps moving up until all the demand is met. We finally get true competition for power providers, anybody can build a plant and stick it on the grid and start providing power to the system. Furthermore, customers could have real choice, they could choose to favor producers from green or renewable sources or whatever. Again, this is where capitalism actually works, when you have a standardized fluid framework, consumers can make instantaneous choices between interchangeable providers.


09-12-07

It was really a pleasure watching the Colts offense last Thursday. When they're operating well there's nothing like it. Nobody else even tries to run the Colts offense, it's entirely unique in the NFL. Everyone else has lots of fancy motion schemes, weird bunch patterns, trick plays, substitutions, formations, etc. to try to confuse the defense and get an edge. The Colts almost never do any of that. They just line up with their 3 wides and a running back and say to the defense "look, we're either going to run with our RB, or we're going to pass to one of the wideouts, now you just try and stop us". The thing that makes it work against even the best defenses is the adjustment. If you overload against the pass, Peyton will call for a run, if you double cover Marvin, Peyton will throw to Reggie. You show your hand, and he just makes the totally basic level 1 adjustment and beats you.

Of course this reminds me of poker because it's exactly how you should play poker. All the other NFL teams are like bad poker players, trying to come up with all these fancy moves and tricks in order to win. Yeah, that stuff can kind of work, but it can also backfire because you can wind up tricking yourself. Because the Colts are always running basically the same formation and the same plays they are incredibly familiar with those plays and they know how to respond to every kind of defensive reaction against those plays. If you're running some weird trick play, you probably haven't run it very often and certainly haven't seen 20 different defenses respond against it.

The best way to play poker is the same way, totally simple, but with the right adjustments. You just come out firing a totally basic "solid" style. I'm gonna raise & bet my good hands and also some semibluff hands. If you don't do anything to make me change that style then I just stay in that style. Now if you show me some weird defensive move, I'll call an audible. Like if you start check-raising my cbets all the time, okay that's like some crazy defense so I make an adjustment, I cbet a little less so I have the good more often, I felt slightly weaker hands, and I'll 3bet bluff some big draws. It's a totally basic "level 1" adjustment. I'm not trying to trick you or get inside your head. I see what you're doing and I make the adjustment, and I challenge you to beat me now. I'm going to execute the basic plays better because I've studied more, and since I'm always in basic solid mode I'm very familiar with these situations.


09-12-07

I want to buy some better underwear (I love the feel of just really good quality cotton down there), so I'm browsing around trying to find something, and I check out the Calvin Klein Underwear page. ACK! Ok, I'm a hetero man, just ignore the huge muscley guy with a giant cock trying to pop out of the underwear. Ok, let's check out another style of briefs, WATTA!! YARP! No, I can't look at this. Close close close. Who are they selling to? Not normal guys, maybe girlfriends buying presents, gays, and closet gays. Among other things I can't really get any idea how it's going to fit on me based on how it fits these guys. I mean yeah I get it you want to use fit guys and all but this is ridiculous. I guess I'll buy some American Apparel cuz I can browse without getting confroused.


09-09-07

US Governments, roughly since LBJ, have been letting this country completely go to shit. The only major capitol outlays have been tax cuts for businesses and the super rich, and military spending. In the mean time we are letting our social institutions completely rot, while the rest of the world is leaping past us. We still have zero telecom infrastructure; we have no fast network, no national shared open network that could foster competition and innovation; our public transit is woeful compared to other 1st world countries; we have no significant investment in renewable power; our health care or the poor keeps getting relatively worse and worse. Recently Katrina and the Minnesota bridge collapse have brought some attention to the sorry state of our national infrastructure and civil engineering. In fact back in 2003 the national association of civil engineers published a report on the decrepit state of our systems and outlined a planned for $600 billion in "critical" projects, a total of $2 trillion of "urgent" projects. Those are only the visible failures, countless others are simply risks we aren't prepared for that might never actually happen. Less visible are the budget cuts to libraries, parks, after-school programs, and just about every single facet of what government is supposed to do for people.


09-09-07

Throughout our recent history, every single time there's been a major liberalization of business regulation, there has quickly followed a huge scandal where the criminals rush in to rip off the consumer and markets in exactly the way that regulation was designed to protect. Back in the 80's, the S&L regulations were liberalized, allowing S&L's to invest a larger percent of their assets and to invest in a wider class of vehicles, and we got the S&L scandal. Just before the dot-com scandal (and let us stop talking about the dot com scandal as if it was a natural economic cycle of boom and bust; that's a myth which is drilled into people by the free-marketeers) the banking/investment industry was liberalized, allowing the investment banks, analysts and brokerages to merge as they weren't previsiously allowed; the result was a massive pump-and-dump scandal where the banks created a huge artificial bubble and collected billions and billions in fees for themselves. The energy trading markets were liberalized, and of course we got Enron. Recently the mortgage/lending laws were liberalized, and we see what we get.

It's no surprise that the politicans continue to cry for "less regulation" - they are paid to do so, and rewarded handsomely with industry jobs when they retire. What is sad is how many regular people believe that "competition" will somehow keep companies honest and working in their interest.


09-09-07

What if you could borrow a bunch of money, invest it in various more or less risky ways, and then only pay back the loan if you make a profit? If your investments fail you just wipe the slate and start again. This is a fantasy pathway to huge easy money, but this is also exactly what banks and other financial institutions in the US do. They take in money from investors/depositors, they are allowed to invest it with very little oversight (the quality of their management is evaluated, but the rating is kept secret), if they fail they are bailed out either by the FDIC or the government. (in some cases they are bailed out by their peers, but this is usually accompanied by fed rate cuts or other measures to prevent it from really costing anyone money).

Of course this gigantic subsidy is not designed to help or protect consumers, it's designed to pump huge amounts of money into the financial institutions that created the system and write the checks for lawmakers. In an actual semi-fair pro-consumer system there would be two big changes :

1. The FDIC should be funded by the banks themselves, not backed by the government, and there should never be a government bailout - the banks should make up a consortium which is required to bail each other out.

2. The SEC/FDIC ratings of the liquidity and risk and management quality of banks should be made public so consumers can actually choose quality investment vehicles without this false illusion that they are all the same or that they are all safe.

Insurance companies are in a similar spot, where they are allowed to insure more than they can actually cover, and if something bad happens they get a bailout. They should also be required to reinsure each other.


09-08-07

I am so in love with Marge Simpson. God she is so hot. Of course Lois Griffin would be the better affair or hookup; I bet we'd go 3 or 4 times and wind up bloody. Marge is for marrying.

I just noticed Netflix has this thing when reporting a damaged or lost DVD you can choose to pay for it. LOL ? I'm a pretty severely overly-moralistic retard who generally screws myself out of lots of free money because I believe in being honest, but that is just completely retarded.


09-07-07

The new bin Laden tape is obviously full of distortions and juvenile philosophy and partial histories. The sad thing is that it's more coherent and truthful than your average Bush or Cheney speech, and I can get behind bin Laden's latest tape than their message. I'm not trying to say there's anything appealing about bin Laden, just that our leaders and policies are so completely bankrupt of morals and truth that even the most despicable alternative is better.


09-07-07

A few days ago I learned one of those little nuggets that surprise me; little things I somehow didn't know and just randomly pick up late in life; I always wonder if everybody else knows these things and somehow I just missed it. Anyway, it's this :

Bicycle pumps are GREAT for car tires! They work perfectly fine, for some reason I thought it would be really hard to pump, but of course it's not, it's very easy because car tires are super low pressure compared to bikes. You do have to pump many times to make a big difference in PSI simply because car tires have a lot more air in them, but it's really not that bad, you just pump it pump it. Anyway, the thing that's really great about them is the pressure gauges on bike pumps are very accurate, and they respond in real time, so it's way way better for making corrections to your pressure. In fact it's better just as a way to measure your pressure since those little stick things you put on the car tire to measure pressure are so rotten. The next time you are leaving for a trip and want to make sure your car tires are in good shape - do it at home with your bike pump, don't go to the gas station and do it with the compressor (this also has the big advantage of giving you a true cold pressure; even a short drive to the gas station can give you a very bad hot reading).


09-07-07

Coming out of Burning Man in the ridiculous traffic jam, I was thinking about how traffic is sort of like capitalist markets. There were 8 lanes of traffic. Each lane is sort of like an equity or something - you "select" a lane, that's where you choose to put your investment. You have some information about each lane - you can see it moving - but your information is very far from perfect, you can't tell how they merge in the future, which ones might be blocked or have real slowpokes in them. So you have to make an educated guess and pick one.

Now the interesting part comes in. In theory, if the players are all smart and fluidly move between lanes at reasonable times, then all the lanes should equalize. That is, if one is much faster, people will move into it, and it will slow down. Similarly if one lane is much slower people will leave it and it will speed up. In that ideal world, when you come into the 8 lanes it shouldn't matter which one you chose.

In reality, that's very very far from the truth, and the reason is basically that people are retarded. They do retarded things like try to box people out, or leave way too big of gaps, both of which screw up the fluid flow. They also retardedly think that it's for some reason morally superior to just stay in one lane. In reality it is far better for the health of the whole system to make a reasonable amount of calculated lane changes when the flow is better in one lane than an another.

I find that when navigating traffic, if I give people any credit for brains I tend to make sub-optimal moves. I tend to make the best moves when I just assume everyone is totally retarded and make "1st order" moves. That is, if there's a gap where I can just ahead or a much faster lane, just go for it and don't assume it's bad for some reason. Some times you see a gap that no one is taking and you think "there must be a reason why no one is taking it". Yeah, that reason is that they're retarded and if you try to go to the "2nd level" you just out-think the problem and pass up a good gap.

Of course the analogies to poker are obvious, but this also reminds me of a lesson I keep relearning over and over about the stock market. In theory markets are just like these traffic lanes - the easy obvious moves have already been done so you shouldn't gain anything by making them, but in practice that's just not the case. One recent example of course is this subprime nonsense. Anyone with half a brain knew those things were/are garbage and huge risks, and if the markets are functioning properly that risk should be built into the pricing and it shouldn't be a surprise at all when defaults start happening. Of course they weren't. You can see the exact same thing happen when a company gets a big government contract - obviously they're going to benefit from it, you would think it's too late to jump on that news, but it's almost never too late to jump on total obvious news. The only exception to all this these days is anything that can be modelled with some kind of short term automatic system; those kinds of easy moves are indeed being sucked out of markets because so many people use computer models and do automated trading that purely numeric correlation type of "easy moves" are not so obvious any more. It still remains true that if you try to go "2nd level" and think "they must have already compensated for this" - you are usually wrong, no they probably haven't compensated for the totally obvious thing that they should have compensated for.


09-06-07

The fuckers at Safeway wouldn't scan a card for me (I left mine at home and they fucked up my application so my phone number doesn't work), fucking fuck the fuckers. Anyway, it made me think of a new way to sabotage the whole club card system. Just ask for a new card every time you go. They instantly give you a new one and scan it for your current purchase. You take it, and when you get outside you throw it away, or hand it to someone going in. If a lot of people do it, it costs them money and sends a message. Let's go saboteurs!


09-06-07

There's this guy who lives on my street; he's obviously some kind of dot-com bum sort of like me, he doesn't seem to work. For the last year I've seen him walk past my window to get coffee or whatever alone. Suddenly in the last month he's become a huge player, every single day I see him walk past with a different hot girl. So far as I can tell he doesn't have any friends really or do anything, so my guess is all these girls come from the internet. We've never said a word other than "hi" when we pass outside, but I'm really curious what he's doing, if it's Yelp, or Craigslist or where all these hot one-day stands are coming from.

I've always been scared of casual sex. There's this problem that the more likely a girl is to hook up with you, the more likely she is to have hooked up with everyone before, and thus be a biohazard. My fear is rather unfounded, however, since the dirty little truth is that sex is very safe for guys. It's far far worse to be a girl; guys can have sex with infected girls and have less than a 1% chance of catching something even from someone who is definitely infectuous. The government and the Christian groups really don't want this getting out so semi-false statistics are trotted out instead which greatly exaggerate the risk to a man in normal heterosexual intercourse.


09-05-07

Girls don't seem to understand the huge value of staying thin 100% of the time. If you ever EVER allow yourself to get fat even briefly, you can ruin your skin for the rest of your life, with folds that make you look fat even when you're not, or stretch marks, cellulite, and other nasty leftovers from that brief fat period that no amount of exercise can get rid of. Yes yes, it's no fair and so on, but you know the way it is, so is eating that one more piece of chocolate really worth wrecking your body for the rest of your life?

DJ's in general are so retarded. I would say 90%+ of the time it would be better just to have WinAmp playing a song sequence and doing automated beat-matched cross fades between the songs. All you really want is decent songs on beat that transition and keep the flow going. Human DJ's almost always try to do too much and wind up just totally fucking up the flow by injecting huge interludes with no beat, or interludes of awful noise, or trying to crossfade things that don't work, etc. etc. Perhaps 9% of the human DJ's actually do as well as just an automated crossfader, and only like 1% actually are an improvement over the trivial auto-dj.

A few random funnies from burning man : we found one DJ who was like just the epitome of the stereotype of the bad douche DJ. He was waving around in the booth, point at the crowd, making silly faces, doing "raise the roof moves", then he'd put on the head phones and do some horrible time changes and abrupt stops, it was so funny. We ran into a couple who were obviously competition ballroom dancers; that was actually really cool to see; they were in stereotypical burner outfits and trying to sort of hip hop dance but obviously had the ballroom moves, and every so often would move together perfectly, she was tall and lanky and like a marionette in his hands. We ran into another couple of asian dancers that were like on different time lines; the girl was doing these very slow sexy moves, and the guy was all over her wrapped around her but moving at like 100 miles an hour shaking this way and that, jumping over here and there jerking his body around, she was almost like a pole for him to dance on.


09-03-07

The instant we got back from BM I fell deathly ill. I guess staying up for 20 hours for several days in a row, doing drugs, eating very little, and sharing water bottles with strangers might be a bad combination. It's funny how your body can hold off the sickness as long as you're pushing it, and then as soon as you get to a point where you can relax it just gives in. That used to happen all the time at work - we'd do some big crunch, then crunch some more, then as soon as you get a break your body finally gives in and lets the germs win.

BM was pretty crazy fun. It was the worst dust storms ever in the history of the event, which was sort of not fun, but also kind of exciting. I got all the fun of doing lots of rope rigging to try to secure our tent. Lots of people's tents got completely destroyed, those metal collapsing poles were getting snapped right in half. People who had rigged up tarps and parachutes were having them ripped off.

It's my third time, so there's definitely no longer quite that same "wow" novelty factor for me, but it's still just a hell of a party, with some of the coolest art in the world. I fucking hate art you just sit quietly and look at. I love this shit because so much of it is interactive, the artists do performances integrated with their pieces, you can climb around on them, bike around them, and just the setting of having this great metal sculpture set out on the huge playa under a huge open sky is just like the best setting ever. I love just biking out into the dead side of the playa in the middle of the night where there's noone around and it's this crazy huge empty flat open space with the shadows of the hulking mountains all around, and the clear star filled sky above. And even if you're not into anything else, it's just the best dance party in the world. I've never been to Ibiza, I guess that's the only thing that comes even close, but the sound systems at BM are unreal, with awesome graphics shows, all the world's best DJ's, and the amazing warm nights and sand to dance in outdoors, it's just a billion times better than any club in every way. Not only that but the crowd is totally cool and fun.

My biggest problem is that I feel like I'm getting old and I just can't party hard a bunch of days in a row. I hate the RV people, I feel like it's cheating, that part of the true experience is the discomfort, but I might have to consider RV'ing next time. I might have to pace myself a bit more too, take it a little easier.


08-29-07

We're leaving for Burning Man early tomorrow. It's interesting to me that in San Francisco these days it's definitely not hip to go to Burning Man, and in fact it's quite hip to hate on it. I mean, I guess I can understand it in that when something becomes too popular it's not cool to be a part of it any more, and instead you show your "individuality" by saying how lame it is. It's weird that one of the standard complaints from the haters is that it's no longer true to its origins. WTF do you care, you never went and you never will go, but you're hating on it because it's commercialized? It's also just so inoffensive, it's not like it's right in the city, and in fact it does the city a great favor by emptying the place out. Lots of bars have "celebrate the lamers are gone" nights the weekend of Burning Man, which I think is good for them, they can have their own little party. It's really weird that so many of the haters actively seek out expression of their hate. On the various internet message boards I frequent, whenever someone starts a thread on Burning Man, half of the posts are from haters who never went posting about how lame it is. That's so bizarre to me. I mean, I think Jimmy Buffet concerts are totally retarded, but I don't go to Parrot Head message boards and post about it.

I guess it's sort of similar to the hate for "Hippies" which has become sort of a trendy group to hate. I'm not talking about the old WW2 vets hating on hippies, it's a relatively new thing, people in the 15-30 age group often profess their hate of "stupid dirty hippies"; sometimes they're being ironic, but it's pretty hard to tell and the irony is definitely tinged with truth. You can see it in South Park and Family Guy, which these kids generally love, hippies are one of the most reviled stereotypes on those shows, and they're generally lumped together with new agers and political-correctos. It's sort of like a slice of the Andrew Dice Clay canon has been mainstreamed. The mockery generally centers on the idea that they're "wasting their life" , that they're broke, that they're dirty/smelly/hairy, that hippie guys are wimps, that their dream of peace & love from the 60's failed, that the communes failed, that many of the modern hippies are trust-fund kiddies, things like that. Ok, I sort of get all that, but I still just don't really understand the hating. I mean, hippies are so inoffensive and marginalized, they don't get in people's faces and prosletize at all, in fact if it weren't for the making fun of them they would be completely invisible in pop culture.


08-29-07

My lungs are still killing me two days later. I searched the web a bit and there a few possibilities that seem most likely. One is that I strained the intercostal muscles; these are the muscles around the lungs under the ribs which help you breathe; if you work out too hard when you're out of shape you can strain them, which jives with my story. Another is a severe side effect of allergic asthma (which I have). I definitely felt the asthma when I was riding monday, though that's nothing abnormal, but maybe by breathing deeper than usual I brought allergens deep into alveoli that aren't normally bothered, or that it's a general deep inflammation from irritation. The final possibility that's reasonably likely is that it's just pain from stretching the lungs more than I'm used to, which tears alveoli. Apparently this is reasonably common with smokers who never exercise and then suddenly decide to get in shape and go work out hard; the lower parts of the lungs fuse together and then when they go push it they tear the lungs and can get bleeding in the chest which can lead to bad side effects. So far I'm not coughing up blood so I don't think it's anything critical and will probably just pass in time.

I hate over-exerting like that. A lot of people think it's a good way to get in shape - that you can do nothing all week, and then just way overdo it on the weekend, but I know damn well that doesn't work. It's far far better to "grease the groove", doing lots of shorter workouts where you never quite go to failure. Think about how animals in the wild play or hunt. A cheetah will chase its prey, but when it becomes clear that it's using too much energy, he just stops, in case he has to try another chase, or has to flee danger - they never go all the way to failure. Anyway, the hardest thing is when you're trying a new ride and you don't know quite what it's like. Sure you can read about the route, look at the elevation map, but you never know exactly what it's like until you actually ride it. What's harder is with a loop route you can't bail out once you pass the halfway point, the shortest path is just to finish the loop.

I know there's nothing else more boring that other people's health problems (except for maybe other people's dreams). I just wish I could feel a workout in my legs, instead of getting in my lungs, or just my general aerobic system, or my back and my spine and my neck and my bad shoulder and all that garbage. I really miss being young, in every way, mentally and physically. Those who say they're happier as they get older are suffering from two problems. First is the killing of their brain due to alcohol, TV, and just general lack of stimulation, as they become more retarded they become happier. Second and primary is self delusion; it's the same mental power that let people think the horribly stupid expensive purchase they made was wise, or that there is a god, or that immigrants are to blame for their woes - it's a powerful semi-concsiously created delusion which allows them to believe some ridiculous fiction which lets them get through life. As you get older the delusion that you're happy with yourself can be gradually built up over time until you forget it's a delusion and you're just pretending all the time.


08-27-07

Went for a long bike ride out of Pescadero and bit off more than I could chew. It was like 55 miles with some good hard climbs and it destroyed me. I hit the wall about 40 miles in where I just couldn't go any more, and then you have that depressing realization that you have to make the final 15 miles and you just want to fall off your bike and cry. It's now like 4 hours later and my chest still hurts really bad, I'm guessing I tore some capilaries in my lungs or something.

Anyway, the town of Pescadero is just amazing, so cute and picturesque, and it's got all these shops that are semi-touristy, but unlike every other small town store in the whole of America, these shops actually have really good stuff! Artisan breads, locally made goat cheese, real fresh chicken eggs, and some great restaurants. I'm not telling what's in the gas the station either, it's a secret that some other damn fools have spilled. There's also this super nice ranch out on Stage Road with this amazing iron skeleton armed with a machine gun.


08-27-07

"The exquisite natural wonder which is the human body can never be equaled by a work of man"

OR

"Why would I want to look at some stupid art when I can look at hot chicks?"


08-25-07

Keyboards are actually way better for left handed people. I know that the lefties wish they had the arrow keys and whatnot near their left hand, but it's far more important that they can move their main hand to the mouse with only a very short reach; I have to reach nearly a foot to get the mouse on the right side of my MS Natural.

Anyway, I'm trying to left mouse now because my right arm is completely shot. Aside from the old carpal tunnel and nerve impingement and all that good stuff, the big problem is my shoulder, which mousing continues to aggravate. I've been trying to left mouse for months now and it's still just horribly awkward, but aside from giving my right a rest it is that nice short reach, the mouse is just directly off the ctrl.


08-25-07

I love milk and cookies food blog is pretty great. I really hate those pretentious close up small-depth-of-field photographs, but the recipes look really sharp. For example, these pistachio chocolate cakes look delicious.


08-25-07

Ahahahaha, I discovered my itchy throat problems. Apparently these are related to the same histamine that's in Ragweed pollen (my nemasis) : Melons (watermelon, cantaloupe and honeydew) Bananas Tomatoes


08-24-07

Today I cleaned all day long. I found mold in the apartment, and for someone with my allergies, that's a death sentence. So I mixed up a home made concoction of bleach and detergent, sprayed it, scrubbed it, moved everything out of the room, vaccuumed, dusted, washed it all down, dried it, then aired it out. While airing it out I couldn't be in the room, what with the mold spores and the bleach fumes, so I cleaned the hall and the outside of the building, which the bastard apartment company never does. I finished it up by patching some holes in the bathroom and finding some more mold under the sink.

When 5 PM rolled around and my work was done, I felt a very ordinary sensation which I rarely feel - the desire to drink and go out. I was tired, I was bored, I hadn't had any stimulation all day, and I actually wanted to see people and do things. After one of my normal work days of programming or poker, my brain is fried, I'm overstimulated, mentally exhausted, and I just want to eat and zone out and watch TV or something not too energetic.


08-21-07

It's funny in poker when people play very straightforward and basic and they raise and you fold, it's called giving them "respect" - when you believe their bet and make a fold it's because you "respect" them. Of course in reality it's the exact opposite - you don't believe they're creative enough to be making a play, you don't believe they're good enough to make a fold if you try to bluff them, and you don't think they're good enough that you need to do anything out of line to beat them.


08-20-07

God damn, "American Beauty" and "The Usual Suspects" are both such fucking retarded bad movies it makes me so sick that they're considered good. I mean a fucking bag blowing in the wind? WTF, that's imagery from the movie making FUN of shitty trite adolescent poetry shit like that.


08-20-07

Got a ticket for running a stop sign on my bike in Woodside. It was a T intersection, and I was going down the side of the T where there's no cross traffic; there was no car going the other way either. The cop was down the trunk of the T, hiding, staking out the intersection for bikes - it's a spot where tons of bikers train. The cop was very apologetic, he told me that the people who lived there had complained about the bikes and he had to give some tickets.

I guess it doesn't bother me that much. Another fucking waste of money sucked out of me by the system and bad luck. Getting pulled over doesn't even give me an adrenaline rush any more, it doesn't get me angry, it just makes me sad and tired. Biking is one of the few things left that give me pleasure, and today the fucking world found a way to shit on my sanctuary.


08-20-07

I just found "the" Adam Savage on Ask MetaFilter (link to his posts) ; some pretty good stuff in there.

BTW Mythbusters is such a retarded non-scientific travesty and the "build team" is so worthless and so many of the Myths they do are just nonsense and not interesting, and they almost never actually investigate a Myth that there's any question about - BUT I still watch it, and I think it's just because I'm so dang jealous of those guys. Jaime in particular is my idol. Adam reminds me so much of checker it's scary some times. The show would be 1000X better if they actually got an expert on each of the topics to consult and the guys just did the build and test. 99.99% of the topics they investigate have guys who are masters of the topic and could do really cool things, stuff like catapults, the ultralight planes, etc. etc. it would be so much cooler to actually see what could be done.


08-20-07

So much exciting TV is on the way; the WSOP Main Event (sort of meh), High Stakes Poker Season 4 (woo hoo) starts August 27, the NFL season (Sept 6), the Rugby World Cup (Sept 8), Sarah Silverman (Oct 3), It's Always Sunny in Philadelphia (fall). Woot!


08-19-07

Since my laptop RAM fried I upgraded to 2 GB, and I'm now running with no paging file, and my performance is SO SO much better. Before, I would almost never use my 1 GB of RAM, but Windows has such a retarded paging policy, where they force idle applications out to disk to make room for "system cache" which is a giant waste of RAM that doesn't generally help performance much at all. So, your performance is fine, and then you try to alt-tab to some app that's been paged and suddenly you grind while it has to load back in. Two of the biggest dogs are two of the the things I use regularly : DevStudio and Photoshop, both of which want to take all your available memory, so if you're alternating working in them your disk will be going nuts with lots of stalling. Well, with no paging file all that grinding is gone. I can switch apps at any time and it's instant, just like the good old days before stupid virtual memory ever came along.

ps. LOL Photoshop complains when you start up with no virtual mem, saying it's "dangerous". I'll tell you what's dangerous : writing retardedly slow image editing software which pre-allocates its memory for no god damn reason in hell.


08-17-07

I made a bike map on bikely of a ride I made up in the back country around Half Moon Bay. It's a shitty little tourist town, but the back country there is just gorgeous. There's so much contrast, you go from oak-dotted grassy hills (like SLO), turn a corner and get into a valley and you're in lush bay laurels and such, and climb a tiny bit up the valley and you're in redwoods.

There are lots of cool weird sites on the ride. One of the best is the Little Creek Ranch on the Lobitos Cut-Off. It used to be a tourist site with a pettting zoo and pony rides, but it's fallen into disrepair and is now this bizarre southern gothic Dickensian old west relic. It's a gorgeous old farm house, definitely the old madame of all the charming little old ranch and farm houses in the area.

This guy Kirby has the best biking page ever, tons of pictures, detailed maps, and great write ups; his section on Tuscany is amazing but he also has an old favorite of mine - Santa Rosa Creek Road near SLO. Which is perhaps the coolest country road of all near SLO, though there are lots of good candidates.


08-14-07

There are so many racists in this country. When Dan's bike was stolen a million voices cried out "it was probably one of those Mexicans you guys are surrounded by". I came to their defense, and it made me realize just how much respect and admiration I have for the working poor. They are the greatest embodiment of the professed (but not lived) Republican values - supporting family, respecting your elders, deep Religious belief, hard work, pulling yourself up by your bootstraps, clawing for an education, starting businesses. I would trust the average immigrant day laborer more than your average corporate/yuppie type. Maybe when it comes to minor petty theft the day laborer is more likely to do it, but that's only because it's significant to him and not the corporate guy. When it comes to really screwing someone else over horribly, something like denying insurance benefits to someone who's broke and lost their home, the corporate guy is far more likely to fuck someone for a profit than the day laborer; but that just shows my own prejudice about each class.

Anyway, the thing that got me thinking was recycling. It has long been a practice of the homeless in San Francisco to make the rounds of all the streets as they put out their garbage cans. They come the night before the garbage trucks and pick out all the bottles and cans to turn them in for the CRV. Back in January California raised the CRV (though it just now changed at the register, it was paying higher in January), and since then I've noticed a change. More and more of the guys I see picking out cans and bottles are from the "working poor" class rather than the homeless. Today I saw two different guys who were picking bottles, obviously not homeless. One was a Chinese guy, he had rubber gloves on and a push cart, and was working down Guerrero methodically. Just now I saw a Hispanic guy driving a truck with plywood stuck in the sides to make a big deep bed, and he was stopping at each recycling bin and pulling the bottles and cans and tossing them in his truck.

It reminds me of a New York Times article I read a while ago about how all these people in China were dieing in the dumps there, because they were going to the dump to scavenge for copper and stuff to sell and make a living, and they were getting crushed in the compactors or methane explosions or landslides or all the other dangers in a chaotic working dump. At the time I thought it was a reminder of how poor China still is; we think of China as this exploding threat, but the reality is 99% of the people there are still just ridiculously poor. Now I'm seeing these signs that America isn't really that different, we just have tighter security on our dumps so that our poor aren't even allowed to profit from the refuse of the rich.


08-10-07

A message of warning : My RAM went bad. In the past RAM errors were relatively rare, but they've become more and more common. In the drive for low cost and high speed, pretty much all DRAM these days is non-parity and non-ECC. The RAM error rate is also roughly proportional to size, so the bigger chips are more likely to have errors. They're also cramming more chips on each stick and everything is running blazing hot these days which increases the chance of error.

The scary thing is that I was getting random crashes and didn't know WTF going on, so my first thought was a hard drive corruption, so I ran chkdsk. Well of course if you run chkdsk when your RAM is bad, you can actually *create* horrible hard disk corruption. I got lucky in that my RAM had bad sectors way up in the high memory addresses and a chkdsk that runs from a DOS boot doesn't ever use that memory. I finally figured it out and got this nice free program Memtest86+ which found the error and isolated to one stick, so I'm currently running safe with half the RAM. In the future running a RAM check will be one of the first things I do when I get super bizarro random crashes, definitely before I do a chkdsk.


07-30-07

Went for a bike ride around Palo Alto and passed the Pulgas Water Temple which is a cool bizarro old public works monument to the aqueduct that brings water to SF from Hetch Hetchy. (Hetch Hetchy is a great valley in the Sierra Nevada near Yosemite which was supposedly just gorgeous until it was dammed and flooded to provide a drinking water supply). It's such a surreal random thing. Supposedly its sister, the Sunol Water Temple is way more amazing.

Turns out the cycling straight out of Stanford is like the best around; there are lots of routes and the roads are smooth and the traffic is tolerable. If your legs can make it up to Skyline then there's a world of options but I'm not in good enough shape yet to anything more than hit Skyline and collapse and coast back down.

I remember when I worked at HP I would drive up Page Mill to go hiking and mountain biking in the open spaces all around there. I would see road bikers on Page Mill and I thought they were just stupid/insane = nuts. That road is crazy steep and narrow and pretty high traffic, cars go flying around the turns in both directions and there's like no shoulder. Now I can almost relate to them. Sure would be nice if the road surfaces were better though.


07-27-07

Well Dan's bike got stolen off the street in our neighborhood while she had it locked outside a restaurant grabbing lunch. It's a fucking $300 bike, so retarded, now I'm gonna have to buy a replacement. I guess we'll have to buy better locks too. One of the things that pisses me off is it's a well travelled neighborhood, there must've been people watching it happen who did nothing.

In the mean time I was biking up San Bruno Mountain. I did "Paradise Loop" the other day and have decided that I hate all the rides I can do out of my house. They all involve nasty crowded streets, stop signs, crossing train tracks, horrible pot-holey deadly roads, pedestrian obstacles, and so on. Blech fuck puke.


07-26-07

So the market has started the correction I've been predicting for a long time, which I've written about here, but in a nutshell is based on the fact that the US economy is currently built on a foundation of hot air blown by the balloon of false housing equity. It took a huge hit in the last few days but I believe that this is only a small correction compared to the plummet that we might see. Unfortunately I still have a ton of money in stock because I don't know what else to do with it.

It's funny whenever the market starts to correct these days, the talking heads are shipped out from the financial think tanks to try to prop them up. They talk a lot of nonsense about how it's not that bad, it's just a small correction, don't panic, etc. It's really just one step away from what they were doing in the dot-com days talking up stocks that they were IPO'ing.

In more happy news Trader Joes has this "Glass Mountain Syrah" for $3.99 that's quite superb, spicy, chewy, with some depth.


07-24-07

Ah LOLOLO , ADM has this new commercial about how they grow soy in America and export it to China and how wonderful that is. "We take massive government subsidies and use that to grow a commodity at huge expense and export it to a massive agrarian country at a huge loss - ADM - we have the know how and experience to make big profits for our executives and shareholders while screwing up the world economy".


07-23-07

The villification of Barry Bonds is totally retarded, and is largely the creation of the media and Major League Baseball. Barry has always happilly played the villain character that was his role, and he continues to be the scapegoat now. His role is to accept all the blame and hate for the whole steroid era, to provide a sacrificial lamb for the public to focus their anger upon, and then to forget everyone else that was involved. The people who are the real villains here are Bud Selig and all the owners and managers and everyone else involved in MLB. Back when McGwire and Sosa were battling for the single season home run record, it was incredibly obvious to anyone with half a brain that they were huge juicers (along with Canseco, Giambi, Palmeiro, and pretty much every slugger in the 90's and 2000's). MLB did nothing, because it was great for popularity, at a time when baseball was at an all-time low in popularity following the strike and the surge in popularity of the NFL. Before the "home run kings" ballparks were empty and baseball was in big trouble. They saved the game and made the organizations rich and the owners and executives all gladly turned a blind eye.

The Michael Vick thing really makes me sick. Not what he did - but the reaction. The stupid American public cares more if you hurt some dogs than if you drive drunk, rape a woman, murder someone, or all the other things that athletes have done in the past that didn't raise that big of a stir. Hurting people, meh, everyone does that, hurting dogs, ZOMG WHAT A MONSTER!


07-20-07

A little poker update/brag. I've been moving up in the poker world. I've been at the 200NL games for a while, but started trying the 400 and 600 games last week, and am now taking shots at the 1000NL ($10 blind) games. They're much tougher and more aggressive and you have to make good reads and aggressive plays all the time. At the moment I'm mostly just trying to play pretty safe, target only bad players and stay out of pots with the goods players, because $1000 is a lot to me and I don't really want to get in a lot of high-variance insanity. I've been doing really well so far despite some insane big bad beats and some really bad spew plays by me. I'm gonna try to stay focused and concentrate on the game and put in the hours. Unfortunately my body is just wrecked right now and spending a lot of time on the computer is incredibly painful for me.

Anyway this is one of the more interesting pots I've played that illustrates the kind of stuff that's going on. Villain is a decent aggressive TAG. I open a lot of pots and cbet and he's sick of it. I mess around here because there are very few real hands that he would make this play with. Good aces like AK he will reraise preflop, same for AA and JJ. AJo he might not even call with cuz he's out of position, or he might reraise it. So about the only hand he can have is 55, but I have a 5 so there's only one possible way to make bottom set. I'm guessing his hand is something like 88 or perhaps 67 or something. Of course in the really aggressive games I can't make this play cuz he might check-shove the turn with air and I couldn't call. The fact that I have a pair is also nice just in case he has something like a flush draw, that way if he calls the turn I can check down the river and win.

No Limit Hold'em Ring Game (6 max) , 4 players
Blinds : $5/$10

Stacks:
UTG: fish: $389
BTN (Hero): cbloom: $1077.50
SB: TAG1: $3631.95
BB: TAG2: $1463.25

Pre-flop: (4 players) Hero is on the Button with 5h 6d
fish folds, Hero raises to $35, TAG1 folds, TAG2 calls.

Flop: Jd As 5d ($75, 2 players)
TAG2 checks, Hero bets $56, TAG2 raises to $175, Hero calls ($119).

Turn: 8c ($425, 2 players)
TAG2 checks, Hero bets $333, TAG2 folds.

Results: (final pot $425)
Hero wins $423 (+$213)


07-12-07

Seeing the President's or Vice President's interviews reminds me of these political arguments I would have with people in high school, where at some point somebody just starts completely lying and making up false information, or perhaps really believing some nonsense that they were told, and you just have to stop the argument because you can't have a rational argument when people are taking falsehoods as part of their foundation. The sort of curious thing is that in public politics you can totally get away with it. Basically nobody calls you out, or if they do it's back page material, while your lies are quoted on the front page and on the TV news which is what really matters. I guess there's no crime for the Pres or the VP or others to go to the press and just lie their asses off. They're not in court so it's not perjury, it's not about someone so it's not libel or slander or whatever, it's just lying and it works really well as a political strategy.


07-12-07

In the disaster that is the current Iraq War we can see the wisdom of the restraint of GHW Bush in the first Gulf War. First of all we see that intervening in Kuwait probably was a good move. It sent a clear message that agression wouldn't be tolerated, and also provided an excuse to bomb the hell out of Iraq's military faccilities, install the no-fly zone and the dismantle the weapons programs, all of which was a huge success. I wasn't so sure about the righteousness of even the first Gulf war; in a theoretical moral sense I'm not sure if it's anyone's business getting involved in the wars of other nations, but in hindsight it was sort of like stopping Hitler right away when he annexed the Sudetenland, it stopped a larger potential problem from forming.

At the time, the hawks and jingoists and war-mongers wanted the military to move on to Bagdhad and kill Saddam. GHWB told them not to, the reason being that while we could easily run tanks to Baghdad and topple the government, we could never control the country afterward, and we were already worried about the Shi'ite insurrection in the south having strong ties to Iran (which is why we let them get massacred soon after). Unfortunately, that wisdom and restraint proved fruitless since we made the exact mistake that we avoided then only a few years later.


07-08-07

The idea that "partisanship" is inherently bad or that it discredits any argument is also ludicrous. If one party is just *wrong* then being against them is not "partisan". Just because that party disagrees that they are wrong doesn't lend credence to their claim. Having a large group of people who support an evil/absurd cause does not make it a "matter of debate".


07-08-07

One of the ways all you capitalist pigs defend your actions is by clinging to the willingness of the consumer. You claim you are making a product or a service which the consumer chooses to pay for, they don't have to, therefore you are doing no wrong. This is ludicrous false logic and rationalization. Clearly, the willingness of the consumer has no relevance to whether they are being robbed or suckered. The whole basis of a "con" is that the consumer happily enters into the con. Today, millions of people enter in credit card, cell phone, and health insurance contracts which are diabolical in the Kafkaesque ways that they suck money from the consumer. Even Ponzi's investors happily bought into his schemes. This has no relevance in whether the seller is suckering and robbing his clients.


07-03-07

I'm watching the "Crumb" documentary, and one thing that's really interesting about it is the totally retarded reactions of the critics to his work. There's the pompous guy critic who's trying to interpret it in terms of the legitate artists (Goya, Picasso, etc.) to give it credibility. Then there are the girls who find it offensive/dangerous/pornographic - which it is of course, which is the whole point. It makes me realize how even these days there is so little "art" which really admits to the dark sides and reality of human thought.


07-02-07

Not one presidential candidate out of about 20 has the guts to propose a real solution to the Iraq problem. For all the talk of Bush being "independent" and "strong" and so on, he didn't either. Now that we're in this mess a real solution means putting in 500,000 troops for at least 4 years, using the draft if necessary. How about putting more troops in Afghanistan? How about securing Palestine and Lebanon? How about clearing the tribal areas of Pakistan? Not one candidate is actually "tough on terrorism". It may seem obvious that the major candidates aren't going to take unpopular positions like this, but usually in an election there are some fringe candidates like your Pat Buchanan types that will take the more extreme positions and this time we have not one.

On the other side at least you have Gravel, who is clearly a nutcase but he seems to be the only one (other than maybe Ron Paul) injecting some sanity into the debate on Iraq - over and over he asserts that it was a mistake from the beginning to get into Iraq which no one else admits.

BTW it looks at the moment that the Dems have a cake walk to the Presidency. Aside from Bush driving towards ever lower popularity, the Republican frontrunners are just all awful.


06-30-07

The respectable Judge John Roberts has shown his true colors, and it is no surprise to the wise that he just bald-facedly lied at his confirmation. The whole idea of the confirmation hearing is rather ridiculous since there is absolutely no requirement that they tell the truth or answer in detail, and no forces holding them to their words. Roberts claimed (much like GW Bush did) that he wanted to be "uniter" to stick with precedent, to form concensus and work for the middle ground. Instead his court has rapidly struck blow after 5-4 partison blow on the majority of cases before them.

The most depressing thing to me is that they are striking down protections which were enacted in earlier era when the government was actually forced to do some reasonable things. In the period of 1900-1910 the government and its capitalist cronies had created a nearly feudal society where the poor were just treated horribly and had little influence or hope to improve. The result was close to a revolution; huge nationwide strikes that often turned violent, huge popularity of the Socialist and Communist parties, etc. The government finally got worried and decided to make a few small compromises in order to keep the people pacified and get their beloved capitalism back under control. The result was some of the anti-trust legislation, as well as various social protections.

Over and over in American History you can see a pattern of the laws being created to favor the rich, and big business. We are most definitely in one of those phases again, where taxes have been massively cut for the rich (so that many of the rich pay far far lower a percent than the very poor), and the rights of corporations over individuals continue to grow. The only time it snaps back is when the people get so disgusted and mistreated that they rise up in protest and stop the system from working. The idea that voting for the liberal party accomplishes anything is only an illusion, the only time we make significant progress is when a mass groundswell of direct action forces the power structure to make some concessions - and then they make just enough so that the people get lazy and fall back into the system.

At the moment we are in a horrific period of popular inactivity, which has allowed the powers to run rampant and do absolutely what they will.


06-26-07

God damn, people who fucking RAR their torrents are so fucking retarded. How can you be smart enough to cap a video and post it and all that and not understand the basic fucking way that torrents work, which is that you can share the data while it sits on your disk in a usable format! (I could understand it if packing a video file actually shrunk it significantly, but it doesn't!!).


06-24-07

The peach/nectarine/etc. supply is moving more and more towards "white" fruits and more generally to "super sweet" , "high sugar" fruits, basically juicy, sweet, mild fruits, which I think are disgusting and totally lacking the character of the individual varieties and basically representative of the tastebuds of the masses getting more into fresh fruits. It's the equivalent of the "red delicious" takeover that happened a while ago, but this is what happens when the twinkie-eating crowd converts to fruit.


06-20-07

Dan's computer started making funny noises so I took it all apart and cleaned it. Turned out the fans were just filthy, coated in this awful sticky grime making them spin wobbly. It made me think that computers are starting to be used longer and longer and last longer than they were really designed/tested for and lots of these kinds of problems are going to be coming up. Some day computers will be like cars where you need a 3 year / 30,000 boot regular service to replace your heat sink, clean your fans, etc.


06-20-07

Can we just fucking vote to change the spelling of "guarantee" to "gaurantee" already?


06-19-07

Watched "Barry Lyndon" with Dan last night. About 2 hours into it I realized I'd seen it before, hehe. The cinematography is gorgeous, but the acting and casting is just atrocius. The lead guy Ryan O'Neal seems to be the friend character "Buddy" from "Charles In Charge", and it generally feels like it's from the 70's even though it's a period piece. Kubrick also generally misunderstands the lead character and turns him into almost a noble/tragic anti-hero rather than the charming scoundrel he should be. All the clever devices from the novel are removed and we're left with a plodding trite story which is little more than a structure for Kubrick to hang his beautiful pictures on.

"Kitchen Stories" was pretty good; I mean it's totally predictable from the first minute, but it's not supposed to be a surprise, it's simple, sweet, charming, archetypical, but like so many recent Brittish movies it can sort of get away with doing a very old fashioned heart warming slice of life because it doesn't try to doll it up with movie stars and tear-jerking scores and all that Hollywood junk that makes the American versions of these movies so cheezy.


06-18-07

Flexible Love sounds like a porn site, I know, but it's this poseable furniture thing, very coolio.


06-15-07

I think a big undiscussed factor in the whole islamic militant problem is the lack of booze. People think of booze as causing problems but really it's a huge passifier. Booze + TV keep all the American poor from taking any action. Think of the trouble that might've been in Ireland if not for booze. In the Islamic countries they aren't killing their fervor with booze, so they keep their anger and get agitated and bored and turn it into action.

Sometimes I wonder what I might have done had I not ever touched a drop of booze. (I was "straight edge" in high school which I now look on as a mistake, I thought booze & drugs were for the weak, a cop-out, a way to avoid life and thinking, which is of course exactly what they are, but I could've had a lot more fun in my youth). Anyway, what would've happened to me without booze? Maybe would've worked on string theory and solved some major scientific problems. Perhaps, unlikely. Maybe would've started a company and done a bunch of software and become a millionaire? Yeah, that's possible. Started a home-based internet porn company? Yeah. But most likely I would've gone insane and committed suicide.


06-14-07

Google maps' directions know about one way streets and such but don't seem to know about all the "no left turns" and other crazy regulations around SF which ruins their usefulness for navigating the tricky corridor that is Market St.


06-14-07

"Video game inpired" movies might be the worst thing to ever happen to hollywood. I'm not even talking about the movies based on games, yeah, those are bad, I'm talking about movies that are designed to have the "feel" of video games.


06-14-07

Ok, here's the plan : first you give arms to Iran for hostages, then you give arms to Saddam's Iraq to fight Iran, then you give arms to the Shi'ite rebels under Saddam to arm their revolution, then you get some frogs to eat the locusts, then you bring in the tree snakes to eat the frogs, then you get some eagles to eat the snakes, then you feed DDT to the eagles - problem solved!

(to be fair, Russia and others are probably at least as guilty as we are of pumping the unstable areas of the world full of weapons).


06-14-07

There's this new oddity in the tax code for HSA's. As I understand it - if you just have a medical problem and pay for it, that expense is deductible like a normal expense, eg. if you use the standard deduction like I do it does nothing for you. On the other hand, if you first put the money in an HSA and then pay for your medical expense from the HSA, the money is deducted from your income like a 401k deduction - eg. it comes off the top before the deductions, which is way better.


06-14-07

I think part of the appeal of skinny girls with big boobs is that it's sort of freakish; it fulfills the fantasy of having sex with an alien or someone with Down's.


06-12-07

Biked around town and wandered into the Fort Mason hostel today; wow, what a cool spot. It's kind of a bad location in the sense that there's nothing around, but beautiful grounds and views up on a hill in the middle of a park, and it's $20 a night.


06-12-07

Funny example of how completely retarded and broken the NBA is :

At the end of the game tonight, the Cavs are down by 3 and there's like 5 seconds left, they have to make a 3 pointer or some other magic to win. San Antonio has the right idea that they'll just intentionally foul so the Cavs only get a chance to make 2 points and can't possibly win.

So, the pass comes in to LeBron and Bruce Bowen obviously lays an intentional foul on him to get the call (this is a pretty standard move). The refs don't call the foul and the game is over. He laid an *intentional* obvious foul and it wasn't called at a crucial moment.

Such a retarded game.


06-09-07

It's a good measure of the degredation of our democracy that many of the "dirty tricks" used by Colson & Haldeman on behalf of Nixon and other Republicans are now considered standard political tactics, largely popularized by Rove. A few of them are :

Fake news articles & fake impartial experts. Colson & Haldeman had a network of writers and editors that they could plant stories through, which they had won with favors, information, etc. They would just let them know that they wanted an article about some opponent and it would happen. This is still employed today, along with directly paying "reporters" to present political information as if it were impartial. It's quite shocking to me that this is legal (in fact it isn't, but it's hard to prove that it's being done for political purposes as opposed to education of the populace, which is legal). Of course it's hardly necessary these days, the administration can simply pass on whatever they want to certain reporters and its printed in our major newspapers.

Fake biographies & old friends. In this technique a fake "expert" masquerades as a professor-type and writes a biography or articles that are intended as political poison. A similar method is to find people from the opponents past that will spread dirt about them, true or not.

Fake grass-roots opposition. In this technique a supposedly-local grass roots opposition movement arises to protest someone's position or oppose their reelection, perhaps making a big stink. In fact the movement was funded and created by the political operatives, and is often manned by staffers from the home office pretending to be concerned locals. We saw this in heavy use in the Florida recount, but it's now become a totally standard technique.

Staged photo ops and interviews. This one is so over the top it's become hillarious, even Nixon didn't have the nerve to believe that you could create totally scripted town hall meetings and have them be believable, but our standards for our politicians and our news reporting has plummeted so far that these hardly raise an eyebrow any more.

In fact the only thing that isn't being copied (so far as a I know) is wire-tapping, breaking & entering, and other illegal spying techniques to gather information on the opposition. There is such a great ability to gather information legally these days that these methods just aren't necessary.

As usual, the history that most people know is this watered down pleasant version that doesn't get into the real muck. People think of Nixon's sin as "Watergate" which they either think of as the taping of calls or the break-in. Both of those were relatively minor offenses compared to the long-term scheme of political sabotage and media manipulation that his underlings had orchestrated. And even that is pretty minor, which you consider that basically Rove does it today out in the open and nobody cares. In fact, Nixon should be remembered for negotiating the allowed genocide in Bangladesh, and the bombing and invasion of Cambodia which led to the rise of the Khmer Rouge.


06-08-07

I wrote this in my todo list about a week ago :

"Maybe sell some more stock as a hedge; put in a good MM"

Of course I didn't act right away and now I'm hosed. I have to decide now if I think it's gonna keep going down or bounce back.


06-06-07

I saw a bike get stolen yesterday and I didn't do anything about it and I'm really mad at myself. I always like to think that I would take action in those scenarios, and I think I would, but the problem is I get easily startled and it takes me a while to realize what's going on. Dan and I went to chinatown to eat congee at Hing Lung and get some char siu bao (pork bun). On the way back we were in the Muni station waiting for the train, and this hobo guy rushes up behind us with a bike as a train is arriving and yells "excuse me excuse me", we were chatting and sort of jumped and got out of the way and he went past, and I noticed he had a nice bike he was wheeling with no front wheel. I was out of sorts and just got out of the way, but as he got on the train I put it together - he obviously stole the bike; the fool who owned it obviously locked the front wheel and the homeless guy detached it. In my dreams of myself I would've grabbed the guy and stopped him, taken the bike away. But I didn't because I'm slow to react, easily confused, and a coward. Everyone else in the Muni failed to act as well, but I expect that from them, they're the human scum that surrounds me constantly, of course they wouldn't do something good that inconvencied themselves, they're garbage. Maybe I am too.


06-06-07

Russia is not our enemy. They greatly enrich the small upper class while impoverishing the majority. They discriminate against immigrants. They villainize ethnic guerillas and slaughter them. They murder political opponents, and control the press through fear and direct manipulation. Yes, Russia is shaping up to be just like a western country. Russia is our ally against "extremists" who oppose our "ideology".


06-05-07

Business suit = normal
Business suit + funky hat = hipster
Business suit + sunglasses = douchebag
Business suit + sneakers = dork/nerd/geek
Business suit + bowtie = psychopath


06-05-07

There's this hot pregnant woman who walks in front of the apartment every morning going to work; she's got sort of a pale Parker Posey look. When we moved in she wasn't preggers yet, and is now blown up and waddling but still manages to get up the steep hill. It's interesting seeing the change over time, it's exaggerated by the fact that I only see her for a few seconds each day through the framing device of the window, so her transformation is like a flip book.


06-03-07

So this research program autostitch is pretty cool. I posted about it before; it does some of the things you should obviously do, like gain compensation, automatic warping to match features, etc. When it works it really works awesomely well, but sometimes it just totally freaks out and creates these bizarro fisheye distorted images where it seems to be trying to wrap features around a torus or something. So, I still haven't found an actually good photostitcher yet.

An ideal photostitcher would be semi-interactive. You would tell it to automatch and it would set up warping and blend lines and gain compensation and show you what it came up with, then you could play around with the controls until it was perfect, then you tell it to go.

Addendum from Graham : Well, it turns out AutoPano Pro does exactly what I want and more. It's a really well designed piece of software and just kicks Pano butt. I've run the trial on a few of my old panos that failed to stitch with anything else, and you can do a tiny bit of tweaking and they stitch up awesomely and gain-correct and all that. It has a ton more features I haven't used yet including automatic HDR combining which is pretty rad and handly if you're doing that.


06-03-07

I have another bizarro super annoyance. If you have Windows Defender installed and ShellOpen html files - it causes an exception "The RPC server is unavailable" in your app. I traced the call stack and this is because Defender has hooked shellapi and when you open a page, Defender is trying to do some internet talk with MS (I have no idea why that's failing) and the fun guys throw an exception when it fails (though apparently it's caught and it goes ahead and opens the html anyway).


06-03-07

NTFS really gets destroyed by lots of small flushes. If you take a file, write a byte to the end of it, close it, write a byte, close it, over and over, you will really fuck up the NTFS records for that file and all future accesses to that file will be incredibly slow (all reads & writes).

The way NTFS tracks files is that each file is a linked list of contiguous sectors. Each link in the list is a sector address and a number of sectors defining one contiguous chunk. If the file is in one contiguous spot, it's just one link. As it gets fragments, NTFS add links pointing to other spots on the disk.

Basically what I'm imagining is happening is that NTFS is like a non-relocating greedy hole-filling linked list allocator. First of all when you flush a small file, NTFS seems to stick that file at perhaps the smallest space it finds that can hold the file, or perhaps just at the first space it finds, but definitely not at the biggest space. Then when it needs to add a sector to the file, it doesn't move the whole file to a spot that can hold the whole file contiguous, instead it just adds a link at the end of the file pointing to the next block. If you are only doing small appends your file will become a huge linked list of single sectors pointing down a chain, so just reading the file in will make the head seek all over and take forever.

This sort of non-moving link-appending works great in many cases, eg. if you have some 10 MB file and you add 1 byte on it, you obviously don't want to find a space that fits 10MB + 1 and move the whole thing there just to keep it contiguous, the link is perfect. Also sticking in the smallest space to fill holes works great if you never append to files, eg. say I just atomically make a file of size N and will never grow it - then the ideal spot to stick it is the smallest space that fits it (well, this is not actually quite true if you have some model of what you expect future file sizes to be).

They could have very easily added an auto-defrag mechanism to handle this common appending case, just by seeing how many frags are in a file when you close it, and if it's super fragged then just move the whole thing out to an open space (presuming there is one). I mean eventually if you're doing lots of evil disk ops you're going to have too many little holes and no big spaces, and you'll have to do more of a defrag, but even that could be done sort of incrementally in the background from time to time. In fact this is all so easy and would improve the average computer's performance and hard disk lifetime dramatically, I'm not sure why they didn't do it, I think perhaps I'm missing something.

BTW if you actually just had a little incremental background defragger running all the time, then the append-often case doesn't even come up. You treat your disk as having two regions, the "mostly condensed" and "mostly empty". New allocations are initially put somewhere in the mostly empty space where they have lots of room to grow. The background defragger then just takes idle files from the mostly empty region and stuffs them somewhere they fit well in the mostly condensed space.

Meh, I guess this is a retarded amateur ranting about a hard problem that lots of smart people have surely worked on extensively, I'm just bothered that it's so easy to horribly break NTFS with a pretty standard access pattern. In the real world, file systems (just like memory allocators) are not used randomly, so you don't need to make them optimal for totally arbitrary usage; you should make them work really well for the very common usage, and just make them work okay for bizarro rare usage.


06-02-07

The entire modern world is an elaborate scheme to funnel money to the rich while keeping the rabble down. It works marvelously. Our rabble is placcid compared to those of the past, the serfs, the factory workers of the early 20th century, they took up arms against their oppressors (usually to little end). These days we are given the myth of "upward mobility" to keep people placcid, we are given the illusion of choices in politics or politicians who "support the little guy", we are given constant distractions of worries and fears which are trivial and irrelevant to get people to worry about anything but the reality of society. But you know this and you don't care because you're mostly on the winning side. This is why whites didn't speak out against slavery, etc. the reality is when faced with a horribly immoral unequal social structure, as long as you're comfy and prospering, you love it, and will make up all sorts of rationalizations to convince yourself that the suffering really don't have it that bad.

"Globalization" in theory is not a bad thing. The problem is that "globalization" in reality in our world is a way for multinational corporations to screw the citizens of the world by putting various parts of their business in different countries that are more favorable to the corporations (and less favorable to human beings), basically playing the variations in the laws of various countries to their own benefit. So you can employ people in countries where you don't have to provide them a decent standard of living, you can grow crops and package food in countries without health inspectors (which add a ton of costs). The mouthpieces of the establishment talk about globalization as if it's this war of ideas between closed markets and pure capitalism, blah blah blah, that has very little connection to the real world and the massive complex of differing taxes, worker regulation, tarrifs, subsidies, etc. which create an absolute cornucopia of ways for corporations to manipulate the system.


06-02-07

It's fucking 2007, can't your ascii to int converter handle A FUCKING COMMA !?!?!?

I mean obviously the underlying problem here is the lack of a decent way to share solutions and the constant use of broken old standard libraries and reinvention of everybody's own helper libraries.


06-02-07

Well I'm back from Sequoia. It was pretty great, saw a bunch of bears, big trees, hiked up to the alpine area where it's still snowy to see the barren rock and moss and clear lakes and whatnot.

I returned to further dicking by corporate america. Almost everyone I have contact with dicks me. My landlord is ripping me off for $90 while totally neglecting this shit-hole. The paint in the bathroom is cracked and water's getting in it and I know I'm going to be charged for it. My storage site just raised my rent. My health insurance has now gone up for the 3rd time since signing up.

It all really makes me want to move up in the woods. I need a better bed though. And some rain-proofing. And some indoor heat.


05-28-07

I'm debating again whether to sell my poker HUD. I've fixed it up a lot for myself and it's just so rad now I feel like I have to sell it, for its own good, you know, my baby needs to be free, like a muscle car needs to be raced, my app needs to be used. The problem is I really don't want to do all the tech support. I've been trying to find someone to sell it for me and maintain it, but it's hard to find someone who wants to do that kind of work that's competent. I'm sure there are lots of people in India or wherever who could do it and would love to but I have no way of finding someone that I trust enough to establish a long term working relationship with.


05-28-07

Dan and I are going camping in Sequoia for a few days. I'm turning 30 but those kind of artificial milestones don't really mean anything to me. I've never cared much for birthdays, they just remind me that I have no friends. I have had some really wonderful birthdays though when girlfriends did sweet things for me and treated me so well, thank you. Also I really hate receiving presents because they're usually not something I really need and I feel like the person is wasting their money. I also just hate having stuff that I don't really love so it's really like you're just giving me something that I now have to take the trouble to take down to Goodwill or whatever.


05-25-07

I just love it when I go to write a function and it's already there cuz I did before. Hmm.. I need to print the final pot size, I guess I'll query the total put in pot for each player.. oh, lol, GetFinalPotSize(), sweet!


05-17-07

Fucking Firefox is so full of bugs. It just decided to reset all my config; home page reset, my custom search, all my settings to make it format faster; I don't even remember what all the settings were. How can it be so fucking hard to make a fucking formatted text+image viewer!? This is like fucking junior high programming, WTF WTF. (ps. I know it's not actually that easy because the fucking HTML standard is entirely fucked to all hell with bugs and crazy ass special cases and versions and all kinds of nonsense that makes it a ton of work to actually support right).


05-16-07

How can the fucking TiVo software be so fucking ass broken? "Thank God your Here" was just on and I missed it and wanted to at it to the list. Well I can see it in the past in the program schedule but fucking broken ass TiVo won't let me a select a program in the past so that I could ask it to record the rerun. So, I search for it by name in the program list. It's not there. WTF WTF WTF. It makes me almost as mad as the fucking poker site software which is such sitty software and they're just rolling in money. Not to mention pokertracker which is written in like VB or something and literally takes 24 hours to import a bunch of hands that my software does in about 10 minutes. (and my stuff is not at all optimized and really lazy heavy C++ stuff). FRIGGLE FRACKLE.


05-16-07

Any time your range of hands doesn't match the range your opponent puts you on, you have a profit opportunity. You may not be able to realize that profit, however, unless you know what kind of error he is making. For example, if he puts you on a very good hand and you range is wider than that, you should not be value betting the top of your range - you should be value betting the top of the range *he puts you on* which is tighter than what you actually hold. On the other hand in that same spot you should be bluffing with a large amount of your range. Conversely if he puts you on a loose range but you actually are on a tight strong range, you might value bet 100% of your range. Compare this to the game theory situation where you opponent knows your range - when he knows your range you should be mixing up your play in the different regions of your range - value bet the very best hands, check the middle, bluff the worst hands.

Now, most people in SSNL don't really actively exploit this principle. We just assume that our opponents are sort of morons and are going to mess up our range. We just play a sort of standard solid game, and we automatically get profit opportunities because our opponent makes mistakes and puts us on a range that's different from what we're actually playing. The most common case is that they assume we're a lot looser than we actually are, so we can value bet lots of hands and get called incorrectly.

At the higher levels if you try to play a basic solid style, you will run into people who can read your range very well. The reason is partly that they came up playing the exact same style so they know very well what hands you play in what situations. Now that doesn't necessarilly mean they can "own" you as many mistakenly think. If you are correctly varying your play and doing different things with different parts of your range (eg. playing game theory style), then they cannot exploit your play at all. However, they can play 0 EV against you so you cannot make any money from them. Of course in the real world, the standard "solid" style is very exploitable because we do not mix up our range correctly. There are lots of sitations where an SSNL player will never show up with a wide enough range and won't bluff.

To fix this problem you have a few different options. One is just to mix up your range more correctly so that you are theoretically unexploitable. This is a very powerful way to go and aba20/sbrugby sort of plays this style. Most players don't have the mathematics and discipline to do this, so they instead "change gears" which is more of a feel response. By changing gears you can keep your range hard to read, any time you are in a different gear than your opponent thinks you are, you have an edge, or at least you avoid being too readable.


05-16-07

The bad thing about ever limping is it defines your hand. It defines your range as stuff like small pairs, suited connectors, not AK, not big pairs. Defining your range isn't bad against morons but it's very bad against good players. If you're going to always raise with {AK,JJ+} preflop then you need to always raise with *everything*. Alternatively you could sometimes limp the big hands, but that's such a negative thing that it's better to just always raise or reraise. Part of the issue is that the big hands are so critical in hold'em. {AK,JJ+} are about 4% of holes but are about 90% of your EV. Everyone loves the small pairs and suited connectors and so on, but the truth is they are only barely profitable and their main benefit is in Shania for your big hands. In some ways you can think of NLHE as a game of waiting for AA, pretending you have AA, trying to crack your opponents AA, etc.


05-15-07

I made a big mistake in my poker bot code way way back in 2005 when I started it. I used "float" for the money amounts (the stacks, the pot size, etc.). They're decimal numbers right, use a float? I didn't really think about it and just went to work. Then float precision errors started popping up and I realized my mistake. Of course it's really an integer number of cents, so I should've used ints and worked in cents. Instead I just switched some floats to doubles where I was having trouble. But that doesn't really fix anything (doubles have plenty of precision but I still have failures because I store to disk in floats for size and backward compatibility). Now I've got the floats all over and it would be a huge mess to fix all because I didn't really think about it at the beginning.


05-12-07

Ugh, I'm so sick that this "Neil DeGrasse Tyson" guy has become a scientific spokesman. The guy is a giant retard whose scientific knowledge is on par with a typical 3rd grade elementary school teacher. So sick.


05-11-07

Fucking retarded Windoze uses a mix of NULL (aka 0) and INVALID_HANDLE_VALUE (aka -1) for HANDLE return values on error. Thanks a lot MS.


05-08-07

Wow, a lot of the 2+2 internet poker pros are flaming out now. Partly it's because the games are drying up, but also it's because a lot of them weren't actually that great, they just ran hot, and then they were sloppy with their money, lent it to friends, lived the "balla" lifestyle, took shots at the higher games and lost; lots of them do coke and play poker, the cost of the coke isn't really significant but the cost of feeling strung out and overconfident and taking your roll to the top games can be very steep when you stop running hot. Of all the kids who made $100k+ last year, very few of them actually have the humility and discipline and control and money management to be long term winners.


05-08-07

Any C editor should have an option to find-replace that's case insensitive but *preserves* caps. eg. if you put in "stars" -> "tilt" it should autochange "Stars" to "Tilt" and "STARS" to "TILT".


05-06-07

There's this whole funny phenomenon where movies/books/etc. which are trying to show the evils of a lifestyle wind up becoming the icons of the very people they are attacking. "Scarface" is a classic example - it's trying to show the hopelessness and depravity of Pacino's character but he winds up being celebrated by those who idolize that lifestyle. "Wall Street" is another - it's clearly trying to show the evil of the stockbroker character, but winds up being touted as a hero by real brokers.


05-05-07

WTF Spiderman is so fucking retarded, how can all you people like it? 1. Kirsten Dunst is not pretty, has no charisma, and is generally loathesome and a terrible actress. 2. Tobey MacGuire is again a terrible actor, and a tiny little dweeby pansy, and don't tell me Peter Parker is supposed to be a pansy, he's supposed to be a nerd, but he has a certain sharp wit and energy which Tobey totally lacks. 3. The action sequences SUCK SUCK SUCK. They're all computer, totally fake looking, with all those super-plasticky stretchy computery moves and the camera whipping all over the place to try to create energy that isn't really there. Ugh.


04-29-07

"Edi" is a really great movie. I'm really sick. God I hate being sick.


04-27-07

Well, I just learned a valuable lesson. The fire alarm panel should not get wet. Dear god my ears.


04-26-07

Found a cute little summary document : Windows NT Kernel Overview (PDF) with lots of internal goodies. Quite interesting.


04-25-07

So I'm playing poker again, 200NL on PokerStars. I'm still a little drained and bored of it, but I need some money and I don't want to work. I can make around $100/hour there and more if I can move up. I'm going to try to really make another run at getting better and moving up. Of course the games are way tougher now than they used to be, but I have some aces up my sleeves ;)

Here's one of my more exciting hands so far, and also a demo of my sexy html hand output :


No Limit Hold'em Ring Game (6 max) , 5 players
Blinds : $1/$2

Stacks:
UTG : $217.05
CO : $255 (Hero)
Button : $200
SB : $201.65
BB : $92.45

Pre-flop: (5 players) Hero is CO with Qh Jh
UTG folds, Hero raises to $8, Button raises to $24, SB calls ($23), BB folds, Hero raises to $88, Button folds, SB calls ($64).

Flop: 8s 8d Js ($202, 2 players)
SB checks, Hero bets $152, SB calls all-in.

Turn: 5h ($467.65, 2 players)
River: 2d ($467.65, 2 players)
Results: (final pot $467.65)
Hero uncalled bet of $38.35 returned
Hero wins $465.65 (+$225.65) with Qh Jh (Two Pair)
SB mucks 4d 4h (Two Pair)

Button here is an aggro TAG so he's raising me light a lot. SB is a horrible donk so I'm not worried about his cold-call of a reraise (which would normally be scary) - but I can use him to squeeze preflop and I know Button *is* worried about SB so I can get him out. I was a bit surprised SB called down so light, but that's just a bonus ;)


04-25-07

I'm so not a Firefox configuring geek, but this is cool : Change your FireFox default URL action ; I like to just have it do "I'm feeling lucky" so I can semi-type a url and it works.

Also I got this problem where clicking an HTML file would open up Firefox twice. If you go to "File Types" and look at the HTML config it had put "Firefox %1" as the command and also this whole DDE section. I just turned off DDE and it works fine. Probably taking out the %1 and leaving in DDE would work also.


04-20-07

I can totally sympathize with the idea of going nuts and shooting people, but shooting a bunch of graduate students and professors is just insane. If you're going to rage at the world and take yourself out, take out some politicians, some CEO's, some lobbyists, some police, some models, some yuppies, some televangelists, something sensible!


04-19-07

If I was in elementary school and I saw a kid with one of those flight-attendant pull-behind suitcase/backpack things that all the yuppie kids have now - I would definitely beat them up.


04-16-07

I've always wanted to make my apps clean Console/Windows apps. What I mean by that is - if I'm started from a console, I can either attach to that console or not, while if I'm started from an icon (no parent console) I can either pop up my own console or not. Turns out this is impossible because of the ass way Windows handles consoles and spawning processes. There is this nice function AttachConsole() which it seems like it would do the trick but basically it seems totally useless.

The goal is to have an app that is primarily a GUI app, but it has processing and help modes where you might want to just run it on the command line. For example, if someone runs "cbapp -?" and they do it from a cmd, I want to just output the help in the CLI, I hate it when apps pop up their usage in a little MessageBox. A classic example is the "msdev" or "devenv" app, which by default pops up the MS Visual Studio GUI interface, but you can run it from a CLI to do non-GUI builds of your projects and things like that. Basically I think pretty much every single app should be designed this way.

Anyway, there is a solution, but it's a bit ugly. First of all, you compile your whole app twice, once for CONSOLE and once for WINDOWS subsystems. The two apps are in the same directory and have the same name, but the console one is named ".com" ; because of the cmd execution order rules if you run the app from the command like you will run the .com version, obviously shortcuts point at the .exe version. Now, the .com version will attach to the console - if you decide it's in a mode where it should be a detached windows app you have it spawn the .exe version. Conversely, if the .exe is run and you decide you need a console, you can just call :

if ( AllocConsole() ) // does nothing & returns false if we already have one
{
	freopen("CONIN$","rb",stdin);   // reopen stdin handle as console window input
	freopen("CONOUT$","wb",stdout);  // reopen stout handle as console window output
	freopen("CONOUT$","wb",stderr); // reopen stderr handle as console window output
}

Which puts a console on your Windows app. Apparently several MS apps use this .com/.exe trick.

Now, there is one last problem that I hate. The console window you pop has a close box on it, and this close box has a nasty property - when it's clicked your app is *terminated* like a KillProcess() - you don't run any shutdown code! This is pretty evil and retarded IMO. I haven't found my ideal solution to this but the two things that come to mind are : 1) hook/hammer that window to get rid of its close box, or 2) use one of the many Windows console replacement libraries (eg. don't use the built-in windows console at all). You could also write your own console pretty easily, especially if you're only doing output. You just direct stdout to a windows file and wait on it in a thread to update a little text pane window.

Part of the weirdness with the console window is that even if your app makes the console you don't own it. All console windows in Windows are owned by "csrss.exe" which an always-running process which acts as the console server. When you call AllocConsole() it actually sends a message to csrss and tells it to make the console window; it also makes some memory mapped files and gives you the handles to them which are then your stdin/stdout/stderr. To talk to the console you write those files, it sees they changed and update the window. This is what makes the console totally async from your app and means you app can crash and still have a valid console, which is what makes it nice for debugging. The csrss thing sort of explains why you just get a KillProcess. When the close box on the console is hit, csrss gets that message, sees the PID that's attached to that console and just kills it.

Addendum :

Actually it can be easier than this. You don't need to do the whole .com/.exe thing unless you want your app to be significantly different in windows & console mode. Instead you can just do this easy thing :

Make your app a console app with a normal main() entry point. When your app decides that it wants to detach and be a windows app without a console, you just respawn yourself like this :

	// I'm consoled and I don't want to be
	fprintf(stderr,"Respawning detached\n");

	STARTUPINFO si = { 0 };
	PROCESS_INFORMATION procinfo = { 0 };
	si.cb = sizeof(si);

	BOOL ok = CreateProcess(
		NULL,
		GetCommandLine(),
		NULL,
		NULL,
		FALSE, // 	bInheritHandles
		CREATE_NO_WINDOW | DETACHED_PROCESS,
		NULL, // = inherit environment
		NULL, // = inherit curdir
		&si,
		&procinfo);

	if ( ! ok )
	{
		fprintf(stderr,"ERROR : CreateProcess failed !\n");
	}

	exit(0);

This will relaunch your app separated from the parent handles (so if you're run from cmd you don't inherit its stdin/stdout). Your app is still a console app, it just won't have a console and the stdin/stdout will be null files. You can always pop your own console in the future too.

Actually there is one ass crappy thing about this - if you run this from a shortcut it first starts as a console app, a console will pop up, then you'll respawn and the console dies, so you have this evil flash at startup. So, you can solve that by going the .com/.exe route, and I still don't have a happy solution to this problem. If you do the proper thing and use the .com/.exe trick then your .com just spawns the .exe using the above code, (but you have to change the app name in the commandline).

Another semi-related tip you might not know : there's really no point in defining _CONSOLE or whatever in your project, and in the linker you can set subsystem=NOT SET. Then MSVC will just autodetect whether you implemented main() or WinMain() and do the right thing.

More addendum : Tom points out you can fix the console-making-your-app-terminate thing. You just implement a ConsoleControlHandler and catch CTRL_CLOSE_EVENT. I have no idea why Windoze didn't make the default version of that raise a signal, which would've made all the ANSI apps work nice, but they didn't. The only funny bit is that a ConsoleControlHandler is run on a little thread that's created in your app just to run it (presumably with CreateRemoteThread from the csrss). That means you can't just PostQuitMessage() because you're not on the right thread, and you also can't just PostMessage() to your main window unless you're a bit careful (okay, in practice you probably can do that 99% of the time). Anyway, a safe thing to do is like this :


volatile LONG g_consoleClose = 0;

BOOL MyConsoleCtrlHandler(DWORD fdwCtrlType) 
{
	// note : this is run on a little thread inside my process which is created just to run this
	//	that allows me to pop a message box or something if I want
    switch (fdwCtrlType) 
    { 
        // Handle the CTRL+C signal. 
        // CTRL+CLOSE: confirm that the user wants to exit. 
        case CTRL_C_EVENT: 
        case CTRL_CLOSE_EVENT: 

			InterlockedIncrement(&g_consoleClose);
 
            return TRUE; 
 
        default: 
            return FALSE; 
    } 
} 

And then in your main thread you do this :


		if ( InterlockedExchange(&g_consoleClose,0) > 0 )
		{
			PostMessage(g_mainWin.GetHwnd(),WM_CLOSE,0,0);
			break;
		}		

Or whatever you want to do in there to signal your app its time to get out.


04-14-07

I wrote a while ago that Layered Windows under MS Windoze are very slow. Well, like a retard I didn't actually do the profiling and it turns out I'm totally wrong. Layered Windows are in fact nice and speedy, and you can have at least one full-screen alpha-blended windows at 60 fps. What *IS* slow is pretty much any GDI function call, in particular GetPixel & SetPixel are just insanely slow. Fortunately it's really easy to just get your DIB bits as a DWORD RGBA array and do all your own drawing on that in-memory bitmap, then you just UpdateLayeredWindow and speed away.


04-13-07

Carnitas = pork confit. Now you can charge $20 for it instead of $1.


04-12-07

IC tipped me off to Lame Blog which is a plain text -> blog thing just like I want, but I haven't figure out how to get it working yet. Someday you will be able to comment! In the mean time I retardedly report interesting comments :

Bernanahan pointed out the Reflection() thing may break down in large code bases simply because it does force you to put a lot of junk in the header which = lots of recompiling. Yeah, that's the biggest problem with all template magic junk, it might be crippling on game engines. My apps still take just a few seconds to compile so I'm not sweating. Also if you're really gonna use Reflection to define user-editable values you probably want ranges & descriptions and lots of other metadata. Of course you can do this in the Reflection system but it starts to get ugly and the pros & cons swing more towards a custom markup & parser system.

Sholz wrote about my security ramblings. I'm a total newb on this stuff, I just figured out how to hook & scrape to get the info I need. Anyway, he's more in on the whole rootkit and anti-rootkit crowd which is a big field I guess. All the anti-rootkit people basically know that Windoze is hopelessly insecure, so the thing they do is scan for hooks & patches, and/or take measure to prevent them from getting installed. So then it becomes a war of getting around each others' blocks & hiding from each other. It's quite impossible to make a Windoze box secure - all you can do is make it secure from current known attacks, and make it difficult to write new attacks that aren't blocked/detected. (this is assuming the attack is invoked by running a user process - it's possible in theory to block all remote attacks if all your interface software is written well and bug free).


04-11-07

I did this Reflection + Prefs thing a while ago and I'm using it now and it's just so sweet I thought I'd write about it a bit.

It's in the Galaxy3 code which is here . (that version is old and my new stuff is better, I'll put it up some day)

There are a few components so I'll go through it. This is a very C++ template metaprogramming thing. When I wrote it I was constrained by the limited features of VC6, and it works in VC6, but if you use the fully compliant spec you can do even nicer things.

"Reflection". This is just a convention. A lot of template metaprogramming is just conventions. Anyway, this convention says : any reflectable class defines a member function called "Reflection" which reflects all its members. The Reflection function takes a templated visitor so it can be visited by any functor, and it just calls that visitor on all its members (with their name).

So, having this convention is cool already, because if you implement Reflection in all your classes you can now do an "IOZ" type of automatic serialization system and you can serialize any class which implements Reflection.

In this case we're going to use Reflection to do "Pref" IO. Prefs in my world are text files like INI files, that have a bunch of lines something like "member : data" in nice readable and editable formats.

To read & write prefs we need to know how to read & write various data types to text. To do that, we define two templated functions : ReadFromText and WriteToText. You then specialize them to specific types and write the text IO for those types. For example to do ints you would supply functions that basically do printf and scanf. If you want you can implement these for your own arbitrary types, but you don't do that very often, only for new low-level types.

The default implementation of ReadFromText and WriteToText assume the unknown type is a complex type, so they write it in braces in the text file, and then call "PrefIO()" on that type so it can IO itself (in text).

PrefIO is just another convention. There are no implementations of PrefIO for basic types - if your type was basic it would have been IO'd by ReadFromText/WriteToText. The default implementation of PrefIO just calls Reflection !! Okay, now this is where the magic is starting to happen. Default PrefIO assumes the type is a complex type that implements Reflection, so we just pass in the IOText functor which is automatically called on all the members. (another case where you might want to implement the PrefIO function is if your type is an opaque class with a pImpl - you don't want to expose Reflection publicly so you just expose a PrefIO function which can then call through to work on the hidden pImpl).

Now, there are some types which are neither basic (and get handled by RFT/WTT) , nor are their Reflected. One example is any complex type that you don't own the code to, so you simply can't add a Reflection() member. For example, types provided by another library such as Windows. You still want to do PrefIO on those types, well you can - you just specialize the PrefIO template for those types and manually call the members instead of having Reflection do it for you.

Okay, so what's so cool about this system? Well, for doing basic stuff it's not particularly better or worse than any other reflection/member-IO system. In any system like that you have to mark up a list of your members somewhere and we have to do that too. (I'm ignoring the fact that you can autogenerate that list by parsing headers, since you can do that in any system, and you still have to mark it up by flagging which members to reflect and which not to).

The cool thing is what happens when you encounter a type that the system isn't familiar with. In traditional prefs text IO systems, first of all that error might not be detected until run-time, which is nasty. Second of all, to support IO for a new type you often have to define some new MetaData object that describes that type, and add it into the Pref system.

In this system when you add some new type to a class, you will have a Reflection() in that class that acts on the new type. When you write code that treats that class as a pref, it will try to compile the PrefIO functions, which will produce a compile error that looks something like :


c:\src\cblib\Reflection.h(211) : error C2228: left of '.Reflection' must have class/struct/union type
        type is 'COLORREF'

You're getting this error because it's falling down to the backup implementation for unknown types, which is to assume they're complex and call Reflection() on them. Since this type doesn't have Reflection you get an error. Now you can fix that either by -

1. if it is your class, you just implement Reflection()

2. if it's a basic type that you just don't have an IO for you, you write ReadFromText/WriteToText. If these are found they are used first and it doesn't even call to PrefIO.

3. else it's some sort of struct or type you don't own, (like in this example), so you write a PrefIO, which overrides the default so Reflection doesn't get called.

Okay, the other really great thing about this is what happens any time it breaks for whatever reason. You have some weirdo ill-behaved class and the standard generic Reflection doesn't work. Well, your Reflection() function is just code and there's no reason you can't just go in there and write extra code to fix whatever is wrong. In the most severe case you could specialize Reflection to specific visitors to special-case those, but more often you can fix it by just doing some time addition to normal reflection.

IMHO there's also a big cognitive benefit to having a system where the compiler is doing the book-keeping for you (errors are compile time and the compiler tells you if you don't support certain types), and where the system is "just code" as opposed to some custom metadata or parsing system which will have its own quirks and ways of working that you'll have to learn.


04-11-07

Critical Sections don't work across processes (mainly just because they do local allocs, so they have internal handles and pointers which are process-specific). (I guess there's also some differences between windows process-switch and thread-switch logic which would call critical sections to be unsafe across processes even if their memory was global).

Windows doesn't have any drop-in cross-process data locking thing. Fortunately some MS dude wrote a cool bit of free code : Metered Sections

There is one bad thing about the Metered Section code as is, which is that the Open and Close use malloc and free which is not safe to call inside DllMain. My preferred fix to that is to expose the in-place Init() and Delete() analogous to Critical Sections, so that you can just have a Metered Section structure in a static variable and initialize it in place with no allocs. If you wanted them to be safe & dynamic you'd have to use TlsAlloc or something.


04-11-07

Random thoughts on how you might actually make an app safe from snooping in Windows :

First of all, you can't call any OS functions with data that you want protected. It's very easy to hook any OS calls. Now, lots of things in the C std libs go to OS calls - even things like strcpy (!!) - so if you want to write a program in C you probably need to write your own "safe CRT" that doesn't call to the OS. Now, you can of course still call to the OS (you have to) but you should only call it with data that's protected, for example when you send network packets they should be already encrypted.

It's possible that any happen which uses HWND's is unsafe. It's easy too hook HWNDs and manually send various messages and such. I'm not sure about this but if you really want to be safe you might have to do all of your own windowing. You could do this in an OS-friendly way by making a separate app which just maintains a blank window with a title bar. That way people can still alt-tab and z-order this blank window, and then your real secure app which is in its own process just gets the location of that window and draws in it manually.

Now, any drawing with GDI can be hooked & screen capped, so that's not safe. You might just be in trouble here because pretty much any drawing is going to require an OS call which can be hooked. There are things you can do, such as YUV overlays which don't go through the normal GDI and can't be screen-capped, however to fill them you would still have to pass in the bitmap to draw and someone could hook that call to grab your bits.

One thing you might be able to do is detect hooking. I'm not sure how you could do this but conceivably instead of just calling to the OS you could GetProcAddress on the calls, and then look at the code you could be calling and scan for jumps in it to see if it's a thunk out to non-kernel space, then just don't make the call.

Of course your memory is still exposed. Memory in windows is totally unsafe and other apps can even get your list of virtual memory pages AND change the protection on them. You might think you could make yourself safe by taking all your pages and setting them to NOACCESS , but anyone can grab the page and change it, so this is pretty retarded.

Other apps can also CreateRemoteThread on you to insert code into your process and I'm not sure if there's any way to forbid that.

The easiest way to get code to run in another process is with a windows hook, but I think it is possible to write an app that simply doesn't cause any hookable events.


04-10-07

This blog has a cool article on how Win16 Hooks were implemented. Some very cute stuff.


04-07-07

So, I might get back into poker. Just sort of for laughs & the challenge I've been playing with scraping data from certain poker sites that try to make it difficult to scrape data. LOL. Windows has the retarded "make it difficult" security system where any user-level app can completely access any other user-level app, all they can do is make it sort of difficult. In the end you can always go and grab their virtual memory information and walk their memory and do whatever you want. You can also insert yourself as a DLL and hook their function calls to the OS and easily grab info and change behavior that way. ALL YOUR BASE ARE BELONG TO US!! It's pretty fun, I've never done this stuff before and it makes me feel like a real l337 h4x0r. Windows is ridiculously unsafe.

For various reasons I don't want to give away too many details, but I will say that the only really quality information comes from MS themselves, they have a lot of articles on how to write debuggers and API tracers, which is of course also how to write great hacks. All of the script-kiddie web sites are useless so far as I can tell.


04-07-07

Here's a nasty bug to avoid : DLL Shared data only works if it's *initialized*. Uninitialized data will just silently not be shared. So evil. So like this works :


#pragma data_seg(".SHARED")

char buffer[80] = { 0 };

#pragma data_seg()
#pragma comment(linker, "/section:.SHARED,rws")

And this will appear to work just fine but not actually be shared :


#pragma data_seg(".SHARED")

char buffer[80];

#pragma data_seg()
#pragma comment(linker, "/section:.SHARED,rws")

One thing I'm actually not sure about is whether you can put C++ classes with constructors in the DLL shared data space and have that work right (eg. be shared, and just be constructed/destructed once when the last DLL instance dies).


04-02-07

I'm reading through "A People's History of the US" and will post some of the interesting things here. It's definitely a left-wing commie manifesto, but pretty interesting so far, worth a read.

He notes "a contract among unequals is usually written as if the parties were equal, but with varying power to enforce the contract". This really struck me as a tool that is constantly used today and is very powerful. The contract looks good, it makes you think you have all these rights, but in reality the powerful player can enforce their side of the contract, and you have little/no power to enforce your side. Most of us peons are in these contracts all the time - with the gas company, with our employer, with our health insurance, with the government. In theory we have all these rights but in practice they can pretty much do anything to us and we have no recourse unless the sin is grevious enough to sue and get a conviction. As long as their careful to only fuck us over in minor ways, they win. For example, they can constantly send us contract revisions that we really have no choice but to accept.


04-02-07

You may not be aware of it at all, but there are currently thousands of huge private equity hedge funds doing computerized trading on all kinds of markets (stocks, currencies, commodities, futures, etc.), moving billions of dollars. They generally do risk-free or very low risk transactions. These aren't traditional investment funds that put money into businesses they think will succeed. These funds look for "loops" or ways to "bet both sides" , like arbitrage or just plain mistakes. They also take advantage of the different schedules of the markets and the delays of big mutual funds.

What is the real net result of these funds? The funds make a lot of money, and everyone else makes less. The money these guys are making doesn't come out of the air. Then they trade a commodity vs. a future, it's because they spotted a price that was incorrectly too low, and by trading it they drive it up and make it correct, and suck the "slack" out of the system. That sounds harmless, but the slack was a discount for someone buying that commodity which made the goods cheaper. The same thing occurs in stocks - effectively they are "fixing" the prices of various transactions, which always means making them worse for others.

This has been going on for perhaps 10 years, but has really only kicked into high gear in the last 5 years. We won't know the full effects on long term market returns for many years, but already something measurable has happened. Mutual funds that track the major indexes (like the S&P 500) are performing much worse than they used to, perhaps 1% worse. This is happening because changes to the S&P inded are announced in advance, and it takes a while for the mutual funds to shift in, and the hedge funds sit in the middle and make profit.


04-01-07

Wines - why not more blends? There are so many single grape wines in America that are very flawed, and blending them could easily fix them. You might have a Zin that's too dry and peppery, a cab that's too big and tannic with no other notes - just pour em together and you have a much better wine!! It seems there's a single-grape snobbery in America that definitely doesn't exist in France (pretty much all their top wines are blends). Some of the ideal blends might take wines from different wineries which creates some logistical difficulty, but there are plenty of big producers that could easily make superior wines.


03-31-07

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


03-31-07

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


03-31-07

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


03-30-07

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


03-26-07

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


03-26-07

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

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

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


03-25-07

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


03-25-07

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


03-25-07

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


03-23-07

How to balance on a (freewheel) bicycle :

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

The secret is : brake.

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

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

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


03-23-07

Some tricks for allergy suffers and nose cloggies like me :

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

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

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


03-23-07

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


03-21-07

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

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

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

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


03-21-07

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

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

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

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

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

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


03-21-07

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

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

LOBSTER OR CRAB BISQUE	 

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

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

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

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

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

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

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


03-21-07

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


03-21-07

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


03-19-07

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


03-19-07

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


03-19-07

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

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

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

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


03-18-07

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


03-18-07

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

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

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

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

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

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

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

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

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

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

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


03-18-07

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

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


03-18-07

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


03-17-07

Some random fun links for you :

Projection Bombing ; temporary graffiti with a powerful digital projector

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

How to find mp3's with Google ; duh

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


03-17-07

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

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

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


03-15-07

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


03-15-07

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

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

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

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

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

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

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

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

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

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

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

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


03-14-07

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

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

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


03-14-07

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


03-13-07

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


03-12-07

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


03-12-07

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


03-12-07

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

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

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

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


03-12-07

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


03-10-07

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


03-08-07

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


03-08-07

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


03-08-07

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


03-08-07

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

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


03-05-07

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

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


03-02-07

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


03-01-07

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


03-01-07

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


02-28-07

rad blog on strange old maps


02-28-07

I've been eyeing the raw peanuts at the farmers markets here for a while and I haven't been able to crack them until now.

First of all, you can NOT dry roast them (I tried it and it's a disaster). Only Virginia Peanuts can be dry roasted, and the kind you get here in SF are some Chinese variety (apparently there are like 7 major types of peanuts and only 1 is the Virgina dry-roastable type). The dry roasting recipes are quite simple, however to get them well salted you would have to soak them in brine and then dry them out first, which makes that whole process rather a pain even if it was possible.

There are 3 ways to use these raw and "green" peanuts.

1. Fried. (aka "oil roasted"). Just put a bunch of peanut oil in a wok, heat it up. Toss in the raw (de-shelled) green peanuts and cook until they get nice and brown. Remove to drain the oil and salt them. Nice for chomping on; I did this and they turned out quite well. I like my peanuts very dark roasted which you can't buy in a store but you can do this way. Apparently this is the way peanuts are traditionally added to dishes like Kung Pao in China - the peanuts are not pre-roasted, the raw peanuts are put in the wok and fried like any of the other steps of a stir fry. Kung Pao recipe .

2. Boiled. Theoretically you can boil them just like you would a Virginia peanut. This is a traditional southern thing and produces a sort of soft but firm nut meat similar to a chestnut. (I haven't actually tried this yet) Boiling peanuts

3. In stews. Apparently this is common in China. You can just toss raw peanuts in as a stew/soup ingredient and cook like a turnip. It will theoretically again sort of come out like a boiled peanut. I've never had this at a restaurant or anywhere, so I'm interested to try it. Oxtail soup with raw peanuts

addendum much later : I actually have no idea what kind of peanuts they sell in the farmer's markets here. They are "green" which means not only raw but fresh out of the ground and moist. You cannot just roast a green peanut. Commercial "raw" peanuts have been air dried to preserve them. You can of course buy raw dried peanuts and roast them very easily.

Seperate from the farmers market issue, the Chinese stores all around SF sell raw (dried) peanuts. Those are in fact some different variety which is smaller and more oily, not a Virginia peanut.


02-26-07

I just realized the logic behind the "troop surge" currently under way in Iraq.

In terms of helping Iraq, the surge is retarded. You increase security in Bagdhad; best case the militants flee the area or simply hide their arms and chill for a while. If that had been done right after the invasion, it would have helped immensely because the integrated neighborhoods would have been stabilized and the middle class could have established trade, etc. Now it's far too late for that to help at all, the mixed neighborhoods have already been cleansed and the middle class has fled. The country is in shambles and no one is going to move back to their neighborhood because of the temporary security. (for the record I think the Democratic condemnation of the surge is also retarded, it's pointless and hypocritical, it's not an "escalation" as they like to say, and it's just cheap political grandstanding).

Anyway, here's the real reason for the surge : the surge will, of course, greatly improve security in the short run. The administration will no doubt quote those figures to claim that real progress has been made. That then gives them two options - if Iraq is still looking good heading into the 2008 elections, they will claim their strategy has worked. If it doesn't, they will blame the regression on the Democratic congress for not supporting the surge enough, for "cutting and running" or some such nonsense.

The only logical reason for the surge I can see is as a purely political maneuver.


02-26-07

99% of the appeal of Apple is their cool design. Of course you can copy it with about 5 minutes of work on your PC. David Lanham has some really nice icon sets you can use.


02-26-07

Whoah. I've just discovered Google is doing something weird with eponymous web pages. They seem to be associating them with their eponym. My page is now referred to by google as "Bloom, Charles" , which is a phrase that I use nowhere, so they must have figured out my name and reformatted it like that.

In the current age of search, it's +EV for a business to have a very unique name so that it's easily searchable. The same thing is true of humans (if you want to be found). You might want to use a business name different from your real name which is easily searchable. eg. "I do all my game development work under the pseudonym 'daxel'"


02-24-07

Dan got this job that seemed really amazing, and then the reality of working for people set in. Turns out her boss is psycho and totally incompetent as a manager, so Dan was getting passive-aggressive blame shunting all the time and stressing and never knowing exactly what to do. It's all the typical shit you'd imagine, like the boss calls at 10 PM one day and is freaking out, some task is needed that was never assigned and why didn't you do it yet. Dan works late into the night and gets it done. Tomorrow it turns out it wasn't really needed after all.

It all just reminds me of my days as an employee. In my zen state now it just seems ridiculous. The other thing that's painfully familiar is the way nobody wants to hear her ideas. She has great ideas on design, marketting opportunities, etc. she's a new hire full of energy, and they just want to crush that and put her in a role where she does her assignments and doesn't make suggestions. I don't mean to imply it's just management either, it's the people who work those other tasks that don't want to hear about it. It's petty human defensiveness and dismissiveness, not wanting to admit that someone else could have a better idea on your specialty, and assuming that they don't and not having the patience to listen, etc.

There are, of course, tech workers all around me and I hear them talking when I get coffee, when I go to lunch. There are lots of Googlites and others, and their conversations with each other are so mind-numbingly banal and pointless.


02-24-07

I wanted to write this down for myself :

The big open question in my life is whether I should force myself to do what I think I "should" do, or whether I should just do what I'm comfortable with. That is, should I try to do something that will be difficult but perhaps help me change and be a better person (eg. something social, something artistic), or should I just do what I know I can do well and find some little happiness in it (something solitary, something intellectual).


02-24-07

There's an interesting possibility. Imagine I have something like $100k cash. I want to leverage that in to a $1M or larger instrument. I then want to put that instrument on a 50/50 double or nothing (roulette, baccarat, some financial market). If it hits, I have $2M, I pay off the leverage and I'm good. If it misses, I flee the country and go off the grid, which would be a fun rewarding life in it's own way. I think this is in fact a very appealing idea if I can find the right instrument to make this leveraged bet. (obviously people basically do this with housing all the time, but the turn-around time on that is too long and there are huge fees)


02-23-07

Nonstick pans have only two common uses in my kitchen. One is eggs. The other is this :

How to cook delicate fish : fish like sole, red snapper, etc. are a bit tricky to fry unless you use a ton of oil and basically deep fry them. I prefer this low-oil easy to control method. Heat a nonstick pan as hot as is safe for it (medium heat). Dry the fish, salt & pepper it, and rub a thin coating of oil on the fish - no oil in the pan. Put the fish in the pan and turn down the heat, cook about 3 minutes on each side; fish should be "rare", so you're just searing it. After you flip it you can add butter, white wine, whatever you want to dress it.


02-21-07

I think a lot of the appeal of RPG-like games is that they feel like work. Right now I'm not working and it's very satisfying to play an RPG, you accomplish things, make todo lists, buy nice things for your character, etc. When you're doing those things in real life, you don't really want more busy work and todo lists in your free time, just some stress-free fun. I think that's part of why teenage boys love video games so much - it's a way to have a "responsible life" where you do important things like save the world, rather than your ordinary life which is retarded school and leisure.

I'm playing Baldur's Gate 2 and it's super rad. I think the open-ended Chapter 2 is one of the best segments of a computer RPG ever. They do a really good job of keeping you interested in the overall story, making it open ended, and also giving you enough direction; the city feels big and full of things to do. There are a lot of totally retarded game design flaws, but if you just put up with them it's still a pretty sweet game. You can play it in 1600x1200 and it still looks great. I tried playing some Neverwinter Nights, but ugh that bad 3D is just unbearable. So many people jumped on the 3D bandwagon because they "had to" because that's what "gamers expected/demanded" and they just wound up making a bunch of really disgusting looking games. The old 2D games are pretty much all still sweet, but most of the 3D games from before 2001 or so are just awful. (it's especially retarded when you're just making an isometric game, or when trying to make a photo-real game).


02-21-07

The most awesome page on authentic Mexican cooking


02-20-07

I've made some of the best food of my life recently, just improvising. Here are some quick notes to remind myself as much as anyone else.

Braised "Delmonico" over Polenta. Use some kind of stew meat (I had Club Steak, but probably Short Ribs are better); brown very thoroughly in stew pan - get very very brown. In the mean time cut the veggies - mushrooms, carrots, celery, onions & figs - and put in a bowl with some bay leaves, cloves, fennel seeds, and a bit of brown sugar. Remove meat from pan and deglaze with lots of white wine, add chicken stock & boil. Put meat back in, toss in veggie bowl & braise for about 2 hours. Do a boquet of thyme too if you like. The goal is a very dark syrupy liquid, it should be almost all evaporated, slightly sweet. Serve over polenta with parsely.

Simple pasta primavera. Prep veggies first. Whatever you have is fine, but some suggestions are zuchini, peas, asparagus, artichokes, endives, carrots. Use some kind of meat - ham or shrimp is good. Brown the meat thoroughly in a sauce pan. When it's done cooking, remove from the pan, add oil & lots of garlic to brown, then deglaze with a tiny bit of chicken stock or white wine. Toss in all the veg and put a lid on so they steam in the liquid. Now boil the noodles, but the time they're done the veg is done. Toss it all together, add grated cheese, capers & julienned basil at this point. This was suprisingly flavorful just like this. Maybe a tiny bit of light roux or bechamel would be even better.

Slow roasted double cut pork chops. This is a very brief prep note. I've made this many times and never really liked my results. I always sort of treated them like a steak in the past, which means sear and then heat in the oven to get the inside warm enough, but still rare to medium rare. The result of that method is pork chops that are dry and tough outside and raw inside. I tried this new method and it's the money. First make sure you brine the chops in a sweet+savory brine for a day. Then sear on very high heat just to get color and crust on the outside. Put them in an oven safe dish and put in a 350 oven for 30 minutes (exact time varies). Remove and rest for 5-10 minutes. In the mean time you can make a pan sauce in the searing pan and make your side dishes or whatever. The result should be evenly cooked through, not more done on the outside and raw in the middle, and should be melting soft and tender, soft of like a filet mignon in texture. The typical pork chop sauces are good, like glazed browned apricots, etc.


02-16-07

Movies have a lot of ways they can go wrong. But they also have a lot of ways they can go right. They're easier than a pure form, like books, because if a movie's really good in just one aspect, that makes it a "good movie" overall. If the visuals are really amazing, the movie might be good or at least "worth watching" even if the plot and acting are totally retarded.

ps. "Village of Dreams" is really great. It's sort of pointless, and I hate child actors, sometimes they're really bad, but overall it's so sweet and paints a really deep picture of this small town in Japan and the family dynamics.


02-16-07

You've gotta keep moving. Better to make a bad decision than no decision. As long as you keep moving, eventually you'll get there. The only way you're gauranteed to never get there is if you stop moving.


02-16-07

My apartment is slightly above street level; it's on the 1st floor but like most San Francisco buildings you take stairs up to the first floor to add verticality. The Victorian shotgun houses are designed to have long vertical lines, to make you look up to the heavens; the first floor is raised well above the sidewalk, the ceilings are high on each floor, and then they have false fronts that make them look even taller. In contrast the Prairie style has wide horizontal lines that take your eyes out into the country on either side (they only work in open spaces where your eye can fall off the side of the building and meet the long flat horizontal earth). In both cases the desire is to not be square, even though square is the most sensible and efficient house geometry.

Anyway, I have a big window in front that looks out on the street. I sit at my desk and watch people walk by. Because they're looking up, they can only see me from the chest up, so I can be totally naked on the bottom and nobody knows.


02-15-07

If you think about it, pretty much everything that Americans do to make money are things that people don't need. Minor-benefit surgery and pharmaceuticals. Lots of entertainment content in various forms (things like fashion design go here too). Finance management. What people really need is housing & food & basic products. However, people who make housing & food & basic products can't afford to buy those things in America because the prices are skewed by all the rich people making things that nobody needs. If everybody just made the things we actually need, there would be way too much of it and it would be super cheap and noone could buy anything outside the country (like the oil we need to import).

Part of the problem is civilization. If you could just kill someone and take all his wealth, with maybe a 10% chance of getting caught and killed yourself, then imbalances would work themselves out. Any time the imbalance got too big, the poor would just kill some rich. Also the rich would have to hire more people for self defense and hire people to build walls and more energy would be going into the basic necessities of life. One of the reasons man kind spent all its energy on basic subsistence for so long was that so much energy was spend on wars & defense and recovery. In a way, that's a good thing, because it keeps the population down, keeps everyone busy, and prevents it from being too easy to survive.


02-15-07

I made chocolate pudding from scratch (Joy of Baking recipe, great site). It's pretty delicious, but there's an easier way to make great chocolate pudding. Just make the Jello Pudding box (the cook it kind, not the instant) and melt in 4 oz of good quality very dark chocolate. Everyone will think it's super deluxe gourmet pudding. If you want them to think you're a fancy genius you can add a tiny bit of cayenne powder or ginger juice or whatever wacky flavor of the moment.


02-15-07

Man it sucks when you get a product that's functional but crappy. It's good enough that I try to just live with it, but every time I use it I wish I had a better one. The Oddworld messenger bag is this way for me. The love seat we got for the house is like this too; it sucks but it's good enough so we'll never replace it.


02-13-07

The Pillow Fight is tomorrow in SF. Looks like Dan's working late so we're not gonna go :( There's a handful of fun events like this each year in SF, they're pretty hard to find though.


02-13-07

Ugh. I made Jamie Oliver's recipe for roast chicken, and he's got a retarded mistake in it. He makes an herb butter and rubs it under the skin and on the skin. Okay, that's all good, but he puts finely chopped garlic in it. Garlic burns before the skin gets all nice and crispy. I thought it might be a problem before I did it but I thought WTF it's a tested recipe I'll just do it. No, trust your gut. My oven probably cycles hotter than a pro's but still not a good idea.


02-10-07

The whole cutting a grapefruit in half and using a serated spoon is so retarded. It's so complicated and difficult to eat a grapefruit like that, when all the normal ways of eating oranges work perfectly well with grapefruit. Just peel it and eat the segments!!


02-09-07

Someone should do an internet streaming X-rated show like "The Real World".


02-08-07

My mom is over 50 now, and in all those years she has not lost her shock and disgust at the gross stupidity of common man. She's a school teacher, and I recall one time recently when her school's principal sent out a memo that was chock full of spelling and grammar errors, and she was shocked and outraged "I mean for god's sake, the principal should at least be able to compose a sentence in English!". She lives on "Quebec" street, and I recall one time we went to a post office place to mail something and she told her address and they said "spell it please" and she did her sort of double-take "are you kidding me" look and said "like the Canadian province" and the person was just like "spell it please", and my mom rolled her eyes.

This is interesting to me because I lost my shock & disgust at these things when I was like 18 or so. Now I'm not at all surprised when people around me are gob-smackingly stupid. I think her way is borderline insane, but is a much better way to live - keep assuming that people are okay and just constantly be shocked to find out they're not.

One thing I've been noticing recently is that people do completely moronic things even when they're a major part of their everyday life and not something that needs to be taught in school or anything like that.

For example, the Trader Joe's I go to has a two level parking lot. The bottom level is almost always full, or maybe has one or two spots empty, and the top level is almost always near empty. There's always a traffic jam in the bottom with people circling around looking for spots. If these people had an ounce of sense they would just go to the upper level right away, but they seem to be completely without consideration of basic logic in their daily lives. Now, when you do go up to the upper level, the ramp takes you to one side of the lot. The stairs & elevator to get down to the shop is on the opposite side of the lot. If you had any sense, you would park near the stairs/elevator. Instead I usually find the cars bunched up at the side of the lot where the ramp is. This is like 5 cars in a lot for 200 and they all decided to park right next to each other on the wrong side of the lot. Sure sure, maybe a few are first time shoppers who don't know what's up, but the majority are regulars who come every week and still haven't thought about the basics of what they do.

I guess you have even more blatant ones all the time in a business setting. Running a good meeting is a key basic activity in business (and how to do it is trivially obvious) but probably 90% of meetings are run badly.


02-08-07

The cute girl at Trader Joe's asked me to get something for her from the back of a high shelf. I'm tall, I did it for her and she thanked me. It made me feel happy. Wow, look what I can do, mommy are you proud of me? I think I'm ridiculous laughable scum that this is what it takes to make me happy.


02-08-07

99% of humans for the last 200 years have lived the "salaryman" life, which is basically working full time at a job that's sort of okay, perhaps getting ahead so their children have more advantages than they did, perhaps in comfort, perhaps not, filling their free time with various different time wasters like hobbies, TV, politics, or children. I've come to realize that the difference between a very poor salaryman and a very rich one is really not a very big difference as long as they're both living the salaryman existence. The rich one has a much easier time getting out of the salaryman existence, but almost never takes advantage of that and simply lives the same life in slightly more luxury. Luxury is grossly over-rated and does little for happiness.


02-08-07

Pets and children fill very much the same emotional void. They take up a lot of time, which distracts you from the emptiness of life; they are very entertaining in a purile way - you mainly laugh *at* them because they are so dumb, like haha my dog is chasing its own tail, how stupid, haha, or haha my kid just stuck a stapler in the peanut butter, haha what a moron. There are pros & cons to each, of course, pets are much easier, but children are much more sophisticated versions of the toy.


02-08-07

When there's some sort of economic boom cycle and everyone is talking about the "boom" that's probably not a good time to get in. When you see an irrational bubble and yet most people are calling it a "correction" or a "new paradigm" and you think that's nonsense - that's a good time to try to ride the bubble and exploit their stupidity.


02-08-07

Part of the problem that I have with long term relationships is that I like myself a lot better when I'm in dating mode. I'm more interesting, I go out more, when I'm in seduction mode I'm confident, I pretend to have a life and be dynamic and all that. It's exhausting, but I prefer being around myself when I'm like that. Over time in a relationship I relax and act more like my real self, which is a pretty awful person to live with.


02-05-07

Wow, the Hype Machine is like the best thing on the internet ever. It's a music blog aggregator and it does like everything perfectly. It's comprehensive and super easy to use.


02-05-07

I got some Celeriac (aka "Celery Root" though it's not the root of normal celery) at Farmer's market the other day. It's really delicious stuff, it has a spicy celery flavor, a really amazing herby smell, perhaps a hint of radish. It's very tough raw, so you have to either cut it very thin, cure it in a bit of acid, or just blanche it. I put some in a stew and that killed the flavor a bit too much, so I don't recommend that particularly. A lot of people don't realize that celery greens are edible and actually full of wonderful flavor.


02-01-07

It's always interesting to read the reviews of a place which you know really well, because it shows you just how uneducated and superficial most newspaper articles & reviews are. The NYT reviewed "Tartine" in my hood, a very great local bakery, but the review is constantly touting the deft touch of owner/baker Elizabeth Pruitt. I don't think Elizabeth has been anywhere near the shop since it opened and she certainly isn't baking. Their contention that scone recipes and preparations are standard is totally wrong both in theory and practice, though it is correct that Tartine has very good scones. There's so much good information and knowledge out there, and yet we still have these "journalist" figures writing about things they know little about, and the people with real knowledge of things are not tapped. This is probably most obvious to you all when you read science or technology articles in the mainstream press which are just woefully foolish. Now think about all the political articles that you read - you're not an expert in that subject so you simply can't see how equally foolish those writers are.


02-01-07

PokerAceHUD is this crappy/trivial little product that takes your PokerTracker stats and overlays them on your poker client window. The interesting thing to me is that it's very popular and there's basically no competition, so the guy is making decent money for a really miniscule amount of work. The key to the success of PAHUD was getting into a niche market and providing a valuable feature very early on, so people adopt your product and then you get momentum and it's hard for competitors to come in. Another key thing about the PAHUD market that I've learned is that there's a whole different cost consciousness when you're selling productivity/money-making enhancers. When someone is buying a software tool to help them make more money, they are willing to spend a lot for very little enhancement, whereas if they're just buying something for their own leisure time they are much more cost aware.


01-31-07

http://www.sketchup.com/


01-29-07

I think the modern literature where people play with "form" is pretty much all really awful, and 100 years from now it will be totally forgotten, except perhaps as a period in a "history of fiction" class.


01-29-07

Allegiance


01-27-07

These are super awesome animated music videos I'd never seen before :

Kid Koala

Mr Scruff


01-26-07

WTF WTF Science doesn't give me access, why do all these fucking websites not give me access to material, all you fucking journals are subsidized by public money, make the information free!!!!


01-26-07

So I posted about gapminder a few days ago. Kim sent me the link to the talk about it - TED Talk by Hans Rosling . Really great talk, you should watch it.

One thing that's interesting to me is that yes, everything is super linear with development, but there's one major diversion : all the communist countries had far better health than their income would indicate. They're one of the very few consistent and strong deviations from the linear money-health correlation. Also, by pretty much all measures Cuba is doing better than any other country in Latin America, which seems to totally validate Castro's governance (!!).

The UI of the gapminder tool is just super awesome, it's fun to play with, but like most google tools it suffers from lack of help/tool-tips/labels or something to give you a clue about all the ways you can interact with it.


01-24-07

A microwave is a fantastic tool for gourmet cooking. Say you do something like sear a piece of tuna. You properly sear super hot so only just the outside is cooked. Well, that's okay, you can serve it just like that if you want, but it actually eats better if you cook the inside just a tiny bit. If you put it in an oven or a cooler pan, it's still going to be cooking in from the outside, which will make the outside be way overcooked by the time the middle cooks at all. Your only choices are to either cook it for a long time at very low heat (which is a nice option), or just microwave on low power for half a minute. The microwave gets right to the middle of things. I use it all the time to warm things in the middle that I don't want to cook the outside any more. It's crucial to always use it on low power for this, otherwise you can get the "cooked by a microwave" taste which I'm not sure why it happens but it does.


01-24-07

60% is the pinnacle of dark chocolate. Any higher percentage and you just lose too much in texture and don't gain anything really in chocolate flavor.


01-24-07

Fucking Alton Brown is such a jackass. He disses garlic crushers because they're unitaskers (even though you'd use them almost every day), but he wants you to buy a cast iron camp stove to do "Welsh Rabbit". Jackass. Also his Myth-Busters episode was so ridiculously wrong and unscientific it totally ruined his scientific credibility (much like the real Myth-Busters show). The real Myth-Busters really makes science look like garbage, they do totally uncontrolled experiments which don't really test the hypothesis and draw conclusions which are in no way given by the evidence. They almost make me believe in Creation.


01-23-07

Another amazing Google secret : gapminder !! This thing is super cool. Mouse over everything, just about every piece of it is interactive.

In the end it seems like there's primarily only one factor, though, which is something like "developedness" (degree of industrialization) and pretty much all the statistics have a linear+bias relationship to that. It would be interesting to do an SVD, the 1st component would surely be something like that, then it would be interesting to see what the next axes were, eg. what are the next most important factors in characterizing a population other than economic development.


01-23-07

People despise honesty, it makes the uncomfortable, because it exposes them to the reality of the world which they work so hard to hide from.


01-21-07

Before I hurt my shoulder I was looking around for some group sport to join. The only thing I'm any good at right now is rugby, so I tried to find a local team. Now, you need to know that in the US there is no professional rugby league, but there are pretty strong college teams, and a decent olympic/national squad. All those top-tier players are just on amateur squads in different places. Well, it turns out San Francisco is one of the hot beds of US rugby talent, and two of the local squads (Golden Gate and Olympic) are two of the top squads in the country. Partly this is due to the Olympic Club which made rugby a prominent local sport here. Anyway, the conclusion is that I can't play for those squads.

On the other hand, there is another local squad right near me that's about my level (in fact I'd be a star, I think). The Fog , the gay rugby team. It would be like "Tootsie" - I spend an hour before each practice trying to look gay (gel in my hair, wax my anus, etc) so I can get on the team.


01-21-07

There needs to be a social network for torrents, with "flagging" like Craigslist, comments like Yelp, similar torrents based on your user profile ala Netflix. Really, every type of data on every site should have those features, and they should all be integrated, not seperate for each site.


01-21-07

Why don't they make "coveralls" (like what janitors wear) for snowboarding/skiing ? The whole pants/jacket things just provides a crack for snow to get in and melt.


01-21-07

"The Score" was awful. All caper, not one ounce of character development, totally tired cliche's of the old pro and the brash young guy with talent who doesnt respect his elders enough.


01-21-07

Kurobox is a hot platform for doing a home media center always-on mini server. It's a tiny quiet linux box you drop on your net. Some assembly required ;)


01-20-07

(most) males by default want to screw. If you say anything or have an opinion or a personality, all you can do is change that "screw" to "not screw". The switch is already on, you don't need to flip it on, just shut up and be nice and you'll get it.


01-20-07

Saxton Freymann, produce artist


01-19-07

So I have this great old Calphalon Commercial anodized aluminum frying pan that Lorne gave me; I don't think you can even get them any more, Calphalon has turned into a garage brand lately with their nonstick and all that shit. I was a moron and wrecked it by running cold water on it right after getting it blazing hot, which caused it to warp. Apparently aluminum is really soft even when very thick and expands/contracts a lot with temperature change. I was going to give up on the pan but figured, WTF, let's try to blacksmith it. So, I heated it empty on the stove top to blazing hot, then turned it upside down on a big cutting board and pounded out the warp with a hammer. It worked perfectly! It responds nicely to pounding when hot, in fact you have to be careful to be gentle and just tap it down evenly. Granted, it's really hard to get it perfectly flat again, the bottom has little bumps now, and I've probably wrecked the anodized surface so I'm just cooking on aluminum, but hell it's still a nice aluminum pan.

Later on, I sewed the pockets of my jackets, all of which seem to have holes. I feel like a 19th century poor person, back when repairing was actually cheaper than replacing.


01-19-07

Arg. Danielle's away on a business trip, and I was going to use this time to really get back into the poker game, since I can focus when I'm alone. Just as I'm about to do it, Neteller pulls out of the US market, which is a giant fucking monkey wrench. Neteller has been the primary way to get money in & out of poker sites, it's an offshore bank/money router. As in the past, there will still be plenty of ways to get money on & off, but it's yet another step in making it harder for the fish to get in and it will scare more of them away,

I'm quiting Ice Wind Dale 2 about 80% of the way through. The story gives me absolutely zero motivation to see how it ends, and the game play is just too tedious to bother with any more. Once again I am convinced that game developers don't actually play the games they make (I know from experience this is true, or if they do play it it's just to test things, not to experience what it's like to be in the game). I think I spend 80% of my time in this game picking up loot, organizing inventory, configuring spells and casting buffs. Wee what fun.

Altus on flickr has some sweet HDR tweaked photos. Remember to use the "All Sizes" button, he actually has some very high res originals posted.


01-18-07

Wow, Ghost in the Shell 2 is so beautiful. I don't get the negative reviews, the first one was just as boring and full of high school level "deep philosophy" and people loved it. Once in a while there's some really bad computer backgrounds that look strange with the hand-animated characters, but mostly they integrate very well.


01-18-07

I found you a nice little online secret site : bigtray is a restuarant supply shop, but you can buy for home use. Great place to get commercial pots & pans which are insanely much better & cheaper than the home-use stuff.


01-16-07

Four things I didn't know as a young adult that could've saved/made me a lot of money :

1) Never buy a new car. In general, avoid all things with huge markups, such as luxury items, CD's, etc. If possible avoid driving altogether; cars have tons of hidden costs in terms of maintenance, tickets, parking, gas, insurance, registration fees, etc. etc. OTOH buying a $500 car is a terrible idea because the downtime and service costs will make it more expensive than if you'd just bought a $4000 car to begin with.

2) Try to avoid renting. With most things, buying and reselling when you're done with it is a much much cheaper form of temporary ownership, and if you're a good purchaser/seller it can even be free to buy a car or trailer and resell it.

3) Avoid insurance / get lawyers. Once you have enough money to cover problems, you should have the minimum insurance possible. With car insurance, you should never ever get a point on your license - hire a lawyer & get the violation reduced to a no-points fine. The savings in insurance is much greater than the cost of the lawyer.

4) Cheat on your taxes. Even if you think you have no deductions, there are things a good CPA can do (eg. basically cheat), and he can advise you on investments to avoid taxes. Everyone does it, so if you don't you're just wasting a ton of money. If you've got some clout in your business, ask for payment forms that void taxes, such as "business expense" comps rather than salary.


01-11-07

Dang, I want to play Elder Scrolls Oblivion but I suspect my laptop can't handle it since those guys write such performance dogs. I guess I could play Morrowind instead.

So, I'm playing "Icewind Dale 2" because I wanted some retro RPG action (but not too retro). I know, I know, it's from 2002 (hard to believe it's that recent) you don't want to hear about it, but bear with me. (if you all stopped making games right now, I might catch up on the better games in about 1000 years)

It's hard to believe that games like this used to be mainstream, and this was considered high quality. It feels like one step away from "Adventure Construction Set"; the ground tiles are duplicated all over, then you fight the same duplicated monsters over and over; even the unique special guys just have a different name and stats. Everything is incredibly tedious (ZOMG I have to pick up every corpse's loot, arg!!). I think the total gameplay is probably like 100 hours if you do all the quests, but those aren't really quality fun-packed hours. Obviously the tastes of gamers haven't changed dramatically in the last 10 years. What's happened is the market has exploded from a tiny group of hard core gamers who liked this shit to a big pool of general population that won't stand for it.

Ok, so now on to some things that bug me. You start up the game and have to make a party before you play at all. Okay, this is already horrible design. One of Charles's Prime Rules of games is that right when you start you must be in play. How am I supposed to make a good party if I know nothing about how the game plays? So, anyway, to get in quicker I chose one of the pre-made parties. Fucking morons, the pre-made parties all really suck, they're like horribly set up, with Fighters with Str = 12 and shit like that, like if you use a pre-made party you're at a huge disadvantage to making your own. Of course, the beginner/casual types will use the pre-made parties and you gave them a huge penalty, smart move.

The pathing and AI is ridiculously bad. The PC AI will attack my own charmed PC's and shite like that, etc. etc. The insanely bad pathing is really inexclusable when A* in 2d is so easy and well known and fast.


01-10-07

I got my new enclosure, it's an "Acomdata" and so far I'm very happy with it, it's a lot quieter than the Lacie junker, and it has an actual hard on-off switch, not a push-button toggle (got I hate fucking push button toggles so much, I love the old hard switches on the back of computers that really gave a good thwack when you flipped em).

Anyway, I discovered something quite interesting. In the Windows Device Manager on the poperties of the external disk, you can either enable or disable write caching! The default is disabled (safe), which is why writes to the external disk are so slow. Of course if you enable write caches you can get corrupted data if you ever flip it off with the computer on or have a power outage. Hmmm....


01-08-07

So, about a week ago I sent in some questions to Blue Cross by email (cuz their phone line told me an estimated 30 minute wait). Today I got back the reply : "I'm sorry but we can't answer that question by email, please call our customer service center at 555-fuck-you" , FRIGGLE FRACK!


01-08-07

There's a cool little MS powertool to mount an ISO as a virtual drive . I guess "Daemon Tools" is the poppa way to do this, but I like how tiny and simple this little vcd thing is.


01-08-07

Buy Blockbuster stock. It's at $5.70 now, down from a high of roughly $30. It's rightly crashed because their financials are in a mess and profits are down because of Netflix and video on demand, etc. However, their new online service is better than Netflix and they're advertising like crazy.


01-07-07

Joy of Baking is a super good site.


01-06-07

The more I think about it the more I'm disgusted by the exam I got from the orthopedist. He didn't manually examine the joint or palpate my muscles. He didn't ask about how the injury has progressed over time. He didn't do the simple seperation test, which is to have me hold a weight in that hand and watch for a protuberance at the top of the shoulder. I have a followup exam next week to examine my MRI, so we'll see what happens then. This is also part of why costs are so out of control in our health care, doctors just thoughtlessly order up expensive tests without doing the visual or manual tests that could give you answers. Obviously this is a problem of motivation, as I've mentioned before doctors have no interest in keeping costs down, in fact they usually get paid *more* when they do unnecessary expensive tests and treatments.


01-05-07

What Einstein Told His Cook seems really good, I just read a bit in the book store, but at a glance it seems a lot better than Alton Brown's book (sorry Alton, I still love you). Read this instead of the popular-ethics garbage food writing that's big these days.


01-05-07

"Pan's Labyrinth" is indeed super good; I'm not sure about the crazy high scores it's getting, but it's definitely worth seeing. I love Guillermo del Toro, and I love magical realism and faerie tales, so it's right up my alley. I'd say it follows directly in the footsteps of his movies "Cronos" and "The Devil's Backbone", telling sort of a historical story via allegory, horror, and fantasy.

I was thinking that this cross of like political history with faery tale is very effective, and was wondering what other crosses might work. Perhaps a French new wave sarcastic roasting of the bourgeois, crossed with an ultra-violent crime spree flick? Maybe a heroin-addiction descent into misery crossed with a Will Ferrell-esque fake pompous comedy?


01-04-07

Why not put toothpaste in those squirt dispensers like we use for hand soap?


01-04-07

Some quick thoughts :

Talking to my brother the economist, & reading the NYT Business section & the Economist, it makes me realize how completely out of touch these business guys are with reality. They generally cling to this religious belief in efficient exchanges and the glory of capitalism, and fail to acknowledge the many severe ways in which real markets are not ideal. For example, they pretty much all believe that profit-taking does not drive up costs & hurt the lower class, which is insane.

Similarly, it's occurred to me that people starting business now are very different than they were 50 years ago. People starting businesses now want to "go big" and get out of the business in 2-5 years and have it run itself or sell it. They understand marketing and scale and buzz and all that. 50 years ago you would start a business with the minimum capital possible, and the idea was to work in it yourself and have it as your job for the rest of your life, and to pass it on to your family. I think mainly this change is a symptom of the growing gulf between the rich and poor (and also the propensity of dumb rich people to pay 5X what they should if something is branded cleverly; currently if you stamp "sustainable" on something morons will shell out).

A big problem with medical establishment is that they intentionally keep information from consumers. They hide complaints & suits against doctors so you can't really judge the performance of your doctor. They hide their costs, charging wildly different amounts to different people and never giving you estimates up front. If they fail to cure you or mess up in surgery, they generally try to keep it from you, and still charge you for the services. Worst of all, they intentionally keep information away from the consumer about how to treat things, what the right treatments are, what the side effects are, etc. It would be very easy to provide this information, and they intentionally don't, because you could easily know more than your doctor about your illness, and they don't want that. Basically if you imagine everything that crooked mechanics do that you hate, doctors do all those things and worse.

I got another scam letter that tries to look like an official Honda letter offering me a warranty extension, but it's some random company and clearly a rip off. I wondered, who decides to start a business running scams like this? And instantly realized it's really not very far off from almost every business which tries to dupe consumers and get them to overpay for things they don't need.


01-04-07

Holy crap, I've got competition. There's a Belgian funk DJ that goes by "cbloom" and he's gaining on me in web linkage; I guess their main site is : cbloom+dvine . Can you imagine if I wasn't the first result when you search "cbloom" ? I mean really, the horror!!


01-04-07

Well, I finally went to the doctor today, and so far it's just a waste of money. I went directly to an orthopedist, I got x-rays, they confirmed what I already knew - it's not a dislocation or a break. You can't see soft tissue damage in an x-ray so I'm getting an MRI soon. On the plus side, this confirms the high quality of my self doctoring.

My health insurance is super minimal. That was a calculated risk I took, I'm pretty sure it was the right decision, but like every thing in my life I think I've made the right evaluation of the odds and the EV and gotten extremely unlucky. You have to have health insurance in the US, because you get the negotiated lower prices, and of course most doctors won't even see you without insurance. On the other hand, insurance is inherently -EV (unless you know yourself to be at higher risk that the insurance company thinks you are). If you have enough savings to cover health problems, you shouldn't have insurance. Of course this isn't completely true because our health system is so fucked, the establishment subsidizes some services (such as child birth) and makes up for it by raping people like me with ridiculous overcharges.

BTW the most awesome solution for your normal health care needs is something like Quick Health . $39 fixed fee in & out quickly, no muss, no fuss. Even if you have good insurance this is probably as cheap and much faster. Obviously you can't go for major problems, but to get antibiotics or immunizations or whatever its' the way to go.

My girlfriend and grandma and such are glad that I finally went to the doctor, but really it's a cop out, it's a failure, I didn't have enough confidence in my self diagnosis to be comfortable with my long treatment, so I went crying to the authority figure so I can be told what to do and not have to decide for myself. Yay me.


01-03-07

I wrote a little program to just ReadDirectoryChangesW and log every disk access. It was quite frightening. Windows XP does tons of crazy disk ops all the time, even if you're just browsing around it descends into subdirs and snoops around. Both of the browsers (IE and FireFox) are insane, you open one page and they touch 100+ different files, not just in the cache but in your settings.


01-02-07

So, the Lacie drive failure was indeed something in the case and the disk itself is fine. Apparently this is extremely common; basically the Lacie cases are totally defective and they haven't admitted it, and their customer support treats you like garbage. This is totally a class action suit waiting to happen if somebody wants to jump on that.

"SpinRite" is a nice product. You make a DOS boot disk and it can do all kinds of good low level hard drive maintenance & recovery stuff. I tried the free "Ultimate Boot CD" thing but I couldn't get it to work in any sort of decent way.

So, I need to buy a new external case to put my disk in. You can get them for $20 now (WOW), but I'd like to pay a bit more to make me feel more confident that the case won't crap out on me. It's hard to find one that's well rated and known to be solid. I think I'm going to go with the "Acomdata 509", which is generally high rated. I might go with the "Vantec Nexstar 3", though there's some indication that the Vantec doesn't take heat away from the drive very well. Of course spending a bit more for quality was the idea with the Lacie as well which didn't work. Lacie is the Mercedes of computer parts, it would seem. Vantec is the only one of the cheapo enclosures that is widely reviewed because they're the only ones who give out free hardware to reviewers, which of course totally skews the review portfolio.

All these cases use my old idea of making the case the heat sink. Dave Moore and I used to talk about how to make silent self-cooling computers. I had one idea to make a combine computer + meditation fountain thingy (for water cooling of course). The best idea was just to make the whole case of the computer out of copper or aluminum and have direct thermal contact between the hot things (CPU, etc.) and the case, so the whole case becomes a huge thermal disipator. In addition to being effective and silent, the case would look super cool. For extreme applications you can make the case like soft coral (corals "fans").

Conclusion : BOYCOTT LACIE , buy SpinRite.

Addendum : Lacie finally got back to me and they say the symptoms sound like power supply failure. I can buy a new power supply through them, but I think I'm just going to door-stop that thing.


01-02-07

My HP printer driver is stuck in Finnish or something. FUCK FUCK FUCK FUCK FUCK. Laatu Asettelu Toiminnot Vari. WTF WTF. digitaalinen valokuva !!!!!


01-01-07

My Lacie external disk just failed. Apparently that's very common, they're complete garbage. Yay, happy new year. I'm out of warranty so it seems like my best bet is to crack open the case and see if the disk works as an internal disk. Apparently often it's the Firewire junk or the power supply that fail and you can still use the disk as a regular HD.


12-31-06

God I hate New Year's Eve. Fucking expectations.

I got the new Firefox (2.something) and WTF it still blows chunks. Pages take much longer to load & format than in IE and they pop all over during formating in evil ways. I had to get "SetBrowser" and "FireTune" to even get it working right. I wish I could fucking use it because I want the better security and ad blocking and such, but I'm not sure I can handle the craptacularity. Also, you can't drag & drop url's between IE and Firefox which makes it impossible to use a hybrid browsing approach. Blah blah I know about initialpaint delay.


12-30-06

WTF, there's a "Google Music" search now !? Since when? Unfortunately it doesn't actually seem to be useful at all, since I can't tell it to only find full-length free mp3's.


12-30-06

The "Sunken City" in San Pedro seems pretty cool, I'd like to go. Nice blog here on the Ruins of So Cal


12-29-06

The color R=60 G=60 B=40 is perceived as "olive green". Apparently I have trouble with that color, I often see it as "brown". Of course it's really a desaturated dark orange, which is what brown is, but any brown that's even close to being even on green is perceived as very green. Perhaps this is related to the whole "we see green better than any other color" thing, but maybe not.


12-25-06

Merry Christmas! I'm bored.

I'm not around any really little kids this year, which sucks.


12-22-06

Deborah Solomon is a fucking condescending ignorant bitch as usual. She contends that numerical ratings for books are foolish, that you need the personalization of criticism. This is an egotistical fallacy. One of the things which is proved by Netflix is that people are really not very unique at all. A simple global predictor like (0.6 * movie_average + 0.4 * customer_average) gets around 0.99 RMSE on the movie data. The standard personalized predictors in the literature (which find most similar other users and take their ratings) get around 0.98; the very best in the literature get around 0.95. The most sophisticated predictors get around 0.90 RMSE now. That's a microscopic improvement over the simple average-based predictor, which indicates that people are far more the same than they want to admit. The reason people do not believe this is that they like to pretend they are so unique, so interesting, that their taste is better than the average shmuck.

Meh, most of my logic is flawed here. I'm a condescending ignorant ass.


12-22-06

The public transportation in SF is really good, it's super nice if you live in the city, you really don't need a car. Bart and Muni are great, but the buses sort of suck. There's no reason for them to suck and I propose two very easy fixes which would make them awesome. 1) Don't stop so often. Most of the bus lines through the city stop on every block. This makes the ride much slower and means they come to each stop much less often. This is not a small factor, it's like a 2X ride time factor, or maybe more. They could stop every 3 blocks. Presumably all this stopping is motivated by the disabled or elderly, but they had to walk to get to the stop anyway and a few blocks is not a significant increase. 2) Get rid of tickets/fares. A huge amount of the time is spent loading/unloading, and the majority of that is caused by tickets/fares. One problem is people have to get on the front instead of both doors because of fare checking. The other problem is just the clog at the entrance with people trying to run bills or show tickets. The amount of money taken in fares can't really be that significant. In my opinion the best solution would be to subsidise it completely from tax funds. This would be a big boon to the poor since the rich basically never ride the bus, which would be a massive aid to economic development. It lets people get to school or jobs more easily, and bus rides will not be abused since it's so unpleasant. Conservatives hate these grants for economic development, though they think massive tax cuts or business subsidies are justified to "stimulate the economy" (even though they don't).


12-22-06

We have set up Iraq to be a defacto Shi'ite country with strong ties to Iran. It's headed down that path and we don't have the will or the competence to stop it. As in all places, the "terrorists" are those who can't pretend to be part of the government. In Iraq, the Shi'ites are committing horrible acts of terror through execution and kidnapping squads which either dress up as police or are police; this government-sponsored terror is being more and more tolerated by the US because it provides "stability"; just in the days of Kissinger's realpolitik (and later when we supported Saddam), we will back the evil government if they can control the opposition and provide profit opportunities for America's businesses. On the other hand, the Sunnis are becoming disenfranchised and can see that as a minority they will be cast out of power, dislocated, and stripped of rights. Just like the Shi'ites they engage in reprisal killings and attacks against those who they see as threats, but since they don't have the cloak of government authority, they are the "terrorists".


12-21-06

WTF, why do reporters and newspapers even bother asking this administration questions anymore? You know they're just going to completely ignore what you're getting at and spout one of their stock phrases. In my newspaper the entire content of all the administration statements would be "The White House released more PR babble today." and then we'd move on to information about reality.

I hear a lot of women say that they admire or respect Condy Rice for her acheivements and for the fact that she's a woman with a top role in the government. That sentiment disgusts me. I find her of the same cloth as Colin Powell, who is also despicable. Someone who is clearly intelligent and rational is even more accountable for their actions, and by making themselves totally subservient to a madman they have given up all their integrity to further their careers. They know that they're lying, they know they're trying to cover up gross misdeeds and incompetence, they know their actions are leading to the death of innocents; sometimes you can even see it on their faces in an interview where they take a tough question and they almost wince before they shake it off and spout the awkward lies again. Someone like Rumsfeld I almost can excuse because he's clearly just loony tunes or drunk on his own kool-aid.


12-21-06

I hate Christmas shopping so much. First off I think of how it's all a manufactured shit-storm for retailers to make money; then when I go into a nice shop I feel so uncomfortable with the people that are hovering, can I help yous and such, sometimes I feel like I have to buy something if I give them a lot of trouble, then I think fuck them I'll show by not buying anything; then I get into this thing where I've passed up a few decent gifts, so then I can't settle for anything worse than what I passed up, I have keep looking for something better as it becomes more and more obvious that's not going to happen; then I start doubting if the person would even want this crap I'm buying, what a waste of money they probably won't like it they'll just get it and think how thoughtless I am and throw it in the back of their closet, or maybe they'll keep it but every time they wear it / use it they'll think "what a piece of crap" and think of me; most things that people would actually want they've either gotten for themselves or know how to get better anyway since they actually like them and like to shop for them and know the good stores; you can never buy anyone clothing because clothing is all about the fit and 99% of christmas gift clothing goes straight to the thrift store.


12-21-06

There's a hacky way of solving coupled non-linear systems which I've never really seen documented. The numerical people will puke, but it works incredibly well in almost all cases and is very simple to implement. I dunno, maybe this is well known but I've never seen it really described.

Say you have some function F(A,B) where A and B are vectors. You wish to solve F(A,B) = 0 , (or perhaps minimize an error E(A,B), so take the derivative to get F's). Do some algebra and substitutions until you have two seperate functions that depend only on the other variable :

A = G(B)
B = H(A)

Where G and H may be arbitrary nonlinear functions so you can't just plug them together and solve it. If B was the right answer for B then A =G(B) would give you the exact solution for A and vice-versa.

The hacky solution is basically just to set A from G, then B from H, and repeat. There are some simple hacks to make it better.

First imagine the solutions converging as a time series, so we have A_t and B_t. First of all it's important to have a pretty good initial guess for A_0 and B_0 (actually just for one or the other) because this method doesn't work if you're very far from the right answer.

The next hacky trick is to take less than the full step for the first few steps. A full step would be :

A_t_1 = G(B_t)
B_t_1 = H(A_t)
( A_t_1 should be read as A_(t+1) , it's A at the next time step)

Instead take a fractional step of size f (f in 0 - 1) :

A_t_1 = (1-f) * A_t + f * G(B_t)
B_t_1 = (1-f) * B_t + f * H(A_t)

This avoid oscillations and helps you settle in. You can start with f = 0.5 and quickly step it up 0.6,0.7. For some problems you might want to have "f" max out at 0.99 or something rather than 1.0

The next hack which helps a lot is to use A_t_1 instead of A_t when solving for B_t_1 :

A_t_1 = G(B_t)
B_t_1 = H(A_t_1)

This sort of lets you take a more exact step. If you want you can swap the order of A & B on every other step, or do some sort of fancier thing like :

A_int = 0.5 * A_t + 0.5 * G(B_t)
B_t_1 = H(A_int)
A_t_1 = G(B_t_1)

which is sort of like a centered-time integrator or something though I have no idea if that's actually better. Actually this whole thing sort of reminds me of implicit integrators.

Anyway, in practice this type of iteration converges incredibly fast. In problems where I've used Newton's method or Conjugate Gradient or something and it's taken like 500 iterations to converge, this iteration took 20 steps. Obviously it only works on certain types of problems and they have to have well behaved local minima, but when it works it works great.

To be a bit more concrete I'll give you a specific example. I've been examining the "weighted SVD", and one step of that is the approximation of a matrix with a rank-1 tensor (that's just an outer product of two vectors). The problem is :

Given matrix A_ij
and weights w_ij
Find vectors U_i and V_j such that the error
E = Sum_ij { w_ij * (A_ij - U_i*V_j) }
is minimized

If you take derivatives of E with respect to U and V you can solve for two equations :

U_i = Sum_j { A_ij * w_ij * V_j } / Sum_j { w_ij * (V_j^2) } = H(V)
V_j = Sum_i { A_ij * w_ij * U_i } / Sum_i { w_ij * (U_i^2) } = G(U)

Directly solving these is impossible (I think), but they're exactly in the form I need for my hacky iteration, and in fact it works super well.

I guess the reason no one likes this approach is that on general problems it can very badly fail to converge.

Addendum : this approach is also great for equations in one variable by substitution. For example say you have some evil equation to solve like :

3 + 7*x + sin(x) + sin(x)^2 = 0

Just set y = sin(x) and pretend you have equations in two variables. Now :

x = (- 3 - y - y*y)/7
y = sin(x)

Are the two equations and you just use the alternate stepping approach. The half-step iteration I described here converges to within FLT_EPSILON in 5 steps !!


12-19-06

You have two terms A and B and wish to combine them. They might be errors, predictions, whatever. There are several interesting possibilities.

First of all, generally the output should be "linear" in A's and B's. That is, sqrt(A*B) is good but A*B is not, because it gives you 2 powers of A or B. We think like physics and assume these things have units, the output should have the same units.

Secondly, we must be aware of scales. If A & B are scaled in exactly the same way so their numeric values have the same significance, then (A+B) is a good combiner. If they are not scaled the same, then any forms which add A & B are not okay. In that case you only really have one option :

sqrt(A*B) * G(A/B)

Often A & B have the same significance which means the output should be symmetric in swap A <-> B. In that case the G function has limitted forms. I haven't thought about exactly what they can be, but it has to be things like (A/B) + (B/A). In fact if A & B aren't on a similar scale even that form is not okay.

If we assume A & B are on the same scale, then additive forms are okay and it opens up some other options. (A+B)/2 is obviously your first guess.

2AB / (A+B) is an interesting combiner. If an A&B are in [0,1] then this takes (0,x)->0 , (.5,.5) -> .5 and (1,1) -> 1, and sort of penalizes when they're not equal. It takes (x,x) -> x which is a nice property of any combiner when you're trying to make a combiner that can stand in for (A+B)/2.

sqrt(A^2 + B^2) is another, and then you can take simple multiples of these, which gives you forms like (A^2 + B^2)/(2AB).

Anyway the point is that there really aren't very many forms to choose from which satisfy the basic properties and you can easily try them all.


12-16-06

Sean's released his game Beat It! from IGJ4; the concept is you play an arcade game and by doing so you make music, and hopefully as you play you just sort of get into a groove where you're making music and that's also beating the aliens. I don't think it completely works, but you definitely feel it once in a while and can tell the concept would work.


12-16-06

Volf's switching work is very hard to find on the web because he took his page down, and it hasn't been much publicized. The best links are at the bottom of Willems' CTW page , which in itself is a very nice page and gathers all the CTW papers which is great stuff (and also generally applicable to expert weighting).


12-16-06

How to combine two (continuous) expert predictions :

Say you have two experts. They make predictions which have a Guassian error. The expert provides both the prediction (the center of the Gaussian) and his best estimate of the accuracy of the prediction (the sdev of the Gaussian, which is the sqrt of the variance), call this P & S, so you have {P1,S1} and {P2,S2}.

We're going to make a combine prediction by guessing a weight for each expert (here W1 and W2). The combined prediction is then :

Pred = (W1 * P1 + W2 * P2) / (W1 + W2)

(or) Pred = P1 + (W2 / (W1+W2) ) * (P2 - P1)
Pred = P1 + F * (P2 - P1)
F = 1 / (1 + W1/W2)

This latter form is more useful in practice because it allows you to apply arbitrary scaling to each term so you can run them through an lsqr or nnet or whatever. (assuming W1 and W2 never go to zero; if they do then just choose the other pred)

The ideal combination of experts in general is a context-dependent problem, but a general good way to weight them is via the entropy of the prediction. If you knew the instantaneous entropy of each prediction, H, the ideal weight would be :

W = e^( - Beta * H )

for some Beta which in general depends on the problem. In practice, Beta = 2 is usually very good.

The entropy of a Gaussian can be analytically integrated. The answer is :

H(Gauss) = (1/2) * ln(2pi) + ln(S)

Where S = the sdev (sigma), recall. Since we assumed our predictors were Gaussian we can use this. But we can simplify :

W = e^( - Beta * H ) = C * e^( - Beta * ln(S) ) = C * ( S^-Beta )

Where we put a bunch of constants in C, and they don't matter because it's an overall scaling of W which divides out.

F = 1 / (1 + W1/W2)
F = 1 / (1 + S1^-Beta/S2^-Beta
F = 1 / ( 1 + (S2/S1)^Beta )

If we use V = S^2 (V is the "variance" of the Gaussian, or the MSE), and choose the common case of Beta=2, then we have a very simple expression :

F = 1 / ( 1 + V2/V1 )

or F = V1 / (V1 + V2)

and this is the same as W1 = V2 and W2 = V1

Which is in fact a very good way to combine Gaussian predictions.


12-15-06

The next big step in the internet is the unification of the web, blogs, communities, forums, and recommender systems. Recommenders like Netflix do a good job of correlating me to people of similar taste; that should lead me to their blogs (on topics I want); similarly if I subscribe to someone's blog on a topic, that should add metadata which improves recommendations for me. All the communities and forums are cool but they're totally isolated in these little pockets; it should be one internet-wide community where you can see your "friends" and such across web sites, eg. if I browse CNet looking at product reviews I can see my friends' comments and add forum posts right there, etc.


12-15-06

In the continuing needle in a haystack which is the mess of undocumented amazing things that Google offers, I just discovered code.google ; they have some super awesome things there, including SDK's to programatically interface with most of their stuff, as well as just useful code libraries such as perf tools which contains a very good malloc (supposedly). They also have their own "hash_map" which I imagine is pretty strong.

Related to my perpetual improved ranting method search, the new Google Blogger (now in beta) will have an SDK for code access, so I imagine it will be easy to write an app to throw raw text at it via Blogger GData


12-13-06

Some random updates from the ML field :

1. The FANN Neural Net library is actually pretty decent. It's missing a lot of functions you would want, but it's reasonable easy to write them yourself.

2. SVDLIBC is a nice little implementation of the old "Lanczos" SVD algorithm which is fast and good. It comes from the old FORTRAN math goodness. One amazing little routine I found in there is "Machar" which will deduce the properties of your FPU by doing a few simple math operations!

3. If you search google for things like "SVD learning unknown missing" you will find about 100 papers; this is a major field of research, a lot of it driven by computer vision.

4. Simon's spilled the beans on his Netflix approach. His description of the "GHA" (Generalized Hebbian Algorithm) is way way clearer than the paper. The Hebbian is actually a type of Neural Network, and I find this approach much easier to understand if you just think of it in terms of doing a gradient descent to optimize the SVD vectors. I also found that Gorrell has released source code for her own GHA Lab


12-12-06

Tutorial on SVD and LSI for use in search; which is roughly the same way it's used for recommender systems.


12-10-06

Don Mitchell has some really nice papers on computer graphics, mainly on sampling and aliasing (or the lack thereof). It's a pleasure to read well written scientific papers, they're very clear and elegant. I highly recommend reading a few even if you aren't directly working on those subjects, they will make all your work better.


12-09-06

I've been playing with Google Adwords to try to improve the results for my sister's Pilates Studio . Wow, Adwords is a real piece of garbage and it's the thing that makes Google worth $100 gajillion dollars or whatever? It's like totally impossible to work with and get good results. I want to do completely obvious things, like for example I'd like the site to be prominent if someone searches "Pilates" and they live in NY, or if someone searches for "Pilates NY" and they live anywhere, but if they search "Pilates" and live anywhere, then I don't want to pay a lot for an add there. I have zero ability to do that in Adwords, you can either completely location-lock your listing or not. There's no way to tweak your settings and test results, they sort of have a search test thing but it doesn't seem at all useful; I want to try tweaking my cost per click and such to see what kind of different placing it gets me and the response is not real time so you can't see how things change. The whole keyword system seems rather messed up too. You'd think Google has a smart search engine, your add should just be placed on searches where your site would have ranked anyway, just maybe not on the first page, eg. you should get synonyms and context and all that. Instead you have to manually enter keywords and you have to manually specify synonyms etc. Lastly it's charging her a lot of money that's not coming from search clicks; the other charges are from adds in the "content network" and other places, and I can't find out anything about where those ads actually are to tell if they're useful or not. All in all, I'm extremely un-impressed.


12-06-06

The original developer has redone the classic game "Another World" for Windows XP in high res. You can get the demo here . It's one of my favorite games of all time; I have no idea if it still holds up at all. The gameplay even at the time was pretty annoying puzzle stuff, with that digital movement ala Prince of Persia or the old Oddworld stuff.


12-03-06

Evaluating the "Need A Win" hypothesis.

A lot of people in Sports Betting use the motivation of the two teams as a basis for choosing the side to bet. The theory is that the team that needs a win is more likely to play to full effort and beat the spread. I've always been skeptical of these theories and thought I'd try to statistically examine how important this theory actually is.

I examined all the NFL games from 1999 to 2006. For each game I made a rough evaluation of which of the teams "needed a win". Only games in weeks 8-14 were examined, which is the heart of the playoff run. Teams that "need a win" were any teams with a record >= 50% wins and with a record worse than 8-2. Generally these are the teams on the bubble for their division or a wild-card spot. Note that this isn't a totally precise measure of "need a win" but it should be good enough to see some statistical correlation if any exists.

Here are the results. There are four categories :

cat 0 = both teams don't need a win
cat 1 = road team needs a win
cat 2 = home team needs a win
cat 3 = both teams need a win

The results are (home wins)-(home losses)-(pushes)
ATS = Against The Spread

32 teams, 1992 games

cat 0 WLP : 827-578-0
cat 0 ATS : 678-683-44
cat 1 WLP : 84-125-0
cat 1 ATS : 103-100-6
cat 2 WLP : 138-65-0
cat 2 ATS : 94-102-7
cat 3 WLP : 105-69-1
cat 3 ATS : 91-76-8

In particular look at categories 1 and 2. The team that needs a win is 263-149 vs. teams that don't need a win. However, they are only 194-205 ATS !!

Now, is that W-L record even significant? The fact is most of the time you have a "need a win" vs. "dont need a win" matchup it's a pretty good team vs. a very bad team, so it's no surprise that they win a lot more.

For comparison I did the same study, but just grouped based on teams with a record >= 50% against teams with a record < 50% , eg. winning teams vs. losing teams.

32 teams, 1992 games
cat 0 WLP : 219-136-0
cat 0 ATS : 177-169-9
cat 1 WLP : 186-268-0
cat 1 ATS : 224-213-17
cat 2 WLP : 328-111-0
cat 2 ATS : 216-211-12
cat 3 WLP : 421-322-1
cat 3 ATS : 349-368-27

Winnings teams are 596-297 against losing teams, which is actually a better ratio than the "need a win" vs "dont need a win".

It's possible that a better measure of "need a win" would reveal a slight statistical significance, but the absense of any here indicates it is not strong at all.


12-02-06

So, this whole show is on Youtube if you click around the Related links; it's amazing, they did a ton of songs : RadioHead at Le Reservoir

Also Radiohead Giglink Dump is full of great live shows. Check out Thom Yorke's solo at the Bridge School.


12-01-06

Something else I've never really seen written up clearly. We do ubyte to float color conversions all the time and don't really think much about it. There are two obvious ways to do it, and there are trade offs with each. You can either map the full range or preserve the end points, not both.


NOTE ON COLOR CONVERSIONS :

int colors are in [0,255]

Int pel "x" is considered to represent the span {x-0.5,x+0.5}/255

float colors are in [0,1]

int 0 -> float 0
int 255 -> float 1

Note that this way is nice in that it keeps the maximums the same,
 but it's bad in that it wastes color space.  That is, there's only 1/255
 precision instead of 1/256 which is totally possible.

Another way of seeing it is that the int range [0,255] is actually being
mapped to the float range { -0.5/255 , 255.5/255 } , that is, {0,1} is not
the full range.

One nice thing about this though is that it gives you some slop in your float->int.
As long as the float is in { -0.5/255 , 255.5/255 } you don't need to clamp.


/*
// more pure quantizer way :
// int value [i] represents the bucket (i,i+1)/256

inline int		ColorFTOI(float f)
{
	return ftoi(f * 256.f);
}

inline float	ColorITOF(int i)
{
	return (i + 0.5f) * (1.f/256.f);
}
*/

// way that maps 0<->0 and 255<->1.0

inline int		ColorFTOI(float f)
{
	return ftoi(f * 255.f + 0.5f);
}

inline float	ColorITOF(int i)
{
	return i * (1.f/255.f);
}


12-01-06

I found these really nice J2K slides if you want to learn about JPEG2000.

I couldn't find this info easily anywhere on the web, so here you go. Lossless color transforms :


Color transform notes :

JPEG-LS (LOCO-I) uses :

{RGB} -> { (R-G), G, (B-G) }

	and the inverse is obvious
	BTW this is very nice in that you can go 8bit -> 8bit using modulo arithmetic,
	many of the others require 9 bit YUV coefficients.

J2K (aka RCT aka CREW) uses :

{RGB} ->
	Y = (R + 2G + B)/4
	U = R-G
	V = B-G
	
	G = Y - (U+V)/4;
	R = U + G
	B = V + G

	(the divides are floored)

YCoCg is :
(similar to "RCT" but decorrelates better)

lossy :

	Y = (R + 2G + B)/4
	Co= (R-B)/2
	Cg= (2G - R - B)/4

	G = Y + Cg
	R = Y - Cg + Co
	B = Y - Cg - Co

lossless :
	(Co and Cg are effectively scaled up by 2)

	Co = R-B
	t = B + (Co/2)
	Cg = G-t
	Y = t + (Cg/2)

	s = Y - (Cg/2)
	G = Cg + s
	B = s - (Co/2)
	R = B + Co

In general with the lossless YUV type transforms, the chromatic coefficients are roughly 2X bigger than they should be in a perceptual space in order to have the bits to get back to RGB exactly.

Note that YUV was created for perceptual uniformity, NOT for decorrelation, so it's no surprise that you can beat it for decorrelation. In fact, doing the 3x3 KLT and sending the coefficients is totally worth it if you're doing compression. (actually YUV was created for some weird use in televisions)


11-30-06

The problem with poker as a profitable gamble is that you can't just up your bet when you find an edge. You find a good table or you're beating a certain limit - you can't just throw your bankroll at it, because to gamble bigger in poker you have to move up in levels, which is a harder game. Roughly the difficulty is proportional to the level you play, which makes it hard to roll big.

In sports betting, you can generally go big when you find an edge. (that's not completely true because books will identify you as a sharp and start giving you bad lines or setting limits, but I'll ignore that for now). The problem with sports is that you get very few gambling events and they're very high variance. If you're a good capper you win 55% or so of your bets. That's good EV, but in the NFL you only get maybe 30 bets a year. The variance on that is huge. In contrast, in poker you will often be getting 55% shots, if you play a lot you might get 10,000 a year, which means your profit is much more regular. Even if you go to something like the NBA where you can get your money on more games, it's still only a few 55%'s a day, whereas in poker you'll get maybe 100 a day.

The third option are the financial markets. There's tons and tons of opportunities to trade so you can smooth out your variance. The return generally doesn't decrease with investment (for my money scales, it does if you're getting into huge monies). So, that's the best of both worlds. The only problem with finance is A) high transaction costs, and B) the markets are much more efficient so the edges are smaller.


11-30-06

Computer NFL picks this weekend :

New Orleans San Francisco 7 ; bet NO

Washington Atlanta 1.5 ; bet WA

Cleveland Kansas City -5.5 ; bet CL

Denver Seattle 3 ; bet Den

Philadelphia Carolina -3 ; bet Phi

The last two games are messed up by weird injuries/substitutions so I'm laying off them.


11-28-06

We did a sort of mini "Indie Game Jam" at Chris's over Thanksgiving. The theme was "Sound" - sound for input, output, gameplay, whatever. The engine was actually a pretty nice sound in/out/mixer and hopefully I'll be using it for some projects in the future; as usual everything will be released open source.

I had a lot of ideas for games, but didn't really like any of them. A few were sort of decent and obvious, like :

1. Make a game where your play creates a song. Basically different user actions or environmental objects create certain sounds or turn on different tracks. By playing the game correctly you make a cool song. The true "synesthesia" moment of brilliance would come if you could play either by just doing the visual gameplay things, OR purely by closing your eyes and trying to create a cool song, and if you create a cool song that also beats the shooter/platformer/whatever.

2. Make a game with sound input where doing the gameplay causes you to make sounds that are cool and/or feel like the play. The way I was thinking was similar to #1, for example you could make a "beat boxing platformer" where different beats make you jump or duck or whatever, then the level sends things at you and you wind up making a sound track by playing. Casey had a really cool idea for a variant on #2 but I won't out it here, hopefully he'll actually finish the game and it will be cool to play.

Anyway, maybe I shoulda done something like those, but they just felt like the same old game. Most video games feel like a series of rote/mindless tasks that are presented to the user in sequence. I'm sick of making those and playing those, and this was really just another of those in different garb.

So, I tried to play with some toys that would feel like different experiences, and mostly failed. On the plus side, now I know my arm is okay to type again, though I was irritating it quite a bit.


11-28-06

The computer picked GB to beat the spread on MNF and we just barely made it. I should've trusted my own analysis of Chi-NE and layed off the computer bet. It seems like the computer is solid, but it misses the intangibles of matchups, so it's worth using my own judgement to lay off sometimes. I'm not using my old system of really researching and looking for good matchups which I used back in 2000 or whatever, I don't want to put in all that time right now, so I'm seeing if a computer-aided picker can do well.

I'm going to write myself my guidelines. My computer system guesses the spread that it thinks is the "true spread". I want to decide to bet based on the position of the TS and the VL (Vegas Line).

1. If the TS and VL are on opposite sides of the zero, I like betting the Vegas dog to win. I especially like it if it can mean betting an underdog on the moneyline where I get +150 or some nice odds like that.

2. If the TS is close to zero and the VL is big, eg. if the TS is like 1 and VL is like 4, I again might bet the dog to win if my judgement of the intangibles is that they have a good shot. If not I drop down to the next rule :

3. If the TS/VL are on opposite sides of the 3 or 7 with at least 2 points of difference, bet the spread. eg. if the VL is a 9 and the TS is a 6, bet the spread. Teams will often win by exactly 3 or 7, so when you can bet across the 3 or 7 you're getting good value from the spread. On the other hand if the VL is a 6.5 and the TS is a 4, probably don't bet unless the intangibles really like the bet because you're not crossing a 3 or 7.

4. To make the intangibles a bit more concrete : A) Prefer betting home dogs. B) Prefer betting teams that "need a win" vs. teams that are either coasting to the playoffs are completely out of it. C) Beware of teams whose past performance is not a good indicator of their true quality, eg. if you judge they've gotten lucky in a lot of games. D) The computer isn't aware of news or injuries so mainly just avoid games where those are big factors.

Update : this week there seems to be a huge edge betting the Ravens to win vs. Cincinatti.


11-21-06

In the past 10-15 years, the investment philosophy of following the pack and jumping on bubbles has been incredibly profitable, assuming you got out somewhere near the peak. We had the dot com bubble, real estate, oil, gold, etc. People who have profited from these are often people who know nothing of smart investing and are cocky bastards. It's easy to dismiss them and these investments, but maybe there really is a valid strategy here. In this age of get-rich-quick day traders and soccer mom investment clubs, the markets are very swingy and people tend to pile on gaining sectors which pushes them up. Some investments might be very profitable even though you know they are over-valued; as long as enough of the populace is driving them up, you can ride the wave up and sell out.

In this theory, you could even make big money from those stocks that you get in spam emails. Assuming you're one of the first buyers, even if it's a junk stock people will send it up and you can ride the bubble. Certainly you can make money by buying a penny stock and then talking it up all over the internet, which is essentially what major banks have been doing for years.


11-20-06

Computer NFL picks :

Chicago +3 against NE
NO +3 against Atlanta

bet both to win at about +150. Personally I hate betting Chicago against NE but this is what the computer likes.


11-19-06

I put a post on my wordpress blog for people to comment and hook up about GB : here


11-18-06

I recommend the "Mission Park" Rhone at T.J.'s. Spicy and balanced, light finish, about $5.

Watched "Miller's Crossing" last night. Good but rather pointless. Has that Coen brother unrealistic staged feel; their dialogue is really awful in that everyone is a charicature and noone ever says things like that, but their dialogue is really awesome in that the lines are clever and perfect for their surreal noir world. Anyway, that's not my point. The Gabriel Byrne character made me think about the way smart bad ass guys always are in movies - they think of a plan and then go with it. What they don't do is think of several plans, think of the advantages and disadvantages of each, compare those to inaction, think of how it affects other people, etc. get some advice from others, then make a decision. They just come up with something make a decision and then figure out how to make it work. I know it's movies and it's ridiculous but I think it's a major problem in the way I run my life. The truth is you can make any decent plan work, so just pick one and do it.


11-18-06

The way everyone talks about stock and pricing past performance is completely wrong. The NYT says housing prices from 1950 to 2000 have gone up 3.5% per year in San Francisco (inflation adjusted). That sounds like you're getting a 50 year average and that should be a pretty stable number. In fact it's not at all. People do the same thing with stocks, they look at the average rate of return over an X year period. The problem with this is that it's incredible sensitive to exactly when you pick your start & ending point, which means you're incorporating a huge random factor.

Imagine your value(time) function was a sine function. The correct average rate of return is 0. However, depending on where you put your start and end, it could be largely positive or negative. In particular, with SF housing, if you looked at 1950 to 1998 you would see maybe a 2% annual gain. If you looked at 1950 to 2005 you would see a 5% annual gain. The problem is that the time span we're looking at is not very large compared to the magnitude of the noise. Take the ending price minus the starting price is super sensitive to the short term noise.

A much better way is to best-fit a line through the prices and take the slope of the line. This is way less sensitive to the edge effects. There are probably even better statistical ways, but it seems nobody does this even though it's totally obvious and everyone should do this.


11-18-06

Computer's NFL picks :

Cleveland +4 vs. Pitt
San Francisco +4 vs. Seattle

This is using a system where I only bet when the computer-predicted spread is across the 7,3, or 0 from the betting line.


11-18-06

In the long view, one of the really disastrous and disturbing aspects of the Bush presidency has been the systematic destruction of the executive agencies of our government. Almost across the board, leaders were appointed based on political favors and idealogy, people who were incompetent or unqualified, people who didn't work with their department or their beaurocracy, people who caused severe damage to the agencies. The agency leaders are obvious - people like Rumsfeld who is obviously intellegent but harmfully ignored his own people and created nasty infighting over power, obviously at FEMA and Homeland Security, we talked a big game about making the US safe but appointed a bumbling figurehead, at PBS & the EPA Bush appointed people who were intentionally trying to hurt the implementation of the laws that govern those agencies, at the FDA the appointed board acted repeatedly on ideological or industry-favoring grounds against their scientific recommendations, in the few departments that had qualified leaders (State & CIA) they were cut out of the loop because they didn't fall into step.

The fact is, democrat or republican, the people who are elected are generally totally unqualified to run the government. They usually have little experience (especially in this age when any record is a bad record). Even with experience government is a huge complex problem and you need long-term specialists, the beaurocrats who run the agencies and really make government work. Those people have been devalued and cast aside, ignored, and have resigned in droves. This has already been detrimental to the functioning of government, but if it becomes a pattern it could be even worse.


11-18-06

If you like capitalism and self-interest and such you should love the populist movement in Venezuela. Often populism is cast as "liberal" and socialist, anti-free-market. In fact the opposite is true, populism just means the people are voting in their own best interest, which is what they should do in an Ayn Rand idealogy. For far too long people in American have voted very much against their own best interest, which wickedly distorts the action of the state. One of the candidates in Venezuela is offering direct money back from their oil income; yeah, that's a cheap move and that can revolve into a self-destructive cycle of pandering for votes as well, but at least the politicians are at least trying to win votes by appealing directly to the people, instead of these purely image-based campaigns of lies and no benefits.


11-17-06

I just watched a debate on "Newshour" about whether the current housing slump is going to lead to a recession or a similar major problem. The guy on the recession side made lots of valid points and sounded reasonable, the guy on the "it's fine" side sounded like a dot com optimist, full of nonsense and rationalization. That's a very bad sign. I'm now pretty sure the US economy is headed for the shitter (unless we stumble on another piece of big luck similar to the internet boom, like if somehow all Linux software self-destructs and China has to buy into Windows, or maybe some US company invents and patents a teleporter or some other ridiculous market-changing invention).

The housing cheer-leaders say that spending is strong, job creation is strong, the US economy is flexible, and also that this isn't a housing bubble, it's a valid correction based on high demand for limited space. First of all, the valid pricing idea is nonsense. We haven't suddenly run out of land. Housing prices haven't changed significantly in the last 50 years and suddenly there's a huge shortage? Every time in the past that housing has shot up it's crashed back down to almost zero change inflation-adjusted.

The reality is that consumer spending has been powered by housing (the saving rate has been negative indicating people are taking loans against their houses). 33% of job creation since 2001 has been in housing or related fields, and perhaps even more so due to the trickle-out effects. Even despite that real spending power has decreased and we haven't actually cut unemployment. More and more people are not even showing up on the unemployment numbers because they're not seeking employment. Furthermore, our government has been desperately doing everything it can to stimulate the economy - interest rates have been rock bottom low, we severely cut taxes, both of which should have been huge short-term boosts to the economy, and have only just kept us at a sustaining growth rate (our GNP has to grow several % a year just to match population growth). The government's been doing massive debt spending, which again should stimulate short term growth and generally leads to constrictions later on.

We're now in a position where we can't really do too much more for stimulation. If housing does start to lead us to recession, our vault of reserve measures is depleted, we can't keep lowering interest rates, spending on debt, cutting taxes.

Anyway, as I've written before I'm still not sure how to play this. I do have a lot of money overseas already but maybe I should move even more.


11-16-06

All this mobilizing, canvasing, marching, all this shit is the wrong way to advance a cause. It can create some short term response but doesn't create long term powerful change. All major political shifts happen in response to massive world events - economic depressions, military coups, wars, etc. - this has created the big socialist movements. What created the Republican shift of 1980-2000 ? Partly it goes back to LBJ and Vietnam, the cold war of course, the oil embargo, and some arrogance of the coastal liberals, the job loss and fall of the middle of the country. How then do you create real change? You create the events that cause people to really react. Just scandals and horrible dishonest crooked behavior don't do it any more. Of course people will just swing over to the other party. To get any improvement, something else is needed. They need to see that the system is totally corrupt and needs to be changed.

"Crooklyn" is a god awful movie. If you just keep playing clips of songs from the 70's will it make it fun to watch? Yeah, it sort of does, but the complete lack of non-superficial story and characters is too bad for all the cool style and "authenticity" (what?) to cover. Anyway, the first 2 custom made "Crooklyn" hip hop tracks are hot yo . Somebody find me the mp3's.


11-16-06

Dan made Monkfish last night. It really is a lot like lobster. Monkfish is a cartilage fish and only the tail is edible, it looks like some weird evolutionary left-over. You have to be very careful to not overcook it. I recommend a simple preparation treating it a lot like a steak - sear it first, then remove from the pan and saute onions, mushrooms, and fennel in the pan, add a bit of wine and stock, reduce a bit, put the monkfish back and just simmer until done, which is *before* the flake point. It becomes rubbery and non-lobster-like if overcooked at all.

We also got some Muscat grapes at farmer's market. They're quite amazing, very sweet, they taste just like the wine! Everyone was going crazy over all the persimmons, but I just don't understant it, I find them quite awful. I had a persimmon tree all those years at Alrita and didn't even bother to eat them off the tree.

My arm is getting much better, but I seem to have caught another cold !?!? WTF. Dan seems to get them at work and bring them home :( So I'm in awful shape again. Sigh.

In other news, I got a wicked Trojan by clicking around porn sites. WTF. It makes me angry how unbelievably broken IE and Windows is. It shouldn't be so easy to run malicious apps. Anyway, System Restore seems to have gotten rid of it pretty easily. All of my many Anti-Virus apps didnt detect it. It was a DLL in windows\system that inserted itself in winlogon. If you edited the registry to take it out of winlogon it would put itself back in.

I put some money on some football games partly out of boredom. I couldn't resist betting the Colts at -1 even though that's the "public" (sucker) bet and all the sharps are on the Cowboys. I believe Romo is probably over-rated because we just haven't seen him tested yet and everyone thinks he's amazing, and Parcells has really made awful decisions of late. If the Cowboys just run the ball and keep it low scoring, they will win. If it's a shoot-out, the Colts win.


11-13-06

The stupid American government system has this property that if you can ever get 51% of the vote, you can do incredibly extreme thing that piss off the other 49%. You can also very easily stay in power by drawing district lines, giving favors/contracts to big donors, using your office for PR, etc. In a reasonable system you would have representation proportional to the backing of the people, instead we have a very fucked up threshold system where 51%->100%. In the US system, things seem to work better if power is split by the two parties, eg. one holds the presidency and the other holds congress, but that fact is simply an indication that the system is badly broken and too boolean.


11-13-06

I've been really disappointed by the movies I've rented recently. Damn Netflix won't give me my history but some have been Ararat, Spanking the Monkey, Dressed to Kill, Old Boy, Ocean's 11, Happenstance, ... all have been really boring and pointless, the only highlights being a few erections. Even the brutal violence and shocks of Old Boy just felt gratuitous and inhuman. I've been trying to think of the movies that I actually really like so that I can rent ones that I actually want.


11-12-06

The killing and beating of nonviolent protestors in Oaxaca has gone almost completely unreported in mainstream US press. Partly because of the smoke screen of elections but also because the powers in the US dont like to report on the corruption and violation of civil rights by the government of Mexico.

Similarly the Beit Hanun/Hanoon Accident/Massacre is a huge big deal in Israel and the Arab world but has hardly received any attention here.


11-10-06

Daniel Negreanu uses the "astrologer's fallacy". He calls out people's hands semi-randomly based on good guesses just like anyone would. Each time has maybe a 1/4 or 1/10 chance of being correct. When he's wrong you just forget it, but when he's right it's very memorable and seems amazing. You wind up remembering that he seems to name people's hands very often. Of course TV helps him because they show hands where he gets it right.


11-09-06

Part of the problem of course with pointless/counterproductive wars like Iraq is that it makes it impossible to exercise intervention when its necessary, as it might be in Iran, or NK. It is impossible, not just logistically, but politically, which will last 10-20 years. Not that I think intervention is a good idea, but having the option & credible threat is valuable. And intervention might have been necessary in a situation like Lebanon.

On a related note, I'm sickened by the stupid fucking American electorate. They vote D because the war is going badly. WTF you morans. If the war happened to go well and the economy happened to swing up they would've voted R. You go all in with 23o preflop and happen to win against AA, most americans look at that result and decide you made a good play and get to wager their money.


11-09-06

Half the reviewers on Yelp need to get punched in the face. In fact in general we'd be much better off if computers and phones and cars could taser the user. Look, if you're a vegetarian and you went to a place called "Joe's House of Meat and all we got is fucking Meat" it's your own damn fault, and don't fucking give them a low rating. Also if you went to a restaurant drunk and thought the greasy food hit the spot, you probably shouldn't write a review. Finally if you go to a tacqueria and order a Carne Asada taco and complain that all you got was some dry beef in a tortilla, that's what you fucking ordered you stupid gringo!! You have all had your internet priviledges suspended. You will now wander aimlessly without the web to guide you and accidentally wind up in a real dive bar, not an ironic one, and get your head bashed in by real blue collar guys who don't find mocking GWBush at all funny.


11-09-06

I'm gettin sick of comedies that are just about how miserable and awful human beings are. Unfortunately the best comedies of this era are in that category. Some key examples are The Office and I'm Alan Partridge, two of the best comedies in the decade. To some extent Curb is in this group, though it's a bit more situational/whimsical. Contrast to previous eras, like Monty Python which started a wave of pure Absurdism carried on now by Family Guy, or of course eras when things like puns, double entendres and clever turns of phrase ruled. This modern "humanity is rotten" comedy is sort of taking the idea at laughing at our own faults to an extreme that's quite unpleasant.


11-09-06

It's sort of odd that there's still no really good image compressors. I mean "good" like PAQ or RK are good on text/exe data - really fucking good. In comparison the image compressors are super primitive. I guess the big problem is that for an image format to be useful at all it has to be supported in IE, Photoshop, etc etc. and since Windoze is such a broken piece of garbage there's no modular data abstraction layer, every app implements its own set of codecs. In a proper OS apps would just open an image and a codec library would handle it.

For lossy coding, the literature is quite strong and J2K would be fine, but I guess it has patent problems cuz the design committee was full of cock-munchers where each company forced in bits that they had patented. For lossless image coding there really isn't even super strong literature. The "MRP" method seems okay, but it's incredibly obvious how to make a big gain in practice : use Volf switching or something like that to blend in a dictionary/text coder which will work well on binary/artificial images.


11-08-06

OMG I'm starting to get really depressed. I can't fucking do anything, partly because I got the flu on top of the shoulder. Even computer use is so frustrating. I'm so fucking bored and sick of TV. Fortunately it shouldn't be too much longer. It seems like in a week or so I'll at least be typing and walking around again. Making it all worse the flu makes alcohol unpleasant so I can't just drink my days away, all the TV gives me a headache, and Dan is getting annoyed with me. I think if I ever had a severe injury where I was immobilized I would try to kill myself. Of course the worst thing would be something like "The Sea Inside" where you cant even kill yourself anymore.


11-08-06

How to do image enlargement with wavelets :

Do a float wavelet transform with the lowest-entropy wavelet (D97,CDF22,Haar,whatever). The imagine is now an LL and a series of bands, HL1,HL2,...HH1,...

Fit the linear relationship of bands : HLn ~= C * HLn-1. Fit the best C for all n. Seperate constant for HH and LH.

Use this linear relationship to add new LH,HL,HH bands with the scaled data. Perhaps also apply an additional user-specified scale. Do the inverse transform. The resulting image is 2X bigger in each dimension.

This will do things like zoom hard diagonal lines perfectly due to the wavelet zoom scale invariance property.

ps. this doesn't actually work because Band (n) to (n-1) correlation is very strong for coefficient magnitude, but not for signs, which are hard to predict.


11-08-06

TiVo dropped a software update on me which has done some awful thing where it now collapses episodes of the same show in a folder. This is yet another instance of their software sins. First of all, the modern phenomenon of self-updating software is god awful and I wish it would end, though I know it won't. Software doesn't get old or wear out, there is no particular advantage to getting newer versions, it should be up to the user. Second, they have broken one of my basic design rules : don't change something in your UI unless there is a significant benefit. Users get familiar with the UI. This familiarity has a huge amount of value. In order for a change to be good it must have greater value than the familiarity. Making small or neutral changes is extremely foolish, and yet major software packages do it all the time. Photoshop seems to completely reorganize its menus with each version and even renames common operations. Visual Studio does that and also changes te default keyboard shortcuts!? wtf. I feel tempted to write a manual on software design, but plenty exist already and the fact is that people making these design errors wouldn't read it anyway.


11-07-06

One interesting thing to me about the 2+2 poker community is seeing what they do outside of poker. A lot of the people are involved in money making schemes. Lately of course this is often real estate, but the small time operators do a lot of funny things. They scalp tickets to big concerts, they do things like buy up PS3 pre-orders and resell them on ebay, they go to salvage + police auctions to buy things and resell them, some of the guys own & stock soda machines or ATMs. Some of them make quite a lot of money doing those things.


11-05-06

I'm gonna try to write a cripple's summary of ML. In all cases I care about supervised learning. That is, given a big sample of parameters x and ouputs y you have the training set {y_i,X_i} where X is a vector. The goal is to find the function f() which minimizes the error |y_i - f(x_i)| over all samples. This is a regression problem but you can easily convert it into a "classification" problem or use a different error metric or whatever.

Searching for arbitrary f() is NP hard. In fact, you can see that finding an optimal f() is equivalent to the Kolmogorov compressor. If we use an "MDL" error we think of f() as a coder; to reproduce the output y_i we have to transmit the specification of f() and also the residuals (y_i - f(x_i)).

For all the approaches we will be approximating f() as a combination of simple functions. You can of course get arbitrarily close to any f() by using a linear sum of enough functions. One thing I've come to realize is that all the ML techniques are very very similar. Almost all of them have a form like this :

f(X) = Sum[j to M] w_j * h( A_j * (X - L_j) )

Where h() is some function, "w" are weights, "A" are parameters, and "L" is a location in the same space as X. There are M terms. Possibly there are other transforms or linear combos or whatever, those issues are sort of minor (but messy).

Anyway, all the schemes come down to how you pick these terms and optimize them. Almost always you pick your basis functions h() in advance. This could be your Kernel, your fit function, whatever. Common choices are the sigmoid or radial gaussian. Obviously you could just put a delta function at each sample, but that would give you a large model that would not generalize well. So you sort of want that smallest/smoothest model that fits the training set. This is a very hacky problem with ML and you really just have to tweak and test by cross-training.

Neural Nets are a silly way of talking about basic linear algebra. You choose M and h() in advance and then optimize the parameters by greedy gradient descent. Obviously you try to choose the smallest M possible to get a decent fit on the data, but you can only do this by trial & error with cross-training. Also the gradient descent can get stuck in local minima and you get no gaurantee of maximum margin or other ideas that the model will generalize well. The nice thing about neural nets is they're pretty simple and straightforward. Unfortunately NN's have been conflated with all this brain modeling and circuit diagram nonsense which makes it much harder to just see the linear algebra.

SVM's are actually extremely similar, but instead of greedy optimization, they set up a nice constrained optimmization which solves for maximum margin. The L's are not free parameters but are instead points chosen from the training set (called the support vectors). Instead of controlling M directly, you set a parameter which controls the model size vs. closeness of fit tradeoff, and the SVM solves for the best M. The h() can only be functions that work as "kernels" but that's not too bad, it's a large set.

There are some nasty problems with SVM's. The parameter that controls model size has to be tweaked by cross-training which is hacky and time consuming. For clean seperable data svms do an awesome job of picking a minimal model (eg. for linearly seperable data with a plain dot kernel they pick a single perfect plane), however for noisy or ill fit data, M can get arbitrary large (up to N the training set site), and the time to train and test scale like M*N which is very bad if M ~ N. Finally h() must be chosen in advance and many factors you might want to tweak are actually implicity hidden inside the choice of h() such as the relative scaling of parameters. Most simple Neural Nets are equivalent to SVM's, and the SVM will find better solutions if you can make it behave the way you want.

Another method is local regression. Here the L are chosen to be some regions, and then some sort of standard regression is done on that region, such as linear regression, or splines, or whatever. The regression is easy so the whole problem is the choice of regions. The standard ways are K-nearest-neighbors, K-means, and Decision Trees. These are all pretty solid yet all very hacky in their own way. The big problem is that just like kernels they implicitly rely on a distance measure between points. It's crucial for the similarity of samples to be proportional to distance. With lots of different complicated parameters this is ill defined; you can do thing like SVD or PCA on the paramets and then take distances in that space, but that actually may or may not be good depending on the data. In fact if you knew the ideal distance metric you would have the solution to the whole problem. DT's cut up space to define the regions. With Decision Trees most people just build axis-aligned trees and try all possible splits. This is slow and also ignores the fact that you could get much better splits by trying all possible off-axis splits. Ideally you would use an SVM to pick the optimal split at each level.

K nearest neighbors is pretty simple and solid, of all the methods it seems the least "tweaky" and requires the least a priori knowledge of the data, but in practice it is very sensitive to choice of K, choice of how you define "nearest", and you should probably use a distance-weighting and it will be sensitive to that. As usual these things can only be tested brute force by trial on cross-training.

The choice of distance metric or pre-transformation of the parameters is important, as is possible elimination of useless parameters (usually after SVD). Unfortunately this is basically a hacky trial & error thing and can have huge affects on the model's performance. Also with Neural Nets the exact pre-ops and post-ops you perform can make the problem either much easier or much harder to model which strongly affects performance. Basically if you know a lot about your data (like it basically responds linearly to parameters, or it's generated by independent sources on the parameters, etc.) you can fit it well, but if you don't you will do badly and there aren't good ways to "learn to learn".

Fully Bayesian approaches are much more sound, but are computationally infeasible for anything but trivial models because they basically sum over all possible models & parameters weighted by the likelihood. Basically rather than guessing the params or optimizing them, you give them probabilities and sum on all possibilities. Check out the NIPS tutorial here Basically you correctly consider the model+parameters to be unknown and use the probability that they are the true model.

In general the more modern techniques like SVM don't perform significantly better on complex data than just something like a good local regression. I should add that the truly modern techniques seem to be blend models which are provably good as the number of blends gets large, things like AdaBoost with ensembles of decision trees, etc. It appears to me that these are computationally infeasable except on trivial problems.

Way too much of the literature compares their method to some garbage old method, like plain old k-NN with no distance weighting or outlier discarding or local distance metric. The other big sin is to do comparisons in some really complex domain like image matching where a huge amount of performance comes from how you preprocess the data and take advantage of the specific nature of the problem.


11-04-06

So I've read like four books and a hundred papers and now have a strong grasp of collaborative filtering and machine learning. Basically CF is garbage that was made by bad engineers who didn't understand ML. All the true strong modern approaches are more theoretically-sound ML approaches. I should add many people in CF know this and have been advocating standard ML techniques for a while. For example Pazzani has some good papers and one suggests using an SVD->ANN. I don't like the details of his approach, but thebasic idea of SVD->ANN is solid, and just one example of "data reducer"->ML.

Unfortunately even robust ML approaches like SVM are full of unsolved and unsolveable problems which you have to address through "tricks" and guesses and brute force optimization.

Anyway I've decided on my overall approach and believe I'm on the right track. Now I just need my arm to heal so I can type agian. I'm not even trying to code lefty, it's too frustrating and requires too much chording.

One nice online resource is http://www.learning-with-kernels.org/ ; it's a really good book and they put the best chapters online. Chris Burges and Radford Neal also have great tutorials online. I have yet to find really good Neural Net material, there's a ton of garbage on Nets and it's hard to sift through. The Wikipedia pages on all this stuff are good jumping off points, they have good intros then links out to more info.


11-03-06

I'm having a lot of fun learning about "machine learning" for Netflix. I'm working hard at it, and Dan asked a sage question : couldn't you get paid to do work like this? In my experience, no, you can't. You could maybe find a technical engineer job where you do this kind of learning for a few weeks, but then you have to implement it and deal with real world crap issues for the next year. Or you could be a professor where you do this kind of learning, but then you have to specialize and get into some arcane pointless detail; that wouldn't be so bad if you didnt have to spend half your time writing grant proposals or whatever. In theory there should be cool jobs at a place like MS Research, but I've heard tales that the reality of working there really sucks.


11-03-06

I looked for a secure text editor so I could easily keep my personal/password/financial files encrypted. There are a lot of them, but they all appear to have been written by morons - the keep the file encrypted on disk but the editor uses standard windows edit controls which are trivial to scrape. Even if they called DrawString that would be very easy to scrape. The only way for them to be hard to scrape is if they do their own text drawing, which of course would be easy enough. I bet all those password manager things use edit controls too.


11-03-06

So, I'm getting pretty good at typing lefty. I'm still totally out of commision and going mad from boredom.


10-28-06

I urge you all to boycott the ieee and acm. research papers online should be free.


10-25-06

I'm seeking reading material since I can't type. Help on :

"supervised learning" , via nnets or whatever, perhaps CART decision trees. find f() to minimize |y - f(X)|.

categorizing/clustering. related to DT problem. how to find planes or rules to split a huge set of N-d points into related groups that minimize some overall cost function.

svm


10-24-06

I crashed my bike and have a separated right shoulder. I'm typing lefty so will probably not reply to your email.


10-20-06

So, for basic Collaborative Filtering, the strongest thing from the literature that I've found is "Slope One" . If you think about it for a few seconds you'll realize various ways to improve their algorithm. In the end the whole collaborative filtering problem comes down to choosing a set of supports which you guess are well correlated to your desired prediction, and then choosing weights for each of the supports. Finally you might apply corrections if you can make estimates of the expected deviation.

I now seem to be getting around 0.920 and there still a million little areas for improvement. Every time I check off one "todo" I add five more as more questions are opened up (the vast majority of which are dead ends but need to be explored).

One thing's been troubling me lately - I've tried various schemes and thrown out the ones that weren't as good. Perhaps that's wrong though? They aren't as good over all the data, but maybe they're better on portions of the data, and if I could choose that portion of the data, they would help overall. This was part of the surprise of Volf's compression work - adding in predictors that are much worse overall can still be a huge win if they are selected on the portions they do well on. With CF it's intuitively obvious that you have these similar-item based predictors and similar-user based predictors. In general similar-item does better. However, on certain queries you might be able to guess that they will be more user-correlated than item-correlated, so you can user your similar-user predictor on that case and win.


10-20-06

Anyone know about "expert advice" (learning), combining predictors, etc. ? I know a bit about this field but it's a huge field and sifting through the literature is proving difficult. In particular it seems most of the problems are posed as incremental "games" where you get a time sequence of data and get to see if you were right or not after each guess. Also I'm trying to find Paul Volf's "Switching" paper from DCC98 , but it seems to be only available for pay in the IEEE library. That's especially annoying cuz I think I own the DCC98 book but I have it in my storage locker :(


10-19-06

Old Betty Boop Cartoons are like super cool. They're not funny, but they're surreal, the perspective is warping and things are changing shape all the time, and most of them are like music videos, set to a song with everything in the video sort of pulsing and dancing to the tune. A bunch of them have music & voices by Cab Calloway which is the fucking bees knees.


10-19-06

So out of curiosity I just tossed together a trial run of my rebuilt Netflixxer and got an 0.925 , so that's encouraging.

I was thinking that to have any chance of winning I need to get some team-mates / helpers & use the power of the internet. I don't want to deal with signing people up & working out contracts where we'd have to negotiate shares & so on. I was thinking I'd do something like just give away my app, but make people agree that they won't do their own submission or something. Then I at least might attract some hobbyists who want to play with the problem and they might find some improvements or try some ideas that are beneficial.


10-19-06

I just realized that cosine similarity is very closely related to MSE similarity.

Consider two vectors A and B. The "MSE" of their difference is just |A-B|^2, the "rmse" is |A-B|. You can define a scale-invariant version of MSE as (|A-B|^2)/ab (where a = |A|, b = |B|). I'm not sure this scale invariance is a good thing or not, in practice is does weight things to the weightings, but people seem to like it because it's "elegant". Anyway, the Cosine law tells us that :

Cos(theta) = (a/b + b/a)/2 - (|A-B|^2)/2ab

The second term is familiar, the first term is this weird sort of ratio average. In the special case of unit vectors a = b = 1 this reduces to

Cos(theta) = 1 - (|A-B|^2)/2

So for unit vectors a "cosine" similarity and an MSE similarity will produce identical orderings. For non-unit vectors, we have this ratio term. The ratio term is minimized when a=b, so it gets bigger for length differences. In a sense it cancels out the length difference from |A-B|. Consider two parallel vectors of different length. The MSE metric considers these very different, but cosine says they are the same.

In practice with movie ratings there are some very weird things that happen here. The "A" vector is the vector of user A's ratings over N movies *subtracted by his average rating*. This subtraction is important, but it does a weird thing. It makes the vector of random direction (by definition of average), and generally makes it close to zero. If you look at a subset of movies that he rates close to average, his vector will be very close to zero and very random. The "B" vector is the same thing. If you now consider two vectors that are close to {0}, the MSE error between them is of course tiny, but the cosine between them is completely random. Obviously that's not a very sensible weighting. Similarly, consider the "scale invariant" version of MSE. You're dividing by the vector lengths. What that does in practice is make the error much larger for vectors near zero. (dividing by length does sort of work for Cosine because larger cosine = better, the opposite for mse)

Despite all this the "Pearson" correlation for user-user similarity does in fact seem to perform well.


10-19-06

It's interesting running this Netflix stuff. I've got a 3 GHz P4 desktop and a 1.7 GHz PM laptop, both with 1 GB RAM and fast disks. Some of the operations are slightly faster on the desktop, but others are *much* faster (like 2X) on the laptop. A lot of the ops are very memory bound, running over lists of 50k elements and doing indirection from one big list to another big list.


10-18-06

I just randomly stumbled upon Matt Mahoney's PAQ data compressor, which perhaps is the state of the art these days. I would say it follows in the tradition of PPMii-PPMZ/Rkive, though he doesn't really cite those as he apparently started from a neural net background which is weird. He's doing a lot of the things Malcolm Taylor invented in Rkive, such as using funny non-linearly-preceding contexts (eg. not just ABCD, BCD, CD, D, but also "xBxD" and "AxCx" and so on). The PAQ implementations that win challenges seem to be tweaked out to all hell, which is sort of lame, but that's what you have to do to win in practice. There's some very elegant stuff he's done. There's a short paper about it on his page but I can't really find a thorough description anywhere where he talks about different things he tried & why he's doing them like he is. Alas. He's doing bit-by-bit coding instead of byte-by-byte which I always thought was much more elegant (you don't have charactes and escapes, just 0's and 1's) but I always got worse performance with bits rather than bytes; I guess I was leaking some efficiency in each coding op which adds up when you do 8X more coding ops.


10-17-06

I'm fascinated recently by the fantasy of super-hot muslim women who have to wear a full burka so no one ever sees anything except their eyes. I think it's replaced my pregger fetish.


10-17-06

Okay, so I tore apart my NetFlix app and redid some of the basics with more thorough investigations. I can now definitely confirm that most of what's done in the literature is just really wrong and dumb. It reminds me a lot of the way the Compression field was back in the 80's. Somebody came up with some decent ideas way back when, and everyone just keeps using parts of that algorithm even though it was just a rough/poor initial guess. People keep introducing fancier ideas but they keep the broken base. I don't mean to rag on the researchers and make it sound like I'm better than them. They come up with beautiful algorithms that I never would've come up with. But then they just don't try very hard. Like the classic example with PPM was the escape frequency. They tried 1. They tried 1/2. But what about 0.67 ? What about a number that varies based on the context depth & occupation? anyhoo...

Some of the current leaders have finally spoken up in the Netflix forum. They seem to all be using some sort of standard academic bayesian/neural net learning system. This could be hard to beat if they're good & have powerful server clusters to do the training, which they presumably do at universities.


10-17-06

I don't get why the poker sites give you these freaking rewards for play that you have to spend in their stupid store. I know it makes it seem like you're getting more value, eg. they can give you something with a "value" of $200 when it only costs them $50 or whatever, but I don't get why they don't just give you the option to get the cash value, or even less. Even freaking Wheel of Fortune in the bad old days had the cash option. You'd get your $5000 to spend on "prizes" and you could get all these garbage over-priced things or you could get a much lower "value" choice in cash. Gimme the cash!


10-17-06

Okay, is it just me or is the "Similarity Fusion" paper completely BS ? (sigir06_similarityfuson.pdf). They initially claim that they're going to combine the prediction from similar users & similar movies based on their confidence in each (which sounds good & reasonable), but then they introduce hard-coded constants and basically just lerp between the two using these fixed constants.


10-17-06

I had some garlic that was starting to sprout. You can still use it when the sprouts are small, and actually the sprouts are tender and mild, quite delicious, there's no need to cut them out. Anyway, I had too much garlic so I stuck this head in some soil and it's growing like gang-busters; it's shot up big sprouts in just a few days, it's probably the most fun thing I've ever seen growing, because you can almost see it happening in real time. It's next to my computer and I look back over every few hours and it's grown another centimeter !!


10-17-06

I've noticed two really odd things in the CF research papers so far.

1. They all use this "cosine" similarity measure. The cosine similarity is basically the dot product of the normalized vectors of ratings. What that means is that two movies with ratings like {2,2,2} and {4,4,4} are considered to be identical by this measure. Now, that's an okay thing assuming you're compensating for movie average, since if you subtract the average off both they are both {0,0,0}. However, the standard way of making an item-based prediction does NOT subtract off the average! It's reported in the literature as

Pred = Sum{other items} Weight(this,other) * Rating(other item) / sum of weights;

If you were to correct for averages it would be :

Pred = Average(this item) + Sum{other items} Weight(this,other) * (Rating(other item) - average(other item) / sum of weights;

But that's not what they report.

2. The exception to this (not correcting for average) is the "Similarity Fusion" paper (sigir06_similarityfuson.pdf) which DOES correct for averages, however, they specifically claim that their method in the case of item-only weights reduces to the standard item-based predictor which it in fact does NOT. It reduces to the 2nd term above which is the average-corrected item based predictor, which is quite different.

It seems to me the cosine weighting is very bad if you don't correct for averages, and yet the standard in the literature is to use the cosine weighting and not correct for averages. WTF. The standard "Item-Based Collaborative Filtering" paper (www10_sarwar.pdf) does try using a linear slope+bias to shift ratings between items, but they find that it hurts performance with lots of neighbors or dense data. Weird.


10-16-06

So, fucking FoxIt PDF Reader is a lot faster than Adobe's, but it's FUCKING MODAL when it's drawing the page, you can't scroll & zoom while drawing, which makes Adobe more usable in practice because when it starts drawing some ridiculous diagram of the inside of an engine or something I can page-down to get to a page that doesn't take seven years to show.


10-16-06

I just found this set of Good Collaborative Filtering Papers (haven't read any yet). I'll release my Netflix code at some point if/when I decide I have no hope of winning.

So, I've read through a bunch of the literature. It seems like I independently invented most of the same techniques. Some interesting tidbits : I'm currently using 2 similar movies & 2 similar users, while the accepted good # in the academic community seems to be 30 (!!). (using more doesn't increase my run time at all since I'm looking at all of them anyway to pick the best 2). Also, the way they're comparing vectors is generally a dot product, while I've been using like a Euclidean distance. I'm not sure if that will make much of a difference. They also do fudging on the similarity to penalize small intersections and such; I have similar fudging and I've found that the details of those fudge factors are enormously important in practice. I can't tell in the literature if people have really investigated different similarity functions, or everyone is just using the one that was published first and has become standard.

One cool approach is the "Context-Boosted Collaborative Filtering" paper, though it seems completely unusable on large data sets because the first step is turning the sparse matrix into a full matrix by filling in the gaps with content-based predictions. That is, it would fill in the full 17k x 480k matrix of ratings, which is 8 billion ratings, which aside from taking about 8 GB of storage (not bad), would take around 1,000,000 hours to compute.


10-14-06

Parallel parking on a hill is so damn hard with a stick-shift. I did it today and I totally burned up my clutch, trying to inch back and forth on the hill without slamming into the cars around me. I've seen people here who do it like pros in spots that look way too small for them to fit. On that note, fucking people who park in the middle of the curb are asses and morons. Also, if you're parking at the end of the curb, so many fucking retards will come up as close to the next car as possible. Dumb fuck, you're at the end of the curb, you should park as close to the end as you're allowed - you're setting the end justifier, don't waste space at the end and just pack the line tighter. Goofs.


10-13-06

I've done everything reasonably obvious with a linear predictor. There's a nasty trap in tweak factors, in that you are somewhat hard-coding a best fit to the data into your app with the tweak constants. That's fine as long as the data extrapolates well - eg. the fit on the "probe" is also close to the best fit for the "qualifying", but that will only be true if the data's not really strange and your clusters that you fit for are big enough. Any time you fit tweaks that only apply to a handful of elements you are in serious danger of fitting them to the training set too much and not really fitting the general case.

BTW I find the whole "Prize" aspect sort of annoying because it means no one is talking about their approaches publicly. Of course, even in fields where there is no prize, people are still super-secretive, because they always think they have some brilliant idea which is going to make them famous in the academic world, or get them patents and make them rich, blah blah blah.

Oh, I still could use some volunteers to run the heavy process if you have a fast machines that are idle.


10-13-06

In algorithms like this Netflix dealy, something I found back in the compression days is that there's two steps really to algorithm design - first you create a good general structure based on theory of what you think should happen. Then you find lots of little tweaky cases and start doing lots of heuristic "clever" things, and often those sort of finishing touches wind up being huge improvements. This can perplex the algorithm developer in two ways. First of all, you can sometimes have a pretty poor basic algorithm, but you tweak it and do all sort of cleverness to it, and it actually winds up performing really well. The problem is if you try other algorithms that might be much better, they will appear worse because you haven't put all the time of tweaking into them. You can dig yourself into a local minimum where you have all this fancy heuristic junk which really helps your poor algorithm, but doesn't help the better algorithm. The other funny thing that can happen is that some algorithms that are "better" are really hard to do these clever tweaks with. In data compression you have algorithms like CTW which are really beautiful theoretical structures and certainly base CTW beats base PPM, but PPM is intuitive and easy to play with and you can build all sorts of other ideas into it and you can wind up beating CTW because you can isolate the inefficiencies and attack them with various schemes.

One thing I'm surprised at. 25% of movies fall into a category of "super predictable" cases. In these cases, I gave the same rating to the two most similar movies, and the most similar user gave the same rating to the query movie. The RMSE of these queries is still 0.85 ; I would have thought these cases would be more predictable.

Part of the problem with making a really amazing predictor is that the ratings are so discretized. If somebody felt like a "3.5" about a movie, they will sort of randomly shove it to a "3" or a "4" depending on how they feel, but the difference is a whole 1.0 which is big.


10-13-06

My Netflix contestant is close to Cinematch now, and my program is still mighty dumb. The predictor is quite sensitive to little things and you do have to be careful not to cheat on the probe data, because the probe queries are already in the conditioning set and they can help you a lot in subtle ways. For example, if you let them be included when computing the average rating on each movie, it actually helps a lot. I was doing that and got 0.91 rmse and thought I was the winner, but knew it was too good to be true.

Having the probe data contained in the training set is actually really annoying, because it means I can't fairly precompute very much based on the training set. For example, if you precompute the "most similar" other movie for each movie, you will be using the probe data as part of that, and that helps a *TON* which totally throws off testing on the probe.

There's one case maybe y'all can give me ideas on. It's surprisingly common to have a movie for which I can't find any good "similar" movies. These "red herring" movies wind up contributing a lot to the RMSE score because they tend to be predicted badly. Right now I'm just using the average rating of them as their prediction, but there must be something better.


10-13-06

The car right next to mine got "booted" this morning and it freaked the hell out of me. It's right in front of my window so I saw them drive up in the DPT van and pull out the boot and walk over towards my car. I was thinking "wtf wtf" my heart was racing, and then I saw some other poor sucker get the boot. Phew. Parking is such a nightmare.


10-12-06

I just realize that I say "k" for thousands of dollars, when I guess most people say "g", as in "I made 2k today beeyotches!". Party Poker is cutting off US players tomorrow and it was going nuts today. Wildest day of poker in my life. I got super unlucky for a long while there, and was at -1k for the day at the worst point, then went on a +3k heater.


10-10-06

Anybody know how to make FireFox not do the thing where it incrementally loads & formats as it goes? I hate the way some web pages open and then reformat over and over as more elements load in. I just want it to wait until the necessary info for formatting is loaded and then be done, which IE mostly gets right.


10-10-06

Cracked pepper really is way better than ground pepper on steaks and it's very easy to do.


10-09-06

So, I have a Netflix contestant that gets 0.978279 on the probe set. That would be on the leaderboard in like 10th place or so at the moment, but it's behind CineMatch and well behind the leaders who are now beating Cinematch (but still way off the 10% improvement needed to win). I'm guessing that the people who have gotten close to Cinematch know something of the standard algorithms in this field and have implemented one of them. LOL I guess that's a good approach. My app is really slow despite fitting all the data in RAM. I haven't run it on the full qualifier set yet, just the probe which is like 5X smaller, and it takes me a full day to run on the probe.


10-06-06

I allocate two 300k buffers and Windoze says my app is using 480k of memory !? WTF !? I have plenty of RAM free, is it putting part of my allocations in the page file? When I pull the files in with Memory Mapped Files, I'm not sure what's happening. It all seems to work cool, but I'm very suspicious about what's happening. I wish it would just use up all my damn free memory on the app I'm running !!???!!!!

Anyone know anything about Memory mapping? Is there a reason I should memory map instead of just reading the whole file into big buffers?

Also, does anyone have a powerful machine that I can run a heavy process on for a long time? I estimate it will take about 200 hours of CPU time, 2 Gigs of RAM is necessary.


10-06-06

Damn, I just found out about Sufjan Stevens playing in Berkeley. He's a corn-fed god-loving hipster music magician!!! The shows are sold out and people are scalping them for a fortune :(


10-06-06

I got my first non-trivial predictor working on the Netflix data. It's a simple single support predictor using the one most similar movie that user has previously rated.

RMSE for guessing each movie gets its average rating : 1.051938
RMSE for Netflix' Cinematch : 0.9474
RMSE for simple one-movie predictor : 1.037155

So, that's not very encouraging. Obviously I knew it wasn't going to be close to Cinematch, but the improvement over just using the average for each movie is microscopic, and cinematch is like light years ahead.

I'm starting to think that beating Cinematch by 10% is all but impossible. It's a lot like data compression where the closer you get to the true entropy the harder it is to make advances. The Netflix Prize FAQ justifies their 10% criterion by saying the difference between the "average" predictor and Cinematch is about 10%, so they want 10% more. That fails to address two major factors : "average" is actually not an awful predictor at all, and the next 10% is way way harder than the first 10%.


10-04-06

I'm assuming it would be a good thing to load the Netflix Prize data into an SQL DB like Postgre. The thing you want is to cross-index; for each movie you want the list of everyone who's rated it & their ratings; for each user you want all the ratings they've assigned to movies. You could do this easily in C just by having two linked lists on a {user,movie,rating} data item. The only reason for me to not just do it in C is that it's a ton of data and might not fit in memory. Plus I guess learning SQL might be useful some day.

Anybody who knows Windows - what's the best way to hold an 800 MB data structure on a machine with 1 GB of RAM ? I'm assuming if I just hold it in RAM I'm going to page like crazy and get killed, cuz Windoze is Stoopid. I guess I could write my program in basic C and boot to command line Linux or something ridiculous like that but that's not fun.


10-04-06

Random job ideas :

Postman. Apparently very hard to get. I like walking around
Parks worker. Similar situation, I like planting plants and such, being outside
Apprentice Carpenter. I've seen some adds for this; I have no skills but would like to learn. I could offer to work the first few weeks with no pay
Bike shop retail or repair. Again my bike repair skills are only passable not expert, but I'd like to learn.
Cook. I'd love to be a chef but that's a long hard road and being an entry-level prep cook or something is pretty brutal
Other ?


10-03-06

Dick Fucking Cheney is hillarious. They got the timing with the body language really well sync'ed. Also Pacino's Cuban accent is so lolololo.


10-03-06

The Netflix Prize is pretty interesting. Basically they're trying to get someone to improve their recommendation algorithm and they pay you if you succeed. It seems they set the payment goal to be inaccessible, and their T&C means even if you don't reach the goal they own your algorithm. Anyway, I'm gonna check out the data set and see if I can do some mining and see what happens.

At the moment the site seems to be a mess. The documentation sucks. The forums are full of people who don't know how to program asking nonsense questions.


10-02-06

"The City of No Limits" was really good. It almost felt like it could've gone more surreal and turned into a Borges story. There's a wonderful tradition of surreal movies from Spain and Latin America, things like "Sex and Lucia" , "Abre los Ojos", "The Devil's Backbone", etc. - movies where the narrative gets lost, we're not sure if the characters are dreaming, crazy, or if it's really happening and it's the rest of the world that's not seeing it.


10-02-06

My sister's NYC pilates (plus) studio is now open; linky . She's been teaching pilates and studying the body/wellness for a long time. NYC is one of those unique ecosystems where you have all these super-rich people and then you have a whole class of semi-rich people that feed off of them by providing them services/treatments. It was a huge investment to get the business all set up, I'm impressed & glad.


10-02-06

Okay, i'll summarize the online poker legislation and what's going down for anyone who cares.

The new bill was tacked on the "SAFE ports" bill by Bill Frist primarily. It will soon be signed and go into law. Basically what it does is makes it illegal to provide online gambling or transactions to online gambling. It does not make it illegal for an individual/consumer to partake of said online gambling. Offshore sites will continue to operate. It will be illegal for US banks or other funding instruments to provide transactions with them, so the hard part will be getting your money in & out of them, but of course there will be ways. Another problem is that major publicily traded gambling companies will be shutting off their US customers because of this. This is a bit of a funny thing, because they're foreign companies they aren't directly affected by this law, but they have to comply with it if they want their stock traded in US markets, and so on and complicated stuff I don't really understand. Anyway, it seems all the major publicly trading companies will soon be shutting off US customers. That includes PartyPoker/PartyGaming, PokerStars, 888 (BetonSports), etc. There are other major private companies which will continue to allow US customers, the biggest being Full Tilt, Ultimate Bet, etc. While the law will go into affect immediately, the bank transfer prohibition won't go into affect into the bank regulatory body draws up the detailed regulations, which will take a while.


10-01-06

I'm having a bad downstreak in poker and I'm probably gonna have to sell some stock. In the mean time I've been pondering what it's like to be broke. There are so many brutal expenses that I just sort of roll my eyes at, but if I was truly broke working a minimum wage job they'd be cripling. That extra $500 the hospital charged me even though I have insurance, the $100 in traffic tickets for bullshit non-violations, what do you do if you just don't have that money? I guess you don't pay it, and then it adds up with fees, the creditors come after you, and your life goes to shit.


10-01-06

I just realized my domain should've been "rles.com" Do you see why?


09-29-06

Went to the Bike Film Festival linky . It's pretty awesome; Lo Fi crappy video and audio, but I love the rocking bike films. I might go to another one tomorrow to see some of the other stuff. Bike = Love.

I almost got a ticket today cuz I forgot to move my car for the street sweeping. I saw the little meter maid guys swoop into the street ahead of the sweeper, dropping tickets like bombs. I was playing poker in my pajamas and had just open raised my AK (fuck! AK = monies!), I scrambled to find my keys, then almost ran out without my house key (bad news, doors auto-lock, locked out, no fun), ran out and got to my car just as he was putting a ticket on it. Fortunately the guy was cool and took it off for me. Fucking street parking is a nightmare.

Some new developments mean the online poker ban might pass after all. I guess I'd have to get a job of some kind pretty quick because my finances aren't so hot these days, I need a regular income.

Late news - yep, the online gambling ban passed. It's not actually law yet, but it got tacked on the port security bill which is going to be passed for sure. On the plus side, I didn't actually make my big stock bet against the bill by buying Neteller or something. I'm sure Neteller stock is in a nose-dive now.


09-27-06

Crab season in SF starts November 15. Apparently they fish the hell out of them and the stock is depleted by Christmas. After that you still see "fresh crab" sold on the market, but it's not local, or you see "local crab" but that was in deep chill. So, it'll be a month of gorging on all the crab I can get from the great Sun Fat.


09-26-06

Fuck everyone, you're all a bunch of douchebags. ps. Bill Clinton is such a fucking bad ass, if I was a White House intern I woulda sucked his cock.

In related news, for those who don't know, ESPN's coverage of WSOP is a ridiculous distortion of reality. It's just like Fox News or some other agenda-based "news", they're trying to tell some story and they pick and choose bits of the truth and create characters and tell the story they want. Just for example - early on they showed Negreanu playing well. In reality he was playing a wild loose game, his chip stack was going way up and way down all the time; ESPN mainly only showed the hands he won which makes him look great, but he donked it up horribly in tons of pots. The other huge distortions are Jamie Gold related. Jamie was being a major ass and bluffing a LOT at the table and they mainly don't show it; he also didn't give any money to charity.


09-26-06

Not all open-ended straight draws are the same. I've talked about a few cases in the past but there are some really common ones that are very strong differences.

1. When hitting your draw can complete a higher one card straight. For example if you have something like 78 and the board is 9TQ. It looks like you have an open-end straight, but hitting a J is not great because any one-card K is a higher straight. Your draw really sucks in this case.

2. When hitting your draw makes a one card lower straight. For example if you have AT and the board is 9JQ. If you're up against another T and you hit a K, he will also have a straight, but you'll have the nuts and likely get paid off. In this case your draw is better than a normal straight draw because your implied odds are very good.


09-25-06

The OS should have more user-specified options for apps at the OS level. For example I should be able to prevent apps from stealing focus one by one. You should be able to select an app and pick "OS Options" and you should get "Sound level 0-100%" which modifies the apps sound, Popups on/off which prevents it from popping up windows, steal focus on/off, as well as lots of security-type options like "allowed to write disk", "allowed to send network" etc. WTF this shit is so basic, how can I not have this.


09-25-06

It's really amazing how people can tell they're being looked at. I sit in my window and look out at the street; I'm hidden behind my monitor, the drapes, and a big potted plant, and yet people 100 feet away on the opposite side of the street will almost always look right back when I stare at them.


09-24-06

Near the bubble of a tournament I shove AQ to try to stay alive. A big stack calls with AT. That's a horrible call for him, it's very -EV. However, it's also -EV for me, because any race near the bubble is -EV. How can it be bad for both of us? Because it's +EV for everyone else, and in particular very ++EV for the very short stacks. Sigh.


09-24-06

There are some interesting poker dynamics that happen in multi-way pots which don't occur heads up, where you can use the fact that your opponents are aware of each other to your advantage.

Three handed on the river. You have a huge monster hand (like a full house) and are 2nd to act. The first player bets into you. There are many cases where it's best to just call!! For example, if the first player is a nutty bluffer and his betting pattern tells you he likely has no hand at all, so he won't call if you raise. If you raise, the 3rd player will see a bet and a raise and be very scared and fold a lot of good hands. If you just call, however, he sees the bluffer jam and you call - that makes you hand look marginal, and the 3rd player may call or even raise with mediocre hands like top pair.

Three or more handed on the turn, you have the 2nd nuts but are afraid the first nuts is out. For example, maybe the board is a 4-flush and you have the K of suit, it's quite likely the A is out there but you're not sure. Another case would be if the board is two-paired (like 55TT) and you have the lower house. In both cases you're not afraid of any draws and you're either dominating or killed. You're first to act - you should check!!! If everyone checks through, or only a maniac bets and everyone else folds, you know your hand is very likely best. However, if you check and there's lots of action you can just dump your hand. On the other hand if you bet you could get a few calls and still have no idea if you're ahead. It's key here that you can't get outdrawn, and it's on the turn so if you miss value on the turn you can still get it on the river, and your hand is not big enough to bet the turn & river.


09-24-06

Amazing breaking news in David Brooks column from last weeks NYT : human behavior is largely genetic, governed by our evolutionarily adapted behavior patterns and the chemical balance of hormones. Basic urges and behavior tendencies are largely animalistic, and differ between men & women, & races. Holy crap! In related breaking news : most humans are fucking morons who think the most obvious and intuitive things are worth writing books and columns about.

ps. I've noticed a trend recently which I find quite sickening. There are more and more books being written which are basically one-sentence concepts padded out to full book length. Nobody actually reads these books, the whole point is so that the author can go on talk shows or write newspaper articles and be known as the "author of such and such". Somebody might write a book called "How College Killed The Family" about how education reduces marriage rates; one paragraph of information padded with life stories and such garbage, then they do the talk show circuit where they just say their one sentence over and over, and are basically used as a springboard for the host to show their own feelings on the subject. I should write some of these books and just fill them with blank pages, that way I can be an "expert" and spout my nonsense.


09-23-06

How can I write data to disk quickly/incrementally and be sure that it is safely being flushed if my app crashes?

What I'd like to do is have my file handle open, prep all my data for writing a whole valid record, then flush out that record using an OS call that I know can't fail (or if it fails, the whole thing fails, never a partial failure). I'd like that write to be buffered, HOWEVER, I want the buffers to never flush partial records, or if my app crashes, I want Windows to completely flush the buffers to disk. Worst case if the computer is struck by lightning and suddenly powers off, I don't want partial records to be written. (I guess if the HD was actually in the process of writing when you power off that's going to screw you no matter what, but I want other failure cases to not happen).

eg. say my records are 3000 bytes long. Pretend Windows flushes buffers in 4k chunks. I write two records, the first 4k is flushed and the last 2k of the end record stays in the buffers. Now my computer powers off. The disk is left with a partial record written which is very bad.

I can't really find good information on how Windows manages it's file buffering and when exactly things are flushed and how it handles catastrophic shutdowns. It just says "when an app is terminated normally the buffers are flushed". Umm, what exactly is "normal" and how do you handle abnormal terminations? I think I can write my own buffered layer which is aware of the requirement of only writing integer number of records. In my case it's not a huge problem if I simply fail to write some records under abnormal termination, that's just losing the last few records, not corrupting my database.

Addendum : Two ideas :

1) Use "rename" ; basically write to a temp file then swap it ( details here ). My data file is huge (500 MB), so I'd have to double-buffer or something like that; there's some nasty step where you have to catch the mirror up with the other side which itself could fail.

2) Write separate files then occasionally collate to a copy. Instead of appending to one file, you have your base data file, "F1", then write all your records from a session to a new file "F2", etc.. each time you start up you read F1..FN. Occasionally you collate, F1+F2+F3.. -> Collated. At the end you rename Collated to F1 and delete F2->FN. If you ever crash while writing a file it might be corrupted and you just kill that file from the set.


09-21-06

Windows programming tip : you should basically never use SendMessage() , you should use SendMessageTimeout() instead. If you SendMessage() to an app that is locked up or for some reason not processing messages, your app will become locked up, which is lame and dumb.

In fact you should probably just drop this in any place you use SendMessage() :

LRESULT SafeSendMessage(   
	HWND hWnd,
    UINT Msg,
    WPARAM wParam,
    LPARAM lParam)
{
	DWORD dwResult;
	if ( SendMessageTimeout(hWnd,Msg,wParam,lParam,SMTO_NORMAL,5000,&dwResult) )
	{
		return dwResult;
	}
	else
	{
		// timed out !
		// (not sure what a good error value is here, return values for SendMessage() seem very nonstandardized)
		return (-1) ;
	}
}

edit : I guess (0) is a better failure return because some important messages use TRUE/FALSE for success/failure. Stupid non-standardized message return values, this definitely is sucky. If your app is exception-safe, then a throw there is probably better because no return value works.


09-18-06

+$1000, -$1600, +$600. Yay poker.


09-18-06

I got yet another bill from the hospital today. This is now the 4th bill and I'm going to fire bomb those mother fuckers.


09-17-06

Driving between here and King's Canyon I listened to a lot of news radio. I love listening to NPR but couldn't get it everywhere, and of course NPR is also full of garbage like that insufferable Terry Gross talking about the existential dilemma in the post-modern deconstruction of The Howard Stern show or some similar ridiculous intellectualization of purile entertainment. Anyway, I listened to some extremist talk shows. Most of the talk shows on the air are extreme right wing or Christian talk shows, especially out away from the cities. Most of us liberals live in cities where you'll have 2-3 NPR/Pacifica type stations, and then a few nutter stations scattered around, but not much. Out in the country, you usually have 2-3 Christian/right-wing stations, 2-3 music stations, and that's it, no other voices. Anyway, being in San Francisco, we also have several ridiculously left-wing stations as well.

Now, I consider NPR to be slightly left of "rational" (I won't use the term "center", since it's center of what? rational = unbiased, and NPR is slightly off; I think their new segments are if anything slightly right of center, but some of their talk shows are leftist). "Air America" is pretty far left and most of it is intolerable. In SF we also have lots of local liberal stations and they're quite awful. The liberal biased shows are usually a bit more subtle than the right wingers, but I find them equally disgusting. Their main tactic is the "harrumph", the verbal eye-roll, as in "We know the President cares about the black community, harrumph". It implies that the broadcaster and the listeners are in the know, that we're wise to the evil ways of those Republicans. They don't actually say anything on air, but they make constant implications that evil is afoot, like "you know who sponsored Zedillo, who passed NAFTA - Halliburton - uh huh" , WTF, first of all that sounds like nonsense and even if it's true it's an implication of an unrealistic massive conspiracy. They don't ever actually come out and say it, just these constant implications that aren't backed up, and it's very annoying.

Anyway, the right-wing/Christian radio is different, and for me it's almost funny. I listened to one program that was going on and on about how the ACLU was trying to destroy America. Not that they simply were destroying America, but rather that the whole goal of their actions was to intentionally bring about anarchy and hedonism and chaos and sin to bring down the good Christian way we should live. They'd site things like their campaign to remove ten commandments displays, then "you know what's next, they're trying to stop the Supreme Court from opening it's sessions with 'In Gods Name' , oh my, lord help us". Wowza. Another station was going on and on about how the courts are this horrible unconstitutional force which keep thwarting the will of the people. They mentioned Prop 187 which was passed in CA and then a court overturned as unconstitutional, they ranted about how the liberal courts are taking away the power from the people, etc.

As usual, listening to the right wing talk shows scare the crap out of me. The things they say are just funny, but to imagine people out there listening to it and nodding along just terrifies me. It's funny to me that for the most part the liberal shows are almost guilty about getting too ridiculous - they try not to say their insane thoughts too explicitly because they fear being held accountable; the nutty right wingers just go all out. The weird thing about modern America is that those nutty right wingers aren't simply dismissed and ignored as crackpots, instead they redefine the "right" and the "center" becomes somewhere way out of whack.


09-17-06

Really Really Free Market is right near me, I guess the next is Sept. 30, I love the idea, though it's not as useful as a ShareSpace.

Kevin's Hikes (previously linked) has the best bay area hikes guide.


09-16-06

Bob Ney (the confessed corrupt Republican recipient of Abramoff and others' gold) mentioned that he received several thousand dollars of casino chips from a business man. I'm an idiot, I never realized casino chips must be a *huge* common way of passing money around off the books. "business man" goes to the casino and cashes in $100k or so for chips, he gambles a while and pockets $10k, then goes back to the cage and cashes out $90k. On his books he declares a gambling loss of $10k. He goes to the congressman and passes the chips. Congressman goes to gamble and buys in for $100k. He takes the chips out gradually and leaves up $10k and declares it gambling winnings. Now, the casinos would have this on tape, but A) pocketting chips is common and not necessarilly shady, people do it all the time as just a way of holding their chips, and walking out with chips is mostly not stopped, and B) the tapes are only on a 24 hour loop or so, it's not like they'll be on file for people to go back and examine. It's a nice clean way of passing money off the record.


09-16-06

Fuck, I'm really sick. Dan's been sick since I got back from King's and now I have it. Life sucks when you're sick.

Oh shit, Dan just told me her friend she hung out with a few days ago has Pneumonia. With my new found hate for the robbing fucking scammer hospitals it looks like Jim Henson's fate for me!


09-16-06

The best investments I see in the 10-20 year time frame are : In the US : geriatric care and health care, old folks communities, especially more active and yuppie type of stuff for the aging boomers, non-surgical medical centers, "active" retirement communities, etc. Global : post-manufacturing in India & China, companies that will ride the boom as they transition to white collar, IT companies, higher end consumer/retail, outsourcing & manpower companies.


09-16-06

Greetings from the Salton Sea has some super cool photos, but the site is so awful it ruins the viewing experience.


09-15-06

I file as a pro in California, which means I pay a hefty state tax as well as self employment tax. My total tax burden is greater than 50%, which obviously I'd like to reduce in some sort of legal way. These are the best things I've thought of :

1. Move to a state without income tax, or that doesn't tax poker. Anyone have a list?

2. Get a job so I'm not "pro" and thus don't pay SE tax. eg. it's much better to make 70k at a job + 70k at poker rather than make 150k at poker.

3. Move to a country that doesn't tax gambling. Anyone know the rules on paying US taxes if you live abroad all year?


09-15-06

So Apple's going to have this wireless TV thing. I wonder how they're doing it? We had this discussion at Oddworld a long time ago, because I have the dream that all electronics should be wireless, and we concluded the two big problems were 1) power and 2) video. They claim they can do DVD quality video, so let's say 720x480 at 30 fps. The bandwidth needed is 720x480x3x30 = 31 Megabytes/second. That's massive bandwidth for wireless and I can only assume they're not actually doing that. Perhaps they're sending it compressed and decoding in the receiver. If you compress around 30:1 it's conceivable. High computer monitor bandwidth is of course even worse. Say I want my 1920x1200 at 80 fps and of course I won't tolerate compression artifacts at all, I need 1900x1200x3x80 = about 250 Megabytes/second.


09-15-06

King's Canyon was nice, I went up Paradise Valley which is just gorgeous. The car-camping down in the canyon is not that great, but on the plus side it was like totally empty so that minimizes disturbances and such. (on a related note : people should not be allowed to show up after dark, they should just fucking close the gate at 8 PM and if you left too late, too bad for you; the headlights and noise of people showing up and talking and setting up their tent for an hour because it's fucking dark). The backpacking there seems amazing, I'd love to do Rae Lakes some day (click each day for great photos). I made it to Upper Paradise and back in a day, which was tough. I went swimming, but the water is freezing cold, which is unfortunate, if not for that the lakes above would be very apealing. I didn't get over to Alta Peak because the drive from King's to Sequoia is actually really long, like an hour, which was too much trouble.

AutoStitch seems to do a better job than the crappy ass ACDSee stitcher that came with my camera. It's got a real good stitcher algorithm core, but the GUI is rotten since it's a free research project. It would be usable except that you have to re set the options every time you use it (make sure you set Scale to 100% and change the JPEG quality to 95 or 99 or something).

Also - DO NOT UPGRADE TO THE NEW QUICKTIME !! QuickTime 7.whatever has disabled all sorts of features and made them only available in the Pro version. Those fucking cocks, they're just going to make QT even more hated than it already is, kill it like GIF. You can no longer view QT movies in full screen. I only care because I have some QT "VR" 360 degree panoramas and I can't see them fullscreen any more which ruins the effect.


09-11-06

I think I've gotten back to "smart hacking" in coding. I had a bug in my poker helper that it would weirdly set the bet value repeatedly. I tried to debug for a second and then just said screw it - when I set the bet value I flip a bool and don't do it again until action comes back to you, problem solved. There may be a real bug lurking, but who cares, this is 100x faster. Now, if this were mission-critical software I wouldn't want to do that, and back when I was a lead I never wanted to let this kind of hack bug fixing in, though I would sometimes. It is a good idea to forbid this in your core systems, something like a rasterizer or a thread switcher, you want to really be sure that your routines are doing exactly what they claim to be doing. However, in leaf/functionality code it's perfectly okay to patch over some functionality or hack over a bug. Obviously in big code bases those hacks can spread and you have to be vigilant about that as well, but that doesn't mean you should never make use of the hack.

It is by will alone I place a hack in my code.
It is by refactoring that the code is kept clean,
  the cleanliness ensures maintainability, the maintainability provides stability.
It is by will alone I place a hack in my code.


09-11-06

For me, watching TV is a social experience. I'm always trying to recreate the experience of watching silly shows with my family, or watching sports games at a bar where everyone is knowledgeable & rooting for the team. It's not a social experience in that you sit around and talk about things unrelated to the TV, you're watching first, chatting second, and chat is primarily related to the show or making fun of it. It's very rare that I can actually find people to do this with in real life, but I've recently discovered that watching TV & chatting online is very similar. People are knowledgeable, some are dumb and you make fun of them, people make jokes and post links related to the show. It's good times.


09-11-06

Every time I go to the hospital lately, I pay my copay when I'm there and my insurance pays. Then a month later I get a bill from the "Physicians Association", then another month later I get a bill from the hospital saying my insurance didnt pay everything and there's more I need to pay. Fucking whores. It makes me want to just randomly send people bills. Whenever I go anywhere, before I buy anything I'll give you a ten page form to sign before I do business with you. One of the terms is that I can later bill you for services. Then I send out bills for my conversation time and things like that. Fucking whores.


09-11-06

If you play poker and for some reason didn't get this :

The U.S. Senate is Seeking to Ban Online Poker
PPA Phone March on Capitol Hill Scheduled for Sept. 12

Dear PPA Member: 

Your urgent action is needed! On September 12th the Poker Players Alliance with the support of leading poker blogs and forums, PocketFives.com, Wicked Chops Poker and others are organizing a “Phone March" on Capitol Hill. From 9:00 AM Eastern Time, until 5:30 PM Eastern Time on Tuesday, September 12th, we are asking all PPA members and anyone interested in defending poker to call this toll free number, 800-289-1136 and be patched through to one of your two U.S. Senators in Washington D.C. When you call the 800 number you will hear a recording from fellow PPA member Greg “Fossilman" Raymer and then you will be prompted to enter your five digit zip code so you can be directed, free of charge, to your Senator’s office. 

Note: The 800 number will only be active between 9:00 AM EST and 5:30 PM EST on Tuesday September 12.

Key points you should make:

* I am voter in your state.
* I strongly oppose any legislation that would prohibit online poker, and urge the Senator to vote against such legislation.
* Poker is a skill game enjoyed by 70 Million Americans. 
* The Senator should seek to regulate online poker much like the government regulates other forms of gaming, like lotteries.
* Prohibitions don’t work. Any legislation that tries to ban online poker will only drive those players underground.
* Again, I urge the Senator to oppose any attempts to prohibit me from playing the great American game of poker on the Internet.

The threat to poker is real. Please forward this information to everyone you know who cares about poker and an American’s freedom to use the Internet. We need everyone possible to make their voice heard on September 12th!

Sincerely,

Michael Bolcerek
President
Poker Players Alliance 


For those of you who don't care about poker, you should still be sickened by this effort. It's primarily the Republicans who are trying to crack down on online poker + sports books. However, they have no problem with regular casinos, horse racing, online horse wagering, online lotteries, or Indian casinos. Why don't they have a problem with those? Because those sectors are huge campaign donators to Republicans. Of course Abramoff and Ralph Reed are some of the most public/awful examples, but those sectors have been huge donors for a long time, buying casino rights and making sure the laws were friendly. Now, those sectors are worried the online boom is stealing their business, so they get their friends in DC to help. The politicians also see it as a way to take a "moral stand" on an issue that not many people care about, just like all the grandstanding about violence in video games or burning the flag or gay marriage and other pointless posing which can rile up the moral crazies in attempt to get voters out. Our fucking government makes me so sick.


09-11-06

I'm leaving tomorrow to go camping in King's Canyon, in Cedar Grove. I haven't been there since I was a kid; my family lived in LA and we used to drive in our big old station wagon up to Yosemite, Sequoia, etc. for camping trips. I plan on doing the Paradise Valley hike and the Alta Peak hike.

For some reason I'm wanting to go backpacking. I've never really wanted to before, I like the convenience of car camping & day hikes, but right now I'd really like to get out into the deep wilderness all alone.

Last Tuesday we went to the "Drawing Restrain / Mathew Barney" exhibit at SFMOMA. It was the free day so the place was packed. It occured to me that in that situation you can go on the free day with people around, or you can pay for the right to not be around other humans. The crowd wasn't so bad that there were any lines or problems, just


09-10-06

Ironic things : 1. drinking "Smart Water" is really dumb. 2. Lesbians like women, not men, yet they choose the most manly of women.


09-10-06

All I want is to live somewhere hot with a nice natural place to swim.


09-10-06

feed43 has an automated RSS feed of my page.

Thatcher has this cool textweb thing which now can output RSS atoms and has a nice text-like editting language which is how I like it.

In the end though, the RSS is only a small part of WordPress or whatever, I want the whole comment database thing because I think y'all the readers could add a lot of value here. Like I said, WordPress can import RSS atoms, but it only imports new ones, not changes, which sort of blows, but maybe I could learn to live with that.


09-09-06

Wow, it seems like a great time to buy a bunch of Neteller stock. Neteller provides financial transaction for poker sites. It's currently in the crapper because of all the fear about the recent arrests of sportsbook executive and worry about the bill to ban online gambling. It's now trading at 370, down from 600 two months ago. Neteller stock . You could make a similar bet on PartyGaming, but Neteller seems to be much more strongly affected.


09-08-06

If you gamble and want to keep it legal, help out and email your senators with an easy form letter.


09-08-06

Games aren't fun when you're really good at them. Games are fun when you feel like you can be creative and make interesting moves, surprise someone, etc. When you've got it analyzed exactly to know the right & wrong move at each point, it's no longer "fun", it's just a challenging exercise to see if you can make the moves you should. This is true of poker, but it's also true of other games. "Risk" is fun when you can try different things, but if were trying to calculate the probability of successfully taking various provinces, the EV of various positions, it would just be a lot of annoying work.


09-06-06

Okay, so I hate making comparisons to Nazis/Hitler as much as the next guy, but I think it's quite illustrative at the moment. Germany in the 30's was in a severe depression, even worse than the one in the US, and the populace was angry. Nobody wants to accept that these things are because of economic cycles, or their own foolish investing, and certainly the robber barron capitalists don't want any of the blame pointed at them. So, you create scapegoats. It makes you feel better to blame someone else, and gives you something to "accomplish" to "fix" the problem when the true fixes are unsavory. The Nazis/Hitler pointed the blame basically at everyone non-aryan, Jews, Russians, the French, etc. This was very popular with people who could pretend that if that problem was solved their country would be good and strong again.


09-06-06

We saw CocoRosie last night at the GAMH. It was cool. The GAMH is an awesome venue, it's an old night club from the Victorian boom of SF with marble, etc.


09-05-06

So I'm back to thinking - should I try to sell my poker app? I could probably sell for around $40 to around 1000 people for $40k , mostly profit. But, I imagine all the little things & support would take a lot of time. In that amount of time I could probably make about the same playing poker.

Pros to working on the app : better for the resume, possible upside if it somehow goes bigger into the more mainstream poker market (not just hardcore).

Pros to just playing poker : if I can actually get better and move up my win rate could shoot way up.

There's a new app out called "Sixth Sense" which basically does some of the things I've been doing all along. Those bastards charge $30/month (!!). The release of this disturbs me on various levels. 1) They're making $$ that I'm not. 2) They may get the market share and hold it. 3) If it becomes big, Party will change it software to make this stuff impossible.


09-05-06

Here are some hands I played today, output by my new program that makes nice HTML formatted poker hands. Woot printf roxors.

On a technical note : I make use of these little suit images that I'd rather not host myself. Is there some public site where I can stash them? I know about imageshack et.al. but those things kill the images after a while. I want some big public site I can stick the little buggers on. Maybe I could upload them to a yahoo web page or something and reference to that.

Villain here was a solid TAG, but his line just doesn't make sense for a big hand, so I called, and what do you know...


No Limit Hold'em Ring Game (6 max) , 5 players
Blinds : $1/$2

Stacks:
UTG : $200
Hero : $537.24
Button : $36
SB : $201.70
BB : $246.66

Pre-flop: (5 players) Hero is CO with 7 7
UTG limps, Hero raises to $10, Button calls, SB calls, BB folds, UTG calls.

Flop: 6 4 5 (42$, 4 players)
SB folds, UTG checks, Hero bets $32, Button folds, UTG raises to $190 (all-in), Hero calls ($158).

Turn: T (422$, 2 players)
River: A (422$, 2 players)
Results: (final pot $422)
UTG shows 4 3 (One Pair)
Hero wins $420 with 7 7 (One Pair)


Here's another one where I take someone to PWNTOWN. 90% of the time you should fold the river here, but there's no hand he could play like this that beats me, except maybe 44.


No Limit Hold'em Ring Game (6 max) , 4 players
Blinds : $1/$2

Stacks:
UTG : $249.75
Button : $230.76
SB : $201
Hero : $401.39

Pre-flop: (4 players) Hero is BB with A K
UTG raises to $9, Button calls, SB folds, Hero calls.

Flop: 2 6 J (28$, 3 players)
Hero checks, UTG checks, Button checks.

Turn: 4 (28$, 3 players)
Hero checks, UTG bets $15, Button folds, Hero calls.

River: K (58$, 2 players)
Hero bets $33, UTG raises to $100, Hero calls ($67).

Results: (final pot $258)
UTG shows 9 9 (One Pair)
Hero wins $256 with A K (One Pair)


09-05-06

If you can make a big bet so that villains fold good draws but call with worse made hands, that's awesome, because instead of having 60% equity or whatever instead you have 80-90% equity or more.


09-05-06

WTF is the deal with all the BitTorrent clients? There are like hundreds of different clients and they all seem identical except that many of them suck or are broken. Why don't people just use the main/real client!? No comprendo.


09-04-06

Chicago IL, 09-08 to 09-10 is the Hideout Block Party, looks phenomenal, go there.


09-03-06

Amplifiers should have a non-linear volume knob, sort of like a logarithmic dB scale. You want a lot of fine control close to zero, but don't need such control up high.


09-02-06 [poker]

There's something about aggression & betting in Hold'em that just magically makes you win. The weird thing about it is there are two totally opposing factors, but they somehow both work out. I'm talking generally about "marginal" hands here, hands that might be best, but are not big hands, but not junk either. Something like T9 or 99 on a T54 board.

Betting these hands is great because : 1) people with similar hands will fold, rather than making you fold. For example, if you have 99 on a T54 board, and your opponent has 88. Either one of you might bet the flop and the other might call. Now whichever one bets the turn probably wins the pot. You have effectively the same hand, but the more aggressive wins a decent size pot. Most people even fold a hand like TJ to a turn bet there. Over time all those pots you win when you have effectively the same hand add up since you will often both have marginal hands.

2) people with awful hands will call. For example people will call with A5, 67 (draw), even gutshots, underpairs like 22. They call and you figure you must be losing but you get to showdown and are shocked to be ahead.

The weird thing here is that 1 & 2 are totally contradictorary. It's profitable because people fold similar or better hands, it's also profitable because people call down with garbage and pay you off.

* betting has positive selection bias * raising preflop selects for loose players; when loose = bad, that's good * if a coin flips heads N times it's more likely the one biased towards heads


09-02-06

We put our houseplants outside today to water them. We left them there for about an hour so the water could drain before we took them back in. Someone stole them. I actually suspect that the villain thought they were being given away. It's common practice around here for people to put things out on the street that they're trying to give away. They were nice plants.


09-02-06

I can't believe I never thought of this, but it's really trivial to have spam-free email. All you need is 3 seperate email accounts.

#1. Your personal email. You never post it publicly anywhere, you just give it to friends. The address never changes.

#2. Your legitimate corporate email. You use this to register with your bank, etc. Since they're untrustable spamming whores, this email address is not safe. You still probably check it every day, but when it becomes tainted you just drop it and get a new one.

#3. Your temp/junk email. This is for use when registering at web sites, etc. basically all the very unsafe uses where you just need an email address and don't actually ever want email from them. You don't even check this in your normal email client.


09-01-06

I've been learning about Freegans . I admire a lot of what they stand for. I'm definitely down for the voluntary joblessness ;)


09-01-06

I think it's hillarious when Democracy Now is playing that bouncy background/intro music "da na danana da da da, na dana da da na na" , anyhoo and Amy is reading the news summary over it and it's like "Today we talk with the mother of an Iraqi girl who was decapitated and whose severed head was fucked in the eye sockets by US soldiers" and the music just bounces away. Lovely.


09-01-06

There are some pretty sweet HDTV torrents which are nice on my widescreen 24" Dell, but all the ones I've found so far are some mpeg/avi that's compressed to shit and is full of artifacts, which somewhat spoils the effect of the high res. Sure for still graphics like title characters you get nice crisp images, but with actual motion TV it's quickly block artifact city. Looks like Amazon is going to be selling high quality downloads, hopefully that will lead to them being available on the torrent scene.


09-01-06

Poker. Yesterday I was -$700, today +$1000. LOL variance. Also I made some great plays and some awful plays.

This is me playing good and taking advantage of the other TAGs : LOL over-aggressive TAG . ("TAG" = "Tight Aggressive" and it refers to the other multi-tabling regulars who do this seriously).

This is me playing bad and *BEING* the over-aggressive TAG : Puke SPEW


09-01-06

I absolutely love getting around the city via bicycle. However, so-called "track bikes" (single speed bikes) are *not* cool. I know you hipsters love to get them in different colors to match your pumas and messenger bags, but you look totally uncool when you have to get off and walk them up or down hills (or try to ride them down hill and crash LOLOL).

Single speed bikes have no gears, no derailleur, no shifters, and the ones favored by hipsters have no hand brakes. That's all okay as long as you're on flat ground, but SF is full of crazy hills, and single speeds = the suck. Gears and derailleurs are AWESOME, they were invented for a reason and we are lucky to have them. Going down the steep hills with no front break is dangerous, and the way you break on single speeds with your feet makes it tricky, you have to sort of let your feet turn slowly, if you just lock your feet you will skid.

Single speeds are used on the track because 1) tracks are flat and you know what speed you will be going so you can just choose the gear that gives you your desired BPM at that speed, 2) track bikes are designed for minimum weight and air resistance and dropping the derailleur and cassette helps a bit there, 3) single speeds have a tiny bit less slip in the drivetrain so slightly more of your leg power is transformed into motion. These factors do not exist on the street.

Regardless, I'm still a bit jealous of how pretty they are when I see them go by. A single speed would be a good thing to have at Burning Man since that dust plays havoc on brakes and gears and such.


09-01-06

ZOMG LOLOLOLOLOL Super Mario Parondy . u r gay if u dont roflcopter.


08-31-06

One of the really frustrating things about tournaments is that your EV can be very strongly affected by how other people play against each other.

Say for example you're 3 handed in the end-game. You have an M around 10, there's a shorty with an M around 3, and a big stack with an M around 30. Obviously you have to avoid the big stack, and you can take gambles with the shorty, but you can't really press the shorty because if he doubles up through you you're even. What you want to do is just sit back and wait for the big stack to knock out the shorty so you can move up in the money and play heads up.

The problem occurs when the big stack is awful and keeps failing to knock out the shorty, either by folding to his pushes, not pushing enough at his BB, or just playing bad and giving him chips. If the big stack really plays awful against the shorty it can be a huge impact on your EV in the tournament, which sucks bad.

I get really frustrated in all multi-player games when you have to rely on other people making sensible moves. It's like when you're playing Risk and player B can easily take a province to keep player C from getting all of Russia on his turn, and he doesn't, it just fucks you over and you aren't even involved. Ghey.


08-31-06

The correct amount of hands to play in poker seems to be around 1 per round. At a full 10-handed game that's 10% of hand. At a 6-max game that's 16.66% of hands. That's assuming no antes and difficult opponents. If your opponents are very bad you can profitably play more hands. Also if there are antes you should play slightly more hands. It funny to me when things like this work out so numerologically - "play 1 hand per round" - but of course it's just coincidence and rounding; any time you wind up with an answer in Physics that's like 3.1 some douche will think "wow, that's almost Pi, that's like cosmic, maybe it's related somehow and the answer really is Pi".


08-31-06

I've definitely developed ADD. I'm playing poker on 4 tables and watching TV and find myself getting bored, so I open up a web browser and start reading/replying to the forums. I've also taken to reading the newspaper while I watch TV. Sick. I also had a revelation today, I realized why I have so much trouble talking on the phone. I've always sort of spaced out and been unable to follow conversations on the phone. I finally realized it's because I'm totally understimulated with only the audio channel and my eyes and hands and mind totally wander, I'll often be absent mindedly surfing the web or putting away dishes or something or looking outside while on the phone and totally lose the train of the conversation. D'oh.


08-31-06

Wikipedia panoramas is an awesome source for very high-res photos.


08-30-06 [poker]

It's generally true that in any situation in poker you want to be very aggressive with your best hands & your worst hands, and conservative with your medium hands. This has been proven precisely for some simple poker-like games, but it's very hard to prove with real poker, but we can see intuitively that it's true.

First, think of your hand range as a float value in the interval [0,1]. That is, the "nut low" is a 0 and the true nuts is a 1. Now you're going to fold any hand worse than some threshold F, so you're playing hands in [F,1]. Now imagine this range as divided into 3 regions [F,A] [A,B] [B,1] . The bottom range are you "marginal" hands, hand you want to play but that are just barely worth not folding. The middle range are you decent hands, which beat bluffs and might beat some of his okay hands, but can't stand pressure. The top range are your hands you want to play a big pot with.

My contention is you should take the same line with the "marginal" and the "big" hands (that is stuff in [F,A] and [B,1]) and take the conservative line with [A,B].

One problem with this is if your opponent is really good, anytime you take the conservative line they know you have a marginal hand which lets them "play perfectly" by knowing what you have. This is easily addressed by mixing up your lines a bit. That is, the "big" line might not always mean just leading out big, it might sometimes be a check-raise. Similarly the "ok" hands might sometimes check-call and other times put a blocking bet out.

Let's look at one example : preflop reraising. Say the player on the button opens and you're in the big blind. Stacks are deep so it's not just a shove. You're going to fold hands < F. With hands in the middle [A,B] range you should just call his raise. With your big pot hands (very good and marginal) you reraise. This means you just call with hands like 99 (middling), and you reraise with AA and 22. The reraise with 22 is a semibluff. Mainly you're representing AA, but you could also flop good and make a big hand. It's nice to have this extra value so any time you are doing this before the river it's good to use hands that can improve.

Another good example is playing against continuation bets. Say your opponent raised preflop and continuation bet the flop. Again, some hands you fold, your mediocre hands you just call, and your worst & best hands you raise. Mediocre hands here would be things like top pair without the top kicker, 99 on a T-high flop, etc. Those hands you just call. You raise with hands like two pair, a set, sometimes TPTK. You also raise with hands like 22 that missed its set. As usual you get more EV if you can raise with hands that can improve.

When considering what to do with a hand, you first ask if you should just fold it. For example, 22 on the flop in the continuation bet example may or may not be a hand you should just fold, depending on the board & your opponent. If you do play it, is it better to play as (a bluff), (a small pot for showdown), (a big pot) ? So you classify it in those ranges and play accordingly.

Now, it's my guess that if you look at your range of hands, it should roughly be true that (A-F) = (1-B) , that is the "big" and "marginal" region should be roughly the same size. I have no evidence to support this, it's just a guess. Similarly I guess that it should be true that (B-A) = 2 * (1-B) , that is, the "ok" region should be roughly the same size as the other two regions combined, that is about half the hands you play should be in the "okay" region. In practice, the regions should be adapted to your opponent. For example, if your opponent is a maniac bluffer, you might not use the "marginal" region at all, every hand either becomes a "big" hand or a fold against him since he only plays big pots. On the other hand, if your opponent is a weak-tight nit, he will only play with the nuts, otherwise he'll fold. In this case the "ok" region goes away and your "big" region becomes very small, basically you either have to out-nit him and make an even better hand, or you want to make him fold.


08-29-06 [poker]

For those who are not aware of all the 22 year olds getting rich off poker, here's an excellent sampling of that world : Shit It Holla Ballas


08-29-06 [poker]

"Don't go broke in an unraised pot", okay that's sort of okay advice, going broke for your whole stack in a small pot is always silly, however "don't get all-in an unraised pot", now that I can't agree with at all, of course you want to get all in if it's +EV, and that means you will sometimes go broke, and of course that's fine. In fact, if you don't go broke ever in an unraised pot it means you're not pushing your edges hard enough. Sort of like if a NASCAR driver or a ski racer never crashes it means he's not taking enough risks.


08-29-06

Internet Exploder's F'ing text size continues to confound me. I want my PC set to "small fonts" but I want my browser to use "medium" text size; is that so damn hard !? Anyway, the ghetto fix is to hold down "ctrl" and spin the mouse wheel in IE, which changes the text size setting.

Basic of fucking software design : 1. Any setting which can be chosen in an app should be savable so you don't have to set it every damn time you run the app. 2. Any prompt which pops up regularly, you should be able to choose "Yes, No" and also "Always" or "Never" (this is not the same as saying "dont show this", which doesnt say which choice).


08-28-06

Well, I started to try to convert this Rants page to wordpress. I got an install working here and am testing it. I guess I'll do some posts in it, since there are some advantages (RSS, user replies, blah blah meow chow), but so far it sucks just like I knew it would. Editting in a browser is still just balls compared to my nice little text editor. It's really slow to navigate around the wordpress pages. Doing something like splicing two posts or grabbing a chunk of text from one post and moving it to another goes from a two second operation to a two minute operation.

If I had some perl/php skills, I'd love to just have a script that could grab a free-text rants/blog like this and take the new posts and drop them into a wordpress blog. Adding new posts actually wouldn't be that hard, but applying changes to older posts seems like a PITA.

Hmm.. I found WordPress's ability to import from RSS which I thought might do the trick, but it seems to not import changes. That is if I go back and change something in the RSS version of the blog it doesn't apply the changes to old posts, it only adds new ones.

Stupid WordPress also doesn't handle a regular CRLF like HTML does, it treats it as a "BR" forced break, which screws up all my text formatting.


08-28-06

Good shows coming up :

CocoRosie Sep 6
Magnolia Electric Oct 7
Beirut Oct 20
Twilight Singers w/ Mark Lanegan Oct 24
Bonnie Prince Billy Oct 30 & 31 (Halloween extravaganza, oh yeah baby!)
The Heavenly States 09/22 San Francisco, CA @ Bottom of the Hill
Deerhoof - Sept 5 - San Francisco, CA - Great American Music Hall


08-28-06

I've mentioned this before, but the more you think about it, the whole idea of taxing transactions is a horrible idea. Sales tax, income tax, estate tax, gift tax, etc. are all taxes on transactions. There are 4 primary reasons this is bad :

1. It's difficult to enforce fairly. There are so many ways to do transactions, and thinks like favors and gifts can be forms of payment with huge monetary value that are hard to tax. Then we decide that certain transactions shouldn't be taxed which opens loop-holes and leads to huge problems.

2. It's expensive to enforce and expensive for individuals to comply. There's simply so many transactions that it is a huge enforcement problem.

3. It discourages transactions, which reduces economic liquidity. A more liquid economy functions better.

4. It's not in proportion to ability to pay. It penalizes those who are more active in the economy vs. those who hold wealth, which really is the opposite of what's in the best interest of the public.

It's really just ridiculous if you think about. If you and I stand next to eachother and hand a briefcase of $100,000 back and forth, we are supposed to pay tax on each exchange. Back and forth we pass the money and it goes away with each pass. Goofy!

There are various alternatives which mights be better. One is very appealingly simple which I mentioned before, which is simply a tax proportional to total assets. There are a few problems with that, one is counting someone's assets, though that's roughly the same problem as income tax - you require them to report it and you investigate if it seems fishy. The bigger problem is that there are many ways of hiding or getting rid of assets to avoid taxation, then pulling from those hiding places and spending as needed.


08-28-06

Ma petite amie
est tres jolie
elle est plus belle
que la poubelle


08-28-06

Republicans and pro-business types are making a huge error which we may pay for for many years. Concentration of wealth in the hands of the rich may seem great to them in the short term, but it's causing the death of the middle class. The thing that's made America's economy so great for so long is the large middle class with lots of consumer spending power.


08-28-06

Stastics are confirming more and more that it's almost impossible for a man to get HIV from a woman via vaginal intercourse (though the opposite is not true). I wonder how long this has been known and kept under wraps as part of the abstinence agenda?


08-28-06

Poker Bay is the hot spot to get torrents of poker TV shows, and some warez.


08-27-06

In the last few years we have seen a great callousness in the use of human death and tragedy to accomplish political purposes. Americans killed on 9/11 ? Great excuse to go on an adventure reshaping the Middle East. Two Israeli soldiers kidnapped? Great excuse to bomb the hell out of a neighbor who harbors terrorists. Hurricane F'ed up Katrina? Great excuse to rebuild the city without the ghetto full of negros. The common thread emerges - tragedy is not something to address, to apologize for, to try to repair - rather it should be extended as long as possible if it's expedient for some selfish goal.


08-27-06

So, I got raw peanuts at a local market and roasted them myself for the first time. It's pretty trivial, 350 degree oven for 15-20 minutes for shell-on peanuts. Anyhoo, yesterday we got some "green" peanuts at farmer's market. They're not actually green, the "green" refers to the fact that they're raw and fresh, not blanched or dried. They're very soft and smell strongly like potatos or something. Anyway I'm trying to roast them now and it's not going well. I've had them in a 350 degree oven for an hour now and they're still soft.

Unfortunately, this seems to be a subject where the internet mocks me. If you search for peanut roasting directions, you find this same little snippet of directions over and over which people have copy pasted; I've been to like 100 web sites now and every single one of them has the exact same directions word for word. Damn!


08-26-06

ASDJFKWERKJASLDFJASDF fucking Excel will only plot 32k numbers ASDKLQ@#$(&*KJAW#$ !!!!

Did I mention freaking TiVo sucks giant salty donkey balls? God damn, I have so many season passes without conflicts and the programs just aren't recording. If you cancel the season pass and re-add it, it fixes its broken ass. Fucking dog shit dumb ass incompetent make me so ANGRY!


08-26-06 [poker]

I really think most top players don't understand poker and why they win. They've somehow learned good practices and then come up with reasons for them. Barry G keeps talking about how you should bet so people will fold and you can win the pot. In particular, you should bet enough to make them fold their draws. Of course that's very wrong. If you could bet a large amount that gave them bad odds, but small enough that they called anyway, that would be more profitable.

Similarly, I'd guess most players think they're winners because they're better than average. No, not really. Your profit comes almost entirely from very bad players. You win because you extract well from them. Grinding out a small edge against average/decent players doesn't even beat the rake.

I don't question myself so much about gambling it up in marginal spots any more. It's possible that I'm making some -EV moves in those spots. However, overall my game is more +EV than ever. How can that be? Well, it could just be variance, or it could be that making a little -EV move once in a while is actually +EV, because it gets you action, or makes people stop bluffing you when they see you make a call with ace high. The truth is all those little factors are very hard to count, so making a little -EV move once in a while is not really something to worry much about.


08-26-06

"Bubble" was a cool setup but it just never went anywhere. After the crime there could've been a whole mystery investigation thing that stirred up the town and dug up lots of secrets, but there was nothing.


08-26-06

So, it looks like CA real estate is finally slowing as long predicted. The question now is whether it just slows or actually crashes. At the moment the states that aren't crazy inflated are still doing fine, and Texas looks very good, which is good news for many people I know doing real estate there.


08-26-06

So apparently the XBox 360 crashes a lot in evil ways, and there's a pretty high failure rate. Nasty. No idea what the actual numbers are, I'm sure MS is very quiet about that.


08-23-06

I need some better music to play poker too; something really chill that won't distract at all, but also not soporific, but rather energizing. I'm thinking maybe some Indian Ragas might do the trick but I don't really know anything about this type of music. Most Western music has too many changes in it for Poker, or is just boring/sleepy.

These Qawwal videos are pretty cool. Also this page of Qawwalli mp3's is good.


08-19-06 [poker]

+$2000 today, pretty nice; various bad suckouts against me of course, but also this beauty in my favor. A classic of "play bad, get there".


08-19-06 [poker]

I bring you more gossip from the high stakes poker world :

Gus Hansen recently joined team Full Tilt and has been playing online a lot recently. Apparently he's really bad and has lost about $1M in the past two weeks. Some claim it's slightly less but everyone agrees he's lost a ton. The same is true of Mike Matusow who's dumped at least $200k online recently by playing drunk and/or tilting wildly, and apparently Prahlad Friedman has dropped a few $100k recently as well to massive tilt.

The latest high stakes sensation is "aba" aka "sbrugby", a UCSB grad student who's made about $1M online this year. Aba is a 2+2'er like myself, and he's got me inspired again to make the run up the limits and try to take my game to the higher levels. I'm about to move up to NL400 once I can get some quality time to focus on the game. I'm almost done with moving junk so it should be soon.

I've been doing really well at NL200 recently despite losing a bunch of stacks to bad luck and bad play. The more I play the more I just get very simple and straightforward. That doesn't mean readable or weak - it just means not overthinking. I still float & bluff, but the key is to do those things rarely, and to do them in spots when your opponent is obviously weak. I used to think if you bluff when your opponent is showing weakness, they'll know it's a bluff and call. Conversely, if you bluff when they're obviously strong, they'll put you on a monster and fold. No no, they're awful, just play simple.


08-19-06

In the US tax system (like most) there are many demographic transfers of money. Overall all the money comes from citizens and goes back to citizens (we'll ignore for now that some goes to foreign corporations or foreign governments). It also generally flows from the rich to the poor, though perhaps not so much as you think when you include sales taxes and where government contracting money tends to go.

It also flows strongly in other ways that aren't often acknowledged :

honest -> cheaters ; this is not just about reporting your taxes, but also about business that lobby questionably, etc.

renters -> homeowners ; bailouts too, eg. when they do disaster bailouts, that's a huge subsidy of homeowners, and in fact massive government spending to develop highways & suburbs has been a huge subsidy of homeowners & builders. Mostly this is the interest tax credit, though. Property tax does not balance this since it doesn't even pay for the infrastructure required to service & access your home.

single -> married w/ children ; there are massive tax breaks for marriage & children, but perhaps even more signficant is the amount of government spending on children, in Education, health care, etc.

Basically honest, wealthy, single, childless renters are huge money providers to the rest of the demographics.


08-19-06

Rent Control is sort of a strange economic force, which I'm not sure is positive. On my street, there are a lot of people who have lived in the same place for 20 years, and now have little or no income but easily pay their tiny rent. (Under rent control, their rent goes up by inflation each year; that would be roughly how much it would rise anyway, except that demand and surging population has driven it up much faster than inflation in popular places like NY and SF). Now, landlords still need to pay mortgages and such, so the result is that when they get a vacant unit, they list it for *more* than what they would if not for rent control. It needs to be higher to compensate for the units that are rent controlled, and also because they know they can't raise it for many years in the future.

So, what happens then in an area that gentrifies, like The Mission is doing currently? Demand surges and the richer kids want to move in. 75% of the units stay locked up in rent controlled tenants that represent the long-term demographic. The other units are even more expensive that if there was no rent control. It seems to me the result is great stratification of the groups. Rather than everyone roughly paying the same, you have newer, richer, and the locked in old group.

What if you didn't have rent control? Rents all over the neighborhood would shoot up and the families that have been here for years would have to move, out to less desirable areas farther away, mom & pop stores would shut down, people would have to commute, etc. So, that sort of sucks.

Compare what happens to owners & renters when an area gentrifies - the owners hit the jackpot, they get to stay there and profit from it enormously; renters without rent control are screwed, their rent shoots up and they have to move, which can be very hard on a poor family, uprooting from schools, jobs, local contacts, etc.

It seems to me that there could be some sort of compromise. For one thing it shouldn't be so easy for land lords to kick you out and raise the rent. Perhaps they should have to give you 1 year notice, or make the max annual rent raise = inflation + 5% or something. Another option is that rent control could only apply to a portion of the units, or to low income renters. If your income qualifies as "low income" then landlord can't raise rent over 25% of your income or something like that. Of course this would make landloards loathe to rent to low income people so there would have to be better laws in place to prevent discrimination.


08-18-06

I did something awful to my neck in my sleep. I'm in horrible pain even on the advil. Ooooweeee.


Guide to CitySearch ratings : 9.0 = tolerable, 9.4 = not bad, 9.7 = pretty good, 9.8 = good. Sort of like Olympic judging scores. If something is rated below an 8, OMG, be afraid, be very afraid.

"Cafe Ethiopia" is pretty tasty Ethiopian, which I enjoy the whole experience of, but the ambience is hillariously bad, the door dings and the floor is white tile just like a 7-11 or something, the waitress/owner was totally cold and bizarre to us, she shuffles up like it's such a hassle to serve you.


08-17-06

Hmm. Dan and I have been anxiously awaiting the Curb/CYE DVD which recently came out (and it's awesome), but I just realized I'm a moron. We could've been downloading torrents all along.


08-16-06

CocoRosie is somewhat cool. also this one


08-16-06

"Saigon Sandwich" on Larkin truly is the bomb, and for $2.50 it is the cheap delicious ethnic lunch of legend.


08-16-06

Seems like TV program AVI torrents are now common & high-quality enough that they could easily be your sole way of watching TV. Someone should make a TiVo-like torrent scrounger. Basically you sign up for a "Season Pass" of a TV show, and it pulls down torrents of new episodes. There needs to be a standard way of identifying episodes so you don't get different people's scans of the same episodes. Also this works great for popular/new shows but you can't get less popular stuff or reruns.

High Stakes Poker isn't on TV here in San Francisco, but who cares, there are awesome torrents for it, and it's higher quality than my cable feed. poker torrents is a great collection of feeds.


08-16-06

The insurance companies are showing again what scum-bags they are by refusing to pay for damages from Katrina. It's truly laughable in a sad Kafka-like way that they've actually tried to avoid paying any damage at all, since they claim the damage is from "flooding" (not covered) and not "hurricane" (covered). Just like with the World Trade Center crisis, a great tragedy hits our nation and rather than pay out policies, they pinch pennies and get subsidized by the Govt. Afterwards, they'll raise rates to pay off the little bit they did pay out. The way insurance is run in this country, it's a no-lose business. Warren Buffet is supposed to be this genius investor, but the truth is almost all of his fortune comes from insurance companies, which are basically giant corrupt money-gathering beaurocracies similar to my own ScamCo. A fair insurance company would have ups and downs; in fact, small insurance companies should often go out of business; only large insurance companies can survive major disasters, and they should take huge losses in those years. In fact, with massive unforeseen disasters, insurance companies should take losses that they might not make back for 10-20 years.

Here's the whole idea of insurance : say something bad might happen to me, there's a 0.1% chance of it per year and it would cost me -$100k. The average annual cost from that is $100. Rather than take the risk myself, I pay an insurance company the $100 each year - that is exactly enough for them to break even on the deal; they don't need any more money, but I also pay a little more for the administrative costs & to give them a profit. So, perhaps I pay $110 a year. Now, their profit on that should be about $5/year, which is a nice premium. If the bad thing every does happen they would have to pay out $100k. The next year, my premimum should still be $110, since the chance of the bad event didn't change, they just got unlucky and had to pay it. They can never make back that $100k from me - they take a big loss because they got unlucky and the bad thing happened. However, over a large enough customer base & time frame, it should all average out and they just make that 5% annual profit.

The problem is, every year they don't pay out, they're feel like they're getting $105 profit. The books look great and investors love them. They come to hate the idea of ever having to pay out damages. They want to make a profit from each policy, not the aggregate. They also start to feel like your premiums should pay for your damages, instead of it being a risk. So, say you get the bad event. For one thing they'll try to avoid paying. If they do pay, they'll bump your premium to $500 or something in order to get you to pay off the damages.

Some insurance consumers don't realize how wrong this is. They think of insurance as sort of like "life insurance" where you're paying your premimum in to an account, and when something bad happens it comes out of your payments, and your payments might go up to balance that account. That's not at all how it works and it's their manipulation to make you think that. Insurnace companies also manipulate the markets to suggest that they have pay out from their income. That's far from true; insurance companies should be prepared to pay out far more than their income.


08-15-06

I came up with a trick recently : to restore a glass of day old wine : pour in half a shot of port. Day old wine gets more acidic, a bit nasty; the sweetness of the port calms that down, it just sort of tastes like a nice rich wine. I guess it's similar to "fortified wine" which is awful. (one of my worst pet peeves at restaurants is when they try to pass off day old bottles of wine; cheap bastard restaurants do it all the time to save money, if they don't sell a bottle in a night they keep it for the next night, sometimes for multiple days; when you're paying $8 for a glass of wine that's only $8 for the bottle in a store, I want a fresh freaking glass. Oh, and don't bring me stale bread you freaking cheap bastards).


08-15-06

Bah; why are printers and print spoolers such pieces of garbage? Why can't I get error info; why do things just mysteriously not print, or print out all weird, or print out the code stream un-decoded so you get #@$@#*)@#$ characters all over!? Why can't I just freaking cancel a document that's failed to print? ARG.

Furthermore - if you print something when your printer is offline, then power everything off and power it back up (bring the printer online), Windows will just start printing while you're still at the log on screen. That's brutally awful and ridiculously stupid on so many levels I can't even begin to debate the reasonableness of this approach. It seems like the whole print/spool system is some left over garbage legacy system from 1980 which has had layers of cruft piled on for years to add features without actually fixing the way the basic system works for a modern USB/multi-user/plug-n-play/networked environment. Oh wait, that's the entire MicroSoft codebase... (ok, I got distracted, this isn't really an MS thing, so far as I know printers on all other platforms are whack also).


08-15-06

We ate at "Tao Cafe" a little while ago; it's a semi-upscale Vietnamese "bistro" type place, which is natural since Vietnam has such a French influence. It's like half a block from our house, and it's supposed to be really good according to the web, but I found it rather "meh". It's got that "trying to be fancy" vibe that makes me uncomfortable. The servers just come off as cold; a good fine dining waiter feels friendly but invisible, not at all invasive; these were obviously people trying to be something they're not. The food is tasty, good quality, but the spicing and flavoring is a lot milder than a divey ethnic Vietnamese


08-15-06

Charles Bloom is the new proprieter of ScamCo. "ScamCo is dedicated to improving the customer service experience of our customers. We're adding thousands of subscribers each week." Here's what we do at ScamCo : we send out mass mail which automatically enrolls you as a ScamCo customer (if you don't want to be enrolled, simply fill out the decline forms, call our long distance number to get them, mail them in to three addresses). Once you're automatically signed up, you will receive a simple bill each month; for your convenience you can choose automatic credit card billing. You can quit at any time. Simply pay a $100 processing fee for your disconnection; stopping service may take 6-18 weeks and we'll continue billing during that time for your convenience. Any questions or concerns about your ScamCo service, simply call our long distance customer service number; we're proud to announce wait times are now down under 5 hours!


08-15-06

I'm trying to find a cheapo gym. I don't want to pay $50/month for a bunch of shite I'm not going to use. I just want a room with a bunch of free weights and some benches.


08-15-06

Oh crap. I just realized I'm playing a lot of my poker these days on Danielle's account, and pulling out money through here. For tax purposes, that means we have to declare the income on her income tax, and then report the "gift". Yikes.


08-14-06

I thought of a brilliant scheme to get rich. Buy heads of lettuce. Peel off all the outer leaves so you preserve just the hard stem bit and the spear-like tiny leaves at the base. Sell this core labelled as an "endive" for more than the cost of the lettuce. Also sell the leaves as "salad mix" for more than the cost of the lettuce. Then you get the money. Then you get the wee-meen.


08-14-06

Found this funny quote, Re: my ticket :

Dr. MacIntyre commented that because driveway complaints must be registered with DPT before citations are issued and citations are annotated with the phrase "by complaint" with the complainants’ residential addresses, recipients of driveway parking citations are made aware of the identity of the complainant. Often violators receiving citations retaliate against the residents, i.e., bricks thrown through the window of the complaints’ residence, homes egged, and even some residents having been physically attacked by the violators who are often university students.

Found some interesting things about parking laws in SF :

1. SF requires you to have a front license plate. This is not a state law and I know of no other city that requires it; my car currently has no front plate because I think they're very ugly. SF charges a $100 ticket for no front plate and apparently they DO issue that ticket.

2. In limitted-time parking areas, like "1 Hour parking", you must move your car at least one block away to avoid a ticket! If you park 50 minutes in one spot then move to another spot and stay another 50 minutes, you might get a ticket if it's less than one block away. That's pretty evil.

3. They give tickets for not curbing your wheels. I guess that's sort of reasoanble, but again it's something that you really have no way of knowing you're going to get fined for.

4. Apparently the wicked ticket which they regularly give is stopping at a bus stop. If you stop your car even briefly at a bus stop to pick up or drop someone off, you can get a $250 ticket. Also, apparently this ticket can be given by witnessing your car on a red light camera recording, so you may think you're in the clear and then find a ticket in the mail weeks later.

One thing I can't figure out are the "Bus Only" lanes. These are all over the city, and people seem to drive in them all the time. Often they're the right lane and you have to go in them to make a right turn. I can't find the law on it, but it seems like you really are forbidden to drive in them; dunno what the enforcement is like on that.

Also double parking is this weird gray area. I guess technically double parking even for a minute is illegal, but people do it all the time. Given the draconian enforcement of other laws, it's strange this is not vigorously pursued. Another weird thing is the parking in the middle of the street on Dolores, Guerrero and Valencia, particularly on Sunday. I'm not sure what the conditions are that make this legal.


08-13-06

We saw "Lawrence of Arabia" at the Castro as part of their 70 mm series. I love that movie, it's so beautiful, and Pete O'Toole is such a charming scamp. The Castro Theatre is a gem, the hammered bronze ceiling in the main theatre is gorgeous, but the screen is actually a bit small (it wasn't built to be a movie theatre). Personally I couldn't detect the benefits of the 70 mm print, I'd rather see it in a Cinerama theatre or something like that with a super-wide screen. It's also funny seeing the British actors with putty noses and dark makeup to try to look arab. The evil Turk is gay, the arabs are primitive and barbaric, O'Toole and others wear a ridiculous amount of stage makeup, etc.. lots of funny anachronisms. It's also a great movie to watch given the events in the Middle East these days, though I imagine even the educated San Francisco audience doesn't really understand the context (Prince Faisal in the movie became the first King of Iraq, which was one of the many countries carved by the British out of the Ottoman Empire; oil wasn't discovered until around 1930); (I don't really get it all either, it's a very complicated history; for example, how does the Arab revolt against the Turks relate to the rise of the Wahhabi tribes in Saudi Arabia? what was happening in Israel between WW1 and WW2 and what was the British role?)

I also noticed that "Lawrence of Arabia" is essentially "Dune". They would make a good double feature (a ten hour double feature).


08-13-06

WTF is up with the slowness of PDF drawing maps? I worked on a GIS that did similar line drawing of maps back in like 1993 or so, we were on like 486-DX-33 machines or something like that and we drew big maps in near real time. PDF/Acroread drawing multi-layered maps you can actually see it refreshing each layer of the map one by one. It would be sort of a sweet retro feeling, reminding me of the old 7 MHz Amiga I used to love, except for the fact that it's so unfreaking-believably annoying!!!


08-13-06

Wikipedia bashing has become popular, and is both idiotic and not funny. Wikipedia information can be wrong just like any information can be wrong. Blindly accepting anything that any source tells you is foolish and always has been.


08-13-06

The Frontline episode "The Dark Side" is good. Nothing new at all in it, but a well gathered look at what happened; IMHO Frontline is the very best news show on television, and it's not even close.

I'm reminded of another human-weakness thing (see earlier post). It's that good people flee unpleasant situations, and the awful bosses sort of win by attracting people like them. Say you have a good business full of smart reasonable employees. Suddenly a really awful manager is hired. He imposes all sorts of ridiculous rules (you must arrive exactly at 9 AM each morning, you must wear Hawaiian shirts on Friday, there will be a meeting each morning where everyone must announce how much they love the company, etc.). The good employees will quit one by one, the awful manager will hire on replacements similar to himself, and thus he wins at transforming the company in his image.

This has happened in our government since 2001 at an unprecedented rate. Career beaurocrats, military members, intelligence analysts, etc. are resigning left and right because they cannot stand to work in this administration. They are, of course, being replaced by people favored by Bush's appointees. This turnover of all the levels of government staff will have a profound effect which will last 20-30 years.


08-13-06

The dirty secret about heirloom tomatos is that most of them just don't taste very good. Yes, they're beautiful in all their colors, and of course an organic vine-ripened heirloom will taste far better than a grocery store tomato that was picked green and sat for a week at a distributor. However, varieties like Champion and Early Girl have been cultivated and bred to improve them for a hundred years with modern science and they've got enhanced sugar content, acidity, and firmness. Many heirlooms are mushy, watery, bland. Also good tomato flavor has more to do with the soil, temperature, sun, and water than anything else. The way to perfect tomatos is the Japanese growing method : let the plants get medium size then pinch them off so they stop growing and put all their energy into fruit; if they make too much fruit, pinch off some of the buds to limit the number of tomatos on any one plant. Finally, when they are close to maturity, reduce the amount of watering to near-drought levels, so that the fruit doesn't become big and heavy with water, but rather stays small and full of concentrated flavor. Almost no farmer does this because they make so much more money growing as many on a plant as possible of water-bloated big tasteless tomatos.


08-13-06

Humans are incredibly susceptible to taking the easy way out, or avoiding inconvenience or conflict. If you want someone to do something, make it the easy default. The option that's good for them is difficult or annoying to acheive. This happens is software all the type - MS installs a bunch of crud all hooked together by default; sure you can plug in different apps but that's complicated and time consuming, in practice nobody (1% of users) does it. Of course commercial services do it all the time. You get the $50/month plan. If you call and wait on hold for an hour you can get $5 off per month. That adds up to be well worth it over the years, but nobody does it. You get some great mail in rebate, but you have to xerox your box top and mail out five copies with completed forms, then call in exactly 30 days later. No one does it.

Video game producers use this trick all the time. Programmers are well known to hate meetings and human interaction in general, so the trick is just to keep talking to the programmer until he gives in. "Can I have this feature in 2 days?" "Umm no, it's more like a 4 day task to do it right." "Well, what if you do this and this, can I have it then?" "Um, no, let me explain how coding works..." "Uh, okay, but what if we just don't debug it, can I have it in 2 days then?" ... the meeting goes on and on and finally the programmer surrenders, "Okay fine, I'll do it", thinking to himself "just go away and let me work", and knowing full well he's compromising the schedule and giving himself late nights.

Some human beings go about their whole lives like this. They create an aura about themselves that they will be incredibly unpleasant, bitchy, argumentative, if they don't get their way. Their way may be awful, but you go with it to avoid the trouble of dealing with them.

In sales/retail situations this principle comes into play all the time. Stores by default are in a mode to screw you over. They do this because they know 99% of the time you won't protest because humans hate conflict and hassles, you'll just take the extra charge or the crappy service or whatever and not complain. The opposite action is that if you do complain and make a big stink they will usually just give in and let you have your way because they also hate hassle; they're only screwing you over because it's so easy, once it becomes a hassle for them they give in too.

Lawyers and cities make their income with this principle. They can easily drop a fine or a suit on you which could be totally bogus, but most people will rightly just pay it rather than fight it because it's so much trouble to fight. Just imagine if you could walk up to anyone and take $20 from them and hand them a form detailing a very complicated process to get it back + interest. Most people would just let the $20 go; they might intend to do the process, they might even do the first steps of printing forms and mailing them in, but then they call and get put on hold and just say "fuck it". Of course this sounds ridiculous, but it happens all the time.

It also happens when the Vice President wants the intelligence to indicate there are WMD's and Al Qaeda ties in Iraq. He calls the CIA "did you find them?". They say no. The next day, "did you find them?". They say no. Every day. Several times a day. Goes and grills the analysts. Finally they just say "okay, fine". It works too when Rumsfeld grills his generals, "Can we do it with less troops?" "No, we need 400k", "Okay, I'm going to assign a bunch of awful beaurocrats and you can meet with them every day and work out a plan for less troops" "OMG, please not that, okay I'll agree, we can do it with less troops". It's sick that this simple principle of human weakness is at play even on the most critical of national security issues, when people's lives are at stake.


08-13-06

I really really fucking hate going out to breakfast with people. For one thing the food usually sucks and way is overpriced; breakfast is super easy and fun to make at home, I can make hella good french toast, pancakes, I buy Niman Ranch ham steaks, bacon, etc. for cheap at TJ's. The main problem, though, is that it takes so long to get everyone together and then wait at the always-slammed breakfast restaurant, that by the time we're there I'm starving and in a horrible mood because I haven't eaten yet and my blood sugar is crashing.

BAH! Fucking whore, my neighbor just complained and got me a ticket for blocking her driveway. I was like barely sticking out into and she had plenty of space to get in/out. Apparently she has a history of frivolous complaints, she's known in the neighborhood. I've now been here 5 days and have 2 tickets for $100. Pretty fucking sweet. Now I plan my revenge.


08-12-06

Ferry Building farmer's market Saturday is pretty good, excellent stuff and not crazy pricey. The shops inside are meh and overpriced. I dunno, I don't like the vibe at any of these upscale food shops, the staff is always in a big rush, if I'm going to spend $30/lb on cheese I want to have a good experience and talk to the staff and get educated and have some taste samples. The J line is very convenient for us and a pleasant ride. Acme bread is good but not like spectacular for the markup. "Ferry Plaza Seafood" is meh, cold bread is disgusting, it needs to be toasted, but the crab was top notch. Frog Hollow Farm oddly has very excellent espresso, and not so oddly very good turnovers.

Lucca is the bomb. It's an Italian deli/market with great meats, cheeses and prepared items like house made sausage and raviolis. Quality is superb and it's very cheap. WTG Lucca.

Oh, and WTF is up with Tartine not opening until 8 ? It's a freaking cafe/bakery, they're supposed to open at 5 AM or something sick early. The other good cafe on Gurrero (Que Tal) doesn't open until 8 either. You freaking lazy hippies, get up and make my pastries!

There's a lot of really good furniture shops in the Mission, with modern stuff from the 50's-60's, stuff like the old Danish style, Eames-alikes, I love that stuff.

On a related note, I had sold my Concept 2 Rower (awesome rowing machine, but too big for this apartment) for like $600 cash, so I was loaded with cash, and now it's all gone. The plethora of restaurants and tasty shopping options here is a very dangerous cash suction, I'll have to watch myself. I've never been a big shopper, I don't crave toys, I have no I-Pod, my cell phone is like 4 years old (that I got for free used from a friend), same with my TV, etc. but if I walk past tree-ripened nectarines or a flaky croissant, I can't resist them.


08-12-06

Is this a typo?


08-09-06

Bi-Rite is garbage. Boycott them, you fools! p.s. so is Valencia Whole Foods; can't we have a decent grocery store with well-informed staff that's not a major rip off? Don't give me some nonsense about high rent, the Mexican market down the street is selling entire cows for ten cents.


08-09-06

Things I learned in the move :

1. OMG it's worth it to pay for movers. They are kind of a rip off. Movers for us would've been around $1200, and doing it ourselves the total cost was around $500 (gas being about $150), but the $700 difference would've been a good value in the effort and pain and stress and time.

2. Do not, DO NOT use the U-Haul drive-on car towing thingies. Also don't bother with their insurance. The drive-on car thingy has lots of weird flanges and angles which will scrape the hell out of any car that's at all low (like mine). If your car has very high carriage (lots of clearance) it's fine. Just get the front-wheel tow. It works fine, and you have none of those problems. The U-Haul insurance for towing covers things like lightning, flood, fire. It does not cover damage to your car done by the trailer, or damage to the car from road debris or collision while being towed. Basically anything that's likely to happen and you might want covered, is not covered.

3. Shit, avoid any kind of funny driving situation when driving a big truck with a trailer. Do NOT, I repeat DO NOT ever try to reverse with the trailer other than very simple straight-back reverses. Do not get off any freeway exit you aren't familiar with. Do not pull into a gas station unless you can see an easy path of exit. Holy crap what a nightmare. Also, do not try to do anything with the trailer when parked on a slope. Park on flat ground. (Both my houses are on huge slopes).

4. Mexican day laborers are hella good workers. The U-Haul place on Bayshore in San Francisco has a bunch of day laborers waiting outside and when you come out they ask if you need help. Pick up two of those guys and your truck will be empty in an hour. They work hard for cheap and are very convenient. Our guys spoke broken English, but I have a little Spanish, and between us we did okay. The amount of damage they did was less than when I've used professional bonded movers.

5. If you're parking your moving truck on a steep slope, it's better to park facing downhill than facing uphill. Facing downhill you have to fight the slope to get things out, but that's not too bad. Facing uphill, everything falls out when you open the back, and in fact the pressure of everything trying to fall out might mean you can't even open the back.

6. I learned lots of things about moving out and getting your deposit. Some of these are specific to CA. First of all, generally - if your place is in good shape and you think you might get your whole deposit back, hire professional cleaners to thoroughly clean and you will probably get 100% of your deposit because your landlord doesn't really want to itemize and do all the paperwork to hold some. If your place is in awful shape, don't bother doing anything, they're going to take the whole deposit, just let them. Specifically : A) Landlord must pay you the interest accrued on your held security deposit. B) Landlord must do a pre-moveout inspection to tell you anything you have to fix and must give you a written copy of that. C) If work needs to be done, landlord must take several bids & provide you with receipts for work done. D) Landlord must charge you for damage relative to prorated value. eg. if the carpet cost $1000 to put in and you lived there two years, prorated value might be $800; Landlord can only charge you for damage beyond $200. E) When judging cleanliness, you only need to restore the unit to the state it was at move in. eg. if the walls were dirty at move in, you can have them at the same level of dirty on move out and landlord can't charge you.

7. Get a bigger truck that you think you need. That was bad; we got a 14' truck and started to fill it and realized it was not going to work, so we went back and got a 17' truck and filled that thing to the gills, and still had to load stuff on top of my car and leave some things behind. Also, having a trailer on the truck is 1000X harder than having a bigger truck. It's easier to drive a 20' truck than it is to drive a 12' with a trailer.


08-09-06

I have an old shirt that says "Dork" that I found in a thrift store, it's vintage 90's when they thought it was cool and funny to wear a shirt that just says "Dork". To me, this shirt is the epitome of modern ironic pop-culture-self-referential fashion.

It was originally intended to be funny because obviously the person wearing it was so cool (hey, they're wearing a Dork shirt, they must be cool), so the shirt was ironic and they were in fact not a dork.

The modern ironic wearer can wear it because they are aware that the original wearers were in fact dorks after all, and so the shirt is funny because it was in fact accurate in labeling its wearer a Dork.

But then, is the modern ironic wearer himself a dork or not? He's aware that it's dorky to think he's not a dork and the irony is funny, so that makes him a dork, but if he's aware and doing it ironically, then he's not a dork? But then it's not really funny, so he's just wearing a stupid shirt that he thinks is funny and ironic and it's not, so really that's pretty dorky.

So I enjoy the riddle of the dork shirt.


08-09-06

Chess programs like Deep Blue answer the wrong question, and IMHO it's not a very interesting one : can a brute force computer program beat a human? Sure. What's more interesting is : can a top human do better against a range of competition than the computer can? eg. does a human's awareness of the metagame and other players allow them to beat brute force simulation of the game.

Think about RoShamBo. Obviously a computer playing {random} cannot be beat. But that's not the interesting question, the more interesting thing is how to maximize your record against a range of smart & not so smart opponents. The same thing is true for poker. A poker program playing the game theory solution cannot be beat, but it may be far from optimal against a range of bad opponents, and humans playing against humans may be able to do far better by using the metagame and side channels of communication (speech, body language, etc., eg. the main channel of communication is the game action sequence, but there are side channels which can improve your play).


08-08-06

I'm in SF yesterday, we moved in yesterday and it was brutal ordeal. Right now I'm in an internet cafe and I've just realized how badly I missed being online the last few days. I feel powerless, igorant, lost with the net. The net is my sixth sense that lets me see all, know all; computers are the world where I feel competent, capable, at home, comfortable; out in the real world I'm unskilled, idiotic, weak.


08-04-06

I've got a bunch of books like "Temperley Lieb Recoupling Theory and Invariants of 3-Manifolds" from my days studying topological quantum field theory and such things. I've realized I'm never ever going to read them again, and they're heavy and I have a lot of them. So, I'm just throwing them out.


08-04-06

It's a good time to buy "PartyGaming" right now. Any time a stock gets hammered because of short term bad news, you should buy. "Neteller" was an awesome buy a few weeks ago, it got hammered by the scare about the online gaming bill, but it's already bounced back.


08-04-06

I just thought of a cool art installation idea. Set up a museum space to be like a Natural History Museum or a British Museum (stolen artifacts from other civilizations), but fill it entirely with made up stuff. Make the animals like Mathew Barney creations, the sculptures and vases and jewelry of the fallen civilization just some entirely made up culture of a place that doesnt exist, ala Borges. The whole exhibit should be totally deadpan, don't let on anywhere that it's all made up, just present it as "Relics of the Lost Civilization of Udar-Ktu".


08-04-06

If you ever come to San Luis Obispo, there's a really good "Bike Map" available; I guess local bike shops would have it, not sure where else. There's also an "AG Adventures" map which is really good, it lists all the farm stands and U-pick farms and places with tours and stuff like that. Both are really good quality maps even if you're not so much into those activities. Not sure where you can pick up the AG Adventures map, probably at the visitor center or something. I never knew about these things or perhaps they didn't exist, it took me years to learn everything in them.


08-03-06

I ordered by San Francisco Cable + Internet through "comcastoffers". From reading around on the net it appears to be a legitimate affiliate company that provides a good deal. They do, how ever, make it as painful as possible for you to actually get your rebate. Sigh.

I guess when I move I'm going to be offline for a while until I get the new internet service. Holy crap, what am I going to do with myself? Google needs to hurry up and put that free WiFi in the city.


08-03-06

A lot of people who are pro-electric-car don't really understand why it may or may not be good. They think electricity is like this magic juice that doesn't pollute, that it means you have an emission free vehicle. In reality, almost all electricity is made by burning fossil fuels. An electric car simply gets its energy from the fossil fuels that are burned in a power plant and sent over the wires. An efficient gas-burning car such as a "hybrid" gets its energy by burning fossil fuels directly in the car. In both cases you're just cracking carbon to make power. Depending on the details, one or the other may be more efficient; it's not at all clear that the pure-electric car is more efficient. The biggest advantage of the electric car is you can in theory get the energy from natural gas or "clean coal" or nuclear power, which pollute less and cost less than gasoline. In reality, most of our power plants are quite inefficient and pollute much more than they could/should.


08-03-06

So, I put Dan's car up on various sites, and I put my cats up on PetFinder. So far the only two contacts have been very interesting.

I got a contact about the car that was very suspicious; it was someone out of state and they had some funny arrangements. I sent back an email and it became immediately clear it was the fake check scam that's very common. What they do is send you a fake cashier's check and say someone will pick it up. They add the tow truck fee to the cashier's check and ask you to pay the pickup people via Western Union. Of course, Western Union takes real money from you and then you find out the check is fake and say "D'oh".

The contact about the cats was also immediately suspicious. It was obviously a form letter and the guy said he would arrange pickup. I asked a few questions and got this reply :

"the cats are for my family pet, I have a shipping company that will handle the pick up".

Which I presume means they're going to be shipped in a box to be fed to a crocodile or a tiger or something like that !?


08-01-06 [poker]

"Reverse Martingale" (betting more when ahead) obviously does not work in terms of EV, but it does mean that you are usually either UP a LOT or DOWN a LITTLE. In terms of real life, that's a pretty good system. If you're gambling small, maximizing your EV or hourly rate really doesn't do much for you. However, maximizing the chance of a big win while minimizing the risk of a big loss is pretty cool.

A lot of bad semi-pro poker players use a sort of Reverse Martingale system with their bankrolls. They play 100NL until they have $1000 or so, then move up to 200NL, they keep moving up as they win until they get to the top levels. Usually they play the top level for a while with a $100k bankroll until they go bust. Part of the reason why Martingale is not a good idea in poker is that the higher stakes are more difficult. If they were all the same difficulty, this system would not be bad, but by taking your good lucky winnings and playing at the much harder top level, you're playing very -EV.


08-01-06

So it looks like we're gonna move Sunday-Monday. We're renting a UHaul and doing it ourselves. It's gonna be fun parking & unloading in San Francisco. I guess the standard thing you do is just double park on the street and move if someone has to get their car out. Adding to the fun our apartment is on a very sloped street, as is so common in San Francisco.

I still haven't figured out what to do with the cats. I guess I'm going to try to give them away, perhaps to someone I can get them back from. This is my prototype of the "please take my cats" page .


08-01-06

TODO :

upload my FmtTextOut thingy

convert this blog to WordPress

put a Google search of my page here

put adds up

finish some of my better poker articles like the stack sizes one


07-31-06

It was another one of those good days that make me remember why I like being a poker pro. I played for about two hours in the morning and made $1000. Quitting time! So, I went for a long bike ride. It was nice and sunny out, but not too hot, so I felt strong and fast. It's just about the ugliest time of year here now, the summer wildflowers are dying off, all that's left are fields of giant yarrow plants. The vineyards are now covered with ripe fruits and the teams of Mexican workers have appeared in the vineyards like a seasonal migrating bird.

On the way home I was tired and completely zoning out, where your brain moves from topic to topic in a hazy stream of consciousness without really thinking about anything. Suddenly I realized that I was going like 2 miles an hour. While I was zoned out my body had just quit working hard without me even realizing it. It's funny how that happens, we have a powerful built in laziness reflex, designed by Evolution to save energy in case we need it to flee from a Saber Tooth Tiger, or to jump on tasty prey. Just like the way the Cheetah will give up chase even though it could catch its prey because it never wants to exhaust itself, so the recreational cyclist will find himself puttering along without constant vigiliance to force himself to work.

I only have a few days left in San Luis and I'm trying to think of the things I'll miss here that I really want to do before I leave. All I can think of are outdoor things - cycling, going to the beach, hiking. So, I'm trying to do those.


07-30-06 [poker]

I just realized one of the things about poker that makes it so hard is that everyone around you is saying ridiculously wrong things all the time. All the TV shows are just full of horrible horrible advice, even the online boards & many of the books are just full of horrible advice. Things like "don't go broke in a limped pot" or "don't get all in preflop with AK", or people saying "how did you go broke with such a weak hand?" when you make a bluff with 83o or something. It's really hard to keep all that junk out of your head, because the problem is it's *close* to being right, which makes it dangerous. It gets in your head and starts corrupting your thinking. It's sort of like if you had to go to a biology class taught by Darwin and right after went to a biology class taught by Lamarck.


07-29-06

Charles's guide to the spectrum of modern journalism :

On the liberal end, you have things like The Nation & Mother Jones. These are slightly wacky-liberal. I think they believe there are crazy right wing conspiracies that don't really exist. Personally I don't think there is a "vast right wing conspiracy". Rather, the ring wingers just act on their own or in little groups to accomplish similar goals. It's more of a network of cells, with a few leaders; if you take out one leader, another will take his place; the cells can operate independently, but they all work for a common goal which they believe fanatically. The RNC is the "base" if you will.

The New York Times is the next step, sort of slightly right of center. If anything they're like "Clinton Democrats". They're pro-war, they generally support and don't question America's government, they're very pro free market, pro Wall Street, pro big business. If they're liberal on anything it's tiny issues like abortion, women's rights, gay rights, things like that. They pay lip service to the environment, but don't really advocate doing anything significant to help the Earth or bring it up very often, they don't favor anything that costs American business anything.

The Wall Street Journal is sort of like the ruling elite's rag for themselves, like a Pravda, a party-financed propaganda rag. Aside from trying to drill in the propaganda to push various initiatives, it contains news for the elite, such as where to get your Rolls Royce jewel encrusted, or how to save money by firing your employees and outsourcing, food recipes for condor eggs, things like that.

What's that? I forgot Fox News, you say? Oh my, really? I thought that was just a comedy channel, you know, like the Daily Show or something. You mean people take that seriously like it's real news? Oh my lord.


07-29-06

Why am I not playing in the World Series of Poker this year? A lot of people are asking, so I thought I'd answer. Originally when I went pro I was planning on playing, but over time I changed my mind, because I decided it was pretty -EV. Here's why :

1. The structures really suck. You start with a number of chips equal to the dollar buy-in, and the blinds start at 25/50. This means $10,000 main event is good, but all the cheaper tournaments that are more in my price range are just short-stack crap-shoots. Also the blinds go up fast, and because it's live you only maybe get 10-20 hands per blind level, which is awful.

2. The vig is really high. Harrah's take 4-6% and you're expected to tip the dealers on top of that. Add to that travel expences, etc. and the cost of playing is way too high to possibly be +EV.

3. You probably won't get on TV unless you win a bracelet at a smaller event; the smaller events aren't televised anymore except for special moments involving pros or final tables. TV time has added value but the chance of getting it is very slim.

4. I kind of suck at live poker. I hardly ever play live so I don't have much experience with body language, controlling my own tells, table talk, all that stuff. I also get really bored because the action is so slow and it makes me zone out and lose focus. I can't maintain a state of high focus for 12 hours.

So, basically I decided the only event really worth playing was the main event, and I didn't want to put up $10k for that where my edge is not that great.

Only really great thing about the Main Event is there's tons of added value to winning, because of the publicity, endorsements, etc. you get. If there are 6000 players, the prize pool is $60M but there's almost $10M of added value to winning, so you get some bonus equity right off the bat for that. For someone like me who could turn a win into an announcer/author career, the extra equity could be even higher. Still, if I played every year for 50 years the chance of winning even once in that time is 1/50 or so.


07-27-06

One of the problem's with Israel's actions (and to some extent the war in Iraq) is the long term economic impact. Massive destruction of infrastructure and destabilization of basic economic activity can send those already poor areas into severe poverty. That breeds hopelessness and desperation, which turns people to religion and extremisim, and hate for those who helped create those conditions. It's well established that one of the best ways to fight terrorism & fundamentalism is education, freedom, and prosperity.


07-27-06

I'm trying to throw out lots of my old school papers. I'm definitely getting rid of all my college papers; it's funny looking back at them, I was so full of myself, I thought I had all these brilliant original ideas, I was figuring out new ways to derive the relativistic quantum field theory, proofs that spin had to be quantized, etc. looking back now I realize half of them are just wrong and the other half are standard/known. I was constantly inventing new notations and formalisms, basically because I couldn't really understand or wasn't comfortable with the standard ones.

I'm having trouble throwing out my notebooks from grad school though. I'm not yet far enough removed to be able to laugh at them, and they make me feel very wistful and sad to look back through them. Maybe someday I'll still go back and there will be some brilliant threads of ideas in these notebooks that I'll work off of? No, of course not, I'm never going to do anything useful with them, in fact after I move they'll just go back to sitting in a box. So why can't I just get rid of them?

I also have way too many books, but I can't bring myself to get rid of them either. Fiction books I actually mostly have no problem dumping except for a small handful that were special to me (mainly Kafka, Nabokov, Anna Karenina for auxilliary reasons). It's the nonfiction books I can't get rid of. I have a ton of science books, data compression books, and tons of computer graphics books. Maybe I'll need to look something up in them!! In reality I would just get rid of them except that you actually do still need them, which is F'ed up in this day in age. It's gay that you can't get book contents online, and it's gay that libraries in America just really suck.

Maybe I'll start a "ShareSpace" in San Francisco.

ShareSpace is a storage site for communally owned useful items.

ShareSpace is not for storing your personal junk that noone else wants to use.

ShareSpace is free.

ShareSpace items are not for you to take and keep. ShareSpace is for sharing.

ShareSpace is for people in a network of trust, either trusted by you or trusted by someone you trust.


07-27-06

Taxes for poker are so brutal. I pay federal income tax, state tax, and self-employment tax. Together they add up to almost 50% (!!). When you add that to the rake that the casinos take, and the amount that I blow off with tilt, it makes it so difficult to scrape a good profit out of the system.

But, I thought of a good way around the self employment tax - get a job! As long as I make more money from something else than I do from poker, the poker can be a hobby and the other thing can be my "real job". So, I could do something like make $40k from poker and $45k from some other job. Perhaps I could do something like software contracting a few months out of the year and make enough that it's more than I make from poker the rest of the year.


07-27-06

I should start an online pay service with zero commission. You easily make enough money from interest on the "float", and can make some more money from fees for improper usage. I could put paypal/neteller/etc. out of business.


07-25-06

There is no such thing as "not gambling". There are only different levels of risk. The wise person does not choose "not to gamble", rather they look at the risk/reward of various options and choose appropriately. Choosing the lowest risk option usually means sacrificing a lot of EV, which may or may not be wise.


07-22-06 [poker]

Consider a simple "pushbot" situation. I'll just assume a cash game or early in an MTT so payout structures don't matter, just chip EV.

Folded to you on the button. Only the blinds remain. You have C chips (in units of big blinds) and the blinds cover you (effective stacks all C). If you can only push or fold, should you push?

The correct way to do this is to guess some push range for you. Then assume the blinds know your push range and compute the correct call range for them. Then iteratively trying changing your push range, so that you find your push range that maximizes your EV over the whole range. (in each case assume the blinds know your range and make the perfect decision).

To see if you should push a hole H, you see if H is in the optimal range for you.

Okay, so as far as I know that's just review. In order to compute this you have to iterate many times over all holes for each person because you try a range for yourself, then try all calling ranges for both blinds to compute their optimal actions, then tweak your range & repeat until it stabilizes.

Here's an idea I had for a simple approximation :

It's folded to you on the button and you look down and see hand H. Assume your push range is all hands >= H. Now compute what the blinds should do given that range for you. Now consider pushing the actual hand H against the blinds' calling ranges. If it's +EV, then push, if not, don't.

Now, obviously this is an approximation and it doesn't get the actual EV right at all, but does it get the range right? I think it's very close and it's hard for me to see how/where it could fail.

Say for example in a given situation the correct push range is hands >= AQo. Folds to you and you have AQo, you'll make the right decision of course. What if you have AJo ? This should show up as -EV to push because if it was +EV it would've been added to the correct range, so we should get this right. What if you have QQ? We'll assume your range is only QQ+ so the blinds will fold much more, but it still should show up as a +EV push and tell you the right answer.

Anyone have an idea how this approximate procedure could yield a different result than the correct procedure?

BTW this is different than the Sklansky-Chubukov numbers because I'm assuming the blinds know your exact push range and make the perfect decision, but they don't know your actual hole cards.


07-22-06

Our apartment in SF is right near where the Mexican day laborers stand for jobs. I was thinking of just renting a U-Haul or something and grabbing some of them to unload it. (ala Stephen Colbert:) Great idea, or greatest idea?

Oh yeah, we got approved on the Mission apartment; woo hoo, sort of. It's small for two people, we're going to have to get along well! I'm not sure if my bed (Queen) is going to even fit in the bedroom.


07-21-06

I found this really simple beautiful Ode to the SF Bike Messenger .

Bicycle Film Festival in SF in September. Woot.


07-21-06

I guess we're gonna have a garage sale Sunday morning. The small stuff is free to anyone I know, so come on by.


Charles Blooom [cb][at][cbloom][dot][com]
Send Me Email

Back to the Index

The free web counter says you are visitor number