<?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>Just A Programmer &#187; Justin</title>
	<atom:link href="http://www.justaprogrammer.net/author/justin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.justaprogrammer.net</link>
	<description>We're Just Programmers...</description>
	<lastBuildDate>Thu, 28 Jan 2010 14:04:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Using the registry to resolve Visual Studio reference paths.</title>
		<link>http://www.justaprogrammer.net/2010/01/28/using-the-registry-to-resolve-visual-studio-reference-paths/</link>
		<comments>http://www.justaprogrammer.net/2010/01/28/using-the-registry-to-resolve-visual-studio-reference-paths/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 14:01:13 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Just A Programmer]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[MSBuild]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.justaprogrammer.net/?p=88</guid>
		<description><![CDATA[Note: To skip the long journey of what lead me to figuring this out, click here to go to the howto.
Recently I was asked to look at a fiddler plugin Stan, the founder of this blog, was developing. He gave me a SVN path and asked me to build it and test it.
So I checked [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Note:</strong> To skip the long journey of what lead me to figuring this out, <a href="#howto">click here to go to the howto</a>.</p>
<p>Recently I was asked to look at a fiddler plugin Stan, the founder of this blog, was developing. He gave me a SVN path and asked me to build it and test it.</p>
<p>So I checked out the source code and hit F5. I got a bunch of compiler errors relating to the fact that I didn&#8217;t have fiddler installed. I rectified that matter and still got errors. The problem was that the hintpath of fiddler.exe was wrong. On my machine, Fiddler is installed in &#8216;C:\Program Files\Fiddler2\&#8217;, while on Stan&#8217;s machine it is installed to &#8216;C:\Program Files <strong>(x86)</strong>\Fiddler2&#8242;. I consulted the mighty google, which led me to a <a href="http://stackoverflow.com/questions/462564/hintpath-on-a-added-reference-in-visual-studio">stackoverflow question</a>. The question pointed out that you can have multiple hintpaths to an assembly. However, I wanted a better solution. What if someone installed Fiddler to a custom location?</p>
<p>I got the idea of using the registry. Fiddler has an installer. Surely the installer records its install location to the registry. It does in &#8216;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fiddler2&#8242; (Apparently fiddler is written by a Microsoft Employee). So the question is how to get MSBuild, the tool that visual studio uses to parse project files, to read a value from the registry.</p>
<p>The answer was found in a <a href="http://blogs.msdn.com/msbuild/archive/2007/05/04/new-registry-syntax-in-msbuild-v3-5.aspx">post</a> on the MSBuild team blog.</p>
<p><a name="howto"></a></p>
<h2>How To</h2>
<p>Unfortunately, Visual Studio does not allow you to edit hintpaths to referenced assemblies. So you&#8217;re going to have to edit your vcproj or vbproj file in notepad or some other text editor.  Here are the steps:</p>
<ol>
<li>Open the project file in your text editor.</li>
<li>Look for the &lt;Reference/&gt; element for fiddler.exe. It should look similar to this:<br />
<blockquote><p>
&lt;Reference Include=&#8221;Fiddler, Version=2.2.7.5, Culture=neutral, processorArchitecture=MSIL&#8221;&gt;<br/><br />
&lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;<br/><br />
&lt;HintPath&gt;C:\Program Files\Fiddler.exe&lt;/HintPath&gt;<br/><br />
&lt;Private&gt;False&lt;/Private&gt;<br/><br />
&lt;/Reference&gt;<br/>
</p></blockquote>
</li>
<li>Change the hintpath as follows:<br />
<blockquote><p>
&lt;Reference Include=&#8221;Fiddler, Version=2.2.7.5, Culture=neutral, processorArchitecture=MSIL&#8221;&gt;<br />
&lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;<br />
&lt;HintPath&gt;$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fiddler2@InstallPath)\Fiddler.exe&lt;/HintPath&gt;<br />
&lt;Private&gt;False&lt;/Private&gt;<br />
&lt;/Reference&gt;
</p></blockquote>
</li>
<li>Save the file</li>
<li>Visual studio will detect the file change and ask you to reload the file. If you are using <a href="http://www.icsharpcode.net/OpenSource/SD/">SharpDevelop</a> as you&#8217;re IDE, you will have to close and reopen the solution.</li>
</ol>
<p>Thats all there is to it. Happy coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justaprogrammer.net/2010/01/28/using-the-registry-to-resolve-visual-studio-reference-paths/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What three things got me here.</title>
		<link>http://www.justaprogrammer.net/2010/01/21/what-three-things-got-me-here/</link>
		<comments>http://www.justaprogrammer.net/2010/01/21/what-three-things-got-me-here/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 03:08:22 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Just A Programmer]]></category>
		<category><![CDATA[Paul Randall]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.justaprogrammer.net/?p=81</guid>
		<description><![CDATA[Paul Randal wrote a What three events brought you here article on his blog and asked some others in the SQL server community to do the same. I of course was not on that list. However, no one ever invited me to blog about anything before so why should I be shy now.
I have decided [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sqlskills.com/blogs/paul/">Paul Randal</a> wrote a <a href="http://www.sqlskills.com/BLOGS/PAUL/post/What-three-events-brought-you-here.aspx">What three events brought you here</a> article on his blog and asked some others in the SQL server community to do the same. I of course was not on that list. However, no one ever invited me to blog about anything before so why should I be shy now.</p>
<p>I have decided to not tell this story in terms of professional accomplishments. For me, my hobbies have always led my career.<span id="more-81"></span></p>
<h1>Event 1: A trip to Borders</h1>
<p>The year was 1999. At 18 years old I spent my last summer before college doing contract work at <a href="http://en.wikipedia.org/wiki/590_Madison_Avenue">590 Madison Avenue</a>, a.k.a. <em>The IBM building</em>. Of course <a href="http://en.wikipedia.org/wiki/Louis_V._Gerstner,_Jr.">Lou Gerstner</a> had already sold the IBM building. I had heard of this linux thing. Deciding that I needed something better than Windows 95 (read: wanting to be more 1337), I bought myself a linux book and Mandrake Linux. I only had a 14.4k modem at home, and had no way of downloading an ISO easily.</p>
<p>Try as I might I could not get linux working on that computer. That September I brought the machine to college and bough a NIC that proudly claimed to be linux compatible. Of course it required a special patched version of the <a href="http://sourceforge.net/projects/tulip/">tulip driver</a> that I could not get compiled against the kernel. Someone told me about the even more awesome FreeBSD which actually worked with my NIC. Eventually, a version of the 2.4 kernel was released that supported my NIC out of the box.</p>
<h2>Event 1 Epilogue</h2>
<p>In college I learned a lot more about linux than I did in the month previous. All I really managed to learn in the few weeks on my own in my parents basement was how to use vi, and what sort of hardware tended to not be compatible with linux (modems, printers and damn near everything). However, had I not struggled those weeks on my own, I would have never sought acceptance with the other unix fans. That trip to borders changed the course of my time in college.</p>
<h1>Event 2: Learning SQL from Stan in a bowling alley.</h1>
<p>I would like to note that I never finished college. This part of the story takes place in the time period after I stopped going to school full time but while I was taking classes at what one would call a &#8220;junior college.&#8221;</p>
<p>So I am sitting one Saturday at my local bowling alley with and old Toshiba laptop. I believe it was a 133mhz pentium. This was probably 2002 so it was old at the time. At the time I knew half the employees and my brother was on a league there. So I spent Saturdays at the bowling alley, mostly because I could get free food.</p>
<p>I would hack at perl on the machine. It was running Wndows 95 with an <a href="http://www.activestate.com/activeperl/">ActiveState Perl</a> install. I don&#8217;t think any of my perl programs ever did anything useful, b I had fun writing them. For whatever reason, the founder of this blog Stan, who worked the cash register at the time,  decided to teach me SQL. It was relevant to whatever project I was working on at the time. I had recently finished a course in VB6 at this point in which a lesson at the end involved talking to an Access Database but no SQL was involved.</p>
<p>I ended up not using this knowledge until I began taking a SQL class that was taught with Microsoft Access. Because I had a basic understanding of SQL from Stan, and also had a clerical job at the time, I took to Access like a semi employed semi college dropout to free chicken fingers.</p>
<h2>Event 2 Epilogue</h2>
<p>Once again this was a catalyst event. Had I not learned SQL from Stan I might not have taken that MS Access course, and I might not have turned a clerical job into a development job.</p>
<h1>Event 3: My first LIPHP meeting</h1>
<p>March 2006 and I am back in a semi-employed state. This time by choice. I walked away from a unix administration position to take a programming contract and try to start a website. I didn&#8217;t take much of a paycut, and the next full time job I got was a big raise. However, this is not about my professional accomplishments.</p>
<p>So there I was programming on the side for money and the rest of the time for room, board, and potential millions. Unfortunately I was the only programmer in this boiler room startup. I had no one to talk about computers with. I was programming PHP at the time and became aware of a PHP user group in Suffolk county. So I traveled one Monday night from my bedroom/office in Manhattan to an office in Suffolk county less than a mile from the job I walked away from.</p>
<p>I don&#8217;t remember the topic, but it was a good time with good people. It was a great first experience at <a href="http://www.liphp.org">LIPHP</a> a group that I eventually became the organizer of. I had been to one user group before, a <a href="http://www.lilug.org">LILUG</a> meeting in 2001. However, it was not something I saw any value in at the time. I will note that I am an occasional LILUG attendee these days and the meetings in recent years have been very good.</p>
<h2>Event 3 Epilogue</h2>
<p>Its not easy to qualify the impact of LIPHP. It never got me a job. However, it has lead me to more user groups, more mailing lists, and some networking. I learned many things from the group. I learned about giving presentations, and running a user group.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justaprogrammer.net/2010/01/21/what-three-things-got-me-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trouble building PHP on Windows</title>
		<link>http://www.justaprogrammer.net/2010/01/17/microsoft-wont-tell-zend-how-to-build-php/</link>
		<comments>http://www.justaprogrammer.net/2010/01/17/microsoft-wont-tell-zend-how-to-build-php/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 20:14:54 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Just A Programmer]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Zend]]></category>

		<guid isPermaLink="false">http://www.justaprogrammer.net/?p=75</guid>
		<description><![CDATA[Update: It seems that the facts presented to me in the initial bug report are not correct. I will be revising this article after the facts are settled. For now read the comments.
It all started with a simple bug encountered while trying to get PHP and WCF to play nice. Before you know it I [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update:</strong> It seems that the facts presented to me in the initial bug report are not correct. I will be revising this article after the facts are settled. For now read the comments.</p>
<p>It all started with a <a href="http://bugs.php.net/bug.php?id=50698">simple bug</a> encountered while <a href="http://stackoverflow.com/questions/1933213/connecting-to-a-wcf-service-in-php-that-has-a-a-nettcp-binding-and-a-basichttpbin">trying to get PHP and WCF to play nice</a>. Before you know it I was attempting to compile PHP on windows myself. That&#8217;s when I realized how deep the rabbit hole really goes.</p>
<p>These days I program in PHP and .NET for a living. In a past life I was a unix admin for small ISP where most of the internal unix infrastructure was FreeBSD while the managed customers tended to run Redhat.  Due to the unique path of my IT career, I usually don&#8217;t have a problem compiling open source software primarily targeted for unix on windows. PHP has proven to be a bit of an exception. However, with a little struggle, I got it to compile.</p>
<p>In this case the crux of the struggle was not a lack of documentation, but documentation outdated to the point of being wrong. This is perhaps the one exception to the rule postulated by Dick Brandon, &#8220;Documentation is like sex . . . when it is good, it is very, very good; and when it is bad, it is better than nothing.&#8221; Thankfully, <a href="http://blog.thepimp.net/">Pierre</a> of <a href="http://www.libgd.org/Main_Page">libgd</a> fame <a href="http://marc.info/?l=php-windows&amp;m=126333358531362&amp;w=2">pointed me in the right direction</a> on the mailing list. So being a good netizen, I submitted a <a href="http://bugs.php.net/bug.php?id=50779">bug report</a> so that someone with commit access to the php source repo could straighten the mess out. This was the response I received:</p>
<blockquote><p><span style="color: #333399;"> We don&#8217;t understand the build requirements or system.</span></p>
<p><span style="color: #333399;">You have to ask the Microsoft guys to update that file.<br />
<a rel="nofollow" href="http://no.php.net/manual/en/install.windows.building.php">http://no.php.net/manual/en/install.windows.building.php</a> was one of our<br />
best Windows know-how (not-microsoft-employee) guy shot at documenting<br />
the process, but the feedback he got from Microsoft employees was &#8220;this<br />
is crap. its all wrong&#8221;.</span></p>
<p><span style="color: #333399;">Sorry, we simply do not know how to do this. </span></p></blockquote>
<p>That was a little disheartening. I asked them to mark the readme file as outdated, and I asked them how to contact Microsoft. This was the response I received:</p>
<blockquote><p><span style="color: #333399;"> Updated the file to say its outdated.</span></p>
<p><span style="color: #333399;">As for contacting the Microsoft guys, try surfing around on</p>
<p>http://windows.php.net</span></p>
<p><span style="color: #333399;">We have tried multiple times to get these docs updated, with no luck so<br />
far, and like I said; our last attempt was shot down and they wanted<br />
those docs to be reverted.</span></p>
<p><span style="color: #333399;"><strong><em>I&#8217;m sorry, you are simply on your own here.</em></strong></span></p></blockquote>
<p>So it seems my only resort is to blog about it and hope someone from Microsoft is in earshot. If you care about PHP on windows, spread the word. Spread this article with twitter, digg, reddit, or just plain old email. If you have the ear of anyone in Microsoft give it a bend. I&#8217;ve never attempted blogger activism like this, but I don&#8217;t know what else to do. I much prefer to fix problems myself than delegating or inspiring. However, this is one case where I need to &#8220;have a little help from my friends.&#8221; I don&#8217;t even know what Microsoft finds wrong with the proposed updates to the documentation, so submitting updated documentation seems pointless.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justaprogrammer.net/2010/01/17/microsoft-wont-tell-zend-how-to-build-php/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Yes your software needs an installer.</title>
		<link>http://www.justaprogrammer.net/2010/01/16/yes-your-software-needs-an-installer/</link>
		<comments>http://www.justaprogrammer.net/2010/01/16/yes-your-software-needs-an-installer/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 03:35:56 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[installers]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.justaprogrammer.net/?p=34</guid>
		<description><![CDATA[Some people have a love-hate releationship with certain pieces of software. Others, a love to hate relationship. My releationship with Eclipse is more of a respect-hate relationship.
Perhaps I make that categorization, because I cannot admit a more purer dichotomy of love-hate, I&#8217;ve often described eclipse as being put together by a hippie commune of developers. [...]]]></description>
			<content:encoded><![CDATA[<p>Some people have a love-hate releationship with certain pieces of software. Others, a love to hate relationship. My releationship with Eclipse is more of a respect-hate relationship.</p>
<p>Perhaps I make that categorization, because I cannot admit a more purer dichotomy of love-hate, I&#8217;ve often described eclipse as being put together by a hippie commune of developers. The features are all nice. However, the complete lack of central planning is very apparent. The fact that there are at least three &#8220;Find&#8221; dialogs in Eclipse PDT, the Eclipse distribution designed for PHP is testament to this. In the Edit menu their is a find dialog for the current document. In the Search menu there is one dialog for searching for PHP methods, fields, etc. There is also a second that has several tabs for searching for javascript, plain file search, and others.</p>
<p>This is all somewhat acceptable, as Eclipse not only an IDE, but a Framework for making IDEs. There are third party eclipse distributions for editing java, PHP and other languages in eclipse that are more polished. Perhaps its best that the &#8220;reference distributions&#8221; have the full hodgepodge of features, and third parties take the &#8220;less is more&#8221; approach.</p>
<p>However, one missing feature I cannot forgive is the lack of an installer. All mature software projects should have proper installers for their platform. For an Apple, this means a .dmg file with a .app bundle built in. For windows this means an MSI, exe, or an exe wrapped around an MSI. For linux this means an rpm and debian package.</p>
<p>That&#8217;s not to say I am against the concept of a binary zip or tarball. On the contrary, some people don&#8217;t like installers, and they should have the option of just unzipping. Freedom of choice is a good thing. However, I am saying that an installer is one of the necessary choices for all platforms.</p>
<p>As a final aside, I realize that a dmg with a .app bundle is not really an installer on par with an RPM, MSI, or EXE installer. I also realize there are real installers for MacOSX software that a minority of Mac Software uses.  So I acknowledge that Mac OSX is an exception to this rule.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justaprogrammer.net/2010/01/16/yes-your-software-needs-an-installer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Printf() for jquery.</title>
		<link>http://www.justaprogrammer.net/2010/01/16/sprintf-for-jquery/</link>
		<comments>http://www.justaprogrammer.net/2010/01/16/sprintf-for-jquery/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 03:26:08 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Just A Programmer]]></category>

		<guid isPermaLink="false">http://www.justaprogrammer.net/?p=60</guid>
		<description><![CDATA[I was preparing for my pre-session talk this past November at LISUG, when I determined that I needed a printf() function for jquery. To be more accurate, more accurately I needed an sprintf() implementation in javascript, and wanted to .
Google lead me to a jquery plugin that has not been updated since 2007. However, sometimes [...]]]></description>
			<content:encoded><![CDATA[<p>I was preparing for my pre-session talk <a href="http://lisug.org/m091118.htm">this past November </a>at <a href="http://lisug.org">LISUG</a>, when I determined that I needed a <a href="http://en.wikipedia.org/wiki/Printf">printf()</a> function for <a href="http://jquery.com">jquery</a>. To be more accurate, more accurately I needed an sprintf() implementation in javascript, and wanted to .</p>
<p>Google lead me to a <a href="http://http://plugins.jquery.com/project/sprintf">jquery plugin</a> that has not been updated since 2007. However, sometimes software gets to the point where it really doesn&#8217;t need to be maintained, and if it worked for me I was not going to dismiss it as abandoned software.</p>
<p>In the end it did require a <a href="http://plugins.jquery.com/node/11385">small patch</a> to handle %% (really print a percentage sign). Unfortunately, the maintainer has not acted on my patch. However, please apply it if you plan on using it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justaprogrammer.net/2010/01/16/sprintf-for-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Self appointed traditionalist bishop of the Church of XML</title>
		<link>http://www.justaprogrammer.net/2009/11/07/self-appointed-traditionalist-bishop-of-the-church-of-xml/</link>
		<comments>http://www.justaprogrammer.net/2009/11/07/self-appointed-traditionalist-bishop-of-the-church-of-xml/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 07:55:49 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Just A Programmer]]></category>

		<guid isPermaLink="false">http://www.justaprogrammer.net/?p=56</guid>
		<description><![CDATA[In a recent blog, ESR coined an interesting phrase, high-church XML. I have identified with this term, and all of its connotations. I have expanded upon the idea and declared myself a traditionalists bishop in the church of XML
ESR was trying to point out that regexes are appropriate for extracting information from html, because its [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://esr.ibiblio.org/?p=1387">In a recent blog</a>, ESR coined an interesting phrase, high-church XML. I have identified with this term, and all of its connotations. I have expanded upon the idea and declared myself a traditionalists bishop in the church of XML</p>
<p>ESR was trying to point out that regexes are appropriate for extracting information from html, because its tag soup, and DOM parsing doesn&#8217;t work well. I personally think some clever xPaths could be made to work, but I question the performance. I also think regexes are better when you are screen scraping because you can&#8217;t even guarantee the xml will be well formed.</p>
<p>He coined, the term to describe the other extreme, when you have a tightly defined schemas. Assumably the schemas are defined by xsd, but dtd and the exotic schema standards could do similar jobs.</p>
<p>To make a long story short, I spent a lot of time at the other extreme. I&#8217;ve used, extended, and authors several xsd schemas at a previous employer. I cannot discuss specifics, but can claim that thousands of documents go through their systems a day that must pass my strict schema, or the data gets sent back to its source like a citizen at the DMV that forgets to fill out part of a form.</p>
<p>I don&#8217;t claim superiority to ESR. He is not in a position to tell the forges &#8220;clean up your data.&#8221; My company was. He is not doing the forges a favor. I am just saying that I do appreciate the beauty of strictly defined xml documents.</p>
<p>Now, just some definitions related to his term an my self appointed title. High and low church refers to emphasis on ritual, incense, and &#8220;tradition.&#8221;  High church is mass in latin. Low church is <a href="http://www.joelosteen.com/Pages/Index.aspx">Joel Osteen</a>. A bishop is a clergyman tasked with authority over an area served by several churches. And traditionalists refers to <a href="http://en.wikipedia.org/wiki/Traditionalist_Catholic">Traditionalist Catholics</a>, or a group of Catholics, some excommunicated, some not, that want the Catholic Church to return to its state before Vatican II where mass and the other church rituals were conducted in latin, meat was forbidden on all Fridays, and so on.</p>
<p>I&#8217;m a big fan of structure in my data so I&#8217;m all about my high church schema&#8217;s. I care about xml passionately, so I appoint myself a bishop. But where does the traditionalism come from? What innovations do I reject? The answer is html5. I don&#8217;t actually reject html5, I just reject it not being xml. I want a video tag in xhtml.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justaprogrammer.net/2009/11/07/self-appointed-traditionalist-bishop-of-the-church-of-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Github, because software kittens should be cloned, not adopted</title>
		<link>http://www.justaprogrammer.net/2009/11/04/github-because-software-kittens-should-be-cloned-not-adopted/</link>
		<comments>http://www.justaprogrammer.net/2009/11/04/github-because-software-kittens-should-be-cloned-not-adopted/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 04:05:59 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Just A Programmer]]></category>

		<guid isPermaLink="false">http://www.justaprogrammer.net/?p=53</guid>
		<description><![CDATA[Adopting an OSS product is kind of like adopting a kitten, but we shouldn't adopt stray software, we should clone it.]]></description>
			<content:encoded><![CDATA[<p>This is a tale of two open source software projects. However, unlike two certain European cities, there fates are not particularly intertwined, and there is little greatness about their history.</p>
<p>The projects are <a title="MQManager" href="http://sourceforge.net/projects/mqmanager/">mqmanager</a>, and <a title="Console" href="http://sourceforge.net/projects/console/">console</a>. Mqmanager is a tool for managing <a title="Microsoft Message Queueing" href="http://www.microsoft.com/windowsserver2003/technologies/msmq/default.mspx">MSMQs</a> written in .NET. Console is a multi-tabbed wrapper around cmd.exe.</p>
<p>Both projects are hosted on <a title="SOurceforge.NET" href="http://sf.net">sourceforge</a>. Neither project is terribly popular, although console is more so than mqmanager. The difference is in the SCM or source control management.</p>
<p>See mqmanager uses SVN, after a CVS migration, while Console uses git. More specifically Console hosts git on github.</p>
<p>&#8220;Whats so special about github?&#8221; you may ask. Well, mainly the forking presentment, or more specifically the one click forking. See, svn is centralized source control management, there is one repo that everyone reads from and writes to. In git, everyone  has a full copy of the repo, and people can push and pull from each other based on network availability and security settings. More importantly, every open source git repo (they have a paid for option for closed source hosting) on github has a &#8220;fork button.&#8221; Want to fork project? Make an account, login, browse to the project, click the fork button. You have a full copy of the repo, along with the ability to add issue tracking, downloads, etc.</p>
<p>Now your asking, &#8220;Doesn&#8217;t this make forking too easy?&#8221; Well forking in and of itself isn&#8217;t that bad. Current trends in SCM policies for commercial companies as well as open source projects. And making it easier to fork doesn&#8217;t make it easier to make anyone care about anyone elses forks. If I forked emacs or firefox, few people would use my fork, regardless of how long it took me to setup SCM. My fork would do little to distract any resources besides my own.</p>
<p>I established forking does little harm, but whats the benifit? The benefit, at least the one I care about is for the less popular projects. Console is much more popular than mqmanager, but neither are hugely popular. Neither have funding or a development team of more than one person.</p>
<p>When I found mqmanager, it was abandoned like a stray kitten. I contacted the original developers, and was given control of the project. I improved it, used it, and forgot about it. Someday someone else might make changes to the code that they want to contribute back to the community. They will have to find me, I will have to give them access to the source forge project, and they will be stock caring for the project.</p>
<p>With console its a different model. The sourceforge page has  a sorce archive and a binary archive. I wanted an installer, and I was willing to write one myself. I made an account on github, forked the project (there is a fork button on each repo that will fork any project), made some changes, committed to my branch, and sent a pull request to the original author. Github makes it quite clear that I am a fork of bozho, and bozho can accept my changes at any time. A year from now someone can fork my version and send bozho and myself push requests.</p>
<p>The benefit of github is you don&#8217;t have to ask permission. Your cloning my kitten, not adopting him. Thats important for smaller niche open source projects. If I write a niche open source product, I probably won&#8217;t be using it regularly two years from now, but someone else might need it. The decentralized github model works better than the forge model for this.</p>
<p>I have adopted a few kittens over the years, and have a few kittens in need of adoption. I plan on migrating all my OSS project over to github. I will keep up the sourceforge pages, but  strip most of the sourceforge functionality to encourage use of the github pages. Perhaps people will fork these projects. Maybe at the time I will be to busy to evaluate their pull requests, but in the end my software . . . my craft . . . my art will live on and hopefully be mare more useful by others.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justaprogrammer.net/2009/11/04/github-because-software-kittens-should-be-cloned-not-adopted/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Stack Overflow, providing definitive answers that previously would have gone unanswered.</title>
		<link>http://www.justaprogrammer.net/2009/08/26/stack-overflow-providing-definitive-answers-that-previously-would-have-gone-unanswered/</link>
		<comments>http://www.justaprogrammer.net/2009/08/26/stack-overflow-providing-definitive-answers-that-previously-would-have-gone-unanswered/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 03:26:27 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Just A Programmer]]></category>
		<category><![CDATA[stackoverflow serverfault]]></category>

		<guid isPermaLink="false">http://www.justaprogrammer.net/?p=44</guid>
		<description><![CDATA[I am a stackoverflow, serverfault, superuser, and of course meta stackoverflow junkie. This probably comes as no surprise due to the three sites I recently launched.
There are many reasons I like these three sites. First of all, I am a big fan of on-line and real life programmer interaction. Secondly, I like the model Jeff [...]]]></description>
			<content:encoded><![CDATA[<p>I am a <a href="http://www.stackoverflow.com" target="_blank">stackoverflow</a>, <a href="http://www.serverfault.com" target="_blank">serverfault</a>, <a href="http://www.superuser.com" target="_blank">superuser</a>, and of course <a href="http://meta.stackoverflow.com" target="_blank">meta stackoverflow</a> junkie. This probably comes as no surprise due to the three sites I recently launched.</p>
<p>There are many reasons I like these three sites. First of all, I am a big fan of on-line and real life programmer interaction. Secondly, I like the model Jeff Atwood and Joel Spolsky&#8217;s designed. Finally, the site just works and has a lot of users and content.</p>
<p>Today I was looking at some VB.NET code, and some string literals were being concatenated. These were long strings so it certainly made sense for them to be broken up along multiple lines. Normally I would assume the .NET compiler would optimize this to one string during the compile process, but I decided to search on stackoverflow. I found the following links:</p>
<ul>
<li><a href="http://stackoverflow.com/questions/601804/what-is-the-performance-cost-of-assigning-a-single-string-value-using-s" target="_blank">http://stackoverflow.com/questions/601804/what-is-the-performance-cost-of-assigning-a-single-string-value-using-s</a></li>
<li><a href="http://stackoverflow.com/questions/290527/does-vb-net-optimize-the-concatenation-of-string-literals" target="_blank">http://stackoverflow.com/questions/290527/does-vb-net-optimize-the-concatenation-of-string-literals</a></li>
<li><a href="http://stackoverflow.com/questions/288794/does-c-optimize-the-concatenation-of-string-literals" target="_blank">http://stackoverflow.com/questions/288794/does-c-optimize-the-concatenation-of-string-literals</a></li>
</ul>
<p>I got my answers quickly, with references to the relevant specs, and IL code generated from sample source code. There are many duplicates on this topic, and I should take the time to notify the moderators to close them. However, today I produced better codeand was enlightened a little thanks  to stackoverflow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justaprogrammer.net/2009/08/26/stack-overflow-providing-definitive-answers-that-previously-would-have-gone-unanswered/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Monkey Gets It &#8220;Java is to complicated&#8221;</title>
		<link>http://www.justaprogrammer.net/2009/08/11/code-monkey-gets-it-java-is-to-complicated/</link>
		<comments>http://www.justaprogrammer.net/2009/08/11/code-monkey-gets-it-java-is-to-complicated/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 22:03:03 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.justaprogrammer.net/?p=30</guid>
		<description><![CDATA[A clear article explaining why simpler is better with web service libraries.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.codemonkeyramblings.com/2009/08/thoughts-on-java-and-web-services/">A clear article</a> explaining why simpler is better with web service libraries.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justaprogrammer.net/2009/08/11/code-monkey-gets-it-java-is-to-complicated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It doesn&#8217;t bother me if half the world still runs XP</title>
		<link>http://www.justaprogrammer.net/2009/08/09/it-doesnt-bother-me-if-half-the-world-still-runs-xp/</link>
		<comments>http://www.justaprogrammer.net/2009/08/09/it-doesnt-bother-me-if-half-the-world-still-runs-xp/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 20:10:47 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.justaprogrammer.net/?p=27</guid>
		<description><![CDATA[I am an avid Reader of Jeff Atwood&#8217;s Coding Horror. I usually agree with him. However, I must disagree with his hatred of Window&#8217;s XP&#8217;s continuing popularity. I don&#8217;t care.
Disclaimer: I still run Windows XP at home and at work.
So now that I&#8217;ve stated my prejudice, I&#8217;ll talk about a similar situation that does bother [...]]]></description>
			<content:encoded><![CDATA[<p>I am an avid Reader of Jeff Atwood&#8217;s <a href="http://www.codinghorror.com/blog/">Coding Horror</a>. I usually agree with him. However, I must disagree with his hatred of Window&#8217;s XP&#8217;s continuing popularity. I don&#8217;t care.</p>
<p><strong>Disclaimer:</strong> I still run Windows XP at home and at work.</p>
<p>So now that I&#8217;ve stated my prejudice, I&#8217;ll talk about a similar situation that does bother me, people that use MacOS9, and why thats a completely different story.</p>
<p>Why do I hate the, now very small number of, MacOS9 zealots? Because of their fear of change. I try not to hate them for their lack of appreciation for a true multi user OS based on unix and the mach microkernel. Most of them just don&#8217;t care. I could never convince a client that ran a <strong>SECURITY</strong> guard company who was a retired NYPD Detective Sargeant of the neccessity of passwords to <strong>SECURE</strong> computers. Most people want to use their computer to accomplish a task. These are the same people that take their cars to their dealer for maintance, and don&#8217;t question their dealers reccomended service schedule. All that being said, these MacOS9 people, at least the ones using Quark and Photoshop, need to realize that the newer versions of these packages will improve their daily workflow.  Grouped masks and the like transformed how most people use photoshop. I&#8217;m sure in the past ten or so years quark has improved greatly.</p>
<p>Now this excert from a recent <a href="http://www.codinghorror.com/blog/archives/001290.html">coding horror article</a> seems to sum up Jeff&#8217;s position quite well.</p>
<blockquote><p>Thus, I&#8217;ve been following the development of Windows 7 with cautious optimism. It&#8217;s important to me not because I am an operating system fanboy, but mostly because <strong>I want the world to get the hell off Windows XP</strong>. A world where people regularly use 9 year old operating systems is not a healthy computing ecosystem. Nobody is forcing anyone to use Windows, of course, but given the fundamental inertia in most people&#8217;s computing choices, the lack of a compelling Windows upgrade path is a dangerous thing.</p></blockquote>
<p>The thing is I don&#8217;t have any problem with anyone using a 9 year old operating system. As long as they are updating the software running on top of it regularly. <a href="http://twitter.com/crazeegeekchick">@Crazygeekchick</a>, whom I follow on twitter, spent a good portion of saturday installing all the Microsoft Software she regularly uses on top of a fresh windows 7 install. People that Windows Vista or 7 and never run windows update, install a third party browser, or use a non microsoft program for any of their tasks bother me. My friend that ran windows 2000 until forced to do otherwise to use the latest version of DirectX does not.</p>
<p>Running XP in this day and age is a purposeful decision. Running Vista is the easy thing to do. If Vista is what you want, due to <a href="http://en.wikipedia.org/wiki/User_Account_Control">UAC</a> or <a href="http://msdn.microsoft.com/en-us/library/ms734677.aspx">WAS</a>, go for it. However, if you hate Vista, use XP, or Windows 7, or Linux, or even <a href="http://plan9.bell-labs.com/plan9/">Plan 9 from Bell Labs</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justaprogrammer.net/2009/08/09/it-doesnt-bother-me-if-half-the-world-still-runs-xp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
