I was recently pondering the interplay between Google, Microsoft, and Apple. Microsoft’s strengths have traditionally been in the software realm, and Google’s in the web realm. Apple’s strengths have been in delivering great user experience and design, great operating systems, and hardware.

Google has been moving into Microsoft’s territory by offering cloud based applications. Over time, Google Docs and Gmail are becoming more competitive, and hence more of a threat to Microsoft. Microsoft has responded by moving into online search and offering their own cloud based office applications.

Cloud-based applications have some serious benefits including the ability to access the applications from anywhere, ready access to data from wherever you happen to be, secure backup of data, and easier sharing of information. But users do have to make some tradeoffs. Frequently the user experience and features of those cloud applications are nowhere comparable to what you’d find in the equivalent desktop app. (Gmail and Google Docs have only the most rudimentary formatting for example.) But that user experience will improve over time.

Where does Apple fit into the picture? I realized that Apple could offer some very useful cloud-like benefits by building on top of their expertise (great devices, great operating systems). Let me paint a picture for you, using three complementary features that together create a great experience and offer many of the benefits of cloud apps, without having a cloud.

Apple’s OS X is built on top of Unix, and an integral part of Unix is X11 (pronounced X eleven), the windowing system that allows applications to display graphical windows. A great feature of X11, little known outside of technical users, is that it can be used to run an application on one computer, and display the window (output) on another computer. However, this is typically hard to do. It’s not wrapped up in a nice little graphical user interface.

Imagine if Apple modified the application switcher (Apple-Tab, equivalent to Alt-Tab on Windows), so that it showed you not just the applications running on that Macintosh, but also those applications running on any Mac you happened to be logged into. You’d get something like this:

Above the line, you see two computers. An application is running on computer #1, and displaying the GUI of that app on the same computer. On computer #2, the same user is logged in, and they run the app switcher. They see the applications running on computer #1 in the app switcher, just like any locally running apps. The user can select the app, and have the GUI moved from computer #1 to computer #2.

With this ability, Apple users be running an application at home, and access it seamlessly from work. Or be running an application on their desktop PC, and access it seamlessly from their iPad.

Now let’s talk about distributed file systems. Another benefit that the Unix operating system has over Windows is that it is used far more extensively for high performance computing, such as running weather simulations. In this situations, clusters of Unix computers work together on computationally difficult tasks. In order to share massive data sets among computer, these Unix computer run distributed file systems that allow any computer that is part of the cluster to access any file, regardless of exactly where it lives. Many distributed file systems also incorporate data redundancy so that if any one hard drive fails, the data exists in at least one other location. There are several different distributed file systems for Unix.

Here’s a picture:

In this example, computer #1 and #2 both are part of the same distributed file system. As a user, if you use Finder (the equivalent of Windows Explorer) to look at the file system, it appears that File A is present, even though it’s actually on computer #1. It would be possible to also choose to incorporate true cloud storage services, so that for a small cluster of computers, data redundancy is guaranteed by being replicated seamlessly in the cloud.

Just as we integrated app management into the application switch to make X11 more palatable to the masses, Apple would need to integrate distributed file systems into the out of box experience and user management aspects of OSX, so that users would not need to think about distributed file systems, but could instead just enjoy the benefit of seeing one hard drive that contained all their files, and which appeared identical, regardless of which computer they were accessing it from.

The third and final feature that brings cloud-like benefits to Apple would be a browser-based interface to user’s computer. Browser based versions of X11 windows managers already exist, and by integrating user account management and secure connections, users of Apple computers could enjoy accessing their applications and data from any web browser. Imagine, for example, going to apple.com/mymac, and then accessing your Mac directly. This can already be accomplished, by some extent through solutions like GoToMyPc.com, but through OS and X11 optimizations, Apple could probably deliver a better experience. It would like similar to the first diagram, except now the experience is running within the web browser:

With these three features, Apple could deliver many of the benefits of cloud computing (apps anywhere, data anywhere, data backup) by primarily leveraging their expertise in user operating systems and their advantages in desktop user experience and features. In other words, Apple doesn’t have to build cloud applications or cloud expertise.
It also builds and leverages upon the myriad devices Apple offers. The value of the iPad goes up when it becomes an interface to my MacBook Pro. I can better justify buying a second Mac when the synergies of having two Macs provides more benefits. (Compare this to today, where having two computers means I have to manage application licenses and ensuring that I have the right files where I need them.) 
The beauty of this is that it builds on advantages that OSX already has: the X11 windowing system and distributed file systems. It’s inherently better and more scalable than anything Windows has.
So Apple, how about it?

I frequently hear people debating the definition of cloud computing, or embracing a particular example of cloud computing as the definition of cloud computing.

I put together a few slides intended to illustrate a few different examples of cloud computing. I think that there are at least three fairly different classes of cloud computing that provide different value to different people. What all have in common is the use of computers and software in the Internet to replace computers and software residing on a particular physical computer in a known location.

The three different classes I use are Computing as a Service, Platform as a Service, and Software as a Service.

Computing as a Service replaces the management of physical computers with virtual servers running on the Internet. At it’s most basic, Computing as a Service may still require managing the server operating system, and other low-level operations/system administration tasks. But it does eliminate the need to own or rent particular pieces of hardware, and manage or rent datacenter services. Eliminating physical hardware provides an additional benefit: it becomes easier to rapidly scale computing resources up and down to respond to peaks in demand, as well as reducing up front investment. Computing as a Service is rarely talked about by end-users, because it’s mostly invisible to them.

Platform as a Service replaces the management of computer operating systems and databases with a well-tuned environment for running applications. For example, when I deployed a Ruby on Rails application last year, I used Heroku, who provided a platform environment for running Rails applications. Heroku allowed me to ignore basic system administration tasks, OS-level security issues and patches, and database engine tuning, with a scalable environment well-tuned for running Rails applications. These kinds of environments tend to be utilized by developers and smaller companies, who are seeking to avoid system administration overhead in addition to eliminating datacenter management overhead.
 

Application as a Service replaces traditional applications run on a personal computer with software running on a web server. Examples of this include Gmail, Salesforce.com, Google Maps, etc. End-users tend to be most familiar with these applications, and so many times they think of cloud computing as limited to this particular category. Here the value provided is the elimination of installing and managing local applications, the benefits of frequent releases with effort to upgrade.

Different people, depending on their role, may default to a particular mindset around cloud computing. But embracing a broader definition, and understanding how other people may be thinking of cloud computing, can lead to more productive conversations about the benefits and tradeoffs of various cloud computing options.

I’ve proposed a panel for SXSW Interactive called Be Heard: How to Innovate At Large Companies.

This is a subject I’m personally interested in. I’ve successfully introduced several innovative ideas at HP where I had to battle organizational inertia and turf wars to get them implemented. I’ve had both failures and successes. But several of my ideas have been implemented, leading to multi-million dollar benefits to HP.

My plan is to approach this panel from several different angles: real-life experiences inside companies, driving innovation from the outside, and authoritative expertise. To do this, two of the panel members will be individuals who have successfully led innovative ideas, from the ground up, to fruition at large companies. One of the invited panel members is Gene Kim, founder and award winning CTO at Tripwire, who can speak based on his experiences driving innovation from the outside in. The third perspective will be brought via another invited panelist, Gifford Pinchot 3rd, successful author and founder of Bainbridge Graduate Institute, who wrote the definitive book on driving innovation inside companies, Intrapreneuring.

I hope you’ll consider voting for my panel. (Don’t forget to login to make your vote count.) 30% of the selection weighting is given to audience votes, so your vote would be very helpful!
Thanks,
Will

On Tuesday night, Xavier Shay (@xshay) gave a short talk on database anti-patterns.

Here are my rough notes:

  • STI for Shared Data
    • STI = single table inheritance. google “rails sti”.
    • this is sometimes called a “god table”. It is easily found by having a single table that has many null columns, because different kinds of objects are being stored in a single table.
    • Example: a database for books with columns id, type, name, illustrator. for books, there is no illustrator, so you have a null field.
    • This gets complicated over the time. you have to loosen database constraints (you can’t enforce a value for illustrator), and logic is required to handle the null case, even for books. 
    • Using class table inheritence is one solution: books is one table, a second table is comics, and comics table has the illustrator field. In this case, instead of complicating the handling for books with a null illustrator field, we make comics, which needs the extra data, handling getting it from the table.
  • Not Deleting Data
    • People are afraid to delete data
      • in part, afraid of creating dead references, e.g. can’t use has_many
      • business needs to go back in past
    • It’s bad to try to use one database for both reporting and operational needs.
    • Example: a users database, in which records can marked as deleted.
      • then either user names can’t be unique, or then user names can’t be reused. either way, this then gets into extra coding and/or relaxing constraints.
      • plus, all your queries become “find users where state is not deleted”, so all queries become more complex and slower.
    • Solution: have two tables, and move the deleted users into the old_users database, which gives you your history.
  • Different data, same database
    • No notes here, sadly.
  • Not locking data
    • Example: it’s easy, if the user hits pay twice, that you could have a race condition here:
      • order = Order.find(id)
      • order.mark_as_paid!
    • Fix
      • Order.transaction do 
        • order = Order.find(id, :lock => true)
        • order.mark_as_paid!
      • end

CloudCamp 2010
Portland, Oregon
#oscon #cloudcamp #pdx
CloudCamp is a free birds of a feather session at OSCON, the O’Reilly Open Source Conference. I came out of general interest, and because one of the promised tracks is deploying your own cloud using open source tools.
Promo: New user group: pdxdevops
Lightning Talks
open cloud
Sam Johnson
Google, Zurich
  • open source / open cloud: freedom. You can move from one cloud to another. avoids lock-in.
  • unfettered competition leads to commoditization leads to utility computing.
  • case study: free software 
    • open source is a happy medium between free software and proprietary software that leads to useful stuff, good for business.
    • open source is trademarked, giving it some instant recognizability and specific criteria for being open source
  • criteria for open cloud
    • open interfaces (atompub)
    • open formats (open document)
  • http://opencloudinitiative.org
Adrian Cole
Ops Code
@adrianfcole
5 APIs for Provisioning
  • Provisioning
    • Allows access to cheap resources
    • APIs -> automation
    • Tools exists
  • Manage Complexity
    • multi-cloud APIs
      • abstract what is commoditized
      • provide a consistent substrate
      • reduce complexity and lock-in
  • Dasein Cloud
    • Written by guy who did first JDBC
    • Focuses on services
  • Apache Deltacloud http://deltacloud.org
    • Ruby implementation
    • provides REST endpoint. Can use curl to manipulate the clouds.
  • fog
    • ruby cloud computing library
    • compute an storage across many providers (about 6)
  • jclouds
    • multi-cloud framework
    • zero lock-in to cloud apis
    • written in java
    • runs in google app engine
  • libcloud http://libcloud.org 
    • was a python library, with java coming soon
    • is about compute
    • works with 16 providers
The Simple Cloud API
Doug Tidwel
The Simple Cloud API brings cloud technologies to PHP and the PHPilosophy to the cloud, starting with common interfaces for three cloud application services: File Storage Services, Document Storage Services, Simple Queue Services.
  • Joint effort of Zend, GoGrid, IBM, MS, Nirvanix, and Rackspace.
    • But you can build libraries to support other clouds
  • Supports 3 areas:
    • File storage (s3, nirvanix, azure blob, rackspace)
    • Document storage (s3 doc, azure doc)
    • Simple queues (sqs, …)
  • Uses Factory and Adapter design patterns
Eric
Principal consultant with Center Stance
Cloud Consultants: do implementations in the cloud
Not much of an open source person, more of a cloud person.
  • SalesForce.com, SAAS.
  • VisualForce is a templating language + Apex (java like) = to do addons for SalesForce.
  • App Exchange: app marketplace. 
  • managed and unmanaged packages.
    • managed packages are controlled, no code.
  • 940 packages in the app exchange.
  • less than 10% of those are open source: about 80 packages.
Cory 
Dyn, Inc.
DynDNS.org
  • Doing DynDNS for over 12 years. 3.5M people using it.
  • Dynect Platforms: hosts companies like twitter, 37signals, zappos.
  • Geotarget multiple clouds
    • Users in EU, go to Amazon EU, users in the Western USA go to GoGrid, users in the Eastern USA go to …
    • Automatically redirect traffic to servers that are running (active failover)
  • DNS can give you a slider for your traffic: how much do you want to send to the cloud vs. your own servers? you can base it on latency, on location, on etc.
  • DNS resolution time is part of overall latency for users. DynDNS is faster (like 32 ms vs 120 ms in example.) that’s 90ms you’re getting back to be able to do more in your own server.
Unpanel
Hahahaha: They asked “who considers themselves an expert on the topic of open source and cloud computing?” Five people raised their hands. “OK, you’re the panel. Come on up.”
  • How is CC going to change the choice of the dev platform?
  • Is open source still relevant in cloud computing?
  • Will open source save us from a handful of monopolies?
  • What are the implications on hardware? What will change for hardware?
Stuart Smith, Rackspace: Is open source still relevant?
  • Only if you value freedom.
  • In fact, it is even more important.
  • When your proprietary software vendor goes out of business, you still have the software, you still have the license key.
  • When your proprietary cloud vendor goes out of business, your company is fucked.
Will open source save us from monopolies?
  • Just being free isn’t enough. There have been other free efforts that have been crushed by monopolies.
  • You have to have people adopt it.
  • The only way it is going to work is if everyone gets involved. otherwise cloud computing will be dominated by a few proprietary stacks.
How does this influence our choice of platforms?
  • With some platforms, like Google App Engine, you either drink the koolaid, or you don’t.
We’re going through this change between latency sensitive and bandwidth sensitive. Everything moving to data centers. highly multicore systems. now losing in the market place to classic out of order design. we’re going to see lots more cores, lots more latency sensitive. gpu assisted. more message passing hardware to avoid going through the OS.
Breakout Discussions
Why open? Open stack. Open cloud.
Open is:
  • creative commons license on the specs themselves. if the specs themselves are copyrighted, you can’t even tell your customers about them.
  • patents: you can’t have key technology locked up.
  • trademarks: when you start talking about “amazon compatibility”, you have problems. so the relevant names must be open for use.
  • implementations: you need to have multiple implementations.
  • open design / transparency / open process: so the community can participate, so i can understand the design, what is going on.
    • open process is hard: because standards bodies are in theory open, but they cost $12,000 to join, so it;’s not really open.
    • if it’s not open, then other people can’t innovate and move things forward. that’s limited to the standards setters.
  • then what are the options? a different standards body?
    • we had an unconference, and invited people to participate, and we were able to learn from each other and move things forward.
      • (this was on the format used for virtual machines)
  • Open cloud is:
    • open formats
    • open interfaces
    • open source
    • open data
  • “multiple, interoperable implementations, at least one of which is open source”
    • having an open source implementation does give you a real viable alternative. 
    • example: if there was an open format for microsoft office, and they said, well all you have to do is implement microsoft office yourself, then it isn’t really viable, unless there really is an existing open source implementation.
  • part of the core of open source is the right to fork.
    • if you don’t have the right to go, then you are married to the solution (e.g. whoever will buy MySQL)
    • this would include the right to fork a spec
      • let the best API float to the top.

It seems like almost every month I hear of another senior software engineer in the Portland area leaving their company to go work for Apple. I finally figured out why: Apple’s hiring people to work on their iWork suite in downtown Vancouver. Here’s their Sr. Software Engineer job post.

Just in case that page goes away, here’s a text copy:

Requisition Number 4513546 
Job title Sr Software Engineer Location Vancouver (Washington)
Country United States
City Vancouver, WA
State/Province Washington
Job type Full Time
Job description Apple’s Productivity Applications team is looking for a proactive and hardworking software engineer to contribute to current and future applications. Our team is responsible for Pages, Apple’s best-of-breed word processing software, as well as text and drawing features for Keynote, Numbers, and iWeb.

As an engineer on the Productivity team, your responsibilities will range from helping to define new features, to implementing high-level user interfaces, to designing private frameworks for use across the suite. You’ll also be responsible for debugging and delivering the best possible application performance. You will work closely with other engineers, human interface designers, and different groups across Apple.

Key Requirements:
* BS CS/CE or equivalent
* Strong programming skills, preferably with C, Objective-C, and/or C++
* Excellent communication and collaborative skills
* Excitement and passion to work on amazing products
* Deep understanding of performance assessment and optimization
* Proven ability to excel in a fast-paced development team

Preferred skills:
* Mac OS X and/or iPhone OS programming experience
* User-interface programming experience
* Familiarity with web technologies and XML

* BS CS/CE or equivalent       

I attended Web Visions 2010, the Design Conference in Portland, Oregon. Compared to 2009, the conference feels much smaller: perhaps half as big as last year. The conference also seems more tightly focused on design. In 2009, I recalled more sessions on social media, analytics, business, and technology.

CORRECTION: 2010/5/28: Brad Smith, Executive Director of Web Visions, informed me that there were actually more attendees this year, but that the conference moved to a bigger event space. It goes to show that the context in which something happens can substantially influence your perception of the event.

I love design, don’t get me wrong, but I think I liked it more when there was a greater variety of topics. I’m not a full time designer, although I do have design aspects to my work. But I also have social computing, startup, and business aspects to what I do.
Sessions I attended this year:

I tend to like both the expert topic type presentations as well as people’s personal stories. In what I think of as an expert topic presentation, the presenter has deep expertise in a given field, and can draw upon many experiences and other people’s research. By comparison, people’s personal stories of building a business focus on a chronological unfolding of their experiences over time, and give you a very realistic portrayal of the pitfalls and roundabout way that things happen in the real world. Both are valuable, and I do like that Web Visions has both kinds of presentations.


Here are some of the themes I noticed this year:


As I noted before, the critical innovation in many cases is now the user experience, as opposed to any kind of technological innovation. Alexa Andrejewski told the story of having the idea of Foodspotting but no technology expertise – so she spent six months iterating on the design before she found someone to implement it. Gene Smith spoke about creating a good user experience on top of Sharepoint. Web implementation is cheap, it’s something you can do in your spare time, Jason Glaspey explained, with many examples of businesses launched over the course of weeks and in people’s spare time.


In many cases, the best ideas come when there is no expectation of profit, no goal to launch a business. This was a topic at SXSW Interface, and again at Web Visions in Jason Glaspey’s talk on Build Something, Build Anything. delicious, upcoming, metafilter, even facebook were all started as sideprojects to “scratch an itch” as they say. Americans watch 100M hours of TV commercials in a single weekend – that’s the same effort that went into creating Wikipedia. We could have a new Wikipedia every weekend if we just gave up commercials. A good side project should fulfill some goal completely (art, money, career), rather than be something that might be for any of those, but doesn’t accomplish any of them.


User experience design has some concrete tools you can use to create, communicate, and validate your product vision. There are also some specific lessons about how to get people registered on your site, get them engaged, and get them to come back. We want to include humanness in our interfaces without making them too uncanny.


Other summaries of Web Visions 2010:

Build Something Build Anything
Jason Glaspey
#bsba
#wv2010
  • Clay Shirky: in the 1950s, there was a 40 hour work week. people had time, and they didn’t know what to do. enter the sitcom.
    • At the 2008 Web 2.0 Expo they discussed…
    • How many hours did it take to assemble wikipedia: about 100M hours of effort. 
    • Americans watch 200 billion hours of TV each year.
    • Americans watch 100M hours of commercials in a single weekend.
    • We could have another wikipedia every weekend if people just gave up commercials.
  • Some side projects make it big
    • Examples
      • delicious
      • upcoming
      • metafilter
    • But they can be successful even if they don’t
  • Some inspiring examples
    • Again and Again: 23 year old college grad. Passionate about Apple products. Like this band. Built a video for the band. Got over 1.5M views. Has since gotten a huge jump in his career.
      • He demonstrated his skills. He manifested what he wanted.
      • Written up in NY Times, Mac blogs. Talked with Apple. Made videos for Microsoft.
    • What is Google Wave
      • Video by Epipheo Studios
      • Google made a 1 1/2 hour video. Nobody wanted to watch it.
      • So this guy made a 2 1/2 minute video. Just to try to get an invite to Google Wave.
      • Has since been hired by Google to do “what is google chrome”, “what is google tv”.
      • Their company cannot keep up with demand… 
      • The project they did in a day got them tons of attention.
    • iPod Touch Ad
      • Nick Haley: 18 year old in the UK
        • He loved his iPod touch, and loved Apple ads.
        • Got an email from Apple, “Would he please come to California and be the creative director to shoot a polished version of the ad.” -> which turned into the actual TV ad.
      • never thought he would even be in advertising, and now it very successful
  • Beyond video, and some personal examples
    • unthirsty.com: happy hour finder
      • was novel at the time. got written up on lifehacker, won google mashups. got a couple of thousand user-contributed locations.
      • something they built in their spare time… a few hundred dollars invested. over a couple of years, it built up.
      • it was not about financial success. no advertisements. just for fun. 
        • this was attractive to people…
      • finally these sold it… not retirement money, but decent enough.
      • But it led to jobs: they never saw a resume, or a portfolio: just saw unthirsty. The fact that they built something so cool and compelling for fun, just because they wanted to build something: they just had to hire him.
    • Jason on Cars
      • As a perk at a job got to drive different classic and exotic cars on weekends or the evening.
      • So decided to write a WordPress blog doing lifestyle reviews of the cars. For two years they would drop off a brand new car everything Thursday, and pick up the old car. He made a couple of hundred dollars a month on advertising from the blog, and got to drive all these cool cars.
      • Just for setting up a blog and writing a post each weekend.
    • Bacn.com:
      • started dec 28th 2008, launched on January 17th.
      • got bacon from all over the country, filmed content, built site, ecommerce.
      • it was really fun, really novel.
      • sold it in january of this year…
      • got invited to speak of webvisions “we built a company in 3 weeks”.
        • “wow, that would make a great book.” – a publisher asked them to write about a book about it.
    • Paleo Plan: a site to make it easier and cheaper to follow paleo diet
      • in 3 weeks launched a site. you get a shopping list. you get a meal plan.
      • saves people about 4 hours a month by not having to do that.
      • he charges $10/month to save 4 hours of time.
      • he works about 3 hours a week on it, and now it’s his primary source of income.
    • They don’t all work: He has 5 or 6 sites that failed
      • some are bad ideas
      • some have bad timing
      • some are good ideas with bad execution
      • examples:
        • laptopia
        • to smoke a cigar
        • revoluton cyclewear
        • snotips
        • on and on
  • You don’t have to broadcast your failures
    • make them count
    • get there fast: or fail fast
    • learn from everything
    • be purposeful about what you learn and how you describe
  • Success isn’t cashing out.
    • success is building some cool, learning amazing stuff
  • Questions to ask yourself
    • Is this for art?
      • Make sure it fits at least one specific need: if it kind of feels like art, kind of feels like it will make money, kind of feels like a hobby… it may do none of those things.
      • Make sure it really satisfies one of those categories.
    • Is this for money?
      • It’s OK. It doesn’t have to be, but that’s fine.
    • Is this for your career?
      • Get out there and make something. Let them know what you can do.
      • Maybe the first one sucks. That’s fine. Do five more. You’ll figure it out.
    • What does success look like?
      • Am I looking for a better job?
      • To get an opportunity that wasn’t there before?
      • To gain notoriety?
      • Build momentum: one project alone might not get you there, but a series of them will.
    • Be Creative
      • Will It Blend? 
        • You can’t help but know about this blender, even though a blender is one of the most boring appliances around.
    • Talk to everyone you know
      • Learn to weed out bad ideas early
  • Questions?
    • Paleo Diet site: cost about $1200 to get site up. includes consultant fee to the primary expert on it, the wordpress plugin, an search adwords guy
    • Q: favorite way to prototype?
      • A: I’m an information architect. I make a lot of wireframes and specs. I work in person with people, people I know, and can work closely with. Most of my projects are simple enough that a couple of wireframes and specs is enough.
    • Q: the sites you sold: was that an email out of the blue or what?
      • A: we knew the competitor from the beginning, he was happy to help us in the beginning, and let us know over and over that he was willing to buy the site.
      • A: we had a lot of calls from guys who wanted to the backend from us, and eventually a guy called who knew what he wanted to do with it and was willing to pay.

rethinking the link
Ward Cunningham
@ward
AboutUs.com
  • Ward is the inventor of the wiki: the Portland Pattern Repository. http://c2.com/cgi/wiki 
  • What they’ve implemented in Ruby on Rails and Javascript
  • What is a link?
    • Something to click that takes you somewhere
    • a relation to resources : Ray Fielding (inventor of the wiki)
  • is a link that goes where broken?
    • Not necessarily: as wiki proved
    • so Ray Fielding says a link is “a relation to resources, possibly zero”
  • wiki turns the zero case into an invitation
    • a link that doesn’t go anywhere is an invitation to author that topic.
    • wikipedia wisely color coded the link: a red link doesn’t go anywhere, a blue one does.
      • It’s pretty hard to find a red link these days on wikipedia: it’s been so successful that virtually every topic has been written about.
  • bringing the state of destination page to the link avoided the dreaded “under construction” on to-be-developed pages.
  • two kinds of links
    • internal links: essentially a query to see if the page exists
    • external links: aren’t checked
    • it means every page is dynamic: even if you don’t expect the page itself to change, the state of the links can change.
  • extending the wiki color code
    • blue link means one (links to exactly one place)
    • red link means zero (nothing there, we have to write it)
    • orange link means many (have to choose)
  • there are 30,000 disambiguation pages on wikipedia.
    • there are people whose whole contribution to wikipedia is disambiguating terms
  • happy collision / happy accident
    • originally wiki (Portland Pattern Repository) was 30,000 pages on a single topic: how to go about doing computer programming
    • a happy collision is when you write a WikiWord expecting to see a question mark (indicating that the page wasn’t written), but it is a blue link (the topic is already written about.)
  • sister sites
    • pretty early on, other sites on related topics started up.
    • “let’s share our names”
  • what is the Japanese word for “glitch”?
  • social jargon
    • part one: you have a glossary of words you use: not every word, but words you use that not everyone knows, but you want them to know.
    • part two: your writing automatically links to words in your glossary. (no special brackets or action needed)
    • part three: your readers learn your words automatically
    • part four: your words spread friend to friend as they are used
      • when someone else uses a word, it gets added to their glossary
  • social jargon is a feature of AboutUs.com
  • AboutUs:
    • Community generated content about domains: an expanded version of whois.
    • People don’t want to write encyclopedia articles
    • So they focus on micro-summaries. A single sentence.
  • The purpose of social jargon is to add precision to concise summaries:
    • Example: “JiveSoftware moves its HQ from Portland to the Bay Area”. 
    • What do they mean by Portland? Portland Oregon? Portland Maine? Portland Cement? By detecting it and disambiguating on the fly with a glossary, then others can know that Portland, Oregon is meant.
  • It allows people to be casually precise. In a world where we want to write less and have it mean more.
  • is it important? are names important?
    • “The dominating feature in the [energetic neutral atom Interstellar Boundary Explorer (IBEX) all-sky maps] at low energies is the hydrogen, helium, and oxygen interstellar gas flow.
      • super long noun: many words used to achieve full precision. 
    • it’s a natural human feature to compress and utilize context to fill in the gaps. 
    • context, adjectives, and syntax are all normally used to help achieve precision…
      • context: “it was a dark and stormy night”
      • adjectives: “energetic neutral atom”
      • syntax: “meeting @ward at #wv2010”
    • interaction helps:
      • “By wiki, did you mean Portland Pattern Repository or collaborative software?”
  • Give it a try on AboutUs.com
  • The future of writing
    • Wikipedia has had a tremendous impact on writing.
      • And a tremendous impact on linguistics who have something to study that is properly licensed and has a full history.
    • Texting trend: short messages
    • Social trend: context for everything.
      • We want to use the computer and language in a way similar to our colleagues and friends. 
    • Tapping trend: favors choosing over typing. (e.g. better to write something short, and be able to choose the precision than to have to write something long and precise using an iPhone keyboard.)
  • Impact…
    • accelerated evolution of language: it will be easier for new words and concepts to propagate rapidly.
    • specialize language used freely: when you find that existing words don’t work, you’ll make up new words
    • hard to read offline: you’ll be able to read further from your comfort zone because you’ll be able to look up words as you go.

I’m at Web Visions 2010, the Design Conference in Portland, Oregon. I attended only once before in 2009. Compared to last year, the conference feels much smaller: perhaps half as big as last year. The conference also seems more focused on design. In 2009, I recalled more sessions on social media, analytics, business, and technology.

I love design, don’t get me wrong, but I think I liked it more when there was a greater variety of topics. I’m not a full time designer, although I do have design aspects to my work. But I also have social computing, startup, and business aspects to what I do.

I’m very curious about the factors that went into the change in size and focus.