1. Sep 14th, 2009

    ToS Commons

    I’d love to see ToS Commons happen:

    External translation of “legalspeak” TOS into “TOS Commons” – a set of standard TOS building blocks, written in “peoplespeak” by the community, microformats-enabled – similar to the Creative Commons approach.

    Life’s too short to be reading legalese.

  2. Jun 25th, 2008

    Rounded Corners – 205 (A little more affordance, please)

    Word of the day. Just added a new word to my vocabulary.  Affordances.  As in, “seeing software exlusively in functional terms also overlooks affordances“.

    iJustWorks. Speaking of affordances, two of my favorite new applications are KeyNote and Pages.

    I don’t do presentations often (not complaining, if anything gloating), so I don’t have much patience for ParallelsPowerPoint or its younger, somewhat challenged, cousin Impress. KeyNote, on the other hand, has this uncanny ability to read my mind and just do what I need it to. Except for one annoyance. I can’t figure out how to assign keyboard shortcuts to different slide master. Suspect it’s not even possible.

    Pages is nowhere as powerful as Word, which explains why I’m getting so much done with Pages and dream I could edit Ruby in Practice with it. Alas, it doesn’t support Word macros/fields, required by the last mile of editing. Wish I was smart enough to use it during pre-production.

    If you have to PDF … Two things missing from Firefox 3 for the Mac. Some would argue Safari looks and speed, but I’m so far not seeing the difference (and I use both). Anyway, two things. One is full screen support, the other is a good PDF viewer. Firefox-mac-pdf solves one problem.

    Rails Doc. If you’re looking for better Rails documentation … let me know, I’m also on that hunt. But at least we’ve got a better Rails online doc viewer.

    Accessibility moment. The BBC takes issue with the abbr@title microformats pattern, removing them until further notice. Which reminds me, once in a while I should be checking the UI for all the inaccessible elements that crop up during development. Now would be a good time.

    Picture, tips for napping courtesy of the Boston Globe.

  3. Jan 18th, 2008

    REST IDL, substance over style

    Head over to Ryan Tomayko for an excellent summary of the debate over REST and IDL:

    WSDL is basically every bad idea anyone ever had related to service documentation/description, schema, and/or discovery all rolled nicely into a document classified as a “recommendation”.

    I picked on this particular sentence because to me it sums up the discussion in a nut shell.  We do need an IDL, or maybe more than one, I’m not seeing evidence to the contrary.  But we’ve all been burned by the horror that is WSDL, and the particular way people use it to do RPC over HTTP, that we’re cautious to try again.

    Some took the lesson from WSDL that a service description language is only good for generating revenue from licensing ever more complex products.  I took a different lesson.

    That you start by solidifying the ideas of what you want to express, before deciding how to express it.  Best practices should come before arguing RDF vs JSON and elements vs attributes.

    The Atom Publishing Protocol specification is an IDL for a specific type of service.  It happens to use a well known service definition language, called English, which unfortunately is not very tooling friendly.  But it packs a lot of best practices. A good IDL would let you describe APP fully and precisely.

    What we need is a few more Atoms, a big enough set we can use to distill ideas and decide what — not how — we need to capture in that IDL.  Writing a language, or several languages, from that is an easy deal.

    Otherwise, the temptation to create a language that has concise form in JSON but lacks important features, or is semantically rich in RDF but follows the wrong practices, or uses Microformats but only on Sundays, is too overwhelming. In all that syntax, it’s hard to see the semantics.

    So far most of the suggestions I saw are turf wars in disguise, arguing for this syntax or that, but never for what it should describe. WADL so far looks like one of those best-for-my-platform choices, the constant mentioning of Microformats, which are not optimized for this task, is another danger sign.

    It has to start somehow, but it better start with substance, not with style.

  4. Aug 18th, 2007

    Rounded Corners – 134 (Sky not, I repeat not, falling down!)


    But does it scale? Clinton Forbes (subscribed) is at it again, this time taking on the Big D Challenge: how does D the programming language compares to a Datsun 240Z?Multi core melt down, news at 11. Mark Nelson is not convinced the world will come to an end, now that we have multi-core CPUs in toaster ovens but not enough lock-free transactional systems to grind them to a halt:

    And if those investments don’t work, and the software doesn’t come through, will the world come to an end? No. Instead of jumping from 16 to 32 cores, Intel will accept smaller performance gains by cranking up clock speeds, boosting the instruction set, making bigger caches, or whatever it takes.

    I personally feel the need to be alarmed, at least until we can find a new crisis to talk about.

    Another crisis averted! Jeffrey Zeldman explains why we should all stop worrying about the Web standards crisis and just get on with life:

    The glacial pace of the W3C has given browser makers time to understand and more correctly implement existing standards. It has also given designers and developers time to understand, fall in love with, and add new abilities to existing standards.

    Separated at birth. Gabe da Silveira notes that, contrary to popular belief, Firefox does not crash when loading content mixed with presentation:

    The painful (to some people) truth is that there is an irreducible tension between content and presentation (and behavior). What we are going for with CSS is known as “loose-coupling” in programmer speak, but it seems some people have this ideal in their head of “no-coupling”, which of course is impossible.

    Miscommunication. Elephant in room. Troubles brewing in the MySQL community, something to do with release schedules. Peter Zaitsev says its just an issue of trust:

    Community does not like when it is attempted to be approached with Enterprise class marketing which tend to draw the rosy picture and replace true reasons with something which allows to keep the face. Have you ever seen Enterprise announcements saying something like “We fired our CEO because he was clueless in business and poor leader and Board was blind unable to notice it for years” ?

    Voice and lyrics by Tay Zonday (Via project.ioni.st)

  5. Aug 16th, 2007

    The Simple Publishing Protocol

    Ernest Prabhakar in the rest-discuss mailing list:

    I would love to see someone define/build a hAtom version of AtomPub, that worked in standard web browsers.

    Here’s one way to not make friends or influence people.
    Deep breath.

    The Simple Publishing Protocol

    The Simple Publishing Protocol describes a mechanism for retrieving a collection of entries or individual entries, and for publishing and editing entries, as is commonly present in Blogs, photo and video sharing sites, social networks, and other Web 2.0 wonderkids.

    The goals of the Simple Publishing Protocol:

    1. To provide a uniform mechanism for publishing and consuming collections of rich media,
    2. Support the Web Browser stack, and
    3. Do the simplest thing that could possibly work.

    Retrieving Entries

    The client makes a GET request to a known URL containing an entry or collection of entries, requesting a presentation in any content type suitable to the client.

    For the purpose of this discussion, we refer to content types compatible with (X)HTML (text/html, application/xhtml+xml, etc). Other content types will be covered in SSP: Adjuncts. Clients are allowed to guess the returned content type.

    The resulting representation will contain:

    1. Optional, one link identified by the relation new_entry (rel=”new_entry”).
    2. Zero or more entries identified according to the hAtom specification.
    3. Optional, for each entry one link identified by the relation edit_entry (rel=”edit_entry”).

    Adding an Entry

    The client may make a GET request to the new_entry URL, requesting a representation for the purpose of creating a new entry. Typically the request will be for an HTML content type for display in a Web browser.

    The client may make a POST request to the new_entry URL in order to create a new entry. The request may include, but is not limited to the following fields:

    1. title — string of text used for the title of the entry.
    2. content — the content of the entry (see below).
    3. author — URL identifying the author of the entry (recommended: the author’s OpenID identity URL).
    4. status — the status, either ‘published’ or ‘draft’ (default is ‘draft’).

    The client may send content in any media type supported by the server, as described in the hForm protocol. If the media type is unspecified, for example, when using application/x-www-form-urlencoded, the server interprets the content as text. The server may render content in a different format, for example, accepting Markdown content and for rendering as HTML.

    The server may return any applicable HTTP status code. If the server returns the HTTP status 303 (See Other), the client may assume that the Location header refers to the edit_entry URL associated with the new entry.

    Changing an Entry

    The client may make a GET request to the edit_entry URL, requesting a representation for the purpose of changing an existing entry. Typically the request will be for an HTML content type for display in a Web browser.

    The client may make a POST request to the edit_entry URL in order to change an existing entry. The request may include any field allowed when creating a new entry. The server may not change the value of any field unless that field appears in the request, or its value is derived from another field appearing in the request.

    The server may return any applicable HTTP status code.

    Deleting an Entry

    Follow the same procedure as when changing an entry, but set the status field to the value ‘delete’. The server will ignore all other fields in the request.

    The server may return any applicable HTTP status code.

    Authentication

    See here.

    Endnote that should come first: This “spec” was written in all of fifteen minutes, so you’ll have to excuse the brief writing style, narrowing down of the editable fields set, and the general lack of references, appendixes, or any examples of over-the-wire messages. The SPP working group will address these matters in due time.

    Second endnote: No envelopes were harmed in the production of this specification.

  6. Jan 6th, 2007

    Rounded Corners – 91

    trend-print.jpg

    Stop the press. Microformats make it to InformationWeek, with a mention of hListing. Exciting times! (Thanks John)

    Unintended consequences. LinkedIn, the social network I love to ignore, just added a new feature. You can send questions to your network of contacts. I received a couple of questions, both rethorical questions on non-interesting topics, with … you guessed it: a link to a product or announcement. I really, really need more spam in my inbox.

    Apology accepted. Dylan F. Tweney has an interesting prediction for 2007, about the lack of quality from companies that have too many products with too many features: “At least one of these companies will apologize in 2007 for having made a serious product design mistake.”

    Global warming. No doubt about it. Fix at the source. (Thanks Sterling).

    Productivity from limits. Less choice -> more reuse -> higher productivity. Karsten Wagner has an interesting take on productivity.

  7. Jan 2nd, 2007

    Rounded Corners – 87

    0wn3d “Nobody even bothers asking why IBM isn’t a player in consumer search. IBM and consumer websites just don’t have anything to do with one another. PC software and websites don’t have anything to do with each other either.” And other interesting gems in Rich Skrenta’s Winner Take All post. But is the run going to last?

    Thrilling. Gabe Wachob attributes the OpenID momentum to The Thrill of the Hack: “I think the “Thrill of the Hack” (TOTH) is a key factor in the success of technologies like RSS, tagging, and XMPP and I see it making OpenID successful even as I write this blog.”

    Information brokers. Firefox 3 with microformats support. Imagine the possibilities.

    Jargon watch. Today’s concatenation is the word Wikinomics. Brought to you by the letters U. G. and C.

    Restrained. “This car is about restraint, and not clouding the driving experience with too much technology,” said Thomas. “There aren’t a lot of layers between the driver and the road.” I don’t know about restraint, afterall Ford’s answer to the Charger is powered by a 400hp 5L V8 engine. But the body of a sedan and the soul of a sports car … drool.

  8. Dec 10th, 2006

    Rounded Corners – 72

    Down with simplicity. Don Norman: “Marketing rules – as it should, for a company that ignores marketing is a company soon out of business. Marketing experts know that purchase decisions are influenced by feature lists, even if the buyers realize they will probably never use most of the features. Even if the features confuse more than they help.”

    Just log it. Gojko Adzic has some great tips for creating useful log files: “On the end, a log file is useless if it’s just a pile of messages, hard to read or parse. Having a poor log file is better than not having one at all, but a good log system can save a lot of money and effort by making troubleshooting and support easier.”

    Cold open. When a movie or TV show jumps directly into the story, before the opening credits are shown. Used even when you already have a captive audience. So why would anyone imagine pre-roll ads are going to work on the Web? As Fred says: “They might not know about pre-rolls. But I do. They are toast.”

    Obscure tags. A museum of strange and rarely used tags. Probably didn’t hear of the recent infatuation with semantic HTML. Still a good place to go and watch the blinkety blink in action.

    Color theory for developers. Finally an explanation I can (almost) understand.

  9. Nov 14th, 2006

    Rounded Corners – 61

    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. Nov 5th, 2006

    Rounded Corners – 56

    Help others help themselves. Tomasz WÄ™grzanowski’s little helper gets IRB to show useful helpful messages. Neat trick.

    In code we trust. There’s testing your code to make sure it works and your fixes don’t break anything. Then there’s just writing your code and trusting it works. Often automagic code generation and XML overload help saves you from coding, but also keeps you from testing. Ed Gibbs notes: “Getting to a green bar with an SCA module: 47 steps”.

    The fallacy of busy. The parable of two programmers is one of those articles worth re-reading once in a while. (Via Paul Knapp)

    For extra measure, you can always use the fake progress bar. (Via Jeremy Zawodny)

    The weirdest Ruby/Rails video yet. Part captivating, part scary, part “are we in the same industry?”

    Using microformats: the book. Yeah, I know, you watched the movie :-) Brian Suda writes, Vitamin reviews, and let a million semantic HTML bloom.