-
Fluid 960 Grid System
A really complete and nice-looking CSS framework that satisfies one common complaint about many CSS framework: lack of fluid-width support (I personally usually go fixed-width, but I know this is an issue for a lot of people). By Stephen Bau](http://www.domain7.com/WhoWeAre/StephenBau.html). Good stuff!
Visit -
24 ways: Making Modular Layout Systems
Jason Santa Maria details the CSS framework he built to craft the beautiful layouts he uses on his blog. It happens to be very similar to what I’ve been using for sometime, and also similar to how Blueprint CSS handles layout. I’m glad to see more people getting on board with this kind of thing. CSS should be used to build layout systems, not individual layouts.
Visit -
Django’s release process
Now that 1.0 is out the door, the Django team has put together a release process document. Looks good to me.
Visit -
Django From the Ground Up: Episodes 1 and 2
E-Flo is at it again with a pair of really, really good screencasts that take you through setting up a Django project from the very beginning. He is building a real live site (a sort of Twitter clone with a twist), walking you through it from step one (you can also download then entire source of the site). The first two episodes cover getting your source control environment set up, getting Django’s settings.py file all configured, and then creating the models. Really, really good stuff here, if you’re looking to learn Django.
Visit -
Reasons not to use django
The good news about this post is that all of the reasons mentioned are either a distaste for bits you can swap out for your favorite (ORM, template language), or things that are planned for Django 1.1 (aggregate support). Well, except for the guy who complained that Django doesn’t allow him to make very much money, since he charges by the hour. :)
Visit -
Darren Jones: Don’t Sweat the Unsemantic Stuff
A really smart post on the “unsemantic” nature of CSS frameworks that deal with layout, by Darren Jones, who created the Sparkl framework. The best line in the article is this:
> Remember [layout class names] don’t add any semantic value, but your page doesn’t lose any semantics by having them either.
This is the point I wish people would remember. Class names aren’t actual semantics, they’re fake semantics. They’re just a way for you to add some useful hooks for scripts and styles to hang on (and possibly for other people to mash with, in the case of something like microformats). Validators, screen readers, browsers, and the like couldn’t give one iota of a damn what your class names are. Likewise, is it really worth getting bent out of shape about too many
divandspanelements? Remember, these elements were specifically designed to have no meaning. It doesn’t matter if there is onedivor five hundred, the net gain is no meaning.Sure, it makes sense to use less presentational class names whenever you can and to only use as many
Visitdivsas you need to, but if the aesthetics of your fake semantics and countingdivelements starts to overtake getting your design just right, on time and under budget, then I’d say your priorities are out of whack. -
DjangoCon 2008 Keynote: Adrian Holovaty & Jacob Kaplan-Moss
Probably the single most relevant DjangoCon talk for most Djano developers, this fireside chat with Adrian and Jacob really covers the bases on where the framework will go in the future. As a sidenote, it also is a nice showcase of Jacob and Adrian’s personalities: they’re both really, genuine nice guys who are bright as hell but not at all opposed to criticism or other views (traits, which, in my view, have permeated the entire Django community). I’ve had my arguments with both dudes, but in the end, I love ‘em both. Great guys.
Visit -
Cappuccino Web Framework
I’m quite interested in Cappuccino and Objective-J. Too bad it seems the documentation sucks right now.
Visit -
Back to the great frameworks debate
Yeah, I’m going there. I want to talk about frameworks again. Bear with me…
I know I’ve discussed this topic at great length before, but it keeps coming up, and I still don’t have a very good understanding of all the positions people have taken on the topic. Last time I discussed this, I jumped to my own conclusions about why some people don’t like frameworks. This turned out to be a horrible idea, because people got on the defensive instead of trying to answer the simple questions I had asked. Let me be perfectly clear: I don’t care what your position is. If you don’t like frameworks, that’s fine. I’m just sincerely curious about why you don’t. I’m in no way trying to sell you on frameworks or tell you you’re wrong for not using them. I’m just trying to understand all sides. That’s what I do.
So, with that out of the way: if you’re not a fan of frameworks, I have some questions for you. I hope you’ll take the time to answer.
More -
Django 1.0 released!
Now this is interesting: a web “framework” written in Python, released today. Apparently you can use it to develop web sites more quickly and efficiently. I hear it even makes programming “fun.” It’s great to see new projects still coming out on this front.
Oh, what’s that you say? Django’s been available for three years and used in production on major news sites even longer than that? Weird. You would think it would be at 5.0, by now. :)
Seriously — congrats to everyone involved. I’ve been keeping up with the latest revisions, and I know this: the Django I fell in love with a coupe years ago is a total piece of shit compared to 1.0.
Visit -
Porting your apps from Django 0.96 to 1.0
Comprehensive guide to porting Django .96 apps to Django 1.0. Short version? You’re going to be doing a lot of boring, tedious work. Have fun.
Visit -
Using Akismet with Django’s new comments framework
Great example of how badass the Django signals framework is. Basically, it lets you inject code upon some event happening, such as an object being saved, deleted, or in this case, a comment being posted. I use signals throughout Savoy, such as to geolocate an object as its saved, and to add a tumblelog object when particular types of content are saved. It’s good stuff. This example also uses Django’s brand-spanking new comments framework.
Visit -
Eric Meyer: The Lessons of CSS Frameworks
Again from Jeremy’s great live blogging of An Event Apart San Francisco, here’s Eric on CSS frameworks. I’m glad to see someone else broaching this topic, and in general it looks like Eric did a great job of rounding ‘em up. A few bits and responses:
> If you’re going to use a framework, it should be yours; one that you’ve created. You can look at existing frameworks for ideas and hack at it. But the professionals in this room are not well served by picking up a framework and using it as-is.
Generally speaking, I agree. I have made great use of Blueprint — but it’s worth nothing that almost all of the basic concepts were created by me (along with Nathan and Christian). As Blueprint has progressed, it’s gotten farther and farther away from what we created, and I’ve been less enthralled by it. The point is: something you created yourself is always going to be more useful to you than something you didn’t.
> Four of them use psuedo-namespaced class names beginning with grid- or container- or span- (which you would apply to a div!?).
I’m not sure if the parenthetical is Jeremy or Eric speaking, but this is also worth noting: in the original CSS framework Nathan, Christian, and I created, you were not necessarily supposed to apply those classes to a
Visitdiv. The classes were for any element, and there was no encouragement to liter your markup with extraneousdivelements. The original Blueprint retained this philosophy, but later changed it, asking people to always usedivelements as columns. I find this to be incredibly wrong, and I always override this Blueprint functionality when I use the framework. If you are going to use adivfor every layout column/row/unit/whatever, you may as well just use tables. I hope everyone knows and understands that when I was touting Blueprint, it was before the made the boneheaded decision to require the use of adivelement for every column. -
Django 1.0 beta 1 released
I’ll be damned if it doesn’t seem like this whole Django 1.0 thing might actually happen. Be sure to read the release notes — there are several backwards incompatible changes (which are annoying, but it’s way better to get them out of the way before 1.0 than after it).
Visit -
GeoDjango, merged to trunk
GeoDjango is so far over my head that it doesn’t meant much to be, but I hear it’s awesome news, so I figured I’d link it up. :)
Visit -
Django signals
I found this great writeup of Django’s signals on Twitter today. Signals are an incredibly useful tool in Django, and one that is way under-utilized. I used them a lot back when I wrote the second version of lost-theories.com, and I use them a little bit in the Savoy content publishing framework I’ve written at Blue Flavor. I especially make great use of the pre and post save, and pre and post delete signals. Check ‘em out.
Visit -
Sparkl: A Fexible Web Framwork [sic]
Yet another front-end web framework, consisting largely of CSS (but this one also has some JavaScript). I haven’t really looked into it yet, so I can’t really comment on it.
For my tastes, I’ve yet to see the “perfect CSS framework,” (Blueprint’s first release was the closest — since then, it’s moved away from many of my preferences), but I’m really happy to see the concept taking off, since I wrote about it in A List Apart. Despite some negativity from other prominent members of the web standards community, I still really believe in the ideas of code re-use and standardization amongst teams on things like class names and markup conventions.
It still baffles me that some of the same people who go on and on about microformats don’t want to see standardization in class name for other things. Weird.
Visit -
Why the webstandards world appears to be choosing Django
I’m not entirely convinced that Django’s recent popularity has much to do with web standards, nor am I that convinced that Django is “winning” in our community over Rails or other modern frameworks — but, it’s true that Django allows those of us who value web standards to do our thing quite easily, and it’s good to hear that people are noticing that.
Visit -
SonSpring | 960 Grid System
Nathan Smith talks about the 960 Grid System CSS “framework” (I say in quotes, since that word seems divisive when applied to CSS) he recently released. It all looks very impressive to me, and I’m quite tempted to use it over Blueprint. Blueprint has changed several things since the work Nathan, Christian, and I did at the Lawrence Journal-World, and much of it is not necessarily to my liking (that’s not to say it’s bad — just not now I want it). Nathan’s 960 is a bit closer to what I want, grid-wise (and is a bit lighter weight, as it doesn’t really bother with typography). I’ll definitely be giving it a closer look in the near future.
Visit -
960 Grid System by Nathan Smith
The awesome Nathan Smith has released a CSS framework for grids. It’s very similar to Blueprint, but uses some different naming conventions and a 12 or 16 column default grid, instead of Blueprint’s 24 columns. Looks very useful. Nice work!
Visit -
Paul Bissex is working on a Django book
Awesome news. The more Django books, the better. Congrats, Paul!
Visit -
Media Temple offering Django beta program
Having played with a friend’s (mt) Django setup, I can say that it’s definitely well done. Neat, clean setup that works well. Personally, I’m sticking with [WebFaction(http://www.webfaction.com/?affiliate=jcroft) — they’ve always been great to me and I simply have no reason to switch. But, it’s great to see another reputable name in hosting jumping on the Django bandwagon. Welcome to the party, (mt)!
Visit -
James Bennett: Shared hosting is not a ghetto
Have to agree with James’ response to Twitter developer Alex Payne’s Shared Hosting is a Ghetto.
Visit -
YUI 2.4.0 Released: CSS Selectors, Charts, Profiler, Script/CSS Get, and JSON Support
Tons of new stuff in the latest release of YUI. I’m particularly stoked about CSS selectors. Awesome. Can’t wait to play with it.
Visit -
Webfaction just got a lot better
Webfaction, my favorite Django host, has drastically improved its plans (and redesigned its website). They now offer unlimited websites, domains, e-mails, databases, and applications on all plans — plus, they’ve increased the amount of bandwidth, RAM, and disk space each plan gets.
Besides being great at Django, WebFaction also does Rails, TurboGears, and several other modern development environments.
Booyah! Go getcha some WebFaction!
Visit -
Jonathan Christopher: Closing this Chapter on CSS Frameworks
Jonathan has a nice follow-up to the CSS framework discussion here. At one point, he says:
It seems for many of the arguments either for or against CSS frameworks have a related counter-argument, which could be the reason this debate has been circular for so long.
Indeed. What it boils down to is that the decision whether or not to use a CSS framework (or whatever you want to call it) is a personal one. Therefore, it’s probably a bad idea for anyone to say definitively, “you should/shouldn’t be using CSS frameworks.” It’s roughly the same as saying, “you should/shouldn’t be using Fireworks instead of Photoshop” or “you should/shouldn’t be using the CSS shorthand properties (i.e.
backgroundinstead ofbackground-imageandbackground-repeat).They’re all just tools, and which one someone choose to use or not use is just personal preference. We should all probably just let people have their preferences in piece.
Visit -
Boilerplate: A CSS framework
Nathan Borror (my friend and former colleague, who happens to be one of the best designers I’ve ever worked with) has released Boilerplate, a new CSS framework. He says, “I’ve started this. It’s a work in progress. I will explain later.” He also says:
A simple CSS framework that reduces redundant boilerplate code, imposing as little semantic suggestion as possible.
As initial author of Blueprint CSS I’ve taken a lot of my original code and some of the current iterations of Blueprint to form a stripped down simple framework that provides the necessary CSS essentials. There is very little semantic suggestion which allows you to craft good semantic markup.
Boilerplate does not include a grids component, from what I can tell (the grids piece of Blueprint is arguably the most useful piece, and certainly the most controversial and divisive).
Looks like a terrific start towards a framework for those who are concerned about Blueprint’s visual class names.
Visit -
The final word on frameworks, from someone way smarter than me
If you’ve been paying attention, you know that a simple discussion about CSS frameworks has turned into quite a bit of a mess. This is in large part due to inadequacies in the way I presented my thoughts, and also in some part due to what can only be called hypersensitivity, snobbery, elitism, and flat-out ignorance on the part of a lot of CSS authors. Thankfully, someone much more level-headed than me and, quite frankly, a lot smarter than all of us, is here to save us all. He’s James Bennett, a Python and JavaScript programmer extraordinaire who also happens to be a solid CSS author. James wrote a freakin’ great piece called Let’s talk about frameworks (again), in which he explains a lot of things that the vast majority of web designer simply don’t understand.
This concept of “frameworks” is pretty new to us designers and CSS authors. However, it’s not new to engineers. These guys have been dealing with frameworks, libraries, and snippets since the dawn of ages, it seems. James helps to explain why, from the perspective of a programmer — a very experienced, very expert-level one — frameworks are often developed, used, and published. He talks about the advantages and disadvantages of frameworks to developers, based on of many years of computer science and frameworks being built and used for almost every computer language ever created — years that us web designers simply almost never have (most of us are not programmers at all, and certainly not serious ones who have great experiences outside the realm of simple web scripting).
More -
Semantify, for Blueprint
A really useful tool for anyone who finds “making Jeremy Keith feel warm and fuzzy inside” on their web site’s priority list. By Christian Montoya.
Visit -
A follow up on CSS frameworks
Wow. Less than 24 hours after my last post, there have been nearly 100 comments posted, and I’ve seemingly managed to piss off half the Internet. It seems some people took major offense to my thoughts, although no one has came forward to told me why (Andy Budd said on Twitter, “you’ve managed to tick off quite a few ‘limeys’ with your post,” but he didn’t answer when I asked why.
Of all the topics I’ve ever written about, I would have thought CSS frameworks would be one of the most non-controversial. Apparently, not so. I thought I’d follow up by trying to detail what I’ve learned after a century of commentary on the past in question.
More -
What’s not to love about CSS frameworks?
Over the past several weeks, I’ve been bombarded (in e-mail, in person, and over IM) with questions about CSS frameworks. I guess I wrote the book on this topic (and contributed, if inadvertently, to one of the most notable CSS frameworks out there), so it’s completely understandable people would come to me with these questions. The question almost always sounds something like this:
“I’ve read what you’ve written about CSS frameworks, and it sounds great…but [insert name of a usually-British CSS guru here] said they were bad. What do you think about what they have to say?”
More -
Choke Web Development Framework 1.0
A very complete-looking web development framework. Too bad it’s based on PHP. Other than, it’s perfect.
(Yes, this is a joke.)
Visit -
Blue Flavor Blog: BlueprintCSS 101
At Blue Flavor, we’ve been using BlueprintCSS some to help streamline the building out of our designs with CSS. After a few weeks of use, I thought I’d write a post on what Blueprint is, we like about it, and how it fits into our workflow.
Visit -
Digital Web: jQuery Crash Course
Although I’ve been using YUI a lot lately, I have definitely felt tempted by jQuery. I think I’m going to give it a shot and see what I think — Nathan Smith’s crash course looks like a great place to start.
Visit -
Adactio: Wireframework
Jeremy doesn’t really want to use Blueprint for production sites, but thinks it could be great for wireframing. It is great for that. I like it for production sites, too, but it’s definitely great for wireframing.
Jeremy also mentions the fact that Blueprint only has one grid size. I agree this is a major shortcoming, and it’s one we had licked at the Journal-World when we created the CSS. We had a Python script that used Django templates (which Christian wrote) to generate the grids.css file with any number of columns of any width we wanted. Although python and Django aren’t the right solution for Blueprint, I do hope Olav finds a solution to this shortcoming.
Visit -
Mark Boulton: Blueprint. A CSS Framework.
Besides Mark’s writing, take a look at the comments, especially where Simon Willison gets in on the action. Simon seems to share my view that non-semantic class name may be a necessary evil — and he articulates the position well. It’s not that we think semantics are unimportant, it’s just that we also think practically is important. Simon says:
(The non-semantic nature of Blueprint’s class naming scheme) does bother me, but what bothers me more is how incredibly difficult it is to write maintainable CSS that can be updated and managed by a team of people.
Exactly.
Visit -
Simon Willison: jQuery in 15 minutes
I’ve been mostly using YUI in my last few projects, but Simon definitely makes jQuery look appealing. Might have to give it a good look one of these nights.
Visit -
Subtraction: The Framework Formally Known as ’Prints
Khoi interviews Olav, the guy who has packaged up a lot of the work we did at LJWorld.com (along with some more work!) into a handy CS framework called Blueprints. It’s a great little interview.
For the record, I was surprised and a bit taken aback when I first saw that someone else had packaged up a lot of our work and released it publicly, but in the end I’m very pleased about it. There some great stuff in there, and Olav has added to it, and done a great job of documenting it and supporting it. And, he definitely gives credit to everyone involved — he was never trying to rip us off. He just wanted to provide something useful, and I’m glad he has!
Visit -
YADTLRfRoR: The Ruty Template Engine
Yet Another Django Template Language Ripoff for Ruby on Rails. There sure seem to be a lot of these for a framework whose creator hates template languages. :)
But seriously — it looks like it does most of what Django’s wonderful template language does, so if you’re a Rails guy, give it a look.
Visit -
Blueprint: A CSS Framework
Blueprint is a CSS framework based very heavily on the work Nathan, Christian and I did at the Journal-World (and also taking some cues from Wilson Miner and Khoi Vinh). I’m happy to see it out there and someone else supporting it (since we never could have), but I do sort of wish I’d at least gotten a heads up that someone was planning to package and release it. I suppose Olav didn’t need to ask for permission, but it would have been the polite thing to do. We never really intended our work to see the light of day, but I’m not really bothered that is has. And, Olav does give credit where credit is due.
Anyway, it does look good. It’s got a few minor improvements on what we had built and is packaged very neatly. Give it a look, if you’re interested in this sort of thing.
Visit
