cb's rants

The older rants are semi-regularly moved off this page. You can always read the old rants :
11/2007 to 03/2008
07/2006 to 11/2007
12/2005 to 07/2006
06/2005 to 12/2005
01/1999 to 06/2005

You can see some of my photos at Flickr .


05-12-08

I've started getting files with unicode names and am discovering that lots of old apps crap out very badly with them. I mainly get these in mp3's where the damn music database decides it's going to do all the correct accenting and it's not possible in ascii. Any old app that doesn't support unicode names throughout will crap out.

Usually this happens in that the apps will enum the dir and see the files, grab the names in ascii, and then try to do something to the file - and windows refuses to find it. Windows isn't nice to you, it won't let you open the file with the ascii version of the name where you just crammed the unicode into ascii. All the old POSIX dir enum stuff that's just ascii like readdir is thus useless and old unixy command line tools break badly.

This is pretty fucked. It would have been so simple to make this backwards compatible by just making file access succeed for the ascii-cast names if there was no ambiguity.

ADDENDUM : hmm.. it seems that if you use the old DOS _findfirst/_findnext with ascii names, you get names that can't open the files. However, if you use _wfindfirst/_wfindnext and then take the wchar names and covert to multibyte ascii with wcstomb you get names that work. Why in the fuck would they not just do that in _findfirst !?


05-12-08

Software engineers seem to intentionally commit the most egregious UI/usability sins that they can find. The more obvious and heinous the sin, the more they like it.

One of the common ones is the pop-up failure box after a long batch process. Lots of things do this - iTunes music imports, Windows Installers, etc. You set it doing some huge thing and walk away, only to come back an hour later and find it only ran for 5 minutes and then decided to pop up an interactive yes/no box about some warning. Even worse of course is when it runs for 2 days and then pops up a "whoops couldn't complete" box. Thanks. Of course it's blatanty obvious that any time you do a time consuming process you should check the possible failures and anything you need to ask about right up front, and get that all verified, and then let the user know you're about to go non-interactive for a long time and let him go away. Furthermore a semi-accurate progress percent is pretty important.

The progress percent is another one where people seem to just get a laugh at fucking with you. There's a few funny ones :

The progress bar that's actually just an hourglass. It moves across the bar steadily and you feel all happy, and then it gets to the end and just starts over at the beginning and keeps moving again. WTF. iTunes does this.

The progress bar with super non-linear speed. It ticks along nice and fast, you decide not to even stand up, and then after five minutes it hits 98% and just stops. Then it hits 98.1%. Doh.

The progress bar that restarts over and over. Windows installers love to do this. You see a progress bar and you think hey this won't take too long. Then it restarts for the next phase and it's ticking a little slower. Hey no big deal I can wait this out too. Then it reaches the end and restarts another phase. Doh!


05-12-08

"urbane" is not the same as "urban", though they are somewhat related. Urbane should only be used to refer to people, and is describing their manners and way of comporting themselves in polite society. Urbane originally comes from meaning "appropriate for a city" I suppose as contrast to the majority of the population that was rural back then, but now it means sophisticated, polite, educated, etc.

"pederast" is not the same as "pedophile", though they are somewhat related. Pederast is more specific, and refers to someone who has anal intercourse with young boys. It's sometimes specified that it's against the boys will or with them as passive partners, ergo they are being raped, but I don't believe that really needs to be explicitly indicated, it can be assumed.

Also, what's the word for someone who likes walking (going places by foot)? I'm pretty sure it's "pedephile" (?) , which makes me a huge pedephile. Not to be confused with someone with a foot fetish, which is a "podophile".


05-11-08

I really hate it when girls tell me about their wild pasts. I guess it's mainly some flaw of my own that makes that bother me. Maybe I'm jealous because I don't really have that past. Maybe I want all their good times to be with me. I do in general not find those stories amusing; the whole genre of "man I was so wasted" story is just very eye-rolly not interesting to me. It's right on par with exciting stories of renovating your house or the great shopping you did.

More than anything I wonder why they insist on telling me these stories about their youthful debauchery. Hey that's great, you got drunk and had sex with lots of people, good for you, why don't you just keep that a secret? Why are you telling me that !?

Of course the worst bits always come out in off hand little comments. There are two primary types : 1. the knowing comment and 2. the horrible thing passed off as funny and no big deal.

1. The knowing comment is some little remark that indicates experience with something that's a big deal, but it's said in a sort of off hand way in a quiet voice. If you ask "what was that?" they always say "oh nothing". For example, you're watching TV together and there's an interview with a porn star who just did some video of 101 guys coming in her or something. The porn star says "the main thing you have to worry about is lubrication, with so many guys you can really get rubbed raw" and your girlfriend mumbles "yeah you can". You say "huh?" and she goes "oh nothing".

2. The horrible thing passed off as funny and no big deal. This often comes up as a "funny story" that's really not that funny and just horrifying, like "yeah it was my birthday, we went to this bar and I met a couple of guys and got totally wasted and I can't remember anything that happened, but I woke up in my bed and I only had one stocking on and my panties were gone; haha, I wonder how I did that? isn't that funny?" oh my god no that isn't funny it's shocking and disgusting.

There must be some reason girls drop these kinds of things so often. (by "often" I mean about once a year, any more than zero is pretty often for this IMO). Maybe it's to keep me from feeling too important and too secure, to let me know they've had wilder and could have it again any time they want so I better work for it.


05-11-08

I wish I was a member of a big Chinese family that could go to those restaurants with big circular tables and a Lazy Susan in the middle and just order like 20 dishes and eat what you want. That's the way you're meant to eat Chinese food, and going with two people and just ordering a few things really doesn't get you anywhere near an approximation of what the experience should be like.


05-11-08

It's sort of funny in groups of old friends how everyone gets totally stereotyped. There's some guy who's "always" doing his thing X. Another guy is the expert on Y, any time topic Y comes up everyone is like "oh ask that guy", or any time you make small talk with him you talk about Y. Another guy always makes his famous stuffed peppers; have you had guy's stuffed peppers? oh hey we're having a dinner party ask guy to bring his stuffed peppers.

The funny thing is that these stereotypes have nothing to do with reality, and everyone keeps up the illusion to make each other feel better. That guy's stuffed peppers might actually suck, and he might be really sick of making them all the time, and nobody really wants them, but everyone keep up the charade because it's the group dynamic and it makes everyone feel valuable, like they have a special skill and they're contributing.


05-11-08

3D Ski maps is pretty cool; it's actually something 3d on the web is good for!


05-10-08

It really doesn't matter what you've done in the past (sort of), it doesn't particularly matter what kind of job you have, how much money. What really matters is the condition of your *self* - your body and your mind. That's by far the most valuable thing you have, and it's what brings happiness to your own mind and makes you valuable to others. Of course your "mind" encompasses many things, your intelligence, knowledge, your taste and humor, your ability to love, your courage and strength, etc.

If you somehow get to a good current state, that's all that matters, but of course your past strongly affects your current state. If you were a huge slut and slept around with lots of losers, that's fine in theory if it didn't affect your brain, but of course it does affect your mind in ways that stay with you. If you partied all through college and just drank and didn't study, okay, good for you, I'm glad you had fun, but of course that affects your mind in the present in a negative way.

Everyone's entire past is simply the road they have taken to try to build a perfect self in the present. Your past does nothing for you that's productive in the present other than contribute to the current state of your self (mind and body). Having fun memories is of course part of your current self and that's a valuable contribution, but it actually doesn't do that much to improve your present self.

I really don't understand people who make huge changes in behavior and talk about their past self as if it was a different person, they'll say "it wasn't the real me". Of course it was you, it was your mind. I don't believe that human minds really change very much. Your outward behavior and the portion of your mind that you choose to let control you can change dramatically, but the core of your brain doesn't change much at all. Anyone who's worked to try to change their brain knows how hard it is to even make tiny tiny changes in your fundamental personality.

Obviously people can make huge outward changes; this is most obvious in things like when an alcoholic goes clean. Their outward negative behavior was being greatly amplified by the alcohol in their system, so when they manage to go clean their behavior can in fact change very dramatically, but the basic thing in their brain that made them an alcoholic in the first place is of course still there, and the depressiveness and desire to avoid the real world and self loathing and whatever else made them turn to the bottle are all still there.


05-09-08

I've been rotten to every girl that's been good to me. I like to think of myself as strong, but in the rare tough times when it really matters and I've been tested, I've been weak.

Actually it reminds me of something I've been thinking about old single people a lot, and I believe I mentioned this before. Someone of my age (30) who's single almost always has something horribly wrong with them. It's actually a really bad sign when that thing is not obvious. For example, if you meet someone who's just butt ugly, you can go okay, I know why you're old and single, you're ugly as sin. But when you meet someone like me who appears attractive and desirable and has money and whatever else girls want, ruh roh, that's a danger sign. There must be something horrible that's not obvious and that's much worse.

The best person to meet is someone who has some horrible obvious flaw that is something you don't personally mind. For example someone who's really shy and awkward might be a good candidate, because it's possible they could be single because of that despite being otherwise wonderful. Another good flaw might be someone who's just way too picky, as long as you can pass their high standards then their flaw becomes not too bad. I guess even better would be someone where the flaw is actually a positive; for example if you meet a girl that's just super geeky/nerdy and you're into that, then that's ideal for you.

It's like when you find a couch on the sidewalk with a "free" sign on it. If it's really old and ratty, okay you see why it's free. If there's a big obvious coffee stain on it, okay, flip the cushion and take it. But if it looks great and there's no obvious flaw and it looks expensive - ruh roh, something disgusting has happened to this couch and you shouldn't touch it.


05-09-08

David Mamet, Hal Hartley, Quentin Tarantino - all just awful. They write completely unnatural dialog that's exactly the same regardless of what the movie is about or when it's set. It would be awesome to see Tarantino write like a Victorian period piece and have the exact same rambling pop-culture obsessive dialog.


05-09-08

One of the things that modern stupid fucking pretentious bullshit restaurants in SF like to do is call themselves "Wine Bars" when they are in fact just fucking restaurants. If you refuse to seat people unless they are eating dinner you are a fucking restaurant. Just because you happen to offer wine for sale does not make you a "wine bar". And why in the fucking world would "wine bar" somehow be a good label that makes you more appealing?


05-09-08

One of the wonderful things about SF is that it's so full of freaks and weirdos that you can do pretty much whatever you want and nobody looks at you funny. They may smile and laugh a bit, but it's just being amused at your weirdness, not a harsh judgement. You can wear super bizarro clothes and go skipping down the street and most people won't even turn their heads, you're just another one of the many freaks, and not even close to the weirdest. I find it very liberating.

I love it here. I wish someone like Bungie or Valve or RAD was in SF. Instead I've got myself a real dilemma. :(


05-08-08

I just almost spilled my chicken on the ground and made a sound like "whoah" as I caught the plate. I wondered why my brain wanted me to make that sound. It doesn't help me to catch the plate at all. Logically I should just focus on the catching, and making any "whoah" sound is a distraction that just hurts my plate steadying. I asked my brain why it was doing that. It told me that it does it as a hedge against the case when I do spill the plate. If I do spill the plate without saying "whoah" then everyone looks at me, and I feel all embarassed. If I make a "whoah" first and then spill the plate, everyone looks at the "whoah" and then sees the spill and knows I was aware of the drop before it happened, and I feel less embarassed.


05-08-08

So I joked to somebody that I was going to make a "How to cut a mango" video next. Well, I did. This is a bit different because I think my method is somewhat unusual and definitely better than the standard way; I don't blame people for using the standard way, but if you have some knife skill this way is definitely faster & cleaner :

First the instruction :

Stand the mango vertically and line up the seed so the long side points away from you. Put your knife next to the tip of the mango right at the very top. Work it down gently until you feel the seed, now tilt your knife and work it gently to one side so that you go down right along the seed. Note you are not cutting straight down, you are cutting an arc to exactly trace along the seed. This is easy because you can feel the seed. Repeat on the other side so you have two curved halves.

my video part 1

Now take each half and slice it in half the long way. Now you have a long wedge of mango with skin on the outside. To remove the skin you need to make two cuts to avoid wasting flesh. The smoothest way to do this is to pick up the wedge of mango with your hand, with the mango skin touching your skin. Insert the knife near one end just above the skin. Push the knife in slightly past half way. Now run the knife down almost all the way to the bottom. Rotate the knife around to the other side while you also rotate the mango in your hand. Now run the knife back up the other way. The flesh should now come off the skin with no waste.

my video part 2

Note that you have the pit left over, but it has almost no flesh on it because we made curved cuts. I just suck the little bit of flesh off the pit with my mouth.

You should now have 4 big chunks of flesh, you can very quickly dice them if you like.

I used to do the standard method of cutting into 3 pieces and then cutting a grid into the halves and then inverting the skin to pop it out. That method is taught by just about everyone on the net : retard , bad , bad , bad . That method sucks balls. It's slow and clumsy.

So far as I know nobody else demonstrates the cbloom method of cutting mango.

WARNING : Cutting while holding fruit in your palm should not be attempted by the dumb, clumsy or inexperienced. You may cut yourself, and don't blame me! Go do some more practice dicing onions.


05-08-08

New chicken method from chowhound :

Cut the potatoes into wedges, place in a bowl and toss with a little EVOO. Spread evenly on a rimmed baking sheet. Butterfly the chicken along the back bone (not the breast) and flatten on your board then place on top of the potatoes.

Place in a 425 oven for 40 minutes.

Remove the chicken, sprinkle the potoatoe with S&P and place them back in the oven for 5-10 minutes more until they absorb all the chicken juices and turn crispy brown.

My comment : this is extremely similar to my roasting in pieces method, I'm not really sure if the butterfly is better in any way than pieces; I guess it looks a bit cooler in presentation.

Result : yeah, it's pretty to serve on a big platter with the butterflied chicken and roast potatos and carrots and whatnot around it. Could roast some fennel and turnips and such too. The chicken came out perfect; I rubbed the skin with soft butter as I always do and it was crispy, the meat moist. The roast potatos underneath were delicious, but would've been better if I'd taken it all out and flipped the potatos half way through cooking; the sides that were on the bottom were too charred and the sides not touching the bottom were not charred enough. Also obviously any roast veg that's not under the bird cooks very differently than stuff that is under the bird, so you can't leave them in the same length of time.


05-08-08

Women really suck. I was listening to NPR and some local female comedian comes on and starts whining about how "comedy clubs never book women, why aren't women comedians getting the big specials, you only see male comedians, blah blah". Wanna know why? Because you fucking suck! You're not funny. If you were funny you would get booked. There are a small handful of female comedians that are decent, but the rest are stuck in "Cathy" territory with material based on their period or "men are so lame" or "na uh don't go there".

A few days ago I saw this video of Girls doing Parkour . WTF? They're doing the easiest beginner moves and their flow sucks.

I don't believe that girls genetically inherently suck, which means they *choose* to suck, which is actually worse. If they were somehow genetically inferior and doing the best that they could, that would be respectable, but they are in fact not limitted and just suck because they aren't trying, or something. Perhaps some of it is because they're coddled and told they're awesome when they in fact suck.

Now don't fly off the handle. Of course I'm not talking about every single woman, I'm talking women in general. If you just tried to disprove my general point using specific counter examples, I'm guessing you're probably a woman.


05-08-08

Bungie really has their shit together. I was super impressed with just about every aspect. It's pretty inspiring to think about being surrounded by some of the most talented people in the world in every aspect of game creation, people who are super smart and super dedicated and top experts in their discipline. It sort of gave me the feeling I had at Caltech, where everyone around is kicking so much ass you feel like you really have to step it up to be on the same level.

Their basic philosophy of game development is very appealing to me. They're devoted to making a "simulation" that responds consistently and logically; the user only has a few ways to interact with the world so that you aren't creating tons of canned interactions, rather the way you can poke the world always works and leads to lots of interesting scenarios because the systems all work together. Their game design also seems to be very logical, in the sense that they have certain feelings and types of play they want to create and they find the game systems that lead the user to experiencing those things.

On the other hand, WTF is up with the music in the Halo games!?


05-08-08

(I think this is all stuff that's common knowledge and shouldn't be any secrets, but if you feel like I'm spilling some kind of beans let me know and I'll stop)

Talking to people in Seattle got me excited about games again. It's a pretty interesting time. The big negative at the moment is how huge and complex games are, and how huge the teams have to be, which kind of sucks. On the other hand, games are still advancing very rapidly, and some big advances are going to be made in the next 10 years. We're finally getting to the point where we can realistically talk about making true dynamic simulations of complex worlds.

In contrast, at the moment there are basically two types of games : 1. "Deep, narrow" games, that are simulations, but in very limited ways - the user can only do a few things and the environment is strictly limited in how it responds; this includes things like Halo as well as lots of old games like Mario etc. 2. "Broad, shallow" games that have lots of canned hacky interactions and try to create the illusion of a huge world you can interact with in lots of ways, but aren't true simulations and you can't do anything the designers didn't specifically code in; this includes things like GTA and the Sims as well as most of the classic j-RPG's and stuff like that.

Everyone is very excited about the continuing growth of CPU power as we continue to move into the multi-core era. The problem is that with machines getting more complex we can do a lot more and run a lot more content, if we keep making games the way we do now that would require 10-100 X as much art & design work, which means prohibitive schedules and team sizes. So we need a way to make tons more interaction without a lot more content creation, which of course means code.

The big exciting things coming up IMO :

Procedural interaction ; N*M problem. We want to have N types of things in the world and M things the user can do, but we don't have to manually set up N*M special interactions, and of course the user can put objects together and they should respond to each other as well which is N*N or even N*N*M, etc. This means that the way things work together needs to be more procedural. Currently in games for me to be able to do a "pick up" , I need to code or animate a different "pick up weapon" , "pick up box" , "pick up humanoid", etc. In the real world if I know how to do a "pick up" I can pick up anything.

"sparse virtual geometry" ; importance-based object detail & existance. This is very vague and nobody knows really how to do it, but we know it's what we want to do. In fact, I and others have been talking about this since 1998 or so. I believe Carmack has been talking about it a lot recently. I should emphasize first off this is not about rendering performance, though rendering is part of it. The idea is that you want to have a world which has "virtual" geometry and objects of massive detail and uniqueness. We want to get away from instancing and just decorators on simplistic backgrounds, and actually have something like a city that's full of millions of unique objects all interactable. Of course you can't just have all those objects in the simulation all the time, so you want to page out stuff that's not important and down-res the distant stuff. Down-res means lower LOD, not just for rendering, but also for collision, AI, pathfinding, etc. etc. The overall goal is that you wind up with a constant performance system similar to the sparse virtual textures, with more detail where you need it.

Dynamic everything. Currently all complex games rely very heavily on having the basic structure of the world static or semi-static, which allows you to precompute lots of helpful things like AI paths, radiosity, collision acceleration structures, etc. People are doing semi-dynamic worlds at the moment mainly by allowing only small or specific canned changes to the static world and precomputing the effect of those changes. The goal in the future is of course to support dynamic everything, which means fully realtime lighting, PVS, etc. I actually don't think the rendering is the hardest part of this at all; things like packaging for paging, and AI are much bigger problems, which leads us to -

AI that can understand its environment. Currently nobody has AI that can actually understand geometry. The designers do lots of tagging, or some complex tool runs a preprocess to analyze and figure things out about the world, and the result is some simple tags like "you can walk here" or "this is a good place to shoot from" etc. There are two reasons this is bad. One, of course if you have totally dynamic geometry you can't do this. Two, the amount of work it takes to tag all this stuff for designers is pretty massive and we'd like to eliminate it. This is a huge area of work that we'll probably only begin and could continue for a hundred years, in the extreme case it includes things like strategic reasoning about environments. In the short term we'll probably have to continue to rely on markup for the macroscopic issues (like "this is a flanking area", "this is a good first retreat area") but we'd like to advance to dynamic smart AI for microscopic issues (like "I can walk here" or "I can take cover here").

This is all pretty pie in the sky; there are a lot less insane things that are also going to be happening, or maybe just some baby steps in these directions.

Also this is all very exciting tech, but in terms of what actually makes games good or bad in the short term, none of these have anything to do with making better games. The problems with games in terms of the user experience are the same as ever :

1. Not enough time spent on all the little details that annoy the user; stuff like UI usability, controls, load time & paging, good tutorial integration, etc.

2. Shitty stories, boring characters, uninspired worlds, gameplay that doesn't integrate the play and the user and the world/backstory, generic uncreative art designs, schedule cuts that wind up wrecking the world/story/art.

3. Generic repetitive gameplay due to lack of game design vision and lack of risks taken in prototyping/prepro.

To some extent these things can be improved by technology, largely by making content easier to create, more foolproof, and faster to iterate. The goal of game content creation should be that the artists/designers can just try anything they want, instantly see it in the game, and have it all "just work", so they don't have to know a bunch of weird rules about how to make good content and don't have to worry about manually tagging up a bunch of junk.


05-04-08

Mariam Bent Omran contacted me randomly on Flickr, I have no idea how she found me, but it was quite a fortuitious thing for me, because her photos are great. They're gorgeous - and yet not so "artistic" that they're removed from capturing reality, which is what makes photography really interesting.


05-03-08

I can't find a command line app to just sync my whole iPod vs. an M3U playlist, or even vs. a directory. WTF. Help. Note : I have found tools to copy the entire contents of the iPod to the PC or from a PC dir to the iPod, but that's not the same as a sync because it's not doing delta updates.

I did find SharePodLib which is pretty awesome, but I'd rather not write my own app, plus his sample project seems to be a C# project that uses some Vista.NET thingies because my version of VS.NET refuses to open the project.


05-03-08

To cook 1 cup of grain (or thing that acts like a grain) :

Rice : 2 cups water, 20 minutes, covered simmer.

Steel cut oats : 3.5 cups water, 25 minutes then check and maybe cook 5 minutes more or add liquid (milk optional). uncovered simmer. The goal is "al dente" not mush. Usually pre-toast in dry pan. Stir minimally. Finish with butter.

Couscous (fine) : 1.5 cups boiling water, 5 minutes. seal and let sit off heat. This produces a semi-dry couscous which is intentional because I plan to use it as a bed for a saucy main dish or pour some other flavorful liquid over it.

Warning : This is for the typical fine grain couscous that Americans get; real traditional couscous is a much larger grain and takes a lot longer to cook; don't be thrown off by traditional couscous recipes. There are also medium grain couscouses available which would be different.

Kasha : 2 cups water, 10-15 minutes, covered simmer. Usually pre-toast.

Warning : there are a wide variety of kasha (buckwheat groat) kernel sizes, so you may need to do some experimenting to see what you get. There are completely whole kernels (not recommended, a bit weird IMO), cracked kernels (best) and fine kernels (bad). Start with 10 minutes cooking and see what you get. The stuff I get at Rainbow takes about 10 minutes.

Also, IMO the traditional "varnishkes" method with egg is a little bit weird and definitely unnecessary.

Polenta : 2.5 cups water, 40 minutes then start checking for doneness and maybe 5 minutes more, uncovered simmer. Minimal stirring. Finish with butter & parm. Lots of salt.

Quinoa : 2 cups water, 10-15 minutes (generally 15 unless you like it really poppy like fish eggs). Covered simmer.

Warning : you must rinse quinoa before cooking, though many grocery store brands are pre-rinsed.

Yes yes I know couscous is not a grain, it's nuggets of wheat, but I treat it like a grain so whatever. Also Kasha is technically not a grain, it's a "groat" but it acts like a grain, and quinoa is some kind of seed or something.

The #1 mistake people make with grains is not salting. Grains needs a LOT of salt. Salting during cooking is generally good, but supposedly bad for steel cut oats (questionable). The #2 common mistake is probably overcooking. When in doubt slightly undercook because there will be carryover. Your goal is not mush.

General warning : it's almost impossible to cook less than 1 cup of a grain. If you're single or a small eater you may be tempted to try to cook less, but it's too little mass and the water evaporates too much and it probably won't turn out very well. Grain is cheap, just make 1 cup and throw out the excess.

Other notes on steel cut oats : Alton likes to add dairy, but personally I prefer them without any dairy; I've tried cream too, and any kind of dairy in the oats just really mellows out the flavor and subtracts from the nutty oaty goodness; I'd rather add extra butter, though the better the oats are cooked the less butter & sugar you need, you just want to appreciate the texture and natural flavor. If you are single and want to make a batch and don't plan on eating the whole thing - scoop out what you want to save after 20 minutes of cooking and put in tupperware. Lid it and stick it in the fridge. At 20 minutes it's very undercooked, but the residual heat will keep cooking it, so when you take it out of the fridge the next day it will be almost cook, and then after a few minutes in the microwave it will be done.


04-28-08

Planning dates or trips really stresses me out. If the restaurant or whatever activity sucks I feel responsible because I picked it. 99% of the time the suckitude could've been detected if I'd just done the right research, looked at the right clues, maybe cross-checked the reviews I found with other things I was familiar with. After the stressful planning, if it all goes well I just sort of feel relieved, and if it doesn't go well I feel embarassed, ashamed, and sorry. Urg.


04-27-08

I've finally found the really good hip new-electro dance bars in SF. These nights are almost intentionally not well publicised. They're in smaller places, they don't have fancy fliers. Sometimes I'm frustrated that these things are so hard to find and wish they would put better information out, but of course if they did it would attract the "bridge & tunnel" crowd and the popped collar yuppie douchies and frotteur/voyeur set. I am a little bit out of the loop though, so by the time I find places they are already on the downward part of their life cycle curve.


04-26-08

I kind of like getting library books that people have written in. Not a ton of writing, and not highlighting or underlining, that's awful and rude, but just little thoughts scribbled in the margins every few pages. It makes me feel like I'm reading the book with someone else, talking with them about our thoughts on the book. I remember back in college I got on a classic-horror kick and read through the entire collection of Sheriden Le Fanu books, and some other single person had scribled a few notes in all of them; this person had read through the same set of 12 books before me, and I followed in their footsteps with their notes as a guide and companion.


04-26-08

A lot of the companies I'm talking to these days use a semi-democratic model (Valve and Google, for example), where in theory people from the bottom can push good ideas and decisions are made by concensus. I have no idea how well it really works at those places, but I find that these kinds of things almost never wind up working as real democracies. The theory is that all the agents act and think independently, and thus ideas are judged only by their merits. That doesn't happen because people are human. A few different social problems hold it back.

Groupthink almost always develops in these groups. What I mean is a certain style of thinking becomes accepted by the majority and no longer questioned, and people find it easier to just go along with majority. This style might be something like love of STL, or love of very simple exposed C-style interfaces, or just the general concept that C++ is broken and many of our woes are due to the language, or whatever. It's some belief that's not really rational and becomes a common framework for everyone and the group thinks similarly. Groupthink develops for various obvious reasons. The senior people tend to hire new people that think similarly to them. The new people are taught the current way of thinking. People who think differently get in big debates all the time and get sick of it and just stop objecting. When the majority is against you, you tend to just stop talking.

Leaders and followers almost always develop. Some people are just naturally pushy, or very respected, or whatever, and take up leadership roles even in a putative true democracy. Similarly some people are just weak or natural followers or just lazy or don't care, and so rather than really be independent they just follow one of the leaders. This means that a few loud voices tend to dominate and you don't really get a bunch of independent thoughts on problems. This is totally independent of any formal heirarchy, and of course it develops in social groups of all types. At a place like Google, for example, I'm sure that many people adopt the "Larry and Sergey" way of doing things because it's easier to defend.

A lot of the problem comes from subconscious laziness. Really thinking independently about various problems is very tiring. Most people stop doing so and just go with the flow because it's easier. Usually this isn't even a conscious decision and people aren't aware of it. I've commented before about how when I'm out cycling by myself, sometimes I'll zone out and stop paying attention to my pace, and then all of a sudden I wake up and discover I'm going like 5 mph. The human mind has a built in subconscious desire not to work; it's very lazy, it's designed to conserve your energy for the next big chase or fight. In intellectual work, if we don't force ourselves to be active and vigilant in our thinking, we slip into lazy habits and just go with the flow and stop thinking for ourselves.

One way to fight this is turnover. You want to hire new people with very different styles from your core. This goes against most people's hiring practices who do retarded things like favor candidates that use the same coding convention as you. That may make it slightly easier to integrate someone, but it's much better for the health of the group to bring in people with different ideas. Then when you do hire them, you have to be a bit careful to not beat them into the groupthink mold. You also want to listen to their ideas on how you do things, because they bring a very valuable fresh mind. Often when I was moving around from company to company I would come into a new place and they would have some absolutely insane onerous process that made it so hard for the artists to work, and everyone there was just convinced that "that's the way it is", and I would be like "whoah whoah this is insane, you shouldn't have the artists spending 2 hours to sync every morning, or running a debug build at 1 fps" or whatever. Of course the newbie will also be a bit retarded since they don't know your process, so you have to be smart about what you listen to and what you ignore. When I was hiring I mostly did this the "bad way" ; it's definitely tricky to balance the immediate usefulness of hiring similar people to the long term health of keeping a diverse population.

Another problem with groups is that people have a tendency to develop an "us vs them" mentality. This is also subconscious and it pervades all groups, not just these companies. People have an innate desire to be part of a tribe and to feel like they're banded together against the rest of the world. It's a sort of pack mentality, and it leads to being very defensive of the practices inside the group and being dismissive of voices from outside the group.

Part of the "us vs them" mentality comes from creating myths about how great your practices are. All successful groups tend to over-value their practices and think the way they do things is great because they've been successful in the past. Well, maybe so. More likely your success is due to A) good people B) good circumstances, and C) luck. Human beings in general vastly underestimate the amount of variance in success, and look too hard for direct cause & effect relationships that often do not exist. This is most obviously retarded in gamblers; anyone who wins a hand of poker makes up all kinds of reasons why their style somehow led to that success. It's less obvious in endeavors with lower variance, but still present. For example, maybe some of your practices really are good, but many of your practices may not be; people tend to associate success with every single practice and elevate them all to the magic formula that brought that success.

None of that is to say that the democratic models are a bad thing, obviously they're very cool and successful if done right. But the idea that decisions will be made rationally and on their own merits is a bit of a dream. And how well you fit in is not so much about how you work in a democracy, but about how you meld with the dominant thought camps in the borg network.


04-26-08

I'm stuck on the gaijin sushi items. I love my salmon, yellow tail, tuna (many types), eel, and don't really appreciate anything else. I did convert to the minimal-soy dogma a little while ago, I do want to actually taste the fish. I'm not too bothered that I don't really like octopus or uni or some of the weirder stuff like geoduck clam or whatever, but I should at least like mackerel and halibut and that kind of stuff and I just don't. Actually I like raw white fish much better as crudo (Italian raw fish).

I wish more Japanese places had real natural soy sauce & fresh wasabe. The shit they serve is kind of like a breakfast place putting Aunt Jemima on the table (= Kikkoman Soy), and I Can't Believe It's Not Butter (= tube Wasabe). I think about the Seinfeld where Jerry sneaks in his own maple syrup. I imagine getting my own fresh wasabe root and smuggling it inside my pants, then I take a rasp out of my coat pocket, poke the wasabe out through my fly, hold my plate down at my crotch and grate off a bit.


04-24-08

I tell a lot of the companies I'm talking to that I want to work on "technology". I get the impression that they think that means I want to go off in a corner and do impractical pie in the sky researchy junk. Not at all. Something like figuring out the best way to turn gamepad stick deflection into character motion is a very interesting piece of technology. Writing Maya UI boxes to expose shader parameters to artists for the standardized shaders is "wiring". To me lots of aspects of gameplay programming or seemingly mundane things are actually "technology", it's more a question of whether the problem is already solved and I'm just plugging in a known solution, or whether it's something where I have some freedom to find the right answer.

In video games, the most basic aspects of the player interaction are still some of the most unsolved. How do the sticks turn into motion. How does that motion show in animations. How does physics & kinematic animation interact. How does physics limit your motion. How does a 3rd person camera track the player & the action. etc. very basic stuff, really not solved, and lots of interesting technology to work on.


04-22-08

Am I an obsessive over-perfectionist? Absolutely. Do I get bogged down in minor details and waste time fixing other people's mistakes that aren't actually important? I hope not. Anyone who does that is just retarded, since a true perfectionist should be trying to optimize their overall efficiency. A big part of the overall optimization is making good decisions about what to obsess over and what to let slide. Also a good perfectionist realizes that you aren't just trying to optimize a certain product or a certain process, you are trying to optimize the big picture which includes your relations with your coworkers, your amount of intellectual capital, the annoyance factor you are building up from nagging people, the mental momentum of the established way of doing things, the value of the existing standard & documentation & knowledge, and lots of other fuzzy factors.


04-21-08

"There are times when I look at people I see nothing worth liking. I want to earn enough I can ... get away from everyone."

Ruh roh shaggy.


04-21-08

The Schwarzenegger-Bloomberg Charlie Rose episide recently was pretty amazing. They're both very impressive politicians, extremely reasonable and rational, they get to the point and talk about the problems with government. A lot of liberals are still anti-Schwarzenegger and I'm not sure why.


04-21-08

Yesterday laying in the park with Alissa, this single guy came over nearby us and sat in the grass. He started doing some light stretch moves, rolling his shoulders and such, then did a head stand, then some dancy-like dynamic hip stretches. After the warmup he did a bunch of parkour rolls back and forth with pretty solid form, then proceeded to do the beginning Wing Tsun form (horribly though). I guess I should've gone and said Hi since he was doing almost exactly the same stupid things I do when I go to the park by myself, but I was just so blown away by how totally retarded he looked, and how I must look exactly like that all the time.


04-21-08

While I'm on culinary instruction : almost everybody cuts bell peppers wrong, even the majority of trained chefs do it wrong.

The right way ("right" being defined as fast & easy) is to cut the flesh away from the core, not to try to cut the core out of the pepper. Basically you want to chop off the outsides the same way you take the outside off a pineapple. Also never detach the stem part of the top from the core, you want it to hold the core together so you don't make a mess.

In detail : stand the bell pepper up vertically ; put the most stable end down, whatever that is. Your non-knife hand should be stabilizing the pepper by placing a finger tip at the top. Make vertical cuts downward with your knife, following the shape of the outside of the pepper, to cut off just the edible pepper walls. The knife should go right along the inside of the pepper walls so that the veins are left attached to the core. Don't try to cut too much in one slice or you will cut into the core or the veins - just take off the outside. It will take 3-8 cuts to take off all the outside depending on how irregular the shape of the pepper is. Your non-knife hand should now be holding the core with all the seeds and veins attached, which you throw away. When you do it right (very easy with practice) you will be left with 6-8 slabs of edible pepper exterior with almost no veins or seeds, completely ready for use.

For example, all of these people are 100% retarded. retard 1 , retard 2 Like hey, I know nothing about anything and my skills suck and my brain is broken, let me make videos telling people how to do things that is totally the wrong way. The blind leading the deaf or something. Yay interwebs.

(I mistakenly had this guy in the retard list, but actually he just shows the wrong way first and then the right way, not retard )

This guy at video.about.com roughly does it right, but his knife skills suck donkey balls. Maybe this is how you will fare since you probably suck ass with a knife too. Go practice dicing onions.

Okay I made my own video . I only had one bell at home so I knew it had to get it in one take. The pressure was on so I went extra slow and careful.

BTW I don't mean to rag on the amateur home chef with shitty skills. This is for you to learn. The thing that pisses me off are these people who presume to be teachers and just suck so bad. How dare you think that you are qualified to teach anyone anything when you obviously haven't studied or put any effort into this subject at all !? I have great respect for the people out there who actually have skills, and there are plenty of them, and it's disgusting for someone to put themselves on that level when they don't deserve it.


04-21-08

Checker and I were breaking the ends off of blue lake green beans a while ago, and we amusedly noted our different styles. Checker was breaking the end off each one by one whatever way he picked them up. I would take a bunch and turn them all the same way then break off all the ends at once. We figured it was an example of people taking different approaches to the same problem that appear very different but perform almost identically.

I now see it's an example of how people can take very different approaches to a problem, think that they have spanned the solution space, and yet still be ridiculously far off the optimum performance.

The right way to take the ends of blue lakes is similar to the right asparagus solution : just use a knife. Line up a bunch on a board and chop. Line up, chop. You're done. It's an order of magnitude faster than the hand breaking method, like seconds instead of minutes.

Presumably the very common practice of breaking off the ends of green beans by hand came from the historical practical of de-stringing string beans, but modern green beans don't have strings so this practice is vestigial.


04-20-08

Bleck. Grass fed beef sucks so bad. It's dry and grainy, and has some weird flavor sort of like your grandma's burned salsbury steak. I just spent some small fortune at Bi Rite on some shitty ass beef just because I don't really have any other nearby grocer options (I love the jive-ass meximarts in general but their steak is pretty poor). The steaks from cows that are stuffed with corn and not allowed to move around much is so much better, such as the Harris ranch stuff. (people think Harris ranch is fancy; lol; they have huge cow pens right next to the freeway out in the central valley with masses of cows jammed together standing in their own poo and chomping on troughs of grain; it's delicious).

Some of the better places now are grass feeding early and then stuffing with corn to "finish" before slaughter. Maybe that would work. I think wild Salmon is similarly shitty, the flavor is nice but it's so dry and dense compared to the lovely light tender farmed stuff.

It's basically trivial to spend a lot of money and produce good food; certainly plenty of people fail to do that, but it requires gross incompetence to screw up. Spending little money and producing delicious food takes care and skill. Of course it also takes a lot of skill to spend lots of money and produce truly superlative food, but very few people in the world ever accomplish that. Even their fanciest creations rarely surpass a good piece of buttered bread.


04-19-08

There's an oft-perpetuated myth that asparagus will snap naturally where the woody part ends. The suggestion is you hold the asparagus with your fingers and bend it until it snaps and the point where it snaps is where the edible part ends. This is complete and utter nonsense. It's similar to 19th century mentalist / sleight of hand tricks. The secret to deceiving the rube in this case is where on the asparagus you hold it. The reality is that the asparagus will break roughly at the mid point between your two grip locations. If you hold it from the two ends of the stalk, it will break near the middle. Most of the shysters who propagate this myth choose to hold the stalk with one hand at the base and one hand in the middle of the stalk, which makes it break about 1/4 of the way up, and then they claim that's where the woody part ended.

The better way is just to use your eyes. You can see the transition. This is of course what they are doing, using their eyes to decide where to hold it to snap it. Even if you use your eyes I can't really recommend the snap method, because it's very imprecise and you often snap off lots of good tasty bits. Just use a knife.

Once you cut it, you will see the exposed ring at the base. You can now see how thick the skin is there and decide whether you need to bother with peeling the stalk. Generally the actual woody part is very small or not existant at all on store-bought asparagus, and all you need to do is a bit of peeling.

Addendum : while on the subject of asparagus let's talk about size. It's really funny when people proudly brag about what nice thin asparagus they bought as if it's some prize. The truth is that in the supermarket, the thick asparagus is usually best. The love for thin asparagus is a very common sign of the yuppie fake-foodie pretentious douchebag who hasn't really put any study into food at all but acts like they are some authority just because they shop at Whole Foods and watch Rachel Ray.

The myth of thin asparagus is I think just based on foolishness. We could pretend that it's based on the fact that if you grow your own asparagus, the very first shoots will in fact be thin and tender and delicious, but I'm pretty sure that fact has nothing to do with this common erroneus belief. Asparagus is this plant that's mainly underground and sends up flower stalks over and over kind of like a mushroom. You chop off stalks a few times and it sends up more. When farmers grow asparagus, they of course do not chop off the first growth when it's very young - they sell by the pound and they want it to get bigger. So they let the first stalk grow big, then chop it off. This is the best asparagus and it comes in spring and is quite thick. Then they let it grow stalks again and chop it off. Then they do it again. These stalks will be thinner and thinner as the plant is getting out of season. In the fall you get very thin stalks and they are horrible. Of course the real way to judge the quality of your asparagus is to look at it like any other vegetable. Size doesn't matter so much as the color and texture. It should be all green, without any yellow splotches. The skin should be plump and smooth, never wrinkly. If you can touch it, it should be crisp and snap easily, never bendy.

Amusingly, this asparagus error is so common that you will often find the asparagus bin has been picked through and all the crappy thin stuff has been removed, and only the nice plump crisp thick stuff is left. Well, okie doke. To give people some credit, part of the misconception comes from the fact that thick asparagus does need some peeling. That can be done very quickly with a paring knife if you have top skills, or slightly slower with a veggie peeler.

Now if you are one of the many people suffering from bad information and believe that thin asparagus is good, that doesn't make you a horrible person. But if you brag about that fact and act like you know far more than you do, that's bad. There's general disease in our culture that people like to act like experts and take pride in things that they have put absolutely zero effort into; have you studied food, have you read books, have you practiced, have you asked questions? no? then why the fuck are you pretending to know what you're talking about? The real test comes with how you react to correction. Good people are glad to be corrected and welcome the new information, perhaps with skepticism but still with gratitude.


04-18-08

My ex-girlfriends all tell me I should "open up". They're wrong. Sometimes I try really opening up and talking about the complicated thoughts I'm having, and it just leads to confusion and makes things worse as they make all kinds of negative conclusions from what I admit. When they say "you need to open up" they really mean "you need to show more affection for me". People don't really want to know what you're thinking. They don't want to hear about your doubts or the hints you're seeing that your relationship isn't going to last or the problems you have with them or that you think they're getting fat and you're not attracted to them as much anymore, or that you're disappointed with your life and feel like you need a big change or whatever it is. (for the record, these are not examples from my life they're just things I thought of now as examples of thoughts you might have that they don't want to hear).

I'm learning more and more that the idea of really living honestly and connecting to people on a deep level is not possible, and even trying generally makes your life worse. If you just do the superficial/manipulative thing of pretending to be the person that they want, positive & funny & loving & caring & interested in what they're saying & supportive and etc. that your life will be much better. eg. just fake it. You don't even have to "fake it till you make it", you just plain fake it, there is no "make it". A lot of people have a negative reaction to this idea because they have very false ideas of what "faking it" is like; they think of the total douchebag guy who's always smiling and acting your friend. That guy is just a really bad faker and obviously not a good example of how to live. The better example is the charismatic guy who's always nice and seems real and is fun to be around. He's a total faker, but he's good at it, and that makes his life better and the lives of everyone around him better.

In fact, being "real" and not faking it is very discurteous to others. Everyone can think of examples of this. Say you and your spouse throw a dinner party and he does something right before to piss you off. The mature thing which benefits everyone is to just hold it in and pretend to be happy until after all the guests leave. But even after they leave, why exactly do you need to say anything about being hurt? If you can say something and have it improve the situation and make it happen less in the future, or make you both feel better, then that's great, say something. But that's often not the case. Often you are saying something just to make yourself feel better, and it will make him feel worse and make you both angry at each other. Then you shouldn't ever say anything. Those cases are in fact the majority, and if you look for these spots you'll see more and more than the really considerate and mature thing to do is to ignore your real feelings and just act jovial and entertaining and sweet.


04-18-08

I hate you all so much. You people are not only banal and boring and bland and boorish and bourgeois, you're proactively evil, you make the world worse every day in every way. The most uncreative uninteresting unthoughtful people roll their eyes and whine about how uncool things are. The people with the least to say and never any insight are the loudest and dominate every conversation. The most selfish and uncaring and uncurteous people chew me out for doing things that are totally reasonable. The most uncultured and unintelligent are pretentious and condescending and act superior.

I'm so angry at my fucking human biology which makes me need the company of other humans. I wish I could just go away and live in the woods and commune with the squirrels and be happy, but I can't. My own cells betray me. They force me to seek the approval of these fucking walking turds. My own cells that I care for so well, they force me to feel like a loser if I don't fit in with these slags.

I guess I'm having a bad day. I'm kind of depressed, and in a somewhat amusing feedback loop, it really depresses me when I get depressed. If I was the strong uberman that I think I should be, I wouldn't let myself get depressed, so feeling depressed is a fucking failure, it's being weak, it's giving in to wallowing in teenage woes, and I'm such a fucking loser for doing that, which of course just makes me more depressed.


04-17-08

My external hard drive that turns itself off when idle turns out to be a huge fucking evil thing. It's an okay idea in theory, but it's not at all well coordinated with Windoze, which makes it fucked in practice. The worst thing is that occasionally Windoze decides it needs to look at that disk for no obvious reason; I'll do some file op on my main disk and suddenly it stalls and waits to spin up the external for no reason (obviously some code somewhere is enum'ing all the disks and querying something on them that's not cached but that's fucking fucked; for example some of file select dialogs do this).


04-17-08

"Italian for Beginners" is a pretty horrible movie. It's a random mashup of unpleasantness and cheeze. Many of the Dogme Manifesto movies, faced with the difficulty of achieving emotional heft under the simplicity constraints, resort to a very manipulative battering of the audience with human misery. Then we get a mix of pure Romantic Comedy silliness where everyone's problems disappear and they all have fun and find love.


04-16-08

I think the whole "pita pocket" thing must've come out of some dumb American trying to make "foreign food" and totally misunderstanding how you make use of bread.


04-15-08

Fucking hell. A lot of the financial websites now are doing this thing where they track what computer you're logging in from. I'm not sure quite how they're doing it, but however it is is fucked. I'm plugging things in & out of my machine all the time and it seems to make it qualify as a different machine and I have to go through this long fucking validation to get to my accounts again.

Bleck. While I'm ranting about it, these fucking web people just keep making the most awful unusable sites with fancy shit that doesn't work. I fucking hate fucking web apps and their shittiness and bugs and fucked interfaces. Yesterday I spent half an hour filling out the online application for a passport, and I get to the end with the magic button that says "generate form" and I click it and it takes me to a flash page and spins the loading graphic and then does absolutely nothing. Awesome.

Even more common these days are all the active forms where like every time you click a check box or something on a page it has to load to update some derived shit or show you something useless, so instead of being able to tab through the dialog and click things fast you have to go click, oh wait while it changes, click, wait, oh fuck my cursor moved, click, whoah the blank I was about to fill is gone. Fucking fucked retards.

One of the most common examples of this now is the fucking date entry widgets. I tab into the date entry field and start typing it out, then look up and notice that some fucking GUI widget has popped up over the date blank and now I have to mouse around to find the date I could've typed in half a second.


04-14-08

The regular "toss everything in a pot" method of making pot roast tends to just make a bland mushy pile of goop. You can make a much tastier faux pot roast using the "cook separate and combine" method. The idea of cooking the flavors together is very overrated; for example when you cook carrots with meat, you really don't get good carrot flavor into the meat, all you do is suck the carrot flavor out of the carrots. When you cook things seperately, each thing gets a chance to brown and develop it's own rich flavor, and then when you eat the dish you can put those flavors together in your mouth.

Basic composed pot roast : sear the meat in a big pan, salt & pepper of course. Toss a bit of flour in the pan and stir around in the meat fat (this will wind up thickening the sauce). Add liquid to almost cover, stock or maybe some beer, also bay leaves, whole garlic cloves, etc. Put on a tight lid or aluminum foil and toss in a 325 degree oven. Cook about 2 hours. Now jam the oven up to 425. Toss in a sheet of carrots rubbed in olive oil and salt & peppered. Also toss in a sheet of potato wedges with the same treatment and also perhaps some thyme or similar. Cook about 30 minutes at the higher heat. Make sure you don't completely run out of liquid on your meat, add liquid if necessary but not too much. The carrots should get nice and charred. When it's all cooked, remove from oven. Pour the juices off the meat & reserve. Toss the carrots and potatos in the pot with the meat. Toss in some frozen peas and let it all sit 5 minutes so the peas cook.

Turn the juices into a sauce. To really do this right you should've cooked the whole thing ahead so the drippings can cool and you can take off some of the fat. Or you can skip that. Taste the juices and maybe don't do anything. If it's too thick, add wine or beer or stock. If it's too thin, you can either cook some flour in the pan you cooked in to make a gravy/roux, or make a cornstarch slurry and add that, or if it's thin and the quantity is sufficient you can just cook it down a bit to reduce. Perhaps add salt & pepper to the sauce. Finish with a bit of butter.


04-14-08

Nobody really appreciates hedging. When I'm not sure about something or I feel like I might wind up changing my mind at some point, I don't feel like I can just commit without qualification, so I'm cautious, send some mixed signals, and hedge my words. I figure that's a favor to everyone else involved so that they know what they're getting into. But people don't respond logically to hedging. It makes them super cautious, way more so than they should be, or it just annoys them and they don't see it as anything more than weakness or lameness. People generally much prefer it if you commit without hedging regardless of whether you really feel that way or not, then go ahead and change your path with equal conviction somewhere down the road if necessary. This is true in relationships and in business. If you look at the beloved figures of history and fiction, like G.W. Bush or Captain James T. Kirk they are always the brash macho guys who commit 100% and believe that what they are doing at the moment is right and never hedge.

On a related note, even "hedge funds" these days don't actually hedge. LOL.


04-14-08

I got lazy about finding new music in the last few years. Of course part of the reason I was so vigilant in trying to find cool new undiscovered music in the past was to impress girls. Yes I also liked the music, but anyone who doesn't admit it's to impress others is foolish. It's to show that you're cool enough, when hipster indie music lover people meet someone, one of the first things they do is look at their music collection (or I guess now it's their iPod playlist) and judge them based on it. If you don't have enough rare little known hip stuff in common you don't qualify. Anyway, with Dan I stopped looking. I have enough great music that I can listen to whatever from my 1000+ CD's and find something to fit my mood and not get bored of it.

Anyway, that's changed now, and Alissa introduced me to the Junior Boys. Who knew that my love of offbeat indie music and my love of electronic dance music could be combined? They're pretty rad.


04-14-08

There are three big problems with game development (from a working conditions point of view) :

1. The amount of work vs. amount of reward ratio is way off. The amount of work expected of employees is massive, and you have to be very smart, and the reward is nowhere near what you can get for similar highly skilled work in other industries (such as being a quant in finance, or a consultant for petro companies, etc. etc.). The big problem is that so many people want to work in games because it's fun and they love playing games, that it drives down the wages and makes the working conditions worse.

2. Competition with other crunchers. I suppose this happens in other industries as well, but the problem is to some extent all the game companies are competing to do the next cool thing, and everybody else is way overworking and crunching to produce things fast, and everyone is making things with a lower budget and shorter time than is really needed, and you have to compete with that. Some people seem to avoid this trap to some extent, like Valve and Blizzard, but they can really only get away with it because of the fact that they are the only ones that do it. And I don't think they're working at any less of a fever pitch, they just do it for longer.

3. Bad management. Most of the people running game production are not qualified for the task. I'm not sure this is necessarilly worse in games than it is in other industries, but the thing is game technology and production is changing so fast that you really need powerful intelligence to run a game company, whereas in other industries there are these learned best practices that have developed over N years that people can just copy and do okay. If you like you could phrase this as saying that the high rate of change of methods and technologies is what makes games so hard & painful to make, but really those things just expose the weaknesses of planners that can't handle thinking ahead and can only learn from experience. (eg. was the debacle of the Iraq invasion necessary because it was a new situation, or did the novelty of the situation just expose the incompetence of the planners that didn't anticipate the challenges correctly?). Also by "management" here I'm not necessarilly just talking about the game studios, but also the direction from publishers. Of course the rapidly changing technology is what makes it really fun to program for.


04-14-08

I've done almost every day hike that's reasonably accessible from SF. I don't really mind repeating, there are some really nice ones I'd be happy to do again, but I have a problem. The first time I did most of them was with Dan, and whenever I go back it still makes me think of her. I don't like doing things that I did before with someone like that, I'd rather build new fresh memories, but my hiking options are running slim. There's also huge advantages to doing things you've done before - you're an expert at it, and you know what's good. I'm always trying to take people new places, and it leads to a lot of mistakes because doing new things is risky and often it sucks. If I was willing to repeat I could create more magic moments.

There's a whole new kingdom of hiking if I consider going as far as Mendocino or Auburn/Grass Valley , but those are mighty far for day hiking.

The only things I haven't done here are the short Alamere falls hiking in Reyes, and I haven't actually been to the top of Diablo, though I've been around it. I also haven't been to Sunol/Ohlone so that's something to do.


04-14-08

When I have a severe allergy attack, as I have for the past few weeks, I feel like the mucus builds up in my sinuses, behind my eyes, in my temples, more and more goopy gunk builds up in there, the pressure mounts, and it starts to seep into my brain. The little spaces between the brain cells get jammed with mucus, and it slows the electric flow of thoughts, it creates a fog in my mind, a gray haze of mucus that makes me zone out. Then when I eat spicy soup, and sit in a steam bath for a while, and then get a huge long sneeze, I feel like I can pull the snot all the way in one long strand from deep inside my head, and my thoughts suddenly clear and start to move faster.


04-13-08

Bathing with Bierko is kind of funny. It makes me wonder - does Malkovich know that what makes him so funny is that he's just a ridiculously awful actor? When he tries to do a character like in Rounders or Dangerous Liaisons it's awesomely bad. He seems to be a good sport about making fun of himself, but I wonder if he knows what's going on. Do I know that what makes my blog so funny is that my thoughts are amusingly inane?


04-12-08

I finally made it out to Henry Coe on Friday. I've been thinking about it for about a year, but it's an awfully long drive from SF city and the hikes are all long so I never quite made it. It's also really only nice in spring and tolerable in fall so you have a limited window to hit it. Henry Coe is the biggest State Park in CA ; that's not saying much since all the great places are national parks or national forests. It used to be a cattle ranch but was shut down & donated back in whatever year blah blah. It's all rolling hills and oaks and stuff, I imagine it's what 90% of southern California looked like before settlers cleared it (of course its nowhere near its original state either). There are lots of wildflowers in spring and it has a sort of rustic beauty. There's lots of wild life. We saw deer, wild turkeys, and a coyote.

Anyway, the attraction for me was always the swimming hole ("China Hole"). It's a moderately strenuous 5 mile hike in to the hole which keeps the crowd down a bit, at least on week days. It's a nice big clean hole in a river with some fun jumping rocks. There's a bit too much traffic for nudity unless you're an incosiderate freakazoid who likes to show off their wang and belly to hapless hikers. I went with Alissa and we spent a few hours jumping in the cold water then lying out on the rocks to heat up, then jumping in the water again. There were fish and turtles swimming around us, wild turkeys making their psychopathic-clown-laugh sound, and much clumsy buffoonery by me.

I would go more often if it wasn't a 1:30 drive :( ; I put a few pics on flickr.


04-10-08

SF hiking links :

Kevin's Hiking Page
The best overall hiking page about CA. He hasn't added much content in the last few years so it's failing to keep up a bit, but still very well organized and lots of useful information.

Gambolin' Man
Two-Heel Drive, a Bay Area Hiking Blog
Two excellent hiking blogs. Good photos and descriptions of lots of Bay Area hikes. Two-Heel is more strait to the point information, Gambol' is more of a prose poem about the wonders of hiking with lots of great photos.

California Hiking Trail Finder
SlackPacker is a cool site with good general info on how to be a decent hiker. Their link page of CA information is quite good.

.. Hiking in Big Sur ..
Really superb site detailing the hikes in Big Sur.

WaterFallsWest CA Index
WaterFallsWest Blog
WaterFallsWest is a cool page I just found. Obviously it's focused on waterfalls which I don't care that much about, but it's got tons of information on hikes in CA, and waterfalls very often = swimming holes, which gets me pretty excited. It's also a mix of a hiking blog + a useful database which is a pretty sweet combo.

Openspace.org - Your Preserves
The Peninsula Open Space main page ; the site blows but their maps are superb, so just download all the PDF's and figure out your own trails.

Redwood Hikes
RedwoodHikes is a commercial site selling maps & trail guides. There's plenty of free information though and their trail descriptions and photos are very good quality, unlike the shitty bahiker. Even their limited previews of maps are better than most of the free maps you can get elsewhere.

Running Trails - trailrunning tips and information.
Marin County trail running site. I hate trail running, but this site has some useful descriptions of trails with good information you don't often get, like how to link various trails together and water stops and grades. Also, these people are fucking irresponsible douchebags, running up & down steep trails with trekking poles totally ruins the mountain, so if you stop by email them some hate.


Random other hiking links I have :

Waterfalls of California - Traverse Creek Falls; Placerville, El Dorado Natl. Forest
Waterfalls of California - Shingle Falls; Spenceville Wildlife Area, Marysville
Waterfalls of California - Gold Country Regional Map
The Tahoe Sierra A Natural History ... - Google Book Search
South Yuba Trail
South Yuba River SP
South Yuba Map
Popular Day Hikes that Start at Henry W. Coe State Park Headquarters
Point Reyes National Seashore - Maps (U.S. National Park Service)
Nevada County Today's Feature Summer swimming holes They're plentiful along the Yuba River if you know where to look - TheUn
Mycological Society of San Francisco
Malakoff Diggins Shp, Northern Sierra Nevada, California
Henry Cowell The Truck Trail and Fall Creek
Henry Cowell Swimming Hole
Henry Cowell Redwoods Big Rock Hole Swim
China Hole & the Narrows
Camp Spots by Swimming Holes - Weekend Sherpa
Best hikes in the San Francisco Bay Area
BAY NATURE Fields of Color Wildflower Viewing in the Bay Area
Bay Area Hiker Tennessee Valley Trailhead
Bay Area Hiker Memorial Park
Bay Area Hiker Ano Nuevo State Reserve
Arroyo Seco Nude River Hike (NSFW)


04-09-08

Fucking hell, there are some really ideal jobs for me in Seattle. I would like to stay here, I like SF, but work is important, it's 50 hours of your life each week, and doing good work with good people is a huge part of happiness. Friends and clubs and everything that I've found here I could find again anywhere in theory.

In general in human decision making processes, adding another type of factor to the decision make it almost unsolvable. If you're just looking at {job} you can give values to your choice and pick the best. When you start trying to make a decision on {job,location} you suddenly have a metadecision - how to weight the two factors. The problem is they're in different units, so there's no absolutely correct way to combine them to make a single rating, it's totally arbitrary and you just have to "feel" how you want to want the two factors, which leads to dead end logic and circular reasoning and general failures to make a decent decision.


04-09-08

Duh, I guess you all know this, but I just realized that the "M3U" playlist files are just text file lists. So you can easily make them yourself. So you can write your own little apps to aggregate your music in various ways and create playlists by artist, by date, by album, whatever, and put them in dirs together. I guess it's a really obvious use for perl but I just wrote a little C app. You can just google "m3u playlist perl" or "m3u playlist bat".


04-07-08

So I bought one of those retro padded vests that's so popular these days (and by "these days" I mean two years ago). Mainly I just want to look like Bret McKenzie and he wears them alot. It's actually been cold and I wore it one night and realized - padded vests are totally retarded. My arms are the part of me that gets coldest fastest, and the vest leaves that crucial part un-warmed. In fact, if I were to take a jacket and someone told me I could only keep half of it, the half I would keep is the arms!


04-07-08

I'm so fucking upset about the shitty ass media player options. I'm sort of forced into iTunes because it's the only decent way to manage my iPods, but I keep trying to still use WinAmp, but the shittyness of WinAmp is becoming too much to bear. Fucking ass. It's one of those things that makes me disgusted about our whole industry. How is it that people are still making such awful unusable software!?


04-07-08

Went hiking with Ignacio on the back side of Purisima in the "Bald Knob" area. There were tons of cyclists on the road in the way in, but not one single other person on the trail. The main part of Purisima is often crowded and full of mountain bikers, but I guess nobody makes it back there. It was gorgeous, a few nice views, and the trail was all overgrown due to the lack of use, which makes the hike a lot more fun.


04-06-08

The Mission is literally gentrifying before my eyes and it fucking sucks. In the last month we've had 3 new restaurants open, all of which have that fancy well-designed interior that looks good but is way too noisy and not actually pleasant to eat in, and the food is okay but totally lacking inspiration or passion (Farina, Spork, Beretta). Little fancy clothes boutiques have been popping up like the spring wild flowers. And the people who come are the posh set, they're terrified and disgusted of the real neighborhood, and they scurry between their fancy restaurant and their fancy bar and their fancy cars.


04-06-08

Example of how search is fucked :

There are three good web sites about hiking in the bay area : Hiking with Kevin , Gambolin' Man, and Two Heeled Drive. When you search for hikes on Google, quite often not one of those three will show up on the first page even though they have info on that hike. In order to get the information I want, I have to do searches like "portola redwoods kevin" or "portola redwoods gambol" which is fucking retarded.

Step 1 improvement : The system should know I like those pages and automatically give me results within them.

Step 2 improvement : The system should've figured out I would like those pages based on my tastes and how other similar people already rated the sites.


04-06-08

Homosexuality is not corrupting the fabric of America. Unisex pants are. Unisex pants go against everything I hold dear.


04-02-08

I'm going to Big Sur Thu-Fri so I'll be out of touch. Ciao.


04-02-08

Dating & social networking is really weird. I've met people through web sites recently, and it's generally been a really good thing, I've met some great people, so as a way of making real world connections I find it totally succesful. The weird thing is when you actually start dating someone from a social network site and you're still both active online. You see each other online, and the whole nature of the social networking sites almost forces you to be an online stalker, because you get notifications when they write something new, you see each other's friend network, etc. I guess the kids these days growing up with Facebook and whatnot probably find this all totally normally, but I find it really creepy. Not only do you see the other person's blog posts on their page, but you see their friends' comments. There's a whole lot of very private communication between people that is posted publicly these days. You can tell who they're hanging out with, what they did that night, you can see when they post up new pictures, etc. I really don't like it. I'm not super jealous or intrusive in peoples' lives normally, but seeing all these bits of things online leads me to those thoughts.

I've always had a pretty active online life, but unlike the new generation of web 2.0 kiddies, I like to keep it separate from my real world life. I think that's pretty common among the older generation like me, we don't merge our physical and digital worlds so much. I'm okay with taking people from the online life and promoting them to real-world friends, but after that I can no longer be as free around them online, and any intimate communication has to be real world. Once I make too many real-world friends on a certain site, I can no longer be free there and have to leave and go to a new site where I don't know anyone in the real world.

BTW I think we should call web 2.0 sites "BBS's" since they're really not much more or less than an old BBS. They are similarly isolated from each other. They're a similar mashup of forums and other content. The BBS's generally had much better moderation and community management and screening. It's kind of funny that we went from these little islands of BBS's that had many great advantages, and we blew them up and went to the totally spread Web model which threw away the greatness of community forums, and now we're back to basically a BBS model and we haven't really improved on it much at all, except for the trivial UI improvements that you would expect from the huge increase in network speeds and computer power.


04-02-08

BTW I passed the Google job interview. I haven't gone through the offer process yet and I'm not sure that I'll accept it, but I'm happy to have passed the test. I was a little worried cuz I didn't think I really nailed the interview, and they take a long time to respond. I'm used to interviewing at game companies where they give me a job offer the same day and beg me to start work the next day and make promises of back rubs and blow jobs. Googs definitely seems like a good place to work. I'm a little turned off by walking in and seeing the giant rooms full of cubicles and soul-crushed coders hunched over glowing screens.

I'm talking to ILM and PDI to see if there might be a fun job for me there. It seems like it could be a pretty good fit; I imagine they have some smart research guys, but I think I could bring an ability to understand practical issues and implement good technical solutions. But my background is not in film, and they don't know me, and my resume/experience doesn't impress them at all, so I get tossed in with the regular candidate pool and have to list my skills and all that junk, it's quite humbling and I'm really not used to it.

I would be taking a big pay cut & seniority cut at these places, but I'm totally fine with that as long as the work is good. The problem is it's hard to tell if the work really is good. I really don't put salary as one of the more important things about a job, I care more about what work I get to do, how cool/smart my coworkers are, how good the management is, how much freedom I have at work, etc. However, on all those criteria you will be lied to by the people trying to hire you. Salary is the only thing that you actually know for sure you will get what you are promised.

It reminds me of back in the day when I first interviewed at some game jobs, and I interviewed at Valve, and I was kind of laughing to myself inside the whole time, because I could tell the Valve guys were not really impressed with me at all, and I knew that I was a fucking code ninja and they just couldn't see it.

ps. I'm not actually as arrogant as this post makes me appear to be.


04-02-08

I find the Netflix Recommender kind of useless. When I'm browsing around movies trying to find new things, I don't really want rating *correlation* I want movie *similarity*. Like if I'm browsing arty Japanese movies, I don't want it to be telling me "people who liked this also liked" the documentary on Herzog and Kinski, or some damn Ingmar Bergman movie, which seems to always correlate to the stuff I like regardless of the original movie. I want recommendation of other arty Japanese movies. And in fact there's a lot of merit to the graphical representation of something like GNOD, though gnod is a broken ass piece of crap. I'd like to see the nearby similar movies in a 3d space, with the axes meaning something, (the 3 most prominent SVD vectors would make good axes).

Basically a good film-buff human is way better at recommending movies that are related to something I like. That really shouldn't be. The computer has way way more information about my taste history and about the movies that are out there, but it still isn't close to making good recommendations.


04-02-08

Great movies that are a little bit off the radar so you may have missed :

And I also have to mention Emir Kusturica and Takeshi Kitano. If you haven't seen their core body of work, they are absolute must sees; I always think of them as pretty mainstream and well known, but it shocks me to find how many film buffs haven't seen any of their movies.

The core Emir Kusturica set is "Time of the Gypsies" , "Underground" and "When Father was Away on Business".

The core Takeshi Kitano set is "Hana Bi", "Sonatine" and "Kikujiro".


03-29-08

While I'm at it I'll write up the PD I'm using for the record. This is not an exact solution of the PD - it's an implicit Euler step. You can actually totally solve the PD exactly, but using an implicit Euler step actually is more stable than the exact solution, it adds a sort of fake drag which is a nice thing in practice. It's also a lot nicer numerically for doing tiny steps than using the exact solution with exponential functions.

K & D are unitless config parameters of the PD
  K = 1 and D = 1 are reasonable ; D = 1 is critical damping
time_scale = desired time to converge
dt = current time step
x0,v0 = start position & velocity
x1,v1 = target position & velocity

ks = 36 * (K / time_scale)^2
kd = 9 * K * D / time_scale

scale = ( 1  + kd * dt + ks * dt^2 )

a = ( ks * (x1-x0) + ( kd + ks * dt ) * (v1-v0) ) / scale

vt = v0 + a * dt
xt = x0 + vt * dt

If you had no min velocity that would be it. Note the funny scale numbers in ks & kd ; those are just there so that the time to converge roughly matches "time_scale", and so that K = D = 1 is a good choice. Note that K,D, and time_scale are really not three independent parameters, there are only two free parameters, but it's easier to tweak if they're seperated because you can leave K and D alone and just change "time_scale" to match your desired duration to converge.

To handle min velocity you add some logic after the above PD step :

mv = min velocity

if ( |xt - x0| <= (mv * dt) )
{
	if ( |x1 - x0| <= (mv * dt) && |v1 - v0| <= 2*mv )
	{
		xt = x1;
		vt = v1;
	}
	else
	{
		vt = (x1 > x0) ? mv : -mv;
		xt = x0 + vt * dt
	}
}
This is ugly in various ways. The first part was a pure PD that works in N-d. Now we've gone to 1d. Also the first part worked with arbitrary end velocities. This min velocity part only really works for a still target. I think it's not too hard to fix for a moving target by using a min velocity relative to the target but I haven't bothered.

Now of course PD's don't always take the same amount of time to converge, unlike the cubic. Converge time depends on initial seperation and initial velocities. With the constants in the equations above, and if you set up your tweaks right, then you can have a PD that converges in roughly "time_scale" for typical starting situations. Here's how the time varies :

PD convergence graph

the X axis is the "time_scale" parameter, and the Y axis is actualy time to converge. If it converged in the time you wanted, all the points would be on the red line (Y=X). There are four series of points for different starting distances so you can see how converge time varies for starting distances. The distances are {160,320,480,640}. In the graph the start & end points are all at zero velocity.


03-29-08

cubic maxaccel maths

I figure I should write up the maths for the record since I've described it previously but haven't been totally clear. There's an implementation in testdd you can look at.

The goal is to make a curve that goes from initial position & velocity {X0,V0} to final position & velocity {X1,V1}. Position and velocity are N-d vectors. Traveling this curve, you should at no point exceed the maximum acceleration "m". m is a scalar. I'll use caps for vectors and lower case for scalars.

The lowest order polynomial curve that fits these condition is a cubic. A parametric cubic has 4 vector coefficients which can be used to fit the end position & velocities. It also has a free scalar - the time to travel the parametric interval from 0 to 1. This duration can be fit to "m" the max acceleration.

Using the Bezier form we have :

B(s) = B0 *(1-s)^3 + B1 *3*(1-s)^2*s + B2 *3*(1-s)*s^2 + B3 *s^3

s = (t / d) is parametric time
t = real time
d = duration of curve
And fitting to the end conditions :
B0 = X0
B1 = X0 + V0*(d/3)
B2 = X1 - V1*(d/3) 
B3 = X1
Now, the velocity of a cubic curve is quadratic, the acceleration is linear. The means the highest acceleration on the interval [0,1] is either at 0 or 1. So we have to just check the acceleration of the two end points :
A(0) = 6*(B0 + B2 - 2B1)/d^2
A(1) = 6*(B3 + B1 - 2B2)/d^2
Now you have to solve both end points and use the shorter of the two durations. You may want to early out to handle the trivial case, if you can use a tiny value for "d" and not exceed maximum acceleration at either end point, then just return. In fact "tiny value" could be the duration of the frame - if you can step the whole curve in one frame then just do that.

If we just consider A(0) for now we have to solve :

|A(0)| = m
m = max accel parameter

or

A(0)*A(0) = m^2
(B0 + B2 - 2B1)^2 = m^2 * d^4/36
( (X1-X0) - d*(2V0 + V1)/3 )^2 = (m^2/36) * d^4
You can expand out the dot product and you are left with a quartic polynomial in the duration "d". Solve this polynomial. There are in general 4 complex roots of a quartic. You must choose the lowest magnitude positive real root. There should always be a positive real root because all the coefficients are real.

Note that the quartic arose because A was a vector - if we want to just solve the 1d problem it's much easier, because the equation in d is just quadratic. Note that you can not just solve the 1d problem and run it indepedently on each dimension of a vector, because that allows maxaccel in each dimension seperately and gives you curves that are obviously axis-aligned (it breaks rotational invariance of your space).

Once you have solved for the shortest duration "d" which gives you a curve that doesn't exceed maxaccel, you can now simply step along the curve. Note that we are not simply applying a force, but taking an exact step along the curve, you evaluate the position and velocity from the curve at the end of your current time step. This is equivalent to doing an exact integration with a force that is changing.

NOTE : we are not solving this curve once and hanging on to it; our system has zero state. A new curve is solved each frame using the current position and velocity. Because the cubic is exactly constrained, if the external conditions are not changing, then solving each frame will produce exactly the same path as just following the original solution the whole way. If the external conditions are changing, then the path changes smoothly.

ADDENDUM : talked to Drew about this, he made me aware of two issues. One thing I should state clearly : when you are changing the duration of the cubic, you are not just changing how long you take to follow the same curve. Obviously changing the rate of change of the parameter would change the acceleration, but that would also change the start & end velocity. In the math we did here previously, we are scaling the duration of the curve while keeping the real-time start & end velocity constant, which means that we are changing the parametric velocity of the ends of the curve. That means the curve actually has a different shape as you scale the duration.

The other note is that it might be possible to have seperate accel/decel parameters by using a different "max accel" parameter for A(0) and A(1), since you are generally at max accel at the start and decelerating at the end. That's not necessarilly true if the start & end velocities are not zero so maybe a bit more thought is needed, but in general the idea of using different maxaccel to get a control over accel & decel seems possible.


BTW you can also acheive the same purpose using a piecewise quadratic. To use a piecewise quadratic you have 3 phases of travel :

phase 1 : accelerate up to max velocity
phase 2 : travel linearly at max velocity
phase 3 : decelerate to hit target
So in phase 1 you are fitting the end points {X0,V0} and ending max velocity. The maths for piecewise quadratic are slightly simpler, but the logic is quite a bit more complex because you have to figure out what phase to use and also handle the degenerate cases where phase 2 is not needed because you're close enough to the target.

I find the cubic is more appealing because you can just do the math and get an answer. There is one advantage of the piecewise solution, which is that you can have seperate max accel parameters for the acceleration and deceleration parts of the curve, which can give you non-time-symmetric curves.


03-28-08

God damn tattoos are so fucking awful. Why are you putting this nasty dark green badly drawn fucking amateur art on your gorgeous human body. If you're a big ugly man, then WTF go for it, knock yourself out, but if you're a sexy woman then don't wreck yourself!


03-28-08

The romantic relationships you have when you're older can really never match the magic you can share with someone earlier in life (up until around 25 or so). In your first few serious love affairs there are so many new experiences you can have together - really falling deeply in love for the first time, living with someone for the first time, really wanting to spend the rest of your life with someone else for the first time. And even beyond those obvious ones there are just constant new things that you can teach each other and show each other in the world because you're both young and you're still discovering and become adults. When you're 22, you can do things like just go to a fancy restaurant and it's so exciting and new, or take your first vacation that's just you and a lover flying somewhere exotic, or discover new kinds of music.


03-28-08

I'm trying to make a "sexy movies" list because so many people out there are just fucking retarded. Rape and disgusting old men are never sexy. Just because a movie has sex in it does not make it sensual. Cheesy 80's movies are too goofy to be sexy. Super realistic sex or lighting is also not sexy.

The ideal sensual movie is intelligent, titillating, lush. It's a very fine line between cheesy and hot, because you do want a little bit of that orange-light soft-focus over-acting-pleasure, but if you get just an ounce too much it crosses into cheese and doesn't work. The ideal movies tease

There are a lot of classic Hollywood movies from the studio age that sort of qualify, but I'm not going to include any of them because they never quite cross the line from alluring to arousing. Something like "To Have and Have Not" may in fact be more appealing to women, or pretty much any early Brando, Bogart or Cary Grant movie.

I'm also not going to list movies that have like 5 sensual minutes that are sort of out of place in the movie and don't fit in with the general mood.

Not Sexy :

Borderline :

The truly sensual movies are as much about the director and the look and feel of the movie as what happens to the characters. They also have to be good enough to be watchable just as movies.

Sexy (in no particular order) :


03-27-08

How to make casual group decisions.

Typical office conversation around noon : Where do you want to go to lunch? Uh, I dunno, whatever, where do you wanna go? Whatever. Well what about that one place? Mmm, nah, not there. Well how about blank? Nah.

I like to play "Choice Giver / Selector". This is sort of like the fair way to cut cake. One person cuts the cake into pieces, then the other person gets to choose which piece they want.

In "Choice Giver / Selector" , first someone is nominated or volunteers to be the Choice Giver. The Choice Giver should give 2-3 fair options which are reasonably distinct, eg. you can't just give the one option you want and then other straw man options. There's always protection against a bad choice giver, because the Selector gets to choose one of the options, or he can select to swap roles - he says "none of the above" and then becomes the Choice Giver and must give options himself.

In terms of a social dynamic, two details of this are important. The Choice Giver is only giving a few choices - not simply listing every possible option. By only giving 2-3 options he is expressing his own preferences, not putting all ther burden of decision making on the Selector. The Selector also can't just simply say "no" - if he doesn't like the options then he must take on the burden of giving options, and he must then offer 2-3 options that are reasonable and distinct.

I've given the example for two people, but this works in a group too. The initial Choice Giver volunteers or is nominated by the group. The group then votes on the options, or votes "none of the above". If none of the above wins the vote, then the group votes to nominate a new Choice Giver.

Of course it's quite common for people to play an informal version of Choice Giver / Selector but they leave out some of the very crucial aspects of the rules which ruins the entire balance of the game.


03-26-08

Well I promised that I would eventually take my controller stuff out of testdd and put in a .h so it's actually useful to people. Yeah, I'm probably not gonna do that. What I did do is fix my quartic curve solver to actually be correct, and added a "hybrid" cubic version. (hmm, I'm a retard, I just added a ComplexDouble class to cblib and then noticed that std::complex is totally fine and I should've just used that. doh)

Hybrid cubic works like this : if the target is stationary, the max time to converge is set by a user parameter. A shorter time can be used at any time as long as max accel (user parameter) is not exceeded. The result is that you get the desired behavior of the original cubic controller of reaching the target exactly within a certain time interval, and it avoids the weird quirk of sometimes taking extra long curves because it was always taking the same amount of time - now it can take a shorter time in a reasonable non-hacky way. Note that this is not some tweaked out fudgy solution. There are two user parameters : max time to converge & max acceleration on the path, and the cubic path that fits those constraints is found exactly each frame.

I wrote something about this on game-tech but I never posted it here I don't think. To me, PD controllers and this cubic controller thingy seem like very opposite ends of a theoretical spectrum of controllers. On the one end, the cubic curve is exactly symmetric. That is, the path from P0->P1 and the path from P1->P0 are identical under time reversal. The cubic goes from point A to point B in controllable finite time, and basically never overshoots. The PD is sort of the opposite in every way - it's very asymmetric, it attacks hard to cover distance fast initially, then slows down and comes in to settle very slowly (eventually infinitely slowly for a pure PD). A standard critically damped PD will definitely overshoot as part of the price to attacking quick and then stopping gently. In hand-wavey terms the PD feels very "springy" while the cubic feels very "robotic".

Now in theory it would be awesome to have this as a parameter. So if parameter is 0, you get a cubic, if parameter is 1, you get a PD, and in between you can play with how robotic or how springy your controller is. And of course that's easy. You can just blend the controllers. It's important to note why you can blend the controllers - they are stateless and linear. You could just get the acceleration from each and blend that, but that's not exact since with both the PD and the cubic I've solved them to take exact time steps, going to a discrete integrator with a constant acceleration would be lame. But of course Newton's equations are linear too, so I don't need to blend the accelerations, I can just run both controllers independently and blend the resulting position & velocities. This is now in testdd as "mode 10" ("blend").

A quick note on PD's. You generally want a critically damped PD. PD's will never exactly converge, so you need to fudge it. The best fudge I found was a "min velocity" parameter. This make the controller try to at least move you at a speed of "min velocity" towards the target, which cuts off the long exponentail tail of PD convergence and make the end part linear. Now, with this you might go ahead and try using an overdamped PD to reduce overshooting. That does work but it's a little weird looking. I can't imagine why anyone would ever want an underdamped PD, they're just gross. I couldn't find a clean stateless way to give a PD controller a max acceleration. If you do it naively, you prevent it from stopping fast enough and get horrible oscillation. If you try to prevent that naively by allowing decceleration, you get weird looking curves when your points move around in 3D space because you've created a splitting plane where your controller changes discontinuously.


03-26-08

The positive effects of me writing personal things in this space are very very small. The negative effects have been quite large a few times in my life. It's pretty obviously not worth it. I should really delete all the personal stuff and never write anything personal again.

It used to make both Dan and Tiffiny very upset, not because I was writing anything personal about them or our relationship, but because they felt like I was sharing more of my inner thoughts with the anonymous internet than I was with them.

The positive effect is mainly that it leads me to email threads with people I'm close to on a much more intimate level than we would otherwise communicate. I've gotten some very good emails recently because of that, but in theory I could have those conversations with my friends without using a public blog to initiate them. In practice I probably can't.


More : 11/2007 to 03/2008


Back to the Index

Visitor number