<?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>Office Monkey &#187; Programming</title>
	<atom:link href="http://www.office-monkey.com/category/creating/programming/feed/?http://www.office-monkey.com:80/office-monkey/category/creating/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.office-monkey.com</link>
	<description>Everybody needs some monkey sometime...</description>
	<lastBuildDate>Sat, 30 Jul 2011 05:14:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Hello, nosey people!</title>
		<link>http://www.office-monkey.com/2011/07/29/hello-nosey-people/</link>
		<comments>http://www.office-monkey.com/2011/07/29/hello-nosey-people/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 05:08:40 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Colophon]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[cats]]></category>
		<category><![CDATA[idle]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.office-monkey.com/?p=717</guid>
		<description><![CDATA[In the process of updating my résumé, I realized that in this increasingly Facebook-social-networking time, people might very well take the presence of a personal domain in the email address of an applicant as an invitation to look at their life. Go ahead. Feel free. I mostly write about my cats, it seems, and I [...]]]></description>
			<content:encoded><![CDATA[<p>In the process of updating my résumé, I realized that in this increasingly Facebook-social-networking time, people might very well take the presence of a personal domain in the email address of an applicant as an invitation to look at their life.</p>
<p>Go ahead. Feel free. I mostly write about my cats, it seems, and I haven&#8217;t had a chance to update in over a year.</p>
<p>For the record, my cat is awesome. I&#8217;ll take a 5% pay cut in exchange for being able to bring him to work with me each day (not really).</p>
<p>(I&#8217;ve also managed to accidentally trash my theme while trying to update my WordPress installation&#8230; but really, you shouldn&#8217;t be thinking about hiring me to do visual design, anyway. You should hire Albert Lee of <a href="http://theyellowdevil.carbonmade.com">Yellow Devil Designs</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.office-monkey.com/2011/07/29/hello-nosey-people/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Congratulations Mono team!</title>
		<link>http://www.office-monkey.com/2009/01/21/congratulations-mono-team/</link>
		<comments>http://www.office-monkey.com/2009/01/21/congratulations-mono-team/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 15:28:39 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Creating]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[idle]]></category>

		<guid isPermaLink="false">http://www.office-monkey.com/?p=547</guid>
		<description><![CDATA[Having spent an undue amount of time in compiler-land over the last four months, I have nothing but respect for a team that acknowledges the shortcomings of their architecture, and so REWRITES IT. Congratulations on the new release, mono team! http://tirania.org/blog/archive/2009/Jan-20-1.html]]></description>
			<content:encoded><![CDATA[<p>Having spent an undue amount of time in compiler-land over the last four months, I have nothing but respect for a team that acknowledges the shortcomings of their architecture, and so REWRITES IT.</p>
<p>Congratulations on the new release, mono team!</p>
<p>http://tirania.org/blog/archive/2009/Jan-20-1.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.office-monkey.com/2009/01/21/congratulations-mono-team/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Powershell Powers, Activate!</title>
		<link>http://www.office-monkey.com/2009/01/16/powershell-powers-activate/</link>
		<comments>http://www.office-monkey.com/2009/01/16/powershell-powers-activate/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 23:33:25 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Living]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.office-monkey.com/?p=542</guid>
		<description><![CDATA[Yesterday, I had a problem to solve. I didn&#8217;t want to stay at work until 9pm, waiting for another team&#8217;s process to publish a file. (Grossly simplified, but you get the idea). I also didn&#8217;t want to log in from home at 9pm in order to wait for it to happen (I did that the [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I had a problem to solve. I didn&#8217;t want to stay at work until 9pm, waiting for another team&#8217;s process to publish a file. (Grossly simplified, but you get the idea). I also didn&#8217;t want to log in from home at 9pm in order to wait for it to happen (I did that the night before).</p>
<p>So I used Powershell! Could I have used a batch file? Of course! However, I know with Powershell I can just chain commands together via a semi-colon.<br />
I <a href="http://www.live.com">searched</a> for &#8220;Powershell sleep&#8221;, and saw immediately that there was, in fact, a Powershell sleep command: start-sleep.</p>
<p>My final commandline:<br />
start-sleep -s 7000 ; GetFileCommand ; msbuild /t:clean,build</p>
<p>And I could just walk away, knowing it would be waiting for me when I got into today.</p>
<p>(That didn&#8217;t happen, but it was unrelated to the Powershell issue.)</p>
<p>However, that wasn&#8217;t my only use of Powershell yesterday. The MSBuild Project system defines a build through a series of linked .XML files. I uncovered an issue where a particular task wasn&#8217;t being completed as I expected. I could, through the wonders of &#8220;Find&#8221;, locate where I EXPECTED the work to be taking place, but in a 10,000+ line XML file, scrolling upward to find the parent is not entirely pleasant.</p>
<p>So I used code.</p>
<p>I read the XML into an XML object, then found the tag I was looking for. I then got an XML Navigator object for where I was in the document, and walked back up the tree until I found something identifiable (it turned out I was screwed). All told, it took me less time to puzzle out (via get-member) how to do so under Powershell than it would have taken for me to write a real program, or to find it by hand.</p>
<p>Here&#8217;s the entirety of what I wrote:<br />
$xmldoc = [xml] [string]::join(&#8220;`n&#8221;, (gc -read 10kb Native.Build.targets))<br />
$xmldoc | get-member<br />
$xmldoc.GetElementsByTagName(&#8216;Internal_LinkOutputFile&#8217;)<br />
$xmldoc.GetElementsByTagName(&#8216;Internal_LinkOutputFile&#8217;) | get-member<br />
$xmldoc.GetElementsByTagName(&#8216;Internal_LinkOutputFile&#8217;).Item(0)<br />
$xmldoc.GetElementsByTagName(&#8216;Internal_LinkOutputFile&#8217;).Item(0) | get-member<br />
$nav = $xmldoc.GetElementsByTagName(&#8216;Internal_LinkOutputFile&#8217;).Item(0).CreateNavigator()<br />
$nav<br />
$nav | get-member<br />
$nav.MoveToParent()<br />
$nav<br />
$nav.MoveToParent()<br />
$nav</p>
<p>There was an awful lot of get-member calls, but I didn&#8217;t need to know ANYTHING else.</p>
<p>Yay Powershell!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.office-monkey.com/2009/01/16/powershell-powers-activate/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Everyone makes mistakes</title>
		<link>http://www.office-monkey.com/2008/11/07/everyone-makes-mistakes/</link>
		<comments>http://www.office-monkey.com/2008/11/07/everyone-makes-mistakes/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 18:57:38 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Creating]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[idle]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.office-monkey.com/?p=534</guid>
		<description><![CDATA[I had a problem with a piece of code last night. An apparent infinite loop without apparent cause. Because I&#8217;m working on in-development tools, though, I couldn&#8217;t even go to disassembly. I sat and stared this morning at the offending code, knowing I must be missing something. I finally went down the hall to grab [...]]]></description>
			<content:encoded><![CDATA[<p>I had a problem with a piece of code last night. An apparent infinite loop without apparent cause. Because I&#8217;m working on in-development tools, though, I couldn&#8217;t even go to disassembly.</p>
<p>I sat and stared this morning at the offending code, knowing I must be missing something.</p>
<p>I finally went down the hall to grab Nathan (I like Nathan. He&#8217;s bright and hard working, and he laughs at my jokes. Good man.). He isn&#8217;t as experienced with C++ as I am, but my experience wasn&#8217;t helping me. Besides, it was a problem with a bloody for-loop.</p>
<p>Nathan sat down, complained about what I named the function, and then point out the error. Less than two minutes.</p>
<p>Can you see the error?<br />
<code><br />
for (GenericParam* Param = StartOfListOfParams; Param; Param->GetNext())<br />
</code></p>
<p>I feel a little dumb, but vindicated for my position on code reviews, especially for my own code.</p>
<p>Edit 08/11/07 11:28am: Added a space.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.office-monkey.com/2008/11/07/everyone-makes-mistakes/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Was I too mean? (long, rambly, and techy)</title>
		<link>http://www.office-monkey.com/2008/11/05/was-i-too-mean-long-rambly-and-techy/</link>
		<comments>http://www.office-monkey.com/2008/11/05/was-i-too-mean-long-rambly-and-techy/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 00:49:34 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Creating]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[GoDaddy]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.office-monkey.com/?p=530</guid>
		<description><![CDATA[I recently transitioned my blog from a LAMP stack at 1and1.com (who I was happy with) to a Windows/IIS7 stack at GoDaddy.com (which was cheaper, and more importantly, Windows-based). At both locations I had multiple domains registered with the same account. I wasn&#8217;t thrilled with 1and1&#8242;s side of the transition (they just didn&#8217;t respond to [...]]]></description>
			<content:encoded><![CDATA[<p>I recently transitioned my blog from a LAMP stack at 1and1.com (who I was happy with) to a Windows/IIS7 stack at GoDaddy.com (which was cheaper, and more importantly, Windows-based). At both locations I had multiple domains registered with the same account.<br />
<span id="more-530"></span><br />
I wasn&#8217;t thrilled with 1and1&#8242;s side of the transition (they just didn&#8217;t respond to the requests, and waited to the automatic approval after five days to go through), but GoDaddy&#8217;s system was fairly good. Their control system is a little too separate (Domains are managed in one UI, Email has to be accessed through a completely different UI, and Hosting is managed in a third), but after initial setup, I shouldn&#8217;t be changing the former two sets of data very often.</p>
<p>However, I started getting into trouble when I tried to setup WordPress for both Mandrina and my blog (ed: blogs? Abigail!). The GoDaddy &#8220;Hosting Connection&#8221; application will allow you to install a set of applications automatically &#8212; setup a database and everything. Unfortunately, it will only install for the primary domain for the account &#8212; which I set to be something nonexistent. So I needed to customize to go through and reset all paths and domain references by hand, because my blog is not, in fact located at &#8220;http://www.some-random-name-23123-that-no-one-likes-123123.com/office-monkey&#8221;. I had a bit of problems originally, but I eventually got it straightened out &#8212; the biggest trick was in just importing my old MySQL databases, and making only the necessary modifications (directory on disk). That part was easy, and all posts and comments came along for free!</p>
<p>I still have to work out enabling Plugins, but that is likewise minor. There was nothing (aside from Akismet Anti-Spam) that I HAD to have).</p>
<p>The one thing I really wanted to get working, though, was Permalinks. The pretty post names you see as the link behind the title for a particular post.</p>
<p>http://www.office-monkey.com/2008/11/02/to-pick-a-title/</p>
<p>instead of</p>
<p>http://www.office-monkey.com/?p=23</p>
<p>(Different posts, I was lazy.)</p>
<p>IIS doesn&#8217;t have RewriteRules built in as Apache does, so where WordPress defaults to writing a .htaccess file on the LAMP stack, it just doesn&#8217;t work on PHP/FastCGI on IIS7. However, I came across a mechanism whereby it could work, making use of a custom 404 error handler.</p>
<p>This is where it got tricky for a minute &#8212; the sample I was able to find worked for a single domain. However, I needed a single shared 404-processing.php file to handle requests for multiple subdomains. However, I got creative, and figured it out &#8212; which made</p>
<p>http://www.office-monkey.com/2008/11/02/to-pick-a-title/</p>
<p>possible instead of the uglier</p>
<p>http://www.office-monkey.com/index.php/2008/11/02/to-pick-a-title/</p>
<p>Interesting thing, happened, though. I went through, and got all the post links working, category links, everything. No problem whatsoever. However, the homepage (http://www.office-monkey.com aka http://www.office-monkey.com/index.php) would not work. It would display a themed page, with no meaningful content. After an embarassing amount of time spelunking in the WordPress PHP source code, I discovered that the &#8220;Page.php&#8221; file was being processed, rather than the more appropriately named &#8220;index.php&#8221; file.</p>
<p>It worked when the permalink format was:<br />
/index.php/%yy%/%mm%/%dd%/title<br />
but not when:<br />
/%yy%/%mm%/%dd%/title</p>
<p>My initial guess was that my 404-redirect hack was causing problems, but I was able to quickly establish that it wasn&#8217;t being called at all. The one interesting thing I found was that regardless of the permalink format, both scripts were trying to load &#8220;/office-monkey/index.php&#8221;, where /office-monkey is the subdirectory holding this site&#8217;s main content.</p>
<p>I poked around for a long time, then came across a Microsoft KB article &#8212; http://support.microsoft.com/kb/954946, alluding to an undescribed problem in how IIS7&#8242;s FastCGI implementation could possibly misset $_SERVER['REQUEST_URI'], leading to problems with, gasp, WordPress! I emailed GoDaddy for assistance, asking if the hotfix for the issue had been installed. They asked a few boilerplate questions, then escalated it.</p>
<p>I came up with a minimal repro:<br />
<code>< ?php<br />
echo $_SERVER['REQUEST_URI'];<br />
?></code></p>
<p>I had a friend (hi, Jonathan!) run it on a similar configuration on a LAMP stack.<br />
His results?<br />
/request.php<br />
My result?<br />
/office-monkey/request.php</p>
<p>It turned out that the first type of permalinks (including /index.php/ worked only because WordPress handled them differently. They shouldn&#8217;t have. The pretty permalinks, on the other hand, tried to match &#8220;/office-monkey/index.php&#8221; where they were coded to match &#8220;/index.php&#8221; &#8212; since that first default match didn&#8217;t apply, a later match for a random page (which didn&#8217;t exist) was triggered, and page &#8220;/office-monkey/index.php&#8221; was loaded.</p>
<p>IIt all came down to $_SERVER['REQUEST_URI']. I added that information to my support request. I tracked down an individual on the IIS team who blogged about the KB article, and he helped me verify that the issue I was seeing with REQUEST_URI was the one fixed by the FastCGI fix (http://ruslany.net/2008/08/update-for-iis-70-fastcgi-module/). My short term fix was to dump the matching Permalink rule (I don&#8217;t use WordPress pages anyway).</p>
<p>Meanwhile, I got a response from GoDaddy, which I&#8217;ll summarize:<br />
1) We can&#8217;t tell you what patches we have installed or when we install them, but we install patches on a regular schedule, and criticl patches as needed.<br />
2) You&#8217;ll have to rewrite every script you&#8217;re using to edit $_SERVER['REQUEST_URI'] to exclude that leading directory.</p>
<p>I was a bit flabbergasted as to their resolution, and the lack of actual information it provided. So I emailed them back:</p>
<blockquote><p>
Thank you for the update. Unfortunately, some additional information renders your comments less useful than they could otherwise.</p>
<p>I independently verified the intended purpose of the Microsoft Hotfix corresponding to MS KB 954946. You can see the thread here: http://ruslany.net/2008/08/update-for-iis-70-fastcgi-module . As you can see, a Microsoft employee working on IIS verified the cause of the issue I see regarding REQUEST_URI when accessed via FastCGI+PHP, as well as that the hotfix for the KB article would fix the issue.</p>
<p>As far as I have been able to establish the hotfix in question has not been published as an update, but has been out for almost three months. While I can understand your reluctance to publish the current patch level on any servers, as it would serve as an invitation to hackers of all stripes and skill levels, I cannot ascertain whether GoDaddy’s server plans include ever installing this hot fix.</p>
<p>This issue will affect anyone who is running PHP scripts on IIS when dealing with either multiple domains or subdomains. It is a known issue with PHP/FastCGI on IIS7, and would be time-consuming, painful, and incompatible to fix at the source level. I will need to customize my fix for each of several domains, and will need to spend substantial time I don’t have in review in order to assure I cover every entrypoint. I’m certain that I will not be the only person who will or has been affected by this, and given the existence of a fix for the issue, I am surprised and disappointed that I can’t get any confirmation on attention to repair what is in effect a defective server component.</p>
<p>I would like to ensure that I understand the position you are putting forward:<br />
-	GoDaddy will not publish their patching policies beyond asserting that updates are applied regularly and critical patches are applied as needed.<br />
-	GoDaddy will neither confirm nor deny their intention of ever installing a server hotfix that decreases the value of their shared hosting on IIS7.<br />
-	GoDaddy would prefer that individuals personally customize applications that are installable from the HostingConnection/Metropolis site at the source level rather than installing a fix from a major software company.</p>
<p>I had heard good things from several people regarding hosting at GoDaddy, so I’m hoping I’m misunderstanding the intended solution. If this hot fix will be included the next time a set of patches are applied, I can certainly come up with a workaround for the time being. If in order to maintain system security of a hosted application I need to customize it at every patch, I find myself not finding myself in complete agreement with the praise I have heard.</p>
<p>I hope I’m wrong.
</p></blockquote>
<p>Now, my question to anyone actually read this far &#8212; was I too mean to the poor support technician?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.office-monkey.com/2008/11/05/was-i-too-mean-long-rambly-and-techy/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Consistency is key</title>
		<link>http://www.office-monkey.com/2008/09/12/consistency-is-key/</link>
		<comments>http://www.office-monkey.com/2008/09/12/consistency-is-key/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 06:52:04 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[gallery2]]></category>
		<category><![CDATA[idle]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[photos]]></category>

		<guid isPermaLink="false">http://www.office-monkey.com/?p=429</guid>
		<description><![CDATA[On top of the aforementioned SERVER ERROR 500 issue occuring because I didn&#8217;t specify a USER_AGENT that matched the white list, I&#8217;ve been spending the last week trying to track down exactly why I couldn&#8217;t upload a file. I used the stock GalleryRemote program (isn&#8217;t sufficient for automation purposes) to test my server, and it [...]]]></description>
			<content:encoded><![CDATA[<p>On top of the aforementioned SERVER ERROR 500 issue occuring because I didn&#8217;t specify a USER_AGENT that matched the white list, I&#8217;ve been spending the last week trying to track down exactly why I couldn&#8217;t upload a file. I used the stock GalleryRemote program (isn&#8217;t sufficient for automation purposes) to test my server, and it all worked fine.</p>
<p>Well, after over a week (admittedly, I&#8217;m only poking it on the bus every few days, and only while driving into work), I managed to puzzle out enough from the source code of the Gallery Remote to figure out why my code wasn&#8217;t working.</p>
<p>If you&#8217;re executing a command, your message must be:<br />
application/x-www-form-urlencoded</p>
<p>However, if you&#8217;re trying to upload data, your form must be:<br />
multipart/form-data</p>
<p>Apparently, the system DIES if you try to consistently use one or the other. The former is simpler; the latter provides better performance for binary uploads. Mind you, this isn&#8217;t commented ANYWHERE.</p>
<p>I can understand the usage of the former when possible, and the latter when necessary. I can almost understand why no one bothered to mention it (After all, the W3 recommendation for form submission clearly indicates to use <a href="http://www.w3.org/TR/html4/interact/forms.html#form-content-type">both as necessary</a>). However, what I can&#8217;t understand is WHY my usage of the latter in all cases isn&#8217;t mapped the same way within PHP.</p>
<p>I mean, come on! Regardless of the way the data is submitted, the application platform should, for purposes of the dictionary-based lookup that PHP provides via the $form variable (I think that&#8217;s right, I don&#8217;t speak PHP), shouldn&#8217;t both submission mechanisms be abstracted away unless you want the added complexity?</p>
<p>I&#8217;m tired and have a cold, otherwise I would extend this rant into the direction of work. However, you may all count yourselves lucky. For I am going to sacrifice a kitten to my desire to snuggle something cuddly when I don&#8217;t feel well, and then I am going to bed. Nice deal, eh?</p>
<p>EDIT (16 Sept 08): Err. Maybe my bad. Turns out that while, by convention, a multipart/form boundary is specified as &#8220;&#8212;&#8212;&#8212;-&#8221; + RandomData, the actual usage as a boundary requires it to be prefixed with an additional two dashes. In other words, the actual, in use, boundary should be &#8220;&#8212;&#8212;&#8212;&#8212;&#8221; + RandomData. Which, if you try to just look by eye, is far from visible. Unfortunately, if I had paid more attention to the <a href="http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.2">documentation</a>, the example they give isn&#8217;t prefixed by a series of dashes, and it&#8217;s far, far clearer. Still could have been explicitly documented (ABNF, anyone?). However, I&#8217;m not going to lambast the PHP team; they could have been working just fine all along.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.office-monkey.com/2008/09/12/consistency-is-key/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What do you want your Server do?</title>
		<link>http://www.office-monkey.com/2008/08/23/what-do-you-want-your-server-do/</link>
		<comments>http://www.office-monkey.com/2008/08/23/what-do-you-want-your-server-do/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 02:46:01 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Creating]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.office-monkey.com/?p=407</guid>
		<description><![CDATA[Partially as a learning exercise, and partially because I&#8217;m a money grubbing greedy bastard, I&#8217;m trying to come up with a clever extension to Microsoft Windows Home Server. Unfortunately, I already had pretty much everything I needed on the base installation; I had originally installed it purely to have a system I could hook up [...]]]></description>
			<content:encoded><![CDATA[<p>Partially as a learning exercise, and partially because I&#8217;m a money grubbing greedy bastard, I&#8217;m trying to come up with a clever extension to Microsoft Windows Home Server.</p>
<p>Unfortunately, I already had pretty much everything I needed on the base installation; I had originally installed it purely to have a system I could hook up my parallel printer to. It already supports remote desktop to systems within your local network, as well as remote access to files on the server via secured login. Heck, it even provides dynamic DNS service, complete with chained certificates for secured access. Nice, huh?</p>
<p>I figure most people out there do NOT have WHS installed. Probably have no need for it. So, why don&#8217;t you let me know what would make you want a Windows Home Server? If you have one, what feature do you wish it had? If you could have your own personal secured web server, what do you really wish you could do on it?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.office-monkey.com/2008/08/23/what-do-you-want-your-server-do/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Retroactive tagging</title>
		<link>http://www.office-monkey.com/2008/08/20/retroactive-tagging/</link>
		<comments>http://www.office-monkey.com/2008/08/20/retroactive-tagging/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 01:49:53 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Creating]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[idle]]></category>

		<guid isPermaLink="false">http://www.office-monkey.com/?p=400</guid>
		<description><![CDATA[I&#8217;ve spent a few minutes today going back through over two years of posts and tagging them &#8220;appropriately.&#8221; The new version of WordPress supports tags, and I&#8217;ve always wanted a Tag Cloud (left hand column &#8212; see that bit with varying sized pieces of text?), so&#8230; So there have been a TON of updates today. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spent a few minutes today going back through over two years of posts and tagging them &#8220;appropriately.&#8221; The new version of WordPress supports tags, and I&#8217;ve always wanted a Tag Cloud (left hand column &#8212; see that bit with varying sized pieces of text?), so&#8230;</p>
<p>So there have been a TON of updates today. It&#8217;s just that none of them mattered.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.office-monkey.com/2008/08/20/retroactive-tagging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>REQ: Help from the programming types</title>
		<link>http://www.office-monkey.com/2007/08/28/req-help-from-the-programming-types/</link>
		<comments>http://www.office-monkey.com/2007/08/28/req-help-from-the-programming-types/#comments</comments>
		<pubDate>Wed, 29 Aug 2007 01:01:07 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.office-monkey.com/2007/08/28/req-help-from-the-programming-types/</guid>
		<description><![CDATA[I could post this to a programming discussion list. However, I&#8217;d rather not look like an idiot to anyone who doesn&#8217;t already know me to be one, at least at first. I&#8217;m teaching myself PERL and revisiting LISP (although I may veer into Scheme instead). The former has some potential for practical application, the latter, [...]]]></description>
			<content:encoded><![CDATA[<p>I <em>could</em> post this to a programming discussion list. However, I&#8217;d rather not look like an idiot to anyone who doesn&#8217;t already know me to be one, at least at first.</p>
<p><span id="more-233"></span></p>
<p>I&#8217;m teaching myself PERL and revisiting LISP (although I may veer into Scheme instead). The former has some potential for practical application, the latter, well&#8230;</p>
<p>I&#8217;ve been developing software professionally for over nine years, off (school) and on (vacations and after graduation). I&#8217;m predominantly a C++ programmer, with a smattering of C#, VB, VB.Net, Java, and who knows what else. However, I&#8217;ve never really visited the realm of functional programming, outside a brief course in Scheme in&#8230; sophomore year? I can&#8217;t recall, honestly.</p>
<p>I&#8217;ve been reading a series of postings by <a href="http://www.paulgraham.com/">Paul Graham</a>, and he makes numerous compelling arguments for functional programming languages, particularly LISP. From a purist perspective I like the idea of a function doing exactly what it says. From a practical perspective, I like the idea of a function being directly and succintly testable.</p>
<p>However, I&#8217;m missing the conceptual leap of how one would go about structuring large scale applications in such a manner. I may just need some time off to think about it, but that isn&#8217;t coming anytime soon, so perhaps one of the (few) people who read this who happen to be computer types has already made the functional-programming-architectural leap might be able to push me off the cliff of ignorance?</p>
<p>I typically write object-oriented code. I tend to find myself spending a great deal of time in the COM interface-based world, where a strange hybrid of functional evaluation (&#8220;What&#8217;s the answer to this query?&#8221;) and state-based behavioral changes (&#8220;Activate, and start accepting input&#8221;) exist. The rest of the time I&#8217;m writing managed components, that serve as framework to components on both sides, caller and callee. Imperative programming can, to a certain extent, serve as a functional system &#8212; continuations and the ilk are far more clumsy &#8212; but I&#8217;m missing how a large application could be created in a purely functional form.</p>
<p>A textual description would be okay, a source sample would be ideal. Anyone know how to build purely-functional programming applications?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.office-monkey.com/2007/08/28/req-help-from-the-programming-types/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Again, jaw hanging open, but this time in a good way.</title>
		<link>http://www.office-monkey.com/2007/06/29/again-jaw-hanging-open-but-this-time-in-a-good-way/</link>
		<comments>http://www.office-monkey.com/2007/06/29/again-jaw-hanging-open-but-this-time-in-a-good-way/#comments</comments>
		<pubDate>Fri, 29 Jun 2007 22:57:03 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[idle]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.office-monkey.com/2007/06/29/again-jaw-hanging-open-but-this-time-in-a-good-way/</guid>
		<description><![CDATA[I get rather alarmed at work when I&#8217;m told that someone&#8217;s idiocy is to be expected, as they&#8217;re: new, young, inexperienced, poorly trained, etc. I just expect better. On the other hand, every so often I run across something truly brilliant, and feel humbled (Any book by Don Box). Today, I ran across &#8220;Duff&#8217;s Device.&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>I get rather alarmed at work when I&#8217;m told that someone&#8217;s idiocy is to be expected, as they&#8217;re: new, young, inexperienced, poorly trained, etc. I just expect better.</p>
<p>On the other hand, every so often I run across something truly brilliant, and feel humbled (Any book by Don Box). Today, I ran across <a href="http://doc.cat-v.org/bell_labs/duffs_device">&#8220;Duff&#8217;s Device.&#8221;</a></p>
<p>I&#8217;d heard of it before, but never bothered to actually look at the code. It&#8217;s an optimization for something I rarely have to deal with in real life.</p>
<p>Looking at the code today, I was at first confused by what the big deal was&#8230; then saw where the &#8220;do&#8221; was located, and was struck by the brilliance. Pick up the odd-numbers-out at the start, rather than at the end&#8230;</p>
<p>Only click the link if you don&#8217;t mind feeling impressed, and feel comfortable in your knowledge of what exactly a compiler does. Assembly language knowledge might help cushion the wtf factor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.office-monkey.com/2007/06/29/again-jaw-hanging-open-but-this-time-in-a-good-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

