The Nested Float Wanna see something cool? en Copyright 2009 2009-08-07T16:10:46+00:00 Quote: Using a Jackhammer <blockquote><ul> <li>For example - if you came in here asking &#8220;how do I use a jackhammer&#8221; we might ask &#8220;why do you need to use a jackhammer&#8221;</li> <li>If the answer to the latter question is &#8220;to knock my grandmother&#8217;s head off to let out the evil spirits that gave her cancer&#8221;, then maybe the problem is actually unrelated to jackhammers</li> </ul></blockquote><p><a href="">The quotes database</a>.</p> (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-11-24T01:33:02+00:00 Quote: Knowing The Scope <blockquote><p>Knowing the scope of the problem is more important than having what looks like a solution to the problem, and sometimes going through the effort of building a possible solution is the only way to truly understand the scope. <br /> </p></blockquote><p><a href="">Google</a>, from an article on how to tackle those massive programming projects.</p> (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-08-26T16:36:36+00:00 Article: A Simple PHP CLI Tool For Cleaning Up Filenames <p>Clients are always sending <a href="" title="Category 4">us</a> CD&#8217;s jam packed with meticulously named jpgs. It&#8217;s great that they&#8217;ve put all that time into organizing their files &ndash; it helps! &ndash; but you almost never get a CD that doesn&#8217;t have at least a few web-unfriendly characters scattered among those descriptive filenames. </p> <p> In hopes that it&#8217;ll be handy to someone, somewhere, someday, here&#8217;s a fun little PHP <abbr title="Command Line Interface">CLI</abbr> (!!) tool that takes a directory of images and removes spaces and parentheses, the two most common culprits of brokenness on the web when it comes to unix compatible filenames. The script takes exactly one (optional) argument, specified by the -p flag &ndash; the path to the directory you want the script to operate on. (That&#8217;s right, this baby works recursively!) </p> <p> I actually can&#8217;t take any of the credit for this one. It&#8217;s all <a href="" title="Category 4 Staff">Tim&#8217;s</a> doing. All I did was add the path flag/CLI stuff. Just download the file at the link below, rename with a PHP extension, and place in a convenient location. </p> <p> <a href="/downloads/removejunkyfilenames.txt">Download now</a>! </p><img src="" height="1" width="1" alt=""/> 2009-08-07T16:10:46+00:00 Quote: Google Wave: People aren’t looking for a replacement for email. <blockquote><p>And people aren&#8217;t looking for a replacement for email, or instant messaging, or blogs, or wikis. Those tools all work great for their intended purposes, and whatever technology augments them will likely offer a different combination of persistence and immediacy than those systems. Right now, Wave evokes all of them without being its own distinctive thing. Which means it&#8217;s most useful in providing reference implementations of particular new features. </p></blockquote><p><a href="" title="Anil Dash">Anil Dash</a>, on the key reason he believes the open standards for <a href="" title="Google Wave">Google Wave</a> will have a tough time being adopted and adapted.</p> (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-08-07T15:45:13+00:00 Link: How Different Groups of People Spend Their Days Another rad interactive infographic from the NY Times. I do get fed up with clients constantly mentioning the Times' flashier stuff as and example of what they're looking for ("Okay, fine. Do you have another four grand?"), but it's hard to argue that they don't make the best stuff out there. With this one, I especially had fun watching the amount of time each group sleeps. Watch the whole chart lurch toward late night for the 15-24 demographic. Expected, but still funny. (via <a href="" title="Dan Benjamin">Dan Benjamin</a>.) (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-08-07T12:54:57+00:00 Link: So you think you can ride a bike? A lot of stunt footage fails to impress, but I am floored by <a href="" title="Danny MacAskill">Danny MacAskill</a>'s skill. And as Andrew Leonard notes, it's his decency (the red light shot is cute, sure, but I especially love the bit of him replacing the traffic gate after biking up its length) that in part sets this clip apart. That and <a href="" title="the song">the song</a>. And the several clips of shocked bystanders going all "WTF?" after the fact. Oh - and that thing with the tree. (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-08-05T14:19:51+00:00 Link: Vim Plugins: snipmate.vim Oh, now you're just taunting me. I'm always telling people that the coolest thing about <a href="" title="vi">vi</a> is that it's everywhere and that you have to do precious little to reasonably configure it. But now I'm finding all these indispensable plugins. And I'll be <em>forced</em> to install them on every server I ever touch. What a bother. Really. (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-08-04T10:40:42+00:00 Link: Twitter, an Evolving Architecture A look at Twitter's current architecture and a few notes on the lead architect's plans for the future. The most interesting bit for me: "Everything is kept in RAM and the database is just a backup." Crazy. (via <a href="" title="Willison">Willison</a>.) (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-06-30T12:10:57+00:00 Quote: Tehran is that, plus Twitter. <blockquote><p>Calling Iranian politics &#8220;byzantine&#8221; doesn&#8217;t quite do the trick, because all Byzantium really had going on was palace intrigue. Tehran is that, plus Twitter. </p></blockquote><p><a href="">Gabriel Winant</a>, from a piece detailing the ins-and-outs of Iran's current political scene. I love Twitter and all, but ascribing this kind of importance to the service is just way over the top.</p> (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-06-19T11:44:22+00:00 Quote: The end of fail. <blockquote><p>When someone says &#8220;FAIL&#8221;, what they’re really saying is, &#8220;I’m failing to understand a creative person’s constraints.&#8221; </p></blockquote><p><a href="">Anil Dash</a>, on the death of FAIL.</p> (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-06-18T11:52:44+00:00 Link: Take Your Design To The Next Level With CSS3 I dare say I've never linked to a Smashing Magazine article, but here's one I can really get behind. A pretty comprehensive primer on all of the <abbr title="Cascading Style Sheets, Level 3">CSS3</abbr> rules worth using. The most useful part for me: which browsers currently support each tool. (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-06-16T11:25:39+00:00 Quote: The First Version <blockquote><p>If you review your first site version and don’t feel embarrassment, you spent too much time on it. </p></blockquote><p>Reid Hoffman. (via <a href="" title="37signals">37signals</a>.)</p> (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-06-02T23:17:57+00:00 Link: resty A lovely little bash script that exposes a simple HTTP request syntax for using curl on the command line. I can see myself using this a <em>lot</em>. (via <a href="" title="Simon Willison">Simon Willison</a>.) (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-05-21T00:14:26+00:00 Link: Yahoo! Placemaker This is gonna be really big news. Yahoo! is opening up a treasure-trove of geo-relational data that can be queried through what looks to be a really easy-to-use API. Know the city your photo comes from, but want to figure out the state, the country, the continent? That's just one use case. Can't wait to dream up some others. (via <a href="" title="Jeff Croft">Jeff Croft</a>.) (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-05-20T18:52:36+00:00 Link: Visible Tweets The best use of Flash I've seen in a long time. A visualizer for Twitter messages that's capable of working in full screen. Hook this puppy up to a monitor at your next geek event and watch as your attendees get sucked into the resultant feedback loop. How wonderfully anti-social! (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-05-20T00:06:34+00:00 Quote: Recursion <blockquote><p>In order to understand recursion, one must first understand recursion. </p></blockquote><p><a href="" title="Kai Diefenbach">Kai Diefenbach</a>, quoting an unnamed source.</p> (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-05-01T12:32:56+00:00 Link: What Twitter Looks Like For Twitter Employees I spend a chunk of pretty much every day thinking about the user interfaces that <a href="" title="Category 4">Category 4</a> clients see, so I found this look at the <a href="" title="Twitter">Twitter</a> admin site quite interesting. It's <em>way</em> more barebones than I expected. (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-04-30T13:16:33+00:00 Article: Upgrading a Django Server from Ubuntu Intrepid to Ubuntu Jaunty <p>I host <a href="" title="Dawsoning">Dawsoning</a> at <a href="" title="Mosso">Mosso</a> on an Ubuntu cloud server. If you don't mind doing a little server maintenance, it is, in my opinion, the best way to host your Django project. (And if you <em>do</em> mind server maintenance, check out <a href="" title="Web Faction">Web Faction</a>.)</p> <p>I just managed to successfully upgrade an Ubuntu Intrepid server configured for Django to Ubuntu Feisty. Since you're here, you're probably trying to do something similar, so I hope these instructions help. My initial build more or less followed <a href="" title="these instructions">these instructions</a>. You may want to check and see how closely your build matches mine before proceeding.</p> <p>Your first task is upgrading the server. (All performed as root.)</p> <ol class="code"> <li>sed -e 's/\intrepid/ jaunty/g' -i /etc/apt/sources.list</li> <li class="alt">apt-get update</li> <li>apt-get dist-upgrade</li> </ol> <p>The next part was tougher to figure out. It turns out that Ubuntu Jaunty ships with Python 2.6 as the default Python version. Python 2.6 has changed the site-packages directory (/usr/lib/python2.5/site-packages) to dist-packages (/usr/lib/python2.6/dist-packages). It's a sensible name change, so I'm not complaining.</p> <p>I had a <em>lot</em> of stuff in site-packages &ndash; including my Django core files &ndash; so rather than symlink everything therein, I just deleted the bits already in the dist-packages directory and moved the contents of site-packages over. So:</p> <ol class="code"> <li>sudo mv /usr/lib/python2.5/site-packages/* /usr/lib/python2.6/dist-packages</li> </ol> <p>You've probably also symlinked the admin media from your Django install into your project, so be sure to delete and recreate that link. For me, that process looked like this:</p> <ol class="code"> <li>sudo rm /home/dawsoning/public_html/</li> <li class="alt">sudo ln -s /usr/lib/python2.6/dist-packages/django/contrib/admin/media /home/dawsoning/public_html/</li> </ol> <p>Happy upgrade!</p><img src="" height="1" width="1" alt=""/> 2009-04-27T22:55:07+00:00 Link: Writing Software Is Like…Writing I like <em>what</em> this guy is trying to explain almost as much as I like <em>how</em> he does it. He's not really answering the question "What is programming like?" He's answering "Why do no two programmers ever produce the same work?" It's a great analogy. (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-04-22T15:59:53+00:00 Link: Your Eyes Suck At Blue I've read a lot about monitor and video color display in my day, but this is a new one on me. Turns out if you reduce the quality of an images blue channel, no one will ever notice. Same, to a certain extent, with red. But mess with the greens and you've got a problem. Fantastic stuff. (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-04-21T21:06:35+00:00 Link: tweenbots Little cardboard robots are helped by passers-by in their journey from one end of Washington Square Park to the other. "The journey the Tweenbots take each time they are released in the city becomes a story of people's willingness to engage with a creature that mirrors human characteristics of vulnerability, of being lost, and of having intention without the means of achieving its goal alone." Grad student much? I thought so. Still, this is one rad little project. (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-04-12T21:37:30+00:00 Link: THRU-YOU Israeli DJ <a href="" title="Kutiman">Kutiman</a> takes videos blends amateur music footage from YouTube into a PoMo dance party. Really great stuff. (via <a href="" title="Kubicek">Kubicek</a>.) (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-03-14T09:20:08+00:00 Quote: Rubber Duck Debugging <blockquote><p>We called it the Rubber Duck method of debugging. It goes like this:</p> <ol> <li>Beg, borrow, steal, buy, fabricate or otherwise obtain a rubber duck (bathtub variety).</li> <li>Place rubber duck on desk and inform it you are just going to go over some code with it, if that's all right.</li> <li>Explain to the duck what you code is supposed to do, and then go into detail and explain things line by line.</li> <li>At some point you will tell the duck what you are doing next and then realise that that is not in fact what you are actually doing. The duck will sit there serenely, happy in the knowledge that it has helped you on your way.</li> </ol> <p>Works every time. Actually, if you don't have a rubber duck you could at a pinch ask a fellow programmer or engineer to sit in.</p></blockquote><p><a href="" title="Andrew Errington">Andrew Errington</a>, from an <a href="" title="awk">awk</a> list-serv discussion on debugging.</p> (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-03-10T09:12:26+00:00 Quote: Font vs. Typeface <blockquote><p>When you talk about how much you like a tune, you don’t say: “That’s a great MP3”. You say: “That’s a great song”. The MP3 is the delivery mechanism, not the creative work; just as in type a font is the delivery mechanism and a typeface is the creative work. </p></blockquote><p><a href="" title="Stephen Coles">Stephen Coles</a>, typography enthusiast and contributor to <a href="" title="Font Feed">Font Feed</a>, on the distinction between the terms "font" and "typeface." (via <a href="" title="Jeff Croft">Jeff Croft</a>.)</p> (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-03-08T10:45:22+00:00 Quote: Causing Rain Storms <blockquote><p>We&#8217;re just a million little gods causing rain storms, turning every good thing to rust. </p> <p> I guess we&#8217;ll just have to adjust. </p></blockquote><p><a href="" title="Arcade Fire">Arcade Fire</a>, from the song "<a href="" title="Wake Up">Wake Up</a>."</p> (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-03-05T11:59:00+00:00 Link: Readability Now <em>here's</em> a <a href="" title="bookmarklet">bookmarklet</a> I'll actually use. From arc90, this tool takes that article you're reading at the Times and strips out everything but the title and the article content. No ads, no extraneous razmatazz, and no fuss. The only dissapointing part is that it removes story-related photos unless they're actually in the article body. (via <a href="" title="kottke">kottke</a>.) (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-03-03T08:38:12+00:00 Article: Moving Servers? An ExpressionEngine Tip. <p>At <a href="" title="Category 4">Category 4</a>, we&#8217;ve always used separate servers for development work and web hosting. Though the specifics of how that&#8217;s implemented are set to change in the near future, our basic model will remain the same. Development sites get a &#8220;dev&#8221; url while live sites get (naturally) a real, live url. If you&#8217;re like me and you&#8217;ve been following <a href="" title="ExpressionEngine">ExpressionEngine</a>&#8217;s <a href="" title="Knowledge Base article">Knowledge Base article</a> on porting an EE site from one server to another, let me share a secret. </p> <p> You&#8217;ve been doing it the hard way. </p> <p> I ran across the &#8220;Find and Replace&#8221; utility months ago when I was updating a client&#8217;s posts with some revised verbage, sitewide. This handy little tool does exactly what it says &ndash; that is, lets you search various resources in your EE database and replace specified bits within. You can find the Find and Replace utility by going to the Admin tab, choosing Utilities, and clicking Find and Replace. </p> <p> What I&#8217;d missed initially is that you can actually select &#8220;Site Preferences&#8221; as a find-and-replace target for one or (if you&#8217;re using the multi-site manager) multiple sites. The reason this is important is that many site preferences aren&#8217;t easily accessible any other way than, as the Knowledge Base article linked above implies, clicking through tabs and tabs of control panel options. Where before I needed to find every instance of &#8220;; and change it to &#8220;; through the admin interface, now I just use the included utility. </p> <p> With Category 4&#8217;s WordPress sites, we&#8217;ll typically dump the database and do a search and replace on the dump to get at all the possible locations where the address may need to be changed. For some reason (I think because EE tends to serialize data when it really doesn&#8217;t need to) that approach never worked perfectly with EE. </p> <p> But that&#8217;s fine. I like this new trick. </p><img src="" height="1" width="1" alt=""/> 2009-03-02T19:42:25+00:00 Link: django-chronograph Weston Nielson &ndash; who as far as I can tell doesn't have a personal site &ndash; recently released this handy little app that lets you set up cron jobs that act on your Django views, admin commands, or other scripts, all from within the built-in admin interface. I've never minded setting up cron schedules, but for a site with lots of periodic configuration, this little puppy could turn out to be a huge help. (via <a href="" title="TWiD">TWiD</a>.) (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-03-02T14:02:57+00:00 Quote: War in the World of Programming <blockquote><p>There is an unacknowledged war that goes on every day in the world of programming. It is a war between the humans and the computer scientists. It is a war between those who want simple, sloppy, flexible, human ways to write code and those who want clean, crisp, clear, correct ways to write code. It is the war between PHP and C++/Java. It used to be the war between C and dBase. Programmers at the level of those who attend Columbia University, programmers at the level of those who have made it through the gauntlet that is Google recruiting, programmers at the level of this audience are all people who love precise tools, abstraction, serried ranks of orderly propositions, and deduction. But most people writing code are more like my son. Code is just a hammer they use to do the job. </p></blockquote><p><a href="" title="Adam Bosworth">Adam Bosworth</a>, from a 2004 speech on the primacy of simple, sloppy systems over rigid, perfect ones.</p> (<a href="">#</a>)<img src="" height="1" width="1" alt=""/> 2009-02-28T20:09:37+00:00 Article: Elsewhere! <p>It&#8217;s hard to believe that it&#8217;s been two months since my son, <a href="" title="Asher James">Asher James</a>, was born. In a matter of hours, he&#8217;ll be returning from his first road trip with his Mom, leaving his Dad at home for four days to get junk done, fritter time away, and miss him. And his Mom, naturally. </p> <p> TNF has gotten the short end of the stick since Meg and I became parents. (I&#8217;m planning for that to change, for what that&#8217;s worth.) The lack of action here is partly due to the fact that I launched another site, <a href="" title="Dawsoning">Dawsoning</a>, a week or so after Asher was born. </p> <p> Dawsoning is my version of a (very public) baby book. It&#8217;s written in <a href="" title="Django">Django</a> and, in addition to providing a tidy little blog, aggregates Meg and my tweets, photos, and videos from sundry other places around the web. It&#8217;s fun to maintain because I barely have to touch it. Because the only people watching really care about the subject matter (my friends and family), I&#8217;ve gotten the strongest positive reaction of anything I&#8217;ve yet built on the web. It&#8217;s neat, really. Dawsoning gets a fraction of the traffic of this site, and yet it&#8217;s more loved by its followers. That&#8217;s a nice reminder for me of the relative value of resources on the web. Sure, a lot of people might be watching. But how many of those people really <em>care</em>? </p> <p> Anyway, for those that are interested, Dawsoning is where I&#8217;ve been spending a lot my time. I&#8217;m looking to shake things up around here a bit. But in the meantime, if you&#8217;re in the mood to browse through a a quickly growing archive of the life of some other guy&#8217;s kid, you&#8217;ve now got one extra option. </p><img src="" height="1" width="1" alt=""/> 2009-02-28T19:43:54+00:00