<?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>/project/multiplexer &#187; technology</title>
	<atom:link href="http://projectmultiplexer.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://projectmultiplexer.com</link>
	<description>Ramblings in a State of Insanity</description>
	<lastBuildDate>Wed, 11 Jan 2012 00:32:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>CMS Updates and Adds</title>
		<link>http://projectmultiplexer.com/2011/09/18/cms-updates-and-adds/</link>
		<comments>http://projectmultiplexer.com/2011/09/18/cms-updates-and-adds/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 21:13:10 +0000</pubDate>
		<dc:creator>zenith</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://projectmultiplexer.com/?p=1419</guid>
		<description><![CDATA[I added ~15 pages to the Nephilim FATE Conversion CMS on the site.  Most of these are cut and paste jobs although some are cut-and-paste-2-or-more-together jobs.  I&#8217;m pondering one of those fancy edit-right-in-the-page buttons for when I come through and clean things up.  All the links in the main  [...]]]></description>
			<content:encoded><![CDATA[<p>I added ~15 pages to the <a href="http://projectmultiplexer.com/nephilim-fate-conversion/">Nephilim FATE Conversion CMS </a>on the site.  Most of these are cut and paste jobs although some are cut-and-paste-2-or-more-together jobs.  I&#8217;m pondering one of those fancy edit-right-in-the-page buttons for when I come through and clean things up.  All the links in the main index page and in the table of contents included on every page should be good.</p>
<p>What the system desperately needs is <em>examples </em>so duly noted I will need to add examples.  I also need to move major arcana and game seeds out of the blog stream and into the right place.  </p>
<p>WordPress isn&#8217;t really a great tool for this but it&#8217;s what I have.  Ultimately something like Drupal is better for a blog+CMS build out but I didn&#8217;t want to migrate all my crap into Drupal due to complete laziness.  I may be forced to over time.  </p>
<p>So!  If you ever want to publish a ton of gaming materials on your site for people to pick through and download AND you want to have a front page blog AND you&#8217;re cheap and wish to spend no money AND you are starting from scratch, Drupal is your best choice.</p>
]]></content:encoded>
			<wfw:commentRss>http://projectmultiplexer.com/2011/09/18/cms-updates-and-adds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress CMS Additions</title>
		<link>http://projectmultiplexer.com/2011/08/18/wordpress-cms-additions/</link>
		<comments>http://projectmultiplexer.com/2011/08/18/wordpress-cms-additions/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 13:57:32 +0000</pubDate>
		<dc:creator>zenith</dc:creator>
				<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://projectmultiplexer.com/?p=1145</guid>
		<description><![CDATA[I fell over last night so no long lists of Alchemical Formulae to round out Alchemy until tomorrow. This is a quick purely technology post.
I looked at adding a Wiki to the site to support static pages and then I looked at the WordPress CMS (content management system) add-ons. The WordPress CMS  [...]]]></description>
			<content:encoded><![CDATA[<p>I fell over last night so no long lists of Alchemical Formulae to round out Alchemy until tomorrow. This is a quick purely technology post.</p>
<p>I looked at adding a Wiki to the site to support static pages and then I looked at the WordPress CMS (content management system) add-ons. The WordPress CMS add-ons only make WP about half a CMS but, on the face of it, it&#8217;s an okay fit for me. My matrix of these systems is:</p>
<p>1. Single user site &#8212; blog + plugins.<br />
2. Multi-user, no-external user editing site &#8212; CMS + plugins. Drupal is a great choice here.<br />
3. Crown-sourcing site &#8212; Wiki.</p>
<p>Since I&#8217;m a single user, single author site where I want to host a big number of static pages with comments, themes, table of contents, etc. I decided to forgo the wiki and customize my site to the hilt with WP plugins. This is frought with peril because most of the mid-tier WP plugins are garbage. Sorting the garbage plugins from the good-but-not-a-good-fit plugins from &#8220;works!&#8221; is an investment. I ended up with:</p>
<p><strong>- CMS Tree Page View</strong></p>
<p>This plugin allows me to build my static pages as a tree from roots down to child pages. It supports arbitrary order and a drag-and-drop interface. Highly useful for organizing a large number of static pages into individual sites within a main site.</p>
<p><strong>- Custom sidebars</strong></p>
<p>My favorite find so far. Allows a site owner to design several sidebars for different portions of the site. A blog has blog sidebars (categories, archives, tags), a static section has a table of contents, another static section has a different set of links, etc. The sidebars are named, seperately configured, and added in the post. Super nice.</p>
<p><strong>- Exclude Pages from Navigation</strong></p>
<p>WordPress wants to add all pages to drop down menus. It wants to add child menus to child menus. This looks messy, especially if the site has custom sidebars with embedded navigation. This adds a checkbox to exclude pages from navigation.</p>
<p><strong>- Search Everything</strong></p>
<p>Forces WordPress to index all the static pages for search engines and the search box on the site. Normally it only indexes blog posts.</p>
<p><strong>- Widget Entries</strong></p>
<p>Very useful for custom sidebars. It provides a place to organize, edit, and create custom text widgets with a full page editor instead of the teeny editor provided in the add widget screen.</p>
<p>I would love to have breadcrumb navigation added to static pages, too, but so far all the breadcrumb plugins require hacking up theme templates and I&#8217;m not certain I want to do that.</p>
<p>So that&#8217;s where I am with being able to put up full game conversions on my site &#8212; among other things. &nbsp;I might reach a point where I need to convert to Drupal but&#8230; not quite yet.</p>
]]></content:encoded>
			<wfw:commentRss>http://projectmultiplexer.com/2011/08/18/wordpress-cms-additions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wikis and PDFs</title>
		<link>http://projectmultiplexer.com/2011/08/12/wikis-and-pdfs/</link>
		<comments>http://projectmultiplexer.com/2011/08/12/wikis-and-pdfs/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 13:14:48 +0000</pubDate>
		<dc:creator>zenith</dc:creator>
				<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://projectmultiplexer.com/?p=1052</guid>
		<description><![CDATA[I am getting near to the end of my conversion and I will go back to posting normal stuff with the occasionally interesting Nephilim RPG seed on my blog, probably to the relief of most everyone.  I&#8217;ve been thinking about what to do with the conversion that all two of you are reading and decided to a  [...]]]></description>
			<content:encoded><![CDATA[<p>I am getting near to the end of my conversion and I will go back to posting normal stuff with the occasionally interesting Nephilim RPG seed on my blog, probably to the relief of most everyone.  I&#8217;ve been thinking about what to do with the conversion that all two of you are reading and decided to a four step process &#8212; so complex it is almost a flowchart:</p>
<p>1. Collect the posts and populate a wiki.  Add lots of other &#8220;game&#8221;  information to the wiki, like a huge list of summonings and descriptions of the Major Arcana and Secret Societies and game seeds and that stuff.</p>
<p>2. Bang around with the conversion for a while in a playtest setting.</p>
<p>3. Occasionally scrape some of the cooler stuff and post it on the front page on Mr. Blog.</p>
<p>4. Once happy with conversion, produce a PDF for download linked too off my blog.</p>
<p>I am on step 0.5a: <strong>dither about technology</strong>.</p>
<p>I spent the entire week looking for a good way to put together a WP + Wiki combination with the WP as the root and the wiki as pages of the site. The best I can find is to set up an independent Wiki build in a /wiki directory under root and theme the wiki to look as close to the CSS running on the blog as possible.</p>
<p>I did look at the WP/Wiki embedded solutions and only found two that came near to working: WP-Wiki and WordPress Wiki.  They were both underpowered, slow, and had a difficult time linking across pages with wiki tags.  Neither were more powerful than writing flat pages and hand-crafting the URLs.  Neither provided much in a way of good Wiki functionality.  Wordpress Wiki might be better with the paid-for version, but why would I shell out $35 when the internet is littered with Wiki software?</p>
<p>Bluehost offers me four possibilities of wiki software:</p>
<ul>
<li><span class="Apple-style-span" style="line-height: 18px;">MediaWiki, the Great Standard</span></li>
<li><span class="Apple-style-span" style="line-height: 18px;">PmWiki</span></li>
<li><span class="Apple-style-span" style="line-height: 18px;">DokuWiki</span></li>
<li><span class="Apple-style-span" style="line-height: 18px;">WikkaWiki</span></li>
</ul>
<p>I have a comparison chart of the different systems generated <a href="http://www.wikimatrix.org/compare/DokuWiki+MediaWiki+PmWiki+WikkaWiki">over here on wiki matrix</a>.  It sort of feels like a push between DokuWiki and MediaWiki.  The biggest difference seems to be that DokuWiki uses file storage and MediaWiki uses the database.  My gut tells me I should simply use the ANSI Standard and not fret even though it isn&#8217;t mobile friendly, but MediaWiki has terrible support for commenting systems.  (Although <a href="http://www.mediawiki.org/wiki/Extension:WordPress_Comments">this</a> may cure my issues.) On the other hand, DokuWiki only has simple tables.  Decisions, decisions.</p>
<p>If my aim was to give a full encyclopedia fronted by a blog, it <em>might</em> be worth migrating to a full-blown CMS like, yah, Drupal, but that&#8217;s more power than I really need.  I need a blog, I need an easy way to generate static content, I need comments on the static content, and that&#8217;s about it.  The WP wiki plugins are terrible and the static page authoring tools are too wimpy, so I need a wiki that works but I don&#8217;t need a huge moving van.</p>
<p>I do wish the WP Wiki plugins were more usable because they would have my life much simpler.  I was stunningly unimpressed.  Sure, I got my themes, but they worked spectacularly poorly with WP-Wiki surprisingly better than the WordPress Wiki plugin.  The WordPress Wiki plugin didn&#8217;t seem to do wikilinks at all and the WP-Wiki didn&#8217;t know how to build subdirectories.  I may give them another shot, though, before I bite the bullet and stand up a second system.</p>
<p>So that&#8217;s where I&#8217;m going with this.  I&#8217;ll have a report once it is up and running.</p>
]]></content:encoded>
			<wfw:commentRss>http://projectmultiplexer.com/2011/08/12/wikis-and-pdfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RPGs as Data Driven Apps</title>
		<link>http://projectmultiplexer.com/2011/04/15/rpgs-as-data-driven-apps/</link>
		<comments>http://projectmultiplexer.com/2011/04/15/rpgs-as-data-driven-apps/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 14:21:15 +0000</pubDate>
		<dc:creator>zenith</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[ipad]]></category>

		<guid isPermaLink="false">http://projectmultiplexer.com/?p=817</guid>
		<description><![CDATA[I meant to work on this post earlier this week but my week got real busy and I lost my time to write up posts.
I spent some time thinking about how pen-and-paper RPGs are best represented in an electronic medium.  I don&#8217;t mean writing a full game like Neverwinter Nights; I mean representing the  [...]]]></description>
			<content:encoded><![CDATA[<p>I meant to work on this post earlier this week but my week got real busy and I lost my time to write up posts.</p>
<p>I spent some time thinking about how pen-and-paper RPGs are best represented in an electronic medium.  I don&#8217;t mean writing a full game like Neverwinter Nights; I mean representing the actual experience of the books, rules and dice in an app format.  I realized that RPGs are by their very nature data driven: the character sheet, the rule set, the world setting, and the information that goes with it.  Because everything is created whole-cloth &#8212; even those settings based on established properties &#8212; the game must be communicated with information for it to go.  This is different than a card game or a board game which require a very small amount of fixed information (what&#8217;s on a card, say, or a die roll moves you 5 spaces, or you need to play this token) and a large set of rules.  An RPG requires a large amount of information and an arguable amount of rules.</p>
<p>The devil is in the details with the amount and control of the information surrounding an RPG.  This lies at the heart of many rules and design-based conflicts: <em>how</em> much information is needed for a person to interact with the world, <em>how</em> is the information manipulated to model the world, and <em>how</em> is this information communicated and stored.  In the past, games often required a HIGH amount of information to interact with a HIGH number of system rules to determine a HIGHLY DETAILED piece of data after running the system &#8212; a simulationist system.  Today, we have a huge number of styles from a low data with small ruleset games (like Fiasco) to moderate sized amount of data/character and data/world with moderate sized rule sets (like FATE or Cortex) to high information games with high detail (like D&amp;D4).</p>
<p>This is all run on <em>data</em>.  The nice thing about data is that data is about all a computer understands.  It can hold data, process rulesets on data, and present data-driven results at the end of processing.  So for example we have a large piece of data model in a character sheet.  A character sheet possess stats in some form (d8 Wits, 18 Strength, 3 dots in Hawt, etc).  The world may also possess similar unified stats &#8212; an NPC, a known test, a quantified piece of the world.  Passing the world stats and the character stats through a known resolution engine generates a known result, which may also be stored and used to modify other data.</p>
<p>This is all basic game writing 101 and absolutely nothing new, but it&#8217;s important to lay out the basics before figuring out how to make it go.  A character sheet is simply a line from a data model that has a paper-based persistence model representing a shared contract between player and game world.  What becomes more interesting is in building up databases of world information.  Pulling up, for example, cult information for Trail of Cthulhu with lists of cults (pick one) and integrated NPC and evil book lists, perhaps be able to cross-reference this with information either found online (automatically populate a database with reference information that auto-loads inline) and information in published material.  Work against perhaps web services of a master repository that hosts a bigger centralized database and&#8230; but this is starting to get off the device and into web servers and databases and LAMP stacks and generally wandering off the reservation.  But this is the idea &#8212; RPGs are data driven applications and more data makes them better.</p>
<p>This is where my mind is starting to go for RPG-based apps.  There&#8217;s more to it than that, though:</p>
<p>* Core Data for storage, persistence, data modelling and all the CRUD facilities (create, read, update, delete).<br />
* Cocos2D engine for dice rolling, card playing, and visual representations of game mechanics.<br />
* WebKit for integrating web resources and maybe a shared repository<br />
* Quartz for drawing really nice character sheets, game sheets, NPC sheets, and to generate PDFs on the fly.<br />
* UIKit with Cocos2D for front end data management screens.<br />
* Network stack for cross-communication between devices, communication with back end web services.</p>
<p>I think it would be nice to be able to have a database of NPCs whose sheets render nicely on the screen and then with a click be able to summon up world information around the NPC &#8212; their horrible organization, say, or, GOD FORBID, a RELATIONSHIP MAP&#8230;  Computers are really good at knitting all this data together into a palm of the hand player, GM and gaming community set of tools.  It&#8217;s what they do.</p>
<p>These are where my thoughts are sort of going for apps, but I also have lots of thought about an iFiasco app too which hasn&#8217;t been fleshed out yet.</p>
<p>And Man&#8230; iPad based Smallville Relationship Maps with integrated character sheets.  Just&#8230;. damn.  Can it be done?  <span style="text-decoration: underline;">OF COURSE.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://projectmultiplexer.com/2011/04/15/rpgs-as-data-driven-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad Game Programming</title>
		<link>http://projectmultiplexer.com/2011/04/11/ipad-game-programming/</link>
		<comments>http://projectmultiplexer.com/2011/04/11/ipad-game-programming/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 13:54:55 +0000</pubDate>
		<dc:creator>zenith</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://projectmultiplexer.com/?p=813</guid>
		<description><![CDATA[Friday I had a spirited conversation about what sort of widgets and toys I need to really make game-based iPad apps.  I came up with a list that looked like:

Handle Playing Cards (backs, fronts, turn, flip over, etc.)
Handle Game Tokens (rotate, pass around with a gesture, etc)
Handle Dice (roll  [...]]]></description>
			<content:encoded><![CDATA[<p>Friday I had a spirited conversation about what sort of widgets and toys I need to really make game-based iPad apps.  I came up with a list that looked like:</p>
<ul>
<li>Handle Playing Cards (backs, fronts, turn, flip over, etc.)</li>
<li>Handle Game Tokens (rotate, pass around with a gesture, etc)</li>
<li>Handle Dice (roll dice, move dice around, support pools)</li>
<li>Handle Game Play Surface (game boards, playing surface)</li>
</ul>
<p>I sort of skuttled around the Internet for a while and found <a href="http://www.cocos2d-iphone.org">Cocos2D</a>.  I downloaded it, installed the Xcode 4 templates, built the library, and worked through the first two tutorials (of about 20).  I have to say, other than my brain tried to fold itself into unnatural corners of space time trying to remember basic geometry* from High School &#8212; which I just blanked on &#8212; I was stunningly impressed with the library.  If you&#8217;re following along with what I am doing, I encourage you to go look at the library and start thinking about the possibilities.  Will it work for rendering screens for card games and board games and dice based games?  As soon as I figure out how to get dice to roll without having to use <a href="http://brenwill.com/cocos3d/">Cocos3D</a> (although I may have to) then yes, I can build up a library for making interactive games on the iPad.</p>
<p>Current plan is with my new knowledge of Cocoa Programming and the way it handles stuff is to expand into mastery of Cocos2D, persistence libraries (for saving game state), networking, and some Core Data for something I&#8217;ll talk about at length tomorrow &#8212; I had some deep thoughts over the weekend for how a certain kind of app should work and I&#8217;ll delve into it.</p>
<p><strong>Meanwhile</strong>, as sort of a joke, I was trying to come up with a name for an LLC since these apps need a name of a company.  In my throbbing brainmeats, the current forerunner is <strong>Naked Llama Games, LLC</strong> after my friend the poor, shaved llama who gave up its downy undercoat to be blended with cotton to make a sublime wool for those who really want to make very expensive hats.  Sadly, my copy of Adobe Illustrator is insisting my license is no good despite having the CDs and the license, so for a logo I will have to use <a href="http://inkscape.org/">Inkscape</a>.  Not that there&#8217;s a single thing wrong with Inkscape.</p>
<p><small><br />
* I am going to need to pick up some sort of geometry refresher.  Perhaps wikipedia can help me out here.<br />
</small></p>
]]></content:encoded>
			<wfw:commentRss>http://projectmultiplexer.com/2011/04/11/ipad-game-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad App Ideas!</title>
		<link>http://projectmultiplexer.com/2011/04/08/ipad-app-ideas/</link>
		<comments>http://projectmultiplexer.com/2011/04/08/ipad-app-ideas/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 14:51:41 +0000</pubDate>
		<dc:creator>zenith</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://projectmultiplexer.com/?p=798</guid>
		<description><![CDATA[Having finished reading Cocoa Programming by Daniel Steinberg and worked through all 27 (!) chapters with the hands-on projects, and now starting to delve heavily into specific topics (UIKit, CoreGraphics, Core Data and the network tools) I feel I have officially leveled up and gained a new feat:  [...]]]></description>
			<content:encoded><![CDATA[<p>Having finished reading <a href="http://www.pragprog.com/titles/dscpq/cocoa-programming">Cocoa Programming</a> by Daniel Steinberg and worked through all 27 (!) chapters with the hands-on projects, and now starting to delve heavily into specific topics (UIKit, CoreGraphics, Core Data and the network tools) I feel I have officially <strong>leveled up</strong> and gained a new feat: ability to craft small applications and possibly, eventually, try to get them through the Apple Doom Process.</p>
<p>I am looking for your ideas!  I have some small ideas in mind but, after talking with many people, I know other people have other ideas about apps they would like to see!  Now, the first few apps will be small, and free, so I am thinking things that I can wrap my arms around and come up with a plan and get done.  Understand the first few apps will be a bit slow getting out the gate while I learn process.</p>
<p>How does one leave me an idea to discuss turning it into an actual piece of code?</p>
<p>1. Leave a comment on my blog.<br />
2. Leave a comment on the blog on Livejournal.<br />
3. Leave a comment for me on facebook.<br />
4. Send me a direct message on twitter.  (Name: multiplexer)<br />
5. Email me at edresner@gmail.com.<br />
6. Track me down in person.  (GASP)</p>
<p>I will go back and forth about graphics and layout and user interaction &#8212; the stuff I don&#8217;t very well &#8212; and attempt to turn it into a real thing that runs &#8212; the stuff I <i>do</i> do well.</p>
<p>So!  If you have something in mind or something you are envisioning, this is a head&#8217;s up that you should talk to me about your idea and I&#8217;ll try to figure out how hard it is and work to get it done!</p>
<p>And again, the first few are free to counterbalance my fumbling around a bit.</p>
]]></content:encoded>
			<wfw:commentRss>http://projectmultiplexer.com/2011/04/08/ipad-app-ideas/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Beauty of Objective-C?</title>
		<link>http://projectmultiplexer.com/2011/03/31/the-beauty-of-objective-c/</link>
		<comments>http://projectmultiplexer.com/2011/03/31/the-beauty-of-objective-c/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 14:26:03 +0000</pubDate>
		<dc:creator>zenith</dc:creator>
				<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://projectmultiplexer.com/?p=785</guid>
		<description><![CDATA[This is a tech blurble.  If you&#8217;re not interested in tech blurbles, you can skip this one.  Sometimes it reaches peak blurble and it flows out over my blog and then the tide recedes for a while.
I really love Ruby.  Something about Ruby does it for me.  I&#8217;m not clear what it is &#8212; the readability,  [...]]]></description>
			<content:encoded><![CDATA[<p>This is a tech blurble.  If you&#8217;re not interested in tech blurbles, you can skip this one.  Sometimes it reaches peak blurble and it flows out over my blog and then the tide recedes for a while.</p>
<p>I really love <a href="http://ruby-lang.org">Ruby</a>.  Something about Ruby does it for me.  I&#8217;m not clear what it is &#8212; the readability, the list comprehensions and lamda functions, the easy way to get things done, the Japanese language syntax to a long line of calls, the ability to shove an entire program into one super long line of code*, or what it is about it.  I just enjoy programming in Ruby.  It doesn&#8217;t fight me.  It generally does what I want it to do.  Plus yield!  Oh yield, you crazy functional programming primitive you. Occasionally, in my Python code, I will write something in Ruby syntax (because it&#8217;s completely possible) and leave a comment like:</p>
<p><code><br />
# Ruby-style list comprehensions FTW yo!<br />
</code></p>
<p>It&#8217;s childish.  But that&#8217;s what code comments are for &#8212; childish things.</p>
<p>My second favorite language is Python. It has the all powerful master of the universe <a href="http://docs.python.org/library/ctypes.html">ctypes class</a> that makes it such THE tool for manipulating operating systems.  All the power of C, none of the hassle of C!  It goes best with Advanced Programming in the Unix Environment.  The two are like a fine peanut butter and jelly sandwich.</p>
<p>Toss in C and some assembler and I have a full toolkit to really cause some damage and occasionally write some code.</p>
<p>I have been filling my head with Objective-C for the last two weeks and working through <a href="http://pragprog.com/titles/dscpq/cocoa-programming">Cocoa Programming</a> from Pragmatic Bookshelf** to learn the beast.  In general, I would call this a success, as given 10 minutes I can write a small program now, but I find the language clunky and cludgy the exact same way I find Java clunky and cludgy.  I can&#8217;t tell if it&#8217;s just me. It might just be me.  I feel a bit like I have been driving a nice reliable sedan for a while in Python shape or Ruby shape (depending) and suddenly I&#8217;m in a Ford Pinto and any moment it can <em>catch on fire</em>.  Essentially, it&#8217;s C mashed together with Smalltalk using wacky Simula bracket syntax and mixed up with a huge number of toolkits (legacy and not) to turn this mess into this big development platform for mobile.  The <a href="http://en.wikipedia.org/wiki/Objective-C">wikipedia</a> page does have a decent overview of the programming primitives for the wary.</p>
<p>It&#8217;s not so much that it&#8217;s like Simula.  What is bothering me is the sheer amount of <em>accounting</em>.  One needs to remember if the call is a class method or an instance method and call appropriately, remember argument names, mess with properties, set the memory model correctly for all said properties which may be different depending on the nature of the class (mutable, not mutable, copying, etc), remember to manage memory in dealloc() when the class is disposed, create models where the class is properly created and hangs around, manage different forms of class instantiation and other bookkeeping that gets between one and actually doing work.  I am vaguely reminded why Java turned me off so badly &#8212; but worse.  Toss in that the book I am reading is married to beautiful code &#8212; can we eliminate ALL LOOPS and DECISIONS in this application to make it SUPER COMPACT? &#8212; and it&#8217;s headachy.</p>
<p>From my standpoint, there&#8217;s some major pros &#8212; one can theoretically consume C-based libraries and packages and even just give up and write the guts code in C &#8212; and some cons &#8212; getting used to the weird syntax, and having to do all this paperpushing to bring up an application &#8212; to working this way.  Deep down it just feels <em>slow</em>.</p>
<p>I have this feeling people are going to get tired of working this way and do what they did with Java: make Java implement any other language, <em>please</em> any other language, on the JVM, then Java.  Just make the bad and hurting go away.  Python =&gt; JPython.  Ruby =&gt; JRuby.  Hell, one can do Grails stack on the JVM with groovy which pretends to be Java with Spring but is more a Ruby on Rails stack then anything else.  <a href="http://clojure.org">Clojure</a>, last week&#8217;s toy of the week, is LISP &#8212; dear God, LISP!!!!! &#8212; implemented on the JVM!  LISP!  Did I mention LISP?</p>
<p>Meanwhile, I am merely whining about the incomprehensibility of Objective-C.  I am getting enough of the hang of it to read through stackoverflow articles which pushes me out of newbie and firmly into &#8220;can cause mayhem.&#8221;   And then past the language barriers, mastery of the data structures (NSDictionary, NSArray, etc).  And then &#8212; the world!</p>
<p>(I found an article on how to do list comprehensions on the NSArray class in Objc-C <a href="http://lethain.com/filtering-arrays-in-objective-c/">here</a>.  It is possible.  Thank you magic Internet.)</p>
<p><small><br />
* Which, arguably, I can do in C.<br />
** I will post an in-depth review.<br />
</small></p>
]]></content:encoded>
			<wfw:commentRss>http://projectmultiplexer.com/2011/03/31/the-beauty-of-objective-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Grognard Faces Down XCode</title>
		<link>http://projectmultiplexer.com/2011/03/23/the-grognard-faces-down-xcode/</link>
		<comments>http://projectmultiplexer.com/2011/03/23/the-grognard-faces-down-xcode/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 14:57:16 +0000</pubDate>
		<dc:creator>zenith</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://projectmultiplexer.com/?p=779</guid>
		<description><![CDATA[My favorite term these days is grognard.  I am misusing it terribly, no doubt.  But I like this word.  It&#8217;s evocative.  It&#8217;s more polite than neckbeard, but only slightly; grognard has a gutteral sound in the back of the throat that makes it a bit more worldly-sounding.
This leads into a technical  [...]]]></description>
			<content:encoded><![CDATA[<p>My favorite term these days is <a href="http://en.wiktionary.org/wiki/grognard">grognard</a>.  I am misusing it terribly, no doubt.  But I like this word.  It&#8217;s evocative.  It&#8217;s more polite than <a href="http://www.urbandictionary.com/define.php?term=neckbeard">neckbeard</a>, but only slightly; grognard has a gutteral sound in the back of the throat that makes it a bit more worldly-sounding.</p>
<p>This leads into a technical discussion of sorts.  I am trying to learn iPad programming (I will no doubt talk about it at length as I puzzle it out and get things working) and this means moving out of my rather enormous comfort zone and into somewhere new.  I&#8217;m a UNIX grognard.  I haven&#8217;t written any Linux kernel mode drivers* but if something needs to be done on Linux or a UNIX variant I&#8217;ve probably done it, boostrapped it, duct taped it, or otherwise shouted at it really super loudly.</p>
<p>When I cracked out the books I let loose a mocking laugh for lo, everything started with &#8220;NS&#8221; for &#8220;NeXTStep&#8221; and we all know where we are with NeXT.  Yeah we know where we are &#8212; lost.  I work in a text-mode universe** and all the sudden I had&#8230; tools&#8230; that generate&#8230; code&#8230; and do&#8230; things. And it all mocks me from its <a href="http://en.wikipedia.org/wiki/Nextstep">NeXTStep past</a>!</p>
<p>I downloaded Xcode 4 and got it all set up and running and was instantly lost in a maze of twisty passages all alike.  Swearing happened.  So did the throwing of the book.  Here I am in a very familiar universe of gcc and gdb and Unix-mode tools and a completely weird world of clicking and dragging and things that refactor code by somewhat magic and, uh, stuff.</p>
<p>I don&#8217;t&#8230; do&#8230; stuff.</p>
<p>I was weirded out.</p>
<p>Two days &#8212; two <em>full days</em> for someone who cut C on a <a href="http://en.wikipedia.org/wiki/Michigan_Terminal_System">mainframe</a> &#8212; before popping up a window, creating some controls, generating a class, and having it display &#8220;Hello World.&#8221;  Look!  Something approximating success!</p>
<p>It&#8217;s kind of funny how things that are old are new again.  NeXT.  Smalltalk in its cunning disguise as &#8220;Objective-C.&#8221;  Low-level C hacking.  Hand-coding memory management.  GCC tricks.  Trying to fit a ton of code in a very small place.  It is all wrapped in a little tiny happy graphical shell.</p>
<p>I have reached grognard.  And I have faced down XCode.  And I am fairly certain it has won.</p>
<p><small><br />
* Yet.</small></p>
<p><small>** I am occasionally okay with Eclipse but even when working in Java I find it annoys me enough to go back to the text mode universe.  The only non-nano/vim universe I have ever liked is <a href="http://macromates.com/">TextMate for MacOSX</a>.  I am, in fact, writing this post in gedit on Ubuntu which is a half step above &#8220;putting HEX into memory.&#8221;</p>
<p></small></p>
<p><small></small></p>
]]></content:encoded>
			<wfw:commentRss>http://projectmultiplexer.com/2011/03/23/the-grognard-faces-down-xcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Route to Nirvana</title>
		<link>http://projectmultiplexer.com/2011/02/22/the-route-to-nirvana/</link>
		<comments>http://projectmultiplexer.com/2011/02/22/the-route-to-nirvana/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 19:40:12 +0000</pubDate>
		<dc:creator>zenith</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://projectmultiplexer.com/?p=756</guid>
		<description><![CDATA[I don&#8217;t believe this has to be said but I have discovered that it has to be said:
If you are hosting a huge party for a whole bunch of random people, you should have your DJs mix up 80s pop music, preferably 80s top 40.  Sure, playing the newest techno and trance out of Ibiza is hot and edgy and  [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t believe this has to be said but I have discovered that it <em>has to be said</em>:</p>
<p>If you are hosting a huge party for a whole bunch of random people, you should have your DJs mix up 80s pop music, preferably 80s top 40.  Sure, playing the newest techno and trance out of Ibiza is <em>hot</em> and <em>edgy</em> and <em>cyberpunky</em>, and I openly admit I own some of said newest techno and trance from the clubs in Ibiza, but <em>no one is going to dance</em>.  What is the point of having a dance floor when no one is going to dance to the throbbing techno?  Geeks don&#8217;t pack Ecstasy and they don&#8217;t flop around to Gabriel and Dresden, but I <em>guarantee</em> they know the words to Bon Jovi songs.  Everyone who owns Rock Band knows the words to Bon Jovi songs!</p>
<p>This is the Route to Nirvana.  Even off Nevermind.</p>
<p>Come on, guys.  This is the secret to the success of Glee.  The hits of the 80s.  And Queen.  Some Bowie.  It should be obvious.</p>
<p>I just had to get that off my chest.  I thought it was clear to all and sundry but apparently it needs to be said.</p>
]]></content:encoded>
			<wfw:commentRss>http://projectmultiplexer.com/2011/02/22/the-route-to-nirvana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSA Conference</title>
		<link>http://projectmultiplexer.com/2011/01/24/rsa-conference/</link>
		<comments>http://projectmultiplexer.com/2011/01/24/rsa-conference/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 15:56:02 +0000</pubDate>
		<dc:creator>zenith</dc:creator>
				<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://projectmultiplexer.com/?p=738</guid>
		<description><![CDATA[Hey all &#8211;
This is a Public Service Announcement that I am attending the RSA Conference out in San Francisco, CA from February 14th-18th and coming home the 19th.  If you want to meet up because you a) haven&#8217;t seen me in 10+ years or b) you are curious what I actually look like, let me know and I  [...]]]></description>
			<content:encoded><![CDATA[<p>Hey all &#8211;</p>
<p>This is a Public Service Announcement that I am attending the <a href="http://www.rsaconference.com">RSA Conference</a> out in San Francisco, CA from February 14th-18th and coming home the 19th.  If you want to meet up because you a) haven&#8217;t seen me in 10+ years or b) you are curious what I actually look like, let me know and I can make arrangements!</p>
]]></content:encoded>
			<wfw:commentRss>http://projectmultiplexer.com/2011/01/24/rsa-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

