<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title>Chris</title>
  <link rel="self" href="http://chris.iluo.net/rss/chris.xml"/>
  <updated>2010-07-31T12:50:43-07:00</updated>
  <author>
    <name>Chris</name>
    <uri>http://chris.iluo.net/rss/chris</uri>
  </author>
  <id>urn:tag:chris.iluo.net,USER18</id>

  <entry>
    <title>Experienced Points #77:Behind the Grind</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8816"/>
    <id>http://yoursite/article/?i=e59160b567c9eb081bb2d9bd213aaf17</id>
    <updated>2010-07-31T00:26:16-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">




My article this week is a bit about grinding in RPG&#8217;s. 
When I played World of WoWcraft two years ago, I got fed up and quit as the mid-30&#8242;s slump kicked in.  The same thing happened again at about the same level in LOTRO.  But now I&#8217;m back to WoW and right now Shadowless is about 2 dead spiders away from level 42. 
Part of my success is attributable to the changes to the leveling that sped up things in the mid game.  Part of it is that the game is a little more polished and fun. Part of it is that I knew the slump was coming, so I didn&#8217;t get discouraged when progress slowed. Part of it is that this time around I knew where to go for level-appropriate quests. 
By nature, I WANT to stay in one area until I&#8217;ve exhausted all of the quests.  But you usually can&#8217;t do that. The quests will go up in level faster than you do, and you&#8217;ll eventually be in over your head. This even applies in the early game.  If you do all the quests around Goldshire in the human area, you&#8217;ll be two or three levels short of being able to enter Westfall.  I don&#8217;t think you should have to travel to some other area of the world or level grind that early in the game. (Or ever, but especially then.)
It&#8217;s often better to do the 30-35 content in one zone, then hop to another zone and do the 30-35 content, then another, then head back to the first zone and take on the 35-40 content. I dislike this, as there are a few quest lines in these zones that tell a little story.  They&#8217;re not Shakespeare or anything, but they&#8217;re sometimes amusing and often give a new look at the setting. But the zone-hopping breaks them all up.  You&#8217;ll turn in step 2 of a quest chain and find that step 3 is suddenly five levels above you.  (This problem is really bad in Stranglethorn Vale. I&#8217;ve been to that zone three times, and I still have a bunch of unfinished quests there.) Maybe next weekend you&#8217;ll be back, but by that time you&#8217;ll have forgotten what was doing which thing to what dudes because of huh? Ah, screw it.  Just hit &#8220;accept quest&#8221; and let quest helper aim me at my goal.  I don&#8217;t have time to look this up on the wiki and figure out what was going on.
Still, I have to keep reminding myself that WoW is six years old.  I&#8217;m sure this system was viewed as very friendly and gentle compared to then-leader Everquest.  I&#8217;ll bet a lot of this will be smoothed over in the upcoming Cataclysm global revamp. (Which is funny. Hey! The world is beset by disaster and now everything works better!)</div></summary>
  </entry>

  <entry>
    <title>Stolen Pixels #216: Pull it Down!</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8806"/>
    <id>http://yoursite/article/?i=40912b315f7dc48dddfe32cd040e0b1e</id>
    <updated>2010-07-30T16:25:03-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">




A comic about one of the big set-piece encounters in the game, the part where you pull down a Star Destroyer. 
I actually hated this part of the game.  The controller cues were very misleading, and I ended up looking online to see what I was doing wrong.  At the bottom of the screen is an icon of a couple of analog sticks, indicating which way you should be moving the sticks you have under your thumbs.  Except, they didn&#8217;t do a very good job.  
The right stick just indicates &#8220;up&#8221; or &#8220;down&#8221;, but there&#8217;s a certain inertia to what you&#8217;re doing.  You&#8217;ll hold down the controller for several seconds with no real idea of what this is supposed to be doing. (You&#8217;re leveling out the Star destroyer. Because&#8230; Uh. Actually, why the crap does the thing need to be level if I&#8217;m just yanking it out of the air? Which is part of the problem. This isn&#8217;t something I expected I&#8217;d need to do and so I was just following the on-screen prompts with no idea of what I was supposedly accomplishing.)  But if you just hold the stick you&#8217;ll overshoot the correct orientation and then have to push the stick the other way. You actually need to &#8220;nudge&#8221; the stick as the ship gets close to level. If you just follow the prompts you&#8217;ll never get it into place.
While you&#8217;re pondering all of that, you also need to be worrying about the left stick. (And unlike the other stick, you don&#8217;t really need to nudge it.) But because of the way the icon looked I couldn&#8217;t tell if it was telling me to hold up-left, or if it just wanted direct left.  It could be saying either way depending on if you believe this to be a perspective view of the stick or a direct overhead view. (Answer: Perspective.  Just hold the stick left.)
And while you&#8217;re trying to do all of this, TIE fighters are coming.  Just about the time you&#8217;ve got the thing maybe figured out, you have to stop and fight a bunch of TIE fighters. By the time you&#8217;ve dispatched them, the Star Destroyer is again crooked.  (Again, why do I care how it&#8217;s aligned? I&#8217;m just pulling it down! And the cutscene shows it crashing nose-first despite all this leveling out nonsense.)
Anyway, eventually you&#8217;ll get the ship into position and you&#8217;ll be prompted to pull down on both sticks.  But the way the icons showed the sticks constantly moving down, I wasn&#8217;t sure if I was supposed to hold them down or if I was supposed to move them forward and backward repeatedly. 
And even if you do this all correctly and understand everything the icons are telling you, you&#8217;ll still need to go through the process three times and fight three waves of TIEs before you bring it down.  And you don&#8217;t really get much in the way of positive feedback to let you know you&#8217;re doing it right, so when the process begins again you&#8217;ll be left wondering if you&#8217;re being punished for doing something wrong or if this is just another game designer-imposed time sink.
All of this is in addition to the fact that the game is throwing these icons up and forcing the player to stare at them instead of watching the action going on in the background.
This is the only time in the game you see these icons, and so instead of an epic event I felt like I was playing a tedious guessing game interrupted by flow-breaking TIE fighter exploding commercial breaks. I think the entire mechanic is a horrible and unsatisfying idea, but if they were going to put it in they should have trained the player in following the prompts earlier in the game.  Perhaps they could have given the player a bit where they have to lift (say) their own ship out of a bog, Empire Strikes Back style.  The player could fumble around and learn how it works without having waves of tie fighters strafing them while frantic NPC&#8217;s scream unhelpful things at them. 
I&#8217;m sure some people got the idea the first time through, but Googling around showed that I wasn&#8217;t the only person who wondered what they were supposed to be doing. This was a fun idea marred by badly designed mechanics.  </div></summary>
  </entry>

  <entry>
    <title>That Dont Impress Me Much</title>
    <link href="http://waffle.wootest.net/2010/07/30/that-dont-impress-me-much/"/>
    <id>http://yoursite/article/?i=8821077e4dd20cb88d2eecc177dcef69</id>
    <updated>2010-07-30T16:24:21-07:00</updated>
    <author>
      <name>ad1fdd382e9d222487df79574594ac81</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">You know what the one thing everyone I&#8217;ve met agree with me on regarding the iPad? That they would be nice for magazines; a perfect alternative to those piles of back-issues.

I think iBooks is certainly close to good enough for books, but the collective effort for magazines on iPad is remarkably underwhelming. The best ones so far are either gimmicky (Mag+) or heavyweight (Wired) and none are convenient.

Follow me here: Okay, I understand that the allure of magazines may lie in a big fucking photo. But when you&#8217;re slinging around text boxes on an interactive canvas, you can also afford to temporarily push them aside and expand the text column to 30 characters wide, fit for, you know, reading.

Or, yes, I understand that you care about your precious content. But do you care enough that I shouldn&#8217;t be able to select some text and quote your marvelous articles? Send them to a friend, perhaps? I can&#8217;t even highlight something. No, sorry, I should&#8217;ve known that that feature could only ever be used to juice the text out of the latest issue and paste it into a text file for upload to some illicit FTP site, or worse yet, some sort of bay. You&#8217;re completely right to deny me functionality; anything for Rupert. I suggest you call it &#8220;nightmare-driven development&#8221;. If you burn and die, it won&#8217;t be because of those text files, whether they exist or not, it&#8217;ll be because you did this to yourselves, you fuckers.

I stand by my original idea. A sea of articles on a scroll going left to right, along with the selective ability to pull or zoom into content. That would be taking advantage of the medium, it would be familiar (every magazine has columns), it would easily adopt paging, which I&#8217;ve begun to take to, and it would be an improvement over what&#8217;s there. Why not dynamic permalinks? (&#8221;Read this passage.&#8221;) Why not marker highlights? Why not searchable notes and personal tags?

A lack of vision, that&#8217;s why. Come on, people, let&#8217;s leave the crayons behind; let&#8217;s stop just porting dead tree fibers (or, worse yet, PDFs). You should have prototyped past this stage ages ago.</div></summary>
  </entry>

  <entry>
    <title>New Speak</title>
    <link href="http://waffle.wootest.net/2010/07/30/new-speak/"/>
    <id>http://yoursite/article/?i=8a78787b93f90a171941c68cd4b975e9</id>
    <updated>2010-07-30T16:24:21-07:00</updated>
    <author>
      <name>ad1fdd382e9d222487df79574594ac81</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Channel 9&#8217;s Charles Torre talks to Gilad Bracha, the man behind Newspeak and far, far behind Java. Recorded at Emerging Languages camp at OSCON.

As much as I hate Channel 9 when it&#8217;s just marketing-driven puff pieces with scripted Q-n-A for whichever Silverlight acronym is hot today, I like it when it&#8217;s just Charles, or someone else, going head to head with another programmer, talking about programming. I haven&#8217;t even downloaded this yet, but these two have a track record of interesting conversations.</div></summary>
  </entry>

  <entry>
    <title>Localizing exclamations.</title>
    <link href="http://www.significant-bits.com/localizing-exclamations"/>
    <id>http://yoursite/article/?i=3c6b367ad6495f8580d13bb8c7a3f19f</id>
    <updated>2010-07-30T16:24:18-07:00</updated>
    <author>
      <name>21eacc14918515695bdcc61ec21ec7da</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
&#8220;Gnhhh!&#8221;
&#8220;Whhhhaaaah!&#8221;
&#8220;Bah&#8230;.ah&#8230;.gahhhhhh&#8230;&#8221;
&#8220;Hmmmf!&#8221;
&#8220;Ehiehhh&#8230;&#8221;
&#8220;Mhaemm!&#8221;
These grunts, sighs,&#160;squeals&#160;and&#160;miscellaneous&#160;other vocalizations compose roughly 1/4 of the dialogues in the early hours of Final Fantasy XIII.
One one hand, they&#8217;re to be expected; Japan is known for its plethora of&#160;exclamations and&#160;onomatopoeiae. On the other &#8212; when translated literally &#8212; they make for a poor localization.
These sounds are often louder and longer than their English counterparts, or they simply have no equivalents. As such, they&#8217;re difficult to remove or replace and are usually left untouched.&#160;They&#8217;ve even become something of an accepted &#8220;quirk&#8221; among the more dedicated fans of Japanese media, but that doesn&#8217;t mean they couldn&#8217;t be handled in a friendlier fashion.
I think the localization team for FFXIII wanted to give Vanille a unique voice -- much like the Bj&#246;rk-esque Fran in FFXII -- but voice actress&#39; performance is a bit of a mess.

As things stand, vocalizations often come across as alien and awkward. They break the flow of conversation and the suspension of disbelief, and can leave a new audiences feeling put off.
Sure, one can always argue for the purity and cultural authenticity of any given product, but that&#8217;s being a bit of a stick in the mud. Literal translations lack context and social nuances, and those fully familiar with them might as well experience the original versions. In order to make the products easily&#160;digestible&#160;by a different audience, though, some things need to change.&#160;FF XIII in particular is a title Square Enix wanted to be a global blockbuster, not just a Japanese game released to a niche audience outside of its home country, so it stands to reason that they&#8217;d want to iron out these kinks.
So how can this be done?
A couple of points:

If possible, simply remove the exclamations altogether. The ones that could easily be cut are left in to keep things consistent and speed up the localization process, so getting rid of them shouldn&#8217;t be a big issue.
Use local equivalents of the vocalizations if available. For example, make a character surprised by a hand on his shoulder utter a short &#8220;Huh?&#8221; instead of the original, &#8220;Mnhaaa?&#8221;
Use actual words or sentences for sounds that have no local counterparts. A character crying out &#8220;Gwahhhhhhhhhhhh!&#8221; for three seconds after witnessing a car crash could easily be replaced with a quick &#8220;Oh my god!&#8221;
Meld the exclamations into the speech itself. I&#8217;m not an expert, but I noticed many of the vocalizations were isolated within the dialogue, whereas in English they&#8217;d part of it, e.g., &#8220;Mmmm, I don&#8217;t know about thaaaaaaaat.&#8221;
Finally, keep these points in mind when developing the game, and provide the team(s) with the tools necessary to port it. Automated lip-synching is already widely used, but I&#8217;m sure other functionality &#8212; or just the permission to alter the in-game cutscenes &#8212; would be appreciated.

Of course there are more issues to consider as well &#8212; perhaps toning down on the dramatic, clenched-fist poses with characters uttering such phrases as &#8220;I&#8217;ll do my best!&#8221; &#8212; but those are a whole other topic&#8230;</div></summary>
  </entry>

  <entry>
    <title>Starstruck</title>
    <link href="http://waffle.wootest.net/2010/07/29/starstruck/"/>
    <id>http://yoursite/article/?i=bf42570831aa3e52a311e0b96a406738</id>
    <updated>2010-07-30T00:49:23-07:00</updated>
    <author>
      <name>ad1fdd382e9d222487df79574594ac81</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Rakudo Star  &#8212; the first semi-acceptable-sorta-supported-for-early-adopters build of a Perl 6 implementation effort ever &#8212;  ships.


  There was a pause while Murray wrote this down.
  
  &#8220;Good enough for me, Arthur, good enough for Ethel and me and the chickens. Fits in with the general weirdness of the week. Week of the Weirdos, we&#8217;re thinking of calling it. Good, eh?&#8221;
</div></summary>
  </entry>

  <entry>
    <title>University Website</title>
    <link href="http://xkcd.com/773/"/>
    <id>http://yoursite/article/?i=07303ce54441bae1bdeac78d97226c32</id>
    <updated>2010-07-30T00:49:22-07:00</updated>
    <author>
      <name>http://xkcd.com/773/</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"></div></summary>
  </entry>

  <entry>
    <title>Like a Version: Miami Horror</title>
    <link href="http://mpegmedia.abc.net.au/triplej/livemusic/miamihorror_20100729/lav_miamihorror_2010_07_29.mp3"/>
    <id>http://yoursite/article/?i=4ee9e58f61d40a972f9e61acc76961c8</id>
    <updated>2010-07-30T00:49:21-07:00</updated>
    <author>
      <name>bdd80b5da47348e61f7aad288b492548</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Miami Horror checked in to do Like a Version</div></summary>
  </entry>

  <entry>
    <title>Spoiler Warning 225:The Ramblin Man</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8797"/>
    <id>http://yoursite/article/?i=c2a9f297b0d7b8795210532d4fcd8e73</id>
    <updated>2010-07-29T14:22:24-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">How do you feel about meandering? Is this something you like to do? Are you down for a good meander now and again? If so, then this episode has been lovingly crafted with your particular needs in mind. Both our character and our conversation are rudderless. Adrift. Directionless. 
This episode does provide a nice showcase for Bethesda&#8217;s questing system, which the design team nicknamed, &#8220;Screw You For Trying To Play Your Character, Fanboy.&#8221;  
We&#8217;re done recording this season of Spoiler Warning.  All done.  If my math is right then the final episode of Fallout 3 will appear on August 10. It&#8217;s just as well.  These bodyguards are costing me a fortune, and the Bethesda assassins are bolder and more desperate with each passing week.
Also, we lost track of time so this episode is crazy long. Whoops.






Rock climbing Joel, rock climbing.</div></summary>
  </entry>

  <entry>
    <title>Find Broken Symbolic Links</title>
    <link href="http://chris.iluo.net/blog/2010/07/29/find-broken-symbolic-links/"/>
    <id>http://yoursite/article/?i=8e763256b9ed88d69e8da46f54173f34</id>
    <updated>2010-07-29T14:21:26-07:00</updated>
    <author>
      <name>f06514bd6ac87f9d2c79deb9cc80dae9</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"># Print out broken symbolic links
find -L . -type l

Note to self: Move this to a useful Linux tips post.</div></summary>
  </entry>

  <entry>
    <title>Dragging Our Asses to Boulder</title>
    <link href="http://www.cringely.com/2010/07/dragging-our-asses-to-boulder/"/>
    <id>http://yoursite/article/?i=5adfe6653ad49f8f9fdccd6d36a5bdb8</id>
    <updated>2010-07-29T14:21:20-07:00</updated>
    <author>
      <name>3859ab165ee315c48fb6f0b8090ca634</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">That&#8217;s the catalytic converter from my RV.&#160; It literally fell off when I hit a puddle during a rainstorm last week in St. Louis.&#160; It dragged for a quarter mile or so before I got a clue there was something wrong.&#160; When I took this picture I&#8217;d already found a piece of string and tied the cat to the door handle.&#160; There was no similar piece of string for the tailpipe hanging out the other side of the bus.&#160; It dragged the last mile to the RV park.When anything goes wrong at an RV park, men instantly appear.&#160; You never know their names, they just start to help.&#160; It&#8217;s some Americana throwback that rubes like me find very useful.&#160; In this case the samaritan wanted to go further than I did, though.&#8220;Looks pretty bad,&#8221; he said. &#8220;Want to cut it off?&#8221;&#8220;Cut it off?&#160; How?&#8221;&#8220;I&#8217;ve got tools.&#160; Let me fire up my grinder and we&#8217;ll have that off in a jiff.&#8221;I declined.Later, when another camper came out to complain about my attempt to asphyxiate his kids with my generator exhaust, he said, &#8220;I know you.&#8221;Remember my picture is on the side of the bus about 10 times life size.&#8220;You&#8217;re from Plane Crazy.&#8221;I sure didn&#8217;t see that one coming.But if you live in or near Boulder, Colorado, know that the Cringely&#8217;s are coming and we&#8217;ll be around this weekend.If someone can suggest a place to meet on Saturday afternoon we&#8217;ll do just that.&#160; Remember to bring a toy for my kids to give away (not keep) and Mrs. Cringely will allow you to admire her muffins.Can anybody suggest a good location?</div></summary>
  </entry>

  <entry>
    <title>Facebook’s ocean of names becomes a to</title>
    <link href="http://futureoftheinternet.org/facebooks-ocean-of-names-becomes-a-torrent"/>
    <id>http://yoursite/article/?i=718dd43781ef1ff31d2710703e109253</id>
    <updated>2010-07-29T01:35:16-07:00</updated>
    <author>
      <name>6ba07f7026311211552e9ae5d5d2fba9</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Nick Bilton over at the NYT Bits Blog has the story of Internet security consultant Ronald Bowes&#8217;s recent Facebook caper.&#160; Ron noticed that Facebook has a directory of its users, just like the old Bell Telephone White Pages.&#160; I agree with Ron&#8217;s assessment that this is a very little-noticed feature: normally one searches on Facebook not by looking at a directory, but rather by typing a name into a search box.&#160; It&#8217;s in plain sight, though, at http://www.facebook.com/directory:

There are two differences that jump out between this awe-inspiring alphabetical listing of all Facebook users and a dog-eared telephone directory.&#160; First, Facebook&#8217;s directory has a staggering 171 million names in it.&#160; Second, in good news for paper prices everywhere given the first difference, the directory is digital &#8212; it&#8217;s right there, online.&#160; And if it&#8217;s online, it&#8217;s scrapable.&#160; Ron, being of the inquisitive engineering sort who can&#8217;t help but push a button if he sees one, figured that supply creates demand, and went ahead and scraped the directory.
That means he produced a file on his own hard drive containing more or less the directory&#8217;s main contents: for each person listed, a name, the person&#8217;s Facebook URL (what one types in to go directly to his or her entry), and unique Facebook ID (not a secret; this is part of a person&#8217;s Facebook url).&#160; The resulting file is only a few gigs &#8212; amazing how cheap storage has become that so much can be roughly the side of an episode of House.&#160; Ron then placed it online as a torrent &#8212; which means anyone can download the file, and voila, a snapshot of Facebook&#8217;s membership as of July 2010.
So, is this a problem?&#160; As I&#8217;m writing, news is only just breaking, so it&#8217;s like that moment when a toddler trips, falls, and then has to think about whether to cry or not.&#160; &#8220;You&#8217;re OK!&#8221; is usually what the alert parent encouragingly says &#8212; and if the toddler buys it, it&#8217;s usually true.&#160; In fact, even if the toddler doesn&#8217;t buy it, it&#8217;s still usually true.&#160; In this case, I think I&#8217;m with the metaphorical parent.&#160; The data that Ron grabbed is precisely what Facebook users have chosen (or perhaps more accurately, passively acquiesced) to share.&#160; For those who lock their privacy settings to avoid having a public listing in a Facebook search, they&#8217;re not present here.&#160; For those who have, they are &#8212; along with a click through to their respective Facebook pages however they&#8217;ve chosen to share them.
Ron appears a little disquieted by it because of the prospect that the snapshot can live forever more.&#160; If you remove your Facebook account or up your privacy settings, that will be reflected in real time in the Facebook directory and search (or at least it should be!).&#160; But the torrent file exists forever &#8212; so one&#8217;s privacy choices are locked into that moment.&#160; This is an artifact of having a service &#8212; Facebook &#8212; converted into a product &#8212; a Facebook database &#8212; the way that universities used to not just maintain online directories, but also publish bound volumes of their alumni with addresses, for those who opted in.&#160; (In fact, many universities still do this; someone should tell them about saving the trees.)
There&#8217;s some privacy hit there, but there are also benefits.&#160; By making a public directory &#8212; and a scrapable one, no less &#8212; Facebook gets more inbound links and attention as its members become easier to find.&#160; And we benefit by having Facebook&#8217;s subscribers&#8217; public pages indexed by the likes of Google and Yahoo! search.&#160; In fact, when searching on a person&#8217;s name in a regular search engine, quite commonly a Facebook entry is one of the top hits.&#160; That seems to me a good thing, and once Google, Yahoo!, and Bing have it, why shouldn&#8217;t Ron and anyone else who wants it have it too?&#160; Indeed, Ron already did some cool stuff with the data.&#160; For example, he crunched it all and came up with a list of Facebook&#8217;s most commonly used first and last names, discovering &#8220;Michael&#8221; and &#8220;Smith&#8221; coming in at number 1 for each.&#160; Congratulations, Michael Smith, you are hidden in plain sight, since a search for you turns up so many others at the same time!&#160; (Not so much with &#8220;Jonathan Zittrain&#8221;&#8230;)
Anyway, that&#8217;s generativity at work: Facebook makes available a directory on free and open terms, and people do stuff with it, some of which can surprise us.&#160; There could be bad surprises, too &#8212; Ron and others hint at undesirable data mining &#8212; but I&#8217;m glad that the gates of Facebook&#8217;s gated community have some slats in them, rather than being a solid wall.&#160; At most, it seems to highlight the desirability of getting the defaults right: Facebook shouldn&#8217;t have people automatically publicly sharing stuff they&#8217;d not normally share, without clear markers on what&#8217;s about to happen.&#160; As Google would say, &#8220;Please read this carefully. &#160; It&#8217;s not the usual yada yada.&#8221;
Indeed.&#160; There have been so many Facebook privacy mini-scandals that we&#8217;re primed for the next, and the involvement of a torrent file adds an element of seeming subversiveness to the mix, given the association of p2p with contraband material.&#160; But sometimes when the boy cries wolf it&#8217;s just a shadow.&#160; I count 8 Yadas in the Facebook directory.&#160; And I, along with my cool musician brother Jeff Zittrain, fall in between Aron Zittra and Austin Zittrauer.&#160; Until now, who knew?&#160; Interesting &#8212; but not pitchfork worthy.&#160; &#8230;JZ</div></summary>
  </entry>

  <entry>
    <title>When Cookies Fail…</title>
    <link href="http://www.cringely.com/2010/07/when-cookies-fail/"/>
    <id>http://yoursite/article/?i=619d25f3d715c39d166819fd83c565b0</id>
    <updated>2010-07-29T01:35:10-07:00</updated>
    <author>
      <name>3859ab165ee315c48fb6f0b8090ca634</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Anarchist Leader, Age 4As we cross America on our Startup Tour there are any number of assumptions I&#8217;ve made about both new companies and child behavior that are being challenged. My kids are clearly anarchists and determined to topple me from power for one. As for the companies, I&#8217;m amazed over and over again how little money it can take to start a good business and how many founders find themselves running companies almost despite themselves. A good example of both lessons is Front Porch Forum (FPF) from Burlington, Vermont.Here is part of my interview with FPF CEO Michael Wood-Lewis. I&#8217;ll be back to say more when he&#8217;s finished talking:&#8220;My wife and I moved to Burlington, VT from the big city in the late 1990s looking for a small city with a great sense of community. We landed in a neighborhood known for just that kind of thing. But in 2000, after a couple years, we still had yet to connect with the neighbors.&#8220;One evening at dinner, we wondered &#8220;whatever happened to neighbors welcoming new folks with a plate of fresh-baked cookies?&#8221; Two years and still no cookies!&#8220;My wife is a public school teacher and take&#8208;charge kind of gal, so she baked cookies and took them over to several neighbors, and, at my genius suggestion, she used china plates instead of paper so when they returned the plates, we could interact again (maybe they&#8217;d even bring over more cookies!). Well&#8230; we never saw the plates again. Not entirely true&#8230; we found one at a yard sale the next summer. At 25 cents it was a bargain.&#8220;Now these neighbors were not -&#173; are not -&#173; bad folks. It&#8217;s just that everyone was so busy and cultural expectations have shifted in this generation. We were just strangers who lived next door. There&#8217;s no social contract there.&#8220;So, our second attempt was to create an online forum for the neighborhood.&#8220;We used fairly primitive tools to build it, and made fliers and dropped them in 400 front doors. In short order, 25, 50, 75 households signed up and people started using it. Over time, it became obvious that we had something worth sharing. And at the same time, 2006, I was leaving my job, so Valerie and I decided to launch Front Porch Forum, offering an enhanced version of what we had been doing in our one neighborhood, but now across 100+ neighborhoods in our region.&#8220;Today, Front Porch Forum (FPF) serves 25 northwest Vermont towns and 18,000 households subscribe, including 45 percent of the state&#8217;s largest city. People use it for the simplest things, e.g., finding lost cats, borrowing ladders, recommending plumbers, reporting car break&#8208;ins, organizing block parties, debating local politics, etc. But it&#8217;s all done with clearly identified nearby neighbors, so it has a magical effect of turning familiar strangers into real neighbors over time and gets people more engaged in local goings on. More than 90 percent report becoming more involved civically since signing up with FPF!&#8221;  Wow, what a story! (This is Bob again.) Here we have a 10 year-old startup that was six years old before the founders even began to think of it as a startup. It has taken almost no money, has really primitive technology (text-only e-mail with three ads at the top of every issue), yet has greater market penetration than the local daily newspaper whose owners like to think their media property is worth millions, right?Front Porch Forum isn&#8217;t another Craigslist for two vital reasons: 1) each edition covers just a single neighborhood averaging 300 homes, and; unlike Craigslist, FPF forbids anonymity.&#160; You are responsible for your words.If only more Internet communication was that way.There is a lot that could be improved about Front Porch Forum and I&#8217;m sure it will be, but the company&#8217;s strength has been its simplicity. No VC would wait six years to decided whether his investment was even an investment, yet &#8212; and here&#8217;s the clear lesson &#8212; that&#8217;s what it takes sometimes.The tortoise doesn&#8217;t always win but he always finishes.</div></summary>
  </entry>

  <entry>
    <title>Reject UltraViolet DRM</title>
    <link href="http://www.defectivebydesign.org/ultraviolet"/>
    <id>http://yoursite/article/?i=8b1700a948b622215356f3e3d96afcb9</id>
    <updated>2010-07-28T14:26:25-07:00</updated>
    <author>
      <name>d8e8070d3e192b861f39c9c31a283ab6</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Throughout the relatively short history of Digital Restrictions
Management, we have seen various methods of user restriction come and
go. Now, there is a new threat on the horizon: UltraViolet. A soon to be
implemented DRM scheme, UltraViolet -- or should that be Ultraviolent -- is a joint effort between companies
such as Sony, Adobe, Cisco, HP, Microsoft and Intel. What seperates
UltraViolet apart from other types of DRM is its use of "the cloud."
Whereas most other DRM schemes are implemented locally, UltraViolet
intends to store the digital media you purchase on a centralized server
with the goal of preventing users from storing their digital media on
unauthorized devices, sharing and making copies.

We at Defective By Design view this as a major threat to the right of
people to have control of their digital media. That is why today we are
announcing a new action targeted towards companies involved with
UltraViolet. We ask you to reject any piece of hardware or software that
is encoumbered with UltraViolet DRM and to further show your rejection
of this dangerous new technology, please sign our pact.



The fight against UltraViolet and other forms of DRM does not end with
rejection of DRM -- we need to actively promote this action in any way
possible. Some ways you can help include customizing your email
signature to show your rejection of UltraViolet, writing a blog post and
getting the word out to your friends on social networking websites.

Take action!


Call/email/write to these companies that you do business with:



Adobe, Alcatel-Lucent, Ascent Media, Best Buy, Blueprint, BT, CableLabs, Catch Media, CinemaNow, Cineplex Entertainment, Cisco, Comcast, Cox Communications, CSG Systems, Deluxe, DivX, Dolby, DTS, ExtendMedia, Fox Entertainment, Hewlett-Packard, Huawei Technologies, IBM, Intel, Irdeto, LG Electronics, Liberty Global, Lionsgate, LOVEFiLM, Marvell Semiconductor, Microsoft, MOD Systems, Motorola, Nagravision, NBC Universal, NDS Group, Netflix, Neustar, Nokia, Panasonic, Paramount Pictures, Philips, RIAA, Red Bee Media, Rovi, Saffron Digital, Samsung, Secure Path, Sonic Solutions, Sony, Switch Communications, Tesco, Thomson, Toshiba, Verimatrix, VeriSign, Warner Brothers, Widevine Technologies, Zoran


Add these buttons to your website/blog to help spread the message.







</div></summary>
  </entry>

  <entry>
    <title>(Untitled)</title>
    <link href="http://www.flickr.com/photos/brettjohn/4836653896/"/>
    <id>http://yoursite/article/?i=1cb3f93c3013ba3b10104f59f29ba8b2</id>
    <updated>2010-07-28T05:38:20-07:00</updated>
    <author>
      <name>68ae13bfb460dc2bfe2e5991def58916</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">brettjohn posted a photo:
	
</div></summary>
  </entry>

  <entry>
    <title>(Untitled)</title>
    <link href="http://www.flickr.com/photos/brettjohn/4836845265/"/>
    <id>http://yoursite/article/?i=37743e72ea44e4c8afdc1579409b84bb</id>
    <updated>2010-07-28T05:38:20-07:00</updated>
    <author>
      <name>68ae13bfb460dc2bfe2e5991def58916</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">brettjohn posted a photo:
	
</div></summary>
  </entry>

  <entry>
    <title>Frogger</title>
    <link href="http://xkcd.com/772/"/>
    <id>http://yoursite/article/?i=11ccd32af4cc3742c634e8d9cec20f21</id>
    <updated>2010-07-28T05:38:19-07:00</updated>
    <author>
      <name>http://xkcd.com/772/</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"></div></summary>
  </entry>

  <entry>
    <title>Stolen Pixels #215: Versus</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8786"/>
    <id>http://yoursite/article/?i=3a942dacaf957bd567db8f525f4062fc</id>
    <updated>2010-07-27T14:10:58-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I have these memories of sitting around the lunchroom in highschool, listening of Def Leppard cassettes on my brick-sized Sony Walkman.  The guys were dressed as guys always are: Jeans and T&#8217;s. The ladies were dressed in outfits that now border on comedy, and displayed hair structures of such height and complexity that I think more of them should have gone into engineering. 
It was during these days that we would hold detailed discussions about whether or not Yoda could beat Vader or if a Wookiee could become a Jedi or if lightsabers could come in other colors. Return of the Jedi was fresh in our minds, we hadn&#8217;t discovered the expanded universe, and the prequel trilogy was both fantastical rumor and distant dream.  We weren&#8217;t particularly well-informed, but we were passionate and very interested in discovering the truth. 
Today&#8217;s strip is dedicated to those long-ago scholarly discussions.  </div></summary>
  </entry>

  <entry>
    <title>Spoiler Warning 224: Let the Good Times </title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8791"/>
    <id>http://yoursite/article/?i=7a73d5e1d8389165bdb16d8b7b8c73c2</id>
    <updated>2010-07-27T14:10:58-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">There&#8217;s an episode of MST3K that features about ten thousand hours of rock climbing and nine seconds of stop-motion dinosaurs.  You could tell it was almost an endurance test for the crew, and as the episode went on they would just say &#8220;rock climbing&#8221; to describe how they were feeling.  Among my gaming group we adopted this for times when something &#8211; a story, movie, game, vegetable platter, etc &#8211; would go on for far too long and become a test of will.  (We say, &#8220;From the people who brought you that last stuff, it&#8217;s&#8230; more of the same!&#8221;.  But only on special occasions because it&#8217;s so verbose.)
I wanted to say &#8220;rock climbing&#8221; all during this episode.  (I didn&#8217;t, because it would have been a meaningless non-sequitur.  But still, this is starting to feel like rock climbing.  The nonsense plot.  Our endless bitching. The relentless brownness.  The glitches. Railroading. If it&#8217;s of any comfort, we&#8217;ll have nicer things to say about the next game. 
And now, part one of the Broken Steel DLC:






Rock climbing. </div></summary>
  </entry>

  <entry>
    <title>Magic Trackpad</title>
    <link href="http://waffle.wootest.net/2010/07/27/magic-trackpad/"/>
    <id>http://yoursite/article/?i=d4e6e9693803ae3a304dc205a83914d8</id>
    <updated>2010-07-27T14:10:08-07:00</updated>
    <author>
      <name>ad1fdd382e9d222487df79574594ac81</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Magic Trackpad. Like a multi-touch trackpad, only not attached to a MacBook of some variety. Hell yes. Ordered.

I keep up a habit of asking my co-workers every time they get a new laptop if it has two-finger scrolling. According to this highly unscientific continuous study, the current state of the art is that, apparently, you can start scrolling in the &#8220;track&#8221; along the right edge and then continue the motion out into the trackpad proper. I think it&#8217;s now been a full five years since the first PowerBook got two-finger scrolling.

Let&#8217;s not forget about the slippery surfaces, weird bezels and buggy palm rejection schemes. Every other laptop or trackpad manufacturer is still a bunch of complete customer-hating loons.</div></summary>
  </entry>

  <entry>
    <title>Live Real-Time Demos at SIGGRAPH</title>
    <link href="http://www.realtimerendering.com/blog/live-real-time-demos-at-siggraph/"/>
    <id>http://yoursite/article/?i=4fce0b3ff5ac4fdc3ff8be3bb245ffa3</id>
    <updated>2010-07-27T01:08:15-07:00</updated>
    <author>
      <name>d673992480e7ab9117f17dc54b9c49b0</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">So one problem with SIGGRAPH is that you hear about the cool thing that you missed and didn&#8217;t even know about until it was too late. Here&#8217;s one that&#8217;s getting repeated: the Computer Animation Festival&#8217;s Live Real-Time Demos session. Hall B, 4:30-5:15 pm Tuesday and Wednesday; I just caught the tail-end of Monday&#8217;s show and it was worth seeing, so I&#8217;ll go back for the rest tomorrow.
What else didn&#8217;t you miss yet? Hmmm, in Emerging Technologies Sony&#8217;s 360-degree autostereoscopic display is cute, I&#8217;ve heard the 3D multitouch table is very worthwhile, and you must try out the Meta Cookie (have someone take your picture while you&#8217;re in the headgear, it&#8217;s something your grandchildren will want to see).&#160;I was also interested to see QuintPixel from Sharp, as it justified their earlier Quattron &#8220;four primary colors&#8221; display.
More later &#8211; Mental Images reception time.</div></summary>
  </entry>

  <entry>
    <title>Live at the Wireless: Band of Horses</title>
    <link href="http://mpegmedia.abc.net.au/triplej/livemusic/bandofhorses_20100727/lav_bandofhorses_2010_07_27.mp3"/>
    <id>http://yoursite/article/?i=5e997211b3a65a3d8b168ad87a3c78e8</id>
    <updated>2010-07-27T01:07:31-07:00</updated>
    <author>
      <name>bdd80b5da47348e61f7aad288b492548</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Band of Horses live in Melbourne</div></summary>
  </entry>

  <entry>
    <title>Postcards from WoW, Week 2</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8766"/>
    <id>http://yoursite/article/?i=d5b0d67643f5646e56150469b265a17b</id>
    <updated>2010-07-26T14:13:43-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">




Uh oh! Blizzad say my account is complains and I need to site validate my information or else will stop! 
Sounds legit!
Which is more grotesque: That someone is stupid enough to perpetrate such a feeble and transparent scam, or that people fall for it?






The Barrens is an amazingly beautiful savanna belonging to the Horde side, although Alliance players can slip in through a couple of different ways. I decided to sneak in and explore the place because that&#8217;s what I do. 





I picked up a lion companion while I was there.  He&#8217;s fun because lions don&#8217;t appear on the Alliance side so this is a rare pet for us. On the other hand, I don&#8217;t really use him because I prefer my turtle.
In this picture he&#8217;d climbed up onto a mineral node.  I mined it and the node disappeared out from under him, but he didn&#8217;t fall.  He floated there until I moved. Interesting to see some of the CPU-saving shortcuts in action. 





The motorcycle. Blizzard is evidently adopting a very liberal interpretation of the term &#8220;fantasy setting&#8221;. This is not a bad thing, although some of their non-traditional elements fit better than others.  A rare motorcycle is fine, but it would be disappointing if these things proliferated. On the auction house, one of these babies will sell for about 16,600 gold.  Which is just crazy money. 
As the level cap goes up with each expansion, more people will be spending more time leveling at the top end, and naturally the supply of money will continue to increase.  I don&#8217;t know if this will lead to previously exotic items becoming more commonplace or not. There might be other factors keeping a lid on the supply of motorcycles.  Perhaps they require items which have a carefully regulated supply.  (I have no idea, I&#8217;m just thinking out loud here.)  In that case these things would actually get more expensive as the supply of motorcycles remains flat and the amount of money in the hands of high-level players goes up.





On the other end of the spectrum we have sparkles the wonderhorse. The Celestial Steed is available at the Blizzard store for $25 of real money.  It scales upward with you.  At level 20, it&#8217;s just a regular mount. But once you have fast mount training it will go fast, and once you have flying mount training it will fly. If you buy it, all characters on your account have access to it.  
Despite the different means of regulating their supply, the motorcycle and the Celestial Steed are about equally rare in my experience. 





The achievements system. Unlike single-player games where achievements will be tied to your profile, these operate on a per-character basis.  You can really see what parts of the game interest me here. </div></summary>
  </entry>

  <entry>
    <title>Android kill switch activated  some link</title>
    <link href="http://futureoftheinternet.org/android-kill-switch-activated-some-links-of-the-week"/>
    <id>http://yoursite/article/?i=e4eef586d3a4366b054b081588db8efb</id>
    <updated>2010-07-26T14:12:51-07:00</updated>
    <author>
      <name>5049f276eb54b380c5bca7b227e27c90</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Control over tethered appliances basically comes in two forms:  pre-approval of apps and kill switches.  As this blog has documented, Apple has had a very heavy hand in screening apps, but &#8212; as far as we know &#8212; they haven&#8217;t ever used the iPhone kill switch.  I was a little surprised to find that out, and I wonder why they haven&#8217;t used it.  Maybe the screening process is keeping out malicious apps, and they&#8217;re content to let users keep apps that are merely in bad taste (although they remove them from the app store).  Maybe the bad publicity from past kill switch uses &#8212; see Amazon and 1984 &#8212; has stayed their hand.  Or maybe they have removed apps and it just hasn&#8217;t been publicized.
Google has taken a different tack with Android:  they&#8217;ve largely surrendered the power to pre-approve apps, because Android users can always download apps from third-party sources.  But they too have a kill switch, and according to the Android developers&#8217; blog post, they decided to use it a few weeks ago.  (It&#8217;s not totally clear from the blog post, but it sounds like they&#8217;ve also used it before on clearly malicious apps.)  An app that claimed to offer Twilight photos turned out to be a demonstration, done by researchers, of how easy it would be to create an app that would turn phones into a botnet.  The app didn&#8217;t actually create the botnet (and it didn&#8217;t show Twilight photos, either, so most disappointed downloaders deleted it), and the researchers presented their work at the conference.  Nonetheless, after they heard about it, the Android team decided to remotely delete remaining copies of the app as part of a &#8220;cleanup&#8221; process.  Affected users received notifications.
I can see why they wanted to do that.  A report documenting Android vulnerabilities was recently released, and it&#8217;s caused some hand-wringing over Android&#8217;s security.  There&#8217;s also no sense in leaving a loaded weapon laying around.  And I&#8217;m glad they told both customers and everyone else that they&#8217;d deleted the apps.  Still, I do worry about the removal of an app that isn&#8217;t actually harming any machines.  More generally, I think that if Android is going to stick to the plan to not pre-screen apps and have an open system, they and we are going to have to think seriously &#8212; more seriously than Apple has had to &#8212; about the ethics of the kill switch.  Questions like whether there should there ever be an opt-out, whether users should get refunds, and whether it should be used in cases other than damaging viruses are all still wide open.
And a few quick links:
 Leaked MS Presentation Shows App Store Plans For Windows 8. Why all this thinking about app stores and kill switches matters:  there are already plans to transfer the app store model from phones to PCs, where the arguments about the virtues and harms of contingent generativity have even more salience.
Google&#8217;s mismanagement of the Android Market. Jon Lech Johansen thinks the lack of pre-screening is hurting Google and Android.
Did Apple Flip the iOS Kill Switch on NDrive? Wait, has Apple already used the kill switch?
New zombie code in effect by December. Here&#8217;s a totally different option for improving security: let users keep open PCs, but if they become infected, have their ISPs quarantine them or reduce their internet speed to a crawl.  That way, users will have to get their computers fixed and can&#8217;t keep infecting others.  Internet Industry Association CEO Peter Coroneos said of the plan:  &#8220;I&#8217;m sure there are people around that resent having to put new tyres on their car when they&#8217;re unroadworthy, or have their breaks done . . . But the reality is that we have argued that internet users have a responsibility not only to themselves, but also to other users on the internet.&#8221;  The code will be made available to Australian ISPs soon.
One Brown Package: From Seattle to Norway. Why we love the internet in the first place: unexpected avenues for fun, creativity and kindness (here, in the form of people working to get a package from Seattle to Norway).  They claim inspiration from JZ&#8217;s TED talk on the web on random acts of kindness.&#160; The package is currently reported as missing.
&#8212;By Elisabeth Oppenheimer</div></summary>
  </entry>

  <entry>
    <title>Period Speech</title>
    <link href="http://xkcd.com/771/"/>
    <id>http://yoursite/article/?i=9f129e51ca02759e7020a2afdaa291ca</id>
    <updated>2010-07-26T01:12:38-07:00</updated>
    <author>
      <name>http://xkcd.com/771/</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"></div></summary>
  </entry>

  <entry>
    <title>Killing Primitive Loops and Conditionals</title>
    <link href="http://journal.stuffwithstuff.com/2010/07/24/killing-primitive-loops-and-conditionals/"/>
    <id>http://yoursite/article/?i=54324f9a2f39bf993f137ec9139381c4</id>
    <updated>2010-07-25T00:04:00-07:00</updated>
    <author>
      <name>a514cb77eede41d51567374ddacb73da</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The challenge I had giving my talk on Finch at the Emerging Languages Camp yesterday was knowing that I had nothing original to say that the megabrains in front of me didn&#8217;t already know. Worse, my unscheduled talk was during what was originally a break, so not only did I have to compete with Rich [...]</div></summary>
  </entry>

  <entry>
    <title>Experienced Points: Quick Time Redux</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8761"/>
    <id>http://yoursite/article/?i=deae73cea46b846bdc7de36b9390b72d</id>
    <updated>2010-07-25T00:03:49-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">We just had this conversation this morning about quick time events.  So, let&#8217;s&#8230; have another?</div></summary>
  </entry>

  <entry>
    <title>Loading Ready Old Spice</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8749"/>
    <id>http://yoursite/article/?i=121de99a6878bf7b24bcb7f465bd77d9</id>
    <updated>2010-07-25T00:03:49-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Okay, this one may or may not need some introduction, depending on how much you know about this particular meme. First, Old Spice made the famous Super Bowl Old Spice Body Wash Supercommercial of handsomeness and super being on a horse.  It was good. It was also done with almost no special effects.  Amazingly, the whole thing was just brought to life through the magic of very clever set-building. 
Then they followed up with another one:



Link (YouTube)


And then they went crazy and had Old Spice guy answer questions posted to him in Twitter.  And then Kathleen from Loading Ready Run did the twitter thing, and he responded:



Link (YouTube)


Conjecture:
Women will often enjoy a smell that reminds them of their father.  But a generation later, a woman will not be particularly interested in a guy that smells like her crusty old grandfather. Even if she likes the scent in a general sense, it&#8217;s a safe bet that it won&#8217;t work as a romantic catalyst. 
So then the scent takes a generation off until it falls out of general widespread use, and then it can re-take market share by courting the young generation. In the 80&#8242;s, Old Spice seemed to have a reputation as a scent for the oldies, and (at least where I came from) Drakkar was the hip new fragrance for the young men. Now Old Spice is making the comeback as people are able to enjoy the scent.  This is clever and entertaining marketing, which will go a long way towards making that happen.  
And I&#8217;m always happy to pass along entertainment, even when it&#8217;s being used to sugar-coat a commercial message.  I really wish more companies would try to win our recognition through talent instead of harassment and aggravation.  </div></summary>
  </entry>

  <entry>
    <title>(Untitled)</title>
    <link href="http://www.flickr.com/photos/brettjohn/4822757932/"/>
    <id>http://yoursite/article/?i=cb104ca66b8cc43adb0589bbad555182</id>
    <updated>2010-07-25T00:02:57-07:00</updated>
    <author>
      <name>68ae13bfb460dc2bfe2e5991def58916</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">brettjohn posted a photo:
	
</div></summary>
  </entry>

  <entry>
    <title>Design roundup #4.</title>
    <link href="http://www.significant-bits.com/design-roundup-4"/>
    <id>http://yoursite/article/?i=31792af2e1824193b1f4ba8846104871</id>
    <updated>2010-07-25T00:02:53-07:00</updated>
    <author>
      <name>21eacc14918515695bdcc61ec21ec7da</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">

The Psychology of Randomness &#8211; People tend to be terrible at accepting randomness for what it is, and it&#8217;s a very important trait to accommodate for in game design.
Testosterone and Competitive Play &#8211; Danc&#8217;s essay on playing against friends, playing against strangers, the perception of luck and skill, and pro-social/pro-dominance tendencies.
Groundhog Day and Video Games &#8211; Groundhog Day is a fantastic movie with a surprisingly wide-spread appeal, and I always thought its concepts were perfect for a videogame.
</div></summary>
  </entry>

  <entry>
    <title>What I learned at the Emerging Languages</title>
    <link href="http://journal.stuffwithstuff.com/2010/07/23/what-i-learned-at-the-emerging-languages-camp/"/>
    <id>http://yoursite/article/?i=489d1d9c1734607582e2dddba119c34e</id>
    <updated>2010-07-23T13:27:50-07:00</updated>
    <author>
      <name>a514cb77eede41d51567374ddacb73da</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I just got back from the unbelievably awesome Emerging Languages Camp at OSCON. I wish I could come up with a good way to get across how cool of an experience it was. All I can really say was that for the first time in a long, I felt like I was really around my [...]</div></summary>
  </entry>

  <entry>
    <title>09-07 Racer v0.8.13 released</title>
    <link href="http://www.racer.nl"/>
    <id>http://yoursite/article/?i=981c2465f4728fe7c1e46aace42a6c5b</id>
    <updated>2010-07-23T13:27:41-07:00</updated>
    <author>
      <name>http://www.racer.nl</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Version 0.8.13 is available at the beta download page (Windows). Shadow mapping is improved.</div></summary>
  </entry>

  <entry>
    <title>Stolen Pixels #214: X, A, B, Win!</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8758"/>
    <id>http://yoursite/article/?i=a4eb8bdb16730a1e564878206d4fc730</id>
    <updated>2010-07-23T13:27:40-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Today&#8217;s comic is up. You&#8217;ll never guess what I&#8217;m on about. Again.
You know, there were 144 original DM of the Rings comics. The 5 bonus comics which may or may not count, depending. Then I did 52 comics for Chainmail Bikini. Then another 16 or so random comics to accompany blog posts.  
I think we&#8217;re almost at the point where Stolen Pixels will account for half of all the comics I&#8217;ve ever made ever. We just past the 2nd anniversary a couple of weeks ago. That&#8217;s a lot of comics. 
Well, I guess it&#8217;s a lot of comics if you ignore the fact that Irregular Webcomic is on number 2,735.  At my current rate it will take me just 25.8 years to reach that number. During which time IWC will publish an additional 9,417.</div></summary>
  </entry>

  <entry>
    <title>Fleet-Footed Faster Forward</title>
    <link href="http://www.realtimerendering.com/blog/fleet-footed-fast-forward/"/>
    <id>http://yoursite/article/?i=90f36f8f576312e3350939a0828f4485</id>
    <updated>2010-07-23T13:27:32-07:00</updated>
    <author>
      <name>d673992480e7ab9117f17dc54b9c49b0</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The Fast Forward event at SIGGRAPH is set of very short presentations Sunday evening that runs through all the papers at SIGGRAPH. Lately SIGGRAPH has become a &#8220;big tent&#8221;, including a wide range of fields. This year there are, by my count, 133 SIGGRAPH papers, giving say 50 seconds to each presentation in the two-hour period.&#160;This is a pleasant-enough way to cull through all the papers and find which ones to see, and there is the occasional witty presentation, but to be honest, I&#8217;m a bit worn out on the method &#8211; too slow! In the past few years I find myself looking at my watch halfway through and thinking &#8220;egads, still another hour?&#8221; and my monocle pops from my eye with comic effect.
So I liked seeing that CGW is hosting a 3 minute 44 second video summary of some of the SIGGRAPH papers. Only 23 papers summarized, but I love that each gets just a sentence &#8211; you&#8217;re in, you&#8217;re out, and you have some sense if it&#8217;s a paper you need to see. I wish I had this for all the papers. Second in awesomeness would be a single web page that lists all the abstracts together, for a quick skim. I should write a Perl script that makes one from ACM&#8217;s SIGGRAPH 2010 TOC. Also at CGW&#8217;s site is a 2 minute 41 second (plus long credits) video summary of the Emerging Technologies area, purely visual &#8211; nice, it gives me a little taste, prepping my senses for what I will see there and want to learn more about.</div></summary>
  </entry>

  <entry>
    <title>Are Waypoint Graphs Outnumbered? Not in </title>
    <link href="http://feeds.aigamedev.com/~r/AiGameDev/~3/O2YSL5zZRho/"/>
    <id>http://yoursite/article/?i=24fe4f78cedb4564c61830c949e82fa8</id>
    <updated>2010-07-23T13:27:06-07:00</updated>
    <author>
      <name>http://feeds.aigamedev.com/~r/AiGameDev/~3/O2YSL5z</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Copyright &#0169; AiGameDev.com, 2010.  If you've been following recent trends in game AI, you could think of navigation meshes as an angry horde set to kill off waypoint graphs. Meshes are everywhere: from the various middleware libraries presented in Paris last month like Autodesk's Kynapse, PathEngine, or Havok's to open-source implementations like Recast as well. Some veteran developers have even declared waypoint-based approaches to be obsolete... Yet, waypoint graphs are still regularly used in the games industry. I personally often recommend them - especially to independent developers - since they're a simple and effective approach to navigation, and if you're going to implement something yourself for a game, you might as well use waypoints and save yourself the torment of writing a robust navigation mesh that you may never make the most of! The recent release of AlienSwarm (free on Steam) is a perfect illustration of how waypoints are still used in practice, and are supported by Valve's Source engine. In this post, you'll find some insights into the code from the SDK (also available) as well as screenshots from the game itself. Oh, and be sure to join our official AiGameDev.com Group on the Steam Community! 

 Instructions... If you'd like to follow along with this article, you need to do a couple things once you have the game installed. Keep in mind you can click on all the images below to view the large version! 
In the AlienSwarm keyboard configuration menu, you have to enable the developer console.
When you need it, you can activate the console using the tilde (~) key below the ESC key.
You may want to setup god mode by typing asw_god 1, which should prevent you from dying while you're exploring.
Also, for screenshots disable the heads-up display (HUD) using asw_draw_hud 0.
 The SDK is installed via your TOOLS tab in the Library within Steam, and the source code is stored on disk in your Steam folder, for example C:&#92;Games&#92;Steam&#92;steamapps&#92;common&#92;alien swarm&#92;sdk_src&#92;game&#92;server. AI Nodes Technically speaking, the graph in AlienSwarm is made up of "nodes" and the term "waypoint" is used to describe the path that results from the pathfinding. Nodes are essentially points in space with additional information such as an identifier, type, additional information, a zone, etc. The data-structure used to store these nodes can be found in #/sdk_src/game/server/ai_node.[h,cpp]. 
enum NodeType_e
{ NODE_ANY, NODE_DELETED, NODE_GROUND, NODE_AIR, NODE_CLIMB, NODE_WATER }; enum NodeInfoBits_e
{ bits_NODE_CLIMB_BOTTOM = (1 &lt;&lt; 0), bits_NODE_CLIMB_ON = (1 &lt;&lt; 1), // ... bits_NODE_CLIMB_OFF_RIGHT = (1 &lt;&lt; 4), bits_NODE_CLIMB_EXIT = // ... NODE_ENT_FLAGS_SHIFT = 5, /* Flags for default and custom hulls. */
}; class CAI_Node
{
public: int m_iID; Vector m_vOrigin; float m_flVOffset[NUM_HULLS]; float m_flYaw; NodeType_e m_eNodeType; int m_eNodeInfo; int m_zone; CUtlVector&lt;CAI_Link*&gt; m_Links; float m_flNextUseTime; CAI_Hint* m_pHint; int m_iFirstShuffledLink;
};
 

Screenshot 1: Ground nodes are placed on the floor and given a NODE_GROUND type. Most aliens use these nodes.
 

Screenshot 2: Some of these nodes are aerial nodes, and have the NODE_AIR type. Flying aliens use these.
 The nodes in the levels can be placed manually using the map editing facilities from the console. AI Links Nodes are connected together via links, which implicitly creates a graph. Each node stores a set of links, and the links hold two identifiers to point towards its end nodes. The links are specified in #/sdk_src/game/server/ai_link.[h,cpp] and the resulting graph is #/sdk_src/game/server/ai_network.[h,cpp]. 
/* Edited for conciseness. */
enum Link_Info_t
{ bits_LINK_STALE_SUGGESTED = 0x01, bits_LINK_OFF = 0x02, bits_LINK_PRECISE_MOVEMENT = 0x04, bits_PREFER_AVOID = 0x08, bits_LINK_ASW_BASHABLE = 0x10,
}; class CAI_Link
{
public: short	m_iSrcID; short	m_iDestID; byte m_iAcceptedMoveTypes[NUM_HULLS]; byte	m_LinkInfo; float m_timeStaleExpires; int m_nDangerCount; CAI_DynamicLink *m_pDynamicLink;
};
 You can display the links from the console using the command ai_show_connect. 

Screenshot 3: The AI node graph in a tight corridor.
 

Screenshot 4: A small set of stairs and its node graph.
 There are two types of links: static links like in the screenshots above, which don't change during the game and can be stored very efficiently in memory. However, since some parts of the world may change, dynamic links are also required. These are hooked into the graph by having each static link store an optional pointer to a dynamic link. The dynamic links are full entities capable of receiving game events to deal with the changes around it. See the files #/sdk_src/game/server/ai_dynamiclink.[h,cpp] for details! 

Screenshot 5: Dynamic links that are currently disabled, re-enabled after nearby objects are destroyed.
 In the standard campaign, dynamic links are used when infected biomass is burned with the flamethrower, or rocks that are in the way are destroyed using the mining laser. AI Hulls The links in the graph seems to be connected via brute force, as shown in the images below. There are many links that are created which will never be used at runtime. However, these are marked as disabled - shown in red. 

Screenshot 6: The links to be checked by the convex hull collision.
 The links are disabled using a convex hull collision test. If the hull around a link collides with geometry, then it's deemed to be in-traversable at runtime and the link is turned off. You can see the hulls from the console using the variable ai_show_hull 1. 

Screenshot 7: Convex hulls associated with the previous node graph.
 

Screenshot 8: Aerial node graph and a representation of its hulls.
 There are different convex hull types for the different link types, in this case ground units and air units. The hulls for both those unit types are rendered in a different color within the game. Another Example 

 

 

 Conclusion Waypoints have picked up a bad reputation over the years, but AlienSwarm is an example of a game that seems perfectly fine with this approach. The navigation of the aliens is certainly not perfect, but this is mostly due to human-placed dynamic obstacles like turrets. Navigation meshes wouldn't resolve this problem directly either, you still need local avoidance for that... Arguably though, a navmesh would make it easier to resolve these problems and support dynamic obstacles, but getting this right is far from trivial! What's your take on waypoints and their use in AlienSwarm? Let us know and post a comment in the forums!</div></summary>
  </entry>

  <entry>
    <title>Xcode 4</title>
    <link href="http://waffle.wootest.net/2010/07/23/xcode-4/"/>
    <id>http://yoursite/article/?i=a9190e1b1e661d362c3d148f0a2f003f</id>
    <updated>2010-07-23T13:26:59-07:00</updated>
    <author>
      <name>ad1fdd382e9d222487df79574594ac81</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">If you spent $99 to join the Mac Developer Program and support Apple&#8217;s open, no-constricting-bullshit, developers-are-mostly-grownups, users-can-mostly-be-trusted, sharing-documents-doesn&#8217;t-mean-going-through-a-space-station-like-airlock-of-connecting-devices-and-opening-boxes-in-iTunes-and-your-app-at-the-same-time-or-setting-up-a-server-configuring-users-and-defining-a-protocol, you-can-even-call-other-applications-directly-and-provide-your-own-common-infrastructure-without-duplication-or-ruler-slaps platform but didn&#8217;t go to the developers conference that was chiefly about their other platform, the Xcode 4 Preview build that&#8217;s now available for download should be a nice surprise.

Not that I&#8217;m bitter.

Okay, so I am bitter, but only because it requires Mac OS X 10.6.4 which I&#8217;ve been holding off on because apparently it degrades GPU performance.

Here&#8217;s what&#8217;s new.</div></summary>
  </entry>

  <entry>
    <title>Meet Us in Kansas City</title>
    <link href="http://www.cringely.com/2010/07/meet-us-in-kansas-city/"/>
    <id>http://yoursite/article/?i=7168cf7640fd869897b75142d3c2e290</id>
    <updated>2010-07-23T13:26:58-07:00</updated>
    <author>
      <name>3859ab165ee315c48fb6f0b8090ca634</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">We&#8217;re well into our Startup Tour, visiting young companies so far in New York, Vermont, Pennsylvania, Michigan, Illinois, and Missouri.&#160; Today we head to Kansas City and the Kauffman Foundation, one of our sponsors. That I&#8217;ve been slow to post the promised tour videos or write about these companies comes down to air conditioning failure, driving 4,000 miles, air conditioning failure (again), swiping a tree and tearing-off our retractable steps, air conditioning failure (yet again), and hitting a pothole so deep that our exhaust system literally fell off in the road.Ah, the RV lifestyle!We also learned a great truth about Travelocity when booking hotel rooms for the camera crew: did you know that when they take your money and promise you three rooms for two nights in St. Louis that promise means nothing? Sometimes those rooms turn out not to exist and the only recourse to being homeless in the rain at 11:30 PM is getting your money back in 12 business days.But the startup companies we&#8217;ve visited so far has each been a joy and a surprise in a different way. I&#8217;ll start writing about those tonight as we finally get to rest for a couple days in Kansas City.Or if you can&#8217;t wait for that and happen to be from Kansas City, drop by the Kauffman Foundation this afternoon at 3PM and meet us all for ice cream in the parking lot. And if you think to, please bring an unwrapped toy that my kids can take to local hospitals and homeless shelters. That&#8217;s their startup venture this summer.See you at 3PM.Ewing Marion Kauffman Foundation&#8206; 4801 Rockhill Road Kansas City, MO 64110 (816) 932-1000 kauffman.org&#8206; </div></summary>
  </entry>

  <entry>
    <title>(Untitled)</title>
    <link href="http://www.flickr.com/photos/brettjohn/4819465769/"/>
    <id>http://yoursite/article/?i=52fe545fe5e1e440616ea6ef10f39167</id>
    <updated>2010-07-23T01:06:07-07:00</updated>
    <author>
      <name>68ae13bfb460dc2bfe2e5991def58916</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">brettjohn posted a photo:
	
</div></summary>
  </entry>

  <entry>
    <title>All the Girls</title>
    <link href="http://xkcd.com/770/"/>
    <id>http://yoursite/article/?i=db2e0481dc9050aa9558382604e30f5b</id>
    <updated>2010-07-23T01:06:05-07:00</updated>
    <author>
      <name>http://xkcd.com/770/</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"></div></summary>
  </entry>

  <entry>
    <title>Like A Version: Sally Seltmann</title>
    <link href="http://mpegmedia.abc.net.au/triplej/livemusic/sallyseltmann_20100723/lav_sallyseltmann_2010_07_23.mp3"/>
    <id>http://yoursite/article/?i=31e699b89d12c7d356a22149040c47d1</id>
    <updated>2010-07-23T01:06:04-07:00</updated>
    <author>
      <name>bdd80b5da47348e61f7aad288b492548</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The Melbourne songstress brought her electric keyboard in to cover Carly Simon and to make you feel happy</div></summary>
  </entry>

  <entry>
    <title>Spoiler Warning 223: Its the End of the </title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8725"/>
    <id>http://yoursite/article/?i=efae05c8472439f1d77f359299cccfce</id>
    <updated>2010-07-22T14:52:46-07:00</updated>
    <author>
      <name>a395781203fd1a2e86aa945989dfa4db</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The two and a half of you who are unceasingly fascinated by the fact that Shamus puts his name under the title of each post may be somewhat confused at the moment. You may also wonder why I am referring to myself in the third person. This could have something to do with the fact that I am, in reality, not Shamus. The man in question is currently passed out on some crude form of sleeping apparatus, a victim of his ever shifting sleep schedule, and has entrusted me to write the post for today&#8217;s Spoiler Warning in the event that he were unavailable to do so.
As an added bonus, he utterly failed to specify exactly what it was I was supposed to post. So, without further ado:
Why Shamus is Wrong and I am Awesome
A treatise on the myriad ways in which Guild Wars is the best MMO ever and World of Warcraft sucks.
&#8230;Hey, why are you pulling that giant stuffed boar head off of your trophy wall&#8212;OH GOD!
Ow, okay, I get it! You didn&#8217;t have to throw it at me! Jerk!
Let&#8217;s just&#8230; get to the video, all right?






See, I told you I was awesome. Hey put that down!</div></summary>
  </entry>

  <entry>
    <title>Two and a Half Books</title>
    <link href="http://www.realtimerendering.com/blog/two-and-a-half-books/"/>
    <id>http://yoursite/article/?i=838e4039fe2b492e1d60aed0431d392f</id>
    <updated>2010-07-22T03:51:51-07:00</updated>
    <author>
      <name>d673992480e7ab9117f17dc54b9c49b0</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I&#8217;ve learnt of two new books in the past few weeks, worth mentioning as books to check out at SIGGRAPH (or using Amazon&#8217;s &#8220;Look Inside&#8221;, of course):
iPhone 3D Programming: Developing Graphical Applications with OpenGL ES, by Philip Rideout, O&#8217;Reilly Press. A better title might have been &#8220;Programming OpenGL ES on the iPhone&#8221;, as it focuses on OpenGL ES more than on the iPhone per se. Which is fine; there are already lots of iPhone programming books, fewer that are focused more on OpenGL ES itself. The book is C++ oriented, with some Objective C as needed for glue.&#160;From my brief skim, this looks like a readable guide that hits many different effects: reflection maps, skinning, antialiasing, etc. That said, I haven&#8217;t yet had the opportunity to program on any mobile devices, so can&#8217;t give an expert review.
Light &amp; Skin Interactions: Simulations for Computer Graphics Applications, by Gladimir V. G. Baranoski and Aravind Krishnaswamy, Morgan-Kaufmann Press. This one&#8217;s out of my league as a casual skim. Paging through and seeing &#8220;the eumelanin absorption coefficient is given by&#8230;&#8221; and &#8220;Scattering in either the stratum corneum or epidermis&#8230;&#8221; shows me how little I know of the world in general. Anyway, interesting to see a whole book about this critical type of material. Searching through it, there&#8217;s minimal coverage of, for example, d&#8217;Eon and Luebke&#8217;s work, so I can&#8217;t say it has much direct application to interactive computer graphics at this point.
The half a book (at best): Game GPU Graphics Gems: Real-Time Rendering The Redux (aka GGGG:RTRTR), by anyone who wants to edit it. When I &#8220;edited&#8221; the quasi-book&#160;Another Introduction to Ray Tracing a few months ago, I thought back then that I&#8217;d &#8220;edit&#8221; another book for SIGGRAPH. Like the first stunning collection, this was an hour of work gathering Wikipedia articles (hardest part was choosing a cover). There are plenty more articles to gather about interactive rendering, and you&#8217;re most welcome to add any good ones you find to this book, make your own, etc. &#8211; it&#8217;s a wiki page, after all. More seriously, I like having a single, tight page of links to Wikipedia articles about interactive rendering, vs. wandering around and haphazardly seeing what&#8217;s there.</div></summary>
  </entry>

  <entry>
    <title>(Untitled)</title>
    <link href="http://www.flickr.com/photos/brettjohn/4817085507/"/>
    <id>http://yoursite/article/?i=55d9dcc15f1803f5ce7e76dcca7d91cd</id>
    <updated>2010-07-22T03:51:22-07:00</updated>
    <author>
      <name>68ae13bfb460dc2bfe2e5991def58916</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">brettjohn posted a photo:
	
</div></summary>
  </entry>

  <entry>
    <title>Recursive Procedural</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8719"/>
    <id>http://yoursite/article/?i=f5494ebf651a60e399ae8e17f9248346</id>
    <updated>2010-07-21T14:25:57-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Talking about procedural content, Bobknight asks:
wouldn&#8217;t the vast majority of the content be(by definition) random? or do you mean that instead of specifying each individual &#8216;box&#8217; they just point to an area and go &#8216;mountain here.&#8217; or &#8216;desert here&#8217; and use the appropriate algorithm for each one? If that is true, wouldn&#8217;t he algorithm become increasingly/impossibly more complex if you want to put any kind of detail(the kind of detail that most RPG/sandbox games demand) in it?
I mean, how does this help to make something like fallout?(where you have the dead janitor on the ground with his two bits of meat and a can of beer)? Would the resulting game world be merely a HUGE collection of randomized terrain that has absolutely nothing on it?

So far my approach to this &#8211; and I&#8217;m sure FUEL does this as well &#8211; is to make procedural systems recursive. A system produces data, and that data is used as input for another system.  One level carves up the world into geographic regions.  That data is used to generate the topography of the world.  The topography is used to decide where to place cities.  Those locations are used to build street systems.  The streets are used as a guide for placing buildings. The buildings can then be filled with hallways.  Hallways are filled with dudes. Rooms connect to hallways. Furniture goes in rooms.  Objects go on furniture. Player is given a gun and told to go kill some dudes and get some objects. 
Each system is a set of rules and depends on good input.  In 2003 or so I wrote a program (and the source is gone, I keep meaning to re-write it, dangit) to take some topographic data and attempt to plot a road across it.  The rules governing roads &#8211; while not set in stone &#8211; are fairly reliable and observable. Roads will curve in response to hills to keep from becoming too steep.  When a road is navigating around a hill, the inside of the curve should bite into the hill and the outside should lift it up.  (In the real world, engineers displace dirt from one side to add to the other, which produces the familiar banks on either side and the distinctive not-dumping-you-into-a-ravine horizontal flatness for which roads have become so popular.)  In my system, the road was willing to go up and down steeply in direct proportion to how far off course it was.  My road wanted to go north, but would veer to either side to avoid hills.  But as it came closer to heading due east or west, it would be willing to climb or drop to a much greater degree.  This produced a very convincing road. (However, the system would occasionally encounter topography that was not solvable with the given rules, and the result usually looked hilariously bad.) 
You can see this at work in FUEL. If you go out to the perfectly flat zone in the northeast you can see the roads basically form a grid.  In the hilly parts of the game, the roads bend around quite a bit.  In the really hilly sections, the roads get crazy twisted. Sometimes you&#8217;ll see a road get &#8220;trapped&#8221; by unworkable input data and it will either climb a sheer cliff or simply give up and end abruptly. Note that the roads in FUEL had the added challenge of needing to intersect with one another at reasonable angles, which was something I never attempted.
The point is, FUEL is recursive.  It generates topography. (And I suspect even the topography generation is a multi-stage deal.) Then it places roads.  Then it places debris on the roads and buildings alongside them.  If you&#8217;re trying to make &#8220;procedurally generated Fallout 3&#8243;, the next step is to add more stages. This becomes really easy if you decide to take the Bethesda shortcut and make exterior doors into magic teleporters that will move the player into the building without needing to worry about a smooth transition between the two. (This solves tons of problems.  You don&#8217;t need your interior floor plan to precisely match the exterior of the building, and you don&#8217;t have to worry about the complex culling problems you get when the player starts seeing through multiple windows at once.)
As for the &#8220;dead janitor&#8221; problem:  You can have artists design special set pieces and simply make their placement exceptionally rare.  The artist will make a group of objects like the janitor, his mop bucket, and his beer, and specify rules like &#8220;this thing only goes in hallways&#8221; and &#8220;this should never appear more than once in the same building&#8221; and &#8220;this should only appear in 1 out of every 50&#8243; buildings. Then the game will drop in the janitor every now and again.  As far as the game is concerned, he&#8217;s just &#8220;furniture&#8221;.  
The move to a procedurally generated would wouldn&#8217;t mean that the world would have to be dull and sterile. With the right rules you can make places just as vibrant and interesting as those in Fallout 3.  You just need to make the up-front investment of building the system (no small thing, I&#8217;ll grant you) and change how your artists approach their work. If the world feels monotonous then it means your rules aren&#8217;t robust enough or your artists haven&#8217;t added enough variety yet. 
I&#8217;m convinced this this has been do-able for the last several years. I just wish I could earn a paycheck proving it. </div></summary>
  </entry>

  <entry>
    <title>War</title>
    <link href="http://xkcd.com/769/"/>
    <id>http://yoursite/article/?i=277dec2ce8767dcaf6e03cfcfa0b9497</id>
    <updated>2010-07-21T01:16:14-07:00</updated>
    <author>
      <name>http://xkcd.com/769/</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"></div></summary>
  </entry>

  <entry>
    <title>Moving to Australia</title>
    <link href="http://decadeengine.blogspot.com/2010/06/moving-to-australia.html"/>
    <id>http://yoursite/article/?i=f254291dbb213435bd29871a3c277a34</id>
    <updated>2010-07-20T14:49:02-07:00</updated>
    <author>
      <name>7fb6a37bf6878a78f90a92219193697e</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Decade Engine will be on hold for a short while as I immigrate to  Australia. Thank you to everyone who has emailed questions and support  regarding my blog and development. I shall be back online and back in  development 'DownUnder'.Ciar&#225;n</div></summary>
  </entry>

  <entry>
    <title>Stolen Pixels #213: The Force Unloved</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8710"/>
    <id>http://yoursite/article/?i=54794064a098e7c6a245814f4753a6e9</id>
    <updated>2010-07-20T14:48:54-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">My Force Unleashed comic.
It was only recently that I became aware of just how truly messed up the Star Wars expanded universe is. Randy (our player from Spoiler Warning season 1) is something of a Star Wars scholar and explained to me some of the stuff that appears in the avalanche of Star Wars novels.  Some of it honestly sounds like fanfic.  Some of it sounds like drivel.  And some of it sounds pretty dang cool.
I think the magic ingredient that A New Hope had was that it wasn&#8217;t a normal sci-fi movie.  It was actually a classic swashbuckling / save-the-princess adventure in sci-fi makeup.  Errol Flynn in space. Almost everything that followed has simply ignored this and embraced the space opera angle. That&#8217;s not a complaint, it&#8217;s just an observation on how the thing has evolved. I&#8217;m not even sure it would be possible to go back now. </div></summary>
  </entry>

  <entry>
    <title>Ray Tracing News v23 n1 is out</title>
    <link href="http://www.realtimerendering.com/blog/ray-tracing-news-v23-n1-is-out/"/>
    <id>http://yoursite/article/?i=49d0a128b23835b6ecf9baba13bceadd</id>
    <updated>2010-07-20T14:48:50-07:00</updated>
    <author>
      <name>d673992480e7ab9117f17dc54b9c49b0</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Just in time for SIGGRAPH (so I wouldn&#8217;t get those &#8220;when&#8217;s the next issue coming out?&#8221; questions), here it is.</div></summary>
  </entry>

  <entry>
    <title>Assorted FPS news</title>
    <link href="http://freegamer.blogspot.com/2010/07/assorted-fps-news.html"/>
    <id>http://yoursite/article/?i=4700dbed78eb499ffcc7d01791fe6f3f</id>
    <updated>2010-07-20T14:48:07-07:00</updated>
    <author>
      <name>615b471b69e2a254b4b7933e0f566b3d</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Lets start with the big news for today :)

A new version of Cube2:Sauerbraten was released today: Justice Edition!
Changes include two new player-models, 30 new maps, a mini radar and the new hold and efficiency game modes. For a full change log click here.

The blue base!

The new game mode "efficiency" gives you a set amount of ammunition and all weapons, and you can only "reload" when re-spawning and in the "hold" mode you get points when holding the flag for 30 seconds for your team

Upcoming changes in AlienArenaIn this other open-source online arena FPS (sadly also with un-free media) some major changes in the rendering engine have been announced recently. Version 7.45 will include the new IQM skeletal animation format, which speeds up and increases the rendering quality tremendously on all somewhat new GPUs!
Furthermore changes to the shadowing code have been made:

Improved self shadowing


ZeroBallistics completely FOSS???

Ok maybe I am jumping the gun here, but this interesting post has recently appeared on the Phoronix message-boards. It seems like the former commercial indi game Zero Ballistics (an unrealistic tank battle multiplayer game with pretty sweet graphics) has gone completely FOSS (GPL including the media and even the .blend model source files).


Zero Ballistics trailer


Details are a bit shady, as there was a post on the currently offline webpage about ZB going to be released for "free", but no mention of the exact licensing. However now a complete repository has appeared on the Sourceforge page (tagged as GPL), so speculations are that it is completely FOSS! We are currently trying to confirm this with the authors listed at the sf.net page, but so far there was no response :( But lets wait and see!</div></summary>
  </entry>

  <entry>
    <title>Postcards from WoW</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8698"/>
    <id>http://yoursite/article/?i=8812c33d754140abdea1f0fa95e11ffa</id>
    <updated>2010-07-20T03:25:28-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Oh no! Shamus is turning this site into a WoW blog! The rage! 
Well, I turned it into a  Mass Effect 2 blog and a Fable 2 blog at various times.  This too shall pass.
Anyway, round &#038; about the World O&#8217; Warcraft:





A spammer.  Yes, I know that posting images of his shenanigans is helping him to achieve his goal and thus rewards the little bastard, etc. But this is an interesting case because he&#8217;s revealing some interesting holes in the WoW servers.
What you&#8217;re looking at is a group of level one human Warlocks, who all start in red robes.  They are no doubt in the game on trial accounts.  They have assembled themselves into positions in mid-air to spell the name of the spammer site.





Onlookers assumed this was a group of goldfarmers, but it was clear to me that these avatars were controlled by homemade scripts and not real people.  I&#8217;m guessing the spammer didn&#8217;t have the WoW client running. He was probably running his own software that posed as the client and allowed him to control many avatars at once from the same computer. The entire group moved with extreme mechanical precision.  They went from the standing upright configuration to the sitting one at exactly the same time.  They moved to their new positions instantly without needing to walk there. Oh, and they were floating in the air, which is not possible using legitimate game mechanics.
What I can&#8217;t understand is why Blizzard allows this.  It&#8217;s not difficult to analyze incoming positional data and perform sanity checks on it.  If someone playing WoW suddenly seems to have moved 10 meters in half a second, the server should be able to spot the rule-violating behavior.  Some goes for standing in mid-air. 
Moving on.  Thanks to those who donated to the &#8220;help Shamus score a mount&#8221; fund:





Also thanks for the advice from fellow players on how to work the auction house.  I&#8217;ve managed to find a few key items that I&#8217;m willing to part with and that sell for a fortune. Also thanks for all the bags.  This game is so much more fun when you can carry all the crap you need for cooking, fishing, first aid, and your profession tools. 
And now for something completely juvenile:





It looks like my lizard is giving my a lapdance, but really he&#8217;s* just standing there. Pets always do this.  If you sit in a chair, they sort of climb onto your lap. 
* I actually think Eddie is a female. The game doesn&#8217;t normally tell you the gender of animals. But! There is this group of ghosts in the game that put a curse on you and turn you into an undead human for a couple of minutes. When this happened to Eddie, she was a female avatar.  This happened on two different occasions.  I should go back with a different pet and see if it ends up a different gender.
I just dinged level 30. This is an important level in the game, where you get new powers and access to the next tier of gear. But I didn&#8217;t care about any of that.  The moment I leveled I ran out and got this:





You can&#8217;t tame a pet above your own level, and this was the first turtle I could reach on the Alliance side.  (Blood Elves get Turtles in their starting location.  I actually considered trying to get there and grab one when I was 25 and tired of waiting, but I figured the trip would be suicide. I&#8217;d have to pass through hostile country, high-level areas, and Horde-side cities to get there.) </div></summary>
  </entry>

  <entry>
    <title>Selecting Reach vs. HiDef</title>
    <link href="http://blogs.msdn.com/b/shawnhar/archive/2010/07/19/selecting-reach-vs-hidef.aspx"/>
    <id>http://yoursite/article/?i=57eb23c01188d572efed5c0154220c1b</id>
    <updated>2010-07-20T03:25:25-07:00</updated>
    <author>
      <name>a5eeb5ee37d4e6f815f293a2eb523e5a</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">When you create a Windows Phone game project, XNA defaults to Reach profile. When you create a Windows or Xbox 360 project, it defaults to HiDef. But it is also possible to target Reach from a Windows or Xbox game! There are two reasons you might want to do this:     If you want to distribute your Windows game and have it run on a wide range of computers that do not support HiDef functionality    If you are developing on Windows or Xbox, but plan on later porting to Windows Phone, and want to make sure you don't accidentally use graphics features that are not supported on the phone   To use Reach on Windows or Xbox:     Right-click your project in Solution Explorer    Choose Properties    Focus the XNA Game Studio tab, and make your selection          You can also choose profiles at runtime, by setting GraphicsDeviceManager.GraphicsProfile from your Game constructor. It is usually better to specify this via the project properties, though.     If you do not explicitly set GraphicsDeviceManager.GraphicsProfile, it defaults to whatever was chosen in the project properties    Project properties also control the Content Pipeline build process, so it knows how to validate things like max texture size and supported formats    HiDef is a superset of Reach, so if you build content for Reach, you can load the resulting .xnb files into a HiDef graphics device    The reverse is not true: you cannot load content that was built for HiDef into a Reach graphics device </div></summary>
  </entry>

  <entry>
    <title>Like A Version: The Soft Pack</title>
    <link href="http://mpegmedia.abc.net.au/triplej/livemusic/softpack_20100716/lav_softpack_2010_07_16.mp3"/>
    <id>http://yoursite/article/?i=61d8ee63fe3577e923049858cf848406</id>
    <updated>2010-07-20T03:24:59-07:00</updated>
    <author>
      <name>bdd80b5da47348e61f7aad288b492548</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The Soft pack cover The Rolling Stones for Like A Version.</div></summary>
  </entry>

  <entry>
    <title>Live at the Wireless: Eddy Current Suppr</title>
    <link href="http://mpegmedia.abc.net.au/triplej/livemusic/eddycurrent_20100720/latw_eddycurrent_2010_07_20.mp3"/>
    <id>http://yoursite/article/?i=039236d59d563f16cda012b5fe28939e</id>
    <updated>2010-07-20T03:24:59-07:00</updated>
    <author>
      <name>bdd80b5da47348e61f7aad288b492548</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Eddy Current Suppression Ring live from the Palace</div></summary>
  </entry>

  <entry>
    <title>Groundhog Day, or, the Problem with A/B </title>
    <link href="http://www.codinghorror.com/blog/2010/07/groundhog-day-or-the-problem-with-ab-testing.html"/>
    <id>http://yoursite/article/?i=d51a97f52c4c9949e7d225bf313849f7</id>
    <updated>2010-07-20T03:24:49-07:00</updated>
    <author>
      <name>http://www.codinghorror.com/blog/2010/07/groundhog</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
On a recent airplane flight, I happened to catch the movie Groundhog Day. Again.



If you aren't familiar with this classic film, the premise is simple: Bill Murray, somehow, gets stuck reliving the same day over and over.

It's been at least 5 years since I've seen Groundhog Day. I don't know if it's my advanced age, or what, but it really struck me on this particular viewing: this is no comedy. There's a veneer of broad comedy, yes, but lurking just under that veneer is a deep, dark existential conundrum.

It might be amusing to relive the same day a few times, maybe even a few dozen times. But an entire year of the same day -- an entire decade of the same day -- everything happening in precisely, exactly the same way? My back of the envelope calculation easily ran to a decade. The director, Harold Ramis apparently agrees.


I think the 10-year estimate is too short. It takes at least 10 years to get good at anything, and alloting for the down time and misguided years [Phil] spent, it had to be more like 30 or 40 years [spent reliving the same day].


We only see bits and pieces of the full experience in the movie, but this time my mind began filling in the gaps. Repeating the same day for decades plays to our secret collective fear that our lives are irrelevant and ultimately pointless. None of our actions -- even suicide, in endless grisly permutations -- ever change anything. What's the point? Why bother? How many of us are trapped in here, and how can we escape?

This is some dark, scary stuff when you really think about it.


You want a prediction about the weather, you're asking the wrong Phil.  
                   
I'll give you a winter prediction.
It's gonna be cold,
it's gonna be gray,
and it's gonna last you for the rest of your life.


Comedy, my ass. I wanted to cry.

But there is a way out: redemption through repetition. If you have to watch Groundhog Day a few times to appreciate it, you're not alone. Indeed, that seems to be the whole point. Just ask Roger Ebert:


"Groundhog Day" is a film that finds its note and purpose so precisely that its genius may not be immediately noticeable. It unfolds so inevitably, is so entertaining, so apparently effortless, that you have to stand back and slap yourself before you see how good it really is.

Certainly I underrated it in my original review; I enjoyed it so easily that I was seduced into cheerful moderation. But there are a few films, and this is one of them, that burrow into our memories and become reference points. When you find yourself needing the phrase This is like "Groundhog Day" to explain how you feel, a movie has accomplished something.


There's something delightfully Ouroboros about the epiphanies and layered revelations in repeated viewings of a movie that is itself about (nearly) endless repetition.

Which, naturally, brings me to A/B testing. That's what Phil spends most of those thirty years doing. He spends it pursuing a woman, technically, but it's how he does it that is interesting:


Rita: This whole day has just been one long setup.

Phil: It hasn't.

Rita: And I hate fudge!

Phil: [making a mental list] No white chocolate. No fudge.

Rita: What are you doing? Are you making some kind of list? Did you call my friends and ask what I like and what I don't like? Is this what love is for you?

Phil: This is real. This is love.

Rita: Stop saying that! You must be crazy.


Phil doesn't just go on one date with Rita, he goes on thousands of dates. During each date, he makes note of what she likes and responds to, and drops everything she doesn't. At the end he arrives at -- quite literally -- the perfect date. Everything that happens is the most ideal, most desirable version of all possible outcomes on that date on that particular day. Such are the luxuries afforded to a man repeating the same day forever.



This is the purest form of A/B testing imaginable. Given two choices, pick the one that "wins", and keep repeating this ad infinitum until you arrive at the ultimate, most scientifically desirable choice. Your marketing weasels would probably collapse in an ecstatic, religious fervor if they could achieve anything even remotely close to the level of perfect A/B testing depicted in Groundhog Day.

But at the end of this perfect date, something unimaginable happens: Rita rejects Phil.

Phil wasn't making these choices because he honestly believed in them. He was making these choices because he wanted a specific outcome -- winning over Rita -- and the experimental data told him which path he should take. Although the date was technically perfect, it didn't ring true to Rita, and that made all the difference.

That's the problem with A/B testing. It's empty. It has no feeling, no empathy, and at worst, it's dishonest. As my friend Nathan Bowers said:


A/B testing is like sandpaper. You can use it to smooth out details, but you can't actually create anything with it.


The next time you reach for A/B testing tools, remember what happened to Phil. You can reach a local maximum with A/B testing -- but you'll never win anyone's hearts and minds that way.

And if you, or anyone on your team, is still having trouble figuring that out, well, the solution is simple: just watch Groundhog Day again.

 
 
[advertisement] JIRA Studio - Hosted software development suite. Build better software. Faster. Free trial &#187; 
 
 
</div></summary>
  </entry>

  <entry>
    <title>Summer Status</title>
    <link href="http://waffle.wootest.net/2010/07/19/summer-status/"/>
    <id>http://yoursite/article/?i=9b0a496a96d292d302290d35fba27e26</id>
    <updated>2010-07-19T01:25:39-07:00</updated>
    <author>
      <name>ad1fdd382e9d222487df79574594ac81</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I&#8217;m swamped at work and I feel like I&#8217;m torn between several projects in my free time.

I still believe that Rouse is a worthwhile project that could get done enough in the timeframe I had allocated for it if I had been able to use all of those slots. As it stands, it&#8217;s quite a bit along, but far from where I liked for it to have been. I&#8217;ll make sure to make the source available as soon as I can, no matter the disrepair in some parts (I&#8217;m being facetious, but I wouldn&#8217;t exactly release it either). I don&#8217;t want to block anyone who&#8217;s seriously interested in it from getting involved, and I don&#8217;t want my priorities, working schedule and/or inability to plan to be indicative that this project can&#8217;t be done.

As sometimes happens, writing here will be sporadic. I&#8217;ve actually got a lot of ideas, but they need time to mature and be typed out. I&#8217;m also pending a major WordPress upgrade and I&#8217;m thinking about taking advantage of that to do some, let&#8217;s say, well-overdue structural and other work. I dislike Twitter and Tumblr, but I also don&#8217;t have a good out-of-band source, and I have one post format. I once had several, and I might go back to that again.

And as for the software, I&#8217;ve got a few other new ideas and ways to rework at least two of the current involvements. ThisService in particular has been pending some Snow Leopard action for several months now, and I might finally have figured out exactly what to do about it, but that&#8217;ll take time to do, too. It occurs to me that I may not have stated this, but my goal is for, eventually, everything released under the guise of waffle software to be fully available under the BSD license (or even less restrictive).

All of this is not about a lack of interest. It&#8217;s too much interest. I&#8217;m spending far too much time context-swapping, starving the cores. I might need to give something away or up.

I want to be sure that what I do can be great. Making ten half-assed things instead of three good things won&#8217;t cause anything good, not even workload satisfaction.</div></summary>
  </entry>

  <entry>
    <title>1996</title>
    <link href="http://xkcd.com/768/"/>
    <id>http://yoursite/article/?i=9b839a2b8d98c94f88abd4e419cadf7b</id>
    <updated>2010-07-19T01:25:38-07:00</updated>
    <author>
      <name>http://xkcd.com/768/</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"></div></summary>
  </entry>

  <entry>
    <title>The Quicktime Hurdle</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8589"/>
    <id>http://yoursite/article/?i=1ba26b3d6c43f2a117c094a83d85d625</id>
    <updated>2010-07-19T04:11:23-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"></div></summary>
  </entry>

  <entry>
    <title>GPU Ray Tracing BOF at SIGGRAPH 2010</title>
    <link href="http://www.realtimerendering.com/blog/gpu-ray-tracing-bof-at-siggraph-2010/"/>
    <id>http://yoursite/article/?i=7f1f75a9128853e080e54b23f7d762fb</id>
    <updated>2010-07-18T14:28:16-07:00</updated>
    <author>
      <name>d673992480e7ab9117f17dc54b9c49b0</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">There will be a Birds of a Feather gathering at SIGGRAPH 2010 about GPU Ray Tracing: Wednesday, 4:30-6 pm, Room 301 A.
A brief description from Austin Robison: We won&#8217;t have a projector or desktop machines set up, but please feel free to bring your laptops to show off what you&#8217;ve been working on! Additionally, I&#8217;ve created a Google Group mailing list that I hope we can use, as a community, to share insights and ask questions about ray tracing on GPUs not tied to any specific API or vendor. Please sign up and share your news, experiences and ideas: http://groups.google.com/group/gpu-ray-tracing.</div></summary>
  </entry>

  <entry>
    <title>How Does OpenGL Work?</title>
    <link href="http://hacksoflife.blogspot.com/2010/07/how-does-opengl-work.html"/>
    <id>http://yoursite/article/?i=3d0d8b852a553afe4db8f123eab00303</id>
    <updated>2010-07-18T14:28:08-07:00</updated>
    <author>
      <name>1ba3e8ff83bcf60fa25200fec846d218</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">If you are registered with Apple's developer sites, I strongly recommend the OpenGL and OpenGL ES video talks from WWDC 2010.  The Apple engineers spell out in a fair amount of detail things that you had to infer previously, including:How state information is accumulated and then resynchronized at draw call time.How resources are synchronized and shared between host memory and the GPU.The videos are in QuickTime format with subtitles, so you can play them back at 2x speed with captioning to get through the material faster.</div></summary>
  </entry>

  <entry>
    <title>Jasic: A complete interpreter in one Jav</title>
    <link href="http://journal.stuffwithstuff.com/2010/07/18/jasic-a-complete-interpreter-in-one-java-file/"/>
    <id>http://yoursite/article/?i=5a4d6a5691380263be21005d2d945e77</id>
    <updated>2010-07-18T01:08:15-07:00</updated>
    <author>
      <name>a514cb77eede41d51567374ddacb73da</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I just put the finishing touches on a tiny little interpreter project: Jasic. Jasic is a dialect of the original BASIC programming language. It lacks functions and scope, but it&#8217;s a usable language. Even on an old Apple IIe, it was powerful enough to get me hooked on coding for life. Also, you can draw [...]</div></summary>
  </entry>

  <entry>
    <title>(Untitled)</title>
    <link href="http://www.flickr.com/photos/brettjohn/4803342691/"/>
    <id>http://yoursite/article/?i=7db12d6b698cf98ade2dd1e7a992b8df</id>
    <updated>2010-07-18T01:07:39-07:00</updated>
    <author>
      <name>68ae13bfb460dc2bfe2e5991def58916</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">brettjohn posted a photo:
	
</div></summary>
  </entry>

  <entry>
    <title>(Untitled)</title>
    <link href="http://www.flickr.com/photos/brettjohn/4803593245/"/>
    <id>http://yoursite/article/?i=5e62fc28ebdb6ee2ae19148929cb52a5</id>
    <updated>2010-07-18T01:07:39-07:00</updated>
    <author>
      <name>68ae13bfb460dc2bfe2e5991def58916</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">brettjohn posted a photo:
	
</div></summary>
  </entry>

  <entry>
    <title>Jimmy: The World of Warcraft Story</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8672"/>
    <id>http://yoursite/article/?i=d1e6b2a7c990d7db02186e58f1659899</id>
    <updated>2010-07-17T16:20:11-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">


Link (YouTube)


I&#8217;d comment on this video, but I have to get back to playing the game.</div></summary>
  </entry>

  <entry>
    <title>One More Thing</title>
    <link href="http://waffle.wootest.net/2010/07/17/one-more-thing-2/"/>
    <id>http://yoursite/article/?i=ef8515e44a0f3465af16a2dd7315d0a3</id>
    <updated>2010-07-17T16:19:29-07:00</updated>
    <author>
      <name>ad1fdd382e9d222487df79574594ac81</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">So now we know why they removed the &#8220;hold&#8221; button.</div></summary>
  </entry>

  <entry>
    <title>Wouldn't you prefer a nice game of chess</title>
    <link href="http://iloapp.quelsolaar.com/blog/news?Home&amp;post=74"/>
    <id>http://yoursite/article/?i=a11995e0a0b099a819d283ed5808e3b0</id>
    <updated>2010-07-16T22:39:47-07:00</updated>
    <author>
      <name>http://iloapp.quelsolaar.com/blog/news?Home&amp;po</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Have you ever seen a real street fight? The sound of fists hitting flesh is...</div></summary>
  </entry>

  <entry>
    <title>Stolen Pixels #212:BUY THIS NOW!</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8666"/>
    <id>http://yoursite/article/?i=0f0fb5e617075864f61510f7efe7e974</id>
    <updated>2010-07-16T22:39:42-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Just a bit of silliness.
No, this isn&#8217;t the comic I was trying to make on Monday.  I&#8217;d wanted to do a Breen thing, where he ends up trying to make fun of Blizzard&#8217;s Real ID only to have Metro tell him the joke was now irrelevant. Eh. I kind of feel like the moment has passed on that one by now.  So instead we&#8217;re talking about Alan Wake for some reason?</div></summary>
  </entry>

  <entry>
    <title>Experienced Points: Wow, That’s Compli</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8668"/>
    <id>http://yoursite/article/?i=9b7a23c3a5bcaa18b026bc25eeebe85b</id>
    <updated>2010-07-16T22:39:42-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">This week&#8217;s article is about the complexity of World of Warcraft and other MMO games in general.  
And speaking of WoW&#8230;
I have this thing where I prefer to level characters in the wrong zones.  I like to take starting Dwarves and Gnomes to Human areas and vice versa.  Previously, I used to like leveling in the Night Elf areas, but I became aware of just how much of a time sink the place is and I can no longer stand it.  It&#8217;s pretty, but there is just too much dang hiking.  I&#8217;ll miss Darkshore in particular.  
So, my character, who just dinged 20 as of last night:



My goal: Get to Theramore Island (one of my favorite locations in the game, visually) and get myself a giant turtle to replace the bear.



Several people offered me help.  I was going to tough it out and Do It On My Own because I didn&#8217;t want to break the game.  I like fighting against a little scarcity.  But I am to the point where being broke is hindering my ability to make money, if you see what I mean.  
In the game you can have two professions.  There are gathering professions like skinning, mining, and herbalism that let you gather raw materials.  Then there are production professions like leatherworking, blacksmithing, and alchemy.  These consume raw materials and produce useful stuff.  These are usually designed to go in pairs.  Herbalism supplies alchemy, skinning supplies leatherworking, and so on.  If you&#8217;re covered in noobsauce, then the thing to do is to take two gathering professions and sell everything you get at the auction house. There tons of veteran players out there with heaps of gold, and they&#8217;re leveling alts that have two production professions.  They&#8217;d rather pay a newbie to do their gathering via the auction than waste their time doing it themselves.  This is a wonderful way to &#8220;vent&#8221; some cash from high level players to lower ones.  But instead of going for cash I took the engineering profession. It&#8217;s crazy fun, but it consumes all the stuff I could otherwise sell at auction and is keeping me poor.  
I&#8217;m level twenty, which means I&#8217;m due a mount.  But the total cost to do that is 5g. I have, after twenty levels of careful savings, 2g and change. I would need to double my money to get a mount. Ouch. And there are abilities I haven&#8217;t even trained yet.   If I were to grab every ability due to me at this level, I&#8217;d be down to 1g. So I&#8217;m officially at the point where I&#8217;m ready to accept a little help.  But please don&#8217;t mail me 1,000g or anything crazy like that. But if anyone can spare a gold piece and maybe a 12 slot bag, I think it would take the pressure off.</div></summary>
  </entry>

  <entry>
    <title>Objective Dash</title>
    <link href="http://waffle.wootest.net/2010/07/16/objective-dash/"/>
    <id>http://yoursite/article/?i=f43bb60279887da501f5ed7df23ace6b</id>
    <updated>2010-07-16T22:38:55-07:00</updated>
    <author>
      <name>ad1fdd382e9d222487df79574594ac81</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">There aren&#8217;t very many web sites that I&#8217;ll say this about, but I am thoroughly honored to have been part of the inspiration for Matt Gallagher&#8217;s entry on the post-Objective-C world. Matt&#8217;s a fine programmer with a deep understanding in user interface design and a rare gift for education. When I am researching a Cocoa problem and I find an article on Cocoa with Love, the problem is usually solved in a better, deeper and more idiomatic way than most other alternative solutions.

That said, I don&#8217;t necessarily actually agree with him on everything. So let&#8217;s start out by tackling this section by section.


  Programmers, onlookers and pundits have criticised Objective-C for longer than Apple has been using it. If the criticisms were valid and pressing, most could actually be addressed without replacing Objective-C/Cocoa.


To be sure, because Objective-C looks and smells funny, it has its fair share of detractors. Every languages do, even those that are either widely beloved or neutral enough to not ruffle anyone&#8217;s feathers, but Objective-C probably has more than the average. When I address or mention Objective-C criticism, I do implicitly mean valid criticism; tempered by actual use, forged over time and by actual scars and wounds. Matt goes on to list a few of these and I&#8217;ll admit to wanting some, but most are criticisms that are requests for a broader API, or seem like checkbox features &#8212; &#8220;if you add this, then I&#8217;ll use your damn language&#8221;. Never build anything out of interest to silence those requests.

Matt homes in on my actual concerns:


  More relevant in the long term is the one feature that Objective-C can&#8217;t remove or fix: complaints about C itself, in particular C pointers. While code level compatibility with C is arguably Objective-C&#8217;s best feature, it is also the source of Objective-C&#8217;s most unpopular feature: the direct memory model.


Precisely. Many moons ago, Daniel Jalkut proclaimed that &#8220;C is the new Assembly&#8221;, and whether or not you agree, there&#8217;s a deeper meaning to that. Even if you avoid inline assembler in C, you can effectively poke every bit in your memory space at your leisure. You can&#8217;t build a robust abstraction over that as long as anyone can dip down into those bits. You can&#8217;t promise anything. Most of the time, this is not a huge issue, and most of the time, there are other abstraction layers (the OS, cosmic radiation) that could fuck something up just as badly. But that doesn&#8217;t mean that maintaining this layer is warranted in every case.


  This means that whether or not Apple deprecate their direct memory model APIs (they probably won&#8217;t), and whether or not they introduce a new language, Apple will introduce an official application environment with an abstracted memory model.


I would hope so.


  It is possible to create a memory model abstraction without using a genuine virtual machine [..] but a virtual machine allows you to lock down the abstraction so that there aren&#8217;t any accidental loop holes. You no longer need pointers. You can&#8217;t simply overwrite memory. You can&#8217;t overrun arrays. You can&#8217;t overflow buffers.


Ding ding ding. Life&#8217;s full of leaky abstractions, but C and C++ GCs have always been leakier. You have the pleasure of saying &#8220;now everything is managed automatically, where by everything I mean the things I and library providers opt into&#8221;. I know some C++ but I stay out of it because its magic implicitness scares the shit out of me, and I skinned my knees on Perl. I don&#8217;t need to juggle my choice of GC, manual memory management and whichever scheme the current class seems to be using, like &#8220;smart pointers&#8221; for every program I write.

Ahem. So anyway, a VM is good. Capability-based security is a good model &#8212; if you can&#8217;t reach something that does X and you can&#8217;t magically assemble whatever you want, you can&#8217;t do X. To the extent that you can go scribbling over memory in a language running on a VM, it&#8217;s a limitation of the implementation of the VM.


  An important point to note is that the introduction of a virtual machine could preceed a new language.
  
  If Apple decided that fear of manual memory management was keeping good programmers away but wasn&#8217;t ready to actually transition to a new language in one leap, it would be possible to transition to the virtual machine first (and gain many of the memory abstraction advantages) while keeping the code-level changes relatively minor.


This is unfortunately where Matt loses me. (Quotes from his post cease here, but his post doesn&#8217;t &#8212; I again recommend that you read it in its entirety.) It&#8217;s not that it&#8217;s not a great idea &#8212; it is! It would be an immediate payoff and it&#8217;d smooth the transition.

Like I&#8217;ve said before, I just don&#8217;t believe that this leap can be taken with Objective-C, and Matt has already touched upon the reason why. Objective-C is a layer on top of C. It started out as a veneer and now is a slightly bulkier, Mexican Gulf-esque coating of modern object orientation. You know this spiel by now; Objective-C is a superset; C++ is a C variant. Objective-C can&#8217;t ruin any C that would have compiled, and so to successfully transition every Objective-C program, you must keep everything from C.

But let&#8217;s actually conjure up a new language; maybe what I guess a lot of people think I&#8217;m talking about when I say &#8220;xlang&#8221;. Let&#8217;s talk about Objective Dash, which is the proverbial Objective-C without the C. Let&#8217;s start off by imagining it at 100% source compatibility with Objective-C and being the host language for the virtual machine. Let&#8217;s work through some interesting proposed source code.

#include "foo.h"


Okay, so right off the bat, we hit includes (or imports). Rather, we hit an environment where this matters, where for every compilation unit &#8212; which is tech for &#8220;source file&#8221; &#8212; it has to read in the header files in order. Every time a symbol of any kind: a type, a function, a variable is referenced, it must have been predeclared. The compiler starts from scratch for every compilation unit and follows all these imports to be able to satisfy these demands and this leads to a long list of things that are declared.

Try right clicking in Xcode and running Preprocess. This expands and flattens every import and macro; if I create a Foundation command line tool using that Xcode template and do this, I get a 85662 line file which takes seconds to load into Xcode, and don&#8217;t even think about typing if you have Code Sense on.

But this is not fair and not even relevant. The compiler does that much more efficiently and will be able to reuse much of that metadata. You could argue that most VMs known to man use languages for which order of declaration doesn&#8217;t matter, but it doesn&#8217;t block you, necessarily, from doing such a VM. So this was an intentional red herring &#8212; not every design decision of C that would have been made differently today is a deep offense, crushing the hope of VM-hood. It goes against the very grain of VM-hood to construct one that works like this (they are most happy when they prepare a set of data that they can check against at will, which is the way many modern language compilers work), but it&#8217;s probably not impossible.

What is a problem is pointers, like Matt said. This is a profoundly interesting statement:

"xyzzy";


Which type is this data? In C, thanks to some syntactic sugar that you probably don&#8217;t appreciate as such, it&#8217;s a null-terminated char array. In early C, you had to declare arrays by a fixed length, so to avoid having to type char[4] abc = "abc";, you could type char *abc = "abc";, and thus is shown the unification of arrays and pointers.

But that&#8217;s still C-level stuff. Let&#8217;s move upwards to Objective Dash level. Let&#8217;s check in on our favorite pair; the opaque value type NSDecimal and the class wrapper and NSNumber descendent NSDecimalNumber. In Objective-C, a variable of each are referred to as NSDecimal and NSDecimalNumber *. In Objective Dash you&#8217;d use&#8230; what, exactly? NSDecimal and NSDecimalNumber? Mixing value types and class types in the same namespace is not a new or bold or impossible idea (that&#8217;s how everything else does it), but it does have more than a small impact on backward-compatibility. Let&#8217;s say you introduce a macro for cross-compilation:

#ifdef __OBJC__
#    define CLASSNAME(X)    X *
#elif __OBJDASH__
#    define CLASSNAME(X)    X
#endif


Now you have to go through your entire code base, but you can still keep just one. There&#8217;s more, though. What about error parameters? During the past several years, as Apple has continued modernizing Cocoa, they have deprecated initializers and other methods where something could go horribly wrong at runtime due to no fault of the programmer (warranting an exception in some languages but the delivery of an NSError object in Objective-C) that don&#8217;t provide a way to get at the error. They return the error by indirection: a brief example is NSDocument&#8217;s dataOfType:error:. The error parameter is an input parameter only in a weird sense &#8212; in the sense that you input a pointer (NSError **) to where you&#8217;d like for the error to end up if it happens.

Now what&#8217;ll Objective Dash do? Maybe it&#8217;ll invent actual output parameters and the ability to pass in references. Or maybe it&#8217;ll provide a special NSReturnedError class, where you&#8217;re expected to assign the error to a special property instead. This requires some longer macros to maintain same source compatibility.

The list of pointer fun goes on, though. Dive into NSArray, which has getObjects:range:. This is a method where you work out in advance how many objects you want to deal with and get them into a memory buffer (presumably to avoid the message-sending overhead and memory management in acquiring all of them one by one). The memory buffer is id *, a  pointer to the structure of every object &#8212; this doesn&#8217;t make sense without pointers and without being able to blit memory left and right. Objective Dash would probably rather have none of it. This means that you&#8217;ll have to rework everything that uses that to use another approach entirely. Now we&#8217;re starting to push serious overhead in maintaining separate methods.

It&#8217;s not even like getObjects:range: is alone. See NSData for two other methods related to much the same thing, only for actual byte data. NSString can provide and initialize with pointers to what would have to look very much like string data in some specific encoding. Tons of callbacks also use void * as generic pointers to &#8220;whatever data you&#8217;d please&#8221;. These methods are being replaced en masse with blocks where the context could probably be passed in through value capturing, but not all of them are, and it&#8217;s not going to happen overnight.

The NSCoder protocol, implemented for standard serialization since the very beginning, have several methods that work with void *, and you&#8217;d have to assume that that&#8217;s a wide net if anything. I&#8217;ve worked with plenty of platforms with toothless serialization schemes where everyone wrote their own and didn&#8217;t bother, but Cocoa&#8217;s is decent enough and widely adopted; if you&#8217;re in a property list on disk or you&#8217;re anything that wants to have an Interface Builder palette, you have to conform to NSCoder, and some of that code will use those methods.

And, lest we forget, this is only pointers. What about inline assembly? There&#8217;s plenty of code to stay compatible with that uses assembly, some where needed and maybe some where it isn&#8217;t, but that&#8217;s potential for breakage that requires skipping two steps up the abstraction layer ladder (depending on your opinion of C, of course). There&#8217;s a guarantee for bifurcation if I saw one.

I haven&#8217;t even touched a lot of the hairy stuff; I&#8217;m also assuming that Objective Dash will solve things like its own primitives in the backwards-compatible way, at least in the beginning. My point at the end of all this is that you can&#8217;t possibly just shove it in there and it&#8217;ll work. It will require non-trivial amounts of rejiggering, to the point where a project that could easily slip into this new shape would likely be a project that has very little to gain from going to a virtual machine; that does none of these dangerous things.

So that&#8217;s why, I guess, I&#8217;m convinced that xlang is coming. Apple&#8217;s running out of incremental steps towards this virtual machine. They can get there with Objective-C intact, but only in the trunk, with another, better suited language in the driver&#8217;s seat. I believe I speak for every Objective-C programmer when I say that lobotomizing the language directly until it&#8217;s able to drive itself will only make it a lot more variable to wrap your head around.

For this one, for this language, for this virtual machine, I think Apple actually needs to start fresh, or at least unrestricted by C.</div></summary>
  </entry>

  <entry>
    <title>Missing in Action</title>
    <link href="http://www.cringely.com/2010/07/missing-in-action/"/>
    <id>http://yoursite/article/?i=5dc2447ea6eb0c4858e03d4836892bb9</id>
    <updated>2010-07-16T22:38:52-07:00</updated>
    <author>
      <name>3859ab165ee315c48fb6f0b8090ca634</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Readers are reporting they can no longer buy an iPhone 4.  Supplies are sold-out, but even more telling the Apple stores can&#8217;t even predict when they&#8217;ll have product to sell.  This strongly suggests Apple has halted production and is going for a hardware fix.  Not surprisingly, this unavailability hasn&#8217;t been noted yet in the press but I&#8217;d expect it to be a major issue at today&#8217;s press conference in Cupertino as Steve Jobs attempts to explain his way out of the current PR fiasco.Update &#8212; The Apple event is over and all iPhone 4 users are getting free bumpers.&#160; But I stand by my story.&#160; Mrs. Cringely has a bumper and still finds her iPhone 4 almost unusable.&#160; Apple must be working on a true solution to these problems for future production.</div></summary>
  </entry>

  <entry>
    <title>World of Warcraft: Interface</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8660"/>
    <id>http://yoursite/article/?i=47e4511176cbb9ed927c366cab0b861f</id>
    <updated>2010-07-16T04:50:44-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">So I&#8217;m playing WoW again, and mucking around trying to remember all my old macros and get the interface just so.  Sometimes in my googling about I&#8217;ll come across images like this one:





Of course, the game doesn&#8217;t look like this until you get to the endgame, and I understand that not all classes turn into giant control panels, but it&#8217;s still an amazing thing to behold.  I can&#8217;t think of anything else in gaming that gets to be this complex.  Not X-com.  Not the number-crunchy sports management games. Not the turn-based war sims. No RTS game expects you to digest this much input and I&#8217;ve never seen this many buttons onscreen at once in any of them.  
There are probably games with more strategic depth, but in terms of interface density, WoW (and similar games) are playthings of tremendous complexity. </div></summary>
  </entry>

  <entry>
    <title>Temper</title>
    <link href="http://xkcd.com/767/"/>
    <id>http://yoursite/article/?i=a05b90a0d8901228a9979da982ac6bdf</id>
    <updated>2010-07-16T04:50:17-07:00</updated>
    <author>
      <name>http://xkcd.com/767/</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"></div></summary>
  </entry>

  <entry>
    <title>Spoiler Warning Season 222: President Ev</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8657"/>
    <id>http://yoursite/article/?i=5f0c3170c0174c95324fe70590a356bf</id>
    <updated>2010-07-15T15:40:17-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The story so far:
A water purifier that has no reason to exist was overloaded by a man with laughable motivations and released radiation it shouldn&#8217;t have, thus killing Colonel Autumn, who had no reason to be there.  Then later we got through a village of children who fdso gah frrzlmpr blaaa huygggnl asdf;lj so we could enter vault 87 and recover a GECK, a device which would be better put to use in virtually any possible manner besides the one for which we had acquired it.  Then Colonel Autumn, who shouldn&#8217;t be alive, captured us with a flash grenade that shouldn&#8217;t have worked. 






The true madness is that the plot is this mangled, despite the repeated railroading and plot hacks used by the writers. I can understand that a freeform or branching story can get pretty complex and possibly tangled.  As someone who has run D&#038;D games I know that no plan survives contact with the enemy. (Your players.) And I&#8217;ve had some gaps in my stories.  But When the main plot is set in stone and the player has no power over it, there is no excuse for not simply writing something that makes sense.  In most cases I&#8217;d pummel a game over things like pacing, characterization, maintaining tension and interest, and all of those other challenges that good writers must overcome.  But here we&#8217;re talking about basic coherence. We&#8217;re talking about simply relaying a fixed set of events that don&#8217;t contradict one another. For example: Don&#8217;t have multiple characters come back from the dead without offering anything in the way of acknowledgment or explanation. </div></summary>
  </entry>

  <entry>
    <title>I3D 2011</title>
    <link href="http://www.realtimerendering.com/blog/i3d-2011/"/>
    <id>http://yoursite/article/?i=487bfdcad7f51df15e4d0336a94f62ab</id>
    <updated>2010-07-15T15:40:11-07:00</updated>
    <author>
      <name>c521bbac7721f9d710c234e15e434b7b</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The website for I3D 2011 is now up, including the time/place and CFP. I3D will be in San Francisco next year, from February 18-20th. I3D probably has a higher percentage of graphics papers relevant to games than any other conference; this year five of the papers described techniques already in use in games (including high-profile titles like Batman: Arkham Asylum and Civilization 5), and many of the other papers were also highly relevant. Unfortunately, very few game developers attend; I hope next year&#8217;s location (San Francisco is home to a large number of developers) will help.
I3D is a great small conference to publish real-time rendering papers. One advantage it has for authors over Eurographics conferences like EGSR, and co-sponsored conferences like HPG and SCA (in &#8220;Europe&#8221; years) is that it is not subject to Eurographics&#8217; monumentally stupid &#8220;authors can&#8217;t post copies of their papers for a year after the conference&#8221; policy. This policy, of course, hurts the chance of your paper being cited by making it harder for people to read it &#8211; brilliant! Hopefully EG will see the error of its ways soon &#8211; until then, you are better off sending your papers to non-EG conferences like I3D.</div></summary>
  </entry>

  <entry>
    <title>Receptivity</title>
    <link href="http://waffle.wootest.net/2010/07/15/receptivity/"/>
    <id>http://yoursite/article/?i=051aa82c070c004d8fee0a82c22000a2</id>
    <updated>2010-07-15T15:39:34-07:00</updated>
    <author>
      <name>ad1fdd382e9d222487df79574594ac81</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">So, the iPhone 4 again. I&#8217;ve finally found an article with reasonably published, collected and explained data: AntennaSys&#8217; one. The only thing I&#8217;m missing in scientific rigor is testing on multiple locations with varying signal quality.

There are two parts that jump out at you when you see the conclusion:


The antenna really is better than the 3G S antenna.
The antenna&#8217;s performance really does drop.


That&#8217;s an interesting combination.

There&#8217;s much evidence that an antenna that was a little bit better than the 3G S, but consistently so without any death grips, would be better received. Having an antenna that you can &#8220;short&#8221; that easy is annoying on its own; having a good antenna that could be great but creeps down that much by such a simple action gets under people&#8217;s skin.

And let&#8217;s not forget about the angle of forgoing the issue completely for the sake of a cool solution. This is what people who are very loud about not liking Apple are very loud about ascribing them to do. The cool solution is vindicated a bit by actually being a marked improvement, but still.

I have no idea what happens tomorrow, but I hope that the solution isn&#8217;t just free Bumpers. I&#8217;m actually planning on getting one as soon as I decide what looks best (the first case I&#8217;ve had of any kind for any iPhone or iPod), but it feels second-rate to require such a case and you can&#8217;t use the Dock with the Bumper on.</div></summary>
  </entry>

  <entry>
    <title>The angry emo D rant</title>
    <link href="http://h3.gd/devlog/?p=22"/>
    <id>http://yoursite/article/?i=589a6f9a16dcd3e6efb46bf21d1c2d15</id>
    <updated>2010-07-15T01:05:31-07:00</updated>
    <author>
      <name>1aad0225b33c97aab760a11b22098ace</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Disclaimer: This is a personal opinion of a long-time D 1.0 user. Every time I get asked about my experiences with D, it deranges into this. I thought I&#8217;d write it down and not re-type each time someone tosses the question. It may not reflect the actual state of D and certainly not the state by which it&#8217;s being marketed. If you&#8217;re positively emotional about D, you probably don&#8217;t want to read this. You might read http://h3.gd/devlog/?p=16 for a lighter (and older) version instead.
I knew quite a bit of C++ when I started learning D. You can never really get to know the beast completely, but I&#8217;d been around 4 years into it, feeling rather comfortable about it. Not to the point of being able to read Boost code, but enough for my daily needs ;) I also took up some Python before starting on D and knew a bit of x86 Asm.
Yet even with these traits, learning D was a long process &#8211; there are (still) no tutorials and articles to teach you some of the finer points of the language, traps and costs hidden therein. Back at the time, D was still evolving (I jumped aboard at around D 0.68) so the process involved going through the specification a few times, experimenting, reporting bugs and following the newsgroups.
After 6 or so years of using it, I&#8217;ve grown rather proficient with D and I think it allows me to be more productive than C++ ever could. Still, there are some traps and issues which made that difficult to achieve. The D language was meant to be easy to implement and the DMD compiler was supposed to be clearly designed and implemented. But as D matured, the growth happened through accretion and some concepts were glued on without much care to how they might interact at finer levels in the language as a theoretical entity as well as in the implementation.
You get local type inference which gets utterly confused with &#8216;properties&#8217;. You get a GC which is non-generational, non-concurrent and global, along with C-style (non-discriminated) unions. You get .di file generation, which is supposed to automatically provide something resembling C headers, and the feature is outright &#8216;borken&#8217;. There are template mixins, which are supposed to work just like copy-paste, but are far from it (yea, you can use &#8217;string mixins&#8217; but they&#8217;re just a huge and buggy hack anyway). Another example &#8211; the compiler will usually spectacularly poo itself when presented with cyclic imports. Not to say these are broken per se, but it might just happen that something explodes in a weird way and you get a cryptic error you can&#8217;t really fix, which would not occur without cyclic dependencies between modules.
And even if the bug gets fixed, when working on a larger project, you get to experience how poorly implemented the compilation model is &#8211; you can pass multiple .d files to the compiler and it will emit some symbols just once &#8211; e.g. template instantiations and initializers. But it will output multiple object files, and it&#8217;s not specified in which files particular symbols will land. Good luck performing incremental builds with that! And this once again leads me to D&#8217;s biggest issue &#8211; the toolchain. I needed to create my own build tool which does its best to incrementally compile projects. Walter might claim that DMD is fast, but it&#8217;s not exactly blazing when you confront it with a few hundred thousand lines of code. With C/C++, you&#8217;d split your source into .c and .h files, which mean that a localized change of a .c file only requires the compilation of a single unit. Take an incremental linker as well, and C++ compiles faster than D. With D you often have the situation of having to recompile everything upon the slightest change. The DMD frontend also takes an interesing approach to memory management &#8211; it&#8217;s based around a GC which is&#8230; disabled due to some bugs.
Another toolchain-related issue: need to profile some code written in C/C++? Just fire up VTune, CodeAnalyst, (Very) Sleepy or the Visual Studio Team Edition profiler. D on Windows? Sadly, it uses an archaic debug info format which goes into PE &#8211; the CodeView. And that in turn meant that I needed to write my own profiler. The situation on Linux is probably better, since DMD on Linux can finally generate proper debug info, since about&#8230; two months ago :P And yea, there&#8217;s built-in code-instrumentation via -profile, but I&#8217;m after a statistical profiler, not one with reduces my soft real-time app to a turtle.
On Linux you&#8217;re also lucky enough to be able to use the GCC linker, however on Windows you get to work with OPTLINK. It&#8217;s fast! It&#8217;s tiny! It&#8217;s 20 years old and will crash in your face when you feed it too many symbols. Its crash-rate was reduced slightly when Walter disabled the emission of WKEXT symbols (weak extern in OMF-parlance) from DMD, but I still need to compile parts of my projects without debug info and contract checking. I also needed to add a custom compiler pragma which suppresses symbol generation from code used only at compile-time.
But yeah, it&#8217;s not all bad &#8211; you get to use some handy meta-programming features, such as &#8217;static if&#8217;, tuples, &#8217;static&#8217; foreach (loops unrolled explicitly at compile-time), compile-time function execution, as well as useful runtime constructs. Fast delegates, foreach/opApply, guaranteed initialization, handy SSE-optimized array ops, RTTI which sucks less than C++&#8217;s. There&#8217;s a layer of pretty tasty sugar on top, such as local type inference, delegate literals / lambdas, class references, lack of &#8216;::&#8217; and &#8216;-&gt;&#8217;, built-in arrays (if you don&#8217;t care about the speed of their allocation) and a few others. In the end, these make me pretty productive and comfortable, but learning how to use the language and its tools optimally has been a painful experience. It would certainly be easier if the creators weren&#8217;t so busy flaming the Tango library (or just posting FUD and not bothering to correct it) and ignoring the (sadly, very small) community.
Users normally aren&#8217;t better, though. They try the language and expect everything to be rock solid &#8211; this has been since the beginning of D. So they play with it, decide it&#8217;s not ready yet and leave for other pastures. There are a few of who have been hanging around for about as long as D exists. Some of us have tried contributing code to the standard library, which turned out impossible. Then Tango was born as an alternative standard lib. There were discussions of it becoming the standard as it de-facto is within the 1.0 community, but they were later forgotten by the upper management. And now the Tango project is the black sheep as its contributors have grown generally tired of interacting with &#8216;the creators of D.&#8217;
Ah yea, and now there&#8217;s the &#8220;D 2.0&#8243; thing which is more confused than ever. Does it want to be a better C, a better Java, a more contrived Boost? I can&#8217;t tell any more.
Someone please fork D 1.0 to hell. I&#8217;m already using a modified compiler ( no built-in Thread-Local Storage in DMD1?! Despite it only requiring changes in about 3 lines of the source code? WTF. ).</div></summary>
  </entry>

  <entry>
    <title>VDrift 2010-06-30 Release, Linux source,</title>
    <link href="http://vdrift.net/article.php?story=20100714200428239"/>
    <id>http://yoursite/article/?i=c3a97a875d6afe5c2c00e685843540a0</id>
    <updated>2010-07-15T01:05:29-07:00</updated>
    <author>
      <name>http://vdrift.net/article.php?story=20100714200428</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">VDrift 2010-06-30 has been released for Windows and Linux (source). Download links are available on the main http://vdr...</div></summary>
  </entry>

  <entry>
    <title>Turn your workplace into an RPG</title>
    <link href="http://dev.koonsolo.com/222/turn-your-workplace-into-an-rpg/"/>
    <id>http://yoursite/article/?i=6182785a522d43f79677a45cf2ea8af5</id>
    <updated>2010-07-14T14:36:02-07:00</updated>
    <author>
      <name>16e29ca8ceb45941c987cbdc74cfc19e</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Have you heard of EpicWin? It&#8217;s an application for the iPhone that turns your todo list into a real life RPG. For every task you complete, you gain XP. This is a brilliant concept! It turns your boring todo list into something fun. Just watch the video below to get the idea.


I was just thinking: If you can do this for your todo list, why not do it for your bug tracking system? And the more I thought about it, the more it made sense. Every decent developer team uses a bugtracker (such as Bugzilla or Trac): a tester opens a new bug, a developer fixes it, the tester checks if it&#8217;s fixed and closes the bug&#8230; BORING!
What if a tester (aka Bug Summoner) searches for bugs, and when he finds one, summons a new Bug into the RPG bugtracker system. The developer (aka Bug Slayer) checks if it&#8217;s a valid bug. And if it is, he sends back XP to the Bug Summoner (because he found a valid bug). The Bug Slayer then kills that nasty bug. The Bug Summoner checks if it&#8217;s really dead, and if it is, the Bug Slayer receives XP. If it&#8217;s not dead, the Bug Summoner revives the bug and someone has to slay it properly.
You can even take this further and let your whole workplace run on an RPG system! Lots of employees procrastinate by playing games on Facebook during work hours. So why not let them play the Workplace RPG? Productivity is aligned with RPG goals. Gaining an XP level can give you a better company car, an extra vacation day, a raise, etc. Instead of hating Monday&#8217;s, you can now look forward to receiving those last eXperience Points to increase your skills or level up, or becoming the company&#8217;s &#8220;Slayer of the month&#8221;.
For managers or company owners this also makes sense. Having clear metrics on how well each individual is performing is priceless. Of course you will have to align the RPG rules with the company business goals.
After a quick search on Google I noticed this other article with the same general idea. So am I just dreaming or could this actually work in an IT workplace? And would you want to work in such an environment?
Follow me on twitter
 </div></summary>
  </entry>

  <entry>
    <title>Shamus Plays: Champions Online</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8649"/>
    <id>http://yoursite/article/?i=4cafabbd110e43220bad302e7dbcb44a</id>
    <updated>2010-07-14T14:35:51-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">This will no doubt disappoint more than a few people, but my next Let&#8217;s Play series is actually just my last one.  Go read it, if you like.  Or, stick around and read some ramblings about why we&#8217;re doing a re-run and what I&#8217;m working on next.
The thing is, these things take time to write. Lulzy&#8217;s tale clocked in at ~50,000 words, which is just long enough to count as a novel. Add in the fact that each entry required several hours of gameplay and then the time it takes to add in all the screenshots, and we&#8217;re talking about a non-trivial amount of work.  
I&#8217;ve spent the last couple of months casting about, looking for a new MMO.  Trek Online is fantastic in terms of setting. (True science fact: It is impossible for there to be too much Trek satire in the universe.  If you were to go back in time and replace everything ever written with Star Trek satire, then history itself would be full of plot holes.  Actually, that sounds like a pretty standard setup for a Trek episode.) I wrote  a few pages of stuff for it, but the game itself had almost nothing in the way of story.  Most missions were just generic fill-in-the-blank auto-generated filler.  My material was almost completely divorced from the game itself and was basically just fan fiction.  That&#8217;s not a horrible idea, but it&#8217;s not what I want for this series.
I tried a couple of other games, but none of them really grabbed me. APB was so monotonous and devoid of fun that I don&#8217;t think I could bring myself to play it for any length of time, no matter how much amusement you might get out of it.  D&#038;D Online looked possible, but I didn&#8217;t want to go buying little bits and pieces of content &#224; la carte, looking for stuff that would be fun to cover. 
So we got down to the end of Lord of the Rings and I didn&#8217;t have a new series ready. I didn&#8217;t even have a game lined up.  I suggested we run a  condensed version of my Champs series instead of just going on hiatus, and that&#8217;s how we got where we are now. Most Escapist readers haven&#8217;t seen it, so it will be new to them and will keep my spot warm while I come up with new content.
I&#8217;ll be shortening the series a bit by combining some of the shorter entries and cutting some of the longer digressions on gameplay.  
I&#8217;m playing WoW again and noodling around with ideas.  Well, actually I&#8217;m just leveling a couple of characters.  I emailed Blizzard twice trying to re-activate my old account.  (Which I can no longer log into since to migration of WoW accounts to Battle.net accounts.) After a week they finally got around to sending me an auto-generated email saying, &#8220;please tell us again you need help or we&#8217;ll just pretend the whole thing is resolved.&#8221; And no that is not a joke. So, I punished their ineptitude and apathy by purchasing the game again.  I&#8217;m hoping someday they will all be crushed to death under a mountain of All Our Money.
But now I&#8217;m on a brand new account and cut off from all of my old contacts and characters.  I forgot what a hassle it is to try and play this game fresh like this. No bags, so you&#8217;re constantly starved for storage, which makes it hard to earn money, which is bad because you&#8217;re flat broke, which makes it hard to get the upgrades you need, which impairs your leveling, etc.  
I rolled on Kirin Tor (Alliance) simply because that&#8217;s where I lived last time around.  I&#8217;m probably going to find another roleplay style server and roll some Horde characters as well.  </div></summary>
  </entry>

  <entry>
    <title>Slouching Toward Sunnyvale</title>
    <link href="http://www.cringely.com/2010/07/slouching-toward-sunnyvale/"/>
    <id>http://yoursite/article/?i=a5ad4c520c5dd515972723c93dcf2d53</id>
    <updated>2010-07-14T14:35:15-07:00</updated>
    <author>
      <name>3859ab165ee315c48fb6f0b8090ca634</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">It&#8217;s been a while since I&#8217;ve written about Cringely&#8217;s (NOT in Silicon Valley) Startup Tour, but that&#8217;s not because we weren&#8217;t working hard on the project.&#160; In fact the effort of cutting 400+ companies down to 24, then setting-up a tour to visit them all, has been far harder than lazy-old-me ever expected it to be.&#160; But here we are at last, ready to go.&#160; My next post and many after will be from the Tour while this one will be about the Tour.Look at our pimped-out RV! Not content to be incognito as we&#8217;re broken-down on the side of the road, we decided to at least evoke sympathy by leaning into the whole experience and wrapping the RV in a huge vinyl billboard.&#160; This wrapping thing, while it took twice as long as I expected, was both fascinating and satisfying.&#160; I wish I&#8217;d done this (the wrapping) a couple years ago, if only to cover the garish mid-90&#8242;s graphics that swarm over our old Winnebago.&#160; It wasn&#8217;t inexpensive, but on a per-eyeball basis may be the cheapest advertising of all as we drive our 10,317 miles around America.Our job this summer is to visit interesting tech startups, of course, but we&#8217;ll be doing more than that.&#160; We&#8217;ll also be meeting with readers as we wander the country.&#160; Look for an updated schedule here and also at http://startups.cringely.com to see when we&#8217;ll be near you.&#160; Then come out to visit us in a WalMart parking lot or maybe at the local startup and Mrs. Cringely will let you enjoy her muffins.&#160; The price of Mrs. Cringely&#8217;s muffins is a small unwrapped toy which my kids will be distributing at local hospitals and homeless shelters as we travel through.There&#8217;s a lesson here (we hope) that not all kids get to ride around the country making TV shows.An adventure like this one doesn&#8217;t happen without a lot of support.&#160; It has needed the support of readers to nominate and vote for companies.&#160; It has needed the Kauffman Foundation, which was there from the very beginning to help in every possible way.&#160; More recently we&#8217;ve picked-up Research In Motion, makers of Blackberry mobile phones, as our single corporate sponsor.This Startup Tour will be an all-Blackberry adventure.We&#8217;ll be posting videos from the road starting next week, but first I have to gas-up the bus.</div></summary>
  </entry>

  <entry>
    <title>Google News Redesign is Horrible</title>
    <link href="http://feedproxy.google.com/~r/yalb/~3/xqUfTRSrxu4/"/>
    <id>http://yoursite/article/?i=02401f7fa70e3eb4bb1ed1390c039330</id>
    <updated>2010-07-14T14:35:08-07:00</updated>
    <author>
      <name>cddadc25d592fa70e2792790cb3b86d5</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">So, what do you think of the Google News redesign?
You like it???&#160; Tell me where you live so I can come hit you on the head a couple of times with a tack hammer&#8230;we&#8217;ll see if that jars anything loose.&#160; All kidding aside (no I don&#8217;t want to hit anyone on the head with a tack hammer), there is plenty of negative feedback on the redesign.&#160; If you&#8217;re not sure what changed, the original Google News Blog announcement is here (with screenshots) and you can also see it on your own computer (for now&#8230;they may roll it out to other countries besides the US soon so this may not work perpetually) here is how to check:

Login to your google account.&#160; Go to http://google.com/news
Now visit this link in a new tab:&#160; http://www.google.ca/news

The difference initially looks subtle but once you start scrolling it blares like a fog horn in your head.&#160; I&#8217;m not the only one who thinks the redesign sucks.&#160; The original announcement is filled with negative comments about the redesign.&#160; Look on the right hand column of the announcement to see related posts and you&#8217;ll quickly see there are plenty of people who despise this &#8216;improvement&#8217;.&#160; Even looking in the google news general forum results in the most popular threads being discussions about how bad the redesign actually is.
People have even begun to label this redesign as the &#8220;New Coke&#8221; of Google products.&#160; I&#8217;m thinking they may be right.&#160; Don&#8217;t remember the New Coke snafu?
How Can We Tell Google Their Redesign Sucks?
Most people have been going to the support area for Google news.&#160;  In my opinion, this is ABSOLUTELY the wrong area.&#160; Instead, head over to  the blog announcement page and you&#8217;ll see a link to the Help  Center.&#160; Once there, on the top right hand corner of the  announcement is a link to comments. As of the writing of this  article there were about 15 comments on this change.
It is my  theory that Google is only paying attention to this comments section and  not to the thousands upon thousands of posts taking place inside their  support forums.&#160; Afterall, is complaining that the redesign sucks really  a support issue?&#160; Make your voice known by visiting the Help  Center and dropping a comment via the comments link there.&#160;  Clicking this link opens up a sidewiki comment system.&#160; Make sure you  are signed into your google account when leaving a comment.
So what are the problems with Google News?
Tailored News &#8211; Google said the new redesign is &#8220;tailored to your interests&#8221; aka &#8220;news for you&#8221;.&#160; Here&#8217;s the thing&#8230;I don&#8217;t want news tailored to my interests.&#160; I want unedited and unfiltered news.&#160; The reason I liked Google News in the first place was because I didn&#8217;t have paid sponsors results jockying to the front of the page.&#160; I could read liberal and conservative news side by side.&#160; I could get one side of the story and the other side of the story.
Now, I get only the side that interests me.&#160; This doesn&#8217;t make for a well informed, rounded individual.&#160; In other words, I want to see EVERYTHING and decide what to read&#8230;I don&#8217;t want that taken away from me at the beginning.
Scrolling &#8211; Congratulations Google!&#160; It now takes me 6 pages of scrolling to see the same amount of news I used to be able to read in 2.&#160; Boy I would have loved to be a fly in the wall on the meeting where the &#8216;stream&#8217; concept was discussed&#8230;a big, monsterous fly so that I could have fly puked right on whoever thought it was a good idea.
Google news is now a facebook stream of news.&#160; I don&#8217;t want that.&#160; If I wanted a facebook stream of news, I&#8217;d create a facebook account and friend all the news agencies out there and wait for the news to stream to me.
It now takes me three to four times longer to read news than it did in the past.&#160; I&#8217;m also getting a poor sample of the news.&#160; I&#8217;m missing tons of articles I got in the past and headlines don&#8217;t pop like they used to.&#160; It&#8217;s also HARDER to read when you&#8217;re scrolling 5000 lines of text.&#160; For this reason alone the redesign is 20lbs of crap poured into a 10lb bag.
Local News &#8211; Local news went from having its own section to having 3 headlines.&#160; Thanks for reducing my local news Google&#8230;I really appreciate that.&#160; Good to know that I don&#8217;t need to be reading what&#8217;s happening right outside my window.
Fast Flip Reduction &#8211; Remember when fast flip was 3-4 wide across the bottom of your google news page?&#160; Now it&#8217;s 1 article on the small right hand column.&#160; WORTHLESS.&#160; And of course, there is no way to get rid of it from your google news page.
Spotlight &#8211; What the heck is this section for?&#160; What do these articles have in them that allows them to have a spotlight shined on them?&#160; Do publications pay Google to be included in this section?&#160; Why can&#8217;t I remove this section if I want to?
Most Popular - These articles are the most popular according to whom?&#160; Am I just supposed to trust Google that they are the most popular ones out there?&#160; Do publications pay Google to be included on this section?&#160; Why can&#8217;t I remove it?
A good article that includes many of the reasons I discussed above can be found here.
The Squeekiest Wheel?? Alternatives??
So, if we complain en masse, will Google listen?&#160; Does the squeekiest wheel get the most oil?&#160; I hope so.
Until then, I won&#8217;t be using Google News. A suitable and tolerable substitution can be found at Ask.com&#8230;for those of you saying &#8220;Try Bing!&#8221; I did and it sucks.&#160; Ask.com&#8217;s News Page is simple and doesn&#8217;t require me to scroll 40 times just to read news.&#160; Thanks for keeping it simple Ask!&#160; You&#8217;ve got a new supporter!
What do you think of the new google news?&#160; Please let me know with a comment below.&#160; The redesign hasn&#8217;t been rolled out in all areas yet so you may not see it in your location&#8230;however, be warned that it is probably coming.&#160; Hopefully, Google will realize this move is the New Coke Snafu and backtrack to their original design&#8230;not because the features they want to implement suck, but because when implementing them, they made reading the news MUCH harder than it should be.


Related posts:Hate KDE4? Ignorance Is Probably the Culprit Let&#8217;s bust some myths today because a majority of KDE...

Related posts brought to you by Yet Another Related Posts Plugin.Google News Redesign is Horrible originally appeared on Yet Another Linux Blog on July 14, 2010.


</div></summary>
  </entry>

  <entry>
    <title>Convergent evolution?</title>
    <link href="http://freegamer.blogspot.com/2010/07/convergent-evolution.html"/>
    <id>http://yoursite/article/?i=95b8c4c4a6e345c80568141f617266ec</id>
    <updated>2010-07-14T04:35:39-07:00</updated>
    <author>
      <name>615b471b69e2a254b4b7933e0f566b3d</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Today we have a small biology lesson ;)
Have a look at this screenshot:

A nice warehouse


TeamFortress2, right? Well WRONG ;) It is actually a screenshot from one of the maps from the upcoming War&#167;ow 0.55 release!

War&#167;ow is a open-source game based on the updated Quake2 engine QFusion, and has already seen some quite successful previous releases. They focus on a fast, e-sports style game play and their general art direction is a pretty nice cell-shaded comic world.

Lately their their style has been for sure party influenced by TeamFortress2 however, which at least in my opinion is not a bad thing :) For a whole bunch of other screenshots and an update on what else you can expect from the new version, check out their newest blog post here. Overall there will be some pretty nice improvements, and probably a significant performance increase with VBO integration into the engine.

But maybe most interestingly, they will also include a new game play mode, Capture the Flag: Tactics. And guess what? It will be a class based team CTF, with turrets and ammo dispensers. Sounds familiar right? :p

Say Hello to Mr. Turret

Sadly I have to mention though that the art content of War&#167;ow is completely unfree, and its development team shows a general lack of interest in the idea of FOSS... Yes the engine source code is available, but probably only because it is GPL and therefore has to be.
Second lesson for today, kids: GPL is good, mkay?</div></summary>
  </entry>

  <entry>
    <title>Green Flash</title>
    <link href="http://xkcd.com/766/"/>
    <id>http://yoursite/article/?i=a6dbabcaa065b6639910456d2cc47fda</id>
    <updated>2010-07-13T22:16:49-07:00</updated>
    <author>
      <name>http://xkcd.com/766/</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"></div></summary>
  </entry>

  <entry>
    <title>Fibers: Coroutines in Finch</title>
    <link href="http://journal.stuffwithstuff.com/2010/07/13/fibers-coroutines-in-finch/"/>
    <id>http://yoursite/article/?i=05a0693ddb2438db2cfff0b5b93d6657</id>
    <updated>2010-07-13T14:38:55-07:00</updated>
    <author>
      <name>a514cb77eede41d51567374ddacb73da</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">With this surprisingly straightforward commit, I&#8217;ve accomplished something I&#8217;ve wanted to do for a long time: I&#8217;ve implemented coroutines in a programming language. I call them fibers in Finch, mainly for brevity, but the idea is the same. Since I think coroutines are both really cool and not very well known, I thought it would [...]</div></summary>
  </entry>

  <entry>
    <title>Stolen Pixels #211: This is Not Funny</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8643"/>
    <id>http://yoursite/article/?i=7f2900d42be14802e882f829bdb05414</id>
    <updated>2010-07-13T14:38:44-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">My two great tragedies: Steam working, and not being able to grow a mustache. </div></summary>
  </entry>

  <entry>
    <title>Spoiler Warning Season 221: Guy Fawkes D</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8645"/>
    <id>http://yoursite/article/?i=f12b697cfd607501440e4631f8806078</id>
    <updated>2010-07-13T14:38:44-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Every week we sit down to record this show and I think, &#8220;Dangit, I&#8217;m out of ideas. I have no idea what else I can say about this game.&#8221;  Then when we&#8217;re done I feel frustrated because I feel like there was so much to say I couldn&#8217;t really fit it all in.
But next week.  Next week I&#8217;m totally out of things to say.  For sure.






And for comparison, here is the art style of the original supermutants:




</div></summary>
  </entry>

  <entry>
    <title>SIGGRAPH 2010 Game Content Roundup</title>
    <link href="http://www.realtimerendering.com/blog/siggraph-2010-game-content-roundup/"/>
    <id>http://yoursite/article/?i=c2ad014e086e7c21da4f482176a2bd11</id>
    <updated>2010-07-13T14:38:39-07:00</updated>
    <author>
      <name>c521bbac7721f9d710c234e15e434b7b</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">With less than two weeks until the conference, here&#8217;s my final pre-SIGGRAPH roundup of all the game development and real-time rendering content. This is to either to help convince people who are still on the fence about attending (unlikely at this late date) or to help people who are trying to decide which sessions to go to (more likely). If you won&#8217;t be able to attend SIGGRAPH this year, this might at least help you figure out which slides, videos, and papers to hunt for after the conference.
First of all, the SIGGRAPH online scheduler is invaluable for helping to sort out all the overlapping sessions (even if you just &#8220;download&#8221; the results into Eric&#8217;s lower-tech version). The iPhone app may show up before the conference, but given the vagaries of iTunes app store approval, I wouldn&#8217;t hold my breath.
The second resource is the Games Focus page, which summarizes the relevant content for game developers in one handy place. It makes a good starting point for building your schedule; the rest of this post goes into additional detail.
My previous posts about the panels and the talks, and several posts about the courses go into more detail on the content available in these programs.
Exhibitor Tech Talks are sponsored talks by various vendors, and are often quite good. Although the Games Focus page links to the Exhibitor Tech Talk page, for some reason that page has is no information about the AMD and NVIDIA tech talks (the Intel talk on Inspecting Complex Graphics Scenes in a Direct X Pipeline, about their Graphics Performance Analyzer tool, could be interesting). NVIDIA does have all the details on their tech talks at their SIGGRAPH 2010 page; the ones on OpenGL 4.0 for 2010, Parallel Nsight: GPU Computing and Graphics Development in Visual Studio, and Rapid GPU Ray Tracing Development with NVIDIA OptiX look particularly relevant. AMD has no such information available anywhere: FAIL.
One program not mentioned in the Games Focus page is a new one for this year: SIGGRAPH Dailies! where artists show a specific piece of artwork (animation, cutscene sequence, model, lighting setup, etc.) and discuss it for two minutes. This is a great program, giving artists a unique place to showcase the many bits of excellence that go into any good film or game. Although no game pieces got in this year, the show order includes great work from films such as Toy Story 3, Tangled, Percy Jackson, A Christmas Carol, The Princess and The Frog, Ratatouille, and Up. The show is repeated on Tuesday and Wednesday overlapping the Electronic Theater (which also should not be missed; note that it is shown on Monday evening as well).
One of my favorite things about SIGGRAPH is the opportunity for film and game people to talk to each other. As the Game-Film Synergy Chair, my primary responsibility was to promote content of interest to both. This year there are four such courses (two of which I am organizing and speaking in myself): Global Illumination Across Industries, Color Enhancement and Rendering in Film and Game Production, Physically Based Shading Models in Film and Game Production, and Beyond Programmable Shading I &amp; II.
Besides the content specifically designed to appeal to both industries, a lot of the &#8220;pure film&#8221; content is also interesting to game developers. The Games Focus page describes one example (the precomputed SH occlusion used in Avatar), and hints at a lot more. But which?
My picks for &#8220;film production content most likely to be relevant to game developers&#8221;: the course Importance Sampling for Production Rendering, the talk sessions Avatar in Depth, Rendering Intangibles, All About Avatar, and Pipelines and Asset Management, the CAF production sessions Alice in Wonderland: Down the Rabbit Hole, Animation Blockbuster Breakdown, Iron Man 2: Bringing in the &#8220;Big Gun&#8221;, Making &#8220;Avatar&#8221;, The Making of TRON: LEGACY, and The Visual Style of How To Train Your Dragon, and the technical papers PantaRay: Fast Ray-Traced Occlusion Caching, An Artist-Friendly Hair Shading System, and Smoothed Local Histogram Filters. (unlike much of the other film production content, paper presentation videos are always recorded, so if a paper presentation conflicts with something else you can safely skip it).
Interesting, but more forward-looking film production stuff (volumetric effects and simulations that aren&#8217;t feasible for games now but might be in future): the course Volumetric Methods in Visual Effects, the talk sessions Elemental Training 101, Volumes and Precipitation, Simulation in Production, and Blowing $h!t Up, and the CAF production session The Last Airbender: Harnessing the Elements: Earth, Air, Water, and Fire.
Speaking of forward-looking content, SIGGRAPH papers written by academics (as opposed to film professionals) tend to fall in this category (in the best case; many of them are dead ends). I haven&#8217;t had time to look at the huge list of research papers in detail; I highly recommend attending the Technical Papers Fast-Forward to see which papers are worth paying closer attention to (it&#8217;s also pretty entertaining).
Some other random SIGGRAPH bits:

Posters are of very mixed quality (they have the lowest acceptance bar of any SIGGRAPH content) but quickly skimming them doesn&#8217;t take much time, and there is sometimes good stuff there. During lunchtime on Tuesday and Wednesday, the poster authors are available to discuss their work, so if you see anything interesting you might want to come back then and ask some questions.
The Studio includes several workshops and presentations of interest, particularly for artists.
The Research Challenge has an interesting interactive haunted house concept (Virtual Flashlight for Real-Time Scene Illumination and Discovery) presented by the Square Enix Research and Development Division.
The Geek Bar is a good place to relax and watch streaming video of the various SIGGRAPH programs.
The SIGGRAPH Reception, the Chapters Party, and various other social events throughout the week are great opportunities to meet, network, and talk graphics with lots of interesting and talented people from outside your regular circle of colleagues.

I will conclude with the list of game studios presenting at SIGGRAPH this year: Activision Studio Central, Avalanche  Software, Bizarre Creations, Black Rock Studio, Bungie, Crytek, DICE, Disney Interactive Research, EDEN GAMES, Fantasy Lab, Gearbox, LucasArts, Naughty Dog, Quel Solaar, tri-Ace, SCE Santa Monica Studio, Square Enix R&amp;D, Uber Entertainment, Ubisoft Montreal,  United Front Games, Valve, and Volition. I hope for an even longer list in 2011!</div></summary>
  </entry>

  <entry>
    <title>Once Again, With Feeling: Assholes</title>
    <link href="http://waffle.wootest.net/2010/07/13/once-again-with-feeling-assholes/"/>
    <id>http://yoursite/article/?i=2ea15b3e1bf293dc93e00a7d75745057</id>
    <updated>2010-07-13T14:38:10-07:00</updated>
    <author>
      <name>ad1fdd382e9d222487df79574594ac81</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Slashdot follows up their link to Techdirt&#8217;s report on Hollywood Accounting with Techdirt&#8217;s report on RIAA Accounting.

Or, to put it another way:


Big Media
An old form of rights scam in which you make all the content, and we keep all the money.
</div></summary>
  </entry>

  <entry>
    <title>Another SIGGRAPH Scheduler</title>
    <link href="http://www.realtimerendering.com/blog/another-siggraph-scheduler/"/>
    <id>http://yoursite/article/?i=5a3dcbf82747ec44a4d2acb8be57244f</id>
    <updated>2010-07-13T01:03:46-07:00</updated>
    <author>
      <name>d673992480e7ab9117f17dc54b9c49b0</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I&#8217;ve messed around with various scheduling methods over the years, but find I dislike the form factor of PDA-like devices: you can see a few hours, or maybe a day&#8217;s activities at best. Taking notes can be tiresome, lots of clicks needed to find stuff, and sometimes the battery dies.
So for the past few years I&#8217;ve locked onto classic graphite stick &amp; cellulose technology. Honestly, I like it a lot: folds up and fits in my pocket, it&#8217;s easy to see conflicts among events, I can instantly figure out when I&#8217;m free, and lots of room on the back for notes and whatnot.&#160;I mention it as an option, as low-tech at least works for me. I like my iPod Touch, I&#8217;ll put the SIGGRAPH Advanced Program on it with Discover, but the sheet o&#8217; paper will be my high-level quick &amp; dirty way to navigate and write down information. It&#8217;s sort of how I like RememberTheMilk for reminders more than Google Calendar: it&#8217;s at my fingertips faster than lots of clicking around.</div></summary>
  </entry>

  <entry>
    <title>Live at the Wireless: The Bloody Beetroo</title>
    <link href="http://mpegmedia.abc.net.au/triplej/livemusic/bloodybeetroots_20100713/latwpod_bloodybeetroots_2010_07_13.mp3"/>
    <id>http://yoursite/article/?i=d9af14557990e54bd47c31a84db8623a</id>
    <updated>2010-07-13T01:03:05-07:00</updated>
    <author>
      <name>bdd80b5da47348e61f7aad288b492548</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">After being hit by technical problems at Sydney's Creamfields festival, The Bloody Beetroots treated fans to a free club show. triple j was there to capture the loud, sweaty, awesome set.</div></summary>
  </entry>

  <entry>
    <title>Interesting Statistics</title>
    <link href="http://feedproxy.google.com/~r/yalb/~3/OoZW5CuTAIY/"/>
    <id>http://yoursite/article/?i=d017bc7f8bb4a699a63de7a00ccf9046</id>
    <updated>2010-07-13T01:02:59-07:00</updated>
    <author>
      <name>cddadc25d592fa70e2792790cb3b86d5</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Very interesting statistics that I&#8217;ve noticed since moving the site to a Linode VPS.
If you take a look at the graphic below, the spike in the middle will probably stick out quite a bit.&#160; Oddly enough, the spike I noticed in CPU percentage used (which is regulated for VPS at Linode) also spiked up disk usage&#8230;mainly because I began to swap when cpu/ram use skyrocketed.&#160; All of this happened with Ubuntu 10.04 installed.&#160; CentOS was the first distro I tried but I quickly switched to Ubuntu when I spotted a really nice how-to in the Linode document library.&#160; Oh, and please excuse my horrible gimp skills on the image below&#8230;it was a quick and dirty editing of the image:
cpu usage

After switching to Ubuntu, I began receiving alarms for my account due to the high usage of CPU and disk.&#160; I attempted to tweak settings and configuration files for about a week and realized it just wasn&#8217;t going to work for me.&#160; I switched to Debian Lenny and the move was a positive as is reflected in these pictures.
disk usage
I was hoping Ubuntu 10.04 would fit for me since it is a long term support (LTS) release. &#160;CentOS is my normal server distribution of choice and I really wanted to branch out and go with something different. &#160;I used a Linode Stackscript for WordPress for CentOS but elected for vanilla installs of Ubuntu and Debian aftwards (I didn&#8217;t like NOT knowing what was installed when I first logged in&#8230;call me a control freak).
I just found it interesting that Ubuntu 10.04 did so horribly in this instance. &#160;After investigating,&#160;I found a couple of likely suspects:

Default Apache install in Ubuntu leaves a lot to be desired..even after tweaking both it and PHP for days I couldn&#8217;t get them to lay off the resources.&#160; Even switching to mpm_worker and FastCGI did little to settle things down.
Ubuntu swappiness is bad&#8230;it is set at 60 (I use 10 normally) and it swapped every chance it could get&#8230;it&#8217;s set by default to swap more than it should.
mod_php on Ubuntu is hungry for all your cpu and ram and disk; be warned!

Debian, as the parent distribution of Ubuntu, would most likely suffer from the same problems&#8230;except it doesn&#8217;t.&#160; Things are working great with it and I&#8217;d recommend it for any of your server needs! &#160;Has anyone else seen this oddity with Ubuntu 10.04? &#160;If so, please drop me a comment below.


Related posts:A Blip on My Posts Hello everyone! You may have seen a blip swing by...
Do you&#8230;uh&#8230;Use Linux? I ran across the flash video above (note: I&#8217;m not...

Related posts brought to you by Yet Another Related Posts Plugin.Interesting Statistics originally appeared on Yet Another Linux Blog on July 13, 2010.


</div></summary>
  </entry>

  <entry>
    <title>Steam: Illustrated</title>
    <link href="http://www.shamusyoung.com/twentysidedtale/?p=8628"/>
    <id>http://yoursite/article/?i=137d83012179c15f8ac1c5aaf8c06ac6</id>
    <updated>2010-07-12T14:37:57-07:00</updated>
    <author>
      <name>9664f9f41c31dc85cfed455d4d4721de</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Part 1
I click &#8220;Play Garry&#8217;s Mod&#8221;:





Actually Valve, that wasn&#8217;t a request. It was an order. Run the software I bought from you.  I&#8217;m busy too.  I&#8217;m trying to make a comic, and I didn&#8217;t ask you to get involved. 
Sigh. Fine&#8230;
Part 2
I click &#8220;Restart in Offline Mode&#8221;:





Yes, yes. Just piss off and get out of my way already.
Part 3
I click &#8220;Play Garry&#8217;s Mod&#8221;:





- Fin
I record this here because every single time we have a Steam debate we get fanboys who wave in the direction of offline mode every time someone has a problem with the platform. 
As always: Use Steam or do not.  I do not evangelize either position. Like everything else, it is a decision with many complex tradeoffs. I only urge people to be aware of what they&#8217;re buying into when they do it.  I would like to also urge Valve to get their collective act together.
There is a very real possibility that we will get no comic tomorrow, the first miss in 210 strips.  This is not entirely Valve&#8217;s fault, mind you.  Lots of other factors contributed to this hellish span of 24 hours that everyone else is calling &#8220;Monday&#8221;.  But Steam failed when I needed it and added to the already considerable misfortunes of the day.
EDIT: The &#8220;please try again in a few minutes&#8221; starts to sound really hollow after two freakin&#8217; hours.</div></summary>
  </entry>

  <entry>
    <title>Resolution and scaling on Windows Phone</title>
    <link href="http://blogs.msdn.com/b/shawnhar/archive/2010/07/12/resolution-and-scaling-on-windows-phone.aspx"/>
    <id>http://yoursite/article/?i=7ac5522341450288a2fceb3d231f74eb</id>
    <updated>2010-07-12T14:37:54-07:00</updated>
    <author>
      <name>a5eeb5ee37d4e6f815f293a2eb523e5a</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Windows Phone includes a hardware image scaler. This allows XNA games to choose what backbuffer resolution they want to draw to, regardless of the physical screen size. You draw at whatever size you like, then the scaler adjusts the resulting image to fit the screen. This is similar to how the video output works on Xbox 360.     Note: scaling was not implemented in the CTP release of the Windows Phone Emulator, but is fully supported in our recent beta version.   &#160;  Things you should know about the scaler     The scaler is easy to use: just set graphics.PreferredBackBufferWidth and PreferredBackBufferHeight in your game constructor     The resolution can be anywhere from 240x240 up to a max of 800x480 (or 480x800 if you are making a portrait game)     If you choose a resolution that does not match the screen aspect ratio, it will be automatically letterboxed (black bars along the edges)     Touch input is automatically scaled to match your chosen backbuffer resolution     Scaling is implemented by dedicated hardware, so doesn't cost any GPU     Scaling uses a high quality filter (better looking than GPU bilinear filtering)    &#160;  Choose your own resolution     800x480 is a lot of pixels!     Comparison: Xbox 1 games usually ran at 640x480, so the phone has 25% more pixels to fill     But the phone has a less powerful GPU than Xbox 1 did...     800x480 provides awesome visual crispness for browsing the web, reading email, and simple games with cheap shaders and not much overdraw     More complex games can trade resolution for framerate     Consider: 600x360 requires only 56% as many pixels to be rendered  </div></summary>
  </entry>

  <entry>
    <title>Orientation and rotation on Windows Phon</title>
    <link href="http://blogs.msdn.com/b/shawnhar/archive/2010/07/12/orientation-and-rotation-on-windows-phone.aspx"/>
    <id>http://yoursite/article/?i=92d71eb4e6d58d62334459fdf88be15b</id>
    <updated>2010-07-12T14:37:54-07:00</updated>
    <author>
      <name>a5eeb5ee37d4e6f815f293a2eb523e5a</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The Windows Phone version of the XNA Framework includes an automatic rotation feature. This allows XNA games to choose whether they want to run in landscape or portrait mode, without having to roll their own rotation solution like we used to on Zune.     Note: rotation was not implemented in the CTP release of the Windows Phone Emulator, but is fully supported in our recent beta version.   &#160;  Things you should know about rotation     Rotation is implemented by special driver magic, so costs literally nothing     In contrast, rolling your own rotation via a rendertarget costs lots of GPU time and battery     So use the built in rotation, don't roll your own!     Touch input is automatically rotated to match your chosen orientation     If you use other sensor inputs such as accelerometer, you must rotate them yourself    &#160;  Landscape games  Making a landscape game is easy: just don't do anything at all. The Game class defaults to 800x480 landscape resolution.  If you turn the phone the other way up, landscape XNA games automatically flip between LandscapeLeft and LandscapeRight orientation. You don't need to do anything special to enable this. Graphics rendering and touch input are automatically rotated so everything 'just works' &#8482;.  &#160;  Portrait games  To make a portrait game, add this to your Game constructor:      graphics.PreferredBackBufferWidth = 480;
    graphics.PreferredBackBufferHeight = 800;

Now you have a portrait mode game, which will not rotate as you turn the phone.

Thanks to the scaler feature, the width and height do not have to be exactly 800x480 or 480x800. If width is greater than height, XNA will choose landscape orientation, otherwise it will choose portrait.

&#160;

Custom rotations

If you want to lock your game to just one landscape orientation, so it will not automatically flip between LandscapeLeft and LandscapeRight, add this to your Game constructor:

    graphics.SupportedOrientations = DisplayOrientation.LandscapeLeft;

If you want to change orientation sometime after the game has been initialized:

    graphics.SupportedOrientations = DisplayOrientation.LandscapeRight;
    graphics.ApplyChanges();

If you want to automatically switch between both landscape and portrait orientations as the phone is rotated:

    graphics.SupportedOrientations = DisplayOrientation.Portrait | 
                                     DisplayOrientation.LandscapeLeft | 
                                     DisplayOrientation.LandscapeRight;

Switching between LandscapeLeft and LandscapeRight can be handled automatically with no special help from the game, and is therefore enabled by default. But switching between landscape and portrait alters the backbuffer dimensions (short-and-wide vs. tall-and-thin), which will most likely require you to adjust your screen layout. Not all games will be able to handle this (and some designs only make sense one way up), so dynamic switching between landscape and portrait is only enabled for games that explicitly opt-in by setting SupportedOrientations.

&#160;

Rotation events

When you turn the phone from one orientation to another, two things happen:


  The GameWindow.OrientationChanged event is raised 

  If the new orientation is included in your SupportedOrientations settings, the graphics device is reset accordingly, which raises the various device reset events 


To check the current orientation:


  GameWindow.CurrentOrientation tells you which way up the phone is currently being held 

  GraphicsDevice.PresentationParameters.DisplayOrientation tells you which way up your game is currently displayed 


If the current phone orientation is not one of your SupportedOrientations, these two values may not be the same.

Similarly, if your game is using the scaler, the current backbuffer resolution (which is scaled, and can be queried using GraphicsDevice.PresentationParameters.BackBufferWidth and BackBufferHeight) will not be the same as the screen resolution (which is not scaled, and can be queried using DisplayMode or GameWindow.ClientBounds).</div></summary>
  </entry>

  <entry>
    <title>Game Studio 4.0 beta notes</title>
    <link href="http://blogs.msdn.com/b/shawnhar/archive/2010/07/12/game-studio-4-0-beta-notes.aspx"/>
    <id>http://yoursite/article/?i=e960d10a7db5faa09b399ce800980c76</id>
    <updated>2010-07-12T14:37:54-07:00</updated>
    <author>
      <name>a5eeb5ee37d4e6f815f293a2eb523e5a</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">So, the XNA 4.0 beta is available for your downloading delight.  Nick has a great article about the new touch gestures API.  In other notes:     HiDef is now fully implemented on Windows    Profile validation is now implemented, so if you try to do HiDef stuff in a Reach game, you get a nice exception message </div></summary>
  </entry>

  <entry>
    <title>More SIGGRAPH Course Updates</title>
    <link href="http://www.realtimerendering.com/blog/more-siggraph-course-updates/"/>
    <id>http://yoursite/article/?i=8526fb9e220dcb5d3f50a224f306006b</id>
    <updated>2010-07-12T14:37:51-07:00</updated>
    <author>
      <name>c521bbac7721f9d710c234e15e434b7b</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">After my last SIGGRAPH post, I spent a little more time digging around in the SIGGRAPH online scheduler, and found some more interesting details:
Global Illumination Across Industries
This is another film-game crossover course. It starts with a 15-minute introduction to global illumination by Jaroslav K&#345;iv&#225;nek, a leading researcher in efficient GI algorithms. It continues with six 25-30 minutes talks:

Ray Tracing Solution for Film Production Rendering, by Marcos Fajardo, Solid Angle. Marcos created the Arnold raytracer which was adopted by Sony Pictures Imageworks for all of their production rendering (including CG animation features like Cloudy with a Chance of Meatballs and VFX for films like 2012 and Alice in Wonderland). This is unusual in film production; most VFX and animation houses&#160; use rasterization renderers like Renderman.
Point-Based Global Illumination for Film Production, by Per Christensen, Pixar. Per won a Sci-Tech Oscar for this technique, which is widely used in film production.
Ray Tracing vs. Point-Based GI for Animated Films, by Eric Tabellion, PDI/Dreamworks. Eric worked on the global illumination (GI) solution which Dreamworks used in Shrek 2; it will be interesting to hear what he has to say on the differences between the two leading film production GI techniques.
Adding Real-Time Point-based GI to a Video Game, Michael Bunnell, Fantasy Lab. Mike was also awarded the Oscar for the point-based technique (Christophe Hery was the third winner). He actually originated it as a real-time technique while working at NVIDIA; while Per and Christophe developed it for film rendering, Mike founded Fantasy Lab to further develop the technique for use in games.
Pre-computing Lighting in Games, David Larsson, Illuminate Labs. Illuminate Labs make very good prelighting tools for games; I used their Turtle plugin for Maya when working on God of War III and was impressed with its speed, quality and robustness.
Dynamic Global Illumination for Games: From Idea to Production, Anton Kaplanyan, Crytek. Anton developed the cascaded light propagation volume technique used in CryEngine 3 for dynamic GI; the I3D 2010 paper describing the technique can be found on Crytek&#8217;s publication page.

The course concludes with a 5 minute Q&amp;A session with all speakers.
An Introduction to 3D Spatial Interaction With Videogame Motion Controllers
This course is presented by Joseph LaViola (director of the University of Central Florida Interactive Systems and User  Experience Lab) and Richard Marks from Sony Computer Entertainment (principal inventor of the Eyetoy, Playstation Eye, and Playstation Move). Richard Marks gives two 45-minute talks, one on 3D Interfaces With 2D and 3D Cameras and one on 3D Spatial Interaction with the PlayStation Move. Prof. LaViola discusses Common Tasks in 3D User Interfaces, Working With the Nintendo Wiimote, and 3D Gesture Recognition Techniques.
Recent Advances in Real-Time Collision and Proximity Computations for Games and Simulations
After an introduction to the topic of collision detection and proximity queries, this course goes over recent research in collision detection for games including articulated, deformable and fracturing models. It concludes with optimization-oriented talks such as GPU-Based Proximity Computations (presented by Dinesh Manocha, University of North Carolina at Chapel Hill, one of the most prominent researchers in the area of collision detection), Optimizing Proximity Queries for CPU, SPU and GPU (presented by Erwin Coumans, Sony Computer Entertainment US R&amp;D, primary author of the Bullet physics library, which is widely used for both games and feature films), and PhysX and Proximity Queries (presented by Richard Tonge, NVIDIA, one of the architects of the AGEIA&#160; physics processing unit &#8211; the company was bought by NVIDIA and their software library formed the basis of the GPU-accelerated PhysX library).
Advanced Techniques in Real-Time Hair Rendering and Simulation
This course is presented by Cem Yuksel (Texas A&amp;M University) and Sarah Tariq (NVIDIA). Between them, they have done a lot of the recent research on efficient rendering and simulation of hair. The course covers all aspects of real-time hair rendering: data management, the rendering pipeline, transparency, antialiasing, shading, shadows, and multiple scattering. It concludes with a discussion of real-time dynamic simulation of hair.

Ray Tracing Solution for Film Production Rendering
Fajardo

2:40 pm
Point-Based Global Illumination for Film Production
Christensen

3:05 pm
Ray Tracing vs. Point-Based GI for Animated Films
Tabellion

3:30 pm
Break 

3:45 pm
Adding Real-Time Point-based GI to a Video Game
Bunnell

4:15 pm
Pre-computing Lighting in Games
Larsson

4:45 pm
Dynamic Global Illumination for Games: From Idea to Production Kaplanyan

5:10 pm
Conclusions, Q &amp; A
Ray Tracing Solution for Film Production Rendering

Fajardo

2:40 pm

Point-Based Global Illumination for Film Production

Christensen

3:05 pm

Ray Tracing vs. Point-Based GI for Animated Films

Tabellion

3:30 pm

Break

3:45 pm

Adding Real-Time Point-based GI to a Video Game

Bunnell

4:15 pm

Pre-computing Lighting in Games

Larsson

4:45 pm

Dynamic Global Illumination for Games: From Idea to Production Kaplanyan

5:10 pm

Conclusions, Q &amp; A

All

All
</div></summary>
  </entry>

  <entry>
    <title>Random graphics paper title generator</title>
    <link href="http://www.realtimerendering.com/blog/random-graphics-paper-title-generator/"/>
    <id>http://yoursite/article/?i=3405cb62e47ecb04c907a26e1965b856</id>
    <updated>2010-07-12T14:37:51-07:00</updated>
    <author>
      <name>c521bbac7721f9d710c234e15e434b7b</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Try it &#8211; it&#8217;s a blast (keep hitting &#8220;refresh&#8221; to see new titles). Here&#8217;s a few that I got:

Bidirectional Rendering of Caustics for Light Fields
Reflective Normal-mapped Light Fields
Rendering of Inverse Geometry
Texturing of Multi-resolution Geometry using Polygonal Approximation
Displacement Mapping of Reflective Geometry for Surfaces

Can&#8217;t tell them from the real paper titles&#8230;</div></summary>
  </entry>

  <entry>
    <title>Hyper</title>
    <link href="http://waffle.wootest.net/2010/07/12/hyper/"/>
    <id>http://yoursite/article/?i=0f35750e0f6f4d5ac5cf44dde92aad81</id>
    <updated>2010-07-12T14:37:07-07:00</updated>
    <author>
      <name>ad1fdd382e9d222487df79574594ac81</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">So, Google released App Inventor, and my first instinct is that I hate the apps it will create with every fiber of my being. People will start putting together components in ways that they don&#8217;t understand, and the tool is either too powerful to use simply or too simple to be powerful.  The apps will not be designed to handle failure, the apps will not have those cute features that turn out indispensable and I&#8217;ll be damned if they&#8217;re going to feel intuitive to use.

I&#8217;m lucky I have several instincts.

I believe in the power of the web app, but there&#8217;s no good go-to web app creation environment besides learning everything from the ground up. When Gruber compares App Inventor to Hypercard, I suspect he&#8217;s right. Every application exists in a spectrum where usefulness follows one axis and robustness another; People don&#8217;t use the stereotypical Visual Basic apps because they are interested in workmanship but because they get something done. An open environment and a sane platform needs to accommodate all kinds of apps, and give you free range to use as many or as few as you&#8217;d like.

I still stand by most of what I said in the opening paragraph, but understand that such is my worst-case stereotype, formed partly as a defense mechanism &#8212; I am famously eager to not see my profession and its reputation bogged down, but more than that, I wouldn&#8217;t like my apps replaced with counterparts that followed the rules of that universe. It&#8217;s not even actually two separate universes; it&#8217;s a splotch on the graph of the spectrum, including gems like TripLog, written in Objective-C by a seemingly reasonable author.

This is also why &#8220;let&#8217;s remove the tooling for Visual Basic, VBA, Access forms and people will stop using or writing bad software made possible by it&#8221; is such a broken premise. You can&#8217;t surgically remove one without affecting the other. And even if you could, the people who are driven will go on to double down on more advanced environments and continue to sully your world view of sunshine, lollipops and rainbows.

Let&#8217;s start here: Every app has the right to exist, and you have the right to choose your apps. As long as both are true, the worst that will ever stand in your way is a power-hungry, policy-loving CTO.</div></summary>
  </entry>

  <entry>
    <title>Effective Concurrency: Prefer Using Acti</title>
    <link href="http://herbsutter.com/2010/07/12/effective-concurrency-prefer-using-active-objects-instead-of-naked-threads/"/>
    <id>http://yoursite/article/?i=def4ee7221c96d094aabf21bcf88dc09</id>
    <updated>2010-07-12T14:36:45-07:00</updated>
    <author>
      <name>e465a56a7dfef31970a7a57ce5685dbd</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">This month&#8217;s Effective Concurrency column, &#8220;Prefer Using Active Objects Instead of Naked Threads,&#8221; is now live on DDJ&#8217;s website.
From the article:
&#8230; Active objects dramatically improve our ability to reason about our thread&#8217;s code and operation by giving us higher-level abstractions and idioms that raise the semantic level of our program and let us express our intent more directly. As with all good patterns, we also get better vocabulary to talk about our design. Note that active objects aren&#8217;t a novelty: UML and various libraries have provided support for active classes. Some actor-based languages already have variations of this pattern baked into the language itself; but fortunately, we aren&#8217;t limited to using only such languages to get the benefits of active objects. 
This article will show how to implement the pattern, including a reusable helper to automate the common parts, in any of the popular mainstream languages and threading environments, including C++, C#/.NET, Java, and C/Pthreads.


I hope you enjoy it. Finally, here are links to previous Effective Concurrency columns:
1 The Pillars of Concurrency (Aug 2007) 
2 How Much Scalability Do You Have or Need? (Sep 2007) 
3 Use Critical Sections (Preferably Locks) to Eliminate Races (Oct 2007) 
4 Apply Critical Sections Consistently (Nov 2007) 
5 Avoid Calling Unknown Code While Inside a Critical Section (Dec 2007) 
6 Use Lock Hierarchies to Avoid Deadlock (Jan 2008) 
7 Break Amdahl&#8217;s Law! (Feb 2008) 
8 Going Superlinear (Mar 2008) 
9 Super Linearity and the Bigger Machine (Apr 2008) 
10 Interrupt Politely (May 2008) 
11 Maximize Locality, Minimize Contention (Jun 2008) 
12 Choose Concurrency-Friendly Data Structures (Jul 2008) 
13 The Many Faces of Deadlock (Aug 2008) 
14 Lock-Free Code: A False Sense of Security (Sep 2008) 
15 Writing Lock-Free Code: A Corrected Queue (Oct 2008) 
16 Writing a Generalized Concurrent Queue (Nov 2008) 
17 Understanding Parallel Performance (Dec 2008)
18 Measuring Parallel Performance: Optimizing a Concurrent Queue (Jan 2009)
19 volatile vs. volatile (Feb 2009)
20 Sharing Is the Root of All Contention (Mar 2009)
21 Use Threads Correctly = Isolation + Asynchronous Messages (Apr 2009)
22 Use Thread Pools Correctly: Keep Tasks Short and Nonblocking (Apr 2009)
23 Eliminate False Sharing (May 2009)
24 Break Up and Interleave Work to Keep Threads Responsive (Jun 2009)
25 The Power of &#8220;In Progress&#8221; (Jul 2009)
26 Design for Manycore Systems (Aug 2009)
27 Avoid Exposing Concurrency &#8211; Hide It Inside Synchronous Methods (Oct 2009)
28 Prefer structured lifetimes &#8211; local, nested, bounded, deterministic (Nov 2009)
29 Prefer Futures to Baked-In &#8220;Async APIs&#8221; (Jan 2010)
30 Associate Mutexes with Data to Prevent Races (May 2010)
31 Prefer Using Active Objects Instead of Naked Threads (June 2010)

Filed under: C# / .NET, C++, Concurrency, Software Development       </div></summary>
  </entry>

  <entry>
    <title>Viva</title>
    <link href="http://waffle.wootest.net/2010/07/11/viva/"/>
    <id>http://yoursite/article/?i=30b1d5bb9b2c007f5a6deca31f000625</id>
    <updated>2010-07-12T00:43:43-07:00</updated>
    <author>
      <name>ad1fdd382e9d222487df79574594ac81</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Congratulations Spain, you&#8217;ve earned it.</div></summary>
  </entry>

  <entry>
    <title>Dilution</title>
    <link href="http://xkcd.com/765/"/>
    <id>http://yoursite/article/?i=15ee70d121636bf161564afbc088c450</id>
    <updated>2010-07-12T00:43:42-07:00</updated>
    <author>
      <name>http://xkcd.com/765/</name>
    </author>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"></div></summary>
  </entry>
</feed>
