To commemorate the first version of my Python Gowalla API Client, I’ve created a mock item for it. I plan to make a small intro/how-to page for it, but now I’ll just tease it with this banner.
If you haven’t already, check out the client here:
To commemorate the first version of my Python Gowalla API Client, I’ve created a mock item for it. I plan to make a small intro/how-to page for it, but now I’ll just tease it with this banner.
If you haven’t already, check out the client here:
After looking at a the instruction manual for a Lego set, I got an idea for representing the peculiarities of the standard and Internet Explorer 6 box models. These will be used in a CSS “anti-framework” I’m developing. More on that soon, but for now, here are my box model diagrams.
The layers represent the stacking order of each element (something other diagrams come close at representing, but aren’t nearly as detailed at portraying).
Standard box model:

Internet Explorer 6 box model:

If you would like to use these, be sure to attribute Drew Yeaton (drewyeaton.com) wherever they appear.
Last week I noticed that the Gowalla site expose some API GET calls that were yet to be announced. So, on the weekend I made a wrapper for these calls in Python and packaged the code up in order to release it on Github.
So, now that the Gowalla API is officially out, I believe I have the first public Python client. :) Check it out here:
If you fall into the extremely unlikely event where you both need to access DB2 with CodeIgniter and have run into a situation where the latest database driver doesn’t work, I’ve got the fix for you. This may be because you are setting the charset or you require a different port than 664 (50000 being the port used by many for DB2).
Hence, I have updated the driver to heal all that ails.
Let me start by saying I really love the idea of saving time when I design and develop a site—I use all kinds of time savers. Any well thought out system that results in cleaner, more maintainable, simpler code is definitely a good thing. Thusly, I’ve used CSS frameworks in the past to save time building layouts and creating grid-based, standards-compliant websites. So, why isn’t Blueprint (or any other CSS framework) a good idea?
To answer this question, you must acknowledge that CSS is not a language that can be properly generalized with a conceptual structure. This is the reason why Jeffrey Zeldman writes the words CSS framework as CSS “framework”—that is, these things are not really frameworks in any sense of the word. They are (or attemtp to be) a one-size-fits-all stylesheet. Given this, the reason why these “frameworks” are bad is not about the frameworks themselves, it’s about the pattern they force you into.
What do I mean—ok, take for example a site I launched for Flipswap a few month back. The total time for designing, developing, copywriting, and launching the site was a little over two weeks. We cut out some best practices like IA and an exhaustive comping stage, but also took liberties with the development of the site. To quickly set type and control measure on a wide page, you normally split large chunks of copy into columns, add a sidebar for meta data, and all the usual stuff that makes a page with a lot of copy easy to digest. However, given our short timeline, I setup Blueprint and did my layout with div’s and classes while marking up the copy. This was a very simple and quick process and we got out some reasonably attractive pages on time. The key here was that I was saving time by doing design/layout while I was writing the markup. I was mixing my content layer (HTML markup) and presentation layer (CSS).
What I had done was paint myself into a veritable corner. That is, I had ignored the good natured sensible me that would markup the copy with semantically sounding classes and ids in favor of a me that was essentially creating a table layout. This is the pattern that Blueprint and other CSS frameworks force you into. When it comes time to redesign or reuse pages for a future site, I will have to redo everything over again. That’s not so much a timesaver as it is a pain in the ass. For the sake of clarity, here’s some example HTML to illustrate my point:
Valid, standards-compliant Blueprint framework-based layout
<div class=”span-20”> <div class=”column span-10”> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> </div> <div class=”column span-10 last”> <p>Iqui officia deserunt mollit anim id est laborum.</p> </div> </div>
Valid, standards-compliant table-based layout
<table width=”200”> <tr> <td width=”100”> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> </td> <td width=”100”> <p>Iqui officia deserunt mollit anim id est laborum.</p> </td> </tr> </table>
Honestly, what’s the difference between these two things? Both have no content/presentation separation and no semantic markup. When you design with a CSS “framework” you may as well design with tables. Welcome to 1997, how does it feel?
So, what could a CSS framework be good for? It’s good for the one scenario where you are using a CMS and you have no control over your CSS, you can handcraft your non-semantic HTML by hand, and you never-ever plan to redesign or repurpose your content in an altered form. And that’s it.
Last night I did some regiggering to the Sentinel Design Group site in order to do a bigger redesign quicker and easier in the next few days. Part of that process was upgrading to Nanoc 3, a Ruby-based CMS that generates flat HTML. It’s a pretty simple concept—one that you wouldn’t think is all that helpful—but it really speeds up development.
The interesting part, though, is that I finally added some Typekit flavor to my copy. I’m a sucker for well-designed, subdued style type, and Typekit finally added a bunch of this from the FontFont type foundry.
For the headings I’m using FF Meta Small Caps Web Pro and for the body copy I chose FF Meta Serif Web Pro.
Before:

After:
While I was checking out this slick email marketing site Mail Chimp, I noticed something rather peculiar—the crowd behind the chimp looked uncannily similar to something I’d produced a few years back. I thought for sure they had somehow dug into my discarded pile of Flipswap comps and gleaned a piece of my work. But, alas, it turns out even though there is a likeness, no wrongs have been committed.
I’m kidding of course. But, check it out for yourself. Here’s an unused development comp from April 7, 2007. (Avert your eyes from the hideous Arial Rounded MT Bold, it was the company’s standard type at the time.)

Now, here’s a very similar angry crowd almost two years later:

And the crowd sans-chimp:

By the way Mail Chimp, if you want to pay me back for the artwork that you didn’t steal, I’d totally love to get my hands on that $240 plan for the sweet price of free. Wha’dya say?
Whenever I recognize a font that I’ve used before, I immediately develop an irrevocable hatred for it. The latest recipient of this maddening dislike is exljbris Font Foundry’s Museo, an organically-seriffed typeface that I used in the last revision of the Flipswap site. A specimen:

See, here’s how I used it:

The problem came when I saw these two sites last week. These two services look very interesting, but why must they ruin this font for me. I mean, for the love of god, it was free and good. Exhibits A & B here:


By the way, if one of you guys from SimpleGeo could pass me some love in the form of a Beta account, I’ll consider it payment for the beta apps I helped test for CrashCorp. He he he.
Here is a bit of the code we’re using on a new site redesign. We needed a custom, more descriptive title on certain pages.
It grabs a title from a custom field if you set one, or just gets the page title if you don’t. Also, since WP doesn’t display the page’s title if you’re on the homepage, we’ll grab custom text from the site’s description (which we don’t use for anything else).
<title>
<?php
$sep = ’ | ‘;
$site = get_bloginfo(‘name’);
if(!$title = get_post_meta($post->ID, ‘title’, TRUE)) {
// we need this because page title
// isn’t shown when on homepage
if(is_front_page() || is_home())
$title = get_bloginfo(‘description’);
else
$title = wp_title(”, FALSE, ‘right’);
}
echo($title.$sep.$site);
?>
</title>
![]()
Ok people, this is what happens when you don’t have HIG (human interface guidelines) for your platform. These Android Developer Challenge entries represent a core sample of the best applications Android has to offer.
Based on the icons alone, it is clear what kind of junkiness you can expect in app they represent. This kind of stuff is endemic in the open source community.
![]()
![]()
![]()
![]()
![]()
Do any of these scream “quality” to you?