4/21/2010

04-21-10 - Car Alignment

I got a "performance alignment" done for my car about a week ago. I'd heard it was the #1 best thing to do for your car if you are a serious driver (after or when you get good tires if your car doesn't come with them), but MY GOD I was not prepared for what an incredible difference it was. It was like "night and day" or "a whole new car" or whatever cliche you want to use to express the incredible difference in feel. It really felt like a different car. Before, the 997 felt powerful but a bit heavy and clumsy and mild, with the more aggressive alignment, it felt way sharper, much more "bite" for turn-in, much more grip in the corners, able to get more power down through the corner without losing grip, just awesome. I immediately went out and did some mad driving around the city because it just felt so damn good.

If you are a serious driver and are still running stock alignment, I highly recommend it. But do your research first.

Most people think of "alignment" as making the wheels straight to fix pulling issues. In reality alignment is much more than that and can give you a lot of parameters to tweak to play with the way the car handles. It's much cheaper than doing suspension mods, and often more effective. The main things you will want adjusted are toe and camber. I posted these links before :

Wheel Alignment A Short Course
Caster, Camber, Toe

But to repeat myself a bit, most stock alignments come with pretty significant toe-in and pretty minimal camber. What the toe-in does is make the car more stable, it acts to straighten itself. That means the front end doesn't wander under braking or when you hit bumps. Most pussy comfort drivers complain when cars are "wiggly" (which means they are "lively"), so manufacturers sell the cars with lots of toe-in. This makes them feel nice and stable on the freeway, but it sucks for making crisp turns. The other issue is camber - lots of negative camber means the wheels are tilted in; this will give you better contact patches when the car is in a lean through a corner. If you spend most of your time going straight on freeways or just turning slowly, then the stock alignment with minimal camber is fine, but if you do a lot of hard cornering, you will get much better grip with lots of negative camber. I now have my car set to zero toe and -1.2 degrees camber. Race cars will go even more extreme, sometimes even using toe *out* which makes them super lively and easy to turn-in, and tons of negative camber.

For Porsches you can ask for the "RoW Performance alignment" or just go to a good sport alignment shop and ask for an "aggressive street alignment" or something like that.

The next step on a Porsche is get to the GT3 "Lower Control Arms" which let you go to greater negative camber (-2 degrees seems good). You can hack this with "camber plates" but camber plates are like $50 and the LCA's are like $150 and labor will be $200 or so, so just go with the better LCA solution.

4/20/2010

04-20-10 - Life

One of the shittiest things you can do is to dump on someone's happiness. Happiness is rare and difficult, and often involves lots of work to build up to it. When somebody finds a new hobby that is making them really happy and they always want to tell stories about it at lunch ("a funny thing happened last weekend at the model airplane field...") you just have to suck it up and feign interest and be a good listener. When somebody buys a new toy (like an iPad) you have to go along with the after-purchase show-off euphoria and do the proper oohs and ahs and feign jealousy. If you think that what they're doing or buying is actually awful and a waste of time, just shut the fuck up and keep it to yourself.

Similarly with events - if someone asks you out to do something, and they are clearly enjoying it but you are not - be a fucking good sport and try to get in the spirit and at least feign moderate happiness. Let them enjoy their time, don't make yourself into a distraction and annoyance by griping or wandering off or whatever. When you agree to go out with someone you implicitly agree that if they like it and you don't, you will go along with it. It's not that hard. And just tolerating it while obviously showing your annoyance and saying "I'm just here for you, let me know when we can leave" does not count as going along with it, it's still shitty.

Recently I've been thinking about this party I went to at the top of the condo tower on First Hill. My date at the time made me go despite my apprehension. As I expected, it was fucking awful, just a mob of people I didn't know with nothing to talk about, no dancing, no games, just stupid fucking boring people drinking and chit chatting about nonsense. It was excruciating, and like the dick that I am, even though I was "being a good sport" in my mind, I made it abundandtly clear with my body language and constant wandering off that I was not happy. The funny thing is that many months later, the horrible party is actually one of the more memorable social events that I've attended in the last few years. It gives me something to talk about, the condo tower it was in is the tallest building around and the party was right at the top so it's a unique experience. It's weird this need to "do something" that we have; when I haven't been out much I get this feeling of stir craziness, that I'm wasting my life, you get depressed without knowing why exactly, then you go out to some event and it's just awful the whole time and you can't wait to leave, and then months later it is the thing you did that you remember, not all those days when you actually were happy and just stayed home or went for a bike ride or whatever it is that you actually enjoy.

People who suck at things are a real problem. In theory, it doesn't actually matter whether people are good at things or not - we put a lot of our self worth into our "skills" (I am so fucking great because I'm good at X), but in reality when I'm hanging out with someone I could care less about their skills. What actually matters is their attitude and emotional intelligence and sense of humor and kindness and so on, that is what actually makes you a good person to be with. But in reality, people who suck at things are just a fucking drag. The problem is that *they* care that they suck. The result is that they are often in a funk because they screwed something up, or they are super afraid of being judged, or they have big insecurity problems. The result is that they bring you down because they don't want you to be so much better at them, they force you to hide your own skills. For example, I really don't mind if someone cooks for me and makes mediocre food; what makes it fun or not is their attitude, their conversation, their enthusiasm, in fact if they are excited about their food that is way more important than whether it is actually good or not (the converse is people who are really awesome cooks but act all humble and self-deprecating about it which is just annoying and unpleasant). However, that almost never works out because they imagine you are thinking horrible things about them and their food. Similarly with playing board games or sports with someone; when I toss a frisbee with someone, I don't care how great they are, yeah it's better if you can actually make some throws and catches, but enthusiasm and good attitude and hustle are way more important. The problem is that people who suck get down on themselves and get in a funk and then it's just annoying to be with them.

People who can suck and not care about it are very rare and very cool. In fact that is one of my great unattained goals for myself.

04-20-10 - Speeders Beware

Press Release :

Starting today, April 9, and extending through May 1st law enforcement agencies throughout
Washington will crack down on speeding with extra patrols on local roads, state highways 
and interstate freeways.

From April 9th through May 1st, extra speeding patrols will begin throughout Washington on:

1.      Fridays from 11 a.m. to 7 p.m.
2.      Saturdays from noon to 8 p.m.
3.      Sundays from noon to 8 p.m.

4/19/2010

04-19-10 - PNWR Driver Skills Day

I went and did the Porsche club "Driver Skills" DS day last weekend. It's a prerequisite before you get to run on the real race track (aka "Driver Education" or DE), and I thought it would be a good way to get used to running the car closer to the limit, since I'm not very familiar with it yet. DS is held at Bremerton Raceway Park which is just an abandoned air strip. It's just a big tarmac and they put a bunch of cones on it and you do various exercises. (Porsche club also runs its autocross out there).

The day starts by stripping everything loose out of your car - everything! Things typically forgotten are floor mats and the tire kit in your trunk. Take it all out. It's good to bring a big tub or something to keep your gear in that you took out of your car.

Then there was a one hour ground school. If you know anything about race driving (eg. if you know what a "late apex" is or what the "traction budget" is) then this is pretty boring, but to their credit the guys speaking were actually pretty charistmatic and moved quickly and made it not excruciating.

The rest of the day consisted of six different exercise stations. You spend an hour at each station then rotate to the next. At each station there are 10 cars or so and you take turns running the course, and a few volunteer instructors rotate through the cars so you almost always have an instructor in car with you. The instructors were uniformly great guys & gals - they volunteer and were very friendly and knowledgeable and had great attitudes despite us trying to make them vomit and standing in the rain all day.

Oh yeah, it was wet, it rained pretty hard all day. That made everything very slippery. In one way it was good to get to practice with the car in the wet, but it would have been nice to get some runs in the dry.

The sessions were :

Skidpad (donuts) : they wet the track and you go around in circles. You can really feel how you can throttle steer in this exercise, more throttle and you circle wider, less throttle you come in. Like most of the things you learn in DS, you should already know this in your brain, but you need to actually feel it in your car and hands for it to become intuition. I also go to play with the understeer/oversteer characteristics of my car. When I gradually take the throttle up past the limit of adhesion, my car goes into understeer and plows out; if I really punch the throttle hard, it will kick the rear out and go into an oversteer spin. I was never able to kick the rear out and control it, it's hard to do in the C4S because you have to kick the throttle so hard to get it to step out. The main mistake I was making was once I got into a spin I was reflexively putting the clutch in and letting off the throttle abruptly; what I need to do is just ease down on the throttle and try to catch it before bailing out.

Braking / accident avoidance : part 1 is go as fast as you can and then slam on the brakes to full stop as late as you can. This was a trip because it is absolutely amazing how fast the car can stop when you are fully on the brakes (even in the wet!). The goal of the exercise is to brake as late as possible and still stop before the cone. I kept braking way too soon because my intuition says "you have to brake now!" ; by the end I started getting closer, but I really needed more time to get used to it. Part 2 was accident avoidance; a surprise obstacle (a very brave volunteer) jumps out to one side, and you have to brake and steer away at the same time. Again I was just not braking hard enough here at first, because my gut says you can't steer if you're braking that hard; in fact you can!

Handling oval : run the car around in an oval to practice apexing. Get up to as much speed as possible before the turn, hard on the brakes without much turning, look for the apex, turn hard and try to power out past the apex, making a perfect "late apex" turn. Hard to do in practice. A few things I need to get better at on this - make sure you actually look and stare at the apex, it will be out your side window as you brake in; make sure you brake enough before turning in, you need to get well slow or you'll understeer and miss the apex. Basically what you're doing is prolonging your straights on both entry and exit, which is what gives you more speed; you brake late and very hard so you enter deep into the turn, then at very low speed you turn hard to aim back past the apex, then get on the power early and power out hard in a very gradual curve.

Slalom : weaving between cones and trying to go as fast as possible. The main thing here is smoothness and looking ahead. This felt pretty natural to me, it is a lot like skiing. The main thing is to look way ahead and have your line planned out, take the most gradual arc you can, don't jerk the car back and forth.

Advanced Slalom : like slalom, but cones are not in a straight line, so you have to look ahead more and use more planning. Pretty fun. The skill is a lot like slalom, being smooth, but also a bit like Autocross in visualizing the "empty space"; that is, don't see the cones and think that you have to drive past the cones, rather see all the empty space that the cones allow and pick your best line in that empty space - often there are straights hidden in the cones, and straights = speed.

+ bonus shifting training. I actually learned a lot from this. One that I was coached on all day by instructors was to keep your hands on the wheel! I habitually get my hand over to the shifter too often, sometimes I'll anticipate I might have to shift in a corner and I go move my hand over to the stick to prepare, but that means I'm not cornering as well, you need to stay on the wheel, the quickly pop over to the shifter and quickly pop back. I also do some funny unnecessary extra movements, like sometimes I love the shifter to neutral, let go for a half second, and then move it into the next gear. The main thing was some guidance on rev matching downshifts. I know how to do it, but it's great to just have someone watch you and pay attention to the RPM dial and the lurch of the car and tell you your mistake each time. The goal is to make a perfectly smooth downshift so that you can't feel it at all. The main thing is the Porsche engine is real "heavy" , you need to give it a real good kick of gas to get the revs up, and you need to do it well enough before you let the clutch out. A basic downshift should consist of : clutch in, select neutral, increase throttle, select gear, clutch out. The detail here is crucial - you increase throttle *before* you select gear. Another little trick I learned is that it's better to over-shoot the RPM for rev match than to undershoot it, so err on the side of too much gas.

Autocross : obviously the exercise that puts it all together, we got to do a few runs on a tiny autocross course. This was a fucking blast, and I plan to do some more Auto-X some day. You get to slam on the gas for the straights, hard on the brakes, make the turns, it involves all the skills. Like the advanced slalom course, a lot of the skill is in picking a good line, which means not following the cones - use the freedom of all that extra tarmac. Take your turns as wide and sweeping as you can, turn soft wiggles into straights. My main mistakes were : following the direction of the cones too much, not going as wide as I should after and before corners, coming into corners too fast - you have to really brake hard coming in, not getting on throttle hard enough or early enough in the straights - intuitively you see a 50 foot long straight before the next turn and your mind says "okay just coast in there for the straight" but what you need to do it floor it as late as possible and then slam on the brakes before the turn.

I learned a lot about my driving and my car's responses, so it was a huge success, and a lot of fun. It is a very long day - I woke up around 5 AM to get the ferry, so I was exhausted by the end, and the other drawback is that there is an awful lot of standing around. With 10 cars on each skill, that means you only spend 1/10 of the time actually driving and the rest is waiting. It would be so awesome to be the only one out there with just a real top instructor and tons of track time, you could improve so much.

There were also a huge variety of people there; it was only about 50% Porsches or maybe a bit less, lots of BMWs, and a few red herrings like a Hyundai Genesis and a Pontiac G8. There were a few real track cars that were trailered in. There were also people there who were not real speed drivers at all, who just wanted to get more comfortable with their cars.

My car is not really a good autocross car at all, it's too big and heavy, the 4WD is a disadvantage, and really the visibility of a convertible would help a lot. I was jealous of the people in Miatas and Elises and shit like that - a small light RWD car would be a fucking blast for AutoX, you can get up and down in speed quickly. Also the power of my car is really a disadvantage for me in a way - I'm not good enough to handle the car at the speeds it can do.

The ideal track car would be something really cheap so you don't have to worry about the abuse it will get, light, only medium power so it can't go fast enough to hurt me, RWD front engine. Put sticky tires on it and do some suspension mods. But there's no way I will ever track often enough for it to be worth having a "track car". It's another one of those things that you would ideally share between 10 friends or something.

4/15/2010

04-15-10 - Laptop Part 2

Well I need to hurry up and get something so I decided to just go for the Thinkpad W510. And... Lenovo is completely out of stock on the reasonable screens ( "HD+" at 1600x900 ). Apparently they are indefinitely out of stock; they say "more than 4 weeks" but the reality is they have lost their supplier so they are just fucked.

So I'm looking at Dells. The Dell Latitude E6410 is very similar to the Thinkpad T410 ; Core i5 or i7 duals, nice magnesium case, 14.1" at 1440x900 matte (worse than my current lappy which is 1440x1050 but passable). NVidia 3100M. Proper hard drive options. All around it looks like a very nice general purpose lappy.

Dell Precision M4500 is the "mobile workstation" , equivalent to the Thinkpad W510. It's interesting how Dell and Lenovo seem to have lined up their products as direct competing analogues; there's some economic theory term for that. Anyway, it has options for dual or quad Core i5/i7, NV 1800 or 880 GPU, it can do two hard disks, screen is 15.6" at 1600x900 or 1920x1080 ; seems reasonable for me. One problem is it only has 2 RAM slots, so I'll max out at 8 GB, while the Thinkpad W510 has four. (Correction : no it can't really do two hard disks, it can run a second SSD in a mini slot, that's not as good as the 6500 which can do two real disks).

(the Dell M6500 is the even bigger one, but it doesn't offer a DX11 GPU either so there's really no point in stepping up to it; the best is an ATI FirePro M7740 which is a shitty business certified kind of thing on DX 10.1 ; it does have a proper 17" 16:10 screen in "WUXGA" (1920x1200) and you can get it factory built with RAID 0 2x500 GB 7200 RPM disks which is not bad. )

Dell has some retarded naming going on right now, watch out for that. eg the Latitude 6400 and 6500 are the old model, the xx10 are the new ones. The Dell Precision 4400 , 6400, etc are the old ones, the x500 are the new ones. WTF. Also the "Precision M" series is actually part of the "Latitude E" family and thus is compatible with the "E Series" docking solutions. But the docking changed from the 6400 to the 6410 generation so watch out for that. Yay. All these business Dell lappies do docking, though there are many reports of problems with that. It looks like those problems may be various drivers, but come on Dell, you need to get your shit together.

(BTW you might think the AlienWares would be ever better, but no, not really. The best GPU you can get is an ATI HD 4870 which is DX 10. The screens are glossy and they don't have docking. Boo).

A few niggles to look at :

WiMAX ? So far as I know WiMax is not really rolled out in the US yet, but it is exciting for the future. Since I don't actually use my lappy on the go this is probably not for me. Maybe someday I'll have a WiMax router at home and cancel my cable.

Dual Core at something like 2.4 / 2.6 Ghz or Quad Core at 1.6 / 1.73 Ghz ? I suspect that the dual is actually faster for most current usage, but I'm tempted to go with the quad to give myself a better test environment for my multicore code. It is also nice the way multicore fixes Windows broke ass multi-tasking so that you can actually have 3 apps running and they are all fully responsive.

(BTW all you fucking app developers should not be gobbling so much CPU when your app is out of focus god damnit, especially gobbling CPU for fucking cutesy UI update shit when you are not focus).

128 GB SSD or 500 GB 7200 RPM HD ? SSD is no doubt the win for a thin/light lappy, but for this type of workstation lappy I'm not so sure. There are reports of data loss, performance degradation over time, etc. that are a bit scary for something I hope to run for 5-10 years. The fast random access and not having to worry about defrag is a pretty huge win though. One annoyance is I would have to buy my own SSD third party and reintall Windows.

Small addendum on SSDs : yeah they are the win. Going for a 160 GB Intel X25-M. Make sure you get a "G2" (gen2) as Gen 1 apparently has no TRIM. Also the X25-E is *way* faster, but crazy expensive and only 32 GB. That indicates though that SSD speeds are going to continue to shoot up and prices come down.

4/14/2010

04-14-10 - Friendly Apps

A recent post by Multimedia Mike is about something that I advocate which I think most people don't do enough of : make your app easy for yourself to use. Developers too often think of usability as an annoyance which they have to do for end users, and they will struggle and deal with great annoyances when they use their own apps themselves. This is ridiculous, you are your most important user. Mike mentions a few good things, I'll repeat him a bit :

1. Make good defaults. Make things that you always want automatic. With every command line option, ask if you usually want it on or off, and make the default the thing you usually want, and then make the option to turn it off. Be aggressive about "refactoring" over time. If you find that you have to type a million options to run your app right, something is wrong. If you have trouble remembering your own options, something is wrong. Another detail : make options automatically turn each other on. For example when I enable "heavy prepass mocomp search" I now also automatically enable "save motion to disk cache" because I pretty much always want them together and I kept running mocomp search and forgetting to enable saving it to disk.

2. Make full logging and saving the default. You never want to run your app and have it produce some weird results or crash or something and have no record of it because your forgot to enable logging. Full logging should be on by default, and only disabled from the command line in weird cases. All my apps now automatically write logs to c:\logs\appname.log using argv[0] automatically. My video test app also writes a log for each run which is named with the date and time so that I have logs of every run ever. Each log also writes out info about the build and the command line options so that I am never left thinking "WTF run was this?". (Actually there's one thing I'm still not doing here that I really should do, which is to record the sync state of perforce that was used to build the current EXE ; we had that working at Oddworld and it is the fucking bomb). This is a variant of the Carmack adage that "no time spent visualizing your algorithm is ever wasted" ; my variant is something like "no amount of logging is too much".

2.1. Make clean versions of your logs and output! Just because you are logging tons of detail, that's not an excuse to just output a ton of shit that is impossible to parse. You might need a "detailed log" and a "summary log" ; certainly don't just spit it all to stdout. If you find yourself having to go through the log constantly to find the little bit of info you actually want, pull that bit out and format it right. Do computations for yourself in the app instead of doing them afterwards. eg. I found I kept going into my logs to get the total lagrange J, so make your app compute it for you and display a nice clean summary at the end. But try to avoid just numeric summaries, instead output CSV's and stuff with more detail, charts and graphs so that your human brain can see patterns and problems. You want to present things to yourself just like you would in a technical talk to your peers - make it clear and pretty, that helps you to parse the data on an intellectual level.

3. Never fail your app because the user forgot to do something obvious - instead make the app fix it. For example if the user gives me output file names which are in a directory that doesn't exist, I make the directory. I wrote a big rant about this long ago which still stands, about validating user options *before* you do your two hour CPU crunching. You should definitely do that, but even failing that you should simply not fail ever. For example if you for some reason cannot validate file names before your run, then if you fail to open the output file, just output to c:\fallback_output or something.

4. Make the app automatically do things that you always have to do. eg. I have to preprocess some video formats before I can read them - fold that into the app so it gets done for you automatically. This kind of stuff has merit in the short term just because it saves time and aggravation, but it has *loads* of merit in the long term when you come back to some work after months away from it and you can't remember how the fuck to make your app work any more - if it's all in the code and it's all automatic you don't have to remember the complicated process of how to use things right. Similarly, app parameter ranges should be clearly documented and preferrably rescaled into reasonable ranges. Say your take a lagrange lambda parameter and reasonable ranges are like 0.0001 to 0.002 ; that's damn annoying, so rescale to expose it as [0,1] to the command line.

5. Be flexible in how you parse command line args. Write a proper flexible parser once and be done with it and stop writing cheap hacky parsers for every new app you write. For example I don't want to have to figure out whether your app wants "-i7" or "-i 7" or "-i=7" or "--i7" , just accept all of them and stop bothering me.

People tend to cover up a lot of this stuff using perl scripts or batch files or whatever, which is okay to some extent *IF* you check in and document your scripts/batches the same way you do your code. The problem is that most people are very sloppy/lazy about their helper scripts, so they become broken and undocumented over time and you still have the problem where you come back to something after a year and are like "fuck how do I run this?".

04-14-10 - Apples

I can't eat an apple without almost choking. There's always a moment after I've eaten about half the apple where the back-log of unchewed bits hits critical blockage volume in my throat; I struggle to force it down with hard swallowing, and then panic and try to find water quickly. An apple without a glass of water is almost a booby trap, if someone hands you an apple they might be trying to kill you.

One of the great mysteries of living in Seattle is that it is fucking impossible to find a decent apple up here. The apples in grocery stores here are uniformly disgusting - mealy, mushy, old, often with brown soft spots. The exact same chain stores carry the exact same apples in California and they are fresh and crisp and delightful. Now, you snobavores might suggest I get my apples at a local farmer's market. Sadly, the snobosphere has ruined farmers markets for apples. It's no long cool enough to just get a nice farmer-grown Fuji or Gala or some shit, so they no longer sell those proper apples, it's all "heritage varietals".

Heritage apples are fucking inedible. They're astringent, dry, pastey. It's almost like taking a bite out of a raw potato, which I just realized is probably where "pomme de terre" came from. In French class people would always be like "apple of the earth? WTF are those Frenchies thinking, potatos and apples are nothing alike" , but in fact old apples from before the bitterness was bred out and the sugar was bred up were like potatos!

4/12/2010

04-12-10 - Laptop search

My beloved lappy has lost its video out, so I've been using it recently as an actual laptop. My god this blows. All of you who actuall use laptops as laptops - beware! - you are destroying your neck and back. It's horrifically bad for you.

Anyway, now I'm forced to find a new one. This one has lasted me almost 10 years (!) and in many ways the technology is still cutting edge. (for example sadly you cannot beat the 1400x1050 matte LCD screen I have). I would like to find a lappy which will last me the next 10 years. Because the lappy is so important to me and the lifetime I expect of it is so long, price is basically no object. Hell, I should probably pay $10k if it really gave me a much better lappy, as this is my primary work computer; it is my artistic tool and my livelihood. Sadly there does not really exist such a thing as a superpremium laptop which is actually better.

Let's go through what I've learned so far :

CPU : Intel is in a code name obfuscation shit hole. The Core i3 / i5 / i7 seem to all be the same chip. These are all "Nehalem" variants , though Nehalem is technically only the 45 nm "Lynnfield" variant and "Clarkdale" is the 32 nm "Westmere" variant. Jebus. For mobile, you would prefer the 32 nm Clarkdale for lower power/heat. It seems Clarkdales are the 500 and 600 series, while Lynnfields are the 700+ series. The letter after the number actually contains the most info. "Q" means quad core, others are dual core. Most of them have hyperthreading, but a few are nerfed. "L" seems to mean low power. The "M" mobile chips draw 35 W , the "LM" draw 25. So for example i7 620 M = Clarkdale with two cores at 35 W, i7 720 QM = Lynnfield quad core at 45 W. See pcgameshardware for example. Correction : I guess the mobile variant of Clarkdale is called Arrandale, and it has better integrated graphics than Lynnfield. See Anand .

GPU : the GPU situation is sadly not much changed from one year ago. The ATI 5000 series is the only DX11 part. The 5400 is low power with full capability, but quite slow - even a 3800 is faster on many games. The 5600/5800 are the strongest parts, much much faster than a 5400. The number in the last tens indicates a revving up of speed within the genus, eg. 5430,5450,5470 are progressively faster. NVidia has renamed the 9400 the "Ion" but otherwise has not done much. Optimus seamless switching seems to have been picked up in very few laptops indeed. Reportedly the integrated Intel graphics is much better now. ATI's switchable and crossfire solutions are reported to be very poor with bad driver quality. See notebookcheck for example.

Screen : it is impossible to find a 4:3 any more (God's Own screen dimension). The best you can do is 16:10. There are new confusing acronyms for screen resolutions. For example Lenovo advertises some screens merely as "HD" or "HD+" ; it turns out "HD" is 1366x768 (ugh) and "HD+" is 1600x900 (meh). The best options are WSXGA+ at 1680x1050 for 15-16" or WXGA+ at 1440x900 for 14-15" . You can find matte though it's a bit hard. The only real standout screen I've seen is the Dell Studio XPS which has an RGB LED ; sadly it is crippled by extra glossy nerf-ware technology. IPS is the best panel technology (wide viewing angle) but they basically do not exist at all in laptops right now.

SSD : There seems to be still a massive variation in SSD brands . The Intel X25 series looks like the only safe bet. Most notebook makers won't tell you the brand of the SSD they put in (usually it's some kind of Samsung), so the safest thing is to spec with minimum drive and put in your own. Only with an Intel SSD and Windows 7 will you be sure to get proper "TRIM" support, which helps a lot.s

Other junk : Intel 6200 or 6300 seems the win for Wifi. Everybody does gigabit ethernet now. Sadly quite a few don't have eSATA ports. Almost nobody has DVI out any more, but most have either DisplayPort or HDMI ; sadly if they have DisplayPort out you probably need a fancy adaptor for an older or non-top-of-the-line LCD.

Docking : since I basically just carry my laptop between home and work, I would really like a proper docking solution this time. Sadly, there is still no universal docking standard, and the off brands don't have docks. Many people try to pass off USB docks, but those are shit. (people are also trying to pass off external USB video cards, umm no). The only serious docks I could find are HP and Lenovo.

OS : I guess Win 7 is the way to go, and then may as well go 64 bit I guess.

Let's look at some concrete options :

Dell, Sony - these once proud brands seem to have crumbled into producers of fragile shit. Maybe some of their products are okay, but the Sony Vaio E series is flimsy junk, and there are widespread reports of spontaneously self-destructing Dells and zero customer service.

Asus, Acer, Toshiba. These guys now only make set-spec laptops that you cannot customize. Nope.

Thinkpad T410 : cool, quiet (33 db max), Core i5 or i7 duals, NV Quadro NVS 3100M (bollocks), 14.1" matte LED WXGA+ (1440x900) - but terrible brightness/contrast/color , solid cover latch (yay!), eSata, real docking port, great quality keyboard with real pgup and home in the right place. Conclusion : everything is the win about this except the shit GPU. The new keyboard is supposedly much worse than the old Thinkpad keyboard, but still miles ahead of anyone else, and I hardly ever use it anyway.

Thinkpad W510 : 15.6" "HD+" 1600x900 shitty widescreen resolution choice but better contrast/color than the T410. (the "FHD" 1920x1080 is indefinitely out of stock, and too small pixels anyway). NV Quadro FX 880M - better than the 3100M but not near the top in performance, and not DX11. Core i7 Lynnfield Quad chips. Moderate noise (30-40 dB).

Thinkpad W701 : 17" "WUXGA" 1900x1200 great RGB LED - strong color, the right res, all win. NV FX 2800M or 3800M. Big and heavy as hell. Also built in Wacom digitizer WTFBBQ.

HP 6540b : 15.6" 1600x900 matte, ATI HD 4550 , weak plastic case, no eSATA but has docking, loud (33-47 dB). Not really any major advantage over the Lenovos.

HP EliteBook 8540w : very similar to the W510 ; 15.6" HD+ or FHD , LED anti-glare. NV FX 880M or 1800M. HP does this annoying thing where their pre-configured models are around 50% of the price of the configurable ones. With an 8540w you might pay $1500 for a pre-config, or $3000 for the EXACT SAME spec custom configured. It forces you to find a pre-config that is close to what you want and then do the mods yourself.

HP EliteBook 8740w : very similar to the W701 ; 17" WUXGA "DreamColor" (quite possibly the same panel supplier?) ; same GPU choices, docking. Not sure how to differentiate vs. the W701. I also really don't care much about these super fancy screens as I hope to very rarely use my laptop screen.

Sager/Medion/Deviltech/etc : all the generic laptops now seem to be built on a Clevo base. You can get a top GPU (ATI HD5870) and all the other goodies you want. Another advantage is easy access to upgrade everything, no soldered down parts. Sadly, driver support for these things is notoriously iffy, and none of them have docks. AVADirect Clevo for around $1500 is similar to the $3000+ Thinkpad W701 but has the better 5870 GPU, and you can select your brand of SSD. The big loss with these things is shitty build quality and no docking. Plus they are more likely to have random weird bad performance problems like long DPC timeouts due to bad drivers / config.

4/09/2010

04-09-10 - Food notes

How to heat tortillas for tacos : Put a stack of 4-5 tortillas dry in a fry pan on medium heat. Sprinkle with salt. Place a tiny dab of butter on the top tortilla (away from the heat). Just chill and let them sit. Randomly swap one of the interior ones to the bottom periodically. I've tried many techniques for this in the past, such as using more oil, using the oven, dry frying, all are much worse.

Salt & Pepper crab : boil crab until just slightly under done. Remove from heat and rinse in cold water. As soon as your hands can stand it, break it into bits, take off the top shell, break crabs in half, break off the legs, pinchers. Make sure to reserve the "tomalley" or tasty guts. Quickly dab all the crab pieces in a light dusting of flour. Heat wok on blazing high. Add oil, tons and gobs of garlic, saute a second, add bunch of green onions, add the crab, toss around to coat, add the tomalley, stir around, tiny dash of sweet soy, then tons of sea salt, just cracked black pepper and szechuan red pepper. Serve crabs and pour the saucey goodness all over them. The crab is in its shell, but you eat with your fingers and get the sauce on your hands which you then lick.

Best pork chops : prep pork chop for sear as usual. (standard sear goes like this : heat dry pan to blazing hot; dry meat thoroughly by patting with paper towels are air drying; brush meat with very very light coat of high-temp tolerant oil; season meat well with salt). Cut pork chop fat every inch so it doesn't curl and the fat crisps better. Put in pan. After one side is done, flip. This is the interesting bit. Right after you flip, apply a smear of room temperature butter to the top side of the chop. Then sprinkle on your "rub" - a bit of brown sugar, a bit of smoked paprika, pepper, thyme, za'atar, whatever you want. The rub and butter should be on the top side away from the heat while the bottom sears. Once it has gotten a good sear, toss the whole thing in the 325 oven. Let bake until the middle is done, about 10 minutes. During this time the rub and butter will drip all over the meat and make a pan sauce.

Lately I'm addicted to this simple salad : avocado slices, grapefruit supremes, mache and arugula. First make the supremes, squeeze out the grapefruit pith to get some juice for the dressing. Finish the dressing with OO, sherry vinegar, honey, salt. Dress the mache and arugula immediately so it has time to sit and soften a bit. Then assemble the salad, top with toasted pecan bits.

Gnocchi are quite easy to make. No need to measure incredients really, just treat it like pie crust and do it by feel; add a tiny bit of flour to initially make the dough (1 cup), then when you work the dough you will add more flour as necessary until it's dry enough to roll. Work minimally and roll gently with hands moving steadily outward and past the edges. One thing to be careful of - they cook very very fast, so do everything else in your dinner first and finish the sauce for the Gnocchi and turn the pan with sauce in it down to minimum temp; when you simmer the gnocchi and they float to the top, toss in the sauce and then plate immediately.

4/08/2010

04-08-10 - The Death of The Computer Utopia

The other day N was looking at some image on the web on her mac, and something was going wrong and she exclaimed "they won't let me set this image as my desktop!". My first thought was "preposterous!" It's a computer! If you can see the image, you can do whatever you want with it. Nobody can control what you do with your content on your computer. It is a wonderful free space, a space where you can live outside of strict boundaries and rules for how things are supposed to work. You can take any two bits you want and plug them together. If you so choose, your computer can be delightfully free of subscriptions, advertising, corporate control, everything that ruins the shitty rest of the world.

But then I realized - my god, I'm not sure that's true any more. Do Macs have some thing where they won't let certain images be set as desktops? Maybe they don't allow desktop images at all, because Steve Jobs believes it's bad for the Feng Shui of the UI. Maybe they have a deal with some copyright holders that checks for fee licensed media rights ?

The fact is, Apple is destroying the utopia that was the free and open computing space. And you all are lapping it up. I've been calling for a boycott of Apple for some time, but there seems to be no interest around the web. That's sort of weird and surprising to me, because I believe what Apple is doing right now is actually worse than anything Microsoft ever did, and there was massive anger about the draconian oppression that MS applied in their rise to power. I find it quite mad that MS is legally required to give competing application developers equal access to their operating system (so that eg. IE isn't allowed to be more closely meshed with the OS than any other web browser) due to the various suits against them, and yet right now Apple is exerting far more nefarious control - not only do competing apps not get equal access, they might not get to run AT ALL! That is just mind blowing.

Some people seem to think this is a good thing . I think that's quite mad and naive. Windows is a democracy, it's capitalist, it's a free space. If people choose to buy apps that are janky and slow and crash and have bad UI, it was their choice to do so. We should be forcing apps to get better by choosing to buy only the good ones. Instead, commentators applaud the dictator for cracking down. This is equivalent to the US Government mandating a certain look & feel for all homes being built. Oh, you want a tacky McMansion? No, I'm sorry that's against the law. Yes, the houses would look better, but the result is not the point!

I can't imagine ever buying a computing device that is not completely free and open for me to do anything what I want with it. I can't imagine ever buying content (like music or an e-book) that isn't delivered to me in a form where I can do anything I want with it. Maybe it should be a law that all operating systems must be open ? Perhaps, but I would rather see that expressed in the marketplace - boycott all operating systems that aren't open!

The most disturbing thing to me is the blind consumer acceptance of this new paradigm. It just shocks me that there's not more uproar. I see this as the end of the delightful utopia that has been computing. Computing will soon become just like very other fucked up shitty aspect of life - telecom, health insurance, finance, etc. - where we have no real choices because they are all the same, they all fuck you with obfuscated rules and corporate dodges, where you have no power and no freedom, you can only sign up for some program that was pre-designed for you. Already the internet is becoming unfree - broadband providers are already detecting and throttling various content types such as torrents or streaming video; my email host Verio is now automatically spam filtering my outbound email and I'm not allowed to disable it; the government is snooping everything we send online - and people have swallowed it all.

4/07/2010

04-07-10 - Video

Blurg, the complexity wheel turns. In the end, all the issues with video come down two huge fundamental problems :

1. Lack of the true distortion metric. That is, we make decisions to optimize for some D, but that D is not really what humans perceive as quality. So we try to bias the coder to make the right kind of error in a black art hacky way.

2. Inability to do full non-greedy optimization. eg. on each coding decision we try to do a local greedy decision and hope that is close to globally optimal, but in fact our decisions do have major effects on the future in numerous and complex ways. So we try to account for how current decisions might affect the future using ugly heuristics.

These two major issues underly all the difficulties and hacks in video coding, and they are unfortunately nigh intractable. Because of these issues, you get really annoying spurious results in coding. Some of the annoying shit I've seen :

A. I greatly improve my R/D optimizer. Global J goes up !! (lower J is better, it should have gone down). WTF happened !? On any one block, my R/D optimizer now has much more ability to make decisions and reach a J minimum on that block. The problem is that the local greedy optimization is taking my code stream to weird places that then hurt later blocks in ways I am not accounting for.

B. I introduce a new block type. I observe that the R/D chooser picks it reasonably often and global J goes down. All signs indicate this is good for coding. No, visual quality goes down! Urg. This can come from any number of problems, maybe the new block type has artifacts that are visually annoying. One that I have run into that's a bother is just that certain block types will have their J minimum on the R/D curve at very different places - the result of that is a lot of quality variation across the frame, which is visually annoying. eg. the block type might be good in a strict numerical sense, but its optimum point is at much higher or much lower quality than your other block types, which makes it stand out.

C. I completely screw up a block type, quality goes UP ! eg. I introduce a bug or some major coding inefficiency so a certain block type really sucks. But global quality is better, WTF. Well this can happen if that block type was actually bad. For one thing, block types can actually be bad for global J even if they are good for greedy local J, because they produce output that is not good as a future mocomp source, or even simply because they are redundant with other block types and are a waste of code space. A more complex problem which I ran into is that a broken block type can change the amount of bits allocated to various parts of the video, and that can randomly give you better bit allocation, which can make quality go up even though you broke your coder a bit. Most specifically, I broke my Intra ("I") block (no mocomp) coder, which caused more bits to go to I-like frames, which actually improved quality.

D. I improve my movec finder, so I'm more able to find truly optimal movecs in an R/D sense (eg. find the movec that actually optimizes J on the current block). Global J goes down. The problem here is that optimizing the current movec can make that movec very weird - eg. make the movec far from the "true motion". That then hurts future coding greatly.

In most cases these problems can be patched with hacks and heuristics. The goal of hacks and heuristics is basically to try to address the first two issues. Going back to the numbering of the two issues, what the hacks do is :

1. Try to force distortion to be "good distortion". Forbid too much quality variation between neighboring blocks. Forbid block mode decisions that you somehow decide is "ugly distortion" even if it optimized J. Try to tweak your D metric to make visual quality better. Note that the D tweakage here is a pretty nasty black art - you are NOT actually trying to make a D that approximates a true human visual D, you are trying to make a D under which your codec will make decisions that produce good global output.

2. To account for the greedy/non-greedy problem, you try to bias the greedy decisions towards things that you guess will be good for the future. This guess might be based on actually future data from a previous run. Basically you decide not to make the choice that is locally optimal if you have reason to believe it will hurt too much in the future. This is largely based on intuition and familiarity with the codec.

Now I'll mention a few random particular issues, but really these themes occur again and again.

I. Very simple block modes. Most coders have something like a "direct block copy" mode, or even a "solid single color", eg. DIRECT or "skip" or whatever. These type of blocks are generally quite high distortion and very low rate. The problem occurs when your lambda is sort of near the threshold for whether to prefer these blocks or not. Oddly the alternate choice mode might have much higher rate and much higher distortion. The result is that a bunch of very similar blocks near each other in an image might semi-randomly select between the high quality and low quality modes (which happen to have very similar J's at the current lambda). This is obviously ugly. Furthermore, there's a non-greedy optimization issue with these type of block modes. If we compare two choices that have similar J, one is a skip type block with high distortion, another is some detailed block mode - the skip type is bad for information conveyance to the future. That is, it doesn't add anything useful for future blocks to refer to. It just copies existing pixels (or even wipes some information out in some cases).

II. Gradual changes need to be send gradually. That is, if there is some part of the video which is slowly steadily changing, such as a slow cross fade, or very slow scale/rotate type motion, or whatever - you really need to send it as such. If you make a greedy best J decision, at low bit rate you will some times decide to send zero delta, zero delta, for a while because the difference is so small, and then it becomes too big where you need to correct it and you send a big delta. You've turned the gradual shift into a stutter and pop. Of course the decision to make a big correction won't happen all across the frame at the same time, so you'll see blocks speckle and move in waves. Very ugly.

III. Rigid translations need to preserved. The eye is very sensitive to rigid translations. If you just let the movec chooser optimize for J or D it can screw this up. One reason is that very small motions or movements of monotonous objects might slip to movec = 0 for code size purposes. That is, rather than send the correct small movec, it might decide that J is better by incorrectly sending a zero delta movec with a higher distortion. Another reason is that the actual best pixel match might not correspond to the motion, you can get anomalies, especialy on sliding patterned or semi-patterned objects like grass. In these cases, it actually looks better to use the true motion movec even if it has larger numerical distortion D to do so. Furthermore there is another greedy/non-greedy issue. Sometimes some non-true-motion movec might give you well the best J on the current block by reaching out and grabbing some random pixels that match really well. But that screws up your motion field for the future. That movec will be used to condition predictions of future movecs. So say you have some big slowly translating field - if everyone picks nice true motion movecs they will also be coherent, but if people just get to pick the best match for themselves greedily, they will be a big mess and not predict each other. That movec might also be used by the next frame, the previous B frame, etc.

IV. Full pel vs. half/quarter/sub-pel is a tricky issue. Sub-pel movecs often win in a strict SSD sense; this is partly because when the match is imperfct, sub-pel movecs act to sort of average two guess together; they produce a blurred prediction, which is optimal under L2 norm. There are some problems with this though; sub-pel movecs act to blur the image, they can stand out visually as blurrier bits; they also act to "destroy information" in the same way that simple block modes do. Full pel movecs have the advantage of giving you straight pixel copies, so there is no blur or destruction of information. But full pel movecs can have their own problem if the true motion is subpel - they can produce wiggling. eg. if an area should really have movecs around 0.5 , you might make some blocks where the movec is +0 and some where it is +1. The result is a visible dilation and contraction that wiggles along, rather than a perfect rigid motion.

V. A good example of all this evil is the movec search in x264. They observed that allowing very large movec search ranges actually decreases quality (vs a more local incremental searches). In theory if your movec chooser is using the right criterion, this should not be - more choices should never hurt, it should simply not choose them if they are worse. Their problem is twofold - 1. their movec chooser is obviously not perfect in that it doesn't account for current cost completely correctly, 2. of course it doesn't account for all the effects on the future. The result is that using some heuristic seed spots for the search which you believe are good coherent movecs for various reasons, and then doing small local searches actually gives you better global quality. This is a case where using "broken" code gives better results.

In fact it is a general pattern that using very accurate local decisions often hurts global quality, and often using some tweaked heuristic is better. eg. instead of using true code cost R in your J decision, you make some functional fit to the norms of the residuals; you then tweak that fit to optimize global quality - not to fit R. The result is that the fit can wind up compensating for the greedy/non-greedy and other weird factors, and the approximation can actually be better than the more accurate local criterion.

Did I say blurg?

4/06/2010

04-06-10 - Poker

Psychological mistakes that even advanced players make in poker :

I need to change up / I'm too obvious. People think they can't keep doing a move because it's too obvious. Some TAG keeps raising, people keep reraising him, and he keeps folding to reraises. So he raises, it's your chance to reraise, you think "oh, I better not, it's too obvious". No! It keeps working, assume it will keep working until you get evidence otherwise.

One psychological case of this mistake is actually "pity". Sometimes you subconsciously pity an opponent. Some doofus is getting completely run over by bluffs and aggression. It comes your turn to play a hand with the fish, and you think "oh everyone is bluffing him, I better not, it's too obvious". In reality what you are doing is subconsciously pitying him and going easy on him.

Over-credit. A classic and common huge mistake is giving people too much credit. Never assume that they are making a smart decision. Say you raise in a spot where you know that you always have a good hand. For example, maybe you correctly play very tight out of position. So you raise OOP and someone reraises you. You think : "he knows I am playing very tight OOP and yet he reraised me anyway - therefore he must have a really good hand". No! You are giving too much credit.


Long time readers may recall the ridiculous list of care instructions that my landlord gave me on moving in. Well, the inevitable result of that has happened : I no longer pay attention to any of those requests. If they had given me a short reasonable list, I would have tried to abide by it, because I am very (overly) considerate, but when the request is just ridiculous and way too much, you wind up just saying fuck it.

I was reminded of it when watching the Louis Theroux special about Fresno ("Meth Town"). He's hanging out with some family and people are doing meth and Louis does his fucking asshole douchebag condescending thing that he does and takes the dad aside and is like "aren't you concerned about the kids being around this?". And the guy is just like "WTF?" Like, if you grow up where people are beating and killing each other and abusing kids and people are hungry and poor, your fucking middle class condescension about not showing the kids drug use is rather out of place.

The general concept applies to all laws, the idea that being too strict about a host of stupid laws actually makes people pay less attention to the important ones. When police are busting people in the ghetto all the time over stupid minor infractions, it makes them just generally think laws are stupid.

I see the same thing with the programmer-artist relationship in video games. Often the coders will make a set of directives about what good art should be like (no T-joints, clean manifolds, uv mapping with as little stretch and shear as possible, no reflections in uv mapping, etc. etc.) and it's just too much, it's unreasonable, and the artists just wind up ignoring it all. It's much better to make a minimal list of things that absolutely must be followed and enforce it strictly.


The Aura ("El Aura") was disappointing. I think it starts off really beautifully, the mood and camera work and all the stillness and portent is wonderful. The weirdness of the epileptic "aura" is interesting and you start to think this is going to be cool. But then it all just devolves into typical typical "Heist gone wrong". I'm so sick of fucking "heist gone wrong" flicks. There's always like an extra guard they forgot about, or an extra alarm switch, and then the robbers start freaking out, and someone gets shot. Blah blah blah.

I'm watching a bit of Peep Show again with N as she hasn't seen it before. It's really damn good, but it also makes me think : my god I am so sick of all this TV about people who just suck so bad. They are so negative and self-defeating and they don't support each other and it just leaves a sour taste in my mouth. I don't want to be like that, I don't want to be around other people who are like that, and I don't really even want to see it. It brings you down, it makes you feel like that is what normal behavior is. It's much better to surround yourself with people who are living well and being good to each other and being dynamic and positive and kind and intelligent and creative and so on.

4/04/2010

04-04-10 - Porsche 997 Oil Change

Well I did my own oil change. It was a mild pain in my ass for a few stupid reasons which I will educate you about. I also don't have a garage which is really fucking annoying, this all would be so much more fun if I had my own space I could just get dirty and keep my tools in and everything, and stay out of the wet. It was threatening to rain all day so I had to hurry, which makes all mechanical things much less fun. (the correct way to do all manual labor jobs is with a whole lot of thinking about what you're gonna do next and taking breaks). If I had a real garage and work space where I could just hang out and drink beer and go "mmm hmmm" a lot, I would do a lot more little jobs myself.

Working on your only car is also inherently a pain in the ass because if you discover you don't have a part or a tool you need, you can't get in your car and go to the store for it. Urg.

There are a number of guides to doing this on the net (such as : here ) (I think maybe you have to be a member to see pictures or something, which is fucking bullshit BTW). It's all pretty standard and this is really one of the easiest cars in the world to do. A few more notes for dumb newbies like me :

You run your car before beginning to get the oil warm so it flows. It will be hot coming out, don't get burnt. Okay, I knew this, but one thing I didn't think about : the heat will make the bolts and such swell. When you take off the drain plug from the oil pan, it will be warm. If you leave it on your hex head like I did, it will cool down and contract and will become a real bitch to get off. To get it off at that point you'll probably have to heat it back up again. A hair dryer or your kitchen stove work fine (and you will then just throw out that drain plug and use a new one). Always use a new crush washer. Oh, also, as noted elsewhere - there's a lot of oil in this car and it comes out fast; make sure you leave the oil fill cap on when you first open the drain plug! (then remove the fill cap) Do NOT use one of those cute low profile oil pans or the integrate oil pan / jug things that use a funnel to fill - they can't take in the oil as fast as the car drops it and you could have a huge mess (luckily I also had a normal oil pan and swapped it out fast).

The oil filter housing can be very hard to get off. The correct tool is a 74.4 mm oil wrench with 14 flats. Porsche sells a branded tool for $40, you can get a generic one for $14 ; sometimes it's called a "Mercedes oil wrench". If it doesn't fit exactly, shim with some sandpaper. I did not have luck with plastic Jansco oil wrenches that auto parts shops sell - the plastic just warps if the filter housing is on too tight, you need a metal cup. To get off a stuck housing, you might want one of the 3-prong style oil filter wrenches. Removing a stuck housing is often destructive, so you may want to have a spare one on hand. It's a good idea to just go ahead and buy a spare housing, and hopefully you'll never need it, but if you do you'll be glad it's on hand. (ADDENDUM : the ideal tool is a SIR M0093 : like this ; FYI this thing needs a 22 mm socket )

If you're a perfectionist, you should pre-load the oil filter housing with oil. If you don't you may get a "check oil level" the first time you start the car up. This is not actually a big deal though.

The special tools are mostly 3/8" socket drive; you'll want a 3/8 torque wrench to get the tightness right.

I wish I'd had a second oil drain pan, or just some other pan I could put dirty stuff in that wasn't full of oil. A drain pan is like $8 , so just buy two. Obviously you want a big piece of cardboard or carpet or something under the whole operation, because wind and drips and shit will get out of the pan.

The Rhino Ramps for getting the car up in the air are in fact awesome. Very easy. They do slip if the surface they are on is not ideal, which is pretty scary when you're driving off and they slip. The best way to fix this is to put a bit of rubber mat or carpet under them. (but you don't actually need ramps - everything is so easy to get to on this car that just putting the back wheels on some 2x4's is enough clearance).

Disposing of the oil is in fact not a big deal at all. A bigger annoyance is just all the random bits of mess. Your tools get oily, you're left over with the oil drain pan which of course is oily. The worst part was actually the pouring the oil from the drain pan into disposal containers (yes of course I use a big funnel). Next time I will take more care with that : 1. Have two drain pans as I said previously; put the disposal container in the second pan to catch any spill. 2. Have more/bigger containers than you need, so that you don't have to try to fill them near full. 3. Have transparent containers with secure caps (screw-top gallon milk jugs would be fine).

Some useful info :

Torques :
drain plug : 37 ft-lbs
filter : 19 ft-lbs.

Capacity :
Engine oil 997.1 S - 3.8 l Filling capacity without oil filter 8.25 litre
Engine oil 997.1 S - 3.8 l Filling capacity with oil filter 8.50 litre

But I recommend way underfilling, like maybe 7.5 quarts, then check the level and add 0.5 quarts and check again (after waiting a while). (for our purposes 1 quart ~ 1 liter is good enough). Your goal is to get the level near the middle of the indicator. (Beware : the electronic oil gauge is very tempermental, it could read very low, and you add oil, and discover you've over-filled).


ADDENDUM : some related links :

Transaxle Oil Change (gear box & differential) - Rennlist Discussion Forums
TOOL Page (�`�.�(�`�.� ZDMAK SPECIAL TOOL STORE �.���)�.���)
Socket - Oil Filter Housing 27MM - 38 Drive & Other BMW Mini Cooper Parts at MiniCarParts.Net
Porsche Oil Filter Housing And Filter Assembly Filters and Maintenance & Stock Filters Maintenance
Porsche 997 - Oil Circulation - Page 1
Porsche 996 Oil Circulation - Page 1
Porsche 911 (997) LN Engineering Magnetic Oil Drain Plug
Pelican Technical Bulletin All About Motor Oil
Pelican Parts.com - Oil Filter Socket - 74mm
Pelican Parts - Product Information 000-721-920-40-OEM
Oils What motor oil should I use Which oil is best for my Porsche or aircooled engine
oil drain plug stripped - Rennlist Discussion Forums
Oil change on Carrera S's and a Brake Fluid Flush - Rennlist Discussion Forums
Oil Change Instructions
OCD Oil Change on the Red Dragon - 6speedonline.com Forums
How to remove stripped drain plug - RennTech.org Forums
How To Change Your Oil (The Real Down and Dirty)
HELP locating an oil filter wrench - Rennlist Discussion Forums
DIY Oil Change with Pics - Rennlist Discussion Forums
DIY Oil Change in the 997 - Rennlist Discussion Forums
DIY Oil Change in the 997 - Page 5 - Rennlist Discussion Forums
Changed the Oil in my 997.2 today PHOTOS - Rennlist Discussion Forums
Car maintenance bibles Oil Viscosity.
Amazon.com End Cap Oil Filter Wrench 76mm 14 Flutes Home Improvement

4/01/2010

04-01-10 - Automotive Manual Transmissions

Hmm, I have also been oddly ignorant about how exactly a manual transmission works. Let's go through it.

The engine output shaft connects directly to the flywheel. The flywheel is pressed against the clutch plate, which is connected to the transmission on one shaft. The transmission has another shaft that connects to the driveshaft/axles/wheels. Inside the transmission the two shafts - one from the engine, one from the wheels, are mated by gears.

Usually the two main shafts in the transmission (engine shaft and wheel shaft in my incorrect parlance) are coaxial (for torque/inertia reasons) and they are mated by gears on a separate shaft, the "layshaft", but we aren't really concerned with the exact geometry and we'll just talk about the two shafts being connected by "transmision internal bits".

Let's get to the first misconception : disengaging the clutch pedal does NOT disconnect the transmission from the wheels nor does it take the transmission "out of gear". All the clutch does is disconnect the engine from the transmission. Clutch is friction based and can slip if the engine & transmission side are not turning at the same speed.

If the transmission is in gear and the clutch is depressed (disengaged), the engine is disconnected from the transmission, so the wheels will spin the transmission internal bits at the speed they want without resistance.

Simple Transmission - how it works

Inside the transmission you have the shaft from the engine and the shaft from the wheels. Sometimes they are connected using a "layshaft" which carries some gears to mate them together. I'll just refer to this stuff as "transmission internal bits". We conceptually think of the gears "engaging and disengaging" but on all modern transmissions the various gears are constantly meshed, and instead they are connected or disconnected from the shafts using dog clutches and syncromeshes. Let's get into that a bit :

One amusing thing I didn't realize is that the H pattern on your shifter actually directly mechanically moves the gear selection. I always thought that it just sent a signal to the transmission to pick those gears, but no it is directly human powered. On a typical 6-speed H shifter you have 1/2 vertically, 3/4, and 5/6. There are three gear clutches inside the transmission. The three horizontal positions of the shifter each control one of the three clutches. The middle horizontal position on all three is neutral - clutch not engaged. So when you shifter is in neutral, the side-to-side position doesn't matter, all 3 clutches are disengaged. In this state the layshaft (internal transmission gears) does not couple the wheel shaft to the engine shaft.

When you move the shifter up and down on the 1/2 axis, it moves a double-sided clutch plate either up to mesh with the 1st gear or down to mesh with the 2nd gear (in the middle it meshes with neither and that's neutral). When it's fully in 1st or 2nd, it locks those gears to the axle using the dog clutch (a dog clutch is like the bumps on a microwave tray, just some bumps and grooves), and the wheels are locked to the shaft that goes to the flywheel in that gear ratio. In between, when the shifter arm is between a gear selection and neutral, the clutch plate for those gears is only partially engaged. The dog clutch also has a syncromesh on it (just called syncros usually). The syncro is a kind of spiral gear which causes the two parts to spin up to equal speed. Obviously the shaft to the wheels and the shaft to the flywheel can be at different speeds; when they're spinning at different speeds the dog clutch would never engage and just grind and bounce off each other; the syncromesh can slightly engage and cause them to match speeds as you move the lever.

The interesting thing is that your manual action of moving the shift lever in to select the gear is actually applying the force to bring the internal transmission clutch plates together, and as you push it in you are causing the syncromesh to mate and spin the pieces up together. This is totaly separate from your left foot which controls the clutch on the flywheel that mates the engine to the whole transmission. If you shift really hard and fast you put a lot of strain on the syncros to make these parts match up. This is sort of separate from the normal "rev matching" discussion but we'll come back to that.

A key thing that I didn't really think about before is that there are actually 3 spinning parts of the equation. There's the engine, which is the RPM you see on your dash, there's the wheels, which you see on your speedo, and there's the transmission internal bits (layshaft if you like). You have no indicator of the transmission internal bits speed, but you can feel it when they're off. In particular :

neutral, clutch pedal out : trans spins with engine, decoupled from wheels
in gear, clutch pedal in : trans spins with wheels, decoupled from engine
neutral, clutch pedal in : trans connected to nothing, spins down slowly

Let's look at what actually happens when you go through a shift.

1. You're in 1st gear. Everything is locked together. The engine is spinning at a multiplier of the wheels rate based on the gear ratio.

2. You press in the clutch. This disengages the engine from the transmission at the flywheel. The engine is now spinning on its own (with much less resistance) and the transmission is still locked to the wheel speed.

3. You move the shifter downward towards 2nd gear. It will move through the neutral position (middle vertical position) were the internal transmission clutch is not selecting any gear. At this point the transmission internal bits are disconnected from the wheels, and are also still disconnected from the engine because the clutch is in.

4. (optional) At this moment you could now double-clutch. If you let the clutch out now, it will connect the transmission bits to the engine and get them in sync. You can now use the gas pedal to easily spin up the transmission internal bits without the wheels being connected. Then you push the clutch back in and keep moving the shifter down towards 2nd :

5. As you move the shift lever towards 2nd, the syncromesh on the transmission dog clutch starts to engage. This causes the transmission internal bits to spin up to the speed of the wheels (multiplied by the gear ratio). The syncros will grind a bit and get the transmission up to speed, then you finish the lever movement and the dog clutch engages. Now the transmission is spinning with the wheels.

6. Finally you let the clutch pedal out. This engages the engine to the transmission, which is already locked to the wheels. Here you get on the throttle to rev match so that the clutch doesn't grind too much on the engine flywheel.

Note : the "rev match" was only for the engine-transmission clutch, not the clutch (syncros) inside the transmission! If you did this series of steps and skipped the double-clutching, you are just mashing the syncros together without any rev matching for them! To address that you should let out the clutch as you move the lever, so that the engine can start to engage with the transmission, you can use your throttle to spin it up to rev match, and then as you slot in the gear selector the syncros will mesh without too much grinding.

Now check out :

How Manual Transmissions Work

YouTube - How Manual Transmissions Work

Some interesting conclusions :

1. To get out of gear there is no reason to push in the clutch pedal. Disengaging a gear separates the dog clutches and syncromeshes - it is totally unrelated to the engine clutch at the flywheel. (not quite true : if you don't push in the clutch, selecting neutral slides the parts while they are under load, with the clutch in they move without the engine applying force through them)

2. You also don't strictly need the clutch pedal to get into gear. With the transmission in neutral, all you have to do is modulate the throttle to get the engine RPM to exactly the right spot for the current wheel speed, and then slip the shift lever into gear. The syncros with slip you right into gear if your rev match was good. Obviously this is very hard to do reliably, which is why you use the clutch pedal. Note that this is not really "clutchless gear shifting" - you are still using a clutch which is inside the transmission on the gear selectors, you just aren't using the big friction clutch plate between the engine and the transmission.

3. The feeling of shift "ease" in the shift lever is related to how mushy your syncros are. Low performance commuter cars usually have very soft forgiving syncros. I guess these are made of brass or something like that, they are designed to absorb the strain of different rotation speeds and let you slop around the shifter. High performance cars usually have very stiff syncros (traditionally made of steel as in the Porsche but I know newer cars like the BMW M3 are using carbon fiber syncros now). This causes more resistance when moving the shift lever to select gears - even with the clutch pedal fully in. You should shift slowly and firmly, and you can also use double clutching to get the transmission internal bits up to the right speed so that the syncros match. Porsche has "balk" type syncros for 1st and 2nd gear, which means rather than let you slot them together with a bad speed match and grind you up to speed, they just lock you out.

A nice article : Phil Ethier On shifting

I'll fill in a few cracks. The engine shaft that the pistons turn comes out and is connected to the "flywheel". This is just a big disk, which the clutch plate then presses against. You will often hear modders talk about going to a "light weight fly wheel". The weight of the flywheel is useful because it holds some rotational inertia from the engine RPM's, so when you let the clutch out to mate the engine with the wheel speed, the engine is not immediately jerked to the speed of the wheels. (this is a particularly bad problem when starting from a stop, since the wheels are not moving and you would stall your engine). A light weight fly wheel lets the engine spin up faster. It does not increase peak horsepower, since at that point everything is spinning at full speed, but it makes it faster to get to peak horsepower from a stop. It lets you change the engine RPM much faster when the clutch is not engaged, since then the only resistance is the flywheel. When the whole drivetrain is engaged, I can't imagine that the flywheel is a very significant part of the resistance or rotating weight (transmission and wheel weight and everything are much greater). See : on flywheels and YouTube - 3D animation of dual mass flywheel .

Oh, another thing that people like to do is go to a "short shifter". Recall the shift lever is a direct mechanical connection to the gear selectors, when you move it up down, that moves the selectors back and forth, through a mechanical linkage (either cables or rigid arms). A short shifter just moves the mechanical pivot on the shift lever to give you more mechanical advantage, so that a smaller movement of the shifter arm produces the same amount of movement of the gear selector in the transmission. Note that there do exist badly designed 3rd party short shifters which do not do this right, and they will screw up your syncros.

ADDENDUM : let's go a bit further now and understand some fancy new technology.

First of all, the "Sequential Manual Transmission". There are two big differences with an SMT : 1. linear lever operation, and 2. no clutch pedal.

The first thing to understand is that the internal workings of an SMT are exactly the same as a normal MT. You have the clutch, syncros, gear selectors, etc. all the same.

The linear lever operation is accomplished by making the linear motion perform a ratched rotation of a drum. When you push forward it turns the drum one way, when you pull back it turns the drum the other way. The drum has grooves which fit to the gear selectors. The gear selectors are just like in a normal MT - 1st/2nd 3rd/4th kind of thing, it causes them to move back and forth against the sycros and dog clutches. See : here .

The next thing is clutchless operation. This is very simple in fact. They just use the same linear lever pull to engage and disengage the clutch. As you push forward the clutch is disengaged, the lever motion then also selects the gear, and as the lever finishes its movement the clutch is engaged again. A standard manual SMT just does this directly mechanically by hooking up the lever to the clutch; there are also electronic ones that use the lever to control a computer that moves the clutch (it's not an electronic motor to move dry clutches in this case, but rather hydraulic pressure to control wet clutches, but it's the same deal).

Now that we understand an SMT we can move to the new DCT (Dual Clutch Transmission). A DCT is very similar to an SMT. As usual I was a little confused about how a DCT works exactly because of silly commentators describing it in confusing ways, saying there are two gearboxes and the computer selects between them.

This is the best simple schematic diagram . There is still one flywheel being driven by the engine, and there is still just one drive shaft going to the wheels. Between them is the transmission. There are now two "layshafts". (the two layshafts are usually co-linear and share an axle so it's not evident that they are two separate shafts, but they are there). The two layshafts are both connected to the wheels by gears, so when their gear selectors are engaged they being spun with the wheels (multiplied by the gear ratio). The layshafts have gear selectors on them just like a normal SMT - the gear selector can be in the middle (neutral) engaging no gear, it can move back and forth linearly to select one or another gear, meshing through a syncro and then locking a dog clutch to engage that gear.

The two layshafts are then mated to the engine drive flywheel through two different clutches. The two clutches are concentric. Rather than a big disk clutch as in a normal MT, they are concentric rings so they both have some access to the surface area of the flywheel. If clutch 1 is pressed to the flywheel, the engine spins layshaft 1 through the gear selected on layshaft 1, and layshaft 2 is then spun by the wheels through its gear selection, and not connected to the engine, so its clutch plate will be spinning at a very different speed (but not engaged). While clutch 1 is engaged, layshaft 2 can easily select different gears by moving its gear selectors. Its gears are not connected to the engine, so this is just like you moving the stick around in a manual transmision with the clutch pedal depressed - the gear selector will mesh through the syncros and spin up the internal transmission bits (layshaft 2) to match the wheel speed.

With layshaft 2 in some gear, the DCT can then just disengage clutch 1 and engage clutch 2. There is still a tiny transision time, and the engine has to very quickly adjust RPM's to match the different spinning speed of the new clutch. The DCT does not magically take steps out of a gear shift, it just changes the order. Instead of :

disengage clutch, move gear selector, engage clutch

It does : move gear selector on idle shaft, disengage clutch 1, engage clutch 2.

So the time to move the gear selector is hidden.

Here's : a more detailed schematic , and nice actual technical diagrams of the Audi S-Tronic or Porsche PDK .

04-01-10 - Automotive Differentials

You hear people talk about the merit of an LSD (Limited Slip Diff) all the time, but I was a little confused about the whole thing, so here we go. First of all, the LSD is not your option vs. having NO diff. Basically every car now has a diff, they just might have an "open diff". Let's now watch this awesome video :

YouTube - How Differential Gear works (BEST Tutorial) (old promotional video from Chevy - watch this if nothing else!!)

And if you like check out some computer animations (BTW tons of these awesome mechanical animations on Youtube these days!! love them) :
YouTube - Gear Animation ( www.dizayn.tr.gg )
YouTube - diferencial catia

Okay, so an Open Diff is cool because it lets the wheels turn at different rates when you go around corners. The alternative back when that Chevy video was made was a locked rear axle with both wheels spinning at the same speed all the time, which would make the tires skitter badly around corners (BTW this is different than the "solid axle" that cheap American cars used to have (aka "live axle" or "beam axle"), which referred to the use of the drive axles as suspension, those cars still had differentials).

If you always had perfect tire traction to the road, an open diff would be perfect. Going around a corner, the outer wheel is easier to push and the inner wheel resists more, so the open diff spins it less, and all is merry. The problem occurs when you don't have perfect traction. In that case the slipping wheel has very little resistance, so the open diff just spins it like crazy and the wheel with traction barely moves.

The most obvious case where you would encounter this is on snow or ice when you get stuck - you hit the gas, and one of your wheels just spins and spins which the one with good traction doesn't budge. To address this for serious offroading, they make "locking diffs" which pushes in another gear to the differential which locks the two sides together so that the two wheels are forced to spin at the same speed. If your goal is to go forward in a straight line regardless of traction, a locking/locked diff is ideal.

The issue with racing and cornering is that going through a corner with power you will often lose traction due to the heavy combined load of cornering and accelerating. When that happens an open diff will basically refuse to put down power (it will just spin the loose wheel). An LSD will still put down some power if one of the wheels has traction, which will let you accelerate out of the corner quicker.

Traction Circles great video by the most boring race driver in the world.

And now you can read these :

Limited slip differential - Wikipedia, the free encyclopedia
Differential (mechanical device) - Wikipedia, the free encyclopedia

BTW a decent AWD/4WD car will have an LSD of some kind between the front and rear wheels. See 4WD vs AWD for a good discussion.

Modern cars with open diffs use braking to limit wheel spin. Basically one wheel loses traction and goes nuts spinning, so the electronic traction control puts some brake on it, then both wheels feel resistance, so the open diff now gives power to both wheels which lets the one with traction move us.

The easiest way to make an LSD is just to take your open diff, put the whole thing in a box, and put some fluid in that box. Boom you have a viscous coupling LSD. (do not try this at home)

old rants