Posts in the Tech Category

Framework Fix

Published 20 years, 1 month past

“You know,” I said to the guys at the car lot, “I just don’t understand the deal with this car here.”

“Oh, it’s absolutely worth it!” they exclaimed.  For the next half-hour, they extolled the power of the engine, the smooth handling, the tight cornering, the rakish styling, and all manner of other wonderful features of the car.

“Wow,” I said.  “Thanks!  But it turns out that what I didn’t understand was how that steering wheel thingy and the foot pedals worked.”

That, in a nutshell, is what happened with the frameworks post.  Predictably, it drew a large number of detractors and supporters of various frameworks, and of the whole concept of frameworks.  Since I focused a good deal on how the tutorials and other materials (yes, including the effin’ manuals) confused me, it should have been no surprise that there’d be a whole lot of debate about the “hype” surrounding frameworks.

But here’s the thing: I didn’t get what frameworks really were.  I wasn’t complaining about the hype.  I was complaining about my lack of understanding, and to a large degree how little help I’d found in correcting that problem.  This is, as it turns out, because my problem was such an elementary misconception that no framework documentarian would think to address it.

How elementary?  My perception was that frameworks were ways of putting a simpler (or perhaps just different) syntactical front end on a language.  My belief about Ruby on Rails, for example, was that the Rails part was almost like a new interpreter that hid Ruby from the programmer.  I didn’t grasp that it was Ruby.  I thought it was a simplified or more elegant or somehow different language that generated actual Ruby on the back end, the same way Ruby or any other language interpreter eventually generates assembly language (or, if you like, a lot of ones and zeroes).

So that was the “very basic, fundamental, obvious thing” I was missing.  Hard to get much more basic than that, really.  I’m entirely not sure how I formed that perception, but there you have it.

My perception now, as I explained in a comment to my own post, is that frameworks are:

A framework… can be thought of as a collection of libraries, though in actuality a good framework is both that and a formalization of best practices, condensed into an efficient syntax and approach.

That may not be 100% accurate, but it’s a hell of a lot closer than before.  As a result, I feel like I have a much better grasp on the situation and no real reason to worry, so thanks to everyone who commented.

Oh, and I swear that Mr. Snook and I had no idea we’d be publishing on the same topic at nearly the same time.  At least, I had no idea.  If he did, then I’d like to talk to either his fortune teller or his server access logs.


Flummoxed By Frameworks

Published 20 years, 1 month past

I used to be a programmer.  Way back in the day, I wrote great big heaps of BASIC and Turbo PASCAL 4.5 and worked in a few other languages of that era (I may be one of the few people left who remembers Clipper).  At one point, a high school friend and I worked on creating our own command-line environment for the C64, for no other reason than it seemed like a fun challenge.  I’ve written quite a bit of JavaScript—not like a wizard, but well enough to get some things done—and a fair amount of PHP.  These are languages that I understand, that make sense to me.  I can make them do what I want to do.

But I just don’t get all these new-fangled programming frameworks.  Is something wrong with me?  Seriously.  I have this grumpy, churlish feeling that I suspect is rather similar to the way SGML experts felt when they saw HTML becoming so popular, and that scares me.

People who’ve drunk the various kinds of framework kool-aid don’t make it any easier, though.  “Oh”, they gush, “you should absolutely try Ruby on Rails!  It’s so easy!  It’s almost like writing regular English!”  Which means they’re clearly on crack, because Ruby on Rails is so very different from a human-written language that the few ways in which it sort of resembles prose, assuming you look at it under a dim light through a heavily fractured fresnel lens, serve only to confuse me further.  I have many of the same problems with MySQL, actually:  by dint of its being sort of human-like in its syntax, I’m led into all kinds of incorrect assumptions about what I can do.  Thus I spend a lot more time screaming at opaque error messages than seems necessary, just because I thought a comma made sense when the language didn’t.

I’ve looked at all kinds of different intros and tutorials and “for regular folks” resources, most of which I get from Simon‘s linkblog, for a number of different frameworks.  They serve only to confuse me.  The CakePHP 15-minute blog tutorial?  Didn’t get it, and remember, I can write PHP relatively well (I wrote all of An Event Apart‘s registration stuff using PHP and MySQL, for example).  The oft-recommended Tutorial in Ruby on Rails?  Lost me, Coach.  Even Jeff Croft’s Django for Non-Programmers left me in the dust.

All these frameworks’ proponents say “Just write in this totally simple and obvious way and the messy details will be magically handled for you!” but that’s just not how it works.  You have to write in a very specific and unintuitive way, and unless you know specific magic words and what roles they can take then nothing will happen except the return of an error message.  This is no different than any computer language, of course.  What I think bothers me is that the cheerleaders always seem to believe, or at least pretend, otherwise.

Maybe it’s just that the tutorials never seem to clearly state what’s a piece of built-in magic that I’ll learn about later, what’s something that I’m building myself, or whatever.  I mean, look partway through Jeff’s Django piece.  I don’t mean to pick on Jeff, because he’s not doing anything worse or even different from the other stuff I’ve read; it’s just the one I happened to read most recently.  Anyway, he says, and I quote:

These four lines create a very pretty admin area…. with appropriate entry fields for all of your fields.  The “pub_date” field will automatically get a pop-up calendar for choosing a date. The “enable_comments” field automatically knows to use radio buttons for its interface. The “lead_image” field will be a browser-based upload tool. Et-cetera. Without doing a thing, you’ll get an admin interface the likes of this…

That whole interface just magically happens?  How and why?  Is it part of the Django core?  Why?  Is it useful for other stuff besides what we’re doing here?  How?  Did all this happen based on the class I created, or the variables I defined, or the values I gave them?  How can I tell?  Where can I find a list of the magic things?  How can I re-use them; or, put another way, how far will the magic things stretch?

I feel like there’s some very basic, fundamental, obvious thing that I’m missing, but I don’t even have the necessary level of knowledge to frame the right question.  Or questions.  See?  I don’t even know how little I know.  Is it that I spent too much time doing old-style programming, and so I’m too suspicious of anything I didn’t write myself?  (In which case you’d think I’d be an assembly-language kind of guy, but I’m not.  At all.)  Is it that for years I taught myself programming languages using reference manuals, so I need that kind of function listing before my mind will start to absorb a new language?  Is it just that I’m too old now and my mind isn’t sufficiently elastic to take in radically new concepts?

Basically, my nose is telling me that I’m up a putrescent watercourse and I lack a means of locomotion.  Maybe I’m not alone there, but sometimes it sure seems like it.


Taste the Vitamin

Published 20 years, 2 months past

The new weekly web-design ‘zine Vitamin (a.k.a. Yet Another Major New Project From The Carsons) launched earlier this week to generally positive notice from the design community.  I was glad to see this for three reasons.

  1. I wrote one of the launch articles, “Making Popular Layout Decisions“.  Although now that I think about it more, maybe that should have been “Making Unpopular Layout Decisions”.  Anyway, it’s a commentary piece that will probably annoy a few hard-core purists.  That always makes for a success in my book.
  2. I’m a member of the Advisory Board, so I have some stake in seeing it do well.  I’d hate to have things go badly due to my being a bad advisor!  Especially since I’m kind of new to the advisory game.
  3. It demonstrates that there’s plenty of room in the web design community for such resources.  Not that there’s anything wrong with what we have—after all, I love A List Apart so much, I wrote the markup!—but it’s a sign of renewed health and interest in the field.

Oh, and speaking of Carson projects, I hear this May’s Professional CSS XHTML Techniques workshop is almost sold out—so if you’re interested, better get cracking.  (The same is true for AEA Chicago, as it happens.)


Praise IE, Go to Jail

Published 20 years, 2 months past

A week or so back, the shattered remains of a wasps’ nest appeared in our driveway.  Despite the fact that it’s clearly vacant—even wasps know when it’s time to find new digs—I still tread carefully whenever I walk past, avoiding them out of some latent respect for the threat they once contained.

You’d think I’d behave in a like manner in the rest of my life, but no.  For example: I recently spoke well of the IE team and their efforts.  Kind of an obvious goof, really, but I’d hoped for a different outcome.  It’s the incurable optimist in me.  And when I say “incurable”, I mean that in the sense of “disease that can’t be purged from my body and will no doubt one day kill me”.

While the enraged buzzing took many forms, the comment that seemed to distill the bulk of people’s anger was this:

“How am I supposed to trust a smiling face of some developer at Microsoft when the company as a whole was charged with being an illegal monopoly not too long ago?”

Because one is a person, and the other is a corporation.  I realize that American law moronically (and, in a certain sense, unlawfully) equates the two, but they really are distinct concepts.

You can dismiss my attitude as the biased perspective of someone who personally knows members of the IE team.  That would be a major miscalculation, because it’s those personal relationships that make my observations different than what you’ll find elsewhere.  Think what you will of Microsoft, but there are actual people working on IE, and they’re by and large people who care about the same things we care about.  They are part of this story.  If you think they’re minor nodes in a monolithic collective consciousness, then boy, do you ever have a lot to learn about how large organizations function.

Allow me to draw an analogy, if I may.  While at Mix 06, I was talking with one of the senior IE team folks about improving standards and the browser market.  He said to me, “So what is it the Web design community wants?”—as if there is a single such community, and it always speaks with a unified voice on all matters.  Does that sound like the Web design community you know?  Does that even sound like any arbitrary collection of five Web designers you know?  (Aside to WaSP steering committee members: feel free to take a ten-minute laughter break.)

So why do we assume that Microsoft, a company with tens of thousands of employees working in hundreds of teams and units, would be any more unified?  Sure, the PR department speaks with a single voice.  To take that as representative of every Microsoft engineer is like ceding all authority for your thoughts and opinions on Web development and design to the Web Standards Project.  Anyone volunteering for that?

Not me, thanks.  Not even when I was a member, back towards the end of the last millennium.

This is what I said to him, by the way, except I compared the Web community to Microsoft, with all its subunits and competing voices and priorities and goals.  He got what I was saying instantly, even though it let him down a bit.  His job would be easier, after all, if the Web design community were a unified collective.  It’s certainly less mental effort to think of “the other camp” as being a Borg-like hive, isn’t it?

A few people accused me of being lulled into missing the Great Looming Threat of Microsoft’s non-standards efforts.  For example:

“…Microsoft spent those years planning and building WPF, to lure Web developers into its proprietary and patent-protected embrace. And that should have you most concerned.”

Been there, done that, got the T-shirt, wore it threadbare, and repurposed it as a cleaning rag.  I was openly expressing precisely that concern back in October 2003, which as you may recall was near the middle of said years.  The aggregate response of the community was a disinterested shrug.  This was largely true whether I posted publicly or talked to people one on one, as I’d done in several cases in the months before October 2003.  The only place I found any similar concern was with some folks at Macromedia, thank you very much.  Everyone else seemed to think I was on crack.  So sorry, but I pretty much wore out my concern back then.  You can have it now.

Besides, over time I’ve come to see WPF (as it’s now called) as being very much like Flash, which it clearly wants to supplant.  Despite all these years of Flash being very widely installed, and all the years of Flash being able to do XML data exchange with servers to cause dynamic updating of pages—you know, like Ajax does—the Web has not become an enormous Flash application.

I thought the most interesting observation was this one:

“Dave Shea pointed out… a few months ago that one reason [for IE7] may be that Microsoft, in developing things like live.com, are finally having to eat their own dogfood, struggling to get things working on their own browser, and that as such there may have been internal pressure to get things up to scratch.”

That makes a certain amount of sense, though I’m not about to accept it as the sole reason for IE7’s development path or even its existence.  I think there were a whole lot of factors that drove IE7 into being, and standards support was honestly pretty far down on the list.  I, for one, am deeply grateful that the IE team seized on the opportunity to build better standards support into the browser, whatever the internal rationale they used to justify it to the higher-ups.

I’m also impressed with the CSS and other advances in IE7, and with how the IE team is managing the development process to accommodate the needs of Web developers and designers.  They didn’t have to do any of that.  After all the crap they’ve had dumped on them the last decade or more, they have every reason not to care about what’s best for the Web.  Despite this, they still do.  Recognize and respect that, if nothing else.


Still Here

Published 20 years, 2 months past

I’ll get back to the whole IE7 thing in a day or three.  Sorry to start the conversation and then go silent, but I’ve recently learned two things.

  1. The week after announcing a new event over at An Event Apart (like, say, AEA Chicago) is always very busy as registrations come in, people contact us with questions, posts have to be written, and so on.
  2. The week before an event (like, say, AEA Atlanta) is always very busy with travel preparations, double-checking of arrangements, last-minute tweaks to talks, and so on.

So of course we’d set things up to have both happen the same week.  With another conference on my schedule for the end of the same week as AEA Atlanta.

Anyway, as I say, I’ll get back to the blogging Real Soon Now.  In the meantime, I have two new appearances to announce (in chronological order).

  1. 27-28 April 2006 – Iceweb 2006 – Reykjavik, Iceland

    I’ll be presenting “The One True Layout?”, which will be a detailed look at the pros and cons of techniques debuted in Alex Robinson’s article.  A bunch of other big names will be there as well, despite which I got top billing on the site’s speaker list.  Ha!  Take that, Mr. Dave “I’m Too Sexy For The Web” Shea!

  2. 12 May 2006 – Carson Workshops – London, England

    This will be an updated version of the full-day seminar “Professional CSS XHTML Techniques”.  Seating on these is quite limited, so you might want to register early and often.  Or at least early.

That’s it for now.  I hope to be back soon.


An Event Apart Chicago

Published 20 years, 2 months past

Back when we announced An Event Apart Atlanta, there was a promise of more cities to come:

Can’t make Atlanta on April 3rd? Event Apart seminars in Seattle, Chicago, and Los Angeles (not necessarily in that order) are up next.

The first of those three has now been announced: An Event Apart Chicago, to be held June 2nd, 2006 at the Gleacher Center right in the heart of downtown Chicago.  Not only will this show reprise the speaker lineup from our Philadelphia show, but our first foray to the Windy City will also feature Jim Coudal as a guest speaker.  He’s a respected Web designer and founder of Coudal Partners, the guy behind Jewelboxing, The Show, and The Deck, and (along with Jason Fried) opened this year’s SXSW Interactive.  He hasn’t chosen his specific topic as I write this, but as far as I’m concerned he can call it “An Hour of Jim Coudal Talking About Whatever The Hell He Wants”.

Registration is already open, so if you’re planning to attend, don’t tarry.  (In fact, just as I went to post this, the first registration came in!)  We have a hard limit on the number of seats available, so when they’re gone, they’re gone.  Much as it pained us, we had to turn away a number of people from the first two Events.  If you want to avoid paining us further, register soon.


IE7 Improvements and Bug Tracking

Published 20 years, 2 months past

Over on IEblog, Markus Mielke has a great IE7 post with screenshots of a CSS Zen Garden-inspired layout showing off fixed positioning, PNG alpha channels, arbitrary-element hover, and so much more.  There are those who have called for its inclusion into the Zen Garden, but as Dave points out, it would break in IE6 and so couldn’t qualify as an official design.  Oh, the irony.

Getting back to Markus’ post, he has this to say near the end:

…we are now layout complete with the release of the MIX build – we don’t plan to add more layout features or drastically change layout behavior. This gives web developers a chance to test and prepare your pages for Vista Beta2 and the final release of IE7.  There are still bugs and missing features (display tables, generated content to name a few) we would have liked to do for IE7 but based on your requests to have some lead time to test your pages we need to lock it down now to be able to ship IE7.

So there you go: no more CSS functionality will be added to IE7.  Anything that isn’t there, like CSS table properties and the like, will have to wait for a future version.  As has been publicly stated, though, we won’t have to wait five years for the next version.  There’s no solid guarantee of how long or short a wait there will be, but Bill Gates himself said that new versions would come out more frequently.  The IE team reiterated this.

So will current bugs in IE7’s CSS handling be fixed?  I give that a solid “maybe”.  Markus has left the door partway open by saying that there are no plans to make drastic changes to layout behavior.  That could mean that if a bug fix only causes minor changes, then it might get in.  On the other hand, it could mean that unless existing behavior causes massive problems (or crashes), no bug fixes will be taken until after IE7.  Personally, I wouldn’t count on it, but I’ve been wrong before.

Then, in the same post, Markus drops an entirely new bombshell:

The good news is that we are in the progress of building up a public bug database where you can submit your issues, track their progress and see when we internally fix an issue – Al is going to post about this soon.  Your participation will help us greatly to improve IE and also help us to prioritize what bugs to fix for the next releases.

Sweet fancy Moses—a Bugzilla for IE?  There was no mention of this within my earshot at Mix 06, so I’m as surprised as anyone else.  Did I fall down a rabbit hole and quaff a bottle labeled “DRINK ME”?  If this is a dream, I don’t ever want to wake up.

The Redmond-haters will claim that this is just a lot of catch-up, played years late, and amounts to little more than aping what Mozilla and other browser makers have been doing—better standards support, a tabbed interface, open bug databases, and so on.  It happens that they’re right, but what’s wrong with that?  The IE team has looked over what happened while they were in hibernation and is emulating the best of it.  That’s not lame, that’s smart.  And it should have other browser makers a little bit worried.  A lot of their success has been due to Microsoft’s complacency.  They’re going to have to be a lot sharper and more nimble now that the 800 pound gorilla is actually awake and paying attention to its surroundings.

No, I don’t think IE will wipe everyone else off the map, but I do think the browser space is getting a lot more interesting.  What makes it particularly interesting is that the competition is not going to be over who can add the coolest non-standard geegaws, but who can deliver the best product based on the same standards as everyone else.

I’ve wondered what that would be like ever since I got seriously into standards back in mid-1996.  I almost can’t believe that there’s a chance I’ll get to find out.


Mixed Impressions

Published 20 years, 3 months past

Actually, I shamelessly used that title simply because it’s a little play on words.  By and large, my impressions of Mix 06 and what I’ve seen here are positive.  This isn’t my last word on everything going on here, but I wanted to share.  Enjoy!

  • You can drag-rearrange tabs in Firefox just by click-and-dragging the tabs.  Seriously, I had no idea.  Thanks to Dan Short for setting me straight on that score.

  • In his keynote, Bill Gates said “we need microformats”, which I didn’t even know was on his radar.  For more about that, head on over to microformats.org.

  • Microsoft is coming out with a new Windows-only Web design tool called Expression.  It’s pretty slick, with features like visually illustrating margins and padding in the design view and what seemed like smart management of styles.  Unfortunately, I had a little trouble following what it was doing, mostly because I saw it presented in a talk and didn’t have hands-on time.

    Basically, Expression seems to be FrontPage done right, with a relentless focus on standards-oriented design principles. It has its own rendering engine for the design view, and the whole thing was built from the ground up, which means it isn’t trapped by legacy rendering concerns, but it made several of us wonder why that isn’t what they use in IE7.

    I also had trouble mentally distinguishing it from other visual Web design environments like Dreamweaver, but that’s probably because I don’t use a visual design environment.  BBEdit 4-evah, baby!

    Speaking of which, there are no plans to port Expression to the Mac.  Whether that’s good or bad probably  depends on your worldview.  Look for public betas of Expression somewhere in the June 2006 time frame.

  • It was publicly stated that the current build of the IE7 beta available from Microsoft is rendering-behavior complete.  In other words, the only changes to IE7 from now until it goes final will be fixes to security holes, crash bugs, and browser chrome/UI stuff.  Whatever its CSS support does or doesn’t do, that’s how the final version is expected to behave.

    Ladies and gentlemen, start your engines.

I’ll take a few minutes on that last point.  A little while ago, I said that designers should remain calm and not hack their sites to fix them in the IE7 beta because it was a moving target.  That is no longer the case.  It’s now time to start testing sites in the IE7 beta and identifying any layout problems that may occur.  (And there will be problems.  No browser is perfect.)

I’ll be doing this as soon as I can, and I encourage everyone who can to do the same.  Here’s the other key point: IE7 is scheduled to go final in the second half of 2006 (I couldn’t get anything more specific), so we have a calm period of at least three months in which to find out how things stand before IE7 goes final.  This isn’t an accidental circumstance, either.  The IE team has deliberately done this in order to give Web developers time to figure out what’s coming and how to deal with it.

This is entirely in keeping with the new spirit of the IE team, which has impressed me again and again at this conference.  Once upon a time, upgrades to standards support were blocked by the cry “We have customers!”, which was maddening both because it impeded progress and because it was true, as I wrote back in 1998.  The usual counter-argument was that Web designers and developers are customers, too.  We just weren’t (often) treated that way.

Now we are considered customers of the IE team—not the only ones, but important ones.  Not every decision will go our way (even if we had a single “way”, which of course we don’t) but our needs and concerns will be considered.  As further proof besides the “grace period” built into the IE7 timeline, the IE team is creating tools and resources meant to make it easier to update sites for IE7.

I’ll have a good deal more to say about all this in the near future, but those are the big points in my head right now.  I expect to hear Dave‘s, Andy‘s, and Molly‘s takes on all this, and hopefully others will add their thoughts as well.


Browse the Archive

Earlier Entries

Later Entries