cbloom rants

I am an artist working in the medium of blog.

7/18/2009

07-18-09 - Alcohol is Poison

I quit drinking about two months ago; I've had a few sips out at restaurants but basically haven't had a drop at home. I just decided to stop for a while and see how it went. It's amazing, it's better than I ever imagined; my body feels energetic and healthy all the time. I sleep better, have more hours of the day when I'm thinking clearly, am generally happier. I guess that's all obvious, but the amazing clear feeling in my head all the time was unexpected.

There have also been some surprising benefits. I'm flossing for the first time in my life. I'm actually doing dishes every day (which would amaze people who have seen my past dish-doing habits). These basically come from the fact that I now have the long horribly long boring empty night time to fill with random activity.

One thing I've always noticed is the massive gulf in productive life activity between nerdy ADD people who don't drink and "normal" people ; you ask the nerd what he's been up to last week and it's "learned to play the harpsichord and composed a sonata, created a board game and had the pieces CNC cut, built my own submarine" , you ask the normal person what they've been up to "oh, you know, hanging out, having some beers". Mmmm, good for you.

The other big thing affecting me is that it's so much easier to be fit and healthy and happy when you're single. I always get out of shape when I get into a serious relationship. It's not that I got my goal and don't want to work out anymore, it's just that there's no time. You spend all your free time hanging out, and you do a lot of things in relationships like drinking and eating out and such that really mess up the body. When I'm single I can do weird stuff like just eat at all kinds of odd hours when my body tells me it needs food, or eat around a workout. Like I might intentionally eat dinner at 5 PM so that when I got off work at 7:30 I'm all digested and can work out then. The whole "having dinner with your mate" thing is really tough for fitness.

If you're trying to rehab an injury or make a big shift in your fitness, I highly recommend cutting out alcohol. It dehydrates muscles, decreases anabolism, hurts your sleep. It's also just a lot of empty calories, so it's an easy way to decrease your caloric intake without hurting your nutrition. It also leads to a lot of secondary bad behavior, such as over-eating, late night eating, etc.


Random : The Firefox spell corrector wants me to spell "judgement" as "judgment" . WTF ? Apparently "judgement" is British English and "judgment" is American English. "judgment is so wrong ; that "dgm" is so ugly.

The coppa from Armandino's Salumi is fucking fantabulous. (thanks!)

I biked the Juanita hill the other day; it's not a bad climb actually, it's a good mild difficulty overall, but nowhere too steep for my double. The only shitty thing about it is all the fast traffic, and there are a lot of big branches in the shoulder from all the trees around, so it's very dangerous to take the descent fast. Some commuter guy just destroyed me up the climb; I stuck to him for about a half mile, but I can't compete with someone who does it every day.

Also, if you want to see an indictment of modern American society, just go to Kirkland on a summer Friday night. It's a bizarre confluence of all the worst dregs of America - there are hordes of cackling suburban soccer moms, spoiled 16 year old girls trying to park their Range Rover head first in tiny parking spots, frat boys, investment bankers, and wanna-be ghetto playas cruising around in dropped escalades with chrome spinnas. It's really quite a shocking scene to behold. It's kind of strange that both the rich trash and the poor trash seem to be attracted to Kirkland on a warm summer eve. It's like they can all smell the common pheromones of empty skulls and rotten souls and are drawn together by it.

7/17/2009

07-17-09 - WSOP Spoilers

(The final table is set but won't play until November)

Phil Ivey makes the final table of the Main Event; maybe the best WSOP by any player ever considering how much bigger and tougher the fields are now.

Lots of the pros are twittering their WSOP this year, but Ivey's too fucking cool for that. He hired some underling to twitter for him.

Ivey has some 100-1 bets on himself winning the ME ; like his last props these just seem ridiculous -EV for him, but once again here he is. Rumored to win around $15 M in props if he wins the ME from Andy Bloch, Howard Lederer, Durrr and others.

In other news, chipleader redneck Darvin Moon who got in on a satellite is refusing to wear logos or take endorsements, purportedly giving up about a million dollars.

The cash games in Bobby's Room have supposedly been going nuts. Gus is believed to be the big PLO fish and huge $2k/$4k PLO games are running around him.

Durrrr has issued a live challenge

07-17-09 - Bicycle Randoms

Single Speeds are currently the SUV's of the bike world. That is, they're ridiculously cheap to make, and yet many of them are selling for *more* than geared bikes.

Bicycle components are absurdly marked up; you get a huge discount when buying a full bike; the problem is the wholesale price for a full groupo is very low, but there's some kind of collusion agreement in the business where nobody will sell you the bits for a reasonable price. You can almost do better by just buying an entire bike at a closeout sale, throwing away the frame and keeping the components.

Bike shop employees are such huge fucking dicks. They treat everyone like a moron and are just generally unhelpful and don't address what you came in asking for, but instead try to steer you to what they have in stock. You fuckers, if you would just be nice to me I would come to you and spend lots of money on components. The other day I was trying to talk to a mechanic about building up my new frame and he said "does it have a fork? do you even know what a fork is?" ; umm, okay, goodbye. You fucking cocks. I guess I'll just buy everything online even though I'd much rather go to a local shop, just because I refuse to give you pricks any of my business.

When people ask me about buying a bike I usually tell them to just go to a good local shop and try some bikes, but I'm rather down on that myself. For one thing they just show me the shitty bikes they happen to carry which is not a very wide selection. For another, I don't think you can actually get any kind of feel for a bike from a short test ride like that. Personally the main thing I feel in a test ride is - this stem isn't the length I like, I would change it, these handlebars aren't the width I'd like, I would change them, these aren't the pedals or seat I like, I'd change them, the seat and bars aren't the height I like, I'd change them. All I can tell is that it's uncomfortable because I haven't adjusted it just the way I want, it doesn't tell you anything about the bike fundamentally. Of course any brand new bike should shift and brake perfectly, if it doesn't it just means the mechanic put it together wrong.

I just bought an old Bridgestone 550. It's a nice steel frame, triple butted Tange CroMoly, but it's not a collector's brand so it's very cheap unlike old Colnagos or something which are just ridiculous. I looked into just buying a new steel frame, but I couldn't find what I wanted. I'll review a few options :

Torelli Corsa Strada is very nice and only about $800. It's not lugged so it's not super sexy, but the big problem for me is it has no down-tube braze-ons. I guess nobody uses downtube shifters any more except that's exactly what I want right now. About $800.

Tommasini Sintesi ; very nice, a bit overly blingy for my taste; more importantly - just absurdly expensive. Almost $2000 for just the frame. For that price you can get a very nice hand-made full custom bike from a framebuilder here in the US. If you buy this you are dumb. (I could say the same for new Colnagos or De Rosa). (there are tons of great US framebuilders, Richard Sachs is just one doing nice work).

SOMA Speedster / Stanyan looks nice, it's pretty, lugged, cheap ($800) - but then you start to look at the geometry - WTF did they do ? It's a weird shape, it's super low, the head tube is tiny. You have to run a very high elevated stem and seatpost; it seems to be designed that way intentionally, WTF. The Smoothie seems like the only decent SOMA bike but they are very ugly IMO.

The Gios Compact Pro is a gorgeous gorgeous lovely Italian frame, not too crazy at $1250, but again like the Speedster once you look into you go "WTF" ? It has a weird "Criterium" geometry with a steeper seat tube and a taller shorter frame. No good. Bikes should be 73/73 only!

Mercian in the UK makes some really lovely new classic-style steel frames. They do everything right, they have the good classic geometry, all the right braze-ons. I think their prices might be reasonable if you're in the UK, but with the conversion to the USD they're too much.

List of things I have to do to my bike :


Remove BB, Fork & Headset
Degrease frame
Get rear dropouts spread to 130
Overhaul headset, new grease and bearings, replace if too bad
See if new cartridge BB will fit
Brush off any rust on frame
Rust proof frame
Touch up frame paint with clear coat
Wax frame
Put on components

7/16/2009

07-16-09 - Thursday Randoms

It occurs to me that eBay has no way of preventing you from colluding on auctions, having a friend come in and bid with your money to kick up your price. Yeah if you did it over and over many many times with the same people they would pick up on it, but as long as you change accounts or just don't do it a ton they can't stop it.

When I toured the house I'm looking to rent, it had the previous tenant's posessions; it was full of the dishevlement of family life, child's toys. It was lovely. I want that so bad. A single person's home is never pleasantly cluttered, it's either spare or just messy.

I think Facebook is a disgusting waste of time, it's social masturbation, electronic gossip, and since nobody interesting has ever written anything of any use on Facebook, I have no reason to read it. However, I am very glad that Facebook exists, because it voluntarily sequesters the retards into their own corner of the internet that I never have to see. It's kind of amazing and wonderful how people do that to themselves; for example in life you see people with tribal arm bands, or pleated pants, or huge metal plugs through their nostrils - of course they're awful things to do to yourself and look ridiculous, but it's wonderful that the retards choose to do those things, because it instantly and overtly labels them so that you can easily just avoid them.

God damn I hate synthetic fabric. I went to buy a new comforter at JC Penney since I've had the same one since high school. 90% of them are some awful shiny crinkly weird feeling synthetic bullshit. I want to only touch cotton and wool and wood and flesh. I want to only smell dirt and coffee and sweat and grass.

7/15/2009

07-15-09 - Wednesday Rambles

Printers should just be on WiFi. In fact pretty much everything except video and power should be (speakers for example).

I got my standing desk set up. I'll post some pictures / progress report at some point. It really annoys me that we don't have a standardize docking multi-port. When I take my laptop from home to my sitting workstation at the office to my standing workstation, it should just be one cable that I plug for video, power, USB, etc.

Fucking god damn you web programmers suck so bad. When you put "Seattle WA" in the box for Expedia, you get a STOP! error screen saying : "We could not find any airports that match your search for seattle wa. We found the following airport with a similar name. Leaving from: Seattle, WA (SEA-Seattle - Tacoma Intl.)" . Umm, okay, seeing as there are NO OTHER CHOICES that are even close, maybe that is in fact the one that I intended, hmm ??

Obviously this case is just broken, but as a general point of computer program UI interaction design, in cases of semi-ambiguity like that, the right thing to do is not to have a modal "STOP" screen, but just rather go ahead and make your best guess and proceed, but provide a simple back up button. So when the user puts in something that you're 90% sure you know the answer to, just go ahead and immediately show them answer, and put a little button in the corner for back up & refine.

There are two points of this UI design that I think are crucial : 1. if you provide a fast path that is accessible in a predictable way, users will modify their own behavior over time to adapt to the fast path; they will learn patterns of use that make them more efficient, you should design the UI such that it is amenable to that, and 2. you should *never ever never never ever* have different sequences of screens. That is, the pattern of prompts and displays must be 100% deterministic - it should not be conditional. Over time users learn the pattern and will start typing without even looking at the screen. They can go much faster if it's a predictable rhythm, of prompt A - B - C. If you sometimes pop up another prompt - A - D - B - C depending on what they entered in A, they will be doing the B typing in D and it's all fucked up. Don't do it.

(I get similar stuff for Google Maps all the time. Like if you type in "la guardia" it gives you a "did you mean "la guardia airport" or "laguardia airport" ? and the two of them have location tags in the exact same spot. Actually the more I use Google Maps the more it pisses me off. The thing that sucks about it is that it's very modal, but it doesn't expose the modes to you. It has these states like "searching for address by name" or "searching for businesses near address" but once you get in one mode you can't switch from one to the other in any easy way. I wind up having to copy-paste the addresses and then go back to home and back to maps again to clear the state.)

I signed on the stupid house; I just know I'm gonna get fucked and in 6 months I'll be whining on here about how I have to move again, but I'm just so fucking sick of looking at places right now. It's dumb and irrational but I just want to get all these distractions out of my life so I can clear my head and focus on work. It's pretty much the way I make all my major decisions in life - I'm super picky and indecisive until I just get sick of looking and then make a snap irrational decision to take the first thing I see.

There's a house near my current apartment under construction, and also one near the new place. Both of them are these fucking amateur asshole productions where they are just taking forever. The one by my current house they literally work on maybe one day each month; it's literally been under construction the entire year that we've lived here and there's zero visible progress, they've worked on it maybe 20 days out of the whole year. And they always come from like 7 AM - 10 AM and then leave. And it's always just one guy, so he never gets anything done other than making a bunch of hammering and power saw noises to wake me up in the morning. WTF there should be laws against this shit. Hire a fucking proper crew and you could get the whole thing done in a week and be done with it and stop torturing your neighbors. I hate the nanny state explosion of stupid laws about everything, but every time you don't have a ridiculous law, people are fucking assholes. You have to dictate explicitly every single rule of basic behavior. (I know part of the delays with construction is probably the permit process which is in fact caused by the stupid permit laws - however I'm sure if we didn't have all the construction certification permit laws then people would build structural walls out of cardboard because they are fucking greedy retards who will fuck you in every way possible unless you force them not to).

People get the wrong idea of my mood from my blog. I'm actually very happy up here since summer hit. I'm spending tons of time outdoors in the sun, which = instant happiness for me. When I'm happy, I'm out exercising, running around. The only time I come in and sit at the cursed computer and write this nonsense is when I'm not happy. You pretty much get my unloading of virtiol. It's a sampling bias problem - the thoughts I choose to write here are not a random sample of my thoughts.

7/11/2009

07-11-09 - Saturday Rambles

I bought some underwear on Amazon, and now my main page "you would like this product" is full of closeups of guy's crotches. Yay.

Man it would be sweet to get those rub-down type massages that pro athletes get (mainly boxers and cyclists that I'm aware of, where they really grease you up and rub out the lactic acid). I've never known a "massage therapist" that did that.

When I was biking, I needed to adjust my seat, so I pulled over; I didn't have all the tools I needed, so as I was fiddling around, some guy rode by and yelled out "need help?" and I yelled "yes!" ; he came back and gave me an allen wrench and I got it done. The wonderful thing about cycling is that this is not really remarkable at all - cyclists always are just *human* to each other - you try to be considerate of other cyclists, don't cut them off, you ask if they need help when someone is stopped, etc. It's so pleasant and encouraging to me, as opposed to every other human interaction I have where people are just douches and dicks and manipulating and lieing and at each other's throats. I'd love to cut out all the things I do where people are rotten to each other and only do the things where people are nice to each other. So that means no dating, no pickup, no buying, no selling, no contracts or anything where you might need customer service, no driving. I'll just bike, go hiking (the day hike weekend warriors are total dicks who cut across switchbacks and don't yield to ascenders, but the serious hikers who you meet way deep in the woods are always super nice), and ... that's it, I can't think of any other activity where people are nice to each other.

Yay! The lake here is finally warm enough to swim in. The life guard lady yelled at me. Apparently you have to stay within 50 feet of shore. WTF. I've seen guys swimming right across the lake before. You can easily enough find lake shore with no lifeguard; the little fake sandy beaches get crowded, but there's lots of grass frontage on Lake Wash and you can jump in anywhere there (getting back out is a bit trickier). One problem is there is some very thick seaweedy type stuff (I guess it's not seaweed cuz it's fresh water, but underwater plants) that comes up almost to the surface. In the official swimming areas they cut that stuff out, but in the guerilla swim you can get tangled up in it and it's very hard to move; it feels like tentacles actually grabbing your arms and legs trying to hold you back.

I'm thinking about building up a bike on a classic steel frame with modern components. It would be really expensive, because individual components are absurdly overpriced, you get a big discount buying bikes as whole pieces, and it would take a lot of time (it would be so much quicker and easier if I had a full shop with a stand and cable on spools and whatnot). But it would be a fun project, and then I would have a bike that I was intimately connected to when I'm done.

It sucks being bigger than average in some ways (most of the time it's good). One is at thrift stores, anything good I find is always too small for me. Another is buying used bikes. There are shit tons of amazing great bikes on ebay in the 54-57 cm range. For me (58-61) there's very little.

Colnago is one of the premier steel frame manufacturers, but they make the ugliest paint jobs known to man; it's like they got some high school student from 1984 to air brush their frames; I totally expect to see a unicorn in space on their frames; ( example or example ). The people who think Colnago frames are beautiful are the same guys who wear those weird baggy pants to lift weights. ( Apparently they're called Zubaz Pants ; WTF ). A lot of bike bar tape and Zubaz pants comes in this random color speckle pattern that I think of as someone eating a bunch of skittles and then throwing up. ( oh, here's another Colnago ; it looks like a unicorn took a rainbow shit all over it )

( BTW you can also substitute rainbow barf or rainbow piss )

this is bicycle perfection; Italian steel with a flat top bar and chromed lugs. (the paint job on the frame could stand to be even a little simpler; I hate all the big badges). They are absurdly expensive though, around $2000 for just the frame. Even if that weren't a lot of money to me, I couldn't pay that just out of moral outrage. ( the Classic Bike Shop has a load of gorgeous frames ).

Urgg I really shouldn't be buying bikes right now since it's the peak of summer and the worst possible time to buy, but I'm just loving riding so much and I got a bee in my bonnet that it would be fun to build up a new bike and now I want to play. If you're smart you buy in December.

I think the US is the only 1st world country that still uses dry butt wiping technology. Come on, we're the freaking Roman Empire of the modern era, we should have bathroom slaves to lick our butts clean ! Or at least washlets. Hmm, I've been watching the HBO Rome too much. It's pretty great, so far as trashy soft-core porn soap operas go. It's great for vicarious living fantasies; I'd love to have hot naked chicks scattered around my house all the time, and when upstairs neighbor starts clog dancing at 1 AM I'd just grab my sword and go up and stab him in the neck.

There're a lot of gay guys around Cap Hill here that are just absurdly skinny, very fit, bugling muscles, but with taught skin and bones poking through like a starving African. I hope they just have AIDS and aren't doing that to themselves intentionally, cuz that would be really fucked up.

Honesty in selling is never rewarded. People might consciously think "I appreciate he's being up front about the drawbacks" but they will still go with the liar. This comes up with us at RAD selling middleware. We're very honest about our products and tend to be realistic and limited in our features; many of our competitors promise the kitchen sink but deliver a non-functioning mess. Still, a buyer looking at a feature list that says "just X" or "X + Y + Z + W" will often choose the one they know is too good to be true. Fortunately for us we have Mitch and a great reputation, but you see it all the time in corporate purchasing evaluations. Of course it also comes up in dating and selling yourself. If you're honest about your drawbacks right from the beginning, that turns them off and it blows it. If instead you keep quiet and get them hooked and then much later reveal your problems, you win, it's too late for them to back out. Like if on your first date you just say "you know, I'd like to fuck you, but you're just too dumb for us to have a serious relationship" it's over. The liar is always rewarded. Similarly, people never tell you about STD's. You might think you're being careful and trying to wait until you know someone so you can trust them. HA! They might tell you *after* you have sex that they have HPV or Herpes but just don't have an outbreak right now. Gee thanks. They know subconsciously that if they say anything before you will not give them credit for their honesty, rather you will just flee.

I was thinking about this because of the house I'm renting. The owner has been up front with me that they might have to move back in to the house next year. They didn't need to tell me that, by law they can just do it whenever they want. If they were a real dick they wouldn't have said anything and I would've just moved in. Instead they were up front, and while in an abstract rational sense I respect them for that, in a real sense it makes me not want to move in, and basically just winds up punishing them for their honesty.

BTW the house rental situation also makes me think of something I've written before - the right way to handle promises of contingencies is by betting. Say the owner tells me there's a 10% chance that they will move back in. There's a very easy way to force them to be honest about that percent - just make a bet. I put up $1000 , they put up $10,000. If they were honest about the percent, it's neutral EV, nobody profits on average. But if they were lying and the real chance is more like 25% or 50%, then I make a profit on average. Of course nobody is rational enough to agree to something like this.

7/10/2009

07-10-09 - Friday Rambles

ZOMG the traffic here has reached whole new levels of clusterfuck since the I-90 bridge is closed for repairs. I worked at home the last two days to avoid it, but decided to come in today for a change of scenery and am seriously regretting it. (ADDENDUM : ZOMG I just looked again, I'm gonna be here until midnight, sigh sigh sigh).

One of my problems with working at the office is that I always seem to forget something that I want/need at home or vice-versa. When I went home I accidentally left some papers I wanted to read here. Today I forgot to bring in my swim suit so I could swim over lunch. URG. The bigger problem is I just feel like I can't relax at all ever the entire day at work. When I'm home I'll work intensely for a few hours, then just take a break and really relax, have some food, watch TV, take a walk, then get back into it. I can take breaks at work, but they're not relaxing breaks, I never unclench. I get a burst of productivity in the morning, but then I'm drained and I never refuel and the afternoon is just a waste of staring at the code and poking at the keyboard and nothing really happening.

The Nissan salesman isn't returning my calls & emails. WTF WTF. I want to boycott all you fuckers who try so hard not to sell me things, but then I would just boycott everything.

Sea Breeze Farm sells at Seattle Farmer's markets and seems to have some amazing pork products. More investigation is needed.

Burning Beast is this weekend at the Smoke Farm. here's a video . Meh it looks a bit lame but I do like the idea of a big food festival on an old farm.

So I might have found the house to rent here . It's not in exactly the spot I want, but it's not bad (0.6 mi to the action). I'm putting down an application anyway. It's pretty great (the kitchen is fantastic - big butcher block counters, gas stove, lots of light) and it has a porch; I want to drink iced tea and say "I say I say" on my porch. Some of the neighboring houses look a little sketchy, like they might have students in them, which is worrisome, but it's hard to ever know what your neighbors will be like. (I'm vaguely considering going and knocking on the door to talk to the current resident and ask them what the neighbors are like).

Anyway, this rental experience has got me mildly outraged. First of all the realtor was half an hour late to our appointment to see the place. I'm no longer shocked at sales people's ridiculous absurd lack of professionalism and courtesy to clients. Okay, let's move on.

The thing that's really absurd is the owners might need to move back in. Apparently they work for MSFT overseas and might get summoned back here. They find out on August 15, but they are trying to get someone to take a lease that starts August 1. WTF WTF that's just absurdly greedy and dickish. How could you not just wait to lease it until August 15 !? In order to avoid losing 2 weeks, maybe a month of rent, you want someone to move in and then perhaps immediately move out again. That's just so selfish and unreasonable. So I'm putting an application in, but I'll have to talk to them about this moving back issue and be a total dick about it and get something in writing. (though I'm not sure if anything even in writing protects me - I think in WA homeowners have unconditional right of return to evict tenants and move back in)

In other news : Amazon wins. That's it, any doubt about who would win the internet shopping wars, or whether Amazon adds value as an entry point is over for me. Every other shopping web site I've used is just so absurdly broken, I refuse to use anything else. Cambria Bike has been really slow shipping me stuff and their site is so slow and their web forms and account management are so fucking janky, it's infuriating. It's so much better to just buy bike stuff from merchants that sell through Amazon. Even people who have their whole own online store I'd rather go through their Amazon store (LL Bean for example - I like their pajamas cuz you can get tall sizes, and they're actually pure cotton instead of fucking douche-atrine neo-polymer-crinkle-stretch-shine-azin). Which brings me to another rant :

I HATE CAPTCHAS !! OMG I hate that that fucking dumb douchebag got a god damn Genius grant for the dumbest fucking most obvious god damn idea in the fucking universe. I seem to spend half my damn time typing in catchas now because I have a lot of trouble reading them myself, and I'm never sure if the damn page needs me to capitalize correctly or not. I hate "recaptchas" even more because the scanned words are often super illegible. The worst thing is that I would say 90% of pages that use captchas are horrifically fucking broken. I type in some fucking annoying web form, and then there's a damn captcha to submit, and of course I fuck something up in the captcha, AND IT CLEARS THE DAMN WEB FORM !! ZOMG ! Oh it's so angering. Fuck you captcha guy, you should get the MacArthur Knee to the Groin Award.

On that note - YARG the fucking "confirm your email address" box is so tilting. Hello, I fucking copy-paste to fill it in (oh, which reminds me, I have found a few sites that make the confirm box with a flash widgets and forbid copy-pasting in it; that's really fucking dickish). The worst thing is just like captchas, so many damn sites will just wipe out your whole form if you hit "submit" and you left the "confirm your email address" box blank.

I finally got out biking yesterday; it had been over a week due to my mom being here and then a spell of shitty weather. I had a little spell of depression again, and desperately needed my visit to the 30 mile psychiatrist. There's this wonderful metaphorical doctor in my body who literally pumps liquid happiness into my veins around mile 30. If I don't see him regularly it's like going cold turkey off Prozac and it's not a good scene. I've never found any other activity that so reliably gives me relief from my congenital gloom.

On the minus side, the fucking awful pot holed roads here are literally destroying my beloved expensive bike. My head set is grinding a bit now, presumably because the bearings are getting damaged, and I've got a ding in front rim. Fuck. I was thinking of just driving to Mercer Island to just ride there, but of course you can't do that now with the 90 closed. Blurg. Also, a lot of the worst pot holes are of course on the right edge of the road where the bike is supposed to be, so I get the unpleasant choice of swerving out into traffic to avoid the pot hole or slamming into it. (sadly cars generally only give you enough room for the size of your bike, which completely traps you into a straight line, and is really not enough room; you need a few feet to be able to swerve to avoid road obstacles). That's literally the scenario that made me crash and separate my shoulder back in SF (wiping out on a pot hole because I couldn't avoid it due to cars all around).

Seattle in the summer is glorious.

7/07/2009

07-07-09 - The World Is Horrible

I took the Montlake ramp this morning, which I never do, cuz I had to get gas. It's one of the ramps that gets all jammed up with traffic and there's a metered light. As I'm sitting there slowly losing what small supply of patience I had available for the day, I watch single driver cars go by in the carpool lane. First a mercedes went buy, then a BMW, then an Audi RS4. I was think "rich douchebags think they're entitled" but then a Chevy and a Pontiac went by and my stereotype was ruined.

Some days I feel like I've done all the "work" I can stand in the first 30 minutes of commuting (write tech/algorithm code is not really "work" , though dealing with MSDev or cdep project settings is "work", as is fighting the damn broken IEEE web site to give me the papers I paid for). Yes, yes, I know I'm a big whiner, there are poor people who take ten buses to commute for three hours to their shitty job at McDonalds where some pimply teenage assistant manager treats them like garbage all day long, the customers are rude to them, and they breathe oil fumes under flourescent lights.

Anyway, I pull out of the ramp and step on the gas to rapidly get up to speed and merge smoothly, as I always do. After a few seconds I notice there's a cop right behind me. He follows me closely over the bridge and then puts his lights on to pull me over. Hmm.. I'm not really exactly sure what he's going to say. He comes up to the car and says "I saw you accelerate out of that ramp and rapidly change lanes". My jaw just drops. Uh, yeah, that's what you're fucking supposed to do dumbass. I say "okay". Wow. I'm in shock, I feel like when the guy asked me not to park in front of his house on the completely empty street, my mind is blown. He winds up writing me a ticket for going 65 (I have no idea how fast I was going, there was lots of traffic, I was just going the same speed as the guy in front of me). After he writes the ticket he tells me to be safe pulling back into traffic, so I say "so you want me to get on slowly and jam everyone up?" ; he gives me a dirty look and says "just be safe". (I try hard not to sass cops anymore; I got my car towed once because I told off a cop that pulled me over for expired registration; it's safer to sass them after they've written the ticket because then they'd have to do a whole new set of paperwork to write a new one). (I was particularly aggravated because I'd just been watching all the fuckers cheat the carpool lane).

Ugh. I certainly don't deny that I deserve speeding tickets, I speed my balls off. The funny thing is I never seem to get them when I'm actually speeding. I got one for going 60 mph on the freeway in Houston. I got a ticket in Seattle ten years ago for "unnecessary tire noise" when I went around a corner - this in a fucking Prelude (I told the cop at the time, dude I couldn't spin my tires if I wanted to). The only time I actually got a ticket when I was speeding was out in the country in Texas near Sugarland in a bunch of empty roads for a subdivision that hadn't been built yet. (it was off the 99; I guess it was probably "Long Meadow Farms" or "Waterside Estates" or something, though none of that existed at the time). Houston suburb construction is incredibly corrupt; the big builders all have connections in government, and the roads and power and sewer lines are laid in advance and paid for by the city, effectively a huge subsididy for these suburb builders who keep pushing ever farther out into undeveloped land. I'd found a patch of roads that had been laid out into fields that had only months ago been that dense nasty Texas woods, and was speeding my balls off around the empty roads; I got a ticket for doing 85 in a 45 there which normally would be a license-suspending kind of thing but I guess the cop had a little bit of mercy based on the fact that there was not another human in sight for miles around.

In my youth this ticket would have made me outraged, angry at society, and talking of all kinds of drastic reactions. Now it just makes me sad. I'm tired.

I watched the movie "Stroszek" a little while ago. It's pretty terrible, but it had some great moments. It's a Werner Herzog movie, so it's a total mess. Herzog movies are sort of like the film equivalent of experimental free jazz. He just sort of has a vague idea and tosses some people in front of a camera and sees what happens. Yes, they are as terrible as that sounds, but there are moments of brilliance, and even when they are failures at least they're interesting and full of humanity. The best scenes in Stroszek IMO are when the banker comes to foreclose on the house and Bruno rants the whole time about how this bastard is crushing his life while doing it with a smile. All Herzog movies are about the struggle of individuals to claw a way through this world with a bit of self-determination, dignity, and individuality.


It looks like my cable is fixed; I'm still not sure exactly what the problem was. The technician who came out replaced a bunch of lines, but I had had zero problems for a year and then suddenly had problems all the time so I don't really believe that bad lines were the problem. I assume that something changed upstream which made the signal to my building worse, which then pushed me over a threshold where my bad lines started causing problems. I've heard this can happen when the cable company adds a bunch of subscribes and splits an upstream wire, it lowers signal quality for everyone.

Anyway, I wanted to write some notes cuz the technician said some things I didn't know. One was to not use a signal booster. Since my SNR was shitty before I was running a Motorola high-bandwidth signal booster, which fixed my problem with squiggly lines and noise on my TV. Apparently the cable modem doesn't like it, because the modem only works in a certain power band, and I was actually giving it too much power. The other thing was that one of my interior lines was an old wire. Apparently they've changed the wires, the newer wires can carry a wider signal spectrum. I guess that's part of how they keep upping the bandwidth they can send on the wires - higher frequencies.

07-07-09 - Small Image Compression Notes , Part 2

Deblocking survey :

There are a few different ways to come at the problem theoretically.

One is to work on post-decode data in spatial domain. These approaches basically work by explicitly trying to detect block edges and just filter them. This is the approach, for example, of the H264 "in loop deblocking filter" which there is a lot of literature on. See for example "Adaptive Deblocking Filter" by List, Joch, et.al. For an example of the filter-based approach on the 8x8 DCT case see "DCT-Based Image Compression using Wavelet-Based Algorithm with Efficient Deblocking Filter" by Yan and Chen. (BTW the JPEG standard contains a "block smoother" which basically predicts AC1 as a linear function from neighboring block coefficients. This is okay for the specific case of smooth images and very high quantization, but is generally not awesome and is an ancient technique. Ignore.)

A more hardcore version of the filtering approach is "Combined Frequency and Spatial Domain Algorithm for the Removal of Blocking Artifacts" which does adaptively-offset and adaptively-directed gaussian filters ; this is sort of like the image denoising stuff that creates pixel gradient flow vectors - the filters are local gradient adaptive so they don't go across real edges. This appears to perform quite well but is very expensive.

The other general approach is a more abstract maximum-likelihood idea. You received a lossy compressed image I. You know the original image was one of the many which when compressed produces I. You want to output the one that was most likely the true original image. This is a maximum likelihood problem, and requires some a-priori model of what you think "natural" images look like. In particular, for the case of quantized DCT coefficients, you have a quantized DCT coefficient C ; instead of just reproducing Q*C you can reproduce anything in the range { Q*C - Q/2 , Q*C + Q/2 } , and you should choose the thing in that range that makes the "best" image.

"Optimal JPEG Decoding" (1998) by Jung, Antonini, Barlaud takes this approach directly. Their results are not awesome though; presumably because their prior is not good. A more modern version of the same idea is "Block Artifact Reduction Using a Transform-Domain Markov Random Field Model" by Li and Delp which uses a better model for image likelihood, but is in the same vein of doing a brute force search in the allowed coefficient space to find the maximum-likelihood reproduction.

A related method that was popular for a while is "Projection onto Convex Sets". This is basically just a method of satisfying simple convex constraints in an optimization. Here our constraint is that the quantized coefficient stay the same, that is, repro in { Q*C - Q/2 , Q*C + Q/2 } . You then apply some target function, such as you want smoothness or something, and take iterative steps towards that goal and project onto the constraints one by one. There are a lot more details to this, I haven't paid too much attention to it because these are all crazy expensive and I want something realtime.

"Blocking Artifact Detection and Reduction in Compressed Data" by Triantafyllidis etal (2002) is in the same vein but simpler and more analytical. It again worse directly in DCT space on coefficients within their quantization range, but it directly solves for the ideal reconstruction value as a function of neighbors based on minimization of specific simple deblocking metric. You wind up with just some equations for how to modify each coefficient in terms of neighbor coefficients. While the paper is good, I think one of their base assumptions - that the frequencies can be dealt with independently - is not sound, and most other people do not make that assumption.

"Derivation of Prediction Equations for Blocking Effect Reduction" by Gopal Lakhani and Norman Zhong (1999) is an older, simpler still version of the Triantafyllidis paper. They only correct the first few coefficients and solve for optimal reconstruction to minimize MSDS (mean squared difference of slopes). You can actually look at the equations here and they're very intuitively obviously right. For example, the first AC coefficient should be corrected using the difference of the neighboring DC coefficients. In case you don't see that that's obviously right, if you have DC's like [8],[16],[24] after dequantization at Q=8, and your AC's all got quantized to zero, obviously the original image most likely had a smooth slope, so the first AC in the middle block should be predicted to be the linear interpolation.

An interesting one I found that's related to the stuff I tried with smooth reconstruction of the DC band is : "Improvement of DCT-based Compression Algorithms Using Poisson�s Equation" by Yamatani and Saito (2006) .

BTW a related issue that often comes up is the incorrectness of center dequantization of AC coefficients. I've written about this before and lots of these papers mention it; the best full note on it is : "Biased Reconstruction for JPEG Decoding" by Price.

The very modern stuff has gotten quite arcane. People now are doing things like directional overcomplete wavelets on the reproduced image; with this they can detect both block artifacts and also ringing and other quantized transform artifacts. They then use maximum-likelihood markov models to guess what the source image was that produced this output. This stuff is extremely complex and I haven't really followed it because it's nowhere near realtime, but probably the best solution for offline very high quality JPEG decoders.

An interesting outlier is John Costella's Unblock . It's based on a clever simple idea that I've never seen anywhere else. Unblock is based on the assumption that pixels near the block boundaries come from the same model as pixels in the centers of blocks. That sounds obvious but it's quite profound. It means that pixels near the edges of blocks should have the same statistics as pixels in the centers (in the maximum likelihood lingo, this is a prior we can use to choose an optimal output). In particular, it's useful because in the DCT the interior pixels are much more accurate than the edge pixels. What Unblock does is looks at the statistics of the decompressed interior pixels and assumes those are our goal, and then it forces the pixels near the edge to match the statistics of the interior. The corrections are applied as wide smooth filters.

7/06/2009

07-06-09 - Small Image Compression Notes

Lapping appears to be a complete red herring. I've wasted a lot of time on it and I'm very angry. I've been trying to work up a lapped block DCT image coder. The idea is that block-DCT-based is good for speed and parallelization for micro-core architectures, good for memory bandwidth, etc. and the lapping theoretically lets you avoid some of the nasty block artifacts by effectively extending your basis functions.

In practice it just doesn't work. I've tried lots of different lapping methods, and in all of them if I make a parameterized lap amount based on a kaiser-bessel-derived window and then tweak the lap amount to maximize SSIM, it tunes to no lapping at all. Basically what's happening is that the extra bit rate cost caused by the forward lap scrambling things up is too great for the win of smoother basis functions on decompress to make up. Obviously in a few contrived cases it does help, such as on very smooth images at very high compression. (of course the large lap basis functions are a form of modeling - they will help any time the image is smooth over the larger area, and hurt when it is not).

The really retarded thing about this is that areas where the image is very smooth over a large area are the cases we already handle very well!! Yeah sure naive JPEG looks awful, but even a deblocking filter after decompress can fix that case very easily. In areas that aren't smooth, lapping actually makes artifacts like ringing worse.

The other issue is I'm having a little trouble with lagrange bitstream optimization. Basically my DCT block coder does a form of "trellis quantization" (which I wrote about before) where it can selectively zero coefficients if it decides it gets an R/D win by doing so. Obviously this gives you a nice RMSE win at a given rate (by design it does so - any time it finds a coefficient to zero, it steps up the R/D slope). But what does this actually do?

Think about trying to make the best bit stream for a given rate. Say two bits per pixel. If we don't do any lagrange optimization at all, we might pick some quantizer, say Q = 16. Now we turn on lagrange optimization, it finds some coefficients to zero, that reduces the bit rate, so to get back to the target bit rate, we can use a lower quantizer. It searches for the right lagrange lambda by iterating a few times and we wind up with something like Q = 12 , and some values zeroed, and a better RMSE. What's happened is we got to use a lower quantizer, so we made more, larger, nonzero coefficients, and then we selectively zeroed a few that took the most R/D.

But what does this actually do to the image qualitatively? What it does is increase the quality everywhere (Q =16 goes to Q=12) , but then it stomps on the quality in a few isolated spots (trellis quantization zeros some coefficients). If you compare the two images, the lagrange optimized one looks better everywhere, but then is very smooth and blurred out in a few spots. Normally this is not a big deal and it's just a win, but sometimes I've found it actually looks really awful.

Even if you optimize for some perceptual metric like SSIM it doesn't detect how bad this is, because SSIM is still a local measurement and this is a nonlocal artifact. Your eyes very quickly pick out that part of the image has been blurred way more than the rest of it. (in other cases it does the same thing, but it's actually good; it sort of acts like a bilateral filter actually, it will give bits to the high contrast edges and kill coefficients in the texture part, so for like images of skin it does a nice job of keeping the edges sharp and just smoothing out the interior, as opposed to non-lagrange-optimized JPEG which allocates bits equally and will preserve the skin pore detail and make the edges all ringy and chopped up).

I guess the fix to this is some hacky/heuristic way to just force the lagrange optimization not to be too aggressive.

I guess this is also an example of a computer problem that I've observed many times in various forms : when you let a very aggressive optimizer run wild seeking some path to maximize some metric, it will do so, and if your metric does not perfectly measure exactly the thing that you actually want to optimize, you can get some very strange/bad results.

old rants