•
Something that amazes me on Twitter, is that regular humans (non-
programmers) are fine with, even good at adding little markup tags in tweets. So now that we have seen that the masses are cool with adding little tags and markup to freeform content, we should embrace it!
Since Facebook is the leading social network, they should also support a markup syntax in comments & status updates because it is useful for humans and computer programs.
It would be in Facebook’s best interest to improve the human user-
experience and also in their interest to add semantics to status updates and comments so that they are more useful for Computer Programs. Facebook is trying to push what they call “Platform” which is a way to write computer programs that integrate with Facebook.
Here are a few of examples of how Twitter markup syntax is beneficial for humans and computer programs. Maybe with enough retweets of this article, it could actually happen
Twitter Replies and Mentions
Twitter supports the ability to reply and or mention another user and link to that user. From the Twitter getting started guide:
Any tweet beginning with @username is considered a reply. We call tweets with @username elsewhere in the update mentions.

User benefits
- Get mentioned and new people notice you
- Notice people that other people are mentioning
Computer program benefits
- Indicates some kind of relationship between users – Example algorithm: mentions between two users may mean that those two users are interested in each other
Twitter Hashtags
Twitter supports the ability to group tweets. From the Twitter getting started guide.
Because Twitter provided no easy way to group tweets or add extra data, the Twitter community came up with their own way: hashtags. A hashtag is similar to other web tags- it helps add tweets to a category. Hashtags have the ‘hash’ or ‘pound’ symbol (#) preceding the tag, like so: #traffic, #followfriday, #hashtag. Hashtags can occur anywhere in the tweet: some people just add a # before a word they’re using, like so:
Hashtags are huge and they have so much potential that it is far too much to fathom, but I’ll take a stab:
User benefits
- Easy way to tag / tie your post to a topic for others to find
- Easy way to search on a topic
- Real-time trends
Computer program benefits
- Provides additional meaning to posts
- Almost limitless possibilities
I could go on with more specific examples, but it boils down to this. Markup in free-form content:
- Makes new tools possible for users
- Provides semantics for computer programs
At the end of the day, I really don’t
care if Facebook adds markup extensions. However, I do think it would be good for the web, so that user-generated content has more meaning. I would also push that if Facebook does implement some kind of markup, that they use the same popular markup that already exists on Twitter. Standards are the backbone of the web.
Cheers,
Jon
•
As of today, there is no way to explicitly have Google index only certain parts of a single Webpage. I am writing this post in order to show my need for partial page indexing support and to discuss a few possible solutions for this today.
My need for this stems from the Personalization of WebPages, a feature that makes the web better for people. I hope that this post can create discussion between us and maybe someone from Google will be kind enough chime in and provide us with guidelines on how to design websites where we want Google to ignore parts of a WebPage in their index.
The premise of my need is that I have WebPages that have content for everyone, and content customized for the specific user viewing the webpage. I lump this user specific content under the term “Personalization”.

Personalization is a powerful mechanism for making the Web more useful for people. Most of us are familiar with the personalization on Amazon.com where they target items to you based on your viewing and buying habits.
On www.VastRank.com (a College Review Website site that I created) when a user is viewing a College Profile page, they are also shown partial college reviews for other colleges that they may be interested in. I go deep into the personalization implementation in my Google I/O presentation Using AJAX APIs to Navigate User-Generated Content. Here is a slide from that deck that illustrates the “personalized” suggestions that are shown to users on the right hand side of college profile pages.
The main issue here is that Googlebot is now going to see partial user reviews for other colleges on different college profile pages. This causes two major issues:
- Duplicate content problems
- Text from other college reviews show up in the search results for Other College Profile pages in the Google.com Search
Should Google support robots-nocontent?
One implementation that would solve my problem would be if Google implemented Yahoo’s robots-nocontent tag. I recently tweeted back and forth on this topic with Google’s Matt Cutts on Twitter:
Jon Kragh
“Google (@mattcutts) please support Robots-Nocontent – I have partial content tailored for each specific user, that should not be indexed”
Matt Cutts
mattcutts@jonkragh we looked at how many sites use robots nocontent on the web and it was miniscule, so we decided not to do it.
Jon Kragh
@mattcutts if Google blessed Robots-Nocontent more people would use it-should personalized content (i.e. suggestions) be loaded via AJAX?
So at this point, it looks like robots-nocontent is not one of Google’s top priorities.
robots-nocontent is not right either
Initially I looked at robots-nocontent because it was the closest thing I could find for a partial content indexing solution. However, robots-nocontent is so general, that it might not be the best long-term solution for the web. Looking back at what I have conceptually, I have content for everyone, and content for a particular user.

A better solution than robots-nocontent would be to create a new tag for this scenario that has more meaning.
robots-user-specific-content
I suggest a new tag that can denotes content that will be different for each user that visits the website: robots-user-specific-content. For the time being Google could ignore that content, much like an implementation of robots-nocontent would work. However, having this extra meaning would allow for possible extensions to Google in the future, where a user could search with their identity and get results back from websites with content personalized for that user.
What can I do now?
For now I am stuck! I am considering loading personalized content through AJAX to avoid having it indexed. However, this would be a guess on my part on Google’s indexing algorithm. Will Google index AJAX content? Will it penalize me because I’m loading different content in a section of a page via AJAX each time Googlebot visits my site? This is where I would like your feedback, and hopefully some guidance from Google!
Cheers,
Jon
•
In my home office, I have a headless server running Windows
Server 2008 with iTunes 8 installed. This machine is where I store all of my music, photos, videos, and other entertainment related files. The interesting thing is that I also use this server to wirelessly broadcast my iTunes music digitally to my kick-ass home studio setup (a Benchmark DAC1, Coleman Audio M3, Quested Powered F11As, and a REL Subwoofer). The setup that I am about to describe should work equally as well for those of you who have any kind of audio playback equipment that has an optical audio input.
The setup is simple. I bought a Shuttle XPC SD30G2B and a
RocketRaid 1740 card off of NewEgg.com. Here is the machine stashed away behind some of my other gear. The server has no monitor attached and I use Remote Desktop to connect to it. The other key component is the Apple Airport Express which has a digital audio out.

When I launch iTunes, it get the following error message, since the onboard audio card is not configured properly (I believe that is because I do not have anything hooked up to the onboard audio card). This message can be ignored.

After iTunes launches you can choose the Airport Express from the dropdown list on the bottom of iTunes. You only have to do this once, if your Airport Express is always plugged in.

Here is the Benchmark DAC1 (on the bottom of the rack) set to its optical input with it’s blue status light lit up. The blue status light will light up on the Benchmark DAC1 as long as something is playing from iTunes.
This area also doubles as my home office, where I work as an independent Software Development Consultant. I get to listen to music on a kick-ass system while coding!
The setup is also very reliable, Windows Server 2008 is rock solid and so is the Airport Express. One last note: Originally I had setup Windows Home Server but it has file corruption issues, so I highly recommend staying away from WHS.
EDIT: 7/24/2009 – This does not work when you try to use the physical soundcard connected to the server.
I just tried switching from using AirTunes to a physical sound card on the Server and it does not work when using via RDP (Remote Desktop). When I RDP into the server and click on Control Panel –> Sound, I see a message: “No audio devices are installed”. If I log on locally at the physical computer, I can see all of the devices fine.
It turns out that this is “by design” and choosing “Leave at Remote Computer” in Remote Desktop is ignored by Windows Server 2008 x64". Here is a link to the KB article and a thread on the TechNet forums describing this.
So, at least for the time being, I can still play iTunes from the server to AirTunes, even when logged into the server via Remote Desktop.
Cheers,
Jon
•
Recently, I had the great honor of being asked by Google to present at Google I/O 2009. Here is the story of my journey including: how to get noticed by Google, getting invited to present at Google I/O, practicing the presentation with my Google contact, the hours leading up to the presentation, the presentation itself, and the after party! I have included some behind the scenes photos and videos as well.
How did I get noticed by Google?
Recently, I saw a beer commercial that said “Rule #1 of how to get the girl: be good looking!”. So here is my rule of how to get noticed by Google “Rule #1 of how to get noticed by Google: use the Google APIs in some kick-ass way!”. Google is building a developer platform and they want to show off developers utilizing said platform. So if you do something cool with the Google APIs, it is easier to get noticed than you may think.
How did I get asked to present at Google I/O?
My main “in” at Google was that anytime that I did something rather cool with the Google APIs, I pinged the Google Employee Developer I met in the Google Developer Newsgroups. I did not expect anything in return from him. I thought “hey I just implemented something really cool and they might be interested”. It turns out that they were indeed interested and extremely friendly. Every time that I implemented something substantially new and cool, we would have an open dialog about what would make my application better and they would say things such as “hey did you know we have the Client Location API, this would be really cool for your site…”. It turns out that I must have pinged my Google contact at the exact right time (with information about major updates to my site). I had just completed some advanced Google Maps coding and once they saw it, they officially invited me to Google IO to be in the Developer Sandbox and to present a session.
Preparing my presentation
So now there I was, Google asked me (OMG!) to come out and speak and they wanted me to send out a rough concept of what I might want to present. Initially I proposed a session called “Building a cool app on an hour a day, a rebel’s view of the world”. That presentation would have been all about the mindset that I had and steps I took to successfully building www.VastRank.com in my spare time. Google liked that presentation, but they wanted it to be more focused on the APIs since that is what a lot of visitors to Google I/O would be looking for.
So I changed my presentation to “Using AJAX APIs to Navigate User-Generated Content”. The presentation was about how do you take all of this information that users have submitted and sort and present it to other users in an interesting and useful way. The title of the session was play on a Don Box title “Navigating the Programmable Web”.
Rehearsing with the Google AJAX API Team
Once I had my presentation prepared, I rehearsed it over two video conferences with Adam Feldman, the Google AJAX APIs Product Manager. Adam was extremely smart, and had a way to hear what I was saying and then summarize some things into a much more compelling concise point.
I arrived to the conference a day early, where I was able to do my presentation in the actual conference room to a group of Googlers. I am so glad that I had that opportunity, because I rushed through my first live run and was 15 minutes short of the target time. I needed to slow down the next day!
The Session: Using AJAX APIs to Navigate User-Generated Content
Here is a link to the full to the official Google I/O Session page which has the video and slides.
The After Party
Google I/O 2009 was a two day event. I presented on day one and at the end of day one Google through a massive after party. Here I took a quick video near the end of the evening.
Cheers,
Jon