Tag Archives: Web

Link Archiver

(Pardon my verbification.)

Here’s an idea for any website, though it could be particularly applicable to weblogs. I’m a reading junkie, I can’t get enough. When I come across a blog I like I often go back in its archives, which is a great way to get a feel for a site. It’s fascinating to see how some blogs have evolved over the years, how posting styles evolve, and to see what people were thinking around the time of important events.

There is one common thread in every archive I browse, I constantly run across dead links. Long-dead links. Dead permalinks even. I have read that the average life-span of a web page is 100 days—I think that may be generous. What good is the wonderful archiving of modern weblog software if those archives become irrelevant less than a year after they’re written?

I think the answer lies in some kind of automatic archiving of all linked content. When you publish a new post an intelligent spider tied to your blog engine could go and grab the content of the page you link to and store it locally. Once a week the spider checks all links on your weblog and if the resource no longer exists it updates the link in the entry to point to the locally archived version. The local archive would have a disclaimer and a link to the original location of the resource, much like Google’s cache. The link in the entry could also be modified in some way, perhaps with a different CSS class or rel value than normal links. The engine could also alert you so you could be sure to be wary of that website or publisher in the future.

How hard would this be? I know there are copyright issues that I’m ignoring, but I don’t forsee that being something that would hold this back. I doubt copyright holders who can’t keep their URIs cool are going to devote many resources to tracking down blogs violating their missing content. Besides, this could be covered.

I could see this done as a centralized service, something like Technorati meets Furl, but that would really defeat the purpose. Decentralization is the path of the future.

On Orkut

What can I say, I like it. Orkut is a new social networking site funded by Google that takes the best of all the other sites out there and rolls it into one fast system. Let me emphasize fast. I gave up on Friendster because I’m not patient enough to wait minutes for every screen to load. I don’t know if anyone else has noticed this, but every site I’ve tried so far (with the exception of LinkedIn) feels like it’s held together by spit and duck tape and run on a 486. Not to mention the atrocious markup.

A neat thing about Orkut is that it’s invitation-only, so everyone there is connected to the original seed guy and programmer (whose name is Orkut, incidentally) which I think is an interesting idea. Scott Allen (who has a great new WordPress-powered blog) says that’s the most innovative thing about Orkut.

Scott remarked to me that he didn’t see Orkut flourishing the same way Ryze or Linkedin have because it mixes the personal and business aspect of things, while those two are mainly for business networking and only flirt with personal aspects. It’s too soon to tell, but I think Orkut is going to be a big success. It does a lot of things right.

So go check it out, and if you’re having trouble getting in let me know and I’ll send you an invite. If you’re already on, introduce yourself.

Back In Town

The ride back from Austin earlier tonight was a delight. The stars were gorgeous, I felt like the only person on the road, and the music was excellent. The trip was enjoyable and a much-needed break. On Saturday I also had the pleasure of having lunch with Jacques Distler. His links may be terribly crufty but his markup is impeccable and most importantly he’s a swell guy. Before I knew what happened we had already talked almost two hours, and the conversation could have continued for many more. If two bloggers meet and no one takes a picture it didn’t happen, so I took the oppurtunity to try out the new phone camera and snapped this:

Jacques Distler

Enjoy it, I paid 25 cents to send that to myself. I need a bluetooth dongle.

We discussed, amoung many things, comment spam and crap-flooding. The conversation foreshadowed the next morning when I was drizzled (“flooded” doesn’t seem appropriate) by a few hundred trackbacks. More on that later though. For now I have decided trackback is a security vulnerability disguised as a poorly-implemented cross-blog communication tool perpetuated only by a MT software monoculture. Trackback is dead, long live pingback.

Assorted Links

  • 50 Miler Panorama is one of the coolest panoramas I’ve seen. Zach’s dad sent me an email detailing a little of the process:

    Dan Hale here – Zach’s dad, and the guy who created the panorama. I did this one entirely by hand in Photoshop. I made nine shots that day, placing the people in only the middle third of the frame of each. I shot with a super wide lens – a 17mm on a 35mm camera. The stitching was painstaking as I wanted to overlap the shots in such a way as to hide the transitions. This process was complicated by the fact that the cloud movement between shots varied the brightness, contrast and color of light. Evening that out took a lot of work. I did have the presence of mind when I did the shooting to use a constant shutter speed and aperture. I could go on and on about this labor of love. All in all it recon it took me 14-17 hours or so of work in PS to get to its current state.

    Wow. Hat tip: Zach.

  • Nightly builds of WordPress. Oh, and 1.0 is out. More on that later.
  • Adam Gessaman has the best response, Locke, Property, and Software, to the lame Aaron Swartz screed on Nick Bradbury’s On Piracy. One thing though, I’m tired of people making comments about Aaron’s ideas in relation to his age. Either talk about his age and be safely ignored, or treat his ideas independently.
  • How to fix <abbr in Internet Explorer. Nifty.
  • :hover anything in Internet Explorer. Awesome.
  • Simple Quiz from Dan Cedorholm has some of the most high-threshhold discussion of CSS and HTML semantics around.
  • Tantek is naked. Now what he really needs is to shed some of that extraneous list markup that really isn’t adding much to the semantic richness of his site. At least one level of that list could be eliminated. I’m not going to call Tantek’s markup bloated, but he could shave a few K off with that list markup. There are some novel ideas there though. I wonder what he could do with a good content management package. I’ve got a version of WordPress running with markup very similar to Tantek’s, but the blog isn’t public yet so I can’t link it.
  • Joi asks Are Blogs Just? I really like how he brings in things from all over the spectrum. Joi continues to pleasantly surprise me.
  • Apparently US money has a watermark of some sort so that if you open it up in Photoshop or try to print it the equipment has built-in guards. Pretty crazy.
  • WordPress nightly builds. Builds are released nightly, bugs are released hourly. Get 24 new bugs in every release.
  • Drawings from a guy on acid.
  • Cruft-free URIs in WordPress. 3 steps, one of which is clicking to the options screen and another which may be automated in a future version.

Problem With Trackback

Today I was cleaning up some of the trackback code for WordPress when a number of things struck me about Trackback, which I’m sure someone has thought of before but I’m surprised they haven’t been addressed in the specification.

First off, what is trackback? On movabletype.org there is a Beginner’s Guide to TrackBack that is pretty thorough. Interestingly though they mention the names of several “tools” that have implemented TrackBack (as <strong> no less) they don’t link to any of them. If you’re not familiar with Trackback go read the first section of that to get up to speed.

A commonly requested feature is the ability to send a trackback ping when editing an entry. This has been especially needed since we’ve implemented post status flags (so you can, for example, save your post as a draft and work on it later). There are a couple of logical steps to implementing this, the first of which being that we need to track what pings have and haven’t been sent yet. Then the posting code had to modified a bit to only send trackback pings when an entry was published, and to not ping a URI that had been pinged before, et cetera. Not terribly hard stuff, just a bit of code to go through and some testing to make sure everything worked right.

Now that we have a nice record of pings that have been sent, I thought it would be nice to add that data to the default template for WordPress, as Trackback suffers from the same one-way linking problem it was trying to solve. That is, if I trackback another site my ping will show up in their comments or their trackbacks, but there’s nothing on my site indicating I sent that ping.

Then I realized that this set of pinged URIs I had was close to useless. What does a URI like http://www.movabletype.org/mt/trackback/55 mean anyway? If you enter it in your browser you get an XML error back. If you append a query string to it with ?__mode=rss with some implementations you will get a RSS .91 feed of trackbacks sent from that entry, from which you could extract the actual URI of the resource that http://www.movabletype.org/mt/trackback/55 is relevant to, but what a hassle. You can sweep things like this under the rug with a convoluted “auto-discovery” functionality (which is using sloppily embedded RDF instead of <link>… why?) but these problems are easy enough to solve that they should be.

(A side note, a URI tied to a unique ID system specific to a particular software platform does very little to suggest permanence to me. Are we going to have sent ping URI link rot?)

Nick Denton: Blog Maven / Thief

Every once in a while someone you hear a story that makes your blood boil. Sometimes it happens to someone you know. Joe Clark has the complete details, but here’s a rundown of the events as I understand them:

  1. Noel Jackson redesigns Fleshbot using CSS and XHTML, all in perfectly compliant code. I talked with him for a bit of this, sent some screenshots. He worked really hard on it and the result was, if I may say so, gorgeous despite the questionable content.
  2. Joe contacts Nick Denton on behalf of Noel saying what a neat thing Noel had done and recommending they hire him. Joe can be a nice guy like that.
  3. Denton responds that they can’t really afford anything like that right now.
  4. Noel’s design shows up on Fleshbot, a few days later they remembered to credit him for it.
  5. Later Noel’s exact code, right down to an empty div he had to add to get the layout to work just right, shows up on Gawker and Gizmodo. Some colors are changed, and likely due to incompetence of the implementor the other new designs have numerous mistakes added.
  6. Noel steams quietly for a few days, then talks to Nick Denton. Denton doesn’t see what the big deal was using Noel’s copyrighted work on several other sites. It reminds me of people who rip off other’s designs and then don’t understand why you’re mad about it. The copies are not as high quality as the original, as well.

Smells rotten to me. Personally I was quite fond of Gizmodo, as it really is a high quality blog, but I’m not going to visit it anymore and I’ve delinked it because I don’t want to support a company with such low ethical standards. I encourage you to consider the situation and come to your own conclusions. All I can do at this point to support Noel at this point is let more people know about what’s happened to him, in the hope that possibly this could end on a more positive note.

Update: Denton has emailed me and is telling everyone that he has posted chat transcripts that clear everything up. I applaud him for putting more information out there, but it doesn’t seem to help his case much. I suppose anyone can claim ignorance as the reason for a mistake. Some will believe that, some won’t. What makes the difference is actions from here on out, now that everything is “clear.”

Distributed Social Networking Software

One of the greatest things about South by Southwest interactive last year, which I just barely made it to, was the incredible creative energy born of like-minded people interacting with each other closely. Out of a conversation with Tantek Çelik regarding linking, social interaction, and leveraging HTML rather fabricating new formats I became involved in what now is known as XFN, or the XHTML Friends Network.

XFN is a standardized method for leveraging the HTML rel attribute to describe relationships between people. More simply, it’s about enhancing how you link to somebody. Together with Tantek and Eric Meyer (and wonderful feedback) we’ve put together some great information and guidelines for using XFN. Check it out and share the link.

As an example of an early XFN application, people who I’ve met in person now automatically have a star beside their name when I link to them. See the “timely dozen” to your right or my portal page.

Sortable Tables and PDAs

For the Houston Palm Users Group meeting today I wanted to put together a comparison of currently available PalmOS PDAs for people shopping for the holidays. The idea from the beginning was to present the information as accessibly as possible, and after toying with doing a slide-based presentation, but talking about them all, or some sort of giant table I settled on the table, mostly because members could check it on the website when they got home and use it as a reference. Of course, giant tables are generally as unfriendly as you can get online, so I started thinking about ways I could boil down the information into just a few values, objective and subjective, and how to present in an effective manner.

The architecture of the table ended up being simpler than I anticipated with just 7 columns: model name, street price, weight, internal memory, total pixels, screen dimensions, and the completely subjective MattRating. I chose the values based on what people seem to care about most at meetings, and with a number of assumptions. Internal memory is important, but less so now that nearly every unit supports external memory (memory stick or SD) transparently. Total pixels was a compromise to present the screen dimensions as a sortable value. “MattRating” is a subjective rating of how I think each unit rates as a gift, taking into account all its features, expandability, the unit in comparison with what else is available, and price. It’s the secret sauce that balances out the values included with everything else about a PDA that couldn’t be usefully quantified or there wasn’t space for.

Finally to make the table as useful as possible I was determined to make it sortable by the table headers. I search high and low and found nothing better than the unobtrusive DOM sortable table code from kryogenix.org. It functions exactly how I think great javascript (ECMAscript, whatever) should. My only problem has been it seems to sort things oddly when you first click on a header, but corrects itself if you click on that header again. I’m trying to track down what could be causing this, but haven’t had any luck so far. Still, even with that one flaw, it’s better by far than the other sortable table implementations I found.

The result of these labors can be seen on the HPUG website, Holiday PDA Comparison.

Now what would be cool is a way to do it with alternating row background colors

Death of Flexible Width Designs

It’s over, it’s done. Those of you holding on should wave the white flag as two of the best flexible width sites, Doug Bowman and Dan Cederholm, have thrown in the towel and gone fixed-width without even an entry of explanation, I suppose because the benefits of fixed-width are so obvious no explanation is necessary. Update: Cedorholm’s design is now centered.

Bowman's Stop Design Cederholm's Simple Bits

The assault is coming from all sides:

Dear Mr Antonioni:
I recently screened your classic film, The Red Desert, starring Monica Vitti and Richard Harris. I have a problem with the way you used screen space. My theater’s screen is big and wide. It is capable of handling many actors at the same time. For instance, crowd scenes and battle scenes work well. But in your movie there are only a few actors — and many times they are pictured in one corner of the screen or another, against a stark minimalist background. This is a terrible waste of screen space. For instance, there is one scene where Ms Vitti is filmed on the left side of the screen and there is a white forest behind her. The white forest is not much to look at. Sure, I can look to the left and watch Ms Vitti’s performance, but what do I see when I squint my eyes and look only at the right side of the screen? Not much! I urge you to add extra characters and situations to your movie so every inch of my screen bursts with action at all times.

Sincerely,
Howard Gumpf

Ouch. Now I think the film/web analogy is a bad one, and it breaks down with any sort of critical thought. Zeldman knows this but he’s trying to make a point.

Was it that long ago that flexible-width designs were all the rage? They came in with a bang, and left with a whimper. Is anyone still holding out? Are there any good flexible sites left? The only place I see it anymore in web applications (such as the WordPress administration interface) and in lightly designed e-commerce sites like Amazon.

Style Updates

For better or worse, there have been a number of stylesheet updates around here, so you may notice things looking slightly different. First off are the shadows behind the main content box, for whose sake non-semantic elements were added to this page for the first time ever. How quick we are to sell out!

Speaking of selling out, text advertisements may appear at the top every now and then. Yes they suck but it’s the holidays and extra cash is always nice.

I moved the background image for the post titles from the anchor element to the h2 element to prevent the blinking when you rolled over the titles in IE on Windows. My Mother will be sorely disappointed as she thought that was a rather cool effect I had done intentionally. I wish!

Tantek and Eric informed me that my site was completely borked in respectively Mac IE 5 and Safari. This site is an experiment, so I make no guarantees as to browser compabilitiy but I try to be good about testing things on browsers available to me. Last night I used Greg’s Powerbook to see what was going on. It seems Safari was having trouble with some commented out content (the ads that are temporarily disabled) so I moved that from HTML comments to PHP comments. Commenting things out server-side is actually a much better practice because it keeps the source code maintainability for you the author but hides the comments from any visitors. There is also a savings in bandwidth, but in many cases that will be minimal. So as a best practice go from:

<-- Three extra divs added because prima the donna designer just HAD to have his shadows. And my idiot boss agrees with him. -->

to:

<?php /* :-- Three extra divs added because the prima donna designer just HAD to have his shadows. And my idiot boss agrees with him. And they'll never see this comment. MUHAHAHA! */ ?>

As for Mac IE, I wasn’t sure where to begin. It doesn’t handle the float on the menu list items well so instead of a nice tabby menu you have a series of giant honking bars in the header. I could go to display: inline for the navigation list items and work with the horizontal menu from there, but I’ve always prefered having the list items floated and the anchors as blocks, which you can’t do when the containing list element is inline. If I remember correctly Eric helped me around this problem before on the WordPress site (thank you!) by giving the items a fixed width, but I don’t have the space to burn here like I did on that menu.

Checking over my stats, Mac IE users make up approximately 2.1% of my viewing audience over the life of this site, and closer to 0.9% over the last month. Uowever is this low and declining number because other browsers are now in vogue on the Mac and IE hasn’t been updated recently to quench Mac users’ insatiable desire for upgrades? Or is it because my site looks so bad in their browser? The world may never know.

So the moral of the story is: the web is a jungle and watch your comments when on Safari.

Breaking the Mold

Leonard does things different:

Hey, it looks like I’m the ‘Feed of the Day’ over at Feedster. Just goes to show that you don’t need things like ‘regular updates’ or ‘finished templates’ or ‘permalinks’ and ‘date stamps.’

I would link to the post, if I could. (Poor man’s permalink: scroll down on his homepage to just above the pictures of the Treo 600 and the Sidekick.)

On Blogrolling Hack

I think the importance of this issue cannot be understated. My thoughts from the WordPress Dev blog: Blogrolling Hack Illustrates Need for Decentralization.

This morning it seems that sites who manage their blogrolls using blogrolling.com’s service had their links hijacked, every link being replaced by one to “Laura’s Blog,” which predictably redirects to a porn site. As painful and unfortunate as this is, I think it illustrates an important point that as a weblogging community we should be heading away from centralization as a rule, not flocking to every free or low-cost centralized service that pops up.

To me one of the greatest things about weblogs is that they shift power and control away from monolithic organizations and into the hands of users, where it is ultimately more secure. I have a friend who lost three years of her writing when a free online journal service decided to fold and delete everyone’s entries. I know people who hardly use email because their hotmail or yahoo addresses are flooded with so much spam as to make them useless. People who don’t host their own comments have their discussion at the mercy of some third party provider of varying reliability. Many of you reading this had your blogrolls hijacked this morning. In the weblog world blogroll links represent a web of trust — you freely giving a piece of your credibility to another site as a gift to that site and your audience. Today that trust was betrayed for many people.

There is more on the link. I’d love to hear some feedback and assist people in moving away from centralized services, even if it isn’t to WordPress. What are the other alternatives? If you want to move away but you’re having trouble with code somewhere just let me know and I’ll try to help you out.

A Cite To See

If you notice this sort of thing, the last post and one several days ago about Charles Platt now have visible attribution as part of the inset quote, which is marked up using the HTML <blockquote element. Each of these block quotes has a cite attribute, which is invisible to the user but which I sometimes add when I feel like having million dollar markup. Honestly I had slacked off doing lately because I wonder: if you add an attribute to an element, and no one sees or uses it, does it make a sound? It does now.

Thanks to an ingenious script from Dunstan which he describes in this post my cite attributes are now clear for the world to see. Can you hear me now?

The validationists in the audience will notice that am I not using the cite attribute in the strict sense because the value “Albert Einstein” it isn’t a URI. They would be right: it is technically in violation of the spec. However it is correct in spirit if not implementation. The URI RFC says “Not all resources are network ‘retrievable’; e.g., human beings” and “An identifier is an object that can act as a reference to something that has identity.” We’ve got the “resource” and “identifier” part down, what about “universal”? To be fully in line with specification what we need is a protocol to indicate individual people. I propose something like the following:

person://Albert Einstein

Thoughts? Now I just need to work up the javascript chops to hack around with the script, or if I’m lucky Dunstan will get an itch and beat me to it. The cite attribute checking should probably allow for protocols such as ftp:// and irc:// as well, not just http://.

How To Create A Favicon

I’m going to make a confession: I can’t stand favicons. To clarify, I love the idea and the little icons on my Mozilla tabs are nifty, but I hate having to make them. This is partially due to working within the constraints of 16 by 16 pixels, but more so that until now I haven’t found a good way to generate said icons on Windows. I was jealous as a whip (can a whip be jealous?) when Noel posted instructions detailing how to do it on a Mac. For aforementioned reasons they weren’t applicable to me, so I set out to find a clean way to do this on Windows without spending any moolah.

At this point someone is probably wondering what in the world a favicon is. As far as I know, it’s not a standard of any kind (and if it was it’d be a badly implemented one) but it’s a widely supported feature in modern browsers that allows a site to specify a small graphic or icon to go next to its address in the address bar and theoretically as the icon for the page when it is bookmarked as well. (Some examples of favicons.) I believe Internet Explorer was the first to implement this. Due to popular demand there is a new photomatt.net favicon (you may need to reload that link directly to see it). To see it in Internet Explorer, bookmark this site (which you should do anyway). In Mozilla and its progeny you should see it just fine automatically, and possibly in Safari though I don’t have that handy to test. To see it in IE for Mac you need to sacrifice an Intel CPU and do a favicon dance. Actually I’m not sure why IE5/Mac has trouble with some favicons, at some point in the past I tracked it down to MIME issues, but it’s not really worth the effort anymore.

Another good reason to have a favicon.ico in the root of your site is some browsers request that file whether it is linked in your HTML or not, so if there’s nothing there it fills up your error logs. Since I watch error logs pretty closely this has always been an annoyance for me.

So what’s the trick to creating lightweight multi-size favicons? I used to use the online java tool the folks at favicon.com offered, but now they seem more concerned with making money than providing free tools. More recently I’ve used Icon Forge which I can easily say is one of the most awful programs I have ever used in my life. Truly horrid. I wouldn’t recommend anyone do that, so here’s the process I came up with. (Any excuse to use a nested list.)

  1. Download png2ico, which is a small, free utility for Windows, Linux, et cetera that works quite well. Extract it to c:/.
  2. Create an image you’d like to use at a decent size (at least 32×32 pixels) in your favorite image editor. I like Photoshop so here’s what I did there:
    1. Ctrl + N to start a new document. Choose 32×32 pixels for the size. Cram whatever you want to use in there, I choose a comic Josh did of me a while ago.
    2. Do a Save for Web (Ctrl + Alt + Shift + S) and save it as a PNG with the filename icon-32.png to the same folder as the program you just downloaded (to keep things simple). If you want to keep the size down I would recommend taking it down to 16 colors. Don’t forget transparency if you need it.
    3. Now go back and resize the image you’re working on to 16×16 pixels (Tools → Image Size [is there a shortcut for that?])
    4. Save this image as a PNG with the filename icon-16.png in the same directory as the above.
  3. Now it gets a little tricky, open up the command line. Try Start → Programs → Accessories → Command Prompt.
  4. Navigate to the folder where the png2ico.exe file is, if you followed the directions above you can use the command cd \png2ico.
  5. Now you just have to enter a command to roll those two PNG files you made into one nice ICO file. Here you go: png2ico.exe favicon.ico --colors 16 icon-32.png icon-16.png . You may be able to use command line completion (pressing a letter or two and then tab) to fill some of that in for you. You could potentially embed 64×64 and 128×128 pixel sizes into the icon file by just specifying additional PNGs of that size, but for a web favicon that really isn’t needed. Just remember this if you ever want to make a nice application icon. For an applicatoin icon you’d probably want to use a PNG-24 with full alpha transparency, which this tool supports as well.
  6. Now there should be an favicon.ico file in that same folder which you should upload to the root of your site and then link to it with something like <link rel="shortcut icon" type="image/ico" href="/favicon.ico" />
  7. Have a drink.

Now I know that sounds like a tricky process, but it’s actually not as hard as it may read and of course if you have any problems leave a comment and I’ll try to help you. There is supposedly a graphical front-end for using png2ico but it was so badly designed it’s actually easier to use the command line, as unlikely as that seems.

Update: Ian has found my favicon twin. Where have you been all my life?

Update 2: Oskar van Rijswijk recommends IrfanView in the comments. You might want to give that a try too.

Automatic Paragraph Function Turns 1

Has it really been over a year? I can’t believe it.

An unassuming little script, called “autop” and titled New Lines to Paragraphs was one of my earliest attempts at massaging plain text into smart XHTML, and it has come a very long way since it first started. (See the legacy code.) The code is not perfect, and it may never be, but it has worked very well for an impressive number of people, and I value that.

The code has been improved significantly in the past few months as part of the WordPress codebase, and I’ve updated the code homepage to reflect these improvements. Cheers.

Apple In My Eye

So your Author would be a terrible blogger if he didn’t point out that iTunes is now available for Windows. It was immediately installed, requiring a reboot (the box had not been rebooted for 32 days), and preceded to crash consistently on a seemingly random set of files. It works swimmingly with about 95% of the files, but certain albums, when played or imported, crash iTunes every single time. Winamp, Windows Media Player, and every other media player installed works fine with said files. That said, one is very impressed with many of the features and how consistent it seems with the Mac version. Except the feature where it moves files out of their meticulously chosen folder hierarchy and renames them, losing track information in the process. Every feature but that one. Yes, it is an option, however the option does not communicate the weight it carries.

Ironically, today is also the day one decided to never by a Mac because one’s PCs were significantly cheaper and of comprable quality, the Windows OS is sufficently stable, and because of the beautiful things Michael Heilemann was able to do with Windows. (Not to mention the wonderful things he does with WordPress.) Something similar will be attempted here as soon as time permits. One program, Windows FX, was bought months ago as a result of its attractive functionality.

Update: I just saw this quote and thought it was worth including:

“We’re going to fight illegal downloading by competing with it,” said Jobs. “We’re not going to sue it. We’re not going to ignore it. We’re going to compete with it.”

—Steve Jobs. No wonder people love this guy. Hat tip: Wired.

Update: Something similar, but much worse happened to Adam.

Web Design on a Shoestring

Carrie Bickner, whom I had the pleasure of meeting at SxSW and have done my best to keep in touch with since, has a new book out, Web Design on a Shoestring. She has told me before that I’m not really the target audience for such a book, but it is certainly something I would like to read, review, and recommend. It seems every day I talk to another client who was paying 4-5 times what they should for hosting and spent a fortune on a site whose non-standard code made it obsolescent the day it was delivered. The days of monolithic development by giant agencies with even bigger budgets are over. Carrie’s book is indicative of the new era coming. I’ve ordered my copy.

Web Design on a Shoestring by Carrie Bickner