<?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"
	>

<channel>
	<title>Dangerously Opinionated</title>
	<atom:link href="http://www.blakeramsdell.com/techblog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blakeramsdell.com/techblog</link>
	<description>Blake Ramsdell's place to put words of utter brilliance about issues of a generally technical nature</description>
	<pubDate>Fri, 13 Jun 2008 04:23:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Ubuntu on Parallels &#8212; not so feisty</title>
		<link>http://www.blakeramsdell.com/techblog/2007/05/12/ubuntu-on-parallels-not-so-feisty/</link>
		<comments>http://www.blakeramsdell.com/techblog/2007/05/12/ubuntu-on-parallels-not-so-feisty/#comments</comments>
		<pubDate>Sun, 13 May 2007 02:05:06 +0000</pubDate>
		<dc:creator>Blake</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.blakeramsdell.com/techblog/2007/05/12/ubuntu-on-parallels-not-so-feisty/</guid>
		<description><![CDATA[Now, I don&#8217;t mean to be bitchy, but think in your mind of a giant list of all of the things that you might want to run in Parallels on OS X. OK, got it? Now, in your top five, do you have &#8220;Ubuntu Linux&#8221;? You do?
Then why the hell isn&#8217;t it supported in Parallels [...]]]></description>
			<content:encoded><![CDATA[<p>Now, I don&#8217;t mean to be bitchy, but think in your mind of a giant list of all of the things that you might want to run in Parallels on OS X. OK, got it? Now, in your top five, do you have &#8220;Ubuntu Linux&#8221;? You do?</p>
<p>Then why the hell isn&#8217;t it supported in Parallels in a rational way?</p>
<p>What&#8217;s even worse is that it won&#8217;t even install with the &#8220;2.6 kernel&#8221; generic Linux profile.</p>
<p>What&#8217;s even more worse is that the Parallels forums are full of the normal noise and crap that is typical of any forums. As far as a search for &#8220;Ubuntu&#8221; on the Parallels forums goes, it&#8217;s an unmoderated unauthoratative mess of crazy talk and differing directions, including &#8220;run Q instead&#8221; which, based on my last evaluation was akin to &#8220;poke yourself in the eye with a sharp stick&#8221; and seemed more like trolling or astroturfing than an actual honest helpful suggestion (since the poster in question has only made three posts in his history, and all of them are &#8220;use Q&#8221;).</p>
<p>The greatest thing about Q is that it&#8217;s not a &#8220;search engine optimized&#8221; term, so it&#8217;s impossible to Google for, and my constant mention of it won&#8217;t contribute to its popularity. Q, Q, Q.</p>
<p>But the good news is that I found <a href="http://www.simplehelp.net/2007/04/27/how-to-install-ubuntu-feisty-fawn-in-os-x-using-parallels-a-complete-walkthrough/">a reasonable site</a> that summarizes what you need to get through the installation of Ubuntu 7.04 in Parallels which seems to work just jim dandy.</p>
<p>Hint to Parallels: I know you&#8217;re optimizing the experience for Windows, but I imagine that Ubuntu would be a good idea to support also.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blakeramsdell.com/techblog/2007/05/12/ubuntu-on-parallels-not-so-feisty/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Passwords vs. obscure directory names</title>
		<link>http://www.blakeramsdell.com/techblog/2006/12/27/passwords-vs-obscure-directory-names/</link>
		<comments>http://www.blakeramsdell.com/techblog/2006/12/27/passwords-vs-obscure-directory-names/#comments</comments>
		<pubDate>Thu, 28 Dec 2006 06:46:00 +0000</pubDate>
		<dc:creator>Blake</dc:creator>
		
		<category><![CDATA[RSS]]></category>

		<guid isPermaLink="false">http://www.blakeramsdell.com/techblog/2006/12/27/passwords-vs-obscure-directory-names/</guid>
		<description><![CDATA[So recently I&#8217;ve been reading all of my RSS feeds using Google Reader. The thing I like the most is that I can click &#8220;Share&#8221; and it goes to my own special little feed comprised of articles that I pick. I don&#8217;t have to write any commentary, I don&#8217;t have to do shit &#8212; it [...]]]></description>
			<content:encoded><![CDATA[<p>So recently I&#8217;ve been reading all of my RSS feeds using Google Reader. The thing I like the most is that I can click &#8220;Share&#8221; and it goes to <a href="http://www.google.com/reader/shared/13179402600862241050">my own special little feed</a> comprised of articles that I pick. I don&#8217;t have to write any commentary, I don&#8217;t have to do shit &#8212; it just pops the article right in there. Pretty sweet, and pretty easy.</p>
<p>Here&#8217;s my problem. I got my first &#8220;subscription-only&#8221; RSS feed, and I don&#8217;t know what to do about it &#8212; Google Reader doesn&#8217;t support feeds that require authentication. I mean, I can read it in my primitive NetNewsWire reader, but I lose my wonderful &#8220;share&#8221; functionality.</p>
<p>One thing that pops to mind is that instead of using authentication, use obscure directory names and symlinks. So if you want to authorize Joe for a feed, you make a directory called &#8220;Joe-asalkjshflkjh234ihlkjh234&#8243; or whatever. The point is that it should have Joe&#8217;s name in it (so you know it&#8217;s Joe&#8217;s) and some amount of random crap in it, so that it&#8217;s hard to guess. Put a symlink in the directory to the actual feed, and then give Joe the URL.</p>
<p>Now, one thing that might happen is that your jerkwad RSS reader might do something with that feed other than use it to make an article list for you (like they might retain the feed URL and it might get leaked). That&#8217;s a bit rude, but I&#8217;m not sure what you can do about it.</p>
<p>The good news is that if you want to remove Joe&#8217;s feed, just rm it, or if he needs new credentials, just mv it. Unless directory browsing is turned on for your website, no one should know that directory is out there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blakeramsdell.com/techblog/2006/12/27/passwords-vs-obscure-directory-names/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TextMate blogging bundle</title>
		<link>http://www.blakeramsdell.com/techblog/2006/10/25/textmate-blogging-bundle/</link>
		<comments>http://www.blakeramsdell.com/techblog/2006/10/25/textmate-blogging-bundle/#comments</comments>
		<pubDate>Wed, 25 Oct 2006 09:10:57 +0000</pubDate>
		<dc:creator>Blake</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.blakeramsdell.com/techblog/2006/10/25/textmate-blogging-bundle/</guid>
		<description><![CDATA[Testing out the TextMate blogging bundle. TextMate rulez.
]]></description>
			<content:encoded><![CDATA[<p>Testing out the TextMate blogging bundle. TextMate rulez.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blakeramsdell.com/techblog/2006/10/25/textmate-blogging-bundle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Unicode is tricky in Java and might be impossible in C++</title>
		<link>http://www.blakeramsdell.com/techblog/2006/06/10/unicode-is-tricky-in-java-and-might-be-impossible-in-c/</link>
		<comments>http://www.blakeramsdell.com/techblog/2006/06/10/unicode-is-tricky-in-java-and-might-be-impossible-in-c/#comments</comments>
		<pubDate>Sat, 10 Jun 2006 22:55:03 +0000</pubDate>
		<dc:creator>Blake</dc:creator>
		
		<category><![CDATA[Macintosh]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.blakeramsdell.com/techblog/2006/06/10/unicode-is-tricky-in-java-and-might-be-impossible-in-c/</guid>
		<description><![CDATA[Here&#8217;s a challenge for you. Ready?
In Java and C++ on OS X, output to the console the following string:
I have €100 to my name.

You&#8217;ll be surprised how hard this is.

I&#8217;ll start with a control &#8212; something that works correctly. I created a text file with TextMate encoded with UTF-8:
blake-ramsdells-macbook-pro:~/Source/test/JavaUnicode blake$ cat ~/Documents/Unicode.txt
I have €100 to [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a challenge for you. Ready?</p>
<p>In Java and C++ on OS X, output to the console the following string:</p>
<pre>I have €100 to my name.
</pre>
<p>You&#8217;ll be surprised how hard this is.<br />
<span id="more-12"></span><br />
I&#8217;ll start with a control &#8212; something that works correctly. I created a text file with TextMate encoded with UTF-8:</p>
<pre>blake-ramsdells-macbook-pro:~/Source/test/JavaUnicode blake$ cat ~/Documents/Unicode.txt
I have €100 to my name.
blake-ramsdells-macbook-pro:~/Source/test/JavaUnicode blake$ od -c ~/Documents/Unicode.txt
0000000    I       h   a   v   e     342 202 254   1   0   0       t   o
0000020        m   y       n   a   m   e   .  n
0000032</pre>
<p>Note the perfect output when I run &#8220;cat&#8221; on it. The octal string 342 202 254 in the file is the UTF-8 encoding of the Euro character which is \u20ac. Rock.</p>
<p>So fine, I know Java pretty well, I&#8217;ll take a whack at it. This is the source code:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw2">class</span> JavaUnicode<br />
<span class="br0">&#123;</span><br />
<span class="kw2">public</span> <span class="kw4">static</span> <span class="kw4">void</span> main<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&#038;bntl=1"><span class="kw3">String</span></a> args<span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
<a href="http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&#038;bntl=1"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&#8220;I have <span class="es0">\u</span>20ac100 to my name.&#8221;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Easy enough &#8212; let&#8217;s see what it outputs:</p>
<pre>blake-ramsdells-macbook-pro:~/Source/test/JavaUnicode blake$ java JavaUnicode
I have ?100 to my name.
</pre>
<p>Neat. Not exactly a Euro character. I&#8217;m a pretty smart Java guy, and I know that the general MO of Java is to take Unicode characters and re-encode them as required. So my guess is that there&#8217;s some Java concept of the charset of the console, and that&#8217;s not set correctly. It&#8217;s pretty clear that the OS X terminal understands UTF-8, so we just need to tell someone that the console is UTF-8.</p>
<p>I Googled for a bit, and found that file.encoding will alter the charset of the console output. I modified my test program to add the line:</p>
<div class="codesnip-container" >
<div class="codesnip"><a href="http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&#038;bntl=1"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&#8220;file.encoding=&#8221;</span> +<br />
<a href="http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&#038;bntl=1"><span class="kw3">System</span></a>.<span class="me1">getProperty</span><span class="br0">&#40;</span><span class="st0">&#8220;file.encoding&#8221;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</div>
<p>Which indicated that the default encoding was &#8220;MacRoman&#8221;. Nice try. Let&#8217;s override it manually on the commandline:</p>
<pre>blake-ramsdells-macbook-pro:~/Source/test/JavaUnicode blake$ java -Dfile.encoding=utf-8 JavaUnicode
file.encoding=utf-8
I have €100 to my name.
</pre>
<p>Ahhh. Very nice. All fixed. Now the question is &#8220;where the hell does Java use file.encoding besides here, and does that concern me?&#8221; It looks like the places where file.encoding are used in Java are places where you can omit a charset name for encoding / decoding. Which I&#8217;m not sure you should ever do. So I think this issue is fixed.</p>
<p><strong>DANGEROUS OPINION #1:</strong> Java on OS X is stupid and uses MacRoman as the file.encoding. I have no idea what kind of prior practice they are trying to be compatible with, but I don&#8217;t have any text files or consoles that use MacRoman as the charset on OS X. It&#8217;s all UTF-8. Let&#8217;s get into the 90&#8217;s shall we and make the default file.encoding UTF-8?</p>
<p>Moving on to C++ now.</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co2">#include </span><br />
&nbsp;</div>
</div>
<p>int main(void)<br />
{<br />
std::wcout &lt;&lt; L&#8221;I have \u20ac100 to my name.\n&#8221;;<br />
return 0;<br />
}</p>
<p>I&#8217;ll skip the voyage of discovery to determine how to make wide strings and the difference between cout and wcout. Let&#8217;s see what this outputs:</p>
<pre>blake-ramsdells-macbook-pro:~/Source/test/CPPUnicode blake$ ./CPPUnicode
I have blake-ramsdells-macbook-pro:~/Source/test/CPPUnicode blake$
</pre>
<p>Say what? The output just dropped dead right at the Euro character. No questionmark, no nothing. Hm. Strange. Did it really just terminate the program? I tried changing it to the following:</p>
<div class="codesnip-container" >
<div class="codesnip">std::<span class="me2">wcout</span> &amp;lt;&amp;lt; L<span class="st0">&#8220;I have <span class="es0">\u</span>20ac100 to my name.<span class="es0">\n</span>&#8220;</span>;<br />
std::<span class="me2">wcout</span> &amp;lt;&amp;lt; L<span class="st0">&#8220;I lived!<span class="es0">\n</span>&#8220;</span>;</div>
</div>
<p>Run it again. Same output. You&#8217;ve got to be shitting me &#8212; the application *terminated* because of a character that wouldn&#8217;t encode? No way!</p>
<p>OK, let me try adding a try block around it to see if it threw an exception. So now I&#8217;ve got:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw2">try</span><br />
<span class="br0">&#123;</span><br />
std::<span class="me2">wcout</span> &amp;lt;&amp;lt; L<span class="st0">&#8220;I have <span class="es0">\u</span>20ac100 to my name.<span class="es0">\n</span>&#8220;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="kw2">catch</span><span class="br0">&#40;</span>&#8230;<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
<span class="br0">&#125;</span><br />
std::<span class="me2">wcout</span> &amp;lt;&amp;lt; L<span class="st0">&#8220;I lived!<span class="es0">\n</span>&#8220;</span>;</div>
</div>
<p>Nope. Same output. So you mean to tell me that because of a character that wouldn&#8217;t encode, my application terminated without raising a signal or throwing an exception? Outstanding!</p>
<p><strong>DANGEROUS OPINION #2:</strong> C++ terminating your application because a character destined for stdout couldn&#8217;t be encoded is the most pedantic, worthless behavior I&#8217;ve ever seen.</p>
<p>OK, so let&#8217;s quit whining and get it to work. I&#8217;m presuming the same problem with Java &#8212; the default encoding is something other than UTF-8, and it needs to be reset to be UTF-8.</p>
<p>I tried doing the following:</p>
<pre>blake-ramsdells-macbook-pro:~/Source/test/CPPUnicode blake$ LANG=en_US.UTF-8 ./CPPUnicode
</pre>
<p>Nope.</p>
<p>I tried adding the following at the start of the code:</p>
<div class="codesnip-container" >
<div class="codesnip">std::<span class="me2">locale</span> loc<span class="br0">&#40;</span><span class="st0">&#8220;en_US.UTF-8&#8243;</span><span class="br0">&#41;</span>;<br />
std::<span class="me2">locale</span>::<span class="me2">global</span><span class="br0">&#40;</span>loc<span class="br0">&#41;</span>;</div>
</div>
<p>That got me a freakout that at least made me feel better that exceptions were turned on:</p>
<pre>blake-ramsdells-macbook-pro:~/Source/test/CPPUnicode blake$ ./CPPUnicode
terminate called after throwing an instance of 'std::runtime_error'
what():  locale::facet::_S_create_c_locale name not valid
Abort trap
</pre>
<p>So huh? Why don&#8217;t I have en_US.UTF-8?</p>
<p>I tried checking my locale:</p>
<pre>blake-ramsdells-macbook-pro:~/Source/test/CPPUnicode blake$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL="C"
</pre>
<p>Man, that&#8217;s just crap. But OK, maybe I&#8217;m on the right track with this locale thing.</p>
<p>I dig a little more and I find /usr/share/locale and note that it has the following:</p>
<pre>blake-ramsdells-macbook-pro:~/Source/test/CPPUnicode blake$ ls -alR /usr/share/locale/en_US.UTF-8
total 40
drwxr-xr-x     8 root  wheel   272 Jan 13 14:06 .
drwxr-xr-x   236 root  wheel  8024 Feb  3 20:10 ..
lrwxr-xr-x     1 root  wheel    28 Feb  3 20:09 LC_COLLATE -&gt; ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x     1 root  wheel    17 Feb  3 20:09 LC_CTYPE -&gt; ../UTF-8/LC_CTYPE
drwxr-xr-x     3 root  wheel   102 Jan 13 14:06 LC_MESSAGES
lrwxr-xr-x     1 root  wheel    30 Feb  3 20:09 LC_MONETARY -&gt; ../en_US.ISO8859-1/LC_MONETARY
lrwxr-xr-x     1 root  wheel    29 Feb  3 20:09 LC_NUMERIC -&gt; ../en_US.ISO8859-1/LC_NUMERIC
lrwxr-xr-x     1 root  wheel    26 Feb  3 20:09 LC_TIME -&gt; ../en_US.ISO8859-1/LC_TIME

/usr/share/locale/en_US.UTF-8/LC_MESSAGES:
total 8
drwxr-xr-x   3 root  wheel  102 Jan 13 14:06 .
drwxr-xr-x   8 root  wheel  272 Jan 13 14:06 ..
lrwxr-xr-x   1 root  wheel   45 Feb  3 20:09 LC_MESSAGES -&gt; ../../en_US.ISO8859-1/LC_MESSAGES/LC_MESSAGES
</pre>
<p>So I think that en_US.UTF-8 is a splendid thing. But how the hell do I tell C++ about it? That std::locale fiasco didn&#8217;t encourage me.</p>
<p>I found a <a href="http://www.jtauber.com/blog/2006/04/16/getting_less_to_work_with_utf-8">blog entry</a> where some guy got &#8220;less&#8221; to work with UTF-8, so I figured I&#8217;d look at that some more. He just set LC_CTYPE to en_US.UTF-8. I tried this with my program, and it didn&#8217;t work, but with &#8220;less&#8221; it worked great, so I at least found one useful tip in this whole process.</p>
<p>But I&#8217;m still miffed at why mine won&#8217;t work. I try something more 70&#8217;s &#8212; good ol&#8217; printf:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&#8220;%ls&#8221;</span>, L<span class="st0">&#8220;From printf, I have <span class="es0">\u</span>20ac100 to my name.<span class="es0">\n</span>&#8220;</span><span class="br0">&#41;</span>;</div>
</div>
<p>Yeah, right. With LC_CTYPE set to en_US.UTF-8 this didn&#8217;t output anything. I even tried:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&#8220;From wprintf, I have %lc100 to my name.<span class="es0">\n</span>&#8220;</span>, L<span class="st0">&#8216;<span class="es0">\u</span>20ac&#8217;</span><span class="br0">&#41;</span>;</div>
</div>
<p>Nope. Not even if I set LANG also. I changed my code to:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&#8220;From wprintf, I have %lc100 to my name.<span class="es0">\n</span>&#8220;</span>, L<span class="st0">&#8216;<span class="es0">\u</span>20ac&#8217;</span><span class="br0">&#41;</span>;<br />
<span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&#8220;At least I lived.<span class="es0">\n</span>&#8220;</span><span class="br0">&#41;</span>;</div>
</div>
<p>And got:</p>
<pre>blake-ramsdells-macbook-pro:~/Source/test/CPPUnicode blake$ ./CPPUnicode
At least I lived.
</pre>
<p>So at least the process didn&#8217;t terminate.</p>
<p>So I&#8217;m a complete failure at console output with Unicode right now in C++. My locale info set as follows:</p>
<pre>blake-ramsdells-macbook-pro:~/Source/test/CPPUnicode blake$ locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
</pre>
<p>Has the following behaviors:</p>
<ul>
<li>Terminates the process if I execute
<div class="codesnip-container" >
<div class="codesnip">std::<span class="me2">wcout</span> &amp;lt;&amp;lt; L<span class="st0">&#8220;I have <span class="es0">\u</span>20ac100 to my name.<span class="es0">\n</span>&#8220;</span>;</div>
</div>
</li>
<li>Outputs nothing (but at least continues to run) if I execute
<div class="codesnip-container" >
<div class="codesnip"><span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&#8220;%ls&#8221;</span>, L<span class="st0">&#8220;From printf, I have <span class="es0">\u</span>20ac100 to my name.<span class="es0">\n</span>&#8220;</span><span class="br0">&#41;</span>;</div>
</div>
</li>
</ul>
<p><strong>DANGEROUS OPINION #3</strong>: Man, the state of the art for Unicode in g++ under OS X sucks pretty hard.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blakeramsdell.com/techblog/2006/06/10/unicode-is-tricky-in-java-and-might-be-impossible-in-c/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GeSHi continues to amaze me</title>
		<link>http://www.blakeramsdell.com/techblog/2006/05/15/geshi-continues-to-amaze-me/</link>
		<comments>http://www.blakeramsdell.com/techblog/2006/05/15/geshi-continues-to-amaze-me/#comments</comments>
		<pubDate>Mon, 15 May 2006 17:17:30 +0000</pubDate>
		<dc:creator>Blake</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.blakeramsdell.com/techblog/2006/05/15/geshi-continues-to-amaze-me/</guid>
		<description><![CDATA[So I found out that GeSHi is even smarter than I thought. Check out this Java snippet:

JilterStatus connect&#40;String hostname, InetAddress hostaddr, Properties properties&#41;;

Note the links for the Java classes. Not perfect, but not bad. Automagic.
]]></description>
			<content:encoded><![CDATA[<p>So I found out that <a title="GeSHi - Generic Syntax Highlighter" href="http://qbnz.com/highlighter/">GeSHi</a> is even smarter than I thought. Check out this Java snippet:</p>
<div class="codesnip-container" >
<div class="codesnip">JilterStatus connect<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&#038;bntl=1"><span class="kw3">String</span></a> hostname, <a href="http://www.google.com/search?q=allinurl%3AInetAddress+java.sun.com&#038;bntl=1"><span class="kw3">InetAddress</span></a> hostaddr, <a href="http://www.google.com/search?q=allinurl%3AProperties+java.sun.com&#038;bntl=1"><span class="kw3">Properties</span></a> properties<span class="br0">&#41;</span>;</div>
</div>
<p>Note the links for the Java classes. Not perfect, but not bad. Automagic.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blakeramsdell.com/techblog/2006/05/15/geshi-continues-to-amaze-me/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sourceforge &#8212; one nine uptime and loving it</title>
		<link>http://www.blakeramsdell.com/techblog/2006/05/15/sourceforge-one-nine-uptime-and-loving-it/</link>
		<comments>http://www.blakeramsdell.com/techblog/2006/05/15/sourceforge-one-nine-uptime-and-loving-it/#comments</comments>
		<pubDate>Mon, 15 May 2006 16:55:01 +0000</pubDate>
		<dc:creator>Blake</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.blakeramsdell.com/techblog/2006/05/15/sourceforge-one-nine-uptime-and-loving-it/</guid>
		<description><![CDATA[So a few weeks ago there was some giant event at SourceForge where no one could use developer CVS. For like four days. So congratulations &#8212; SourceForge, you now have officially &#8220;one nine&#8221; uptime for 2006.
I know it&#8217;s free. But does that mean it has to suck? I&#8217;m sure everyone&#8217;s working hard. But it&#8217;s not [...]]]></description>
			<content:encoded><![CDATA[<p>So a few weeks ago there was some giant event at SourceForge where no one could use developer CVS. For like four days. So congratulations &#8212; SourceForge, you now have officially &#8220;one nine&#8221; uptime for 2006.</p>
<p>I know it&#8217;s free. But does that mean it has to suck? I&#8217;m sure everyone&#8217;s working hard. But it&#8217;s not like there&#8217;s no money coming in.</p>
<p><a href="http://digg.com/apple/Fink_developers_fed_up_with_SourceForge.net">The Fink guys are pissed too.</a> I presume there is some market that&#8217;s served by poor IT. Now that I have a Dreamhost account, I&#8217;m going to manage anything I do going forward through them instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blakeramsdell.com/techblog/2006/05/15/sourceforge-one-nine-uptime-and-loving-it/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Parallels decidedly doesn&#8217;t suck</title>
		<link>http://www.blakeramsdell.com/techblog/2006/04/20/parallels-decidedly-doesnt-suck/</link>
		<comments>http://www.blakeramsdell.com/techblog/2006/04/20/parallels-decidedly-doesnt-suck/#comments</comments>
		<pubDate>Fri, 21 Apr 2006 04:05:05 +0000</pubDate>
		<dc:creator>Blake</dc:creator>
		
		<category><![CDATA[Macintosh]]></category>

		<guid isPermaLink="false">http://www.blakeramsdell.com/techblog/2006/04/20/parallels-decidedly-doesnt-suck/</guid>
		<description><![CDATA[I was messing around with Beta 3 Beta 4 of the Parallels VM environment for Intel OS X.
Dayamn.
I got Windows XP SP2 plus Cygwin plus Visual Studio 2005 on there without a hitch. And it&#8217;s fast. CD, network and sound all works perfectly. I&#8217;m a fan. Can&#8217;t wait until the final release.
It kicks the shit [...]]]></description>
			<content:encoded><![CDATA[<p>I was messing around with <span style="text-decoration: line-through;">Beta 3</span> Beta 4 of the <a title="Parallels website" href="http://www.parallels.com/">Parallels VM environment</a> for Intel OS X.</p>
<p>Dayamn.</p>
<p>I got Windows XP SP2 plus Cygwin plus Visual Studio 2005 on there without a hitch. And it&#8217;s fast. CD, network and sound all works perfectly. I&#8217;m a fan. Can&#8217;t wait until the final release.</p>
<p>It kicks the shit out of the QEmu-based turds:</p>
<ul>
<li>OpenOSX WinTel for Mac OS X. I actually paid money for this. I&#8217;m not sure it was even worth the time I spent downloading it. A crappy interface, and the product basically doesn&#8217;t work. Got as far as installing Windows XP SP2, (after like three attempts), went to install updates and &#8220;some of the updates could not be installed&#8221;. Winner.</li>
<li>Q. Despite staking out a letter of the alphabet, and a small amount of graphic design sensibility, these guys couldn&#8217;t even boot the Windows XP SP2 disc.</li>
</ul>
<p>This is the Open Source way. Provide a product that works on your own machine, and not anywhere else. Quality is a secondary concern to the technical masturbation. Well, enjoy it. I hope you spend my $25 on making the product better.</p>
<p>Note that I didn&#8217;t provide a link to those jerks. Not going to give them the satisfaction. And I do apologize if this is harsh, I really do &#8212; but when the stuff just fundamentally doesn&#8217;t work, I don&#8217;t have a lot of compassion.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blakeramsdell.com/techblog/2006/04/20/parallels-decidedly-doesnt-suck/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Miscellaneous Mac links</title>
		<link>http://www.blakeramsdell.com/techblog/2006/04/20/miscellaneous-mac-links/</link>
		<comments>http://www.blakeramsdell.com/techblog/2006/04/20/miscellaneous-mac-links/#comments</comments>
		<pubDate>Fri, 21 Apr 2006 03:48:39 +0000</pubDate>
		<dc:creator>Blake</dc:creator>
		
		<category><![CDATA[Macintosh]]></category>

		<guid isPermaLink="false">http://www.blakeramsdell.com/techblog/2006/04/20/miscellaneous-mac-links/</guid>
		<description><![CDATA[I found some cool links today. All stemming from the same link.

David Weiss is involved with the Mac Lab at Microsoft. He provided a tour of the lab that&#8217;s cool. An evil army of 150 Mac Minis are part of the population.
I read some of his other posts, and found TN2124 at Apple &#8212; debug [...]]]></description>
			<content:encoded><![CDATA[<p>I found some cool links today. All stemming from the same link.</p>
<ul>
<li><a title="David Weiss blog" href="http://davidweiss.blogspot.com">David Weiss</a> is involved with the Mac Lab at Microsoft. He provided <a title="A Tour of Microsoft's Mac Lab" href="http://davidweiss.blogspot.com/2006/04/tour-of-microsofts-mac-lab.html">a tour of the lab</a> that&#8217;s cool. An evil army of <a title="Army of Apple darkness" href="http://photos1.blogger.com/blogger/1955/1163/1600/MacMinisView1.jpg">150 Mac Minis</a> are part of the population.</li>
<li>I read some of his other posts, and found <a title="Mac OS X Debugging Magic" href="http://developer.apple.com/technotes/tn2004/tn2124.html">TN2124</a> at Apple &#8212; debug tips which seem pretty handy.</li>
<li>Which included a cool URL hack to open a man page (on OS X anyway). Check out the <a title="ktrace manpage" href="x-man-page://1/ktrace">ktrace manpage</a>. Or if you&#8217;re not on OS X, don&#8217;t.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.blakeramsdell.com/techblog/2006/04/20/miscellaneous-mac-links/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Good looking bar graphs in CSS</title>
		<link>http://www.blakeramsdell.com/techblog/2006/04/17/good-looking-bar-graphs-in-css/</link>
		<comments>http://www.blakeramsdell.com/techblog/2006/04/17/good-looking-bar-graphs-in-css/#comments</comments>
		<pubDate>Mon, 17 Apr 2006 07:46:55 +0000</pubDate>
		<dc:creator>Blake</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.blakeramsdell.com/techblog/2006/04/17/good-looking-bar-graphs-in-css/</guid>
		<description><![CDATA[I ended up on some ADD fest and found Apples to Oranges and their bar graphing stuff. Sweeet looking.

]]></description>
			<content:encoded><![CDATA[<p>I ended up on some ADD fest and found <a href="http://apples-to-oranges.com/blog/article.aspx?id=55">Apples to Oranges</a> and their bar graphing stuff. Sweeet looking.<br />
<img id="image7" src="http://www.blakeramsdell.com/techblog/wp-content/uploads/2006/04/graph3.gif" alt="Bar graph" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blakeramsdell.com/techblog/2006/04/17/good-looking-bar-graphs-in-css/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Testing code snippets</title>
		<link>http://www.blakeramsdell.com/techblog/2006/04/10/testing-code-snippets/</link>
		<comments>http://www.blakeramsdell.com/techblog/2006/04/10/testing-code-snippets/#comments</comments>
		<pubDate>Mon, 10 Apr 2006 21:47:56 +0000</pubDate>
		<dc:creator>Blake</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.blakeramsdell.com/techblog/?p=5</guid>
		<description><![CDATA[I figured I&#8217;d test a code snippet and see what happens.
That&#8217;s a PHP example. How about Objective C:

- &#40;void&#41; drawRect:&#40;NSRect&#41;rect
&#123;
NSLog&#40;@&#8220;my drawrect&#8221;&#41;;
&#91;super drawRect: rect&#93;;
&#125;

Outstanding! One issue is that when you specify the &#8220;code&#8221; tag, you have to use double quotes, and you have to know the random identifier that GeSHi uses (Objective C is &#8220;objc&#8221;). So [...]]]></description>
			<content:encoded><![CDATA[<p>I figured I&#8217;d test a code snippet and see what happens.</p>
<p>That&#8217;s a PHP example. How about Objective C:</p>
<div class="codesnip-container" >
<div class="codesnip">- <span class="br0">&#40;</span><span class="kw4">void</span><span class="br0">&#41;</span> drawRect:<span class="br0">&#40;</span><span class="kw4">NSRect</span><span class="br0">&#41;</span>rect<br />
<span class="br0">&#123;</span><br />
NSLog<span class="br0">&#40;</span>@<span class="st0">&#8220;my drawrect&#8221;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#91;</span>super drawRect: rect<span class="br0">&#93;</span>;<br />
<span class="br0">&#125;</span></div>
</div>
<p>Outstanding! One issue is that when you specify the &#8220;code&#8221; tag, you have to use double quotes, and you have to know the random identifier that GeSHi uses (Objective C is &#8220;objc&#8221;). So for instance:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="sc2"><a href="http://december.com/html/4/element/code.html"><span class="kw2">&lt;code</span></a> <span class="kw3">lang</span>=<span class="st0">&#8220;objc&#8221;</span><span class="kw2">&gt;</span></a></span></div>
</div>
<p></code></p>
<p>Won&#8217;t work. But:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="sc2"><a href="http://december.com/html/4/element/code.html"><span class="kw2">&lt;code</span></a> <span class="kw3">lang</span>=<span class="st0">&#8220;objc&#8221;</span><span class="kw2">&gt;</span></a></span></div>
</div>
<p></code></p>
<p>Works fine.</p>
<p>I&#8217;m excited.</p>
<p>Oh, and by the way, I did this with the <a href="http://blog.enargi.com/codesnippet/">Code Snippet</a> plugin, which uses <a href="http://qbnz.com/highlighter/">GeSHi</a> for syntax highlighting (which seems cool in its own right).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blakeramsdell.com/techblog/2006/04/10/testing-code-snippets/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
