<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-us"><title>vicfryzel.com Articles</title><link href="http://www.vicfryzel.com/" rel="alternate"></link><link href="http://www.vicfryzel.com/articles.atom" rel="self"></link><id>http://www.vicfryzel.com/</id><updated>2012-02-27T01:32:15-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><subtitle>Vic Fryzel's stream of ideas, thoughts, and work regarding Linux, software engineering, and open source software.</subtitle><rights>Nothing here represents my employer. vicfryzel.com by Vic Fryzel is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.</rights><entry><title>Review of the Osprey Momentum 34 Backpack</title><link href="http://www.vicfryzel.com/2012/02/27/review-osprey-momentum-34-backpack" rel="alternate"></link><updated>2012-02-27T01:32:15-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2012/02/27/review-osprey-momentum-34-backpack</id><summary type="html">&lt;p&gt;This is a review of the &lt;a href="http://www.ospreypacks.com/en/product/commute/momentum_34"&gt;Osprey Momentum 34 backpack&lt;/a&gt;, which is pitched as Osprey's bike commuter backpack.  It can be had on Amazon.com for around $150 USD.&lt;/p&gt;
&lt;p&gt;This review discusses the features of the bag that make it great.  This review also compares it to the following bags which I also own.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.ospreypacks.com/en/product/commute/momentum_26"&gt;Osprey Momentum 26&lt;/a&gt; (same model, but smaller size) - $130&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.chromebagsstore.com/bags/messenger-bags/citizen-buckle-bag---medium.html"&gt;Chrome Citizen&lt;/a&gt; - $140&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ospreypacks.com/en/product/previous_season_1/kestrel_322011"&gt;Osprey Kestrel 32&lt;/a&gt; - $130&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.crumpler.com/us/Laptop-Bags/Laptop-Messenger-Bags/Moderate-Embarrassment.html?LanguageCode=EN&amp;amp;SKU=MET002-B00130"&gt;Crumpler Moderate Embarrassment&lt;/a&gt; - $100&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Before I begin the review, I'll just give a bit of background about my requirements for a commuter bag.  I commute to work by bike each day.  My trip is about 12 miles each way.  I carry a separate set of clothes, my 13" Macbook Air, and some other odds and ends.&lt;/p&gt;
&lt;p&gt;I need a commuter bag to obviously carry all of this stuff, but also I need it to be comfortable, durable, and lightweight.&lt;/p&gt;
&lt;h2&gt;Design and features&lt;/h2&gt;
&lt;p&gt;The Momentum 34 is designed specifically for bike commuters, and its features make that obvious.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dedicated, padded laptop pocket&lt;/li&gt;
&lt;li&gt;Helmet leash (attaches a helmet to the outside of the bag)&lt;/li&gt;
&lt;li&gt;On-shoulder pockets&lt;/li&gt;
&lt;li&gt;Large main compartment&lt;/li&gt;
&lt;li&gt;Compression straps&lt;/li&gt;
&lt;li&gt;Reflective markings&lt;/li&gt;
&lt;li&gt;Waterproof rain fly&lt;/li&gt;
&lt;li&gt;Additional "briefcase" style carry handle&lt;/li&gt;
&lt;li&gt;Pockets to hide waist belts and shoulder straps&lt;/li&gt;
&lt;li&gt;Dedicated U-lock pocket&lt;/li&gt;
&lt;li&gt;Comes in two sizes: S/M, and M/L (this review is of the M/L)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The bag is pretty aesthetically appealing.  It comes in a very dark gray or bright yellow.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh5.googleusercontent.com/-pfjPJ6C_4l8/T0r3Fd8t0YI/AAAAAAAAC64/4B9Su_qn8UE/s600/IMG_6492.jpeg" alt="Image of Osprey Momentum 34 Bag" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A very accessible front pocket with decent organization will fit a small notebook, some pens, and other odds and ends.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh4.googleusercontent.com/-i3o9DgAIto8/T0r3KZFINSI/AAAAAAAAC7E/u2Ba-6nDUJM/s600/IMG_6493.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh5.googleusercontent.com/-LTRIZIkN3iw/T0r3KTCVNWI/AAAAAAAAC7A/1d6o2jePHTk/s600/IMG_6495.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There is a cavernous main pocket that easily fits a large volume of stuff.  It also has a bit of mesh organization and an inner zippered mesh pocket.  The zipper for this pocket can be tough to open, especially if the zipper handle lands below one of the compression straps.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh3.googleusercontent.com/-6ie2hi1CK9U/T0r3Y6CB7ZI/AAAAAAAAC7g/IooJXBdJRzA/s600/IMG_6500.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The laptop pocket has a lot of really good padding.  It fits a 13-inch Macbook Air with tons of room to spare.  I think that this pocket would easily fit a 17-inch laptop.  The only thing missing is a bit of padding on the bottom of the bag to protect the laptop from falls.  The rain fly provides a bit of padding, but there's no dedicated foam on the bottom.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh5.googleusercontent.com/-kJWmQhkBQRw/T0r3YQWVI7I/AAAAAAAAC7Y/nX3n4LWEHOU/s600/IMG_6502.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The U-lock pocket is super convenient, and is a great idea for a bike commuter bag.  Think about it, the first thing that any bike commuter reaches for after arriving is their U-lock.  The fact that this pocket is on the outside of the bag and so accessible is a huge plus.  The pocket fits my &lt;a href="http://www.amazon.com/Kryptonite-Mini-7-4-Foot-Flex-Lock/dp/B004C94T84/ref=sr_1_11?ie=UTF8&amp;amp;qid=1330317876&amp;amp;sr=8-11"&gt;Kryptonite Evo Mini-7 with 4-foot Flex Lock&lt;/a&gt;, and there is still room to spare.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh6.googleusercontent.com/-h_dTT0odk1M/T0r3hPrzX_I/AAAAAAAAC7o/l8n7okpvIbI/s600/IMG_6504.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There are also some pretty large side pockets that zip shut.  When unzipped, some elastic and mesh webbing allow these pockets to hold a 1-liter water bottle without it falling out.  I put my bike tools in these pockets, keeping them out of the way of the stuff I access regularly.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh6.googleusercontent.com/-Cj-9ucG4hWc/T0r3oQdGZVI/AAAAAAAAC74/-Sn5iD41Cfc/s600/IMG_6505.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh4.googleusercontent.com/-HlBxedaDT-Y/T0r4JZ5cWqI/AAAAAAAAC9E/Jf7GH5oTbiA/s600/IMG_6522.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The back of the bag is a washboard foam, that acts a bit like a pack frame.  It's pretty sturdy, and fits the contour of my back pretty well.  My back gets a bit sweaty from carrying this pack, because the foam will sit right against your back.  Not much can be done about this.  Osprey has a better design on some of their other packs, called the AirScape, but I suspect that that design wouldn't be effective for bike commuters.  When riding your bike, you're leaned forward (at least on a road bike), and therefore the pack will lay itself against your back anyway.&lt;/p&gt;
&lt;p&gt;I'm not concerned about getting sweaty, as my commute is already long enough to cause me to sweat, but for some people this might be a small issue.  I've noticed that my back barely sweats while wearing this pack around casually.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh6.googleusercontent.com/-XRFZ8FZHATA/T0r3jciaz5I/AAAAAAAAC7w/3z2ZUcbQUio/s600/IMG_6506.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The two shoulder-strap pockets are pretty awesome.  The right one has a retractable key leash.  That might be the part of this bag that will actually wear out.  However, the key leash is replaceable, as it's just clipped on to a loop inside the pocket.  The key leash isn't proprietary, it's just some standard thing with an Osprey logo.  You could easily replace this with any $0.50 thing you find in a hardware store.&lt;/p&gt;
&lt;p&gt;The left pocket is meant for a cell phone or other small items.  Since I commute to work with a &lt;a href="https://buy.garmin.com/shop/shop.do?pID=36728"&gt;Garmin Edge 500&lt;/a&gt; on my bike, there's no reason for me to keep my phone accessible (e.g. if I were using the &lt;a href="https://market.android.com/details?id=com.google.android.maps.mytracks&amp;amp;hl=en"&gt;My Tracks&lt;/a&gt; or &lt;a href="https://market.android.com/details?id=com.strava&amp;amp;feature=search_result#?t=W251bGwsMSwyLDEsImNvbS5zdHJhdmEiXQ.."&gt;Strava&lt;/a&gt; Android apps).  Since I don't need to keep my cell phone up there, I instead put my &lt;a href="http://www.saddlebackleather.com/Classic-Wallet-Sleeve.html?sc=8&amp;amp;category=87"&gt;wallet&lt;/a&gt; and Google badge there, as I need those things more frequently.  However, if you're wondering, the &lt;a href="http://www.google.com/nexus/"&gt;Samsung Galaxy Nexus&lt;/a&gt; barely fits in that pocket.  The Samsung Galaxy Nexus is easily the largest but thinnest phone I've ever owned, so you can consider that an upper bound for size.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh5.googleusercontent.com/-bRPSMPX-pNQ/T0r30R61tRI/AAAAAAAADDA/FiFqG_h4Ir0/s600/IMG_6512.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The shoulder straps can be tucked away if you don't need them.  This isn't a feature I'll ever use, but I could see it being useful if someone wanting to convert this to more of a briefcase style bag while walking around.  The bag even has a handle on the side that allows it to be carried like a briefcase.  When not in use, that handle isn't noticeable or in the way.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh3.googleusercontent.com/-MR5lIZe9Cgw/T0r3w9DJyKI/AAAAAAAAC8A/Z0opNMOGrZs/s600/IMG_6516.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh6.googleusercontent.com/-Z9_a1b1q-Yw/T0r3_q6RL5I/AAAAAAAAC8w/ERvxIjKlzYc/s600/IMG_6521.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Osprey paid a lot of attention to making sure that straps on this bag were adjustable and comfortable.  The waist strap is no exception.  It's long enough for it to fit on a pretty big person, and really stabilizes the bag.  If you don't want to use it though, there are pockets allowing it to be tucked away so that it's not dangling when not in use.  This is a great feature, in my opinion, because too often, technical backpacks have straps hanging everywhere and they get caught on stuff all the time.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh6.googleusercontent.com/-3bykQT6FXQU/T0r33nvNY8I/AAAAAAAAC8Q/o5vuj74YEjw/s600/IMG_6517.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh5.googleusercontent.com/-XAZoVZojOJ4/T0r38i0c3XI/AAAAAAAAC8c/WYrz63m0TfU/s600/IMG_6520.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The rain fly that comes with the bag is super convenient if you get caught in the rain.  A lot of thought was even put into the design of the rain fly.  It's made out of a waterproof material that is super bright yellow.  It buckles across the back of the bag, and lashes tight to ensure that no wind or water pull it off.  It comes in a dedicated pocket on the bottom of the bag, and is removed completely by detaching its velcro from inside the pocket.  The rain fly also has some reflective markings on the back and a light attachment.  Cars will have no trouble seeing you while wearing this on the outside of the bag.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh4.googleusercontent.com/-1nrIhMSh6Uc/T0r6lhUHD0I/AAAAAAAADBE/yM3uSa1MRv4/s600/IMG_6556.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh3.googleusercontent.com/-KhFJoa5Qil4/T0r62kP-KKI/AAAAAAAADBc/e19aCzUz6TY/s600/IMG_6559.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh4.googleusercontent.com/-tA9GQO08GI4/T0r62lDLW9I/AAAAAAAADBU/Q_bn_8htkJU/s600/IMG_6560.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh5.googleusercontent.com/-wBnYREPHbGI/T0r62IPiF6I/AAAAAAAADBQ/5--CEC6ZoOU/s600/IMG_6562.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh4.googleusercontent.com/-D47G31fNrJs/T0r7MGs5mmI/AAAAAAAADBw/w9SF-v7hvOc/s600/IMG_6563.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh4.googleusercontent.com/-9p3G6mbAUGE/T0r7NA7xrhI/AAAAAAAADB4/U9fHMIdOIeI/s600/IMG_6565.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Packing the bag&lt;/h2&gt;
&lt;p&gt;Every day when commuting, I carry the same 9.8 pounds of stuff (with the Momentum 34, that totals to 12.8).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh5.googleusercontent.com/-a1iFNjD7Il8/T0r7OgKMAgI/AAAAAAAADCA/TtSepUKaGIo/s600/IMG_6575.jpeg" alt="Image of everything that I pack in the bag" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And it all fits in the Momentum 34 beautifully.  I was surprised at how small of a package it made in this bag, because in other bags it seemed like so much stuff.  Here are some photos of the bag filled with everything shown.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh4.googleusercontent.com/-ZqHvfaQ5dpE/T0r7WugnhRI/AAAAAAAADCQ/-jzQR4bsq0s/s600/IMG_6576.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh6.googleusercontent.com/-cHWaJ8Y66qk/T0r7ZGwfvsI/AAAAAAAADCY/UxaT3X3RDjw/s600/IMG_6577.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh6.googleusercontent.com/-EXddQmyyl1g/T0r7bcDKGrI/AAAAAAAADCg/1cvPBv87Xx8/s600/IMG_6578.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh6.googleusercontent.com/-A9t6hIV-r4k/T0r7dx-46LI/AAAAAAAADCo/QW04xOoqLPs/s600/IMG_6579.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Fit&lt;/h2&gt;
&lt;p&gt;Even with all of that stuff, the bag feels balanced, secure, and comfortable.  It's noticeably more comfortable than all of my other bags.  A smile came to my face when I tried it on loaded.  It's really great at carrying everything a commuter would need.&lt;/p&gt;
&lt;p&gt;I'm 6'4" tall, and the M/L size fits me perfectly.  The back of the pack fits my back very well, and I've found it super comfortable.&lt;/p&gt;
&lt;p&gt;The shoulder strap padding could probably be a little bit longer, just so the "fat" part of the strap occupied more of my chest, but it's really a non-issue.&lt;/p&gt;
&lt;h2&gt;Durability and warranty&lt;/h2&gt;
&lt;p&gt;The Momentum 34 seems tough.  It doesn't quite seem "bomb proof" (as some messenger bag companies have come to call the material of their bags), but it seems like it will take a beating.  All of the zippers, stitches and buckles seem very formidable.  I haven't yet encountered a stuck zipper or loose stitch.  I haven't hurt the bag in any way yet, but am looking forward to it!&lt;/p&gt;
&lt;p&gt;When I do hurt the bag, I won't have to worry.  Osprey provides something called the &lt;a href="http://www.ospreypacks.com/en/web/all_mighty_guarantee"&gt;All Mighty Guarantee&lt;/a&gt;, which is essentially a lifetime guarantee to repair ANY damage or defect in the bag, for free.  That includes damage to the bag that is not Osprey's fault!  This is quite an amazing warranty, and it's pretty much the first of its kind I've encountered.  Hats off to Osprey for really standing up for their products, this really makes the Momentum 34 a "buy it for life" product.&lt;/p&gt;
&lt;h2&gt;Compared to the Osprey Momentum 26&lt;/h2&gt;
&lt;p&gt;In buying this bag, the biggest question in my mind was whether to get the 26-liter or 34-liter version.  What I decided to do instead was order both, and take advantage of Amazon's free returns policy on bags.&lt;/p&gt;
&lt;p&gt;There are a few notable differences between the 26-liter and 34-liter versions.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;26-liter does not have an external U-lock pocket, they moved it inside.&lt;/li&gt;
&lt;li&gt;Side pockets of 26-liter do not zip shut.&lt;/li&gt;
&lt;li&gt;Main pocket is somewhat smaller.&lt;/li&gt;
&lt;li&gt;34-liter version felt more comfortable on my back.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Despite these differences, the bags look and feel identical.  They appear to be almost exactly the same size when compressed.  It's hard to tell, but in the first image below, that is actually the 26-liter version in front of the 34-liter version.  Notice how you cannot even see the 34-liter version behind it.  I could not tell the difference in weight while holding both in each hand.  For these reasons, and the differences noted above, I highly recommend going with the 34-liter version if you're on the edge.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh4.googleusercontent.com/-4BNee-mNKh8/T0r4JpIXTeI/AAAAAAAAC9Q/nqY0UA_6LNo/s600/IMG_6523.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh3.googleusercontent.com/-ErKrinWuCII/T0r4JB3Ei3I/AAAAAAAAC9A/jFLFMO7NL5s/s600/IMG_6524.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh5.googleusercontent.com/-nG5XJeguZyc/T0r4bl6kuzI/AAAAAAAAC9o/kynPgok8xSM/s600/IMG_6529.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh6.googleusercontent.com/--SpfcxStSFo/T0r4brfRMrI/AAAAAAAAC9g/07biG7wa0Xg/s600/IMG_6530.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh3.googleusercontent.com/-INRRqvEgVbo/T0r4bTZX41I/AAAAAAAAC9c/fjK82G-eggY/s600/IMG_6531.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Compared to the Chrome Citizen&lt;/h2&gt;
&lt;p&gt;The Chrome Citizen is a completely different bag than the Osprey Momentum 34, but they are intended to serve similar purposes.  Mainly, people on bikes need to carry their stuff in a bag.  I thought for a long time that I personally preferred a messenger style bag like the Citizen.  However, over time, I've grown to dislike it.&lt;/p&gt;
&lt;p&gt;The Citizen has a lot of fashion/style going for it.  Other than that, though, I actually think it's not an ideal bag unless you're actually a bike messenger.  I've traveled around the world with nothing but the Chrome Citizen, and have ridden hundreds of miles with it on my back.  Still, its design flaws get to you after a while.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When loaded up, the Citizen eventually hurts my left shoulder (after more than 30 minutes of wearing it).&lt;/li&gt;
&lt;li&gt;Again, when loaded up, it eventually gets annoying for me to breathe, because the Citizen pulls on my chest.&lt;/li&gt;
&lt;li&gt;The laptop sleeve of the Citizen attaches to the outer side of the bag, not the side closest to your back.  This means that everything you put next to your back gets felt on your back.  A pair of shoes, for instances, will dig into your back.  This seems backwards to me.  Anyway, if you want to use a laptop sleeve with the Chrome Citizen, it can only be attached to one side.&lt;/li&gt;
&lt;li&gt;The Citizen doesn't have any built-in shoulder strap pockets.  You can buy one as an accessory that attached to the strap, but really small things (keys) can fall out of it.&lt;/li&gt;
&lt;li&gt;It's a pain in the ass to take on and off.  The seatbelt strap is actually seatbelt material.  So it flops all over the place when not attached.  Sometimes I hit things with it while pulling it up to buckle it.&lt;/li&gt;
&lt;li&gt;The buckle of my Citizen has started to rust a bit.&lt;/li&gt;
&lt;li&gt;To access anything, you have to flip the bag around, unbuckle two buckles, undo the huge velcro flap, and then dig around in the single main pocket or the small front pockets.  Every time you need something you have to do this.  It's annoying from day one.&lt;/li&gt;
&lt;li&gt;It's one huge 26-liter pocket, and I found this to be barely enough for all of my stuff.&lt;/li&gt;
&lt;li&gt;It does not distribute load down your back well, and eventually it's a little rough carrying ~10 pounds of stuff in it.  In airports, while carrying a week's worth of gear, I sometimes just carry it on my right shoulder instead of across my chest because it's more comfortable, although less secure.&lt;/li&gt;
&lt;li&gt;After sweating on it a lot, it looks gross and needs to be washed.  The outer fabric is basically cotton, so it absorbs all of the sweat, and eventually builds up white sweat stains.&lt;/li&gt;
&lt;li&gt;Chrome's website says it weighs 2.5 pounds, but I honestly think it feels heavier empty than the Momentum 34.  I think the tarp liner and steel buckle add a lot of weight.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Momentum 34 doesn't have any of these drawbacks.  That alone makes me love the Momentum 34.&lt;/p&gt;
&lt;p&gt;Here are some photos showing the differences between the two bags.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh5.googleusercontent.com/-qcln_Gnvy-Q/T0r4p-IfznI/AAAAAAAAC98/rWicVO26t34/s600/IMG_6532.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh6.googleusercontent.com/--SIcquKa-nE/T0r4qY9WqvI/AAAAAAAAC-E/YMIIYeBu-eY/s600/IMG_6534.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh3.googleusercontent.com/-RhEXfGojtvU/T0r4qRbr5hI/AAAAAAAAC-A/JUR5iS0hqlg/s600/IMG_6535.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh4.googleusercontent.com/-9k-0_VOVBQo/T0r46X1IQAI/AAAAAAAAC-k/wyW3a60NV7U/s600/IMG_6536.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh5.googleusercontent.com/-xOdoRA6HZ4Q/T0r46pqQThI/AAAAAAAAC-o/vVkW8jDZ3vU/s600/IMG_6537.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Compared to the Crumpler Moderate Embarrassment&lt;/h2&gt;
&lt;p&gt;The Moderate Embarrassment is still my go to bag for commuting to work casually (e.g. without a bike).  I've even taken it on some same-day roundtrip flights.  It fits just my laptop, Kindle, and other few items very well.  It's small, light, and comfortable.  It doesn't hold all of the things that the Momentum 34 holds, but when I use it, it doesn't need it to.&lt;/p&gt;
&lt;p&gt;Again, here are some photos for comparison.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh3.googleusercontent.com/-lgIIleZ3ZbE/T0r47SkrQNI/AAAAAAAAC-0/rrb6w_WhMZ8/s600/IMG_6538.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh3.googleusercontent.com/-4WMf9xNwm40/T0r5I6tJdkI/AAAAAAAAC_A/QSF5AjykyiE/s600/IMG_6539.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh4.googleusercontent.com/-V0k8djPxv6g/T0r5WjITNSI/AAAAAAAAC_M/jfma91i0aEY/s600/IMG_6540.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh3.googleusercontent.com/-tZLSRpukgqQ/T0r5dQMzMQI/AAAAAAAAC_U/mM3ss6CcBcM/s600/IMG_6542.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh5.googleusercontent.com/-01vAYNHzeGI/T0r5giYQsBI/AAAAAAAAC_g/rKAWku1ElXg/s600/IMG_6543.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Compared to the Osprey Kestrel 32&lt;/h2&gt;
&lt;p&gt;The Osprey Kestrel 32 is more of a daytrip pack.  It's meant to be one huge pocket with compression straps, and a comfortable fit.  The Kestrel actually has the AirScape design for the back, which is nice because it makes my back less sweaty while wearing the bag.  Other than that, though, the Kestrel is purposed at backpacking, and not commuting.  I'll probably still use the Kestrel for daytrips, but otherwise I'll be using the Momentum 34 for more general purpose carrying from now on.  What surprised me was that the Kestrel 32 actually appears bigger than the Momentum 34, even though the Momentum 34 is technically two liters larger.&lt;/p&gt;
&lt;p&gt;More photos for comparison.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh3.googleusercontent.com/-S7LOS9oEuJE/T0r5o2_BVsI/AAAAAAAAC_w/UAfV1oC83eA/s600/IMG_6545.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh3.googleusercontent.com/-nh406EaJ8kQ/T0r5vWsn9qI/AAAAAAAAC_4/-VZISe4R7Z8/s600/IMG_6546.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh3.googleusercontent.com/--7EpqmFpJkY/T0r552OZK2I/AAAAAAAADAE/XD04jOqNwt4/s600/IMG_6549.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh6.googleusercontent.com/-M0XlUsXhLl0/T0r57sjF6eI/AAAAAAAADAM/Sts_PTdMRCs/s600/IMG_6550.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh5.googleusercontent.com/-TUGNNyEBflI/T0r6EBcy4xI/AAAAAAAADAY/PGJOKZOh6Qw/s600/IMG_6551.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh5.googleusercontent.com/-brjc50cpSiU/T0r6cddd1wI/AAAAAAAADAs/8uV5Cmp7Wfs/s600/IMG_6553.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh6.googleusercontent.com/-EUGCalGgfxw/T0r6V5GYXdI/AAAAAAAADAk/AAEUWvrDX5U/s600/IMG_6554.jpeg" /&gt;&lt;/a&gt;
&lt;a href="https://picasaweb.google.com/106023815311471870138/OspreyMomentum34Review"&gt;&lt;img src="https://lh3.googleusercontent.com/-QwK_v-OSzP0/T0r6eaQX60I/AAAAAAAADA4/pU1_Z3zMU6k/s600/IMG_6555.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;The Momentum 34 is easily the best all-around bag I've bought to date.  I love it.  It's comfortable and convenient, and has so many amazing features meant for bike commuting.  I give it a solid 9/10 rating.  The only things I'd like to see are the AirScape back (or some other suspension system for keeping your back cool), and more accessible zippers on the main pockets.  I found the zippers a bit too "tough", and sometimes it was a bit annoying to get access to the pockets.&lt;/p&gt;
&lt;p&gt;If you're looking for a commuter backpack, this is the one, hands down.&lt;/p&gt;</summary></entry><entry><title>Fixing Skyrim&amp;#39;s sound in wine</title><link href="http://www.vicfryzel.com/2011/12/27/fixing-skyrims-sound-wine" rel="alternate"></link><updated>2011-12-27T23:26:15-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2011/12/27/fixing-skyrims-sound-wine</id><summary type="html">&lt;p&gt;Like me, you may be having a problem with the sound while running &lt;a href="http://www.elderscrolls.com/skyrim/"&gt;Skyrim&lt;/a&gt; in &lt;a href="http://www.winehq.org/"&gt;wine&lt;/a&gt;.  The problem is that the sound skips or ticks multiple times per second.&lt;/p&gt;
&lt;p&gt;Some guides and blogs have mentioned that to play Skyrim, wine must be set to &lt;code&gt;Windows 7&lt;/code&gt; mode.  For me, this causes the sound problem.  To fix this problem, I've found that simply setting wine to &lt;code&gt;Windows 2000&lt;/code&gt; mode in &lt;code&gt;winecfg&lt;/code&gt; resolves the sound issue.&lt;/p&gt;</summary></entry><entry><title>True fullscreen in xmonad</title><link href="http://www.vicfryzel.com/2011/12/26/true-fullscreen-xmonad" rel="alternate"></link><updated>2011-12-26T20:33:30-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2011/12/26/true-fullscreen-xmonad</id><summary type="html">&lt;p&gt;For a long time, I have been dealing with a minor issue that has prevented fullscreen applications from displaying in a correct 16:10 resolution (or other standard resolution).  This problem can be caused by xmobar occupying the dock area in my primary workspace.  This problem can also be caused by window borders occupying extra pixels.  In &lt;a href="http://www.vicfryzel.com/2011/02/27/starcraft-ii-arch-xmonad"&gt;Starcraft II in Arch, xmonad&lt;/a&gt;, I modified the resolution of the wine desktop to account for the dock area and window borders.&lt;/p&gt;
&lt;p&gt;Messing with the resolution hasn't been required for a while now, but today I got around to fixing the problem while getting &lt;a href="http://www.elderscrolls.com/skyrim/"&gt;Skyrim&lt;/a&gt; running in Linux.&lt;/p&gt;
&lt;p&gt;To display windows as true fullscreen in a workspace, use the following layouts.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::haskell
import XMonad.Layout.Fullscreen
import XMonad.Layout.NoBorders
-- ...
myLayout = avoidStruts (
    Tall 1 (3/100) (1/2) |||
    Mirror (Tall 1 (3/100) (1/2))) |||
    noBorders (fullscreenFull Full)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In this configuration, the Tall and Mirror Tall layouts avoid the dock area, because they are within avoidStruts.  Since &lt;code&gt;noBorders (fullscreenFull Full)&lt;/code&gt; is not within avoidStruts, it allows windows to overlap the dock area.  The &lt;code&gt;noBorders&lt;/code&gt; layout, as the name implies, removes borders from the given layouts.&lt;/p&gt;
&lt;p&gt;Once enabled, cycling through layouts enables a true fullscreen layout that occupies the entire workspace, hiding borders and dock areas.  Each window is rendered fullscreen, and windows can be cycled through as usual.&lt;/p&gt;</summary></entry><entry><title>StarCraft II in Arch, xmonad</title><link href="http://www.vicfryzel.com/2011/02/27/starcraft-ii-arch-xmonad" rel="alternate"></link><updated>2011-02-27T02:05:45-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2011/02/27/starcraft-ii-arch-xmonad</id><summary type="html">&lt;p&gt;I bought &lt;a href="http://us.battle.net/sc2/en/"&gt;StarCraft II&lt;/a&gt; today.  It took me an hour or two to get it running with &lt;a href="http://www.winehq.org/"&gt;Wine&lt;/a&gt;, mostly because of some out of date lib32 packages in Arch.  It might save you some time to know that if you enable the multilib repo in Arch, be sure to &lt;code&gt;pacman -Syu&lt;/code&gt; first, because you may have installed some lib32 libs prior to enabling that repo.&lt;/p&gt;
&lt;p&gt;To get StarCraft II displaying well in &lt;a href="http://xmonad.org/"&gt;xmonad&lt;/a&gt;, you have to change some settings in winecfg and in the game itself.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::bash
WINEARCH=win32 winecfg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the Graphics tab, select a desktop size of 1678x1024 if you're on a dual screen 1680x1050 setup, with a 20px xmobar and a 24px Tabbed layout on the game desktop.  When in game, go to the Options screen and select Windowed (Fullscreen).  You should get something like below.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picasaweb.google.com/lh/photo/vkzMWRUT6MUT7jxNihFv4w?feat=embedwebsite"&gt;&lt;img src="https://lh6.googleusercontent.com/_qaM_hTDX9xA/TWn1YBmkhWI/AAAAAAAABRc/wGswptgdpWw/s600/2011-02-27-015308_3360x1050_scrot.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you have skipping sound (like I did,) in winecfg select "Emulation" under Audio &amp;gt; Hardware Acceleration.&lt;/p&gt;</summary></entry><entry><title>xmonad with fullscreen Flash video</title><link href="http://www.vicfryzel.com/2011/02/26/xmonad-fullscreen-flash-video" rel="alternate"></link><updated>2011-02-26T23:32:22-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2011/02/26/xmonad-fullscreen-flash-video</id><summary type="html">&lt;p&gt;For ages, although loving Xmonad, I've been plagued by an issue without being able to fullscreen Flash video.  Finally, I stumbled upon &lt;a href="http://www.haskell.org/haskellwiki/Xmonad/Frequently_asked_questions#Watch_fullscreen_flash_video"&gt;this FAQ&lt;/a&gt;, and the following line has changed my life.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::haskell
isFullscreen --&amp;gt; (doF W.focusDown &amp;lt;+&amp;gt; doFullFloat)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So exciting.  My web video consumption just increased a lot.&lt;/p&gt;</summary></entry><entry><title>collective: blog engine with minimal core feature set</title><link href="http://www.vicfryzel.com/2011/01/08/collective-blog-engine-minimal-core-feature-set" rel="alternate"></link><updated>2011-01-08T02:42:42-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2011/01/08/collective-blog-engine-minimal-core-feature-set</id><summary type="html">&lt;p&gt;I just launched &lt;a href="https://github.com/vicfryzel/collective"&gt;collective&lt;/a&gt;, which is what I've decided to call the &lt;a href="http://www.vicfryzel.com/2011/01/06/finally-blog-software-doesnt-suck"&gt;blog engine I built to back vicfryzel.com&lt;/a&gt;.  I cleaned it up a bit and added some documentation.  It's pretty easy to install in a separate instance, I've done this a few times now and have had no trouble.&lt;/p&gt;
&lt;p&gt;I'm actually kind of proud of this project now.  It's a nice solution to the problem I had of finding a working, minimal blog solution.&lt;/p&gt;
&lt;p&gt;Let me know your comments!  If you try it, I'd love to hear from you.&lt;/p&gt;</summary></entry><entry><title>Updated public key for 2011</title><link href="http://www.vicfryzel.com/2011/01/06/updated-public-key-2011" rel="alternate"></link><updated>2011-01-06T00:43:54-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2011/01/06/updated-public-key-2011</id><summary type="html">&lt;p&gt;Along with the new site, I took the opportunity to release a new &lt;a href="http://www.vicfryzel.com/public-key/"&gt;public key&lt;/a&gt; for 2011.  If you need to encrypt anything for me, you know what to do.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::bash
gpg --recv-keys FBD864B8
gpg --fingerprint [my-email-address]
# Ensure printed fingerprint matches what's at http://www.vicfryzel.com/public-key/
gpg --output somefile.gpg --encrypt --recipient [my-email-address] somefile
# Email me somefile.gpg
&lt;/code&gt;&lt;/pre&gt;</summary></entry><entry><title>Finally, blog software that doesn&amp;#39;t suck</title><link href="http://www.vicfryzel.com/2011/01/06/finally-blog-software-doesnt-suck" rel="alternate"></link><updated>2011-01-06T00:36:52-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2011/01/06/finally-blog-software-doesnt-suck</id><summary type="html">&lt;p&gt;I followed up on my &lt;a href="http://www.vicfryzel.com/2010/11/12/i-would-give-anything-for-blog-software-that-does-not-suck"&gt;previous post&lt;/a&gt; and wrote some blog software that doesn't suck.  I'm surprised how little time it took me.  It was less than 12 hours from start to finish.  I saved a ton of time by not rewriting the whole plethora of individual services that go with a blog.&lt;/p&gt;
&lt;h2&gt;Foundation&lt;/h2&gt;
&lt;p&gt;The back-end is written on top of &lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt;.  I actually didn't write a single form handler in the entire application, which gives me a happy feeling!  The admin was generated for me (possibly Django's best feature.)  Django also quickly afforded me a lot of other features I'll discuss later.&lt;/p&gt;
&lt;h2&gt;Comments&lt;/h2&gt;
&lt;p&gt;I was able to avoid writing yet another commenting system by just using &lt;a href="http://disqus.com/"&gt;Disqus&lt;/a&gt;, which worked out pretty well.  I've heard mixed reviews of Disqus, but my experience was pretty nice.  Everything was surprisingly skinnable, I'd expected that portion to be locked down somehow, but it wasn't.  The only downside to this is that I lost my existing comment data.  I'm checking if I can write a program to import my old comments into Disqus.&lt;/p&gt;
&lt;h2&gt;Search&lt;/h2&gt;
&lt;p&gt;For search, I of course used &lt;a href="http://www.google.com/cse/"&gt;Google Custom Search&lt;/a&gt;.  This is a given, I think :D  It's already 100% better than the search of my previous blog software.&lt;/p&gt;
&lt;h2&gt;Articles&lt;/h2&gt;
&lt;p&gt;I implemented &lt;a href="http://daringfireball.net/projects/markdown/"&gt;Markdown&lt;/a&gt; support, with &lt;a href="http://pygments.org/"&gt;Pygments&lt;/a&gt; integration and syntax highlighting for code samples I post.  The syntax highlighting support is now so much better, because Markdown automatically escapes HTML entities in code samples, which saves me a ton of &amp;amp;lt; &amp;amp;gt; crap that makes things unreadable on my end.&lt;/p&gt;
&lt;h2&gt;Performance&lt;/h2&gt;
&lt;p&gt;Full page caching (assuming I'm ever popular enough to need such a thing, heh.)  Along with this, there are full sets of cache headers sent, so that subsequent requests only happen if needed.&lt;/p&gt;
&lt;h2&gt;Layout, templates&lt;/h2&gt;
&lt;p&gt;HTML5 &amp;amp; CSS3 for everything UI related.  This was one of the easiest parts.  I have to thank my colleague, &lt;a href="http://paulirish.com/"&gt;Paul Irish&lt;/a&gt; for creating the &lt;a href="http://html5boilerplate.com/"&gt;HTML5 Boilerplate&lt;/a&gt;.  He made it drop dead easy to start a new set of UI templates.  He saved me hours.  If you're not using the boilerplate, you should be.&lt;/p&gt;
&lt;p&gt;Along with the HTML5 came a new site layout and design, which appeals to my &lt;a href="http://www.becomingminimalist.com/"&gt;minimalist&lt;/a&gt; tastes.  Everything scales much better now, with percentage sizes used everywhere with the exception of the fixed width center column.&lt;/p&gt;
&lt;h2&gt;Fonts&lt;/h2&gt;
&lt;p&gt;You'll always see the same font, because I used the &lt;a href="http://code.google.com/webfonts"&gt;Google Fonts API&lt;/a&gt; to ensure everyone gets Droid Sans and Droid Mono.  It's nice to know that everyone will now see the same fonts, which I think is really the first time this has been able to happen on the web.&lt;/p&gt;
&lt;h2&gt;Content license&lt;/h2&gt;
&lt;p&gt;I relicensed my content from all rights reserved to &lt;a href="http://creativecommons.org/licenses/by-sa/3.0/"&gt;Creative Commons Attribution-ShareAlike 3.0 Unported License&lt;/a&gt; which is an effort on my part to ensure people realize the stuff I post here is for common use.&lt;/p&gt;
&lt;h2&gt;Files and images&lt;/h2&gt;
&lt;p&gt;File uploads suck.  I wasn't really willing to deal with image uploads, while concurrently editing an article.  Instead, I've decided to just use a &lt;a href="http://picasaweb.google.com/"&gt;Picasa Web Album&lt;/a&gt; for photo uploads.  This is actually spectacular for one little known reason: thumbnail generation.  See, when you click &lt;em&gt;Link to this photo&lt;/em&gt; from an image in Picasa, you can get an embed code that looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::html
&amp;lt;a href="http://picasaweb.google.com/lh/photo/qQwGxcQvLZ-xZC2CKJ2MumKqv694TzBB3MR4gOkeEvI?feat=embedwebsite"&amp;gt;
  &amp;lt;img src="http://lh6.ggpht.com/_qaM_hTDX9xA/TSQUVuY7GjI/AAAAAAAABP4/l_BqPPzTKfY/s144/2010-06-23-001231_838x1048_scrot.png" height="144" width="101" /&amp;gt;
&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But in the img tag, notice the &lt;strong&gt;s144&lt;/strong&gt; in the URL.  If you modify that &lt;em&gt;144&lt;/em&gt;, you actually change the width of the generated image on the fly.  This allows you to have instant, dynamically sized thumbnails for your needs.  That's not a documented feature or guaranteed to stick around, but it's really useful.&lt;/p&gt;
&lt;h2&gt;Annoyances&lt;/h2&gt;
&lt;p&gt;Migrating my old posts out of Typo was kind of a pain.  I had posts in mixed formats (Textile, Markdown, raw HTML.)  I had to rewrite some things, but everything is Markdown now.  Also, I use DreamHost, and setting up a Python application on Passenger is a pretty poor experience.  There was a 500 in my application, but it took me an hour to find it, because if your application dies, there's no simple way to get a stack trace out of Passenger.  Things seem to be fine now, but if something goes wrong I'll have a hell of a time figuring out what's going on.&lt;/p&gt;
&lt;p&gt;Django also needs to fix their interface surrounding get_absolute_url() in models.  Seriously.  The URL that you must return from that method is not absolute, meaning you're left to add the scheme and hostname yourself to all of your URLs.  That leads to another problem with very poor Django sites integration, it's just a huge mess.  Luckily, long ago, I wrote a &lt;a href="http://djangosnippets.org/snippets/1713/"&gt;Django snippet&lt;/a&gt; that I think solves this problem quite elegantly.  I'd forgotten about it, until I ran into this exact problem again.&lt;/p&gt;
&lt;h2&gt;Code&lt;/h2&gt;
&lt;p&gt;If you're interested in the source code, let me know.  I'm debating whether or not to release the code for this, simply because I don't want to add to the graveyard of dead blog code bodies in the world.  Plus, the application here isn't as advanced.  I've pushed Django to its limits and extended it before to serve &lt;a href="http://ebaumnation.com/"&gt;high traffic media sites&lt;/a&gt;, and by no means is this blog nearly as advanced.&lt;/p&gt;</summary></entry><entry><title>I would give anything for blog software that does not suck</title><link href="http://www.vicfryzel.com/2010/11/12/i-would-give-anything-for-blog-software-that-does-not-suck" rel="alternate"></link><updated>2010-11-12T20:19:00-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2010/11/12/i-would-give-anything-for-blog-software-that-does-not-suck</id><summary type="html">&lt;p&gt;In my last blog post I used an image.  This, apparently, is a big deal for a lot of blogging software.  I currently use &lt;a href="https://github.com/fdv/typo/wiki/"&gt;Typo&lt;/a&gt;.  It gets things done, but not without jumping through hoops.  I have lots of editing issues, like mixed HTML and textile syntax, a preview function that doesn't work, and I can't easily insert an image into the post.  I thought that when I upgraded to Typo, I was actually upgrading.&lt;/p&gt;
&lt;p&gt;I uploaded an image, and Typo was unable to generate a thumbnail for it, which in turn broke the editor UI.  I can't believe modern blogging software has been around for more than a decade, and still, I have trouble dropping an image into a post.  It is so damned frustrating.  I remember having these issues in 2002/2003 with MoveableType and b2.  Textpattern had the same issue when I used it.  And my CMS before that had the same issue.  What the hell is so difficult about this?&lt;/p&gt;
&lt;p&gt;I've considered switching to &lt;a href="http://www.posterous.com/"&gt;Posterous&lt;/a&gt;, but at the moment I don't like the toolbar branding that that entails.  At least if I did switch, it seems I could easily post non-textual content, which after all of this makes it seem like the best thing ever.&lt;/p&gt;
&lt;p&gt;I think there's a void in the open source blogging software market for a tool that, without any hassle, allows engineers to write posts about code and occasionally use an image without losing their mind in the process.  I've sat down to "fix" this problem on maybe 7 or 8 different occasions in my life, and have yet to pursue it enough to get something going.&lt;/p&gt;
&lt;p&gt;The reason for this is that the amount of shit that would have to go into such a product to make it usable for everyone is just a nuisance.  There's a whole install process, database population, theme support, plugin system, WYSIWYG editor, &lt;em&gt;working image uploader&lt;/em&gt;, etc.  I don't need or want any of that stuff (save the image uploader.)  I just want something that is easy enough to use so that I don't spend the majority of my time in meta fixing stupid issues with the system, as opposed to just writing what I want to say.&lt;/p&gt;
&lt;p&gt;Maybe Posterous will just release something premium so that I can hand them $5 and move on with life.&lt;/p&gt;</summary></entry><entry><title>Doing some useful things with Maps in Google Apps Script</title><link href="http://www.vicfryzel.com/2010/11/11/doing-some-useful-things-with-maps-in-google-apps-script" rel="alternate"></link><updated>2010-11-11T20:08:00-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2010/11/11/doing-some-useful-things-with-maps-in-google-apps-script</id><summary type="html">&lt;p&gt;At the &lt;a href="http://sites.google.com/site/appsscripthackathonncsu/"&gt;NCSU Apps Script Hackathon&lt;/a&gt;, a bunch of people were trying to do things in &lt;a href="http://code.google.com/googleapps/appsscript/"&gt;Google Apps Script&lt;/a&gt; with &lt;a href="http://maps.google.com/"&gt;Google Maps&lt;/a&gt;.  There were tons of great use cases for this.  One developer wanted to pull a feed of all &lt;a href="http://www.groupon.com/"&gt;Groupon&lt;/a&gt; deals, and display their locations on a map so that the user could quickly and easily browse the closest ones.&lt;/p&gt;
&lt;p&gt;Although the documentation is a bit on the sparse side, the maps API in Apps Script is pretty capable.  It essentially generates a static image of a map, with various features you give it.  But there are some nice things you can do prior to generating the image.&lt;/p&gt;
&lt;p&gt;Here is a quick function to generate and show a map with two markers, and then display that map in a dialog to the user.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::javascript
function generateMap() {
  var address = "111 8 Ave., New York, NY 10011";
  var mapUrl = Maps.newStaticMap()
      .setMarkerStyle(Maps.StaticMap.MarkerSize.MID,
                      Maps.StaticMap.Color.RED,
                      "A")
      .addMarker(address)
      .setMarkerStyle(Maps.StaticMap.MarkerSize.MID,
                      Maps.StaticMap.Color.RED,
                      "B")
      .addMarker("17 st and 8 ave, new york, ny")
      .setCenter(address)
      .setSize(500, 500)
      .getMapUrl();
  var ui = UiApp.createApplication();
  ui.setTitle("Map");
  var panel = ui.createFlowPanel()
      .setSize("500px", "500px");
  panel.add(ui.createImage(mapUrl));
  ui.add(panel);
  ui.setHeight(500);
  ui.setWidth(500);
  SpreadsheetApp.getActiveSpreadsheet().show(ui);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is nice because you could populate those markers in a variety of ways.  If you have a spreadsheet full of location information (do you work for a real estate or delivery company?) then this would make a great feature to add to your company's spreadsheets.  You also get some pretty powerful address matching from Google Maps, in case you don't have a complete address each time.&lt;/p&gt;
&lt;p&gt;If you run the above function, you get this:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/VPpSiuV4603A_KKt7M9kiA?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_qaM_hTDX9xA/TSP7F0tnWxI/AAAAAAAABPc/Euvs4V8Pknw/s800/Screen_shot_2010-11-11_at_11.01.00_PM.png" height="509" width="475" alt="Result of generateAndShowMap()"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Another problem some developers tried to solve was determining the timezone of an address based on the latitude and longitude of the address.  This is also something the maps API can give you, but again the documentation is a little sparse.&lt;/p&gt;
&lt;p&gt;Taking the previous example, here we get the latitude and longitude in two lines of code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::javascript
function getLatitudeLongitude() {
  var geocode = Maps.newGeocoder()
      .geocode("111 8 ave, new york, ny 10011");
  // See http://goo.gl/5mr1N for reference
  Logger.log(geocode.results[0].geometry.location);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There you can see that we created a geocoder from the maps API, and pulled the latitude and longitude for the given address.&lt;/p&gt;
&lt;p&gt;There is a lot more you can do, and the Maps portion of Apps Script is documented in the &lt;a href="http://code.google.com/googleapps/appsscript/service_maps.html"&gt;reference guide&lt;/a&gt;.&lt;/p&gt;</summary></entry><entry><title>On Vim</title><link href="http://www.vicfryzel.com/2010/06/28/on-vim" rel="alternate"></link><updated>2010-06-28T22:09:00-04:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2010/06/28/on-vim</id><summary type="html">&lt;p&gt;I just read Brett Hoerner's &lt;a href="http://bretthoerner.com/blog/2010/jun/11/emacs/"&gt;blog post entitled "On Emacs"&lt;/a&gt; and it yielded a response from me!&lt;/p&gt;
&lt;p&gt;Let me start by saying that I love vim for numerous reasons, but here are the major ones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;vim makes amazing use of the &lt;a href="http://en.wikipedia.org/wiki/Touch_typing#Home_row"&gt;home row&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Single_Unix_Specification"&gt;SUS&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/POSIX"&gt;POSIX&lt;/a&gt; make it one of the most widely available editors to ever grace a terminal&lt;/li&gt;
&lt;li&gt;vim is modal, meaning you're in one mode at a time (e.g. insert mode versus command mode)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I used to use Emacs.  I've got nothing really against it.  Emacs gets things done.  It's just that in my opinion, vim gets things done faster.&lt;/p&gt;
&lt;p&gt;I'm in love with not taking my hands off the home row.  In Xmonad, all of the key bindings are based on Alt, meaning my thumb can tap Alt, while my other fingers rest on the home row.  That means I can transition between editors and windows and make changes while usually never having to leave the home row.  Examples of this include a key sequences like dd, Alt+k, etc.  I've even got the key sequence 'jj' bound to be ESC, so that I don't have to reach for the escape key.&lt;/p&gt;
&lt;p&gt;This can be contrasted with Emacs using an example:  text search.  Search for the word "cat".  Emacs: C-x-s cat.  Vim: /cat.  No reaching for Control, which puts your fingers in an awkward position and off the home row, no key sequence, full regex support off the bat, and so on.&lt;/p&gt;
&lt;p&gt;Brett makes a great point in his post, stating that step 1 of using Emacs is to customize it.  Unfortunately, when I learned Emacs in the mid-90s, my step 1 was learning to navigate, learning to copy/paste, etc.  That time period made it especially hard to get information on how to customize it.  And despite the advent of good search engines, I think this still holds: users coming into Emacs are overwhelmed just trying to get things done and don't "have time" to customize things they don't like.  Customization comes later.&lt;/p&gt;
&lt;p&gt;Brett makes another excellent point in stating that editing a vimrc is difficult.  I feel Emacs/Elisp are equally at fault here.  I've found that one's ability to customize their Emacs or Vim config is directly correlated to the size of their beard.  I have a small beard, and assuming that correlation is causation, I thus limiting my ability to edit my vimrc with changes that I'd really find useful (example: some-key-combo =&amp;gt; auto-format all source code in file;  Eclipse, I'm looking at you!)  And don't newbs find more sense in vimrc speak?  Assuming you don't learn Lisp prior to your Emacs years, Emacs configuration can be pretty daunting.  But, I bet 99.9% of all vim users can read a vimrc file with some semblance of understanding.  Moreover, I bet those same people can copy/paste portions from other vimrc files and get up and going a bit more quickly.&lt;/p&gt;
&lt;p&gt;Besides all of these efficiency things, one must also consider the breadth of the vi/m install base.  I can go to any *NIX terminal booted after I was born and find some flavor of vi.  This isn't the case for Emacs.&lt;/p&gt;
&lt;p&gt;Lastly, we've got modal editing.  This is where vim really shines, in my opinion.  Insert mode is for inserting.  There are tons of little conveniences for popping into insert mode in vim, often only differing by how they place the cursor.  And those conveniences are available for every command mode command I'm aware of.  Add visual mode onto this, and you've got the complete package for navigating while editing quickly.  The part that turns people off is switching between modes quickly.  They don't know all the nuance shortcuts that make going from visual mode to insert mode to command mode extremely fast.  People tend not to learn these because modal editing confuses them, so I think there's a wall that people hit when they want to advance beyond &lt;code&gt;i =&amp;gt; ESC =&amp;gt; hjkl =&amp;gt; i =&amp;gt; ESC =&amp;gt; repeat.&lt;/code&gt;  0, $, ^, d$, d0, yy, dd, p, P, {, }, n, N, v, etc.  These are all important basic commands that are really what add productivity.  If a user fires up vim and exclusively uses i, h, j, k, l, the experience is going to suck.  It's the commands that move between modes that make vim sparkle.  Also, as I said, binding 'jj' to ESC helps a lot.  In Emacs, since there are no such modes (there are modes, but the term mode means something different in the Emacs context) performing all of these operations must be a much more complicated key sequence.  By simply wrapping a context around a key, we avoid long key sequences and command keys altogether.&lt;/p&gt;
&lt;p&gt;Just my two cents :D&lt;/p&gt;</summary></entry><entry><title>Obtaining a beautiful, usable xmonad configuration</title><link href="http://www.vicfryzel.com/2010/06/27/obtaining-a-beautiful-usable-xmonad-configuration" rel="alternate"></link><updated>2010-06-27T00:11:00-04:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2010/06/27/obtaining-a-beautiful-usable-xmonad-configuration</id><summary type="html">&lt;p&gt;I've spent a lot of time perfecting my workspace;  I spend a ton of time at a computer, and so I'm extremely invested in how my tools perform.  A window manager is a pretty important tool, and my window manager of choice is &lt;a href="http://xmonad.org/"&gt;xmonad&lt;/a&gt;.  Over time, I feel my &lt;a href="http://xmonad.org/"&gt;xmonad&lt;/a&gt; configuration and setup has evolved into something really nice.&lt;/p&gt;
&lt;p&gt;Why would someone use a tiling window manager like &lt;a href="http://xmonad.org/"&gt;xmonad&lt;/a&gt;?  The short answer is usually efficiency.  People spend a lot of time organizing windows, and using their mouse.  If you could instead never take your fingers off the keyboard (for the most part,) your efficiency would go up.  This won't be true at first as people learn key bindings, but after awhile you become drastically faster at the mundane parts of computing, like switching between windows, or organizing them in different ways.  This approach is definitely more minimal, but I'd recommend this if you spend your day in vim, emacs, terminals, or other text-heavy applications.  Even Gmail has key bindings so that I don't have to touch my mouse.&lt;/p&gt;
&lt;p&gt;Other perks of using &lt;a href="http://xmonad.org/"&gt;xmonad&lt;/a&gt; include things like &lt;a href="http://code.haskell.org/~arossato/xmobar/"&gt;xmobar&lt;/a&gt;, which is surprisingly useful, as it gives tons of information about the state of &lt;a href="http://xmonad.org/"&gt;xmonad&lt;/a&gt;, your system, and your local weather, without being at all intrusive.  To start programs, you'll want to use something like &lt;a href="http://tools.suckless.org/dmenu/"&gt;dmenu&lt;/a&gt;, which auto-completes command names as you type.&lt;/p&gt;
&lt;p&gt;If you've never used &lt;a href="http://xmonad.org/"&gt;xmonad&lt;/a&gt;, then this post is intended to help you get going.  Otherwise if you're an avid user, then this post will give you a consistent, good looking setup that you'll hopefully find usable and better than the &lt;a href="http://xmonad.org/"&gt;xmonad&lt;/a&gt; defaults.&lt;/p&gt;
&lt;p&gt;Here's a screenshot from my workstation:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/avF9KtVKhbHSe254NAByOA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_qaM_hTDX9xA/TSQMLFduT0I/AAAAAAAABPk/gnD8wD6ZfDs/s600/xmonad_screenshot.png" height="191" width="600" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I've heard a few comments on how nice everything looks, so I took some time to release the necessary configuration files and scripts in a &lt;a href="http://github.com/vicfryzel/xmonad-config"&gt;github project&lt;/a&gt;.  Why is this nice?  Because the color scheme is consistent, the layouts are scalable, and the key combinations are standard.  If you use the &lt;a href="http://blog.infinitered.com/entries/show/6"&gt;IR_Black theme&lt;/a&gt; for vim or your terminal, you'll notice even more consistency throughout.&lt;/p&gt;
&lt;p&gt;I'll run through really quickly how to set this up.&lt;/p&gt;
&lt;p&gt;This set of configuration and scripts has the following requirements, but should work with other versions of these requirements (minor modifications required for older versions of xmonad or xmobar.)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;xmonad 0.9.1 or 0.9.2&lt;/li&gt;
&lt;li&gt;xmonad-contrib 0.9.1 or 0.9.2&lt;/li&gt;
&lt;li&gt;xmobar 0.11.1 or 0.13&lt;/li&gt;
&lt;li&gt;trayer 1.0&lt;/li&gt;
&lt;li&gt;dmenu 4.0&lt;/li&gt;
&lt;li&gt;yeganesh 2.2&lt;/li&gt;
&lt;li&gt;scrot 0.8&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To install these on an &lt;a href="http://www.archlinux.org/"&gt;Arch Linux&lt;/a&gt; machine, run:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::bash
sudo pacman -S xmonad xmonad-contrib xmobar trayer dmenu scrot \
    cabal-install
cabal update
cabal install yeganesh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, clone the &lt;a href="http://github.com/vicfryzel/xmonad-config"&gt;github repository&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::bash
cd
mv .xmonad .xmonad.orig
git clone git@github.com:vicfryzel/xmonad-config.git .xmonad
echo "export PATH=\$PATH:~/.cabal/bin:~/.xmonad/bin" &amp;gt;&amp;gt; ~/.bashrc
source ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now all you have to do is start xmonad.  The way you do this will vary, but if you're using something like &lt;a href="http://slim.berlios.de/"&gt;SLiM&lt;/a&gt;, then just use the .xinitrc provided with the configuration you already downloaded:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::bash
mv ~/.xinitrc ~/.xinitrc.orig
ln -s ~/.xmonad/bin/xinitrc ~/.xinitrc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Adjust ~/.xinitrc as needed (e.g. if you don't use &lt;a href="http://www.google.com/chrome"&gt;Google Chrome&lt;/a&gt; or xscreensaver.)&lt;/p&gt;
&lt;p&gt;That's it!  You should now have a desktop looking like the screenshot above.&lt;/p&gt;
&lt;p&gt;If you're new to xmonad, the key combinations can be daunting, so here are some of them to get you started:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Alt+p: Run dmenu.  After it's running, start typing a command and hit enter&lt;/li&gt;
&lt;li&gt;Alt+Shift+Enter: Launch a terminal window&lt;/li&gt;
&lt;li&gt;Alt+1, Alt+2, ..., Alt+9:  Switch to workspace N&lt;/li&gt;
&lt;li&gt;Alt+w: Switch to the left screen&lt;/li&gt;
&lt;li&gt;Alt+e: Switch to the right screen&lt;/li&gt;
&lt;li&gt;Alt+j or Alt+Tab: Switch to the next window&lt;/li&gt;
&lt;li&gt;Alt+k: Switch to the previous window&lt;/li&gt;
&lt;li&gt;Alt+Space: Cycle through layouts for the current screen's windows&lt;/li&gt;
&lt;li&gt;Alt+Enter: Make the currently active window a master window&lt;/li&gt;
&lt;li&gt;Alt+,: Increase the number of windows in the master area&lt;/li&gt;
&lt;li&gt;Alt+.: Decrease the number of windows in the master area&lt;/li&gt;
&lt;li&gt;Alt+m: Switch to the master window&lt;/li&gt;
&lt;li&gt;Alt+Shift+j: Move the currently active window forward in the layout&lt;/li&gt;
&lt;li&gt;Alt+Shift+k: Move the currently active window backward in the layout&lt;/li&gt;
&lt;li&gt;Alt+l: (That's an L.) Make the master area window bigger&lt;/li&gt;
&lt;li&gt;Alt+h: Make the master window area smaller&lt;/li&gt;
&lt;li&gt;Alt+Ctrl+l:  (That's an L.)  Lock the screen with xscreensaver&lt;/li&gt;
&lt;li&gt;Alt+Left Mouse Button+Drag: Untile the selected window and move it&lt;/li&gt;
&lt;li&gt;Alt+t: Move the currently active window back into tiling&lt;/li&gt;
&lt;li&gt;Alt+Right Mouse Button+Drag: Tile and resize the selected window&lt;/li&gt;
&lt;li&gt;Alt+q: Reload the xmonad configuration&lt;/li&gt;
&lt;li&gt;Alt+Shift+q: Exit xmonad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;People are sometimes intimidated by all of these shortcuts and the new style of interface.  Remember that the currently active window will be surrounded by a red border.  Also, there are a series of layouts you can use.  Alt+Space makes cycling between them easy.  I recommend you write the key combinations down or print them out, that way if you forget you won't be stuck.  For things like watching a movie, just fire up mplayer and hit 'f'.  Fullscreen mode works just fine.  Otherwise if you don't want to fullscreen and you don't want to tile the video, just Alt+Left Click+Drag, as described above.&lt;/p&gt;
&lt;p&gt;Once you are all setup you should:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modify ~/.xmonad/xmobar.hs to show the correct weather for your location&lt;/li&gt;
&lt;li&gt;Modify ~/.xmonad/xmonad.hs and ~/.xinitrc as needed if you don't use xscreensaver, Google Chrome, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For further reading, see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://xmonad.org/documentation.html"&gt;xmonad documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://haskell.org/haskellwiki/Xmonad/Config_archive"&gt;xmonad config archive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.haskell.org/~arossato/xmobar/"&gt;xmobar documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let me know if you have any questions, I hope this has made xmonad better for you!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update (Jun 28):&lt;/em&gt; &lt;a href="http://github.com/MasseR"&gt;Mats Rauhala / MasseR&lt;/a&gt; has been kind enough to improve the bin/dmenu script to not crash some systems.  +1 to him :)  I've merged his changes into the github repo mentioned in this post.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update (Nov 12):&lt;/em&gt; An anonymous user pointed out the github clone URL I gave was wrong.  They were right, I've fixed it.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update (Sep 11 2011):&lt;/em&gt; Updated installation instructions for latest version of configuration in &lt;a href="https://github.com/vicfryzel/xmonad-config"&gt;repository&lt;/a&gt;.  Also :%s/Xmonad/xmonad/g.&lt;/p&gt;</summary></entry><entry><title>Better fonts in your terminal, vim, etc</title><link href="http://www.vicfryzel.com/2010/06/22/better-fonts-in-your-terminal-vim-etc" rel="alternate"></link><updated>2010-06-22T21:15:00-04:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2010/06/22/better-fonts-in-your-terminal-vim-etc</id><summary type="html">&lt;p&gt;If you're like me and you spend all day staring at text on a screen, there are numerous things you consider important.  Of those things, readability is paramount.  I've adopted a favorite configuration of fonts that I find so beneficial that I thought I'd share.  Here, I'll discuss the &lt;a href="http://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released"&gt;Envy Code R&lt;/a&gt; font and how to make it good on an LCD monitor.&lt;/p&gt;
&lt;p&gt;I run &lt;a href="http://www.archlinux.org/"&gt;Arch Linux&lt;/a&gt;, so I'll describe how to do everything here in Arch, but most of it is applicable to other distros.  Before we begin, we'll be using some packages out of the &lt;a href="http://aur.archlinux.org/"&gt;AUR&lt;/a&gt;, so your first step is to install &lt;a href="http://aur.archlinux.org/packages.php?ID=33378"&gt;packer&lt;/a&gt;, an &lt;a href="http://wiki.archlinux.org/index.php/AUR_Helpers"&gt;AUR helper&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::bash
wget http://aur.archlinux.org/packages/packer/packer.tar.gz
tar -xzvf packer.tar.gz
cd packer
makepkg
# The following may be slightly different if the version changes
sudo pacman -U packer-20100622-1-any.pkg.tar.xz &amp;lt;/pre&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There are many programming fonts to choose from.  My favorite is Envy Code R, but yours might be different.  Here are some popular fonts you can choose from that all have AUR packages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released"&gt;Envy Code R&lt;/a&gt;: ttf-envy-code-r&lt;/li&gt;
&lt;li&gt;&lt;a href="http://leonardo-m.livejournal.com/77079.html"&gt;Incosolata-g&lt;/a&gt;: ttf-inconsolata-g&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.droidfonts.com/"&gt;Droid Sans Mono&lt;/a&gt;: ttf-droid&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.proggyfonts.com/"&gt;Proggy Fonts&lt;/a&gt;: proggyfonts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For some really good font reviews, see &lt;a href="http://hivelogic.com/articles/top-10-programming-fonts"&gt;Hivelogic&lt;/a&gt; and &lt;a href="http://www.thatwebguyblog.com/post/5_good_programming_fonts"&gt;thatwebguyblog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Once you've settled on a font that you like, install it with the following command, replacing the package name as appropriate.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::bash
sudo packer -S ttf-envy-code-r
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Fire up your terminal and select your new font.  If you use gnome-terminal, that means right click on your terminal, select Profiles &amp;gt; Profile Preferences, click on the button next to Font:, and select your new font.  On a 1680x1050 LCD, I find the ideal size for Envy Code R is 10pt regular.  In gnome-terminal, you should see the font change immediately after hitting OK.&lt;/p&gt;
&lt;p&gt;You might be thinking "it's a little fuzzy."  If so, it's because anti-aliasing is turned on, and you don't want it turned on for a programming font like this.  This is pretty quick and easy to fix.  The following steps are taken from the &lt;a href="http://wiki.archlinux.org/index.php/Font_Configuration#LCD_filter_patched_packages"&gt;Arch Linux Font Configuration Guide&lt;/a&gt;.  Skip this step if you're on a CRT.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::bash
sudo pacman -Rd libxft cairo
sudo packer -S fontconfig-lcd cairo-lcd
sudo pacman -S libxft-lcd
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now that we've got LCD patched packages installed, let's disable anti-aliasing for our new font.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::bash
mkdir ~/.fonts.conf.d
vim 10-no-aa-envy-code-r.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the file 10-no-aa-envy-code-r.conf, paste the following XML and save.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::xml
&amp;lt;?xml version="1.0"?&amp;gt;
&amp;lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&amp;gt;
&amp;lt;fontconfig&amp;gt;
&amp;lt;match target="font"&amp;gt;
  &amp;lt;test name="family"&amp;gt;
    &amp;lt;string&amp;gt;Envy Code R&amp;lt;/string&amp;gt;
  &amp;lt;/test&amp;gt;
  &amp;lt;edit name="antialias" mode="assign"&amp;gt;
    &amp;lt;bool&amp;gt;false&amp;lt;/bool&amp;gt;
  &amp;lt;/edit&amp;gt;
  &amp;lt;edit name="hinting"&amp;gt;
    &amp;lt;bool&amp;gt;false&amp;lt;/bool&amp;gt;
  &amp;lt;/edit&amp;gt;
&amp;lt;/match&amp;gt;
&amp;lt;/fontconfig&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you're not using Envy Code R, replace as appropriate with something like "Inconsolata-g" or "Droid Sans Mono".  Be warned, Inconsolata-g looks bad without anti-aliasing, at least on my screen.&lt;/p&gt;
&lt;p&gt;Once the file is there, restart your terminal, and voila:  you should have no more fuzziness.&lt;/p&gt;
&lt;p&gt;Let me know your favorite fonts and configurations, I'm always looking to improve my setup!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/qQwGxcQvLZ-xZC2CKJ2Mug?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_qaM_hTDX9xA/TSQUVuY7GjI/AAAAAAAABPw/Bna_ALCnprs/s800/2010-06-23-001231_838x1048_scrot.png" height="675" width="475" alt="Example of Envy Code R" /&gt;&lt;/a&gt;&lt;/p&gt;</summary></entry><entry><title>Google I/O 2010</title><link href="http://www.vicfryzel.com/2010/05/19/google-io-2010" rel="alternate"></link><updated>2010-05-19T16:05:00-04:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2010/05/19/google-io-2010</id><summary type="html">&lt;p&gt;You can find me at &lt;a href="http://code.google.com/events/io/2010/"&gt;Google I/O 2010&lt;/a&gt; today and tomorrow.  If you've a burning question about Google Apps For Your Domain, Spreadsheets, Sites, Documents List, etc., here's your chance to ask me face to face!&lt;/p&gt;</summary></entry><entry><title>New look and feel</title><link href="http://www.vicfryzel.com/2010/02/07/new-look-and-feel" rel="alternate"></link><updated>2010-02-07T04:27:00-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2010/02/07/new-look-and-feel</id><summary type="html">&lt;p&gt;I've switched from &lt;a href="http://textpattern.com/"&gt;TextPattern&lt;/a&gt; to &lt;a href="http://wiki.github.com/fdv/typo/"&gt;Typo&lt;/a&gt;.  So far I'm loving the change.  I'd been wanting to switch to Typo a long time ago, but either never got a theme going that I liked, or I didn't take the time to set it up in my production environment.&lt;/p&gt;
&lt;p&gt;Things seem to be running much faster.  I think this might be because of DreamHost's use of &lt;a href="http://www.modrails.com/"&gt;Passenger&lt;/a&gt; for Rails apps.  The caching by Typo also seems to be better than TextPattern's.  I've still got support for &lt;a href="http://textism.com/tools/textile/"&gt;Textile&lt;/a&gt;, but have a much better look and feel, and easier to manage UI.  Comments are better spam filtered now, so they should automatically post most of the time.&lt;/p&gt;
&lt;p&gt;This design is adopted from the &lt;a href="http://www.amypink.com/themes/lead-wordpress-theme/"&gt;Lead WordPress Theme&lt;/a&gt;.  I love its minimalism, I'm much happier with how things look now.  I had to migrate the theme for Typo, which was actually pretty easy.  If you'd like a copy of the theme, &lt;a href="/about/"&gt;let me know&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I've also added support for syntax highlighting for my code samples using &lt;a href="http://code.google.com/p/syntaxhighlighter/"&gt;SyntaxHighlighter&lt;/a&gt;.  It's wonderful, except that, in order for &amp;lt; and &amp;gt; characters to be rendered correctly, I have to wrap the code in script tags, which do not degrade well.  Regardless, I like how it looks, much better than before with just using raw pre tags.  Here's a sample of the new highlighting:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::python
class Speaker:
  def speak(self, message):
    print message

if __name__ == "__main__":
  s = Speaker()
  s.speak("Hello world!")&amp;lt;/pre&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I've updated the &lt;a href="/about/"&gt;About&lt;/a&gt; page with more ways to follow me and some new contact information.&lt;/p&gt;</summary></entry><entry><title>X-Sendfile2 Added in Lighttpd 1.4.24</title><link href="http://www.vicfryzel.com/2009/12/02/x-sendfile2-added-in-lighttpd-1-4-24" rel="alternate"></link><updated>2009-12-02T22:11:00-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2009/12/02/x-sendfile2-added-in-lighttpd-1-4-24</id><summary type="html">&lt;p&gt;Regarding my &lt;a href="http://shellsage.com/2009/07/08/lighttpd-x-sendfile-extended"&gt;previous post about X-Sendfile and FastCGI improvements for Lighttpd&lt;/a&gt;, this feature was recently &lt;a href="http://redmine.lighttpd.net/versions/show/20"&gt;added in the Lighttpd 1.4.24 release&lt;/a&gt;.  It is now possible to build an entire pseudostreaming system using Lighttpd and FastCGI, that is much faster than the previous mod_magnet alternative.&lt;/p&gt;</summary></entry><entry><title>Getting Arch Linux fully working with a Samsung N130 Netbook</title><link href="http://www.vicfryzel.com/2009/11/26/getting-arch-linux-fully-working-with-a-samsung-n130-netbook" rel="alternate"></link><updated>2009-11-26T22:25:00-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2009/11/26/getting-arch-linux-fully-working-with-a-samsung-n130-netbook</id><summary type="html">&lt;p&gt;Recently, I purchased an &lt;a href="http://eeepc.asus.com/global/product1101ha.html"&gt;Asus EEE 1101HA netbook&lt;/a&gt;.  My experience getting the video to work on it was horrible and unsuccessful (&lt;a href="http://www.happyassassin.net/2009/01/30/intel-gma-500-poulsbo-graphics-on-linux-a-precise-and-comprehensive-summary-as-to-why-youre-screwed/"&gt;Poulsbo chipset, ugh&lt;/a&gt;,) and other features were really difficult to get working.  Last night I returned it to the store, and picked up a &lt;a href="http://www.samsung.com/uk/consumer/pc-peripherals/notebook-computers/n-series/NP-N130-KA01UK/index.idx?pagetype=prd_detail"&gt;Samsung N130&lt;/a&gt; (in black) for $50 less than the EEE.&lt;/p&gt;
&lt;p&gt;There are two versions of the N130 laptop.  One version of the laptop includes an Atheros wireless device, supported by the ath9k kernel module.  The other version of the laptop (which I received from Best Buy in the US,) includes a Realtek 8192 wireless device which does not have a native Linux driver at this time.  I hear there's one scheduled for the 2.6.32 kernel, but the release date on that version is still unknown.  To work around this problem we'll use &lt;a href="http://sourceforge.net/apps/mediawiki/ndiswrapper/index.php?title=Main_Page"&gt;ndiswrapper&lt;/a&gt; to wrap the Windows XP version of the Realtek 8192E driver, which is a great workaround for now until 2.6.32 comes out.&lt;/p&gt;
&lt;p&gt;This post details how to setup Arch Linux on an N130, along with wireless support, &lt;a href="http://xmonad.org/"&gt;xmonad&lt;/a&gt;, and a bunch of apps.  This setup is specific to what I use, but it works very well for me.  I especially recommend this setup (read: xmonad) because of the N130's small screen;  xmonad is a great tiling window manager to use on a small laptop screen that helps you to avoid having to use the touchpad.  Additionally, this post gives my specific config files and scripts that I use every day in my desktop environment (modified here for laptop use.)  These have been requested of me before by users on &lt;a href="http://reddit.com"&gt;Reddit&lt;/a&gt;, so I thought it'd be appropriate to publish them here.&lt;/p&gt;
&lt;p&gt;The first thing I did after getting home with the N130 was make an &lt;a href="http://wiki.archlinux.org/index.php/Install_from_USB_stick"&gt;Arch flash drive and install Arch from it&lt;/a&gt;.  At first, I installed Arch with the &lt;a href="http://wiki.archlinux.org/index.php/System_Encryption_with_LUKS_for_dm-crypt"&gt;root and swap partitions encrypted&lt;/a&gt;.  Let me mention that if you want to be at all productive on the N130, you cannot encrypt the root or swap partitions (this was also true for the 1101HA.)  If you do encrypt the root and swap partitions, you'll notice your disk wait jump through the roof to more than 40% when doing simple operations like &lt;code&gt;pacman -Ss xorg&lt;/code&gt; and kcryptd will be the top process on your system, for sure.  When I realized I couldn't do anything productive with this lag, I reinstalled with unencrypted root and swap partitions, and just encrypted the /home partition.  This turned out to be much faster, obviously, and I recommend this route, despite the unencrypted swap and root being a potential vulnerability.&lt;/p&gt;
&lt;p&gt;So, run through the Arch installer as you normally would, nothing fancy here.  You'll need a wired connection to download packages until we get the wireless working.  Remember that when using the 2009.08 Arch installer to setup encrypted partitions, you must create your /etc/crypttab file yourself before booting into your new system.&lt;/p&gt;
&lt;p&gt;Boot into your new system, login as root, and install relevant packages and configurations.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::bash
pacman -Syu

# First we'll install the packages we need
pacman -S hal xorg-server xf86-video-intel xf86-input-synaptics \
    xf86-input-mouse xf86-input-keyboard xorg-xinit \
    xorg-fonts-misc xorg-fonts-type1 xorg-fonts-100dpi \
    xorg-fonts-75dpi ttf-ms-fonts ttf-dejavu \
    ttf-linux-libertine ttf-freefont xmonad ndiswrapper \
    hwdetect xmobar slim archlinux-themes-slim \
    slim-themes terminal pidgin firefox flashplugin vim \
    gvim ctags unzip dbus alsa-utils networkmanager \
    network-manager-applet gnome-power-manager xscreensaver \
    dmenu thunar thunar-volman banshee cheese wireless_tools

# Next add a normal user for yourself
useradd -m -G "wheel,games,network,video,audio,optical,floppy,\
storage,scanner,power,users,hal,dbus" youruser

# Make your user a sudoer
vim /etc/sudoers # Uncomment line 27 to make it easier to sudo

# Choose a theme for the slim graphical login manager
ls /usr/share/slim/themes
vim /etc/slim.conf # Add a line saying:
                   # "current_theme archlinux-simplyblack"

# Now we'll download and install the Realtek 8192e wireless driver
wget -O realtek_8192e_driver.zip http://tinyurl.com/ygtam4a
unzip -d realtek realtek_8192e_driver.zip
ndiswrapper -i realtek/RTL819xP_Driver/WinXP2K/net819xp.inf
ndiswrapper -l
ndiswrapper -m # It's ok if this says module config already contains alias directive
depmod -a
modprobe ndiswrapper
iwconfig  # This should output some info about wlan0

# Next, make a few changes to /etc/rc.conf.

vim /etc/rc.conf
# Ensure the ndiswrapper module is loaded on boot
# Make the MODULES line read:
MODULES=(ndiswrapper)
# Ensure dhcp is the default for your wireless device
# Add a line reading:
wlan0="dhcp"
# Ensure eth0 and wlan0 can be managed by
# networkmanager.  Make the INTERFACES line read:
INTERFACES=(!eth0 !wlan0)
# Ensure hal, dbus, alsa, slim come up on boot
# Make the DAEMONS line read:
DAEMONS=(syslog-ng network hal dbus alsa netfs \
    crond slim)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You must now configure networkmanager.  This is very well documented, so just follow the steps listed &lt;a href="http://wiki.archlinux.org/index.php/Networkmanager#Step_3:_Configuration"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Logout as root, and login as your normal user.  I've a few configuration files and scripts to make your life with X, Xmonad, vim, the system tray, and dmenu easier.  First, setup the appropriate directories.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::bash
mkdir -p ~/.xmonad ~/bin
# Launch some useful applications upon login
wget http://shellsage.com/files/.xinitrc
# Setup vim with syntax highlighting, NERDTree, ctags, etc.
wget http://shellsage.com/files/vim-2009-11-26.tar.bz2
tar -xjvf vim-2009-11-26.tar.bz2
# Download my xmonad and xmobar configurations
cd ~/.xmonad
wget http://shellsage.com/files/xmonad.hs
wget http://shellsage.com/files/xmobar
# Download my scripts to display the sytem tray
# and to make dmenu show up nicely
cd ~/bin
wget http://shellsage.com/files/tray
wget http://shellsage.com/files/dmenu
chmod +x tray dmenu
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Finally, reboot your system (this will make slim and wireless come up on boot,) and you should be all set to login and start using xmonad.  Once logged in, you should see a working battery monitor, network manager applet (with wireless and wired connections working,) xmobar on top, and a bunch of applications ready to go.&lt;/p&gt;
&lt;p&gt;Here are some useful key combinations to get you going if you're unfamiliar with either xmonad or my specific configuration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Alt+1:&lt;/em&gt; Takes you to the "code" workspace where gvim goes by default&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Alt+2:&lt;/em&gt; Takes you to the "term" workspace where terminal goes by default&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Alt+3:&lt;/em&gt; Takes you to the "web" workspace where Firefox goes by default&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Alt+4:&lt;/em&gt; Takes you to the "msg" workspace where Pidgin goes by default&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Alt+5:&lt;/em&gt; Takes you to the "media" workspace where Banshee goes by default&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Alt+Ctrl+l:&lt;/em&gt; Locks the screen with Xscreensaver&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Alt+Shift+Enter:&lt;/em&gt; Opens a terminal&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Alt+Shift+c:&lt;/em&gt; Close the current window&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Alt+k:&lt;/em&gt; Focus the next window in the workspace&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Alt+p:&lt;/em&gt; Run dmenu, from which you can launch applications&lt;/li&gt;
&lt;li&gt;&lt;em&gt;F2 while in vim/gvim:&lt;/em&gt; Open NERDTree&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Alt+p cheese:&lt;/em&gt; Run cheese, allowing you to take photos/videos using the webcam&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The only things I haven't gotten working yet are the Fn (function) keys that control brightness, volume, etc.  If I figure this out I'll add it here.&lt;/p&gt;
&lt;p&gt;If you find any errors in this post or have any questions please let me know.  Good luck with your Samsung N130.&lt;/p&gt;</summary></entry><entry><title>JWZ, Mozilla</title><link href="http://www.vicfryzel.com/2009/09/29/jwz-mozilla" rel="alternate"></link><updated>2009-09-29T13:48:00-04:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2009/09/29/jwz-mozilla</id><summary type="html">&lt;p&gt;I relate to &lt;a href="http://www.jwz.org/gruntle/nscpdorm.html"&gt;this journal&lt;/a&gt; so well that I feel like I wrote it.&lt;/p&gt;
&lt;p&gt;I just had to post that statement somewhere.&lt;br /&gt;
&lt;/p&gt;</summary></entry><entry><title>Recent Activity</title><link href="http://www.vicfryzel.com/2009/09/10/recent-activity" rel="alternate"></link><updated>2009-09-10T01:03:00-04:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2009/09/10/recent-activity</id><summary type="html">&lt;p&gt;I'll use recent activity in no particular order to suffice an update.&lt;/p&gt;
&lt;p&gt;I submitted &lt;a href="http://www.djangosnippets.org/snippets/1713/"&gt;this Django snippet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I created &lt;a href="http://github.com/shellsage/python-oauth/tree/master"&gt;this fork&lt;/a&gt; of &lt;a href="http://github.com/leah/python-oauth/tree/master"&gt;this project&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I increased the font size on &lt;a href="http://www.shellsage.com/"&gt;shellsage.com&lt;/a&gt; because of &lt;a href="http://www.wilsonminer.com/posts/2008/oct/20/relative-readability/"&gt;this very good blog post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I submitted &lt;a href="http://code.djangoproject.com/ticket/11365"&gt;this Django bug&lt;/a&gt;, which, despite protest, has been closed.  I don't think "we don't really have a good way to track 'things we need to do for v2.0'" is a valid reason to close (aka discard) a ticket that details a valid enhancement.  Besides this, the Django project should drop trac and use redmine, github, or bitbucket.&lt;/p&gt;
&lt;p&gt;I switched to gvim from emacs.&lt;/p&gt;
&lt;p&gt;I experimented with &lt;a href="http://pylonshq.com/"&gt;Pylons&lt;/a&gt; and hated it, not because I disliked its architecture or what it had to offer, but because it was extraordinarily difficult for me to implement user authentication without completely rolling my own;  this in my mind is a completely pointless redundancy.  I tried the suggested packages too, there were SQLAlchemy version incompatibilities.  I wish this hadn't been the case, I'd like to try mako templates instead of django templates, I think (yes, I know I can use mako in django, I'll try it sometime.)&lt;/p&gt;
&lt;p&gt;I finished up my work on &lt;a href="http://code.google.com/p/bil"&gt;bil&lt;/a&gt;.  Unfortunately this probably means the project is about to die.&lt;/p&gt;
&lt;p&gt;I'm finishing up my work on &lt;a href="http://code.google.com/p/pcann-time-series"&gt;pcann-time-series&lt;/a&gt;.  The only thing I have left to do is deal with some array indexing issues that have a lot of variables involved.&lt;/p&gt;</summary></entry><entry><title>Bigger Fonts</title><link href="http://www.vicfryzel.com/2009/09/08/bigger-fonts" rel="alternate"></link><updated>2009-09-08T02:50:00-04:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2009/09/08/bigger-fonts</id><summary type="html">&lt;p&gt;I found this &lt;a href="http://www.wilsonminer.com/posts/2008/oct/20/relative-readability/"&gt;blog post&lt;/a&gt; to be of amazing value, I really do see the difference in 16px fonts.  I've changed the fonts on shellsage.com to be 16px and must say I'm in love.  Thanks to Wilson.&lt;/p&gt;</summary></entry><entry><title>lighttpd, X-Sendfile-Extended</title><link href="http://www.vicfryzel.com/2009/07/08/lighttpd-x-sendfile-extended" rel="alternate"></link><updated>2009-07-08T23:08:00-04:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2009/07/08/lighttpd-x-sendfile-extended</id><summary type="html">&lt;p&gt;There is a problem in serving high volume large data files on something like a media web site.  The issue comes in when trying to both manage files on the backend and deliver files quickly to frontend users.&lt;/p&gt;
&lt;p&gt;A common filesystem used to manage large numbers of files is mogilefs, yet mogilefs has no built-in security mechanisms, nor is it capable of serving high volume well.  This is not a fault of mogilefs, as obviously some sort of caching should be used.&lt;/p&gt;
&lt;p&gt;Lighttpd is a common web server used to server large numbers of static files.  It's very good at its job.&lt;/p&gt;
&lt;p&gt;If mogilefs is the backend in our scenario, and lighttpd is the frontend, the major concern comes in getting lighttpd to communicate with mogilefs only when needed, and also getting the two to communicate efficiently.&lt;/p&gt;
&lt;p&gt;Lighttpd supports one mechanism for FastCGI apps to tell it what local file to serve, the X-Sendfile response header.  This is pretty straight forward to use: a request comes in, the FastCGI app parses the URL and pulls the relevant file out of the mogilefs cluster to a local filesystem cache, and then passes the X-Sendfile header to lighttpd, at which point lighttpd serves the file from the local filesystem cache.  This all seems well and good, but when you try to do more advanced serving this solution has drawbacks.&lt;/p&gt;
&lt;p&gt;The first drawback is how to serve a range of data to a user.  This is required for video pseudostreaming: a user tries to seek to a spot in a video in their browser that has not yet been buffered, and thus a new request must be initiated beginning at that new spot in the file.  Lighttpd supports pseudostreaming via the mod_flv_streaming module, but that module really has no ability to cooperate with mod_fastcgi, and in fact is intended entirely to work with only static files being served directly off of disk with no mod_fastcgi middle man.&lt;/p&gt;
&lt;p&gt;The second drawback is how to serve a range of data to a user with an FLV file header prepending the actual file data.  You can't just send it back as the normal response, because lighttpd will overwrite that data with the contents of the file specified by X-Sendfile.&lt;/p&gt;
&lt;p&gt;Thus, there was no good way to connect mogilefs, a local filesystem cache, and lighttpd.  The requirements for a solution were to allow a FastCGI app to fetch a file out of a mogilefs cluster if it did not exist in the local cache, and tell lighttpd to serve the file, optionally from a specific point in the file with all required file headers in place.&lt;/p&gt;
&lt;p&gt;I was able to get a nearly ideal solution in place, but it involved mod_magnet which is slow (processed in lighttpd core.)  Also, since the lua memcache module can't be used within a mod_magnet script because of naming conflicts between the lua socket module and lighttpd's internal lua entities, there is no way to securely generate a temporary name for files in the local system cache.  To work around this, I had to generate file names based on time and the incoming file key from the request which is certainly not ideal and also does not allow the cache to be expired  or cleaned gracefully.&lt;/p&gt;
&lt;p&gt;The obvious solution to me was to patch lighttpd.  Initially, I thought that I'd only have to serve a portion of a file via X-Sendfile to allow for pseudostreaming.  So, I &lt;a href="http://redmine.lighttpd.net/issues/2005"&gt;submitted a patch&lt;/a&gt; to allow for an X-Sendfile-Range header that simply specified a range of bytes to serve from the file.  This patch was applied for the 1.4.23 release, but then removed because...&lt;/p&gt;
&lt;p&gt;I forgot though that this solution had a major drawback (and it was less than ideal for stbuehler, the current main developer of lighttpd.)  One would actually need to have lighttpd serve two files consecutively, in order.  The first file contains the FLV header sent when pseudostreaming, and the second file would be the actual video file (whose range to send would also need to be specified to lighttpd.)&lt;/p&gt;
&lt;p&gt;With some help from the lighttpd developers, we came to the conclusion that the X-Sendfile-Extended header should be implemented, allowing a FastCGI app to specify the response header one or more times in order to have lighttpd serve the respective files off of the local filesystem.  I have recently &lt;a href="http://redmine.lighttpd.net/issues/2008"&gt;submitted a patch&lt;/a&gt; for this feature as well.  The only things remaining on it are for the feature to support the standard HTTP range syntax, and also to have lighttpd interpret comma delimited header values (e.g. X-Sendfile-Extended: 15-5000 /tmp/myfile, 777-2239 /tmp/myotherfile) to conform with the HTTP specification.&lt;/p&gt;
&lt;p&gt;Although a quite fast and capable system is in place using a simple python flup script and lighttpd's mod_magnet, implementing this mechanism once lighttpd stable is patched should drastically improve performance.&lt;/p&gt;</summary></entry><entry><title>Trying to find time to develop bil, neural nets</title><link href="http://www.vicfryzel.com/2009/07/08/trying-to-find-time-to-develop-bil-neural-nets" rel="alternate"></link><updated>2009-07-08T01:20:00-04:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2009/07/08/trying-to-find-time-to-develop-bil-neural-nets</id><summary type="html">&lt;p&gt;I've two outstanding projects to take care of that have been on hold for awhile due to lack of time.  The only thing that's changed is that they can't be on hold much longer.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://code.google.com/p/bil/"&gt;bil&lt;/a&gt; was started in November 2008, and must be finished by August 7, 2009.  I have yet to implement typing, functions, and arrays, and those three things are going to be a pain in the ass, especially given how little time I've got.&lt;/p&gt;
&lt;p&gt;I'm also trying to complete a project determining the most efficient partially connected neural network to learn the next consecutive output of the sine function, given three consecutive, immediately prior points.  To do this, I must evaluate all graphs between 3-1 (3 inputs, 1 output) and 3-3-1 (3 inputs, 3 hidden, 1 output, fully connected.)  It's probably that either 3-1 or a fully connected 3-3-1 will be best, but if there is a partially connected best, it will probably be publish worthy.  The issue with this is finding a library that can implement designed partially connected graphs, of which in my experience, there are none.  My Master's dissertation will hopefully change this in that I plan to extend fann to support this prior to exploring grid computing of distributed neural nets.  But for now, I have to implement this manually, which again requires time I don't have.&lt;/p&gt;
&lt;p&gt;After these, in the near future, I have to complete a project for visualizing data provided by sensors on a sensor network, and also formally submit my pre-proposal for my Master's disseration.&lt;/p&gt;</summary></entry><entry><title>Textie, gedit-vcs transferred to Jesse van den Kieboom</title><link href="http://www.vicfryzel.com/2008/12/23/textie-gedit-vcs-transferred-to-jesse-van-den-kieboom" rel="alternate"></link><updated>2008-12-23T21:02:00-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2008/12/23/textie-gedit-vcs-transferred-to-jesse-van-den-kieboom</id><summary type="html">&lt;p&gt;I've decided to stop work on the gedit-vcs plugins project, and go my own route.  I was uncomfortable with some of the routes that I'd have had to take to implement those plugins, and I don't think they were in line with my own goals.  I've transferred ownership of the project to Jesse van den Kieboom (jessevdk) of gedit.&lt;/p&gt;
&lt;p&gt;I've begun work on a minimal IDE that I call Textie.  It's written with pygtk and pygtksourceview.  My base planned feature set includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A multi-document interface (MDI) via tabs&lt;/li&gt;
&lt;li&gt;Project support via external project files&lt;/li&gt;
&lt;li&gt;All configuration options available on a per-project basis&lt;/li&gt;
&lt;li&gt;SVN integration&lt;/li&gt;
&lt;li&gt;Syntax highlighting themes&lt;/li&gt;
&lt;li&gt;A project file browser, file system browser, open file browser, and symbol browser&lt;/li&gt;
&lt;li&gt;Language independent code completion based on project's configuration&lt;/li&gt;
&lt;li&gt;Configurable keyboard shortcuts on a per-project basis&lt;/li&gt;
&lt;li&gt;The ability to assign keyboard shortcuts to shell scripts to do things like build and run&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My current status is a working window with menus, toolbar, and editor.  When I have something that can actually edit a file and save it (CRUD,) I will start a Google Code Project for it.&lt;/p&gt;</summary></entry><entry><title>gedit-svn</title><link href="http://www.vicfryzel.com/2008/11/23/gedit-svn" rel="alternate"></link><updated>2008-11-23T13:28:00-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2008/11/23/gedit-svn</id><summary type="html">&lt;p&gt;My first gedit plugin is &lt;a href="http://code.google.com/p/gedit-svn/"&gt;gedit-svn&lt;/a&gt;.  I'm working on this plugin initially because I found the &lt;a href="http://github.com/jshipley/gedit-project-manager/tree/master"&gt;gedit-project-manager&lt;/a&gt; plugin, which seems to be actively developed.  In this case, I'm hoping to integrate the two projects in the future.&lt;/p&gt;</summary></entry><entry><title>Possible set of gedit plugins</title><link href="http://www.vicfryzel.com/2008/11/23/possible-set-of-gedit-plugins" rel="alternate"></link><updated>2008-11-23T05:06:00-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2008/11/23/possible-set-of-gedit-plugins</id><summary type="html">&lt;p&gt;I'm in talks on the &lt;a href="http://mail.gnome.org/archives/gedit-list/2008-November/msg00035.html"&gt;gedit mailing list&lt;/a&gt; about using gedit plugins to accomplish project and source code management integrations within gedit.  After my &lt;a href="http://mail.gnome.org/archives/gedit-list/2008-November/msg00038.html"&gt;reply&lt;/a&gt; to Matěj, I'm looking into it more and more and I think I might be able to manipulate anything from gedit from a plugin.  If this is the case, then I think I've found a platform to extend for my perfect IDE.  I'll reply again to Matěj and ask.&lt;/p&gt;</summary></entry><entry><title>More IDE woes</title><link href="http://www.vicfryzel.com/2008/11/21/more-ide-woes" rel="alternate"></link><updated>2008-11-21T19:20:00-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2008/11/21/more-ide-woes</id><summary type="html">&lt;p&gt;I came home today, went to fire up Eclipse, and voila: an alert box saying to read some log file.  I cat the log file, and it's full of random errors about the pydev module failing to load.  I'm not sure how pydev failing to load causes Eclipse to not load, but it seems to be the case.&lt;/p&gt;
&lt;p&gt;I've been looking more into writing an IDE.  After looking around a bit, I found &lt;a href="http://projects.gnome.org/gtksourceview/"&gt;GtkSourceView&lt;/a&gt;.  It's perfect for syntax highlighting.  Beyond this, I'd need SVN support, for which there is &lt;a href="http://pysvn.tigris.org/"&gt;pysvn&lt;/a&gt;.  I'd have to build the project management aspect.&lt;/p&gt;
&lt;p&gt;I found out that gedit has some plugins for project management &lt;a href="http://live.gnome.org/Gedit/Plugins"&gt;here&lt;/a&gt;.  Unfortunately, there is not a subversion plugin.  One of them is a dead project, but the other one, &lt;a href="https://code.launchpad.net/~delfick/+junk/projectMarker"&gt;projectMarker&lt;/a&gt; seems to be alive.  I'll look into that a little bit more.&lt;/p&gt;
&lt;p&gt;Maybe what I really need to do is just write/extend a project plugin for gedit, and write a subversion plugin for gedit...&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update:&lt;/em&gt; I thought I'd mention that the log file generated for that error I got in Eclipse (which is the only way to diagnose/resolve the error) is 2718 lines long, and cites a problem with almost every component of Eclipse.&lt;/p&gt;</summary></entry><entry><title>IDEs, we can do better</title><link href="http://www.vicfryzel.com/2008/11/13/ides-we-can-do-better" rel="alternate"></link><updated>2008-11-13T22:49:00-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2008/11/13/ides-we-can-do-better</id><summary type="html">&lt;p&gt;I use &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; every day.  I've used a wide range of IDEs, but I think Eclipse suits me the best of any current IDE offering.  It's quite capable, regardless of the language I'm developing in.  I'm a regular user of CDT, JDT, PDT, Subclipse, and PyDev.  In the past, I've used Kate, KWrite, KDevelop, Quanta, Gedit, GVim, Bluefish, Anjuta, and probably a few others that I just can't remember.&lt;/p&gt;
&lt;p&gt;Here are my issues with Eclipse:
&lt;em&gt; Deplorable syntax highlighting configuration
&lt;/em&gt; Slow, crashes on me a lot
&lt;em&gt; Especially slow with multiple projects open that use different plugins
&lt;/em&gt; Code completion could be improved
&lt;em&gt; Ease of typing could be drastically improved (the best shortcuts I get are one to delete the current line and one to comment the current line)
&lt;/em&gt; Can't highlight any type of file, no content detection, requires a plugin just to highlight a file
* Horribly slow search.  Search mechanisms do not remember my preferences well.  Keyboard shortcuts don't mesh well with search.&lt;/p&gt;
&lt;p&gt;Here are my issues with all the KDE tools:
&lt;em&gt; If you want persistent project support, you have to use KDevelop/Quanta, which is not the most stable of platforms, in my experience
&lt;/em&gt; No code completion, again unless you use KDevelop/Quanta
&lt;em&gt; No SVN integration, again unless you use KDevelop
&lt;/em&gt; Look like crap unless you're using Qt, which leads me to...
* Now require a KDE4 environment, which I've found to be a gutted version of KDE3 with lip stick (I understand they're progressing and that making such a huge migration in such a huge project is difficult, I'm just stating the nature of the situation)&lt;/p&gt;
&lt;p&gt;Here are my issues with all the GTK tools:
&lt;em&gt; No persistent project support (I think Bluefish might have something for this now)
&lt;/em&gt; No code completion
&lt;em&gt; No SVN integration
&lt;/em&gt; Generally featureless, in that they're really good at being simple, and really bad at anything else&lt;/p&gt;
&lt;p&gt;I need something better.&lt;/p&gt;
&lt;p&gt;I have &lt;a href="http://www.google.com/search?q=linux+ide+svn+code+completion+syntax+highlighting+project+management"&gt;searched&lt;/a&gt;, and searched, and &lt;em&gt;searched&lt;/em&gt; for a better IDE.  Lots of people I know have Macs, and they use TextMate or Coda.  I'm sure that these tools are awesome, but I don't know a whole lot about them.  Additionally, from almost every screencast I've ever seen of someone making a blog in 5 minutes, there is no code completion, SVN integration, or persistent project support (although I doubt myself on this with Coda.)  &lt;a href="http://leahculver.com/2008/11/11/development-environment/"&gt;Leah Culver&lt;/a&gt; speaks very highly of Coda.&lt;/p&gt;
&lt;p&gt;There needs to be a Linux "equivalent."  I don't necessarily know what this would be equivalent to, but I mean to say that there needs to be an IDE that:
&lt;em&gt; Scales well to advanced users
&lt;/em&gt; Is simple to use for simple and advanced tasks
&lt;em&gt; Supports persistent projects
&lt;/em&gt; Supports SCM integration, and SCM actions via keyboard shortcuts
&lt;em&gt; Supports syntax highlighting out of the box for "all" source types, and allows these colors/syntaxes to be configured by distributable themes/descriptors
&lt;/em&gt; Supports code completion for "all" source types, local and shared libs
&lt;em&gt; Has an intuitive MDI, with a file tree browser that can have a selectable root node
&lt;/em&gt; Supports configurable typing macros, and ships with plenty of helpful ones (TextMate)
&lt;em&gt; Is &lt;/em&gt;fast&lt;em&gt;.  It should perform all functions instantaneously.
&lt;/em&gt; Has a non-intrusive search mechanism (Firefox quick search via the / shortcut)
&lt;em&gt; Is initially developed exclusively for &lt;/em&gt;Linux*, not some other platform and ported to Linux.  Cross-platform ports are intended&lt;/p&gt;
&lt;p&gt;I'm sure there are going to be the those that say "you could use X for that" where X is most likely vim and a terminal.  I disagree with this however.  It is unrealistic to use a terminal and vim session on a project with thousands of files, not all of which are plain-text.  There are people who prefer this, absolutely, but they are the &lt;em&gt;exception&lt;/em&gt;.  This is the case for numerous reasons, not the least of which is learning curve for users.  People need to get things done, and learning a foreign interface is not always in someone's list of priorities.&lt;/p&gt;
&lt;p&gt;Despite this, I'm looking for a middle-man.  Something as &lt;em&gt;capable&lt;/em&gt; as the big IDEs in terms of editing and user feedback abilities, but as &lt;em&gt;minimal&lt;/em&gt; as vim and a terminal.&lt;/p&gt;
&lt;p&gt;To put some value into this rant, I'm hereby speculatively exploring writing such an IDE that meets my criterion, if for no other reason than to satisfy my own will to see an end to spending 45 minutes configuring syntax highlighting in Eclipse for &lt;em&gt;one&lt;/em&gt; file type.  I've already got ideas for this project, but first I'm going to see if I can extend something else, and save myself the hassle of starting from scratch.&lt;/p&gt;</summary></entry><entry><title>Projects Lost, Future Project Hosting</title><link href="http://www.vicfryzel.com/2008/11/09/projects-lost-future-project-hosting" rel="alternate"></link><updated>2008-11-09T04:23:00-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2008/11/09/projects-lost-future-project-hosting</id><summary type="html">&lt;p&gt;In the theft from a long time ago, these are the projects I remember hosting that were lost.
&lt;em&gt; &lt;a href="http://pypi.python.org/pypi/PySimpleXML/1.0"&gt;PySimpleXML&lt;/a&gt;
&lt;/em&gt; &lt;a href="http://www.needscripts.com/Resource/34584.html"&gt;dbi++&lt;/a&gt;
* A few others that I can't remember or can't mention.&lt;/p&gt;
&lt;p&gt;These are linked to all over the web, but none of the sites referencing the projects actually saved an archive of the source.  The theft occurred while I was switching web hosts, too.&lt;/p&gt;
&lt;p&gt;Thus, for upcoming work, I'm considering &lt;a href="http://code.google.com/hosting/"&gt;Google Code Project hosting&lt;/a&gt;, but don't like their limit of 10 projects in a lifetime.  I see their reason for doing this, to avoid becoming a project graveyard like SourceForge, but not all projects are meant to be so substantial.  I write a lot of smaller libraries or applications, yet I feel that each one warrants its own project summary, mailing list, and repository.  Release management is already a pain in the ass;  having to do a lot of release management from a single project account would be even worse.&lt;/p&gt;</summary></entry><entry><title>Artificial Neural Network Library, IJCNN2009</title><link href="http://www.vicfryzel.com/2008/11/08/artificial-neural-network-library-ijcnn2009" rel="alternate"></link><updated>2008-11-08T23:41:00-05:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2008/11/08/artificial-neural-network-library-ijcnn2009</id><summary type="html">&lt;p&gt;I'm toying with the idea of developing an open source artificial neural network library in ANSI C++.  Mainly, I'm considering this because of the utter lack of maintained libraries.  Doing a simple Google search for "c++ neural network library" yields numerous results, but all have been abandoned since 2004 or earlier.  Additionally, none of them seem to have made it to a production release, I had trouble finding indications of their roadmaps or stability.&lt;/p&gt;
&lt;p&gt;Here are some of the libraries I found for C++:
&lt;em&gt; &lt;a href="http://savannah.nongnu.org/projects/libann/"&gt;libann&lt;/a&gt;
&lt;/em&gt; &lt;a href="http://sourceforge.net/projects/nnetlib/"&gt;nnetlib&lt;/a&gt;
&lt;em&gt; &lt;a href="http://www.alyuda.com/neural-networks-library.htm (non-free)"&gt;Alyuda's NN Lib&lt;/a&gt;
&lt;/em&gt; &lt;a href="http://www.ozgrid.com/Services/neural-networks-library.htm (non-free)"&gt;Neuro Fusion&lt;/a&gt;
&lt;em&gt; &lt;a href="http://knnl.sourceforge.net/"&gt;knnl&lt;/a&gt;
&lt;/em&gt; &lt;a href="http://ieee.uow.edu.au/~daniel/software/libneural/"&gt;libneural&lt;/a&gt;
&lt;em&gt; &lt;a href="http://projects.sentinelchicken.org/scnANNlib/"&gt;scnANNlib&lt;/a&gt;
&lt;/em&gt; &lt;a href="http://user.cs.tu-berlin.de/~nowozin/libpn/"&gt;libperceptronnetwork&lt;/a&gt;
&lt;em&gt; &lt;a href="http://amygdala.sourceforge.net/"&gt;Amygdala&lt;/a&gt;
&lt;/em&gt; &lt;a href="http://annie.sourceforge.net/"&gt;Annie&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This library would be useful for me, as I need to complete a research paper before December 15 on the result of finding equally optimal hierarchical neural nets as a subgraph of a non-fully-connected neural net.  I plan to submit this paper to &lt;a href="http://www.ijcnn2009.com/"&gt;IJCNN2009&lt;/a&gt; with &lt;a href="http://www.cs.rit.edu/~lr/"&gt;Dr. Leon Reznik&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I'm debating about which language to use, though.  I may just use an existing Python (&lt;a href="http://pypi.python.org/pypi/ffnet/0.6"&gt;ffnet&lt;/a&gt;) or Java (&lt;a href="http://www.jooneworld.com/"&gt;Joone&lt;/a&gt;) neural network implementation&lt;/p&gt;</summary></entry><entry><title>GPG Keys</title><link href="http://www.vicfryzel.com/2008/10/13/gpg-keys" rel="alternate"></link><updated>2008-10-13T22:38:00-04:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2008/10/13/gpg-keys</id><summary type="html">&lt;p&gt;I setup some new GPG keys. Their IDs are:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;0xDA92C84D
0xE7D79A0E
0×53B6E5E7
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I’ve got some old ones lying around on public key servers that will never expire. Their IDs are:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;0×237BD73A
0xC7B780CA
0×3A87808E
0×2A5D9CF9
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I can’t use, revoke or expire these keys because I lost the original private keys, their backups, and revocation certs in a theft. Luckily all of those things were encrypted. Oh well.&lt;/p&gt;</summary></entry><entry><title>Back up</title><link href="http://www.vicfryzel.com/2008/10/13/back" rel="alternate"></link><updated>2008-10-13T11:28:00-04:00</updated><author><name>Vic Fryzel</name><uri>http://www.vicfryzel.com</uri></author><id>http://www.vicfryzel.com/2008/10/13/back</id><summary type="html">&lt;p&gt;My site is finally back up. I lost a lot of data to a theft, and as such I’m going to publish my projects to Google Projects from now on.&lt;/p&gt;</summary></entry></feed>