1. Rounded Corners - 67

    November 29th, 2006

    Copying with profit. Quick look for the geeks at how the fashion industry thrives with almost no IP protection.

    Take a deep breath and relax. Maybe in your future there won’t be any XSD, only Relax NG.

    In e-mail we trust. Pelle Braendgaard: “There is a growing trend for web applications to just require an email account. No password necessary. … Clicking on the link in the email gives the user access to the site. I personally think this is a great approach that more web 2.0 applications should use. In particular infrequently used applications.”

    I wonder if this could also work with frequently used applications, or applications accessed from more than one computer at a time. Will it make life easier? Confuse people? Got any experience to share?

    New Job Title: Senior Simplicity Engineer. Cool! (Via Alex Barnett)

    Any piece of software reflects the organizational structure that produced it.

  2. HTTP as a Three Tier Protocol

    November 27th, 2006

    Of course we saw it coming early on. Simple prevails over complex. You get more participation if you keep barriers low. Distributed systems only scale when things are easy to address. Data (and code) that is out of sight rots, and Web technologies are all about keeping it in the open.

    It’s a simple matter of knowing your engineering principles, to undestand why the Web is the best choice for small and large distributed systems.

    Well … I, for one, didn’t know any of that.

    When I first got an Internet account it was all about FTP. Then came Gopher and Archie, and made things better. But the jaw-dropping experience was HTML over HTTP. I realized the Web (back then, version 0.1) was more than just geek-tech.

    But then came IM and improved on e-mail in so many ways. And XML that opened up data to even more applications. We had JavaScript and the promise of run-anywhere Java Applets. And when you’re looking at it from the inside, there’s clearly a trend. New technologies that improve on old ones in so many ways. Why would it ever stop?

    Critical mass and the laws of diminishing returns.

    At some point, a technology becomes just good enough for a large enough number of uses, that it wins critical mass. Users, developers, tools, documentation, examples, knowledge, do it yourself, and fix it yourself. When you have that critical mass, the barrier to change becomes high enough that anything “better” is actually worse.

    So with that long introduction to “why HTTP is here to stay”, here’s a select three links from the past few days. Each link looks at a different use of HTTP, and together they turn HTTP into the 3-tier protocol of choice.

    Alex Bunardzic, on the multi-purpose of REST: “The reason I think that Rails 1.2 is a death knell for the databases lies in the fact that it brings full fledged resource oriented development into the mainstream.”

    James Duncan Davidson on replacing yet-another-protocol with HTTP: “So, if it’s all about the web request, why not use the simplest pipe possible? You know, the one we already have. The one that was defined a decade ago. … These proxy bits are what gives HTTP the richness needed to connect various web components together.”

    Aristotle Pagaltzis starts by looking at the enormous complexity that is Vista, draws a parallel to the mythical distributed system that will “fix” the Web, and reminds us once again that: “The web is the first system we have that has proven to work at massive scale. Why on earth would we want to unlearn its lessons? ”

    Photo by Casey K

  3. Rounded Corners - 66

    November 23rd, 2006

    Less is more. Especially when it comes to trying anything non-trivial with RJS. It gets yuckie. So Dan Webb took the R out of RJS, and came up with templating for JavaScript. Much, much, nicer. And given that it’s all prototype anywhere, you’re not losing any RJS features, just getting a simpler syntax. (Via Ruby Inside)

    Although, more is better, when served right. Apotheon on simplicity in design: “people want options … but they don’t want to have to choose among them over and over again all the damned time” (Thanks Sterling)

    Let it ride. Turns out Chevy did innovate, if not in cars than at least with ads: “Consumer-generated advertising has led to some seriously upside-down behavior. Brands that once yelled at us now ask what we have to say. … But none of this is stranger than the idea that you can sell a product by sitting back and letting people put their own spin on it.”

    Change is great. Check out script.aculo.us 1.7: morphing from one style to another. It’s less code between me and getting an element to change its color. Amazingly simple.

    If you let it happen. Or why there’s no cure for the common cold. But then again, I’m not sure I’d like an installation of two Advils to require a full restart, and eat up all my memory.

    And with that, happy Thanksgiving, and see you on the other side.

  4. Rounded Corners - 65

    November 22nd, 2006

    To compute is human. Luis von Ahn is using people to perform computation. Using is a bit harsh, because they do it for free and they keep coming for more. It’s almost an hour long, and worth watching all the way to the end.But to err is to localize. Eric Sink, on the relative futility of locallization: “The world should be punishing me for my arrogant “American-English-is-the-only-language-that-matters” behavior, but it’s not. Our foreign revenues are solid. We’ve experimented with localization and received abysmal results.”

    Read the comments for a bit more insight. My experience mirrors that as well: localized versions are harder to come by and often buggier; it’s easier to teach yourself English than to work with these tools.

    Pixelated organized. Imagine having a wall like this in your office.

    Timing is everything. Development time translated into chronological time.

    Just in time for the holiday shopping season. How to win a parking spot.

  5. Rounded Corners - 64

    November 18th, 2006

    Type like a Ninja. I’m talking about Ninjawords, which is now my preferred quick lookup dictionary. It takes your word, finds the definition, and shows it without reloading the entire page. That’s quick, but it gets even quicker. New definition shows on top, old definitions just move down a bit. So if you’re trying more than one definition, you can see them all in the same page. When I’m writing, often I’ll search several words before deciding which one to use, so it fits like a glove.

    Oh, and I found out about Ninjawords because Phil Crosby is using scrAPI against Wiktionary. It’s the perfect example for the beauty of small apps.

    The S stands for Simple. Pete Lacey explains what SOAP is all about. (Spoiler: SOAP doesn’t stand for SOAP, hat tip: Tim Bray)

    The Master, The Expert, The Programmer. Good read.

    Can’t buy confidence. The writting was on the wall, now it’s out on the Wall Street Journal. I think Fred sums it up best: “It appears that Yahoo! likes to hedge its bets. But that means they don’t have confidence that they can make the right ones.”

    Standards that work. Rob has more to say about the standards/browsers divide: “Whatever you think about mostly unimplemented standards like XForms, there’s no sensible reason for sites as huge as Amazon.com to continue to serve such sloppy mal-formed HTML except for the fact that browser makers bend over backwards to allow them to do it.”

  6. Rounded Corners - 63

    November 16th, 2006

    Risk takers. Tara is compiling a list of female co-founders of Web 2.0 companies. Know any front-row women you’d like to nominate?

    7 + 35.

    WriteRoom. My second favorite app mac after QuickSilver. It does one thing and does it amazingly well. It stays out of your way.
    Wish you well. Erik Meijer: “But before that I want to give this — it’s a memorial candle. This is for all the companies that are still looking at the uber model and I’d like to symbolically burn this candle for them as a memorial that they will go down in peace.”

    Consenting adults can touch each other’s private parts. Sean Kelly on switching from Java to Python (video).

  7. Commitment, Trust and Discipline

    November 15th, 2006

    Dmitri Zimine writes about the true cost of interruptions. Joel Spolsky contradicts by defending context switching. And Mishkin Berteig brings it back home by explaining the difference between hamburger management and discipline:

    “Why do we do it this way? The main reason is around trust and commitment.”

    “The trouble is, no one had really looked at the overall consequences. Everyone was doing local optimization.”

    I agree with Joel, cancelling the iteration is a drastic move that doesn’t sound responsive or flexible. In that respect, he’s absolutely right. It just happens to be the right thing to do(*).

    Because it’s all about commitment.

    Joel might be confusing agile with cowboy coding. Flaws and all, you have to respect that agile is a discipline. It doesn’t come from wishing, but from sticking to commitments.

    The opposite of discipline is not flexible, the opposite is chaos. It’s the reason projects run over time and over budget. Not lack of methodology, but lack of management.

    Is this interruption important enough to do? There’s only one way to find out. Make a commitment out of it.

    If it’s not important enough to make a commitment, it’s not important enough to cancel other commitments. You see, every interruption is self-justified. But unless you start managing them, you end up with nothing but a constant stream of interruptions.

    ADD project management.

    How do you respond to your clients? By making commitments and standing behind them. And by taking inputs to change those commitments.

    Because you’re making one promise to your clients, one thing they trust you to do. And it’s not a loose collection of local optimization. It’s to manage their invesment in the best possible way.

    And that takes discipline.

    (*) By which I mean, stay the course, or cancel the iteration.

    Photo by Velo Steve

  8. Rounded Corners - 62

    November 14th, 2006

    Gone in 60 minutes. Dmitri Zimine on how “just two hours” end up costing you two weeks.

    Burn, baby, burn. “Freeware app DRM Dumpster plugs into your iTunes music library, burns protected tracks to CD-RW, then re-imports them to your hard drive.” Just slip a CD-RW and let it do it’s magic for a few hours. Sweet. (Thanks LifeHacker)

    Don’t fight the REST. Here’s a lesson I just read after a week of re-writing and re-writing code. It’s tempting to try and overload a small number of URLs: you have less of them to worry about. But it can be the illusion of simplicity. The URL space is vast enough that it’s better to just let it ride and make up as many as you possibly need.

    Reinvent. Or, if this HTTP stuff gets too confusing, you can always create a new protocol.

    Not legal in the state of California. Mr. Angry: “So how do we escape the consensual hallucination that there is a way to do Project Management that is absolutely foolproof and provides definitive answers? Well, the first step is to kill all the consultants.”

    Or maybe just send them to Niagra, to watch the waterfalls.

  9. Rounded Corners - 61

    November 14th, 2006

    Early warning. There are Web sites that give you life traffic reports, then there are Web sites that predict stop & go traffic. My favorite is the Bay Area Doppler Radar map.

    Vertical search jeopardy. Josh Kopelman asks why vertical search engines are worried about Google Co-Op, but not worried about Google OneBox? I’ll take hubris for $500, Alex: “What is, when you believe people will remember you exist and come to you, that your only competition are other destination sites?”

    What’s good for me, is good for you. Nikhil explains the benefit of self-centered software design: “To reduce my support pains, I started re thinking parts of the software that seemed hard to explain to end users. If I got calls for help on how to use a feature more than a couple of times, I looked at redesigning it.”

    Think of all the RSS we’re saving. Chris on doing more with less via microformats: “Except, PJ removed the Chowhound API today. We don’t need it anymore. See, we marked up all the Chowhound topics with the hAtom microformat. Instantly we have feeds, pardon my French, out the wazoo.” (hint: lots of microformats w/Rails Goodness if you follow the link)

    Cool like dat. Remember how your parents embarrassed you by trying to be cool? Brian Oberkirch about the new pretend-cool: “You’ll see plenty of Second Life & YouTube ’strategies’ from marketing hacks. Then mashups. All this after the MySpace bumrush.”

  10. Starting With An Idea …

    November 13th, 2006

    Yes, I actually did the unthinkable and decided to start working on a better way to manage my tasks list.

    I couldn’t find anything that works my way. And that means one of two things. There’s a better way than my way. Or there’s better software waiting to be written.

    So I decided to try a little thought experiment. Some people call it brainstorming, in my case it was a downpour of ideas.

    So many that I still don’t have a place to put them all.

    Here’s the thing to know about task managers. Everyone has some way of managing their tasks, so it’s easy to start there and focus on the bikeshed ideas that make one better than the other.

    It’s a great case study for writing functional requirements. You start with all the known things, like description, categories, priorities, due dates. You add “killer apps” like e-mail and calendar integration.

    Then you brainstorm usability tricks and cool things you can do with AJAX. It’s all about making people happy to see their ever growing task list.

    I decided to try something different. I started by looking into my frustrations, and do some reading to understand them better. I heartily recommend Getting Things Done, most of the ideas I found are already there.

    From that I compiled a list: “Good task manager: what it’s all about?”

    1. Empty brain. It’s about dumping things so I don’t have to keep too much information in my brain.
    2. Surfacing. It’s about surfacing what I have to do when and where I’m best able to do it.
    3. Decisions. It’s about knowing what I have to do, so I can decide what not to do.
    4. The flow. It’s all about getting out of the way and keeping me in the flow.
    5. Guided. It’s about me making important decisions, and the task manager guiding me in the rest.

    Working from this list, I created a “there must be a better way” list. I’ll share that list with you some other time.

    The “better way” list is all about the details. And details are where the devil hides.

    Take digital document management. Put all my documents in one place, accessible anywhere, easy to search, permanent archive. Except, I’m too lazy to scan every printed material, so I still have more printed than online documents.

    I took a few details that I thought make the most difference and started running with them. If I can’t get these details right, then I’m just wasting time.

    I started with a rough prototype. Using Pen and Paper, I got something up and running in a couple of hours. Like a Web site, but I had to flip the page myself.

    I then held a design meeting with my staff of one and decided I like it enough to move to the next step.

    There are three types of details I need to worry about:

    1. Presentation, because this is all about knowing where you stand.
    2. Flow, because it’s all about supporting how I do things.
    3. Tricks, not just eye-candy but ways to get better results.

    I started with presentation, mocked a few HTML pages with just enough styling to get a feel for things. Liked it and moved to the next step.

    The Big Unknown. Before you start using software, it’s either the best thing since sliced bread, or something you don’t care about.

    Since the user is me, and me is convinced it’s the best thing since slice bread, I didn’t have to worry about message or intro screen or any of that stuff.

    Getting To Know You. When you start using software, there are those features that are really cool, the ones you need to learn to use, and the ones you don’t know about.

    Scoring high here wasn’t my goal either.

    Living With You. This is where software either makes your life better or worse. Wow! eye-candy gets annoying, hidden features get used all the time, things that look simple turn out to be deceiving, and so on.

    And that’s exactly what I’m trying to improve.

    There’s only one way to find out, so I pulled out the text editor and started cranking out some code. And when I had enough code, I started using it.

    I did end-to-end testing. And by that I mean, weekend to weekend. A week is just enough time to get used to new features, but not enough time to get too comfortable with annoyances.

    Just enough time to make a judgement call: did this feature make my life better, or not?

    And it so happens some ideas worked really well, some ideas I didn’t care for that much, and some need a lot of re-thinking.

    Back to the drawing board, rewriting and changing code, cranking out new features, another end-to-end test. I’m now at the third iteration and still trying to figure out the pixie dust.

    But it’s a great exercise in getting ideas from “I think it will work” to “I know it will work”. And I already found out three ways to make task managers better.

    Let’s see what the future holds.