<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Codezen</title>
	<atom:link href="http://blog.codezen.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.codezen.org</link>
	<description>Hacker Friendly Ranting</description>
	<lastBuildDate>Thu, 12 Jan 2012 14:44:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>On Skyrim</title>
		<link>http://blog.codezen.org/2011/11/30/on-skyrim/</link>
		<comments>http://blog.codezen.org/2011/11/30/on-skyrim/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 18:19:38 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[gaming]]></category>

		<guid isPermaLink="false">http://blog.codezen.org/?p=522</guid>
		<description><![CDATA[I don&#8217;t really want to spend much time talking about Skyrim. I&#8217;ve already written this post as a review, but in all I&#8217;m still forming my opinion so anything I say has to be tempered at this point. Instead of a review, I&#8217;d like to collect various points of thought. Skyrim&#8217;s Strengths Level Scaling I [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t really want to spend much time talking about Skyrim. I&#8217;ve already written this post as a review, but in all I&#8217;m still forming my opinion so anything I say has to be tempered at this point. Instead of a review, I&#8217;d like to collect various points of thought.</p>
<h2>Skyrim&#8217;s Strengths</h2>
<h4>Level Scaling</h4>
<p>I never thought I&#8217;d say this about a TES game after Oblivion so royally fucked up on level scaling, but this is one (of many, as we&#8217;ll see in the next few points) where Skyrim learns much from Bethesda&#8217;s work on Fallout 3.</p>
<p>Like Fallout 3, the level scaling is appropriately tailored to quests leaving random encounters at a standard level. This means that, unlike Oblivion, there are no road bandits wearing daedric armor, but the main questline will provide challenge for you at whatever point you decide to pursue it.</p>
<h4>Level Mechanics</h4>
<p>The core reason that level scaling <emph>didn&#8217;t</emp> work in Oblivion was that the traditional TES leveling scheme didn&#8217;t fit with it. As a refresher for those of you that didn&#8217;t play Oblivion for awhile to get ramped up for Skyrim, in Oblivion you chose 5 major skills (in Morrowind it was 5 major, 5 minor) and your advancement through those skills determined your character level. In theory, this means that as your knight character hacks and slashes (advancing Blade, Block, etc.) he levels as he becomes more effective.</p>
<p>The reality of the fact was that it was possible to exploit the game with what amounts to the converse of the above. By &#8220;poorly&#8221; choosing your major skills (i.e. choosing magic skills for a character that will never cast a spell), you could artificially keep your character level low and the enemies would be (in)appropriately weak. This was a functional strategy because <strong>in Oblivion, character levels didn&#8217;t mean anything</strong>. Sure, you got to dump some points in attributes and skills, but if the alternative means enemies don&#8217;t get any stronger, you&#8217;re no worse off for foregoing character levels all together.</p>
<p>Well, Skyrim puts an end to that. You no longer choose your major skills, it levels you up based on your advancement through skills overall.</p>
<h4>Perks</h4>
<p>As part of the level mechanic updates, the addition of Fallout 3 style explicit perks was great. TES has always had perks, but previously they were always very subtle to the point of being useless and they were associated with reaching a new skill plateau, so there were only 4 for each skill and you just got them automatically. For magical skills, the perks were always the ability to cast higher level spells&#8230; which is nice, but aside from having marginally more powerful spells in your arsenal, it doesn&#8217;t really affect your gameplay.</p>
<p>With Skyrim&#8217;s system, you get a perk point each level, and each of the 18 skill trees has around 10 different perks. Like Fallout, these perks have certain requirements (either skill levels, or previous perks), but &#8211; most importantly &#8211; they can obviously affect your gameplay. Suddenly you can craft better stuff, or you hit 25% harder, or have new moves, or your shield blocks elemental damage, or spells cost half as much. These are significant changes and, because you spend finite points to get them, there are significant choices to be made as you level up.</p>
<p>The result is that a level in Skyrim is something that you don&#8217;t <emph>want</emph> to skip, even if you could, which is a marked change from Oblivion, and even Morrowind, where leveling was almost completely irrelevant in the face of skill levels.</p>
<h4>Character Level and Performance</h4>
<p>These basic improvements (overall skill level focus and perks) mean that character level is now a rough approximation of effectiveness&#8230; if you&#8217;re playing right. This relationship is the cornerstone of a level scaling system that works, but it also has some flaws that we&#8217;ll talk about with craft grinding.</p>
<h4>Skills</h4>
<p>In addition to the perks mentioned above, the skills have been streamlined as well. Morrowind had 27, Oblivion 21, and now Skyrim has 18 individual skills. The changes are mostly positive, like having One-handed and Two-handed skills separated instead of Blade and Blunt (which in turn were great improvements from Morrowind having a skill for every weapon type). The previous game&#8217;s questionably useful mysticism magic school has had its effects merged into other trees (conjuration and alteration, I believe). Mercantile seemed useful before, but having to level it through bartering was boring and the differentiation from plain old Speechcraft was tenuous at best. They&#8217;ve been wisely merged into a unified Speech tree. Lastly, the separation of sneak/security into sneak/lockpick/pickpocket is interesting.</p>
<p>I haven&#8217;t explored all of the skills, but the perks for them appear to be useful. </p>
<h4>Smithing</h4>
<p>I was really happy that they added in a smithing craft. The previous games included the &#8220;Armorer&#8221; skill, which allowed you to repair armor, but that&#8217;s clearly not the same. Being a melee character, it&#8217;s nice to run around in armor you create, swinging weapons you create. That&#8217;s more vanity than anything as you can pretty much find basic armor and weapons anywhere. The nice part is being able to further improve these items as your smithing skill improves to give you a bit of extra edge.</p>
<h4>Procedural Generation</h4>
<p>Skyrim incorporates a fair amount of randomness into the game, particularly with loot from bodies and chests. That dates back to Oblivion in TES (I believe), but it seems more prevalent now and it&#8217;s typically an antidote to quests being identical between play throughs.</p>
<p>Procedural generation is new, as far as I know, and it goes much farther to decrease repetition between play throughs. It doesn&#8217;t effect the main quests or some of the richer scripted events, but for things like bandit raids and thief missions, or assassin missions it&#8217;s trivial to set up and it adds a whole new level to the game. You could effectively play for hours after completing every quest line without doing the exact same quest twice.</p>
<p>Of course, in execution, these are a little dry. Especially when compared to the richness of the game proper. Some of them are&#8230; questionably difficult as well. For example, a procedural thief mission I got, I literally walked into the target house retrieved a conspicuous item and walked out&#8230; all while the owner was pleasantly chatting. He didn&#8217;t seem to mind that this item, which probably hadn&#8217;t existed in his home until I got the quest, was being &#8220;stolen&#8221;. I&#8217;m not sure if he was bugged or what, but the other missions were essentially adding rewards for shit I&#8217;d already be doing. Procedural bandit quests just mean you get an extra sum of gold for killing everyone in a randomly chosen local dungeon. I imagine it&#8217;s similar with procedural assassin quests, but I haven&#8217;t done any yet.</p>
<p>More interesting are the subtly procedural quests. Particularly quests that have a little more story to them but can take place in a number of different locations. Getting the Helm of Winterhold was subtly procedural. The quest text was spoken and rich, but the place I had to go to reclaim it changed and, most interestingly, the type of enemies I was retrieving it from changed too. Bandits the first time, necromancers the second.</p>
<p>Both examples are definite wins for replayability.</p>
<h4>&#8230;It&#8217;s TES</h4>
<p>The rest of Skyrim&#8217;s strengths flow directly from its parentage. TES games always have a huge scope and a plethora of things to do and items to obtain. Alchemy, enchanting, buying property, moral choices, many character types and playable builds. Skyrim is a solid entry in the TES lore and I haven&#8217;t even come close to finishing the game.</p>
<h2>Skyrim&#8217;s Weaknesses</h2>
<h4>The Interface</h4>
<p>Bethesda went the minimalist route with Skyrim&#8217;s interface and aesthetically they hit the mark. Functionally&#8230; not so much. There are already mods to correct the PC interface, particularly the inventory interface, but like Oblivion Skyrim seems to suffer from consolitis.</p>
<p>Nowhere is this more evident than in the character creation screen. The row of options at the top of the very first interface screen <emph>should</emph> function like tabs, but instead function like a slider. I theorize that this is due to the fact that it was designed with using shoulder buttons on a controller to navigate, instead of a mouse.</p>
<p>Similarly, there are a number of places, particularly in dialogue and crafting screens, where the interface appears to lose track of the mouse. Clicking seems to activate whatever is selected, but moving the mouse doesn&#8217;t <emph>necessarily</emph> change selections. The result is that you don&#8217;t really know what you&#8217;re clicking on which is doubly frustrating because the mouse makes it extremely clear what you want. I&#8217;m hoping this is what they&#8217;re fixing in 1.2 with &#8220;Mouse sensitivity issues&#8221;, although that could also be the atrociously low mouse sensitivity by default.</p>
<p>There are other oddities, like clicking outside of the black left sidebar inexplicably closes the interface, so you have to be very careful when selecting things there.</p>
<p>Overall, Bethesda also missed opportunities to use screen real estate wisely because they were designing for you to be 10 feet away on a couch instead of sitting right in front of a monitor. For example, the dearth of information in the inventory screen. 50% of the screen is taken up by a picture of the item you&#8217;re currently selected, but all you see about the other 1000 items you&#8217;re carrying is their name and some symbols regarding whether they&#8217;re equipped or more powerful than what you have equipped. In Oblivion, and the UI mods for Skyrim, you at least got a brief summary of the item from the list view. This makes it much easier to make choices about, for example, what you&#8217;re going to drop when you&#8217;re overencumbered, because you don&#8217;t have to select each individual item to see how much it weighs.</p>
<p>The last little nit is that when you pickup/drop/purchase/sell items from a big stack, it prompts you with a slider to ask how many. Why I can&#8217;t type a number here is annoying. Sliders are also used in the character creation screen to choose between presets. Sliders are probably the worst possible idea for mouse users, but the only controls that makes sense for console users.</p>
<h4>The Craft Grind</h4>
<p>Crafting, especially the new smithing craft, is hard to level without grinding. Part of the problem here is that, in previous games, the crafts were much less skill dependent. Alchemy, for example, was more effected by your intelligence attribute and the apparatus you used to create the potions than it was by the skill level. Without an intelligence attribute (or attributes at all), and no apparatus, alchemy effects are entirely based around perks (and thus skill and character level).</p>
<p>The problem is, with the focus on perks instead of getting gear or souls, you are forced to get your crafting skill level up to improve. Makes sense, but it&#8217;s not a smooth slope like it is with other skills. You have to go out of your way to craft. To some extent alchemy doesn&#8217;t suffer from this flaw as you&#8217;re creating potions that are disposable and there are reagent <emph>everywhere</emph>. If you experiment to find the reagents&#8217; properties, and otherwise just craft potions for yourself or to expend reagents, you can build alchemy fairly easily &#8212; especially if you&#8217;re not afraid to use potions.</p>
<p>Enchanting has a similar flow if you just gain levels by disenchanting or charging enchanted weaponry with soul gems.</p>
<p>Smithing has absolutely no flow whatsoever. There&#8217;s no way to level it with any reasonable speed making only items for personal use. It&#8217;s also hard enough to find the reagents (ore) in large enough quantities just by adventuring, so you&#8217;re likely to be going out of your way to mine, which isn&#8217;t too much fun. The point is that if you plan on creating yourself a set of armor and a new set of weapons at every tier of smithing, and upgrading them every time you can, you&#8217;re not going to have enough smithing tasks to make it from one tier to another. The solution? Make iron daggers over and over. Almost the definition of boring.</p>
<p>For smithing, and even for the other crafts that have some semblance of skill, you&#8217;re probably going to end up creating items for no other purpose than to up your level. It&#8217;s possible to pace yourself by forcing yourself not to buy the reagents to do so, but nonetheless you&#8217;re going to be cranking out daggers, potions, and enchantments you don&#8217;t need if you want to get those levels. That sucks.</p>
<p>This is a persistent problem with TES, but it was previously been mitigated by equipment and by the fact that when you level you got to dump points into skills. In Oblivion you could theoretically get to 100 Enchant without ever enchanting an item or filling a soul gem. It makes no sense, and people would most definitely grind in that game, but you could do it. Here you&#8217;re forced to grind, to some extent.</p>
<p>Because I&#8217;m a fan of the new level system, I would&#8217;ve liked to have seen these problems addressed with crafting quest lines. To introduce you to smithing, the Whiterun smith has a basic quest to show you the ropes. Why couldn&#8217;t that continue? There should be quests to mine ingredients (tangentially I think you should get <emph>some</emph> smithing experience from mining and smelting in addition to the proper crafting), or forge so many X for the war effort. That would not only allow you to do quests to smoothly gain levels, it would also give you a reason to make things more interesting than iron daggers. If you were given special ingredients to fetch from hostile areas it would even mix leveling your smithing with your other skills.</p>
<h4>Bugginess</h4>
<p>Bugs have plagued every release Bethesda has put out since Arena and Skyrim is no different. I&#8217;ve seen items floating in the sky, people in sitting positions slide into their chairs from across the room. A friend of mine saw a mammoth fall out of the sky and die right in front of him. I&#8217;ve had fetch quests that had to be done twice, inexplicably. There are texture issues and crashes too. Going to the internet, there are apparently some other bad bugs that I&#8217;ve had the good fortune to avoid.</p>
<h2>Overall</h2>
<p>Overall Skyrim is a great game. Out of the gate, it&#8217;s a bit rough around the edges, but much less so than Oblivion was. Bethesda&#8217;s greatest strength is its mod friendliness. It extends the life of every game by being open to new content and allows players to correct (real <emph>or</emph> perceived) problems. The upshot of Skyrim is that it&#8217;s a solid release, but every single one of the complaints and bugs will eventually be addressed. Whether it&#8217;s by Bethesda or the players is irrelevant.</p>
<p>Right now, the game has its flaws. A year from now (or, rather, a year from when the &#8220;Creation Kit&#8221; is released), the game will be verging on perfect.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codezen.org/2011/11/30/on-skyrim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On Brewing</title>
		<link>http://blog.codezen.org/2011/09/30/on-brewing/</link>
		<comments>http://blog.codezen.org/2011/09/30/on-brewing/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 19:34:13 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[brewing]]></category>

		<guid isPermaLink="false">http://blog.codezen.org/?p=467</guid>
		<description><![CDATA[A couple of friends of mine, David and Otto, came down from their various corners of the world this past weekend. It was great to reconnect with them. It&#8217;d been years (since I got out of college almost 4 years ago) since we&#8217;d been in one place. It was a good time to be sure. [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of friends of mine, David and Otto, came down from their various corners of the world this past weekend. It was great to reconnect with them. It&#8217;d been years (since I got out of college almost 4 years ago) since we&#8217;d been in one place. It was a good time to be sure. Juliette and I tried to take them around Austin, to check out some of the local flavor. Otto had been here before for a festival (a common claim for many music and tech fans), but we largely stayed out of downtown. The appeal of 6th street is somewhat lessened now that school is back in session and we weren&#8217;t exactly looking to hang out with college age <del>douches</del> students out to get drunk fast and cheap. We hit places like Freddie&#8217;s, Dolce Vita, South Congress, Mount Bonnell and a cool little brew pup co-op called Blackstar (which I will probably return to, even if I don&#8217;t become a member).</p>
<p>Tangentially, I&#8217;ve been playing a lot of Dwarf Fortress of late (I&#8217;ll talk about that in another post, perhaps) and drinking a lot of beer and those two things have turned my brain to homebrewing, with a little inspiration from <a href="http://wilwheaton.typepad.com/wwdnbackup/2011/09/notes-on-the-making-of-my-polymorph-porter.html">Wil Wheaton</a>&#8216;s adventures with his son. I was planning on getting a basic equipment set for myself (via Juliette) for Christmas, but it just so happens my two friends are homebrewers as well so I decided to advance my plans. Besides, when it takes about a month to turn around a batch of beer (give or take depending on style), it&#8217;s better to get started early. This way, I can have a batch ready for the three major holidays (Halloween, <del>Skyrim</del> Thanksgiving, and <del>Diablo 3</del> Christmas).</p>
<p>So with my friends to help me, particularly Otto who&#8217;s been doing this in one form or another since college, we went to <a href="http://www.austinhomebrew.com/">Austin Homebrew</a> a local brick and mortar store that, you guessed it, sells all you could ever want for homebrewing beer, wine, and even soda. Judging from some <a href="http://www.homebrewtalk.com/vendors/">vendor lists online</a>, this type of place isn&#8217;t exactly unheard of, but it is a rare convenience. Especially considering that it&#8217;s literally 10 minutes away from my house. Sometimes it&#8217;s nice to be reminded what a cool city this place is and homebrewing definitely seems to fit the Austin character. This is probably the most beer friendly city I&#8217;ve ever been in and I&#8217;m from <em>St. Louis</em> the erstwhile home of Anheuser-Busch.</p>
<p>I was really surprised with how dead simple brewing ends up being. It&#8217;s basically like making tea, then making soup, then letting your yeasty minions turn that sugary soup into tasty alcohol. It&#8217;s really just like any other food recipe, albeit one that takes longer and requires ingredients you don&#8217;t find in a grocery store. The process is also extremely variable. You can be pretty much as involved in the process as you want. They actually sell &#8220;canned&#8221; beer kits (which I initially thought was some sort of way to end up with cans of beer) in which you literally just mix some buckets of premade ingredients into the fermenter. No cooking (aside from boiling the water) required, and a bit less special equipment (no huge stock pot, no hydrometer). Sounds kinda boring, but it&#8217;s literally one step up from just buying your beer at the corner store. In the process we used, the grains were already malted and the yeast was ready, but we still created the wort ourselves. It is possible to malt your own grains though and even culture your own yeast. Hell, you could become entirely self sufficient and grow your own grains and hops too although you&#8217;d probably still have to rely on others for any special flavor ingredients. Anyway, the point is that the level of control you have over your personal involvement is great.</p>
<p>On top of that varying level of time commitment, there&#8217;s also a huge variety of equipment. Even one half brew in, I can see that people&#8217;s setups are vastly different. Reading through the <a href="http://homebrewtalk.com">Homebrew Talk</a> forums, it becomes evident that a lot of these folks have very complex (and very <em>expensive</em>) setups. Kegging, kegerators, burners, wort chillers, fancy fermenters, carboys, parallel sets of equipment for &#8220;pipelining&#8221;, bench cappers, taps etc.. I got started for about $150 (a fermenter, a carboy, an auto-siphon, tubing, bottle wand, some caps, a hand capper, a manual, an airlock, some sanitizer, a huge steel stock pot, a thermometer, and a hydrometer), not including the first batch ingredients. But virtually every step of the process can be improved and simplified. Some people will stick with the basic investment. Others will spend thousands of dollars. Me, I&#8217;m waiting to see how my first batch turns out before thinking of improvement, but there&#8217;s definitely room for it.</p>
<p>The last thing I&#8217;ll mention is the economical point of view. Each five gallon batch turns into roughly 50 bottles (not equivalent to 5 gallons, you do end up losing some volume). Taking everything into account, the ingredient kit, the water (I didn&#8217;t use tap water, even though the helpful dude at the supply shop said Austin water was okay), the ice, even the caps, my first batch cost about $36. Roughly speaking, and not counting your time investment (that&#8217;s the fun part), or nitshit like stove gas, that&#8217;s 72 cents a beer. This batch is Belgian White, which is like a Blue Moon, which costs about $17 / 12 or $1.42 per beer. The cheapest, worst beer I would ever drink in a that-or-nothing situation, Lone Star, is about $9 for 12 or about 75 cents a beer. So there are basically three possible scenarios:</p>
<ul>
<li><strong>Best case scenario:</strong> The homebrews are as good as people say they are and I didn&#8217;t fuck it up. The price of a homebrew bottle is half that of its store bought counterpart.</li>
<li><strong>Mid case scenario:</strong> The recipe sucks or I made a critical mistake. As long as it&#8217;s drinkable it&#8217;s still cheaper than Lone Star.</li>
<li><strong>Worst case scenario:</strong> It&#8217;s undrinkable crap that even time won&#8217;t fix. I&#8217;m out $36 but hopefully I learned something in the process.</li>
</ul>
<p>It&#8217;s hard to think of in pure economic terms for a hobby, but I take two things from this. First is that it will take about 5 good batches (214 beers, assuming similar quality) before the cost of the basic equipment is overcome by the savings on beer. One more batch to pay off the bottles if they&#8217;re kept in rotation. Not half bad considering you can brew for years with the same equipment provided you keep it clean (and don&#8217;t break your hydrometers). Second, it means that it makes financial sense to be constantly brewing. If a homebrew beer was more expensive than its counterpart then brewing would be a special occasion thing. As it is I&#8217;ve already got plans to buy two batches of bottles and another ingredient kit as soon as my first batch is out of the fermenter. Of course, this is all in rough numbers and it assumes that I&#8217;ll be cranking out the same beer (I won&#8217;t be) and I&#8217;ll never fail a batch. Really, as with any hobby, it&#8217;s hard to quantify the enjoyment or the reward of actually doing it. I&#8217;m just glad the math seems to be in my favor.</p>
<p>All in all, I&#8217;m looking forward to partaking in homebrewed beer in a couple of weeks. It definitely isn&#8217;t for the impatient (or the broke) but so far it seems like a fun, economical, low maintenance and hopefully delicious hobby.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codezen.org/2011/09/30/on-brewing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A fan&#8217;s review of Deus Ex: Human Revolution</title>
		<link>http://blog.codezen.org/2011/08/29/a-fans-review-of-deus-ex-human-revolution/</link>
		<comments>http://blog.codezen.org/2011/08/29/a-fans-review-of-deus-ex-human-revolution/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 18:27:05 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[gaming]]></category>

		<guid isPermaLink="false">http://blog.codezen.org/?p=421</guid>
		<description><![CDATA[I just completed my first play through of the new Deus Ex game, Human Revolution or DX:HR for short. I guess you could also call it DX3, but that might confuse some of the folks that disavow that Invisible War ever existed. I was, and am, a huge fan of the original Deus Ex. In [...]]]></description>
			<content:encoded><![CDATA[<p>I just completed my first play through of the new Deus Ex game, Human Revolution or DX:HR for short. I guess you could also call it DX3, but that might confuse some of the folks that disavow that Invisible War ever existed.</p>
<p>I was, and am, a huge fan of the original Deus Ex. In 2001 it was a truly original game and I consider it, easily, my favorite videogame of all time. I&#8217;ve played it through maybe five times all together (and a few times I didn&#8217;t finish) with strategies varying from soldier, to hacker, to spy, to pacifist, to knife only psychopath (although I had to upgrade to the Dragon&#8217;s Tooth towards the end, and I didn&#8217;t count a couple of the &#8220;boss&#8221; type characters which had to be taken down with LAMs or GEP rockets). I can remember some of the original Deus Ex levels so well I could probably reproduce them faithfully from memory.</p>
<p>Invisible War was a forgettable sequel. I remember virtually nothing of the storyline, the character, or the mechanics thereof. I just know that when I finished it, I decided to erase it from my memory and pretend, as a lot of other internet gamers, that it never happened. It was less a Deus Ex game and more a botched product of the then dying Ion Storm (RIP). However, I was encouraged when the pre-release buzz was building for Human Revolution started and the developers seems to have their heads screwed on right, and they acknowledged that Invisible War was a failure. To see my favorite franchise fall short again would be enough to make me lose hope that it could ever be done right again.</p>
<p>So, with that bit of history and personal opinion out of the way, here&#8217;s what I thought of the most recent volume of Deus Ex.</p>
<div id='toc' class='post-421'><div id='toc_title'>Contents</div>
<ul><li><a href="#Gameplay">Gameplay</a>
<ul><li><a href="#Augmentations">Augmentations</a></li>
<li><a href="#No-Health">No Health</a></li>
<li><a href="#Cover-System">Cover System</a></li>
<li><a href="#Take-Downs">Take Downs</a></li>
<li><a href="#Boss-Fights">Boss Fights</a></li>
<li><a href="#Hacking">Hacking</a></li>
<li><a href="#Omissions">Omissions</a></li></ul></li>
<li><a href="#The-World">The World</a></li>
<li><a href="#The-Story">The Story</a></li>
<li><a href="#Conclusion">Conclusion</a></li>
</ul>
</div>
<h2 id='Gameplay'>Gameplay</h2>
<p>As I mentioned, a lot of the pre-release hype convinced me there was hope for the game. Admittedly, some of it made me question the future, but overall I believe most of their choices came off better than I expected.</p>
<h3 id='Augmentations'>Augmentations</h3>
<p>The first thing I was disappointed in in pre-release was that there were going to be no skills. In the original, you had skills, which were upgraded with experience, and augs, which were found and upgraded using various canisters you had to find throughout the game. Skills included things that you or I could accomplish, stuff like weapons accuracy, melee skill, swimming, hacking, medicine, etc. Augs, just like in the new game, practically gave you super powers.</p>
<p>All in all, I think they combined the two systems well, although they accomplished it partially by stripping the need for a lot of the skills. For example, swimming is moot because there is no water. Medicine is pointless because you regen. Melee is done away with as there are no melee weapons. The remainder of the skills were rolled into augmentations. Lockpicking (although mechanical locks are now unheard of and lockpicks don&#8217;t exist), computers, and electronics were all rolled into hacking which is very well represented in the tree with three separate branches. &#8220;Environmental Training&#8221; was condensed into a rebreather augmentation that lets you resist toxic gas. Weapons skills are now handled all together with an augmentation that increases accuracy while moving.</p>
<p>A lot of the old favorite augmentations came back too, like cloak, and silent running. Dermal armor has taken the place of the shield. Regen is now a built-in augment you have from the start (bolstering the no-health approach of the game, which also rendered the medicine skill moot). I didn&#8217;t get the chance to use any of the advanced retinal augments but they sound similar in concept to the original as well.</p>
<p>There were also some cool additions to the augmentations too. The Icarus Landing System lets you jump from any height and take no damage. High enough and you get a neat bubble effect and you can optionally stun everyone around you &#8212; although I never got to use that feature. The social augmentation sounded neat to open more dialogue options. You can gain the ability to punch through (some) walls too which is definitely a plus for path finding. Then there&#8217;s the neat offensive augmentation, the Typhoon, that allows you to expend Typhoon ammo and cause a shockwave of death. Very cool, although it sucks when used against you =).</p>
<p>Really, I didn&#8217;t end up missing skills and the game does fine with just the augmentations.</p>
<h4>The XP Problem</h4>
<p>I really didn&#8217;t like the fact that XP got you augments though. I know they rationalized it in game with the fact that you were somehow &#8220;awakening&#8221; your augments with experience, but that doesn&#8217;t make much sense to me. How does me doing an arbitrary action like finishing a mission suddenly entitle me to the ability to cloak? I understand it&#8217;s just a mechanic, but perhaps it would&#8217;ve made more sense to have canister-esque items for the baseline augmentations (the things you have to spend two &#8220;praxis points&#8221; to open up), and then XP would allow you to upgrade within the tree the baseline augments open up? (If you haven&#8217;t played the game, this essentially means that you&#8217;d have to find a canister to get cloak, but you could upgrade your cloak&#8217;s efficiency through XP points).</p>
<p>The core of the problem here is that XP is too easy to get. My first (and only for now) play through was non-lethal stealth. I got XP left and right, hacking systems, completing sidequests, getting bonuses for finding secret ways in. Every takedown (we&#8217;ll get to those later) was easy XP. Then you get a massive bonus for getting through a level without triggering an alarm, or getting noticed. To top it off, you can even buy these points for credits!</p>
<p>By the end of the game, my stealth Gandhi had more &#8220;praxis points&#8221; than I knew what to do with. I ended up spending my last 5 points maxing dermal implants that reduced damage 45% and made me immune to EMP. This on a character that almost never got shot&#8230; only because I had literally nothing else worthwhile to spend the points on. I had maxed hacking (the capture and stealth trees, fortify was pointless then), maxed my batteries, maxed cloak, maxed my storage capacity and lifting strength, could run silently and jump nine feet into the air&#8230; I can&#8217;t count the number of times I&#8217;ve gone to the augmentation screen and found, oh wait, I have <em>three</em> points waiting to be spent.</p>
<p>This abundance of augmentations also factors into the game because you no longer have to make any tough choices. In the original game, the canisters each contained two augmentations and you had to choose between the two irrevocably and they had to be installed by a bot so you couldn&#8217;t just hang on to the canisters until you decided which was more useful. Some were easy choices just based on your play style (Combat Strength probably isn&#8217;t important if you&#8217;re going to be shooting people up, for example), but others were very tough. Do I want my augmentations to all take less power (Power Recirculator) or the ability to upgrade one aug on the fly (Synthetic Heart)? Do I want regeneration (energy expensive, but useful for all damage after the fact) or the ability to absorb fire/plasma/energy attacks? In either case you can&#8217;t have both. DX:HR doesn&#8217;t force you to make these choices. Every augmentation is open for you and you can just carry around three of these praxis points to use at any time. Get to an area with EMP? Oh I guess I&#8217;ll just &#8220;awaken&#8221; my augmentation for EMP immunity. Thanks!</p>
<h4>The Pointless Augs</h4>
<p>There was also an entire stealth tree that seemed pretty much pointless too, which was disappointing. Mind you, I was playing on the hardest difficulty (although I&#8217;m sure some would say I was cheating at it because I turned on the reticle) and it was never an issue to &#8220;mark and track&#8221; my enemies. You can see them all on the radar, so who cares? I don&#8217;t need to know how much noise I&#8217;m making&#8230; if I&#8217;m crouch walking I&#8217;m being quiet enough. I don&#8217;t need to see the visual range of my enemies because I can see what way they&#8217;re facing on radar. It&#8217;s saying something that my stealth character made it all the way through the game without a single point in the general stealth tree. There are also some others that seem a bit pointless&#8230; like the HUD telling you how long until enemies&#8217; alarmed status ends. Doesn&#8217;t really help you at all, since you can see when it ends anyway, it just tells you how long you&#8217;re going to have to wait. It&#8217;s not like it&#8217;s ever more than 30 seconds anyway. I feel like I should point out that the original had some questionable augs too, like Aqualung, Environmental Resistance, Radar Transparency (unless you suck) etc.</p>
<p>Still, the above gripes aside, the augs &#8212; although too easy to get and the XP system makes 0 sense &#8212; were fun to use and enhanced the gameplay as they should. I would&#8217;ve liked to see most of the same augment technologies just with fewer opportunities to get them to add to the challenge. Maybe a sliding XP scale instead of getting praxis points so regularly.</p>
<h3 id='No-Health'>No Health</h3>
<p>Probably the most controversial of the additions to the new game was the fact that there is no health. Well, there is, but you regenerate constantly by default which means that, like a lot of newer FPS games, if you get shot you just have to hide for a bit to get better. Initially I didn&#8217;t have a problem with this system. In fact, considering the setting of human augmentation it seems to make more sense in DX than anywhere else. However, in retrospect I can say it removed a lot of the urgency from situations. If I was feeling lazy and there was a single enemy, I&#8217;d just sneak up as close as a I could and then charge to do a take down, fully cognizant of the fact that if he gets a shot off, all I have to do is sit on my ass for 20 seconds. That is unless he head shots me or has a powerful enough weapon&#8230;</p>
<p>In the original DX, you had all sorts of fun because you were damaged. Getting through the next scenario might not be difficult but if you were out of medkits and had 10 health, getting through suddenly becomes a lot more challenging. There&#8217;s nothing like sneaking up on an enemy knowing that if he turns around it doesn&#8217;t matter if he&#8217;s armed with a feather duster, you&#8217;re fucked. Then there was fun stuff like, if you were hit in the arm enough, your aim got all wonky. If you were hit in the legs, you were slowed to a crawl. None of that happens in the new game, and it&#8217;s difficulty shows it.</p>
<h3 id='Cover-System'>Cover System</h3>
<p>Another change was the addition of a third person cover system. Honestly, this change was very well done and a welcome modification of the original game play. In the original game, you had the ability to lean around a corner to scope out what was there, but the cover system allows you to have a much better idea of what&#8217;s going on around you. On one hand, it&#8217;s kinda bullshit because you can see over walls that you&#8217;re crouched behind, but on the other hand I imagine it as sort of an extension of the main character&#8217;s intuition. The ability to see a room, see the enemies, crouch and still piece together what&#8217;s going on based on sound. Besides, you&#8217;re equipped with a radar system that can &#8220;see&#8221; practically everything, so why not?</p>
<p>The bottom line is that the cover system is just a formalization of the techniques you&#8217;d use in the first game if you were any good at it, and the ability to move quickly between cover is a definite improvement over the first game in which you&#8217;d crouch walk instead of doing a leaping somersault.</p>
<h3 id='Take-Downs'>Take Downs</h3>
<p>Related to the cover system you also have a third-person take downs. As a melee aficionado, I was disappointed that the game eliminated melee weapons. However, I&#8217;m still conflicted about it. The take downs were nice, very cinematic and also very useful. I would&#8217;ve have been able to complete a non-lethal stealth play through without them. Really I&#8217;m only apprehensive because they were so easy to achieve. Walk up to one (or two with an augmentation) guys and, provided you have enough energy, it&#8217;s light&#8217;s out. No finesse required, other than getting close to them without getting your head blown off.</p>
<p>In the original game, it was difficult to make it through with a knife or a baton. I can&#8217;t count the number of reloads I&#8217;ve had to do because I snuck up on someone, uncrouched and then fucked up the execution of a melee &#8220;take down&#8221; in the original.</p>
<p>I also don&#8217;t get why a takedown takes the same sort of energy as your augmentations. I mean, does it take as much energy to punch two dudes out as it does to turn invisible for 3/5/7 seconds? Maybe, but I think if they needed to limit the amount of take downs you could do (they did), then I think a cooldown period would&#8217;ve done the job better. Particularly because it&#8217;s tough to gauge how much energy you&#8217;re going to need in situations. For example, if you wanted to cloak and take someone down you need to make damn sure that you&#8217;ve got a full energy bar left by the time you reach your target or you&#8217;re just going to stand there.</p>
<p>All in all, I could take them or leave them. The take downs were fun to execute, even if they were too easy, and I suppose it makes sense that a consummate badass would be able to snap your neck or choke you out pretty much on a whim. </p>
<h3 id='Boss-Fights'>Boss Fights</h3>
<p>This is also the first time DX has had true boss fights. In the original you had climactic moments, and you killed a lot of important NPCs who were tough and armed like bosses, but there were no true bosses. Personally, I&#8217;m of the opinion that boss fights are contrived and this was no exception. Perhaps it makes a bit more sense considering the story line and the whole idea of augmented super warriors, but if they would&#8217;ve stayed true to the original and just integrated them into a level it would&#8217;ve been a lot more fun and a lot less frustrating than a true boss &#8220;arena&#8221; complete with ammunition and usually a novel way to destroy your foe. Not to mention it would&#8217;ve probably been a lot more challenging if they just showed up in the middle of a level and fucked you up instead of having the whole cliched cut scene.</p>
<p>The other point I&#8217;ll make here is that while the game did a good job making sure that the rest of the game was doable without killing anyone, when it came to the bosses you were forced to be lethal. I don&#8217;t really have a problem killing the bosses and sparing their lesser guards, but it was a huge pain in the ass to arm myself with lethal weapons at the beginning of each boss fight. For the second boss in particular it was extremely annoying that I had to find lockers, drop non-lethal items and ammo out of my inventory so I could pick up a machine pistol and some ammo &#8230; all while being chased. I guess that&#8217;s what I get for being non-lethal and having to kill someone.</p>
<h3 id='Hacking'>Hacking</h3>
<p>Hacking is one gameplay addition that I think the designers did right and better than the original. The hacking minigame was a challenge and different each time. It added a level of difficulty to opening a door that wasn&#8217;t present in the first game (where all you had to think about was &#8220;do I have enough skill/lockpicks/multitools to do this?&#8221;). It was nice that sometimes I could break a level 5 system without an alarm, and sometimes a level 2 system would alarm right off the bat and make you sweat. I enjoyed all of the hacking in the stealth play through.</p>
<h3 id='Omissions'>Omissions</h3>
<p>There were some other, minor, gameplay elements that I would&#8217;ve like to have seen in the new game, although I can forgive their omissions. I would&#8217;ve really liked to have seen ammo types, although since ammo is now an inventory item and you&#8217;re always at a loss for space that might&#8217;ve been annoying. Melee weapons would&#8217;ve been a plus as I mentioned before although similarly an inventory problem. Weapon mods were sufficiently scarce, but didn&#8217;t apply to enough weapons. With my non-lethal play through virtually none of the mods would apply to my tranquilizer rifle so I put them all on my reserve pistol. Some wouldn&#8217;t make any sense (damage, silencer), and it came with a scope, but why can&#8217;t I have a laser sight? I think the only mods I could actually apply to it were the reload speed mods.</p>
<p>None of these are that important however.</p>
<h2 id='The-World'>The World</h2>
<p>First off, let me say unequivocally that the level design was great. The levels provided numerous paths to take for virtually every scenario. The city hubs were atmospheric and suitably dirty and complicated. The facilities were well thought out and believable. The game seems to do squalor and sophistication with the same ease. This was a hallmark of the original Deus Ex, although the original seemed to tend toward the dingy post-apocalyptic side of the spectrum for the majority of the time. Perhaps I am just unaccustomed to the current state of PC gaming, but I was very impressed with the look and feel of the game.</p>
<p>The world told of through the various scattered e-books (not datacubes yet, I guess), newspapers, emails etc. seems realistic and, importantly, it seemed to connect well with the world of the original. There are a lot of juicy references for old players, like Manderley, TTong (who you actually get to see at one point), and the NSF.</p>
<p>That said, the immediate world that you play in seems much smaller. You globe trot, which is important for a Deus Ex game considering the original took you all across the world, but three of these locations you only see as a singular level. Albeit a singular, <em>well-designed</em> level, you still don&#8217;t get a chance to venture out before being choppered elsewhere. That&#8217;s similar to the first game where the only <em>cities</em> you truly explore are New York and Hong Kong, (I guess you might be able to count Paris, although it&#8217;s different) but there were many many many peripheral locations in those cities and between your visits to them. The original had much more content and had many more levels without a lot of time being spent doing pointless side-quests. I guess I shouldn&#8217;t be surprised in the age of DLC.</p>
<p>To make things worse, it seems like most of the places you visit don&#8217;t have any real secrets to find. The original had many little nooks and crannies to explore unrelated to the advancement of the storyline. To give an example: In the original Deus Ex, there was actually a very small secret MJ12 facility beneath the streets very early on in the game. You don&#8217;t encounter MJ12 as part of the story until <em>much</em> later, but if you find it you raise questions like &#8220;who the hell were those dudes with Roman numerals on their helmets carrying combat rifles in the sewers?&#8221; They weren&#8217;t part of any quest at that point. No one ever directs you to the facility, you just have to find them on your own. Now, I could be making an ass out of myself because there very well could be secrets like this in the new game. In fact, it could be rife with them <em>but</em> I can say that I didn&#8217;t find anything that surprising and <em>I was looking</em>.</p>
<p>The core issue I have with the immediate world is that it was too efficiently designed. There are different paths and doors to hack, storage units to break into, etc. but almost everything is there for a purpose. Every ladder, every vent, every corridor is there as part of some type of quest. Too many times I was called back to a room I had already broken into (the hacker in my character can&#8217;t stand a locked door) for some scripted event to happen. Without the reward of finding new places and secrets, I almost felt as though it was pointless to explore since the game would effectively take me to every place worth going. That&#8217;s not a good feeling in a Deus Ex game.</p>
<h2 id='The-Story'>The Story</h2>
<p><strong>This part has spoilers for both Deus Ex and DX:HR <a href="http://blog.codezen.org/2011/08/29/a-fans-review-of-deus-ex-human-revolution/#Conclusion">[skip]</a></strong></p>
<p>Finally, the story. Deus Ex had a lot of strong points, but its story was the strongest. It was vast in its scope. Your point of view shifted wildly as you played through the game. You were surprised and betrayed and truly felt the effect of your choices.</p>
<p>DX:HR tries to pull off the same feat. It does a much better job than the sequel-that-shall-not-be-named, but I still ended the game disappointed. I feel like I anticipated every twist and turn. The first time we heard of Pan&#8230; Pan&#8230; Panchaea? However you spell the arctic research facility, I knew I was going to be visiting it. The LIMB clinic biochip replacement because of the glitches? I <em>knew</em> that I should avoid it. The instant that it was revealed that Dr. Reed was &#8220;dead&#8221; I knew she wasn&#8217;t (although I admit I doubted myself when reading her autopsy).</p>
<p>I&#8217;m not sure why. Maybe it&#8217;s because I can never play a Deus Ex game for the first time again. Maybe I&#8217;m just not 15 anymore, but I&#8217;ve convinced myself that it&#8217;s more than mere experience that&#8217;s made the difference.</p>
<p>I felt that the choices that I made were of much less consequence than in the first game. This might be another place where I&#8217;m making an ass out of myself because I&#8217;ve only done one play through so I haven&#8217;t really seen how things <em>could&#8217;ve</em> turned out, however I feel that I have a grasp on the scope of the choices. On re-evaluating the choices in the first game I guess that they didn&#8217;t really have much effect on the overall story, but they had a psychological effect and they weren&#8217;t always obvious. The best example from the original is that I didn&#8217;t know, until my third play through (or so) that you could stay back (despite his urging) and save your brother, Paul. I always just assumed that I was supposed to run and he was supposed to die. Admittedly if you save him or he dies it has little effect in the long run (in one mission you have to recover his body if he&#8217;s dead, otherwise you don&#8217;t that&#8217;s about it &#8212; other than having him around your home base) but it&#8217;s psychological. I saved my brother, that&#8217;s important. Another big choice in the original was to kill Agent Navarre in the airplane. Basically you&#8217;re choosing whether you defect from UNATCO now or later, and the difference is very slight in the overarching storyline, but psychologically at the time of making the choice you feel like you have reached a giant fork and that feeling is all that&#8217;s important. DX:HR evoked no such feelings and each choice was obviously presented. The choice whether or not to frame Taggart is fun, but it&#8217;s effect is immediate and you never feel like it&#8217;s going to change the next steps of the game in any important way. Same with the biochip replacement.</p>
<p>I also mentioned betrayal. In the original Deus Ex, there was <em>nothing</em> more mind-blowing than escaping a prison complex full of secret police only to realize it&#8217;s in the basement of the department you used to work for. Yep, this super secret prison is actually right there where you happily and obliviously worked for the first couple of missions. It was totally shocking. That&#8217;s not a twist you can anticipate just by being aware of common cultural tropes.</p>
<p>The story suffers from the same fatal flaw that the level design did though. It&#8217;s effective and not much more. I can say that the story left me in the dark in terms of what I was going to be doing next, up until the very end. I didn&#8217;t know I was going to Shanghai until I was two minutes from being there. When I woke up in a cargo pod in Singapore, it was news to me. The story does have that going for it: it got me from one place to another with a purpose. If this was <em>any other game</em> that would be enough, Half-life even made its name doing this. But this isn&#8217;t just any game, this is Deus Ex.</p>
<p>The original story dealt with the Illuminati, the world government, secessionists. Conspiracy on an unknown number of levels that you had been thrust into as a wildcard. This story attempted to weave those elements into it (the Illuminati are mentioned, the crazy radio DJ ranting about the Bilderbergs, etc.) but failed to really make me feel like I was taking part until the last minute. In essence, the new storyline was attempting to weave conspiracy and corporate espionage into the main story, which was the most basic and utterly <strike>over done</strike> classic save-the-girl storyline. Here&#8217;s the true problem: JC Denton was a government operative that felt betrayed by the system that created him. JC was out for Truth with a capital T. The Truth to destroy those that had made and subsequently deceived him. Adam Jensen, as much as I loved playing him, was a bodyguard trying to get his woman back.</p>
<h2 id='Conclusion'>Conclusion</h2>
<p>Don&#8217;t get me wrong, this game was a lot of fun. I&#8217;m already planning another play through because, despite the fact that the choices were obvious and anemic, I&#8217;m interested in how the game changed and how it would play if I couldn&#8217;t open literally every door and hack every computer I found. It&#8217;ll also be nice to try out some of the more aggressive augmentations. Perhaps on this run through I&#8217;ll discover secrets and realize my previous statements are false or come to a greater appreciation of the game in general.</p>
<p>All in all, it&#8217;s worth it to check out, even if it isn&#8217;t as good as the original. This is definitely not a game that will be forgotten and it gives me hope that the next iteration will be even better. Hopefully, with strong reviews and sales, we won&#8217;t have to wait another 10 years either.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codezen.org/2011/08/29/a-fans-review-of-deus-ex-human-revolution/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Taking Personal Notes</title>
		<link>http://blog.codezen.org/2011/08/24/taking-personal-notes/</link>
		<comments>http://blog.codezen.org/2011/08/24/taking-personal-notes/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 17:01:01 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.codezen.org/?p=391</guid>
		<description><![CDATA[I&#8217;ve just started on a new team at work, which essentially means I have a clean slate for the first time since I got out of college and moved to Austin for IBM three years ago. Of course, since then, I&#8217;ve had a good three years of work experience which, while certainly not impressive, means [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just started on a new team at work, which essentially means I have a clean slate for the first time since I got out of college and moved to Austin for IBM three years ago. Of course, since then, I&#8217;ve had a good three years of work experience which, while certainly not <em>impressive</em>, means that I can avoid all sorts of newbie mistakes that I made when coming into my first project.</p>
<p>One of those mistakes, I believe, was not taking proper notes. And by &#8220;proper&#8221; I mean digital, searchable, and accessible from anywhere. There are probably five or six notebooks of various dimensions that I&#8217;ve alternatingly filled with doodles and cryptic notes taken on phone calls. Paper notes seemed like a good idea at the time &#8212; especially coming out of a college classroom &#8212; but, as the project stretched on and I couldn&#8217;t find that damned random IP address or URL I scrawled on a piece of paper (<em>I was sure was around here somewhere!</em>), it was clear I had failed.</p>
<h2>Desktop Software</h2>
<p>There are a lot of neat programs out there that I discovered looking for a good solution. GNOME actually comes with <a href="http://projects.gnome.org/tomboy/index.html">Tomboy</a> (or <a href="https://live.gnome.org/Gnote">gnote</a> if you&#8217;re not down with the whole mono thing) which has the right idea with a wiki-ish syntax, but having to keep things synced with rsync or something doesn&#8217;t appeal. If I was going to hand synchronize I might as well use Vim. To wit, there&#8217;s actually <a href="http://code.google.com/p/vimwiki/">Vimwiki</a> which seems a bit anemic although it does a good job of keeping in the Vim spirit. There&#8217;s also <a href="http://www.jhorman.org/wikidPad/">Wikidpad</a>, a notepad-esque wiki with a bunch of fun icons and settings, that looked neat as cross-platform solution &#8212; I haven&#8217;t actually used a Windows box in years, but I still have a lingering fear that I&#8217;ll be in the improbable situation in which I need to look something up from one. Not a cold sweat kind of fear, but it&#8217;s still something that I&#8217;d like to be able to do.</p>
<p>All of these solutions require a client though and either it&#8217;s Linux only and ubiquitous or cross-platform and a bit of trouble. None of them sync either. Also, what about my phone? Notebooks are great because they&#8217;re portable, so I&#8217;d like to be able to access notes from a coffee shop or hotel without lugging my laptop or counting on laughable &#8220;business centers&#8221;. These solutions would probably be better suited to someone that wants to take notes in them instead of using a static text file on one machine. I&#8217;m sure there are lots of users out there like this, but I&#8217;m not one of them.</p>
<h2>The Cloud?</h2>
<p>There are some well known cloud solutions that run on Android and the desktop, like Evernote, which would get the job done but as some of my <a href="http://blog.codezen.org/2011/06/29/android-mediatomb-upnplay-music-anywhere/">previous work</a> attests, I really prefer to keep my data out of the cloud and on my home servers if at all possible and, even better, using open source. In the case of work notes, I have to be very careful with security. I can&#8217;t have unknowns looking at my notes when they include stuff like phone numbers and passcodes, hostnames and passwords, potentially confidential attachments in the future. Even (or maybe especially) if they double super secret swear not to look, they <em>can</em>.</p>
<p>Since I have no desire to write any sort of synchronization script, or an Android app, or to keep my data on someone else&#8217;s machines, I narrowed my choices down to browser based solutions. Every platform has a browser, right?</p>
<h2>Pocket Wikis</h2>
<p>There are a number of browser wiki implementations (like <a href="http://stickwiki.sourceforge.net/index.html">Wiki on a Stick</a>, or <a href="http://www.tiddlywiki.com/">TiddlyWiki</a>) that are predicated on simplicity such that you can toss them on a USB key and read them almost anywhere and usually write them too, with browser support. However these are minimal to the point of ugliness and I&#8217;m not the kind of person that carries a USB key in my pocket. Seems like a useful thing to have on hand, but I have some sort of psychological aversion to it because I&#8217;m deadly afraid of breaking it in half. $400 phone? No problem. $30 USB stick? Oh no! What if I break it!? Of course, you can apparently use these single-file wikis from your Android phone (i.e. using <a href="http://mgsimon.de/android/andtidwiki">AndTidWiki</a>), which is definitely cool considering you don&#8217;t need to have any connectivity and you&#8217;re much more likely to be carrying your phone than having your laptop out, but then to actually read on a different screen (or use a real keyboard to edit it) you have to be carrying your USB cable or use another transfer method at which point you&#8217;re back to hand synchronization. Having the cable when you want to edit probably isn&#8217;t too bad &#8212; it is part of your charger after all &#8212; and small notes like addresses and phone numbers can be input easily enough on a phone keyboard.</p>
<p>The pocket wikis might be great if you&#8217;ve got a companion USB key on you all the time, or you&#8217;re cool using it on your phone 100% of the time. Offline access is definitely a bonus and you don&#8217;t get more cross-platform than HTML/Javascript these days. I was close to using this solution, but I&#8217;m hardly ever without internet (thankfully) and it&#8217;s also very theoretically dangerous to be walking about with all of your important / confidential information on an easy to lose device. Add the minor annoyance of having to make major edits to the wiki with the phone plugged into a desktop and I wasn&#8217;t sold.</p>
<p>At this point, I&#8217;m basically down to using a web server with a real, honest to $DEITY wiki. That lets me use it from my phone or an arbitrary computer with a browser. There are a ton of real wikis out there. Wikipedia&#8217;s servers run Mediawiki which is entirely open source, but then again I&#8217;m not exactly going to be serving 100,000 articles to millions of users with this thing so that seemed like overkill. Enter MoinMoin.</p>
<h2>MoinMoin</h2>
<p><a href="http://moinmo.in">MoinMoin</a> is essentially the perfect solution. It&#8217;s a very well known and widely used piece of software. It&#8217;s written in Python so if I ever needed to screw with it, I could. As I mentioned before it&#8217;s a <em>real</em> wiki with all that that entails (stuff like templating, history, a real interface for editing, markup, etc.) but as the true coup de grace to the other solutions, it has a self-contained &#8220;Desktop Edition&#8221; which means that it&#8217;s got a low-performance low-resource built-in webserver that just works, pre-configured for localhost:8080. That&#8217;s <em>perfect</em> for a wiki that will essentially only have one user.</p>
<p>For added security, I left the Desktop Edition webserver running on localhost:8080 and use my favorite encryption method &#8211; SSH port forwarding &#8211; to forward the port to any machine that I&#8217;m using. Even my phone with ConnectBot, or to the spectre of an unknown Windows machine with PuTTY.</p>
<p>Digital? Check. Searchable? Check. Accessible anywhere? Check. We have a winner.</p>
<p>I&#8217;ve been using MoinMoin for about two weeks now and I&#8217;ve put everything in it. Passcodes, bug links, TODOs for work and home, lists of helpful resources, server lists, even detailed instructions for doing PowerPC netboots from an internal server. I feel better already.</p>
<p>For anyone interested in doing the same thing, MoinMoin includes <a href="http://moinmo.in/DesktopEdition">instructions</a> for a basic self-contained install. You can even keep it upgraded just by untarring over your current directory structure and restarting the web server script.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codezen.org/2011/08/24/taking-personal-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Dungeons of Dredmor</title>
		<link>http://blog.codezen.org/2011/07/17/the-dungeons-of-dredmor/</link>
		<comments>http://blog.codezen.org/2011/07/17/the-dungeons-of-dredmor/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 08:02:16 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[gaming]]></category>

		<guid isPermaLink="false">http://blog.codezen.org/?p=375</guid>
		<description><![CDATA[I grabbed &#8220;Dungeons of Dredmor&#8221; today on Steam. Gaslamp Games, the publisher, is promising Linux binaries, but I really wanted to crack into it, so I spent the $4.50 on it and fired it up in Wine. Let me say, for less than the price of a latte at Starbucks, it&#8217;s a whole lot of [...]]]></description>
			<content:encoded><![CDATA[<p>I grabbed &#8220;Dungeons of Dredmor&#8221; today on Steam. Gaslamp Games, the publisher, is promising Linux binaries, but I really wanted to crack into it, so I spent the $4.50 on it and fired it up in Wine.</p>
<p>Let me say, for less than the price of a latte at Starbucks, it&#8217;s a whole lot of fun. It definitely calls forth the memories of Nethack and all of its other rogue-like brethren. It also is a bit reminiscent of Diablo (a similarity given a nod with the Horadric Lutefisk Cube), but in true rogue like fashion, it&#8217;s less about story and more about trying to squeeze the most out of a character before you die.</p>
<p>Yes. Permadeath. I was pleased to see that it&#8217;s on by default &#8211; although even having an option is further evidence that it&#8217;s walking the fine line between Nethack and Diablo 2 (which implemented permadeath as optional &#8220;hardcore mode&#8221; after beating the game once through). As always it&#8217;s both a blessing and a curse. Blessing because it makes you feel the fear of real death, a feature lacking in many modern games where a death means hitting F9 and restarting from where you were two minutes previously. Permadeath adds to the tension which is why it&#8217;s the hallmark of a rogue-like. It&#8217;s a curse because, obviously, it can mean that you just spent 5 hours and have nothing to show for it except another run at your high score.</p>
<p>My top score is about 12k. It&#8217;s not impressive, but after maybe 10 characters I&#8217;m finally getting the hang of it. Unfortunately there is no manual, so it seems that, aside from a very basic tutorial that covers the barest essentials (and will be old hat for rogue veterans), you&#8217;re basically on your own to figure out what everything means.</p>
<p>There&#8217;s a good selection of (34!) base skills, each with a linear progression between three and eight feats/skills/spells you can add beyond the initial one granted just by choosing the base skill. You get one point per level. Now, a linear tree in a game like Dragon Age was very disappointing (and indeed I was kinda disappointed with Dragon Age from a mechanics point of view), but this is a perfect optimization for a rogue like with permadeath. A broad set of base skills with shallow skill trees following just means you don&#8217;t spend much time playing an identical character if you die a couple of times. Each base skill gets you started off right so you can tell the difference in play style immediately. Very important when you may be starting over dozens of times.</p>
<p>A fresh character can choose 7 base skills to build upon. 7 skills is plenty to make sure your character is broad enough to survive the game. There&#8217;s also a good mix between wizard, rogue, warrior and crafting skills so there&#8217;s plenty there for characters of all stripes. As an added bonus, they added a &#8220;last choice&#8221; option (in case your previous build didn&#8217;t get as far as you thought it should have) and a &#8220;random&#8221; option which I&#8217;m sure will be the basis for a lot of fun for gamers seeking a new challenge. Unfortunately, the only way to view the skills in a tree is to start a character and look at the sKills (sic) menu. On one hand this encourages experimentation but on the other hand I&#8217;d like to know what I&#8217;m getting into. What does &#8220;Necronomiconomics&#8221; mean? Or &#8220;Viking Wizardry&#8221;? You have no clue until you start a character.</p>
<p>Aside from skills, you have a huge amount of character attributes. These aren&#8217;t your normal D&amp;D traits either. Your primary attributes are &#8220;Burliness&#8221;, &#8220;Sagacity&#8221;, &#8220;Nimbleness&#8221;, &#8220;Caddishness&#8221;, &#8220;Savvy&#8221;, and &#8220;Stubborness&#8221;. In addition there are many other stats, like magic resistance, chance to block, resistances, etc. It&#8217;s a nice level of complexity. Your character also has your typical &#8220;slots&#8221; : melee weapon, ranged weapon, torso, head, feet, shield, a couple of magic rings and a necklace all of which can be filled with all manner of magical and cursed trinkets.</p>
<p>Battle is pretty straightforward turn based. Lots of different damage types. Plenty offensive and defensive skills to use. It&#8217;s possible to block, dodge and counter as well as other skill specific extras automatically employed in combat (like blackjack). Some monsters seem to be immune to some skills. I haven&#8217;t gotten far enough to see if there are any real nasties (like physical immunes or ranged casters), but I haven&#8217;t been disappointed so far. The set of templates seems a bit small, but again I&#8217;ve only gotten to level 2 so I can&#8217;t judge.</p>
<p>Crafting is also neat and sufficiently complex. If you choose a crafting skill, you usually start with some device to activate and a set of basic, though useful, recipes. As you go through the game you can expand your repertoire by finding bookcases which teach you new ones. It&#8217;s especially useful for keeping a ranged character equipped with ammunition or a mage stocked with <del>booze</del> mana (yes they are equivalent). Turning ingots into 9 bolts can be very helpful when luck hasn&#8217;t provided you with enough. Traps are also craftable, but since the dungeons are absolutely rife with the things, I&#8217;ve found that they&#8217;re more useful to just pick up and reuse (that is, if you have the skill to do that).</p>
<p>Honestly, the menus and interface are the weakest part of the game. Icons in general are all too small. It&#8217;s very difficult to tell the difference between different wands / bolts / food items in your belt. The inventory management had the right idea (set # of squares like Diablo, each item takes one square and some are stackable) and even a much-needed &#8220;sort&#8221; function that I quickly became a fan of, but it&#8217;s a bit too clicky for me. For example, as far as I can tell, there&#8217;s no way to just &#8220;pick-up&#8221; an item&#8230; you need to pick it up and place it in your inventory. It doesn&#8217;t matter if you&#8217;ve got enough space you have to click move click to get it done <strong>Correction:</strong> <em>Commenter eselyoutee notes that you can shift + click to automatically place it in your inventory. I also discovered you can just drag to your person.</em>.</p>
<p>Attributes, and stats (and other things like damage types and resistances) are symbolized by very small and incomprehensible icons. I&#8217;m starting to get the down pat, but when you&#8217;re comparing two different swords and it&#8217;s not obvious what their attributes are because it just shows &#8220;-weird icon- 2&#8243; or something, it&#8217;s a pain to try and decipher.</p>
<p>As mentioned, crafting is a well-done mechanic but the interface is kludgy too. For some crafting it&#8217;s simple. Take some &#8220;native gold&#8221;, put it in the ingot press, smelt, and there you are: two ingots of gold. But for some recipes that you actually have to look up, it&#8217;s a pain to look at the recipe, select it (at which point the game puts its red outline in the crafting slots) and then try and figure out what goes in there. The killer thing here is that the recipe interface knows if you&#8217;ve got the ingredients so why on earth doesn&#8217;t it just take them out of your inventory and get them ready for you to hit &#8216;smelt&#8217; or whatever verb it is? I don&#8217;t have eidetic memory, friends. <strong>Correction:</strong> <em>I&#8217;ve also discovered the &#8220;autofill&#8221; button under the boxes that blends in with the decor a bit. I still don&#8217;t get why it wouldn&#8217;t just automatically do that and return them to the inventory if you close without activating, but nonetheless it makes crafting easier.</em>.</p>
<p>Likewise the whole belt / active spell thing is harder to use than it needs to be. Like Diablo before it you have a left and a right click attack. Unlike Diablo it seems that the left click is always your melee attack, and your right click has to function as your ranged and all of your spells/skills. That in itself isn&#8217;t so bad (you&#8217;re going to want a melee attack no matter what kind of character you are), but in order to, for example, switch to your ranged attack instead of a skill, you have to either go into your inventory or hit SHIFT + # for your belt. I can&#8217;t say how many times I&#8217;ve been trying to use the hotkeys and gotten that reversed. Trying to switch to a skill and thinking I needed shift at which point I do something stupid like eat a piece of fruit and proceed to take a round of beatings from the enemies standing around me. In my opinion Diablo did this perfectly. Have some inventory you can quick switch to, but allow a set of keys (like number keys, or F keys) be assigned to any item / skill for either left or right click. That way I can setup the hotkeys any way that my brain wants to. I can make F1, F2, and F3 my favorite bolts / wands and then F5 and F6 my primary skills, etc. (I particularly like the F keys because on most keyboard they have built in groupings). The whole shift thing doesn&#8217;t work for my brain.</p>
<p>Of course, all of this interface griping is minimized if for no other reason than Dredmor is a turn-based game (again, in true rogue-like fashion). I can take the time to dick around in the inventory box and drag ingredients hither and yon because I have an infinite amount of time before anything else is going to happen to me. Even in battle, making a quick selection is unnecessary because (if I&#8217;m still alive) I could take ten minutes to make my next move. That said, it breaks the flow of the game, and making a mistake taking your turn will lead to (one of) your deaths.</p>
<p>Interface griping notwithstanding, there&#8217;s a lot of fun material in Dredmor. I haven&#8217;t gotten very far into it, but there are myriad items, a bunch of damage types, a massive number of different spell effects (both negative and positive), tons of skills, and a whole lot of crafts. The game is a very light-hearted romp from its items and skills to its art direction and monster utterances. Combine that depth and irreverence with randomly generated dungeons and you&#8217;ve got quite a time sink on your hands.</p>
<p>All in all, I&#8217;m looking forward to playing it more and I&#8217;m hoping that some of the interface improvements can be made in subsequent patches. And c&#8217;mon&#8230; at $5 even those that aren&#8217;t pre-established rogue-like fans are practically guaranteed to get their money&#8217;s worth and more.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codezen.org/2011/07/17/the-dungeons-of-dredmor/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Android + Mediatomb + UPnPlay = Music Anywhere</title>
		<link>http://blog.codezen.org/2011/06/29/android-mediatomb-upnplay-music-anywhere/</link>
		<comments>http://blog.codezen.org/2011/06/29/android-mediatomb-upnplay-music-anywhere/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 04:31:02 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.codezen.org/?p=262</guid>
		<description><![CDATA[To be clear, this post is about hitting a UPnP (streaming media) server securely from outside of the LAN. If you just want LAN access, all you need is MediaTomb and UPnPlay. No special config. In addition, as some Redditors pointed out, you can use Subsonic for an easier open source solution. I already had [...]]]></description>
			<content:encoded><![CDATA[<p><strong>To be clear, this post is about hitting a UPnP (streaming media) server securely from outside of the LAN. If you just want LAN access, all you need is MediaTomb and UPnPlay. No special config.</strong></p>
<p><strong>In addition, as some Redditors pointed out, you can use Subsonic for an easier open source solution. I already had MediaTomb and I wanted to use it. In addition, this solution should work with all other UPnP devices (which Subsonic / Google Music don&#8217;t run on) and for video streaming (with vPlayer, or another app UPnPlay can talk to) as well.</strong></p>
<p><strong>NO ROOT REQUIRED</strong></p>
<div id='toc' class='post-262'><div id='toc_title'>Contents</div>
<ul><li><a href="#Introduction">Introduction</a></li>
<li><a href="#MediaTomb">MediaTomb</a>
<ul><li><a href="#Installation">Installation</a></li>
<li><a href="#Configuration">Configuration</a></li>
<li><a href="#Starting-the-server">Starting the server</a></li>
<li><a href="#Adding-media">Adding media</a></li></ul></li>
<li><a href="#SSH">SSH</a>
<ul><li><a href="#KeepAlive">KeepAlive</a></li></ul></li>
<li><a href="#External-Connection-Setup">External Connection Setup</a></li>
<li><a href="#UPnPlay">UPnPlay</a>
<ul><li><a href="#Test-MediaTomb-over-LAN">Test MediaTomb over LAN</a></li>
<li><a href="#Setting-up-a-WAN-server">Setting up a WAN server</a></li></ul></li>
<li><a href="#Secure-Connection-via-SSH-with-ConnectBot">Secure Connection via SSH with ConnectBot</a>
<ul><li><a href="#Setup-a-Port-Forward">Setup a Port Forward</a></li></ul></li>
<li><a href="#Finally-UPnPlay-WAN">Finally, UPnPlay WAN</a>
<ul><li><a href="#If-you-didnt--couldnt-clone">If you didn&#8217;t / couldn&#8217;t clone</a></li>
<li><a href="#UPnPlay-Troubleshooting">UPnPlay Troubleshooting</a></li></ul></li>
<li><a href="#Concluding-Notes">Concluding Notes</a></li>
</ul>
</div>
<h2 id='Introduction'>Introduction</h2>
<p>So Juliette and I ditched our respective cellphones (hers the aging dumbphone LG Lotus, mine the hard fighting but obsolete HTC Hero) with EVO3Ds, or 3VOs as the internet has nicknamed them. The phones are really cool, but I also noted that HTC advertised them as DLNA capable. This support <strong>isn&#8217;t required</strong> for these steps, they should work anywhere that UPnPlay works (Android 1.6+ AFAICT), but it was the inspiration for the idea.</p>
<p>DLNA is a collection of companies agreeing on standards, and UPnP (Universal Plug &#8216;n Play) is their set of standards for device cooperation. A lot of devices have come out in the past couple of years that interoperate. Very cool, although my first tangle with UPnP was with my PS3 a couple of years ago and it was very frustrating because the PS3 is a mis-mash of bad formats and pointless restrictions. Fortunately, though, that meant that when I started to experiment with the UPnP capabilities of the 3VO, I had a good starting knowledge. It still took me a bit of time to figure out how to be as remote as I wanted to be though. MediaTomb and the HTC Sense music player work pretty well together over WiFi but the Sense player has some drawbacks.</p>
<ul>
<li><strong>Can&#8217;t play Oggs</strong>. This was a major WTF. I couldn&#8217;t figure out why it wasn&#8217;t listing my music. One of the reasons I bought Android (among many) was that it had better support for open formats, particularly Ogg Vorbis, which is shown to have better quality at lower bitrates (very important when streaming) and, even better, it&#8217;s a totally free and unencumbered format. For an interim, in the house solution I settled on MP3 which the Sense player picked up immediately.</li>
<li><strong>No built-in WAN support</strong>. This is typical of a lot of players, and the HTC player (along with a lot of them in the Market) won&#8217;t even let you try to hit a remote server unless you&#8217;re on a WiFi connection. That&#8217;s all well and good, but sucks if you&#8217;re planning on streaming while driving or any other place outside of your home.</li>
</ul>
<p>Given those disappointments, I tried a lot of approaches to solve the problem. One approach that was suggested in various forums was to setup a VPN, which would allow the Sense player to think it&#8217;s on your home network and make things like UPnP server discovery work out of the box. That&#8217;s a huge pain in the ass to setup, especially if you&#8217;re security minded, and most importantly it <strong>didn&#8217;t work</strong>. I&#8217;m not a networking expert so it&#8217;s possible that my VPN setup was screwed up (although my Android was able to connect), but it was hard enough in the end that I didn&#8217;t want to maintain the solution anyway. Another solution I thought of would just be to run an NFS server, or another remote filesystem but those require root, which 3VOs don&#8217;t currently have despite a promise from HTC to unlock soon.</p>
<p>So, without further ado, the <strong>rootless</strong> way to stream your media anywhere securely.</p>
<blockquote><p><strong>NOTE:</strong> Non-Linux users can get a bit of strategy from this post, but not very many details. There are Windows UPnP servers that will work insecurely in this manner, just not MediaTomb, and there are some Windows SSH servers, but I don&#8217;t know anything about them. Unless you think you&#8217;re confident enough to translate the instructions, turn back now.</p></blockquote>
<h2 id='MediaTomb'>MediaTomb</h2>
<p>The first thing you have to do is setup a server to serve your content UPnP style. My favorite piece of software for this is <a href="http://mediatomb.cc">MediaTomb</a>. It&#8217;s free, it&#8217;s open source, and I already had familiarity with it getting the aforementioned PS3 to work with it. It also has a lot of neat transcoding options, which were invaluable for the PS3, but fortunately aren&#8217;t necessary for streaming Oggs and MP3s this way. If you&#8217;re serving FLACs (which are pretty high bitrate for streaming over 3G/4G) or another exotic format that your phone won&#8217;t play then I refer you to the <a href="http://mediatomb.cc/dokuwiki/transcoding:transcoding">MediaTomb wiki article on transcoding</a> and suggest that you judiciously use Google.</p>
<h3 id='Installation'>Installation</h3>
<p>Most modern Linux distros have a mediatomb package. Throughout this post I&#8217;ll assume Arch Linux, but the translation between pacman and apt-get or yum should be pretty straightforward. From the terminal:</p>
<p><code><br />
$ sudo pacman -S mediatomb<br />
</code></p>
<h3 id='Configuration'>Configuration</h3>
<p>I chose to run MediaTomb as my user because it&#8217;s better practice than having root daemons opening ports, even if they&#8217;re secure. Just running mediatomb from the command line will make it generate the default user config <code>(~/.mediatomb/config.xml)</code> along with an empty database file. The output of the daemon is quite useful and the default config is basically going to be right for our purposes. There are just two suggested tweaks to modify the default config:</p>
<h4>Port and Interface</h4>
<p>You&#8217;re going to need to specify a port, because Mediatomb will use one randomly if you don&#8217;t. That&#8217;s usually not a problem because generally these servers are &#8220;discovered&#8221; by the streaming device, but in our case (usage from WAN) we have to do the discovery step for the application and you don&#8217;t want the port to change. In addition, you want to be serving this content to your external network device, in my case (and most cases for wired connections) <code>eth0</code>. I added the following to my config <code>(~/.mediatomb/config.xml)</code>:</p>
<pre>&lt;?xml ...&gt;
    &lt;config ...&gt;
        &lt;server&gt;<strong>
            &lt;port&gt;49153&lt;/port&gt;
            &lt;interface&gt;eth0&lt;/interface&gt;</strong>
...</pre>
<p>That&#8217;s pretty much it for the <code>config.xml</code>. If you&#8217;re shy of opening an editor or messing with XML, both of these settings can be changed with command line switches when you start the server as well. You&#8217;d just use the <code>-e &lt;interface&gt;</code> and <code>-p &lt;port&gt;</code> options on invoking in the next step. Being familiar with the XML config is only really necessary for more advanced options, like transcoding.</p>
<h3 id='Starting-the-server'>Starting the server</h3>
<p>Starting the server is as easy as invoking MediaTomb from a terminal:</p>
<pre>
$ mediatomb
</pre>
<p>It will output some useful information. In particular you want to see:</p>
<pre>
INFO: Configuration check succeeded.
INFO: Initialized port: 49153
INFO: Server bound to: [interface IP]
INFO: MediaTomb Web UI can be reached by following this link:
INFO: http://[interface IP]:49153/
</pre>
<p>Where interface IP is most likely your LAN IP. Mine is <code>192.168.1.25</code> for example.</p>
<h3 id='Adding-media'>Adding media</h3>
<p>Now for the most important (and fortunately easiest) part: getting MediaTomb to serve up some content. MediaTomb has a nice and simple web interface that runs on the same port as the server. As it says in the above output you can hit the interface with the link <code>http://[interface IP]:49153</code>. Just paste that into the address bar of your favorite (Javascript capable, sorry lynx) browser and you should be greeted with a screen like this:</p>
<div id="attachment_271" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.codezen.org/wp-content/uploads/2011/06/mediatomb2-e1309299281572.png"><img src="http://blog.codezen.org/wp-content/uploads/2011/06/mediatomb2-e1309299281572-300x72.png" alt="Example MediaTomb interface" title="Example MediaTomb interface" width="300" height="72" class="size-medium wp-image-271" /></a><p class="wp-caption-text">Example MediaTomb interface</p></div>
<p>I won&#8217;t break down the details very much (this post is only tangentially about MediaTomb), but you initially go to the Filesystem section (the one I&#8217;m on in the screenshot), browse to your media using the lefthand tree, select the root directory you want to serve up (in my case <code>music-ogg</code>) and then you hit the add button (looks like a plus in the upper right corner), and optionally tell MediaTomb to watch it (show autosync options with the plus with the circle of arrows around it). After setting that up, you can see the files that are being served in the Database section. The Database section is occasionally useful as it can give you details about how MediaTomb is using a file. In particular it&#8217;s MIME-type which is how UPnP clients figure out which files they can play.</p>
<p>I setup mine such that it recursively monitors my music directory with inotify, which means I can drop files into the directory and they&#8217;ll automatically be served. This is probably the best way, unless you want to be more selective about what you&#8217;re serving up.</p>
<p>It may take a bit to add your whole directory to the database, but the server is actually operational as it adds the directory, so don&#8217;t let that deter you from continuing.</p>
<h2 id='SSH'>SSH</h2>
<p>The next step is all about security when you connect to MediaTomb. You should install an OpenSSH server. Most likely your install already has it, but it might not be running. If it doesn&#8217;t have it, then you should install it and start it:</p>
<pre>
$ sudo pacman -S openssh
$ sudo /etc/rc.d/sshd start
</pre>
<p>If you&#8217;re running pretty much any distro other than Arch, you&#8217;d install <code>openssh</code> or <code>openssh-server</code> and use another <code>/etc/init.d/</code> script instead. Look for <code>sshd</code> or <code>openssh-server</code>. Check your distro&#8217;s wiki or Google if you need help starting the SSH daemon.</p>
<p>By default, the SSH server runs on port 22.</p>
<p>We&#8217;ll connect to MediaTomb via SSH later in the post.</p>
<h3 id='KeepAlive'>KeepAlive</h3>
<p>There is one foible with SSH that should be ironed out now too. We&#8217;re going to setup a long term connection to the server over SSH, but a lot of routers and hardware will terminate a connection if it&#8217;s idle for too long. That&#8217;s not a problem if you&#8217;re going to be streaming over the connection the whole time, but what if you stop and start again? The answer is KeepAlive which, as the name implies, keeps the connection alive by sending empty traffic every so often to inform hardware that the connection is still necessary.</p>
<p><strong>UPDATE</strong>: I believe I got this wrong on the initial posting. In order to enforce this from the server side, instead of the client side (which is what <code>~/.ssh/config</code> affects), you need to add the following to <code>/etc/ssh/sshd_config</code></p>
<pre>
ClientAliveInterval 60
ClientAliveCountMax 3
</pre>
<p>This will send the client some traffic every minute to keep the connection alive, and will timeout the connection on the server side after 3 packets have been lost, for a total of 3 minutes of the client not responding (i.e. not returning the packets which is different than just sitting idle).</p>
<h2 id='External-Connection-Setup'>External Connection Setup</h2>
<p>If you&#8217;re already familiar with opening ports on your router and addressing your LAN from outside the house, just forward your SSH port to the right machine and skip this part.</p>
<p>The first is that you&#8217;re going to need a way to address your home computers. I use <a href="http://dyndns.org">DynDNS</a> for a free dynamic hostname, and <a href="http://ddclient.sf.net">ddclient</a> to keep the dynamic hostname up to date automatically.</p>
<p>You also need to setup your router to automatically forward traffic it receives on the SSH port (22 unless you changed it) to your server. Look for options in your router config like &#8220;Applications and Gaming&#8221; (which is a stupid name for it, but that was it on my Linksys) or, more simply, &#8220;Port Forwarding&#8221;. Setup TCP forwarding to your machine running MediaTomb and SSH. This is made much easier if you either have your computer setup for a static LAN IP, or configure the router to hand out a consistent IP with DHCP to the server&#8217;s MAC Address so that the port forwards are always to the right machine.</p>
<p>This is pretty standard fare for home servers, but if this isn&#8217;t enough to figure out what you need to do, DynDNS has a little <a href="http://www.dyndns.com/support/kb/dyndns.html">walkthrough</a> that should help get you setup. They point you to portforward.com which will try to sell you some BS tool to do it automagically, but once you skip their advertisements they actually have decent information on a lot of router models. For all of these steps the only thing you should need is a browser, so don&#8217;t despair at the IE screenshots =).</p>
<h2 id='UPnPlay'>UPnPlay</h2>
<p>I searched for a long time for an app that supported WAN connections to MediaTomb and <a href="http://bebopfreak.wordpress.com/upnplayer/">UPnPlay</a> is the only option that I&#8217;ve found. It&#8217;s interface is a bit clunky, but it&#8217;s functional. You can grab it by searching for UPnPlay in the market or using this QR code via Appbrain:</p>
<div id="attachment_281" class="wp-caption aligncenter" style="width: 160px"><a href="http://blog.codezen.org/wp-content/uploads/2011/06/upnplay-qr.png"><img src="http://blog.codezen.org/wp-content/uploads/2011/06/upnplay-qr.png" alt="UPnPlay QR Code" title="UPnPlay QR Code" width="150" height="150" class="size-full wp-image-281" /></a><p class="wp-caption-text">UPnPlay QR Code</p></div>
<h3 id='Test-MediaTomb-over-LAN'>Test MediaTomb over LAN</h3>
<p><strong>This is optional, but getting UPnPlay to detect over LAN will make the WAN configuration much easier</strong></p>
<p>The first thing you should do when you get UPnPlay installed is test that your MediaTomb setup works via LAN. Get on to your WiFi, fire up UPnPlay and it <emph>should</emph> automatically detect MediaTomb. Under it, you should be able to access your media in various forms, either by file path or by a number of pre-defined groups (like Audio > Album, etc.). If UPnPlay doesn&#8217;t recognize MediaTomb, you&#8217;re in trouble, I would suggest checking the <code>mediatomb</code> output, or  running <code>mediatomb --debug</code> and seeing if the server even recognizes that it&#8217;s being connected to. If not, then your first step is to figure that out.</p>
<p>If you have to debug this step, I suggest quitting (hit back on the library list and it will confirm quit) and restarting UPnPlay each time you test a change. Supposedly you can refresh the devices from the menu, but I&#8217;ve had no luck with it.</p>
<h4>Directories, but no media</h4>
<p>If you can browse your directories, but none of the directories have any files, then UPnPlay most likely isn&#8217;t recognizing the media format. As I mentioned above, MediaTomb has a lot of nice transcoding options that I won&#8217;t cover here, but they can be used to present any sort of weird file as one that your phone can play, and transcode that file on the fly when requested. Just to test everything else is working I&#8217;d suggest getting some vanilla MP3s/Oggs and adding them to MediaTomb. Those should show up without any special settings.</p>
<h3 id='Setting-up-a-WAN-server'>Setting up a WAN server</h3>
<p>If everything above was hunky dory and you can access all of your media over WiFi, excellent. At this point, we&#8217;re going to prepare a WAN server definition for UPnPlay that won&#8217;t be used immediately but will make your life easier in a couple of steps.</p>
<p>First, enable WAN server:</p>
<pre>
Menu > Settings > Media Sources > WAN Server
</pre>
<p>Then, while UPnPlay has your MediaTomb server detected, long press the MediaTomb item in the library list and select &#8220;<strong>Clone WAN Server</strong>&#8221; You needn&#8217;t make any changes <emph>except</emph> changing the first box after &#8220;Host&#8221; to &#8220;localhost&#8221; or &#8220;127.0.0.1&#8243; instead of the IP that&#8217;s there. Hit OK and we&#8217;ll save that for later. Go ahead and quit UPnPlay too (hit back on the main screen, it will prompt you to quit).</p>
<h2 id='Secure-Connection-via-SSH-with-ConnectBot'>Secure Connection via SSH with ConnectBot</h2>
<p>At this point, you should have a functional MediaTomb installation and UPnPlay working (over WiFi for now). Now we&#8217;re going to <strong>turn off WiFi</strong> and use Android&#8217;s excellent SSH client, <a href="http://code.google.com/p/connectbot/">ConnectBot</a> to securely connect to the server. First things first, install ConnectBot by searching for it on the Market or using the following QR code:</p>
<div id="attachment_297" class="wp-caption aligncenter" style="width: 110px"><a href="http://blog.codezen.org/wp-content/uploads/2011/06/connectbot-qr.png"><img src="http://blog.codezen.org/wp-content/uploads/2011/06/connectbot-qr.png" alt="ConnectBot QR code" title="ConnectBot QR code" width="100" height="100" class="size-full wp-image-297" /></a><p class="wp-caption-text">ConnectBot QR code</p></div>
<p>Using ConnectBot you should be able to access your server, <strong>with WiFi off</strong> using the dynamic hostname or IP you setup above. From the initial screen, &#8216;ssh&#8217; should be selected in the combobox and you specify <code>user@external-hostname</code> for the connection. When you input that it should attempt to connect, prompt you for your user&#8217;s password, and drop you in a shell. You don&#8217;t need to do anything with the shell.</p>
<p>If you&#8217;re unable to connect, most likely your hostname/IP is wrong (or not setup), or the port forward from your router to your server is messed up.</p>
<h3 id='Setup-a-Port-Forward'>Setup a Port Forward</h3>
<p>Here&#8217;s the cool part. We&#8217;re going to forward the server&#8217;s MediaTomb traffic (port 49153 in my example) directly to your phone. The traffic will be encrypted well, and obviously you have to authenticate to get it setup so it&#8217;s <strong>much</strong> more secure than just letting MediaTomb accept anybody&#8217;s connection. Not to mention that leaving MediaTomb unencrypted and accessible to all is most likely illegal, depending on your country&#8217;s view of file sharing.</p>
<p>To do this, while you&#8217;re looking at your home server&#8217;s shell, hit:</p>
<pre>
Menu > Port Forwards
</pre>
<p>And then, to add one:</p>
<pre>
Menu > Add Port Forward
</pre>
<p>The nickname doesn&#8217;t matter. The type of port forward is &#8220;<strong>Local</strong>&#8221; (i.e. on the phone), and the source port should be <strong>49153</strong>. The destination is a bit trickier. It needs to be how the <strong>server</strong> would refer to the port if you were logged into it. Basically you want to set it to &#8220;[Server's LAN IP]:49153&#8243;, where that IP should correspond with the IP in the MediaTomb output when you invoked it. In my case the value is &#8220;192.168.1.25:49153&#8243;. If you&#8217;ve got your /etc/hosts setup correctly it could also be &#8220;hostname:49153&#8243;.</p>
<p>Once you have the port forward setup, from your phone&#8217;s browser you should be able to access the MediaTomb media screen without WiFi by going to <code>http://localhost:49153</code>. That translates to &#8220;this device (localhost, the phone) port 49153&#8243; and will work if the forward is active. <strong>NOTE:</strong> Make sure you include the &#8220;http://&#8221;! If you just put &#8220;localhost:49153&#8243; the browser will interpret this as a Google search!</p>
<h2 id='Finally-UPnPlay-WAN'>Finally, UPnPlay WAN</h2>
<p>To double check, at this point you should be able to:</p>
<ul>
<li>Use UPnPlay over the LAN</li>
<li>Setup an SSH port forward to your server, with no WiFi</li>
<li>See the MediaTomb web interface by going to &#8220;http://localhost:49153&#8243; (with the http part!)</li>
</ul>
<p>If you can do all of those things, you&#8217;ve basically got it! Now you just need to fire up UPnPlay when you&#8217;re not on the WiFi. In the library list you won&#8217;t see your MediaTomb server. If you did the clone step above, you&#8217;ll see &#8220;MediaTomb (WAN)&#8221;. Hit that, it should connect, and cause a &#8220;MediaTomb&#8221; item to appear. Then you just access your music through that normal &#8220;MediaTomb&#8221; item. Golden!</p>
<h3 id='If-you-didnt--couldnt-clone'>If you didn&#8217;t / couldn&#8217;t clone</h3>
<p>If you&#8217;re trying to setup the WAN server option, but for some reason you&#8217;re away from the LAN and couldn&#8217;t do the clone step above, then you can manually add the WAN server.</p>
<p>First enable the WAN Server (this was covered in the clone step too):</p>
<pre>
Menu > Settings > Media Source > WAN Server
</pre>
<p>And then, from the library list (the initial screen):</p>
<pre>
Menu > WAN Server
</pre>
<p>Then fill out the fields:</p>
<pre>
<strong>Name</strong> Should be the same as the LAN server (MediaTomb by default)
<strong>Host</strong> localhost : 49153
<strong>Description</strong> /description.xml
<strong>UDN</strong> uuid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
</pre>
<p>Description is a path to the XML description of the server, so that&#8217;s the same for all MediaTomb servers. The UDN is the real pain in the ass and why cloning is so much more convenient. You can find the value for your server in the MediaTomb <code>config.xml</code> where it&#8217;s <strong>everything</strong> between the UDB tags <strong>including</strong> the uuid: part.</p>
<h3 id='UPnPlay-Troubleshooting'>UPnPlay Troubleshooting</h3>
<p>UPnPlay is a bit finicky. As I mentioned before, the interface is clunky but functional. Here are some tips:</p>
<ul>
<li><strong>UPnPlay seems to be unaware of network changes.</strong> If your connection changes (i.e. WiFi to 3G, 4G to 3G etc.), quit UPnPlay (hit back until it prompts to quit) and restart. Device refresh seems a bit odd and I spent a bit of time trying to connect over 3G only to realize that when I hit &#8220;MediaTomb&#8221; is was still trying to hit the LAN version. Tangentially, having the WAN server variant just spawn something that looks just just the LAN variant which you actually use is very confusing.</li>
<li><strong>If you can see your media files remotely you&#8217;re all set.</strong> Starting a song may take a bit to actually get traction (i.e. it fails to play the first five seconds a couple of times), but be patient. After the first song plays though I usually don&#8217;t have trouble moving on to the next track. Also, I haven&#8217;t tested the &#8220;Near Gapless Playback&#8221; option, but this might help between tracks.</li>
<li><strong>If you do lose connection without switching networks</strong>, check to make sure that your ConnectBot session is still active. If it&#8217;s closed, the port forward obviously won&#8217;t work.</li>
</ul>
<h2 id='Concluding-Notes'>Concluding Notes</h2>
<p>I didn&#8217;t cover automatically starting these up on boot. Currently, I start SSH with Arch&#8217;s <code>/etc/rc.conf</code>. Then, from <code>/etc/rc.local</code> I use <code>sudo jack -c mediatomb</code> to run the MediaTomb server as my user. <code>rc.local</code> is universal, as far as I know, but for starting daemons check your distro&#8217;s wiki.</p>
<p>I&#8217;ve tested this a bit around Austin. I haven&#8217;t had much luck (in general on Sprint) with 4G, but 3G seems to work consistently and stream Ogg files without taking too much of my upload bandwidth or stuttering. I&#8217;ve also tested it connecting from foreign WiFi and UPnPlay seems smart enough to use the WAN definition even if you&#8217;re hooked to WiFi (thankfully).</p>
<p>Clearly this is going to be highly contingent on your bandwidth on the server. If you&#8217;re in a low bandwidth situation, you can try transcoding into a lower quality stream but you might be better off with buying a bigger SD card =).</p>
<p>I haven&#8217;t attempted to get cover art to work. I also haven&#8217;t attempted videos, although UPnP (and UPnPlayer with some third-party video apps) supports it. I can&#8217;t see a reason it <emph>wouldn&#8217;t</emph> work however. I can say that streaming remotely, the Amazon cover art lookup doesn&#8217;t seem to work. I don&#8217;t have a problem with this as I&#8217;m more concerned with bandwidth and performance, but don&#8217;t expect it to work out of the box.</p>
<p>Lastly, Bebopfreak, UPnPlay&#8217;s developer, will not take support requests on this feature. I, on the other hand, would be happy to attempt to give pointers in the comments and update this little walkthrough with any finer points.</p>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codezen.org/2011/06/29/android-mediatomb-upnplay-music-anywhere/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Nerd Do Well: I met Simon Pegg</title>
		<link>http://blog.codezen.org/2011/06/16/nerd-do-well-i-met-simon-pegg/</link>
		<comments>http://blog.codezen.org/2011/06/16/nerd-do-well-i-met-simon-pegg/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 19:00:32 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://blog.codezen.org/?p=251</guid>
		<description><![CDATA[I managed to catch Simon Pegg at his Bookpeople (local Austin independent bookstore) signing of his humorous biography &#8220;Nerd Do Well&#8221; last night. I was completely starstruck. If you don&#8217;t count kernel hackers, I&#8217;ve never met anyone honestly famous before. I tried not to be too embarrassing, but he seemed cool. I also finally got [...]]]></description>
			<content:encoded><![CDATA[<p>I managed to catch Simon Pegg at his Bookpeople (local Austin independent bookstore) signing of his humorous biography &#8220;Nerd Do Well&#8221; last night. I was completely starstruck. If you don&#8217;t count kernel hackers, I&#8217;ve never met anyone honestly famous before. I tried not to be too embarrassing, but he seemed cool. I also finally got a chance to actually crack into the book while standing in line and I can at least say it&#8217;s a promising start.</p>
<p>Here&#8217;s another obligatory picture I got snapped (my crappy phone camera strikes again &#8211; looking forward to grabbing the EVO 3D on the 24th). Maybe someday I&#8217;ll post a scan of the signature. Clearly I was a blur of excitement. Don&#8217;t bother enlarging =(.</p>
<div id="attachment_252" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.codezen.org/wp-content/uploads/2011/06/IMG_20110615_201121.jpg"><img src="http://blog.codezen.org/wp-content/uploads/2011/06/IMG_20110615_201121-300x225.jpg" alt="Simon Pegg signs my copy of Nerd Do Well." title="Simon Pegg signs my copy of Nerd Do Well." width="300" height="225" class="size-medium wp-image-252" /></a><p class="wp-caption-text">Simon Pegg signs my copy of Nerd Do Well.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.codezen.org/2011/06/16/nerd-do-well-i-met-simon-pegg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Das Keyboard: Awesome</title>
		<link>http://blog.codezen.org/2011/06/14/das-keyboard-awesome/</link>
		<comments>http://blog.codezen.org/2011/06/14/das-keyboard-awesome/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 20:55:30 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[hardware]]></category>

		<guid isPermaLink="false">http://blog.codezen.org/?p=234</guid>
		<description><![CDATA[From the last post you&#8217;d probably guess that I&#8217;d been playing through videogames and have completely exited the world of software, but it&#8217;s not true. I&#8217;ve been hard at work, on (unfortunately) real work. The day job. I can&#8217;t lie that it&#8217;s pretty satisfying, but it does absorb my time. Especially when I get owned [...]]]></description>
			<content:encoded><![CDATA[<p>From the last post you&#8217;d probably guess that I&#8217;d been playing through videogames and have completely exited the world of software, but it&#8217;s not true. I&#8217;ve been hard at work, on (unfortunately) real work. The day job. I can&#8217;t lie that it&#8217;s pretty satisfying, but it does absorb my time. Especially when I get owned for having bad test methodology and miss a deadline. Whoops.</p>
<p>Anyway, I&#8217;m not here to talk about anything so mundane as work. I&#8217;m here to say that I made a mistake. Eight or nine months ago, I built my dream desktop. I went all out. Dual 24&#8243;s, kickass processor, top of the line graphics, a decent amount of RAM. However, in my salivation sessions on Newegg, I totally forgot two key elements&#8230; the human interface. Mouse and keyboard. So, despite spending a small fortune on hardware, I ended up running to Fry&#8217;s and grabbing a shitty $10 keyboard and a Microsoft mouse. The mouse ended up being fine (at least for as much as I use a mouse &#8211; not much), and I can credit Microsoft with making decent hardware. The keyboard, on the other hand, was a total piece of shit. I guess I shouldn&#8217;t expect any different for that price, but in its defense, I did manage to get this far with it and my previous self didn&#8217;t really think twice about something as trivial as a keyboard. Hell, I damn near went to Goodwill and picked up a used one for 99 cents.</p>
<p>Big mistake. Not only are the keys on the $10 monstrosity annoyingly flimsy and flat, but also it has the ACPI control buttons directly over the arrow keys. Possibly the worst design ever. Using arrows to scroll a webpage or something, make a bit of a mistake hitting the &#8216;up&#8217; key and suddenly your computer is shutting down. What the fuck. Of course, I was able to disable that functionality in Linux (and honestly, I was sort of surprised it worked out of the box in the first place), but nonetheless. Scarlett&#8217;s now using it as a toy, I didn&#8217;t even hoard the thing like I usually do with keyboards.</p>
<p>I was complaining about it once and my friend Scott turned me on to the world of elite keyboards. I admit, I was skeptical. The shitty keyboard was bad, but I also didn&#8217;t really want to spend a hundred bucks on a keyboard, and I honestly don&#8217;t care about wireless bullshit or LED screens (although <a href="http://www.amazon.com/Optimus-Maximus-OLED-keyboard-white/dp/B0042FWNMW/ref=sr_1_1?ie=UTF8&#038;s=electronics&#038;qid=1308082578&#038;sr=1-1">OLED keys</a> would be cool, those boards also cost more than my whole desktop). Mechanical keys meant something to me though, I&#8217;ve had a number of Model Ms all in various states of repair over my college career, but they&#8217;re loud and bulky and the only functional one I have has to be connected with serial -> PS2 -> USB which is just ridiculous. Anyway, talking with Scott and reading about Cherry mechanical keys and all of this stuff, he finally pointed me to <a href="http://www.daskeyboard.com/">Das Keyboard</a>, a spiritual successor to the Model M, with mechanical keys and a no-BS approach. No wireless. No LED screen (although it has lights for the typical stuff, like Caps Lock) just a solid, no-frills keyboard, with comfortable keys. It&#8217;s even made by a local Austin company too, which is pretty sweet.</p>
<p>It was still hard to pull the trigger though, the $10 thing was serving its purpose, it wasn&#8217;t really getting in the way now that I had learned to avoid those damn ACPI keys. I did tell my wife about it though and despite the fact that I don&#8217;t think I&#8217;d ever spend three figures on a keyboard for myself, today I answered the door and the UPS who handed me a number of packages. One of which was a keyboard shaped box from Metadot. It arrived two days early (probably because their shipping department is basically down the street). Now here I sit, typing on a Model S Professional Silent keyboard. This thing rocks. I can&#8217;t even really identify what it is about it, I mean consciously I know it&#8217;s the mechanical keys, but the whole thing just feels&#8230; right. It feels solid. I feel like I&#8217;ll be typing on this bad boy 30 years from now. Juliette even got the Tux keys to replace the Windows keys, very thoughtful and definitely puts the final touches on it.</p>
<p>It was a Father&#8217;s Day gift that arrived early and I happened to notice, but I&#8217;ll be damned if I&#8217;m going to do the rest of my week of work on the old keyboard when I know that this masterpiece is in the house =). Here&#8217;s a shot of it on my desk, taken with my crappy phone camera and then conveniently uploaded through its built-in USB 2.0 hub.</p>
<div id="attachment_240" class="wp-caption aligncenter" style="width: 330px"><a href="http://blog.codezen.org/wp-content/uploads/2011/06/IMG_20110614_135835.jpg"><img src="http://blog.codezen.org/wp-content/uploads/2011/06/IMG_20110614_135835-1024x768.jpg" alt="Obligatory keyboard shot" title="Obligatory keyboard shot" width="320" height="240" class="size-large wp-image-240" /></a><p class="wp-caption-text">Obligatory keyboard shot</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.codezen.org/2011/06/14/das-keyboard-awesome/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Entering the 21st Century</title>
		<link>http://blog.codezen.org/2011/04/25/entering-the-21st-century/</link>
		<comments>http://blog.codezen.org/2011/04/25/entering-the-21st-century/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 22:01:52 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[gaming]]></category>

		<guid isPermaLink="false">http://blog.codezen.org/?p=219</guid>
		<description><![CDATA[I decided, after all of the hype and excitement and the collective Redditgasm over Portal 2, I would break down, install Steam, and play the original (in Wine, of course). Obviously, I decided to pick up the Orange Box because you can&#8217;t really beat $20 for a bunch of &#8220;new&#8221; games. I think that now [...]]]></description>
			<content:encoded><![CDATA[<p>I decided, after all of the hype and excitement and the collective Redditgasm over Portal 2, I would break down, install Steam, and play the original (in Wine, of course). Obviously, I decided to pick up the Orange Box because you can&#8217;t really beat $20 for a bunch of &#8220;new&#8221; games. I think that now that I&#8217;m officially 4 years behind the curve of PC games, I&#8217;ll keep a $20 limit.</p>
<p>Back in 2004, when I bought HL2, I had an account under my usual pseudonym but I couldn&#8217;t remember the password, the client was unable to recover my information (despite having the recovery code and the secret question answer) so I decided to become: jack_codezen. Fortunately, the Orange Box already includes the only game I had purchased so no big deal, although I was hoping that I&#8217;d be able to recover without taking 3-5 days with Steam support. From what I hear about Steam thesedays, I guess I might&#8217;ve gotten a discount for buying a bundle that includes a game I already owned, but I guess that&#8217;s a penalty I&#8217;m willing to pay for my impatience and forgetfulness.</p>
<p>Anyway, I&#8217;m really looking forward to playing HL2 again, and all of it&#8217;s episodic content for the first time. It&#8217;ll be nice especially now that I have a machine that should absolutely *destroy* the requirements even with the extra Wine overhead. I&#8217;m especially looking forward to Portal. I&#8217;m not sure what to think about TF2. We&#8217;ll see.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codezen.org/2011/04/25/entering-the-21st-century/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GNOME 3.0 Final Verdict</title>
		<link>http://blog.codezen.org/2011/04/19/gnome-3-0-final-verdict/</link>
		<comments>http://blog.codezen.org/2011/04/19/gnome-3-0-final-verdict/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 18:54:31 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://blog.codezen.org/?p=206</guid>
		<description><![CDATA[After GNOME 3.0 was released, I gave in and decided to take the plunge. I packed up my .xinitrc and .xmonad/ and decided to give it a fair shake. I used it for about a week of real work, as well as the usual recreational activities (surfing, coding, wine). The Good Overall I was impressed [...]]]></description>
			<content:encoded><![CDATA[<p>After GNOME 3.0 was released, I gave in and decided to take the plunge. I packed up my <code>.xinitrc</code> and <code>.xmonad/</code> and decided to give it a fair shake. I used it for about a week of real work, as well as the usual recreational activities (surfing, coding, wine).</p>
<h2> The Good </h2>
<p>Overall I was impressed at how effective I became with GNOME 3.0, although it&#8217;s a far cry from Xmonad (as I&#8217;ve mentioned in the past, but I&#8217;ll try not to get into tiling evangelism here). I&#8217;m not as keyboard-centric as I&#8217;d like to be, so already I have my hands on the mouse more than necessary. Getting back into the drag and drop paradigm wasn&#8217;t hard. I will admit I used the drag-to-side half vertical tile functionality built into mutter a *lot* and, for the most part, I was content with it. Vertical tiles are by far the most common layout I use, and even though it was restricted to a 50/50 split (and sometimes I like a 70/30), it was nice.</p>
<p>The gnome-shell bar took a little getting used to (it&#8217;s hard not looking at the top right corner for a time), but the status icons contained in it were very sleek and their menu options were very useful. These little icons were one of my favorite changes in 3.0. Particularly on my laptop where the network manager icon is very useful.</p>
<p>As I&#8217;ve mentioned before, I love the keyboard friendly additions. Like the built-in run dialog with completion, and the ability to type two letters of a program name from the activities view and see it pop up in the icons. I like that even more than I like my Xmonad dmenu, which is saying something. I haven&#8217;t figured out whether you can easily address the &#8220;favorites&#8221; on the left hand sidebar, but the new use case is very nice. Also, I was able to make the transition a bit easier from Xmonad by binding some keys from the keyboard controls (like Alt+F2 to open a terminal, Alt+F3 to open the run dialog, Alt+1,2,3 to switch desktops). These worked well, although I would have liked the ability to Alt+Shift+1 to send a window to a desktop.</p>
<p>Everything with my usual work went fine (with some caveats in the next section), surfing was no problem. Multimedia worked just fine, sound with pulseaudio was no issue (although I&#8217;ve been using pulse for awhile even outside of GNOME). I was pleased that running things like smplayer fullscreen on my TV was handled just fine and didn&#8217;t interfere with working on the other monitor. I guess problems with using 3D and video at the same time have been worked out long ago, but I was concerned with the new desktop. My only qualm with that was that when someone switched to the activity view on the main screen, the full screen movie was shrunken a bit and enumerated like all the others (so it&#8217;s hard to use the main desktop without jarring the people watching the movie on the other screen. At least it&#8217;s consistent though and, because the movie was still playing in the slightly smaller window and with sound this is only a minor nitpick.</p>
<p>My wife actually really likes the new interface. She&#8217;s running it on her netbook and also on our &#8220;family&#8221; machine (RAID box), which is where I did the movie testing. GNOME is more her style of usage, being the type that uses a web browser and the media players most often. I was pleased that her little netbook had no trouble with the graphics either (it&#8217;s by far the lowest spec machine we have, unless you count phones).</p>
<p>Lastly, our Wine Diablo 2 sessions went very well. I found that if we run in a desktop, GNOME properly treats it like any other window, and it smart enough to full screen it on restore and hide its window bar. I attempted to run in unmanaged, full screen mode and it works. The bar was still shown for some reason, but that appears to have been fixed in the interim as I can&#8217;t reproduce now. The one issue that I had was that running unmanaged, if I accidentally hit the windows key, I had no idea how to get back to the Diablo 2 screen. If I hit windows key again, it would automatically take me back, but if I had focused another window it was a mystery.</p>
<p>All in all, I was happy with what amounts to the initial rough cut of the 3.0 interface. I&#8217;m really looking forward to seeing where it goes. I think that if I&#8217;m ever able to finish up my current side project, I might start taking a look at contributing some improvements. However, for now, I have some definite WTFs.</p>
<h2> The Bad </h2>
<h4> Multiple Monitor Desktops </h4>
<p>GNOME 3.0 has pretty decent support for taking advantage of more than one screen. As I mentioned above, playing a movie on one and working on the other works fine. The main problem is that, by default, your secondary screen can only have one desktop on it. Now this might be a sane default (i.e. switch tasks on the primary screen, keep static things like IMs / email / multimedia on the second screen), but it&#8217;s not how I want to use my monitors.</p>
<p>There is a <strong>gconf</strong> setting to allow the desktop to basically span both screens (so switching to desktop 2 changes both monitors) but after I enabled it, support was buggy. Things like closing empathy would cause windows to warp onto my primary desktop for no apparent reason. I guess there&#8217;s a reason this is hidden in gconf. Although I have no clue why it would still be a gconf key, as I though they were switching to dconf, but I could be wrong.</p>
<p>Anyway, ideally I&#8217;d like to see Xmonad style multiple monitor support. I.e. you have one desktop apiece and can change them independently. Xmonad enumerates them all and allows you to show any two, but I&#8217;d settle for having a per-screen desktop stack since that seems like it would fit the GNOME 3.0 paradigm.</p>
<h4> Empathy / Integrated Messaging </h4>
<p>I&#8217;ll admit, I was excited about the integrated messaging. It seems so useful and one of my nits about XMonad is that I always have to switch back to my IM windows, or send them to the desktop I&#8217;m working on.</p>
<p>This feature is entirely broken on release though. Empathy is just not ready, and neither was the integration. For example, you get a nice notification on a new message (or, configurably, on contacts going online / offline). You can even click that message and respond inline. Cool! But what you can&#8217;t do is focus another window and keep that inline chat window open. I want to hold a conversation while surfing Reddit with the inline window hovering on my desktop. I like to be able to read the last four or five lines of my conversation, not just see the next response show up for an instant in a notification and decide whether I want to respond.</p>
<p>In addition, the interaction between the integrated bar and the &#8220;traditional&#8221; empathy chat is absolutely bizarre. For example, if you have a real empathy chat window open (which you almost always will because of the inability to keep the integrated window open), and you receive a new message, you get a notification and a little chat blurb on your notification bar, but no new chat window in the actual empathy window. Some sort of foibling is required to get it to open there, and I&#8217;m not quite sure what.</p>
<p>The &#8220;traditional&#8221; empathy contact list is also underfeatured, like not being able to change the order of contact groups. It also doesn&#8217;t remember your status setting on return (just setting you to &#8220;Available&#8221;, whereas pidgin will automatically reuse that last status). Finally, because it supports some form of LAN messaging that never seems to connect the contact interface is constantly spinning as if it&#8217;s loading.</p>
<p>The last thing, and the true deal breaker for me using GNOME 3.0 is that the notification bar fails to show you urgent flashing notifications. I walked out of the room for a moment and missed a message. I had *no idea* I had missed anything until I randomly displayed the notification bar and say the empathy icon flashing and a two-hour-old message from my boss asking for an email. That doesn&#8217;t work ladies and gentlemen. I can&#8217;t take two hours to respond to a message. That&#8217;s ridiculous. Especially since I was sitting at my computer the whole time. Hell, I&#8217;ve even missed notifications because I was looking at my other screen.</p>
<p>I thought GNOME 3.0 was designed specifically for this workflow. I guess I was wrong.</p>
<h2> Conclusions </h2>
<p>Nobody argues with the fact that the GNOME 3.0 interface needs work. I was pleased with using it for awhile, but it&#8217;s sorely in need of improvement with a handful of things. Especially the chat and notification features, which are effectively broken.</p>
<p>The upshot though is that nothing is so wrong with the concept or the execution that these bugs couldn&#8217;t be fixed very quickly. These are not problems that should require heaps and heaps of code to fix. In fact, I wouldn&#8217;t be surprised if distros officially packaging GNOME 3 have already addressed and patched some of them.</p>
<p>NOTE: All of the above judgments were made using the current (as of 19 April) Arch GNOME 3.0 packages from gnome-unstable and testing. Particularly the gnome, gnome-extra, and telepathy meta-packages. Arch is great, but I&#8217;m assuming these packages are basically packages as-is, with only minimal distro integration patches.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codezen.org/2011/04/19/gnome-3-0-final-verdict/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

