so angry

Right now I make my living by using Adobe products, specifically Flash and Flex.  So it's unfortunate that I can't stand Adobe products.  Flash CS4 is almost completely unusable.  Its performance when editing medium to large flash files is unforgiveable; when I click to select an object, or to edit a symbol, I can wait 10 seconds for the interface to respond.  Not acceptable.

What am I gonna do about it?  Probably nothing.  I only mention it here to record my displeasure, so that I don't forget it, start coping, and forget to be angry about it...that would mean losing a part of my soul--the part that cares about good interface.

correction

Actually, if you've let the wick of your candle be sucked down into the wax as it cools, you can get it out again, if you have a soldering iron.

cs theory question - wrapping inheritance

non-programmers may skip.

I'm curious; is there a language that allows you to extend a class by wrapping it?

That is, a language that lets me type:
class ExtraFunctionality wraps BaseSystemObject
{
  ExtraFunctionality(BaseSystemObject wrapped_object)
  {
    wrap(wrapped_object)
  }

  //override
  void do_an_awesome_thing()
  {
    super.do_an_awesome_thing();
    do_extra_things_too();
  }
  
  void do_extra_things_to()
  {
    //...
  }

  void do_a_lot_of_things()
  {
    super.do_easy_thing(1);
    super.do_easy_thing(2);
    super.do_easy_thing(3);
  }
}
So that I can then write 
ExtraFunctionality my_obj = new ExtraFunctionality(api.get_base_system_object());
my_obj. do_an_awesome_thing();
my_obj.do_a_lot_of_things();
my_obj.another_base_class_method();
api.use_base_system_object(my_obj);
I can't simply extend the class because I'm not constructing it myself, I'm getting it from the system, so it won't cast.  If I wrap it using a conventional class, then I either have to override everything myself, or else expose the wrapped object and let the caller decide how to deal with it, which is ugly.  Either way though, I can't pass it back into the system, because it's not the right type.

So, I want to inherit the type in the form of a lightweight, easy to write wrapper.  I think this case is getting more relevant these days as APIs and SDKs are coming to dominate the coding landscape, as opposed to working mostly within code you control yourself.  Comments?

obnoxiousness

1. chipotle hummus bread with sesame seeds
2. honey pecan whole wheat bread with sunflower seeds
3. purple 'vineyard' scented candles poured into red wine glasses
4. coffee scented candles poured into glass mugs
5. thousands of dead zombies

That's what I did with my day off.  Some of you may get homemade candles as belated xmas gifts.  The chipotle bread came out a bit parbaked, (I took it out early 'cause the crust looked done--this is why I am terrible baker), but it tastes great, so I won't complain.  I haven't opened the other bread yet, but I think it'll be more done.

I've been slightly appalled at my burn rate for money; I really need to cut back, so I'm going to stop eating out for a while, and try to get into the habit of making lunches and saving leftovers and so forth.  Life skills, you know?  Oof.  It's not really that I have expensive tastes or hobbies, it's more that I just don't ever try to save money; if I've got it I tend to spend it, on this or that.  So my resolution, if you care to call it that, is to learn the ways of thrift.  It's all a part of the larger plan...

Ohio was great, even though we didn't get snow.  I felt right at home.  Too, I really, really needed the down time, and I feel a lot better now than when we left.  Time to get back on top of my life, instead of being dragged along beneath it, is how I always think about.  I think I feel a few schemes coming on.

So candles.  I thought, oh, I'll make some holiday candles, it'll be easy and fun and make a great gift.  Mostly true I think, but wow wax is funny stuff.  When it cools from a liquid to a solid it shrinks quite a bit, and so the centers of the candles sink in.  If you've removed the support for the wick already, the wick is pulled down as the wax sinks, and you can't get it back up again without reheating the whole thing so... don't remove the support for the wick!  You need to wait at least like, 6 hours for the wax to cool, and then fill the sinkhole with more wax, and then wait again, and then fill one more time, and then wait again.  Then you can remove the support.

Lesson learned I guess?  I'm sure I could have gotten that advice from somewhere, but I probably would not have listened, that's just how I roll.  Not proud, just sayin.

the (zombie) hookup

Is anyone playing Left 4 Dead on 360?  I've actually acquired some competence at this game, and I'd love to play with friends.

By way of game review slash encouragement:

This game doesn't do a lot of new things, but it is executed *perfectly.* (in this sense it's the opposite of Dwarf Fortress.)  The sound work is amazing, the graphics are cinematic, and the pacing and level design are flawless.

This is a game that rewards teamwork and severely punishes going it alone.  What I love best about the game is the effortless multiplayer communication.  Your in-game characters talk to eachother, and it's always relevant.  Stuff like, "I'm reloading," or "hey guys I need to heal" or "there's a pipe bomb over here."  Also, "why are you shooting me?"  I don't have a headset microphone for my 360, and I find that with this game I don't miss it.  The team notifications, and being able to see where your teammates are even when they're behind walls, means that a whole layer of basic communication is handled automatically, and well.  

Aside from enjoying the genre, there's something about the co-op experience that I find really addictive.  The only other co-op game I've played that hooked me this well was Natural Selection.  I think what the two games have in common is a focus on co-op interface design; NS does it with the commander and hive sight, and L4D does it with frequent in-character voice cues.  Both succeed because the tools allow you to create great little stories, over and over again, that the whole team participates in.

There's something about being a part of a well functioning team that we humans love (and the social tools we use can make or break the experience).  Some people get this team experience from sports, or from a game like Counterstrike or what-have-you, but I think that what Valve have done with Left 4 Dead is lower the barrier to entry.  Now you can have that team experience without having to have first mastered the game, and without having to ACTUALLY TALK TO ANYONE.  That is impressive.