<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.2" -->
<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/"
	>

<channel>
	<title>briancarper.net</title>
	<link>http://briancarper.net</link>
	<description></description>
	<pubDate>Thu, 14 Aug 2008 17:09:41 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
	<language>en</language>
			<item>
		<title>Westinghouse BBB rating: CC and falling</title>
		<link>http://briancarper.net/2008/08/14/westinghouse-bbb-rating-cc-and-falling/</link>
		<comments>http://briancarper.net/2008/08/14/westinghouse-bbb-rating-cc-and-falling/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 17:07:30 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://briancarper.net/2008/08/14/westinghouse-bbb-rating-cc-and-falling/</guid>
		<description><![CDATA[Thus continues the ongoing saga of Westinghouse, their low-quality electronics, and their incompetent or evil (I can't decide which) customer service department, who likes to take your broken crap and never bother sending you a replacement.
I filed a complaint with the Better Business Bureau in California, and Westinghouse never bothered responding to my complaint.  [...]]]></description>
			<content:encoded><![CDATA[<p>Thus continues the ongoing saga of Westinghouse, their low-quality electronics, and their incompetent or evil (I can't decide which) customer service department, who likes to take your broken crap and never bother sending you a replacement.</p>
<p>I filed a complaint with the Better Business Bureau in California, and Westinghouse never bothered responding to my complaint.  The sort-of-good news is that Westinghouse's <a href="http://www.labbb.org/BBBWeb/Forms/Business/CompanyReportPage_Expository.aspx?CompanyID=100038066">AAA rating has dropped to CC</a>.  There are 58 unanswered complaints listed on that site.  I hope their rating keeps dropping until it lands squarely in the mud where it belongs.</p>
<p>Not that the BBB rating is going to do much good in the bigger picture, and it's not going to return the money I wasted on the monitor I'll probably never see again, but every bit of new business I can prevent that company from attaining is another victory in my mind.  I've already cost the company far more money in new business than it would've cost them to just send me a fixed monitor to begin with.  Plenty of people have let me know they aren't going to buy Westinghouse brand from now on.  For every person that bothers leaving me a message on this website to that effect, there are likely many more silently avoiding the company, which is good.</p>
<p>I think another good idea would be for people to file some complaints with the <a href="http://ag.ca.gov/contact/complaint_form.php?cmplt=CL">California Attorney General's Office</a>.  Oh how I wish it was financially feasible for me to fly to California for a week and sue them myself.  But maybe the AG can take action if enough people make a stink.</p>
<p>I'm going to be writing a letter to Westinghouse's corporate office, and I'm going to post their reply or lack thereof.  I have little hope that I'll ever hear a response.  </p>
<p>I've been getting <a href="http://briancarper.net/2008/03/15/westinghouse-do-they-suck/#comment-28828">a lot of people</a> leaving comments describing their dealings with Westinghouse, and their encounters with Westinghouse's policy of making crappy broken electronics, then giving you the cold shoulder when you mail their crap back to them and try to get it fixed and returned.  I feel bad (and angry) for everyone in the same boat as me, trying to get the people at this shyster company to do their damned jobs, so I'm not going to keep quiet about this.</p>
<p>(Previous posts: <a href="http://briancarper.net/2008/03/15/westinghouse-do-they-suck/">The beginning</a>, <a href="http://briancarper.net/2008/03/22/blah-blah-blah/">Update 1</a>, <a href="http://briancarper.net/2008/04/08/westinghouse-closer-to-sucking-every-day/">Update 2</a>, <a href="http://briancarper.net/2008/04/14/westinghouse-the-saga-continues/">Update 3</a>, <a href="http://briancarper.net/2008/04/14/westinghouse-the-saga-continues/">Update 4</a>, <a href="http://briancarper.net/2008/06/10/westinghouse-still-sucks/">Update 5</a>, <a href="http://briancarper.net/2008/06/16/westinghouse-the-saga-continues-2/">Update 6</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/08/14/westinghouse-bbb-rating-cc-and-falling/feed/</wfw:commentRss>
		</item>
		<item>
		<title>KDE 4.1</title>
		<link>http://briancarper.net/2008/07/24/kde-41/</link>
		<comments>http://briancarper.net/2008/07/24/kde-41/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 01:29:17 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/07/24/kde-41/</guid>
		<description><![CDATA[I've been avoiding KDE4 for a while.  But yesterday I threw KDE4 onto my laptop, because it runs Kubuntu and I don't really care if my laptop breaks.
When I first tried installing it, I accidentally got KDE 4.0 somehow.  That version was massively incomplete.  After I upgraded to 4.1 it was very [...]]]></description>
			<content:encoded><![CDATA[<p>I've been avoiding KDE4 for a while.  But yesterday I threw KDE4 onto my laptop, because it runs Kubuntu and I don't really care if my laptop breaks.</p>
<p>When I first tried installing it, I accidentally got KDE 4.0 somehow.  That version was massively incomplete.  After I upgraded to 4.1 it was very apparent how much more work went into KDE between the 4.0 and 4.1 release.</p>
<p>Regardless, looking at 4.1, I know I'm echoing what a lot of others have already said, but I agree: KDE4 is nice, but it's nowhere near KDE3 quality yet, and nowhere near complete.  Some issues:</p>
<ul>
<li>The default theme is usable but bland.  It's far better than some of the garish, loud, cartoony default themes KDE has had in past versions, at least.  But it doesn't have a lot of life to it.</li>
<li>Most icons are missing or broken (showing up as "?").  This is probably due to KDE being packaged improperly for Kubuntu, or something choking during my install, but regardless, it's annoying.  Given the behemoth size of KDE, I expect there will be a lot of this kind of problem for a long time.  Who knows when KDE4 will be stable in Gentoo, for example.  One good thing about KDE3 is that a lot of these little bugs have been worked out already.</li>
<li>Kickoff, the KDE launcher menu replacement, is no fun at all.  There's way too much wasted space and you have to mouseover and click a million times to open anything.  Same with the new-style control panel.   You have the option of switching back to the old-style menu, which is a good thing.<br />
<a href="/random/kde4.png"><img src="/random/kde4-thumb.png" alt="KDE4" /></a></li>
<li>There are a lot of funky compiz-like animations that you can enable.  Transparency, desaturating or tinting or dimming windows, and fading / exploding / zooming window animations etc.  At this point, given Compiz and OS X and Vista which have mostly the same things and have been out for a while, these features are nothing new or mind-blowing, but it's nice to have them built into KDE if you like that kind of thing.</li>
<li>Dolphin in KDE4 has some nice new features that my KDE3 version is missing, like a split-column view, and the ability to show thumbnail previews in more situations.</li>
<li>The panel configuration window is gone, replaced with a neat graphical WYSIWYG kind of thing.  You drag the panel edges to resize it, and click some buttons to alter the justification (right, center, left).  It's nice, but after playing around a bit, when I tried to resize my panel to be 100% of the width of the screen, I had a lot of trouble; I had a pixel or two between the panel and the edge of the window.  That's the problem with WYSIWYG: it's not as precise or fast as just typing "100%" into a text field.
<p><a href="/random/kde4-2.png"><img src="/random/kde4-2-thumb.png" alt="KDE4" /></a></li>
<li>Many KDE apps aren't ported to QT4 yet, apparently.  This introduces YET ANOTHER look-and-feel for Linux.  Now I have to find a GTK2 theme, a QT3 theme and a QT4 theme.  There are a few unified themes (qtcurve for example) that work for all three and look essentially the same, but there are only a few and the choices are limited.</li>
<li>With animations disabled, when I open a menu I get a second of garbage as my video card freaks out trying to render it, before the menu appears.  I can't imagine what the problem is there.  KDE3 never does that on the same computer.</li>
<li>Confusingly, deleting an icon from the desktop doesn't delete the file, it just removes the icon.  Then I made a "folder view", which is a desktop applet that displays icons for an arbitrary folder, optionally filtering the folder by name.  It's a neat idea.  I'm unsure it's neat enough to replace the whole concept of a desktop full of files.  Regardless, when I made one, it overlapped all the icons on my desktop to the point where I couldn't get it sorted out and had to remove it.  What's the difference between icons directly on my desktop, and icons in a Folder View?  It's very confusing to me, a long-time KDE user, so it's probably confusing to mostly everyone.</li>
<li>The version of KDM that comes with KDE4 looks nice, but also crashes randomly.</li>
</ul>
<p>However, my biggest problem with KDE4 is how sluggish it feels on my laptop.  KDE3 runs very smoothly, but KDE4 lags left and right, when resizing windows, opening popup menus, clicking icons to open applications, or doing much of anything.  It may be I need to upgrade my video card driver (I'm not sure if mine is properly hardware-accelerated), but should I really NEED to, just to run a window manager?  KDE was never what you might call "lightweight" but it seems to be even further from that ideal now.</p>
<p>It'll be a while before I switch from KDE3 to KDE4 on my main workstation.  It looks promising and there's clearly tons of potential.  But it wouldn't be my first choice of environment for getting work done at the moment.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/07/24/kde-41/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reverse DNS</title>
		<link>http://briancarper.net/2008/07/23/reverse-dns/</link>
		<comments>http://briancarper.net/2008/07/23/reverse-dns/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 02:04:03 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/07/23/reverse-dns/</guid>
		<description><![CDATA[Sometime a month or two ago, sending email to my family stopped working.  My emails vanished into the void and were never heard from again.  
I figured my SMTP was set up incorrectly so no big deal, I used another (gmail etc.).  Recently I got around to looking in my logs and [...]]]></description>
			<content:encoded><![CDATA[<p>Sometime a month or two ago, sending email to my family stopped working.  My emails vanished into the void and were never heard from again.  </p>
<p>I figured my SMTP was set up incorrectly so no big deal, I used another (gmail etc.).  Recently I got around to looking in my logs and I discovered:</p>
<pre>Jul 23 17:06:49 ffclassic postfix/smtp[30408]: 73B3C4654756: host mx2.comcast.net[76.96.30.116] refused to talk to me: 421 IMTA24.emeryville.ca.mail.comcast.net comcast Reverse DNS failure : Try again later</pre>
<p>Well that's no fun.  I guess Comcast doesn't like talking to mail servers without reverse DNS set up properly.  So now I fixed it (hopefully, we'll see in 24 hours).  </p>
<p>These are the joys of running my own server.  I had the option from my host of getting CPanel or its equivalent, or setting up everything by hand, so I chose by hand.  The bad thing is that I have no idea what I'm doing.  The good thing is there's no better way to learn than writing all of your config files by hand.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/07/23/reverse-dns/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Stupid Vim trick (and mental illness)</title>
		<link>http://briancarper.net/2008/07/10/stupid-vim-trick-and-mental-illness/</link>
		<comments>http://briancarper.net/2008/07/10/stupid-vim-trick-and-mental-illness/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 00:48:07 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

		<category><![CDATA[Windows sucks]]></category>

		<guid isPermaLink="false">http://briancarper.net/2008/07/10/stupid-vim-trick-and-mental-illness/</guid>
		<description><![CDATA[The OS on my first computer was Windows 3.1, and I lived with Windows 95/98/ME for a long time.  When you live their formative years in this kind of environment, you develop an obsessive need to save your work all the time, because at any moment, the program you were using could crash.  [...]]]></description>
			<content:encoded><![CDATA[<p>The OS on my first computer was Windows 3.1, and I lived with Windows 95/98/ME for a long time.  When you live their formative years in this kind of environment, you develop an obsessive need to save your work all the time, because at any moment, the program you were using could crash.  With Vim, a save is just a <strong>:w</strong> away.  I hit that combination so often it's a wonder I haven't worn a hole through my w key yet.  It takes no effort or thinking at this point, just a quick reflex flick of the wrist.</p>
<p>Did you ever just how often you save your work in a given day?  I wondered, so I put this into ~/.vimrc:</p>
<pre>cabbrev w &lt;c-r&gt;=(getcmdtype()==':' &amp;&amp; getcmdpos()==1 ? 'W' : 'w')&lt;CR&gt;
command! -nargs=* W :execute("silent !echo " . strftime("%Y-%m-%d %H:%M:%S") . " &gt;&gt; ~/timestamps")|w &lt;args&gt;</pre>
<p>Now every time I do :w, it will append a timestamp to a text file.  It's not quite perfect and :w won't work right in certain cases but it was good enough for a quick hack.</p>
<p>I let Vim go like this for one whole day at work.  I got in a good six and a half hours of coding on Tuesday (keeping in mind that I was using other programs all day too, messing with our DB, running and debugging the script I was writing, responding to emails, and so on).</p>
<p>It turns out I hit :w 356 times that day.    Here's a chart of saves per hour.  </p>
<p><img src="/random/saves-per-hour.png" alt="Saves per hour" /></p>
<p>Clearly either my productivity or my data-loss paranoia increases as the day progresses.  I think I got up to make a cup of tea at around 2:00 so that may explain the fall-off.  And the last hour isn't quite a full hour of work because I went home.</p>
<p>So as a rough estimate, it looks like I save my work about once per minute.  Looking at the data, it's not at all uncommon for me to have saved my work twice within a 5-second period of time.  There are even a few cases where I saved twice within two seconds.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/07/10/stupid-vim-trick-and-mental-illness/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gentoo 2008.0</title>
		<link>http://briancarper.net/2008/07/09/gentoo-20080/</link>
		<comments>http://briancarper.net/2008/07/09/gentoo-20080/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 04:08:33 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/07/09/gentoo-20080/</guid>
		<description><![CDATA[Kudos to the release team for getting this release out.  I wasn't waiting on the edge of my seat of course, Gentooers don't need releases to stay up to date.  But I do know a few people starting Linux who specifically didn't install Gentoo because the install CD was so old.  You [...]]]></description>
			<content:encoded><![CDATA[<p>Kudos to the release team for getting this release out.  I wasn't waiting on the edge of my seat of course, Gentooers don't need releases to stay up to date.  But I do know a few people starting Linux who specifically didn't install Gentoo because the install CD was so old.  You don't need a Gentoo liveCD to install Gentoo (I don't even think I have one in my house) but most people don't know that, and appearances can be deceiving / first impressions can be important / etc.</p>
<p>I just read about a problem that <a href="http://blog.mindlesstechie.net/2008/07/08/upgrading-to-2008-profile-wierdness/">John Alberts</a> mentioned having when updating his profile to 2008.0.  I had the same problem with the "releases" folder not being synced properly, causing all kinds of mess.  I though perhaps I was the only one but I guess it was more widespread.  Another sync cleared it up though.  I imagine (I hope) the problem is fixed on all the mirrors by now.</p>
<p>I was curious about what the new profile consisted of so I started reading a few files.  Did you ever wonder if Gentoo devs know what they're doing?  According to <strong>/usr/portage/profiles/targets/developer/make.defaults</strong>:</p>
<pre># As much as it pains me, we hope that developers know what they're doing.
I_KNOW_WHAT_I_AM_DOING="yes"</pre>
<p>I can rest easy now.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/07/09/gentoo-20080/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Making Java not suck</title>
		<link>http://briancarper.net/2008/07/07/making-java-not-suck/</link>
		<comments>http://briancarper.net/2008/07/07/making-java-not-suck/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 05:45:32 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/07/07/making-java-not-suck/</guid>
		<description><![CDATA[There are some good things about Java.  The virtual machine has been refined for quite some time.  The garbage collector is likely to perform well.  The standard library has gone through many iterations and is very encompassing and complete and amazingly well-documented.  The community is enormous.  The language is as [...]]]></description>
			<content:encoded><![CDATA[<p>There are some good things about Java.  The virtual machine has been refined for quite some time.  The garbage collector is likely to perform well.  The standard library has gone through many iterations and is very encompassing and complete and amazingly well-documented.  The community is enormous.  The language is as cross-platform as you could reasonably expect any huge program to be.  It has nice GUI frameworks (which nowadays even look native on Windows and Linux, if you use SWT), a good threading library, good socket libraries, and all the things I wish Ruby or Common Lisp had.</p>
<p>The one unignorably bad thing about Java is that you have to write it in Java.  It's next to impossible to write Java by hand, and it's still a whole lot of pain even if you use one of the massive Java IDEs that trick you into not noticing the pain.  The language is way too verbose.  The syntax is busy and full of mandatory brackets and parens and punctuation and bullcrap.  The demand that you catch every conceivable exception is tiresome.  The ability to abstract all of those things away isn't present.  The package / import scheme is way too much typing for any human being.  No Lisp-style macros, no easy-to-use anonymous functions, clunky iterators, primitive looping constructs.  Everything is forced into a Object Oriented mindset even if it doesn't fit well.  And so on.</p>
<p>But the good thing is that nowadays you don't have to write Java in Java.  You can write Java in Ruby using <a href="http://jruby.codehaus.org/">JRuby</a>, or write Java in Lisp using <a href="http://clojure.org/">Clojure</a>.   I gave both of these a try in the past week or so, and both are awesome.  You can write the bulk of your program in a nice powerful fun-to-write language, and call out to Java to handle the GUI bits or whatever Java is good at handling.  You can write tasty Ruby or Lisp abstractions that hide the horrible mess that is Java's syntax.  (There's also <a href="http://www.jython.org/Project/">Jython</a>, if you swing that way.)  You'd think it'd be more effort to write Ruby code that translates to Java than just to write plain old Java, but Ruby is so much better than Java that it actually ends up being easier.  For me anyways.</p>
<p>It seems like the lines between programming languages is awfully blurry nowadays.  Most languages have some way to interface directly with C code.  There are GTK and QT bindings for everything under the sun.  We have people writing <a href="http://halogen.note.amherst.edu/~jdtang/arclite/">Lisp interpreters in Javascript</a>, <a href="http://common-lisp.net/project/clpython/">Python interpreters in Lisp</a>, and so on.  You have all these VMs (JVM and .NET and Parrot (if it ever gets done)) which let you write the same program in whatever language you feel like.  And most of them are cross-platform to some degree or other.</p>
<p>It's an interesting trend which makes a lot of practical sense.  No language is great at everything, so why bother limiting yourself to one language per program?  Especially with computers being so fast today, we can get away with layering language on top of language.  It's a nice situation, if you want to get programs done as fast and with as little effort as humanly possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/07/07/making-java-not-suck/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Still no news from Westinghouse</title>
		<link>http://briancarper.net/2008/07/02/still-no-news-from-westinghouse/</link>
		<comments>http://briancarper.net/2008/07/02/still-no-news-from-westinghouse/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 06:46:38 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://briancarper.net/2008/07/02/still-no-news-from-westinghouse/</guid>
		<description><![CDATA[I filed a complaint against Westinghouse to the BBB, but two weeks later they haven't responded to it yet.  Can't say I'm surprised.  The good thing is that if they don't respond to the BBB, they get a big fat stinking black mark on their BBB profile.  Might not do that much [...]]]></description>
			<content:encoded><![CDATA[<p>I filed a complaint against Westinghouse to the BBB, but two weeks later they haven't responded to it yet.  Can't say I'm surprised.  The good thing is that if they don't respond to the BBB, they get a big fat stinking black mark on their BBB profile.  Might not do that much good, but it hopefully will let others know to avoid them.</p>
<p>I've gotten some posts from some people in the same situation of Westinghouse blowing them off and not sending them replacement items when their crappy merchandise breaks.  Some people want to file a class-action lawsuit.  I don't know if I'd go that far.  I may take them to small claims court though.  Before that, I'm going to write a letter to their corporate office, pointing out the existence of my website.</p>
<p>In the meantime, conclusions:</p>
<ul>
<li>Westinghouse doesn't give half a crap about its customers.</li>
<li>Never ship anything expensive via UPS.  They're happy to leave $500 merchandise sitting on your front porch (assuming it even made it to my front porch and the UPS guy didn't just keep it, how would I know?  I never saw it).</li>
<li>Beware buying things online.  When they break, your options for getting them fixed or covered by warranty are limited, impractical, and prone to months of aggravation.  Is it worth the time you save buying things online, when you have to spend six months going through the kind of bullcrap I went through over this monitor?</li>
</ul>
<p>This is post is just a friendly reminder to everyone reading this, don't buy anything from Westinghouse, and tell everyone you know the same thing.  I wonder if Westinghouse cares about all of the people whose business they flushed down the toilet by ripping me off?</p>
<p>(Read the whole crappy story of Westinghouse's dishonesty and horrible customer service: <a href="http://briancarper.net/2008/03/15/westinghouse-do-they-suck/">The beginning</a>, <a href="http://briancarper.net/2008/03/22/blah-blah-blah/">Update 1</a>, <a href="http://briancarper.net/2008/04/08/westinghouse-closer-to-sucking-every-day/">Update 2</a>, <a href="http://briancarper.net/2008/04/14/westinghouse-the-saga-continues/">Update 3</a>, <a href="http://briancarper.net/2008/04/14/westinghouse-the-saga-continues/">Update 4</a>, <a href="http://briancarper.net/2008/06/10/westinghouse-still-sucks/">Update 5</a>, <a href="http://briancarper.net/2008/06/16/westinghouse-the-saga-continues-2/">Update 6</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/07/02/still-no-news-from-westinghouse/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lispforum.com</title>
		<link>http://briancarper.net/2008/06/28/lispforumorg/</link>
		<comments>http://briancarper.net/2008/06/28/lispforumorg/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 05:51:30 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/06/28/lispforumorg/</guid>
		<description><![CDATA[Ten days ago I complained that there were no good Lisp equivalents of ruby-forum or perlmonks.  It looks like someone went and made one.  What good timing.
I hope it's a success, and I hope it stays newb-friendly.  The amount of fake watch and shoe spam on comp.lang.lisp has reached critical mass.
Speaking of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://briancarper.net/2008/06/17/wish-list/">Ten days ago</a> I complained that there were no good Lisp equivalents of ruby-forum or perlmonks.  It looks like someone <a href="http://www.lispforum.com/index.php">went and made one</a>.  What good timing.</p>
<p>I hope it's a success, and I hope it stays newb-friendly.  The amount of fake watch and shoe spam on <a href="http://groups.google.com/group/comp.lang.lisp/topics">comp.lang.lisp</a> has reached critical mass.</p>
<p>Speaking of mailing lists, maybe it's just me but I've never found mailing lists to be all that enjoyable to use.  They have the benefit of being a sort of lowest common denominator (everyone has email, and you can slap an HTML interface on top of one).  They also have the benefit of being distributed to some degree, because everyone who gets the email serves as an archive, and if the main server dies maybe you can recover things.  And mailing lists do have less overhead than MBs when it comes to running one, especially a high-traffic one, I would imagine.</p>
<p>But the bad things about mailing lists vs. message boards:</p>
<ul>
<li>Message boards are accessible from anywhere that you have a web browser, which is everywhere.  Email isn't necessarily accessible from everywhere, unless you use webmail or SSH home and use mutt or something, which not everyone can or wants to do.  Or if there's a good web interface on the mailing list.</li>
<li>You can't do anything more than plaintext, which isn't entirely a bad thing, HTML email is pure evil, but being able to cleanly post images or clickable links or formatted text on a message board is a nice feature.</li>
<li>Threading never quite works correctly on mailing lists, because eventually someone will hit the wrong button in their mail client and break the thread; whereas on a message board it always works fine.</li>
<li>You can move threads around between forums on an MB, you can edit threads, you can close threads, you can delete a post if you make a mistake; but mailing lists are write-only, and once you send a message off into the ether it's posted for everyone to see forever, and no one has much control over a list beyond moderating the messages that end up getting through.
<li>
<li>Avatars.  Personal profiles.  These things make people seem more like people and less like a nameless entity.  It's friendlier and more inviting.</li>
<li>The HTML interfaces people slap on top of mailing list archives are pretty horrible 95% of the time.  Probably because most people are using email clients anyways so no one cares.  Message boards generally look nice and have nice interfaces for reading and posting.</li>
<li>Email sucks.  Spam filters and bounced messages mean you never quite know if what you just wrote actually made it to the list.  Reply to list vs. reply to sender vs. reply to all, etc. are all needless complications.  How many times have you seen "UNSUBSCRIBE" sent to everyone on a list?  The interface to mailing lists is not intuitive.  Whereas you can always see immediately if an MB post worked or not.</li>
</ul>
<p>And so on.  I likes me my message boards.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/06/28/lispforumorg/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Laptops at border crossings</title>
		<link>http://briancarper.net/2008/06/24/laptops-at-border-crossings/</link>
		<comments>http://briancarper.net/2008/06/24/laptops-at-border-crossings/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 06:08:28 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/06/24/laptops-at-border-crossings/</guid>
		<description><![CDATA[There's an article on Slashdot about a US Senate hearing on laptop seizures at border crossings.  This affects me, because I travel to Canada a lot and plan to move there within a year or so.
It's a problem because my job requires me to handle what amount to people's medical records as data files [...]]]></description>
			<content:encoded><![CDATA[<p>There's an article on <a href="http://yro.slashdot.org/yro/08/06/25/010206.shtml">Slashdot</a> about a US Senate hearing on laptop seizures at border crossings.  This affects me, because I travel to Canada a lot and plan to move there within a year or so.</p>
<p>It's a problem because my job requires me to handle what amount to people's medical records as data files on my laptop.  It's part of my job, and often I work from home.  As of right now, I never take my laptop with me to Canada partly because I don't know what would happen if a border agent decided to inspect or copy all of my data.  I can get in very serious trouble for breaching patient confidentiality.  On the other hand I could get in serious trouble if I refused to allow a search for myself; at best I'd be turned way at the border, having wasted hundreds of dollars to travel there.</p>
<p>I really don't know what I'm going to do when I move.  I'll probably have to wipe my computers clean before shipping them up there.  Another option would be to encrypt all the data, upload it to the server that hosts my website, then download it all again after I move.  It's insane that I'd have to do such a thing though.  And shuffling sensitive data around to strangers' computers and servers isn't the safest thing in the world either.</p>
<p>How do lawyers and doctors and people with trade secrets and other people with classified or legally protected information handle border crossings?  It's a bit of a conflict of interest.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/06/24/laptops-at-border-crossings/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wish list</title>
		<link>http://briancarper.net/2008/06/17/wish-list/</link>
		<comments>http://briancarper.net/2008/06/17/wish-list/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 07:47:43 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/06/17/wish-list/</guid>
		<description><![CDATA[What's the Common Lisp version of Perlmonks or Ruby-forum?  I have yet to find it.
comp.lang.lisp is largely crap.  50% of the traffic on that list is spam about shoes and fake watches.  The other half is equally split between:

People debating tiny, silly semantic points of the Common Lisp Hyperspec.
People stuck in the [...]]]></description>
			<content:encoded><![CDATA[<p>What's the Common Lisp version of <a href="http://perlmonks.org">Perlmonks</a> or <a href="http://ruby-forum.org">Ruby-forum</a>?  I have yet to find it.</p>
<p><a href="http://groups.google.com/group/comp.lang.lisp/topics">comp.lang.lisp</a> is largely crap.  50% of the traffic on that list is spam about shoes and fake watches.  The other half is equally split between:</p>
<ul>
<li>People debating tiny, silly semantic points of the <a href="http://www.lispworks.com/documentation/common-lisp.html">Common Lisp Hyperspec.</a></li>
<li>People stuck in the 70's or 80's, talking about the good old days, ruminating about Lisp history.</li>
<li>Flame wars.</li>
<li>New people asking for help.  Some get good honest advice and helpful answers, many are flamed and ridiculed into next week if they even hint that they <a href="http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/171fee6be225c833#">dislike the parentheses</a>.</li>
</ul>
<p>The Common Lisp community (if you can call it that) is a bunch of really smart guys, but they all live isolated in hermit shacks up in the mountains and they spend their time doing magic tricks with Lisp that few people ever see, and if you wander too close they throw rocks at you.</p>
<p>What's the Common Lisp equivalent of <strong>perldoc</strong> or <strong>rdoc</strong>?  We have the Hyperspec.  It's an impressive document, but it's a bunch of painful HTML that looks like it was created in the early 90's, probably because it was.  It reads like a dusty, dry, technical document probably because it is.  What it's not, is friendly or easily readable.</p>
<p>Perl has CPAN, Ruby has rubygems, what does Lisp have?  Either a hand-rolled system definition script, or if you're lucky an ASDF install file.  ASDF is the semi-standard Lisp way of installing libraries, except that it doesn't quite work in Windows, it doesn't check dependencies or handle different versions of a package very well, and it doesn't work the same on all Lisp implementations.  Many people in the so-called community think it's not very good. </p>
<p>The fellow running <a href="http://www.lispcast.com/drupal/node/29">Lispcast</a> makes another good point.  Where can you download Lisp?  It's not obvious.</p>
<p>You could say "OK Brian, good idea, now get to work!"  The problem is that even if I had the time or willpower, I'm not the smartest guy in the world.  I honestly don't think I could design and run and maintain a CPAN.  And even if I did, would anyone use it?  But I do know that there ARE plenty of smart, enthusiastic people using Lisp.  Yet high-quality friendly code is largely not being produced.</p>
<p>Peter Christensen wrote about "<a href="http://www.pchristensen.com/blog/articles/hey-language-snobs-dont-pinch-pennies/">langauge snobs</a>" and the importance of community.  One point made is that some really ugly, horrific languages have been extremely successful simply because they've been accessible and fun.  An example given is the scripting language in Second Life, which has over 2.5 billion lines of code written in by tens of thousands of amateurs and has accurately modeled a realistic 3D environment with thousands of users at any given time.  All in an ugly language some guy invented AND implemented in one week.  The developers admit that the language is total crap, but it doesn't matter.  1) It has very good and accessible documentation, 2) it has a very newbie-friendly community, and 3) and it's easy to pick up, throw together some code and get immediate results.  Three things Common Lisp lacks.</p>
<p>This is something I've said <a href="http://briancarper.net/2008/04/07/perl-6/">myself</a> many times: an active, supportive, enthusiastic community is essential for the health of any programming language.  Common Lisp simply doesn't have one and it's a shame.</p>
<p>I still secretly hope that <a href="http://clojure.org/">Clojure</a> or <a href="http://www.newlisp.org/">NewLisp</a> or <a href="http://www.paulgraham.com/arc.html">Arc</a> turn out to be a huge success.  They are the kinds of things Lisp needs today.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/06/17/wish-list/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Westinghouse, the saga continues</title>
		<link>http://briancarper.net/2008/06/16/westinghouse-the-saga-continues-2/</link>
		<comments>http://briancarper.net/2008/06/16/westinghouse-the-saga-continues-2/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 07:56:52 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/06/16/westinghouse-the-saga-continues-2/</guid>
		<description><![CDATA[Friday a guy on the phone said he'd call me back Monday or Tuesday to give me an update on when / whether they're ever going to send me my monitor.  Monday came and went with no call.  Not really surprising.  
I filed a complaint with the BBB today.  We'll see [...]]]></description>
			<content:encoded><![CDATA[<p>Friday a guy on the phone said he'd call me back Monday or Tuesday to give me an update on when / whether they're ever going to send me my monitor.  Monday came and went with no call.  Not really surprising.  </p>
<p>I filed a complaint with the BBB today.  We'll see how that goes.  At the BBB Westinghouse has around 150 complaints in the past 36 months, but 133 of them were supposedly solved "satisfactorily" and Westinghouse somehow still has the highest possible rating at the BBB.  I've read some things about the BBB not being an entirely neutral entity itself, but who knows.  I'll start filing complaints with other consumer groups if I need to.  </p>
<p>A good handful of people have left comments here at my blog saying they aren't going to buy anything from Westinghouse themselves, which is great to hear.  I may mention my blog to Westinghouse next time I call them, if there is a next time.  Is not sending me the monitor I paid for really worth losing a bunch of customers?</p>
<p>The sad thing is that I really do need a monitor with component and composite inputs, and they are somewhat rare (the local store had none except Westingcrap brand).  However I have found a Gateway model that has them, so maybe that'll work out.  I'd gladly take a refund from Westinghouse rather than a monitor at this point.</p>
<p>EDIT: Read the whole crappy story of Westinghouse's dishonesty and horrible customer service: <a href="http://briancarper.net/2008/03/15/westinghouse-do-they-suck/">The beginning</a>, <a href="http://briancarper.net/2008/03/22/blah-blah-blah/">Update 1</a>, <a href="http://briancarper.net/2008/04/08/westinghouse-closer-to-sucking-every-day/">Update 2</a>, <a href="http://briancarper.net/2008/04/14/westinghouse-the-saga-continues/">Update 3</a>, <a href="http://briancarper.net/2008/04/14/westinghouse-the-saga-continues/">Update 4</a>, <a href="http://briancarper.net/2008/06/10/westinghouse-still-sucks/">Update 5</a>, <a href="http://briancarper.net/2008/06/16/westinghouse-the-saga-continues-2/">Update 6</a>, <a href="http://briancarper.net/2008/08/14/westinghouse-bbb-rating-cc-and-falling/">Update 7</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/06/16/westinghouse-the-saga-continues-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My desk</title>
		<link>http://briancarper.net/2008/06/14/my-desk/</link>
		<comments>http://briancarper.net/2008/06/14/my-desk/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 02:32:33 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://briancarper.net/2008/06/14/my-desk/</guid>
		<description><![CDATA[Following in the footsteps of Sean Potter I took a photo of my desk.

My desk itself sucks, but I'm moving again in a year or so and didn't want to invest in a good one yet.  I'm missing one of my big monitors (thanks Westinghouse) and in the meantime I have to settle for [...]]]></description>
			<content:encoded><![CDATA[<p>Following in the footsteps of <a href="http://www.obsidianprofile.com/index.php/blog/entry/1212602570">Sean Potter</a> I took a photo of my desk.</p>
<p><a href="/screenshots/photos/desk_2008-06-14.jpg"><img src="/screenshots/photos/thumbs/desk_2008-06-14.jpg" /></a></p>
<p>My desk itself sucks, but I'm moving again in a year or so and didn't want to invest in a good one yet.  I'm missing one of my big monitors (thanks Westinghouse) and in the meantime I have to settle for that old Apple display as my second monitor.  </p>
<p>My mousepad is an Icemat; can you believe the green ones were cheaper than all the other colors?  That shade of green is clearly the best.  And my keyboard is a tasty Saitek Eclipse II, which is one of the most comfy keyboards I've found to type on (and it glows in the dark).  Nothing too exciting beyond that.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/06/14/my-desk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Python</title>
		<link>http://briancarper.net/2008/06/14/python-2/</link>
		<comments>http://briancarper.net/2008/06/14/python-2/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 19:14:45 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/06/14/python-2/</guid>
		<description><![CDATA[People are stupid.  We're blinded by our own prejudices and biases and preconceptions.  It's kind of understandable because no one has enough time to really collect enough information to have an informed opinion about everything.  So we end up extrapolating or relying on expert opinion or turning to our gut feeling.  [...]]]></description>
			<content:encoded><![CDATA[<p>People are stupid.  We're blinded by our own prejudices and biases and preconceptions.  It's kind of understandable because no one has enough time to really collect enough information to have an informed opinion about everything.  So we end up extrapolating or relying on expert opinion or turning to our gut feeling.  Inevitably we end up being wrong some of the time.</p>
<p>This leads to two problems.  One is that being a person myself, I'm also stupid, meaning there are almost certainly some beliefs I currently hold that are wrong.  The second is that from my perspective, I appear to be right about everything.  This is trivially true of everyone; as soon as a person decides they're wrong, they change their mind right away and become right again.  The problem then is how can I tell when I'm wrong and when I'm right?  I quick objective glimpse at reality suffices most of the time, but sometimes we're still tricked.</p>
<p>Those two things in combination are a problem for everyone.  I think the best anyone can do is to realize that this is the case, be open to being wrong, and to take some efforts to rectify it.  At least minimize the damage, try to be as right about as many things as you can.</p>
<p>This is why e.g. I started learning Emacs even though I love Vim, and why I stick with it even though it's unpleasant at first.  A lot of smart people say good thing about Emacs.  My opinion of it is much different now than before I'd used it a lot.  I think many things people say about it are wrong, but many are also right.  There is some good stuff there.</p>
<p>For the same reason, I've decided to learn Python.  I've been wanting to for quite a while anyways.  In spite of the pain I've had trying to use it in the past, and my generally low opinion of the language, there may just be something worthwhile there.  A lot of smart people say good things about it, and a lot of good programs are written in it.  The community is large and active and enthusiastic.</p>
<p>My first shot was to try some of the stuff at <a href="http://www.pythonchallenge.com/">Python Challenge</a>.  It's an interesting site full of puzzles that you need a programming language to solve; many of them are geared toward Python or toward libraries available in Python, but you can use any good language for many of them.  I got through 17 of the puzzles last night, but I did look at "hints" on the forum for about half of those.  A lot of them require sort of specialized knowledge apart from knowledge of Python, on a wide variety of subjects, so it's pretty fun.</p>
<p>My first pet peeve (of many to come, I'm sure): why doesn't <strong>python --help</strong> or <strong>python --version</strong> work?  Instead you have to use <strong>python -h</strong> and <strong>python -V</strong> (capital V).  This is non-standard.  It worries me when people do things like this differently.  But we'll see.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/06/14/python-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Westinghouse still sucks</title>
		<link>http://briancarper.net/2008/06/10/westinghouse-still-sucks/</link>
		<comments>http://briancarper.net/2008/06/10/westinghouse-still-sucks/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 02:55:28 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/06/10/westinghouse-still-sucks/</guid>
		<description><![CDATA[Way back in March I sent in my L2410NM monitor for RMA to Westinghouse.  This is June and I don't have it back yet.  Last I heard they sent my case to their corporate office.  I called again this week, call #16 or 17, I lost count, and I was told that [...]]]></description>
			<content:encoded><![CDATA[<p>Way back in <a href="http://briancarper.net/2008/03/15/westinghouse-do-they-suck/">March</a> I sent in my L2410NM monitor for RMA to Westinghouse.  This is June and I don't have it back yet.  <a href="http://briancarper.net/2008/05/05/westinghouse-fail/">Last I heard</a> they sent my case to their corporate office.  I called again this week, call #16 or 17, I lost count, and I was told that they put in a request for a "status update", but having heard any update on it.  I'm always promised a return call, but I've yet to receive even one of those.  As of now they've promised to send me a new monitor and have given up hope of ever recovering my legendary lost monitor, and supposedly they even created the order in their system that will initiate the monitor-sending process, complete with a long string of letters and numbers representing my fates.</p>
<p>I almost wish they would say "Ha ha, just kidding, screw you customer, you're not getting anything from us" so that I'd feel justified in filing a complain with the BBB.  But no, they keep the carrot dangling in front of my nose, inching closer and closer to resolving this issue.  Likely I'm going to do so soon though.  Not sure if it'll actually help anyways.</p>
<p>I've already ensured that my friends and family will never buy anything from them, nor will my place of employment, and hopefully some people reading this will also refrain.  The real problem is, what company is any better?  I keep a mental list of companies that have screwed me over, but that list is becoming so large that I'm running out of companies I can actually buy things from.  I can at least prioritize according to the level of suckiness.  Westinghouse tops the list at the moment.</p>
<p>EDIT: Read the whole crappy story of Westinghouse's dishonesty and horrible customer service: <a href="http://briancarper.net/2008/03/15/westinghouse-do-they-suck/">The beginning</a>, <a href="http://briancarper.net/2008/03/22/blah-blah-blah/">Update 1</a>, <a href="http://briancarper.net/2008/04/08/westinghouse-closer-to-sucking-every-day/">Update 2</a>, <a href="http://briancarper.net/2008/04/14/westinghouse-the-saga-continues/">Update 3</a>, <a href="http://briancarper.net/2008/04/14/westinghouse-the-saga-continues/">Update 4</a>, <a href="http://briancarper.net/2008/06/10/westinghouse-still-sucks/">Update 5</a>, <a href="http://briancarper.net/2008/06/16/westinghouse-the-saga-continues-2/">Update 6</a>, <a href="http://briancarper.net/2008/08/14/westinghouse-bbb-rating-cc-and-falling/">Update 7</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/06/10/westinghouse-still-sucks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Emacs pinky?</title>
		<link>http://briancarper.net/2008/06/08/emacs-pinky/</link>
		<comments>http://briancarper.net/2008/06/08/emacs-pinky/#comments</comments>
		<pubDate>Sun, 08 Jun 2008 21:23:44 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/06/08/emacs-pinky/</guid>
		<description><![CDATA[I worry about my hands.  I play with computers for a living, and part of the reason someone would want to hire me is that I get a job done quickly.  And being able to type fast is a necessary (not sufficient) ability for that to happen.
When I was in high school I [...]]]></description>
			<content:encoded><![CDATA[<p>I worry about my hands.  I play with computers for a living, and part of the reason someone would want to hire me is that I get a job done quickly.  And being able to type fast is a necessary (not sufficient) ability for that to happen.</p>
<p>When I was in high school I started getting horrible pain on my wrists and hands.  I had to wear a wrist brace for weeks at a time.  I don't know what caused it, but too much keyboard time and bad posture and good old repetitive strain injury was and is my best guess.  (This was before I'd even heard of Vim.  Not sure what text editor I used back then.  Probably some Notepad clone, ugh.)</p>
<p>But then I trained myself to type more comfortably, and I haven't had any pain for years.  I hold my arms at the proper angle, and I don't bend my wrists or stretch or strain my fingers.  My hands bounce over the keys nowadays, on and off the home row constantly.  I don't use my pinky fingers to type at all, in fact.  When I need to type a q or a number or a tilde, I move my whole hand up and hit it with my ring finger.  When I'm vimming, I hit ESC with my middle finger.  With practice this is just as fast as keeping your hands on the home row, but I find it far more comfortable.  I still do it fast enough that people remark that I'm a fast typist (though I know plenty of people who are faster).</p>
<p>Thus we come to Emacs.  Emacs is the king of key chords.  I'm OK hitting Ctrl.  I pick up my hand and hit Ctrl with the side of my pinky like I'm karate-chopping it with a half-closed fist, or use my pinky and ring finger both.  The Alt key I can usually reach with my thumb.  But anything that requires Ctrl + Shift or to a lesser degree Alt + Shift is a killer on my hands.  I don't know a good way to quickly type Ctrl + Shift + another key in a comfortable way.  Caps lock remapped to another Ctrl is the solution many websites list, but that doesn't cut it for me either, it's just pinky-stretching in another direction (and what do you do when you have to hit Ctrl with your right hand?).</p>
<p>For some reason I'm highly amused yet slightly horrified that there really is a condition called <a href="http://en.wikipedia.org/wiki/Emacs#Emacs_Pinky">Emacs pinky</a>.  And that Richard Stallman and other Emacs gurus have famously experienced wrist injuries due to years of using Emacs.  How many people in the world can say that their favorite text editor has <em>physically crippled them</em>?</p>
<p>Even if you admit that heavy dependence on the modifier keys is necessary, some of Emacs' keybindings seem ill-chosen to me. See this quote from the Emacs tutorial:</p>
<blockquote><p>You can use the arrow keys,but it's more efficient to keep your hands in the standard position and use the commands C-p, C-b, C-f, and C-n.</p></blockquote>
<p>I don't know what kind of creature finds those keys more efficient than the arrow keys or pageup / pagedown, but I don't think it's a human being.  (But admittedly, same goes for hjkl in Vim.)  Sure, you don't have you move your hands from the home row.  You just have to contort them into pretzels.  Try hitting up up up down left left right quickly, then try to do the same using those keys.</p>
<p>Same is true of other commands.  <strong>delete-indentation</strong>, which I find myself doing a lot, is <strong>M-^</strong>.  When editing Lisp you may get to experience wonders like <strong>C-(</strong> and <strong>M-J</strong>.  </p>
<p>Anything multi-chord is also just a little bit torturous for me.  How do you execute a command more than once in Emacs?  e.g. move down 3 lines?  You can either type <strong>M-3 C-n</strong>, which requires me to hit Alt with my right hand and 3 with my left, then hit Ctrl with my left and n with my right.  Or you can do <strong>C-u 3 C-n</strong>, which actually requires me to alternate hands on the modifier keys three times instead of two.  This for something so ridiculously simple as moving the cursor, something I do hundreds of times a day.  </p>
<p>This kind of crap leads you to try to hit M-3 or C-u or C-n with one hand instead of two.  If I can manage to hit M-3 with my left hand, I can hit the down arrow with my right.  M-3 is possible with one hand, but M-8 or M-9 would not be without dislocating a few joints.  Down this path leads permanent disability.</p>
<p>Sometimes I toy with the idea of remapping every keybinding or nearly every keybinding in Emacs to something sane.  But aside from thoughts such as "Why the heck should it be necessary for me to do this?" or "Why would this possibly be worth my time?", I'm unsure I could come up with anything better.  I'd still be limited to using lots and lots of modifier keys.  Emacs has had decades of refinement after all, and it's still in this sorry state.</p>
<p>I have tried the Vi and Vim keybindings in Emacs, and they don't work right.  They don't work in all buffers, for example a SLIME REPL buffer.  Even when Vim mode is working, many of the Vim commands are present, but not all.  These huge, massive Emacs-customization hacks always seem to work well maybe 95% of the time for me, but text editor bindings and behaviors are really something you need to work perfectly 100% of the time.  Every time Emacs does something ridiculous or one of these third-party scripts mangles my buffer, and I have to kill and reload the file, it completely breaks my stride and throws off my concentration.  The text editor needs to get out of your way and let you focus on what you're doing.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/06/08/emacs-pinky/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Work</title>
		<link>http://briancarper.net/2008/06/05/work/</link>
		<comments>http://briancarper.net/2008/06/05/work/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 04:32:39 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/06/05/work/</guid>
		<description><![CDATA[When I was in college, one of the guys in one of my classes was an older fellow who'd been working in the Real World for a while, and he asked me one day what kind of job I wanted after I graduated.  I remember saying "I have no idea.  Pretty much anything. [...]]]></description>
			<content:encoded><![CDATA[<p>When I was in college, one of the guys in one of my classes was an older fellow who'd been working in the Real World for a while, and he asked me one day what kind of job I wanted after I graduated.  I remember saying "I have no idea.  Pretty much anything.  If Microsoft drove up to my house with a truck full of money, I'd go work for them."</p>
<p>Looking back now, I was wrong.  There really are more important things than money.  I couldn't do a job I didn't thoroughly enjoy.  Not for long anyways.  I don't make as much money doing what I'm doing right now as I could be making elsewhere, but I like it.  I like the atmosphere of working in a research setting.  I can't imagine working in a corporate setting.</p>
<p>I feel really bad for people who work jobs that they hate.  When I got out of college I worked for six months doing tech support over the phone for a residential satellite dish company.  If not for the fact that I needed money to survive, I wouldn't have.  Near the end I was considering going to live under a bridge somewhere.  If faced with the choice, I'd probably rather dig ditches for a living than do that again.</p>
<p>If hell existed, for me hell would consist of being eternally bored.  I've had jobs that required no thought, just mindless repetition of tasks that were slightly too complicated to get a computer or machine to do.  I can't imagine a worse fate.  I can feel my brains start to leak out of my ears after an hour of a boring task.</p>
<p>When you have a job where you have to play with data, as I do at times, it can sometimes start turning into that kind of boredom.  But then I start writing programs to do all the mindless repetition for me.  Instead of spending lots of time solving little problems and doing little tasks, I solve bigger, harder, much more interesting problems that incidentally solve lots of little problems at the same time.</p>
<p>Computers are useful tools for everyone.  But in one sense, a computer is often a waste in the hands of anyone but a programmer.  The way most people use computers is like using a powerful microscope as a hammer to pound in a nail.  Any time you find yourself copying and pasting a bunch of things over and over for an hour, there's something wrong.  Any time a human being is forced to do a linear search through a long list of ANYTHING on a computer screen, someone along the line has failed.  There are so many of these little problems in most people's lives that a programmer can solve for people.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/06/05/work/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cool feature in Vista</title>
		<link>http://briancarper.net/2008/06/01/cool-feature-in-vista/</link>
		<comments>http://briancarper.net/2008/06/01/cool-feature-in-vista/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 06:05:30 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Microsoft sucks]]></category>

		<category><![CDATA[Vista Sucks]]></category>

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

		<category><![CDATA[Windows sucks]]></category>

		<guid isPermaLink="false">http://briancarper.net/2008/06/01/cool-feature-in-vista/</guid>
		<description><![CDATA[Vista has this really cool feature.  When I log in to work via VPN and then close my laptop's lid to put it to sleep, when I open the lid later, I get the CTRL+ALT+DEL login screen as normal, except that my mouse cursor is now invisible!  If I can somehow manage to [...]]]></description>
			<content:encoded><![CDATA[<p>Vista has this really cool feature.  When I log in to work via VPN and then close my laptop's lid to put it to sleep, when I open the lid later, I get the CTRL+ALT+DEL login screen as normal, except that my mouse cursor is now invisible!  If I can somehow manage to position the invisible mouse cursor over a button, let's say the one to shut the computer down, and I click it, Vista says something about not having enough memory to perform that operation, and crashes or hangs!</p>
<p>Oh wait, that's not a feature.  That's a big hairy stinking bug.  My mistake.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/06/01/cool-feature-in-vista/feed/</wfw:commentRss>
		</item>
		<item>
		<title>mp3gain</title>
		<link>http://briancarper.net/2008/05/27/mp3gain/</link>
		<comments>http://briancarper.net/2008/05/27/mp3gain/#comments</comments>
		<pubDate>Wed, 28 May 2008 01:52:00 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/05/27/mp3gain/</guid>
		<description><![CDATA[I listen to MP3s in the car and it's annoying when the volume isn't normalized.  I can't be fumbling around with the tiny buttons on my MP3 player to adjust the volume while I'm driving.  I found mp3gain and used it on a bunch of files and it appears to have worked.  [...]]]></description>
			<content:encoded><![CDATA[<p>I listen to MP3s in the car and it's annoying when the volume isn't normalized.  I can't be fumbling around with the tiny buttons on my MP3 player to adjust the volume while I'm driving.  I found <a href="http://mp3gain.sourceforge.net/">mp3gain</a> and used it on a bunch of files and it appears to have worked.  </p>
<p>If anyone knows of a better program for normalizing volume of lots and lots of MP3s, post now or forever hold your peace.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/05/27/mp3gain/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Emacs undo is horrible</title>
		<link>http://briancarper.net/2008/05/25/emacs-undo-is-horrible/</link>
		<comments>http://briancarper.net/2008/05/25/emacs-undo-is-horrible/#comments</comments>
		<pubDate>Mon, 26 May 2008 06:54:34 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/05/25/emacs-undo-is-horrible/</guid>
		<description><![CDATA[Emacs has a, well, "unique" undo system.  It only has undo, no redo.  When you undo something, the act of undoing is added as itself onto a stack of undo actions.  When you've un-done enough things, you do "something, like move the cursor, and that breaks the chain.  From there if [...]]]></description>
			<content:encoded><![CDATA[<p>Emacs has a, well, "unique" undo system.  It only has undo, no redo.  When you undo something, the act of undoing is added as itself onto a stack of undo actions.  When you've un-done enough things, you do "something, like move the cursor, and that breaks the chain.  From there if you undo again, you will traverse back over the undo actions you just did.</p>
<p>This is supposedly powerful.  It does help with the following situation: </p>
<ol>
<li>Type something. </li>
<li>Type something #2. </li>
<li>Type something #3.  </li>
<li>Undo undo undo.  </li>
<li>Type something #4.  </li>
</ol>
<p>In most programs once you reach step 4, you can redo to get back to the text you just undid  But once you reach step 5, the first three things you typed are lost forever.  You've gone back in time and changed history, eradicating the old future and replacing it with a new one.  You can never get back to the old future.   Emacs undo, on the other hand, where undo actions are just like any other actions and pushed onto a stack of actions, does let you undo back first three things you typed.</p>
<p>However in practice this doesn't work so well.  <a href="http://www.e-texteditor.com/blog/2006/making-undo-usable">This site</a> has a nice quote:</p>
<blockquote><p>“By [undoing] repeatedly, you can gradually work your way back to a point before your mistake. This is convenient if you’ve made a mistake four or five commands back. It is marginally useful if you’ve made a mistake twenty or thirty characters back. And it is completely useless if your mistake is ancient history.” - Learning GNU Emacs (page 42)</p></blockquote>
<p>The problem being, supposing you undo 20 times, and break the chain (by moving the cursor for example), if you then decide to undo one step FURTHER back, you have to undo all 20 of your previous undos, undo 20 more times, then undo once more.  Eventually you end up feeling like you're going up and down a roller coaster of undos.</p>
<p>If you hate this, which you probably do, you could use <a href="http://www.emacswiki.org/cgi-bin/wiki/RedoMode">redo mode</a>, which gimps up Emacs undo/redo to be like any other program's, i.e. you get the same behavior as Microsoft Notepad.  (Although when I tried it, it was buggy as heck, failing to undo my actions properly, mangling text from different lines together and whatnot.)</p>
<p>Vim's undo system on the other hand is far better and equally powerful.  You have a standard undo / redo option via <strong>u</strong> and <strong>CTRL-R</strong>.  You also have a second completely different way to undo: you can "go back in time".  In the above example, Vim will create two undo "branches" and you can jump from one to the other even if you undo and "break the chain" by typing something new.</p>
<p>Doing <strong>:undol</strong> lists the branches, in a somewhat confusing format.  But you can just pound <strong>g-</strong> and <strong>g+</strong> to go to older / newer text states, or use <strong>:earlier</strong> with a human-readable time (say, 10s or 5m) and it will take you to that point.  These will get you all the power of Emacs' undo stack, with none of the pain or confusion.  See also <strong>:h undo-two-ways</strong>.</p>
<p>This is one of many instances where Vim wins, hands-down.  Vim's undo system isn't as reprogrammable as Emacs, but it's so powerful and so perfectly what you'd want that it doesn't matter.  This is beautifully typical of Vim.  I don't have a year to figure out all the nooks and crannies and edge cases and idiosyncrasies of Emacs undo system, let alone the time it'd take to write a custom, crusty elisp script to buggily re-implement it.</p>
<p>Being an "extensible text editor" doesn't help much when such basic functionality is so broken.  Unless you want to <a href="http://www.gnufans.net/~deego/emacspub/lisp-mine/undo-browse/dev/undo-browse.el">play your undo history back like a movie, in rainbow colors</a>, which I don't.  I want undo/redo that works.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/05/25/emacs-undo-is-horrible/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Vim joy, Lisp woes</title>
		<link>http://briancarper.net/2008/05/15/vim-joy-lisp-woes/</link>
		<comments>http://briancarper.net/2008/05/15/vim-joy-lisp-woes/#comments</comments>
		<pubDate>Thu, 15 May 2008 08:17:11 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

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

		<guid isPermaLink="false">http://briancarper.net/2008/05/15/vim-joy-lisp-woes/</guid>
		<description><![CDATA[I symlinked my .vimrc to my local mirror of my website so that every time I rsync it (which is pretty often) it'll automatically update my the vimrc on this server.  So that should be fun.  I experiment with things in there all the time so at any given moment there are likely [...]]]></description>
			<content:encoded><![CDATA[<p>I symlinked my .vimrc to my local mirror of my website so that every time I rsync it (which is pretty often) it'll automatically update my the <a href="/vim/vimrc">vimrc</a> on this server.  So that should be fun.  I experiment with things in there all the time so at any given moment there are likely to be things horribly broken, but maybe someone can use some of it.  </p>
<p>This <a href="http://docs.google.com/View?docid=dfkkkxv5_65d5p3nk">mirror of Ciaran McCreesh's vimrc</a> which I found linked from <a href="http://steveno.wordpress.com/vimrc/">here</a> (edit: updated version <a href="http://ciaranm.wordpress.com/2008/05/15/my-vimrc/">here</a>) has lots of good stuff in it.  In particular using <strong>:set listchars</strong> to display tabs and trailing whitespace as some funky Unicode characters is a really good idea.  When I first tried that good idea I realized my favorite font ProggySquare didn't properly display most Unicode characters, which was part of my motivation to switch to Terminus.  (That, and those tiny Proggy fonts aren't so great on a 1920x1200 monitor.)</p>
<p>After a long time putting it off, I finally hunkered down one day and figured out how the heck Vim script works.  The difference between statements and expressions in Vim script language confused me for a while, which goes to show that I'm far too used to Ruby and Lisp where almost everything or everything returns a value as an expression.  Vim expects expressions in certain places and colon-prefixed commands in others.  But then there's <strong>normal</strong> and <strong>eval</strong> and <strong>execute</strong> and <strong>"=</strong> some of which let you do things from one mode in another mode if you mix and match them.  But I think I've gotten a handle on it now.</p>
<p>Today I came across <a href="http://mikael.jansson.be/hacking/limp">Limp</a> which is a recent attempt to get Lisp to work well with Vim.  It seems quite new and buggy and had dependencies on things I had to guess until I was able to install it (like <strong>rlwrap</strong>), but I still was excited about it.  Until I realized that it's just a wrapper around GNU screen.  SBCL runs separately, and some keystrokes send stuff from Vim to screen, but that's about it.  Nice, but not nearly as nice as SLIME in Emacs.  So that disappointed me.  In the back of my mind I always think about how Vim could possibly be integrated with Lisp like SLIME does but I don't see any good way.  Vim doesn't have the ability to embed shells like Emacs and it doesn't look like it will gain that ability any time soon.  Ah well.</p>
]]></content:encoded>
			<wfw:commentRss>http://briancarper.net/2008/05/15/vim-joy-lisp-woes/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
