<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jason Things</title>
	<atom:link href="http://jasonthings.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jasonthings.com</link>
	<description>Jason Rhodes and his personal super blog</description>
	<lastBuildDate>Wed, 09 Nov 2011 14:22:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Sad Thoughts From A Penn State Alum</title>
		<link>http://jasonthings.com/2011/11/sadthoughts-from-a-penn-state-alum/</link>
		<comments>http://jasonthings.com/2011/11/sadthoughts-from-a-penn-state-alum/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 14:21:48 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://jasonthings.com/?p=695</guid>
		<description><![CDATA[A lot of my fellow alumni are responding to this with sadness, but also with a reaffirmation about what makes Penn State great. I understand why, but I disagree with it. Our university spent years trying to duck this shame; I think it's our duty now to wear it for a time.]]></description>
			<content:encoded><![CDATA[<p>If Jerry Sandusky (or, god forbid, anyone else) was sexually molesting young boys for the last 15 to 20 years, he is solely responsible for the damage done to the growing list of victims. Absolutely none of the blame for that damage should be placed on a graduate assistant, a coach, an AD, a president, or anyone else. If the damage had ended there, with the victims, then the blame would end there too. As a university, my alma mater would have recovered, even if the victims and their families may never do the same.</p>
<p>But it didn&#8217;t end there.</p>
<p>I attended Penn State from 1999 to 2004, and I had an excellent experience. In these last few days I&#8217;ve found myself wishing that my time in State College had been stained by a painful set of revelations about a sexual scandal that had taken place in our football department, that was being reported to the authorities and handled completely and appropriately by our university. But none of that happened. We went along eating pizza from the Big Onion in East Halls, studying in the Paterno library, and measuring our most annoying experiences by how long we had to listen to the Willard preacher warn us of coming hellfire and damnation. He was right, in a way.</p>
<p>As more boys were hurt, it looks like my university decided to keep it quiet to protect itself from a heap of sickening shame. They rolled the dice, and they lost, and now those boys aren&#8217;t the only victims of this awful mess. And this new batch of consequences&mdash;the current team of football players, the current Penn State students and faculty, the potential beneficiaries of Penn State research who won&#8217;t be helped because donors will pull their money&mdash;these ones are the university&#8217;s responsibility. Every person who looked the other way for so long is responsible for the compounded shame that will hang over Happy Valley for a very long time.</p>
<p>A lot of my fellow alumni are responding to this with sadness, but also with a reaffirmation about what makes Penn State great. I understand why, but I disagree with it. Our university spent years trying to duck this shame; I think it&#8217;s our duty now to wear it for a time.</p>
<p>Reaching into my 1-year-old son&#8217;s dresser this morning, I happened to pull out a pair of navy blue Penn State sweat pants that I immediately shoved back into the bottom of the drawer. I hope State College gets this right, and that they come out with the truth, no matter how awful, and that they do everything in their power and more to make amends&mdash;first to the victims and then to the community. But for right now, I don&#8217;t want my son to be any part of Penn State tradition. I&#8217;m not even sure if I want to be part of it myself.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonthings.com/2011/11/sadthoughts-from-a-penn-state-alum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cachesmack!</title>
		<link>http://jasonthings.com/2011/08/cachesmack/</link>
		<comments>http://jasonthings.com/2011/08/cachesmack/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 20:47:26 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jasonthings.com/?p=683</guid>
		<description><![CDATA[So at Johns Hopkins, we have to review changes on our production servers pretty often, and aren&#8217;t sure if a change didn&#8217;t make it or if it&#8217;s being obscured by the long production cache. A quick way to fix this is to just append a query string at the end of the URL, like this: [...]]]></description>
			<content:encoded><![CDATA[<p>So at Johns Hopkins, we have to review changes on our production servers pretty often, and aren&#8217;t sure if a change didn&#8217;t make it or if it&#8217;s being obscured by the long production cache.</p>
<p>A quick way to fix this is to just append a query string at the end of the URL, like this:</p>
<pre><code>http://myamazing.url.com/mypage?wiourasefj</code></pre>
<p>Doesn&#8217;t matter what the variable is, but if it&#8217;s there, the server might redownload the page&#8217;s assets. Well, see, being a programmer, I&#8217;m lazy. Typing those query string variables over and over was tedious. So I made CACHESMACK to do it for me.</p>
<p>Use it if you&#8217;re lazy like me.<br />
<h3 style="margin-top: 5px"><a style="font-weight:100;font-family: 'Helvetica Neue', Helvetica, sans-serif;font-size:60px;" href="http://jasonthings.com/cachesmack">CACHESMACK »</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://jasonthings.com/2011/08/cachesmack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brooklyn Buzz, or How We Ruin Great Things By Liking Them</title>
		<link>http://jasonthings.com/2011/04/brooklyn-buzz/</link>
		<comments>http://jasonthings.com/2011/04/brooklyn-buzz/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 17:57:02 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://jasonthings.com/?p=665</guid>
		<description><![CDATA[Time for a little honesty: I can't decide if I actually care about attending Brooklyn Beta or if I just want to be thought of as someone cool enough to be found at a conference that gathers in a place called The Invisible Dog. It's probably a little of both.]]></description>
			<content:encoded><![CDATA[<p>Time for a little honesty: I can&#8217;t decide if I actually care about attending <a title="Brooklyn Beta 2011" href="http://brooklynbeta.org/2011">Brooklyn Beta</a> or if I just want to be thought of as someone cool enough to be found at a conference that gathers in a place called The Invisible Dog. It&#8217;s probably a little of both.</p>
<p>If you haven&#8217;t heard about Brooklyn Beta, the <a title="Analog Coop" href="http://analog.coop/">Analog</a> and <a href="http://fictivekin.com/">Fictive Kin</a> organizing duo describe it as &#8220;a friendly, intimate web conference in the heart of Brooklyn with some of our favorite web designers, developers, and business people.&#8221; Being small and focused on encouraging attendees to use their magical abilities to bring ideas to life, it generated a lot of, let&#8217;s say &#8220;eventbuzz&#8221;.</p>
<p>What&#8217;s &#8220;eventbuzz&#8221;? As I&#8217;m writing this, the following Twitter exchange appeared in my Timeline in the span of about 30 to 40 seconds.</p>
<img class="aligncenter size-full wp-image-666" title="Screen shot 2011-04-28 at 1.28.16 PM" src="http://jasonthings.com/wpfiles/wp-content/uploads/2011/04/Screen-shot-2011-04-28-at-1.28.16-PM.png" alt="" width="543" height="96" />
<img class="aligncenter size-full wp-image-667" title="Screen shot 2011-04-28 at 1.28.32 PM" src="http://jasonthings.com/wpfiles/wp-content/uploads/2011/04/Screen-shot-2011-04-28-at-1.28.32-PM.png" alt="" width="543" height="94" />
<img class="aligncenter size-full wp-image-668" title="Screen shot 2011-04-28 at 1.29.02 PM" src="http://jasonthings.com/wpfiles/wp-content/uploads/2011/04/Screen-shot-2011-04-28-at-1.29.02-PM.png" alt="" width="541" height="94" />
<img class="aligncenter size-full wp-image-669" title="Screen shot 2011-04-28 at 1.29.12 PM" src="http://jasonthings.com/wpfiles/wp-content/uploads/2011/04/Screen-shot-2011-04-28-at-1.29.12-PM.png" alt="" width="542" height="95" />
<img class="aligncenter size-full wp-image-670" title="Screen shot 2011-04-28 at 1.29.21 PM" src="http://jasonthings.com/wpfiles/wp-content/uploads/2011/04/Screen-shot-2011-04-28-at-1.29.21-PM.png" alt="" width="541" height="95" />
<p>No speakers have been mentioned, no schedule posted, almost no information is available at all except the date and the venue, and the (update: first day&#8217;s quota) tickets sold out in 45 seconds, max. That&#8217;s some fine looking eventbuzz right there.</p>
<p>Of course, I can&#8217;t say for sure why anyone bought a ticket to &#8220;the Beta&#8221;, as they call it*. I know there are plenty of reasons to want to spend a weekend with brilliant, creative web people, talking about creating excellent things. (Take a look at <a href="http://shiflett.org/blog">Chris Shiflett&#8217;s blog</a> or Cameron Koczon&#8217;s <a href="http://vimeo.com/18786031">Gimmebar preview</a> if you need proof of brilliance.)</p>
<p><small class="asterisk-inline"><span class="star">*</span><span class="text ff-primary">Nobody calls it that.</span></small></p>
<p>But no matter how brilliant an event is, eventbuzz is a potential poison that can turn the greatest of gatherings into a sad, self-congrulationfest where brilliant speakers run from professional networkers and good-hearted nobodies watch silently from the corners.</p>
<p>Hopefully that doesn&#8217;t happen to Brooklyn Beta. The Analog|FK duo is almost certainly taking precautions against that kind of disaster. But there&#8217;s only so much they can do.</p>
<p>The rest is kind of up to us. We ruin things by liking them for the wrong reasons. Here&#8217;s what I think we can do.</p>
<p>Let&#8217;s start separating networking and business-building from sharing ideas and making great things. Let&#8217;s get together and talk about what we&#8217;re doing without inviting celebrity guest speakers. Let&#8217;s find ways to involve more people, and not just by offering free pizza. Let&#8217;s make our gatherings an exciting place to be because we&#8217;re talking about exciting things right in our own neighborhoods. No, you probably won&#8217;t find a job or a pitch or a connection at this kind of get together &#8212; but you might find inspiration to make something of your own.</p>
<p>Matthew Smith is talking about this kind of thing already with his Grok idea (<a title="Greenville Groks" href="http://notebook.squaredeye.com/post/4765160696/greenville-grok-is-not-a-conference">check it out if you haven&#8217;t already</a>). Groks are an interesting idea, but Matthew is at a disadvantage &#8212; he&#8217;s one of the celebrities that can easily draw people in for the wrong reasons. In this case, we &#8220;good-hearted nobodies&#8221; are in a great position to create something interesting that attracts just the right crowd, if we figure out how to do it.</p>
<p>The trick will be getting people&#8217;s attention, and finding ways to gather and share great ideas about making great things in our own communities without turning those gatherings into sub-standard networking sales-pitch parades. If we can do that, maybe we won&#8217;t need to be glued to a screen punching &#8220;refresh&#8221; 1000 times a minute, desperately hoping we&#8217;ll be lucky enough to score a ticket to the next eventbuzzed un-conference. We&#8217;ll be too busy planning our own.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonthings.com/2011/04/brooklyn-buzz/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>More Responsive Design, Please</title>
		<link>http://jasonthings.com/2011/03/626/</link>
		<comments>http://jasonthings.com/2011/03/626/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 05:06:50 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://jasonthings.com/?p=626</guid>
		<description><![CDATA[Lots of talk about responsive design, one web, and the mobile context these days. Like everyone else, it seems, I wanted to get my own thoughts down on the subject. I'll probably be editing and adapting this article as I keep thinking about it over the next few weeks.]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Responsive design is blowing up the internet. Here are a few must-read examples, if you don&#8217;t believe me.</p>
<ol>
<li>The original article: <a href="http://www.alistapart.com/articles/responsive-web-design/">Responsive Web Design</a>, by Ethan Marcotte (A List Apart)</li>
<li>A case against: <a href="http://tripleodeon.com/2010/10/not-a-mobile-web-merely-a-320px-wide-one/">Not a mobile web, merely 320px-wide one</a>, by James Pearce</li>
<li>Start with mobile (slides): <a href="http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu">Rethinking the mobile web</a>, by Bryan Rieger and Yiibu</li>
<li>Another case against, sort of: <a href="http://boagworld.com/technology/making-mobile-mistakes/">Making Mobile Mistakes</a>, by Paul Boag (the comments on this post are outstanding)</li>
<li>Recent defense/explanation: <a href="http://adactio.com/journal/4367/">Sea change</a>, by Jeremy Keith</li>
</ol>
<p>Ethan, the guy who kicked off the craziness, <a href="http://unstoppablerobotninja.com/entry/on-being-responsive/">defines responsive design</a> in part by @media queries—I think they count as necessary but maybe not sufficient. Responsive design is all about how we build a site to <em>respond</em> to information. And I think we&#8217;re confused about what kind of information we have, how we get it, and the relationship between it all. So here&#8217;s a pretty picture to get us started.</p>
<img class="aligncenter size-full wp-image-652" title="Responsive Matrix" src="http://jasonthings.com/wpfiles/wp-content/uploads/2011/03/responsive-matrix-1g.png" alt="" width="750" height="376" />
<p>&nbsp;</p>
<p>This colorful table demonstrates two ways a site can respond, based on two types of information.</p>
<p>When <strong>layout responds</strong>, we adjust how the content is displayed, ordered, or styled.</p>
<p>When <strong>content responds</strong>, we adjust what&#8217;s being pulled from the server and displayed by the client (usually a browser).</p>
<p><strong>Capability</strong> is information about what <em>can</em> be done, based on the device, the internet connection, the browser, etc.</p>
<p><strong>User intent</strong> is information about what <em>should </em>be done to meet the users&#8217; needs as best as we can.</p>
<p>We&#8217;re getting all these things mixed up.</p>
<h2 class="number-heading number-heading-1">Layout by capability</h2>
<p>This is the genius of Ethan&#8217;s A List Apart article. We can use CSS to determine a few things about the width of the viewport, the orientation, etc. and build our sites to respond to that information by adjusting the layout accordingly. This is the heart of responsive design right now because this is the information we&#8217;re most accurately able to gather with the tools we have.</p>
<p>Of course, @media queries are ignored by Internet Explorer and many of the browsers found on mobile phones. To fix this, the smart folks at Filament Group have developed <a href="http://filamentgroup.com/lab/respondjs_fast_css3_media_queries_for_internet_explorer_6_8_and_more/">some JavaScript</a> to endow many older browsers with the power to process @media queries. As a failsafe, Bryan Rieger suggests we <a href="http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu">build the default stylesheet for a small-screen layout</a> and use @media queries to adjust the layout up from there.</p>
<p>Still, the 17 users with a decently large-screen device running a sufficiently old browser with JavaScript disabled may have to deal with a funky looking layout. Otherwise, this part of responsive design should work for everybody.</p>
<h2 class="number-heading number-heading-2">Content by capability</h2>
<p>This seems to be a big reason why people fight against responsive design. Sure, we can push some pixels around the page, but what good does it do if we&#8217;re shrinking down 1300&#215;900 pixel images for a 320px wide screen? Using @media queries can optimize layout, but what about optimizing the content, too?</p>
<p>We can&#8217;t do much with this yet. Those Filament Group go-getters are working on <a href="http://filamentgroup.com/lab/responsive_images_experimenting_with_context_aware_image_sizing/">some crazy JavaScript voodoo</a> for serving different size images, but good information about bandwidth, upload/download speed, etc. is hard to come by, for now. Which doesn&#8217;t mean we can&#8217;t optimize content at all (we might think about whether we need those 1300x900px images at all). More on that later.</p>
<p>This is probably the area with the most room for responsive innovation, and until that innovation happens, people are suggesting we optimize content based on what the user wants. Which is really a conversation about intent, and not capability. See? It&#8217;s confusing.</p>
<h2 class="number-heading number-heading-3">Layout by intent</h2>
<p>User intent is the holy grail of user experience design. We make a series of guesses (some more educated than others) about what people might want to find on our site, how they might want to find it, and how to organize and label everything so it&#8217;s easy to find.</p>
<p>But here&#8217;s where the biggest mix-up almost always happens.</p>
<p><em>We can&#8217;t reliably determine a user&#8217;s intention based on the capability information we collect from her device or internet connection</em>.</p>
<p>By pretending we can, we&#8217;re like a shop owner who rearranges his entire store every time a car pulls into his empty parking lot. He notes the make and model of the customer&#8217;s car and makes a few appropriate changes. Mini-van drivers want milk and gum and mac and cheese, of course, so these get pushed to the front. And of course they don&#8217;t want to see those nudey magazines in the display racks, so they get stashed away in the stock room. And so on.</p>
<p>Even if those things were true in the shop owner&#8217;s case, he could achieve a similar effect by keeping those magazines out of direct plain sight and making sure the food aisles are neatly labeled for people to find. It&#8217;s easy to forget that the mini-van driver pulled into <em>your </em>parking lot, so they obviously intend to shop at your store. It&#8217;s probably not necessary to guess <em>exactly</em> what they want to do on each individual visit, especially when a wrong guess can hinder them from doing what they want to do (Uncle James may have taken the mini-van to the store to pick up his nudey magazine, after all).</p>
<h2 class="number-heading number-heading-4">Content by intent</h2>
<p>If we assume we can accurately guess the user&#8217;s intentions based on capability information, we might be tempted to remove irrelevant content from that user&#8217;s view. Jeremy Keith responds to this kind of assumption better than I can, so I won&#8217;t try to duplicate it.</p>
<blockquote><p>We have once again created a consensual hallucination. Just as we generated a mythical desktop user with the perfect viewport size, a fast connection and an infinite supply of attention, we have now generated a mythical mobile user who has a single goal and no attention span.</p>
<p>More and more people are using mobile devices as a primary means of accessing the web. The number is already huge and it’s increasing every day. I don’t think they’re all using their devices just to look up the opening times of restaurants. They are looking for the same breadth and richness of experience that they’ve come to expect from the web on other devices.</p>
<p>Hence the frustration with mobile-optimised sites that remove content that’s available on the desktop-optimised version.</p>
<p>–<a href="http://adactio.com/journal/4443/">Jeremy Keith, Context</a></p></blockquote>
<p>Making drastic changes to content based on what we assume a user wants <em>on any particular visit</em> gives more credibility to our assumptions than I want to give.</p>
<h2>The point about user intent: it&#8217;s design, stupid</h2>
<p>We can be responsive to what our users want, but we do it at the point of design, not at the point of visit. In other words, when a user visits a site, we can gather information about the capabilities that user has available to him, and rearrange layout and content accordingly. But we can&#8217;t reliably and accurately use that information to determine what the user wants, enough so that we can <em>remove</em> content that we assume he doesn&#8217;t need.</p>
<p>Again, a pretty picture, this time with a few more words.</p>
<img class="aligncenter size-full wp-image-656" title="Responsive Matrix 2" src="http://jasonthings.com/wpfiles/wp-content/uploads/2011/03/responsive-matrix-2.png" alt="" width="750" height="376" />
<p>Some people go so far as to say that <a href="http://stuffandnonsense.co.uk/blog/about/i_dont_care_about_responsive_web_design/">all web design is responsive design</a>, which is hard to argue with, but there are subtle differences. Build a site that works for your users (design) and build it with enough flexibility to adapt, subtly, to various capability levels (responsive design). The semantic difference is trivial, but the end result is the same: we need more responsive design, not less.</p>
<h2>One web to rule them all</h2>
<p>You either build for a device <em>or</em> you build for the web. You can&#8217;t build a web-app that&#8217;s just for the iMac. If you try, people will access it from other devices and rightfully expect to be able to use it, because that&#8217;s what the web is. When we build for the web, our initial design should respond to what we know about our users, and the layout and content should be able to subtly respond to a user&#8217;s capabilities on the fly.</p>
<p>That&#8217;s how we build a more responsive web. Not a mobile web, or a desktop web, or an iPad web, or any other kind of web we might try to predict.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonthings.com/2011/03/626/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Blogging About Blogging</title>
		<link>http://jasonthings.com/2011/03/blogging-about-blogging/</link>
		<comments>http://jasonthings.com/2011/03/blogging-about-blogging/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 12:24:41 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://jasonthings.com/?p=622</guid>
		<description><![CDATA[I really hate blog posts about blogging, so I'll keep this really short.

Inspired by Chris Shiflett's plea for more blogging, along with some really interesting conversations I've been having, I'm pledging to figure out a way to write more.]]></description>
			<content:encoded><![CDATA[<p>I really hate blog posts about blogging, so I&#8217;ll keep this really short.</p>
<p>Inspired by Chris Shiflett&#8217;s <a href="http://shiflett.org/blog/2011/mar/ideas-of-march">plea for more blogging</a>, along with some really interesting conversations I&#8217;ve been having, I&#8217;m pledging to figure out a way to write more. My new job at Johns Hopkins leaves me busier than I&#8217;ve ever been in my entire life, but excuses be damned—I&#8217;d like to contribute more than 140 characters to a few conversations here and there.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonthings.com/2011/03/blogging-about-blogging/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BaltimoreTech.net</title>
		<link>http://jasonthings.com/2010/12/baltimoretech-net/</link>
		<comments>http://jasonthings.com/2010/12/baltimoretech-net/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 05:33:16 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://jasonthings.com/?p=552</guid>
		<description><![CDATA[Mike Brenner and Myke Nahorniak built this new directory for Baltimore tech folks. Mike asked me to help build a WordPress plugin to connect people to meetups and startups and vice versa.]]></description>
			<content:encoded><![CDATA[<div class="figure figure-right">
<a href="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/Btech-front.png"><img class="aligncenter size-large wp-image-553" title="Btech - front" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/Btech-front-1024x687.png" alt="" width="1024" height="687" /></a></p>
<div class="figcaption"><strong>Figure 1:</strong> The BaltimoreTech.net site that recently launched</div>
</div>
<p>Mike Brenner, Baltimore start-up extraordinaire, asked a question on Twitter about WordPress. I responded, we had a conversation, and before I knew it I&#8217;d agreed to build them a plugin that would do what they wanted to do for a new site he and Myke Nahorniak were working on.</p>
<p>BaltimoreTech.net has since launched, and serves as an up and coming directory for Baltimore&#8217;s tech community based loosely on the WeAreNYTech and a few other city-based tech directory sites.</p>
<div class="figure figure-left">
<a href="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/Btech-plugin-admin.png"><img class="aligncenter size-full wp-image-555" title="Btech plugin admin" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/Btech-plugin-admin.png" alt="" width="302" height="304" /></a><a href="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/Btech-plugin-use.png"><img class="aligncenter size-full wp-image-554" title="Btech - plugin use" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/Btech-plugin-use.png" alt="" width="290" height="322" /></a></p>
<div class="figcaption"><strong>Figure 2:</strong> The plugin I built, in admin and how the data is used</div>
</div>
<p>The plugin I built allows BaltimoreTech admin users to see a new meta box of 3 tabs of lists (see Figure 2) beside the new post/edit post page, listing other posts that were marked in categories People, Startups, and Meetups. This way, the admin can link a person to a startup, to a meetup, or a startup to a person, etc.</p>
<p>The trickiest part was making sure that when you check something in that meta box, it should automagically make the complementary link for you. For example, if you create a post called &#8220;Jane Doe&#8221; that&#8217;s in the &#8220;People&#8221; category, and you link her to &#8220;Super Hot Startup&#8221;, if you then went to the &#8220;Super Hot Startup&#8221; post&#8217;s edit page, the &#8220;Jane Doe&#8221; link should already be there.</p>
<p>I got it set up for them on a 2 day turnaround and it seems to be working great. If you haven&#8217;t yet signed up for BaltimoreTech.net and you&#8217;re a Baltimorean who does any kind of tech work, head over and sign up. And if you&#8217;re looking for custom WordPress development, contact me at hello@jasonthings.com!</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonthings.com/2010/12/baltimoretech-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CMA Stories</title>
		<link>http://jasonthings.com/2010/12/cma-stories/</link>
		<comments>http://jasonthings.com/2010/12/cma-stories/#comments</comments>
		<pubDate>Mon, 27 Dec 2010 22:19:29 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://jasonthings.com/?p=527</guid>
		<description><![CDATA[This network of church missionary blogs is built using WordPress 3.0's Multisite functionality, as well as a custom-built YouTube manager plugin that allows users to upload and manage their videos from within the WordPress admin. It's also a partially responsive design.]]></description>
			<content:encoded><![CDATA[<div class="figure figure-right">
<p style="text-align: center;"><a href="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/cmastories-front.jpg"><img class="size-large wp-image-538 aligncenter" title="cmastories-front" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/cmastories-front-680x1024.jpg" alt="" width="680" height="1024" /></a></p>
<div class="figcaption"><strong>Figure 1:</strong> The designer&#8217;s visual design for the site</div>
</div>
<p>A pastor in Pennsylvania approached me with an ambitious project. He and his wife were going to visit missionaries all over the world, give them Flip video cameras, and teach them how to set up a video blog about their experiences.</p>
<p>He hired a designer and we all met in PA to map out our ideas. I ran everyone through a few exercises to prioritize user groups and come up with the content they wanted for the main site. Then the designer went to work on the visual design for the main site.</p>
<h3>WordPress Multisite</h3>
<p>I installed WordPress 3.0 and used the newly core multisite feature (formerly a separate product called WordPress MU) and we created networked blogs for each of the beta stage missionaries using a WordPress child theme of the main site&#8217;s theme.</p>
<div class="figure figure-left">
<p style="text-align: center;"><a href="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/YouTube-Manager-link-account.png"><img class="size-full wp-image-542 aligncenter" title="YouTube Manager - link account" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/YouTube-Manager-link-account.png" alt="" width="866" height="351" /></a><a href="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/YouTube-Manager-upload-1.png"><img class="size-full wp-image-541 aligncenter" title="YouTube Manager - upload 1" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/YouTube-Manager-upload-1.png" alt="" width="506" height="527" /></a><a href="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/YouTube-Manager-upload-2.png"><img class="size-full wp-image-540 aligncenter" title="YouTube Manager - upload 2" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/YouTube-Manager-upload-2.png" alt="" width="439" height="121" /></a></p>
<div class="figcaption"><strong>Figure 2:</strong> Custom-built YouTube management plugin</div>
</div>
<h3>YouTube Manager Plugin</h3>
<p>The client was concerned that the upload video/blog process would be too complicated for non-technical users. I looked through the WordPress plugin repository but nothing I found was complete enough, so I built them a YouTube management plugin that allows them to upload their videos from inside of their WordPress blog account as seen in Figure 2.</p>
<div class="figure figure-right">
<p style="text-align: center;"><a href="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/YouTube-Manager-manage-videos.png"><img class="size-full wp-image-545 aligncenter" title="YouTube Manager - manage videos" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/YouTube-Manager-manage-videos.png" alt="" width="869" height="464" /></a><a href="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/YouTube-Manager-insert-videos.png"><img class="size-full wp-image-544 aligncenter" title="YouTube Manager - insert videos" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/YouTube-Manager-insert-videos.png" alt="" width="726" height="697" /></a></p>
<div class="figcaption"><strong>Figure 3:</strong> YouTube Manager allows users to manage videos and link them to blog posts</div>
</div>
<p>In addition, the plugin allows the users to manage their videos from inside the site, deleting them or linking directly to the YouTube edit page for further editing, and to link a blog post to a specific video making that post a video post which is styled uniquely using CSS. Management and video selection are shown in Figure 3.</p>
<h3>Responsive Design, Sort Of</h3>
<p>The site also uses a semi-responsive design. The images and videos are flexible, but object and embed tags have a hard time scaling without adding strange horizontal bars to the video player at inconsistent times. I opted to hardcode the heights and let the widths expand at media query intervals. I think Ethan Marcotte <a href="http://twitter.com/#!/beep/status/24004415933">calls this &#8220;switchy&#8221;</a> (see also: <a href="http://unstoppablerobotninja.com/entry/on-being-responsive/">his follow-up explanation</a>).</p>
<p>At any rate, the site shrinks and expands to different resolutions, but it&#8217;s not fully mobile-ready as it isn&#8217;t built for mobile first, so any older mobile device that doesn&#8217;t understand media queries might have a difficult time with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonthings.com/2010/12/cma-stories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Habitat For Humanity</title>
		<link>http://jasonthings.com/2010/12/habitat-for-humanity-2/</link>
		<comments>http://jasonthings.com/2010/12/habitat-for-humanity-2/#comments</comments>
		<pubDate>Mon, 27 Dec 2010 05:24:51 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://jasonthings.com/?p=514</guid>
		<description><![CDATA[I originally designed this site for Habitat for Humanity to be built in a custom PHP content management system. After building the custom CMS and turning it over, WordPress 3.0 launched. It was the perfect long-term solution for them so I am moving their site into WordPress 3 now.]]></description>
			<content:encoded><![CDATA[<p>I originally designed and built a site for Habitat for Humanity of the Chesapeake using a custom-built PHP content management system.</p>
<img class="aligncenter size-large wp-image-515" title="Habitat for Humanity" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/Habitat-for-Humanity-1024x697.png" alt="" width="1024" height="697" />
<p>The CMS allowed non-technical Habitat employees to edit and preview the site right from their pages.</p>
<img class="aligncenter size-large wp-image-516" title="History | Habitat for Humanity" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/History-Habitat-for-Humanity-1024x697.png" alt="" width="1024" height="697" />
<p>The CMS also allowed users to create blog posts, create events, and keep track of their front page featured images and captions easily.</p>
<img class="aligncenter size-large wp-image-518" title="Features | Habitat for Humanity Site Manager" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/Features-Habitat-for-Humanity-Site-Manager-1024x697.png" alt="" width="1024" height="697" />
<p>Soon after I turned the site over to them WordPress 3.0 became available. I use WordPress a lot and had determined that it wasn&#8217;t the right fit for Habitat, but this new version resolved all of those issues and made it the best choice for them moving forward. So I ported my system into WordPress for them, and the new WordPress site will launch in 2011.</p>
<p>Here are a few examples of the WordPress features I&#8217;ve used in developing for Habitat so far.</p>
<h3>Custom Post Types</h3>
<p>I created the &#8220;Events&#8221; type and the &#8220;Features&#8221; type so that users can add these as easily as possible.</p>
<h3><img class="aligncenter size-large wp-image-519" title="Features ‹ Habitat for Humanity of the Chesapeake — WordPress" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/Features-‹-Habitat-for-Humanity-of-the-Chesapeake-—-WordPress-1024x685.png" alt="" width="1024" height="685" />Sidebars</h3>
<p>WordPress gives you the option to register multiple sidebars, but I wanted to give these users the ability to create new sidebars on the fly and assign them to a page without having to know any PHP or custom code. They can create a sidebar from the Sidebars page.</p>
<img class="aligncenter size-full wp-image-522" title="sidebars-create" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/sidebars-create.png" alt="" width="1022" height="490" />
<p>And they can assign them per page by choosing from a dropdown box of available sidebars.</p>
<img class="aligncenter size-full wp-image-523" title="Google Chrome" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/Google-Chrome.png" alt="" width="295" height="152" />
]]></content:encoded>
			<wfw:commentRss>http://jasonthings.com/2010/12/habitat-for-humanity-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>95 Scenes of Gilman Hall</title>
		<link>http://jasonthings.com/2010/12/95-scenes-of-gilman-hall/</link>
		<comments>http://jasonthings.com/2010/12/95-scenes-of-gilman-hall/#comments</comments>
		<pubDate>Sun, 26 Dec 2010 21:39:02 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://jasonthings.com/?p=489</guid>
		<description><![CDATA[Gilman Hall, an iconic building on the JHU Homewood campus, reopened this fall. Our team came up with a concept for telling the story of Gilman Hall in 95 scenes. I built a responsive, flexible grid of images and videos to showcase the 95 scenes in a unique, user-friendly way.]]></description>
			<content:encoded><![CDATA[<p>My boss came to me last year and said my favorite uninformative phrase, &#8220;Someone needs a website.&#8221; Gilman Hall, our university&#8217;s iconic building, was finally reopening after a 2 year renovation and restoration process.</p>
<p>We tossed around a bunch of ideas, but I had just read Ethan Marcotte&#8217;s life-changing ALA article on Responsive Design and I knew I wanted to make this mini specialty site as responsive as possible. It had been 95 years since Gilman originally opened, so we decided to create 95 scenes featuring photos, videos, and sounds of the building and the people who helped shape it.</p>
<p>I immediately got to work on an idea for the layout of the site.</p>
<div id="attachment_490" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-490 " title="meet the flex grid" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/flex-medium.jpg" alt="" width="500" height="495" /><p class="wp-caption-text">Original layout idea for the Gilman tribute site</p></div>
<p>I mocked this up to demonstrate how the layout would work (big thanks to the Muppets—images were quickly pulled together from Google Images, for example only). In most standard sized browsers, the image grid would fill the screen like above. If your screen was bigger than 1500px, though, you&#8217;d see something a little different.</p>
<div id="attachment_492" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-492" title="Meet the flexgrid, big" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/flex-large.jpg" alt="" width="500" height="275" /><p class="wp-caption-text">When the screen is bigger than 1500px</p></div>
<p>The grid stops expanding but keeps its shape. Up to now, this is all accomplished using flexible images<sup>1</sup> and percentage widths for columns in the layout. But when the screen gets smaller, things start to get a little more magical. Using CSS3 media queries, I changed the percentages of the columns for smaller screens like, say, mobile<sup>2</sup> screens.</p>
<div id="attachment_493" class="wp-caption aligncenter" style="width: 210px"><img class="size-full wp-image-493 " title="Meet the flex grid, small and narrow" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/flex-smallest.jpg" alt="" width="200" height="796" /><p class="wp-caption-text">CSS3 media queries change the column widths for smaller screens</p></div>
<p>I set up this layout in WordPress and we created a post for each scene, resulting in a flexible grid of images telling the story of Gilman Hall.</p>
<img class="aligncenter size-full wp-image-497" title="95scenes-front" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/95scenes-front.png" alt="" width="1000" height="816" />
<p>Each scene linked to a larger story, audio file, video, etc.</p>
<img class="aligncenter size-large wp-image-499" title="86-arched-marvel" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/86-arched-marvel-1024x825.png" alt="" width="1024" height="825" />
<p>These inner pages were also adjusted, via CSS3 media queries, for smaller screens.</p>
<img class="aligncenter size-full wp-image-505" title="arched-marvel-responsive" src="http://jasonthings.com/wpfiles/wp-content/uploads/2010/12/arched-marvel-responsive3.png" alt="" width="240" height="843" />
<p>You can see the Gilman site live at <a href="http://krieger.jhu.edu/gilman">http://krieger.jhu.edu/gilman</a>.</p>
<p>If you&#8217;d like to check out the muppet-based prototype in the browser, <a href="http://jasonthings.com/demos/css/flexgrid">you can see the demo here</a>.</p>
<div class="footnotes">
<section>
<p><sup>1</sup> Flexible images are a huge performance drain, especially on small screens where 1500px wide images are being shrunk to 300px. I&#8217;ve been playing with some JavaScript solutions to loading images based on resolution and bandwidth.</p>
<p>I&#8217;ve also been paying close attention to what <a href="http://filamentgroup.com/lab/responsive_images_experimenting_with_context_aware_image_sizing/">Ethan Marcotte and the folks at Filament Group</a> have been cooking up recently.</p>
</section>
<section>
<p><sup>2</sup> Media queries are fantastic&#8230; when they work. Unfortunately they don&#8217;t always work for mobile, especially if you care about more than the iPhone and iPad (and you probably should).</p>
<p>Bryan Rieger&#8217;s (Yiibu) <a href="http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu">slides on the subject</a> are great, and suggest designing a mobile site first, using media queries to expand the layout for bigger browsers, most of which can handle media queries.</p>
</section>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jasonthings.com/2010/12/95-scenes-of-gilman-hall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting What We Deserve</title>
		<link>http://jasonthings.com/2010/11/getting-what-we-deserve/</link>
		<comments>http://jasonthings.com/2010/11/getting-what-we-deserve/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 18:51:17 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Quote]]></category>
		<category><![CDATA[Shorts]]></category>

		<guid isPermaLink="false">http://jasonthings.com/?p=420</guid>
		<description><![CDATA[Exit polls indicated most voters will be content with what they&#8217;ve got coming to them as long as they see sharp reductions in taxes, health care costs, home foreclosures, economic regulation, unemployment, and the national debt by the time the 112th Congress is halfway through its first legislative session.]]></description>
			<content:encoded><![CDATA[<p>Exit polls indicated most voters will be content with what they&#8217;ve got coming to them as long as they see sharp reductions in taxes, health care costs, home foreclosures, economic regulation, unemployment, and the national debt by the time the 112th Congress is halfway through its first legislative session.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonthings.com/2010/11/getting-what-we-deserve/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)

Served from: jasonthings.com @ 2012-05-18 18:49:39 -->
