Semantic FaceWeb: RDfb is strong use of RDFa

Great news for Semantic Web, Facebook announced that they are going to use more structured metadata in shared web pages then just their original meta tags.

There are two parts to it – first they are going to provide storage about all things withing Facebook and on the internet in JSON format so people can write applications that use this data.

For example, public information about me on Facebook can be seen at this URL:

And here how it looks:

   "id": "504972292",
   "name": "Sergey Chernyshev",
   "first_name": "Sergey",
   "last_name": "Chernyshev",
   "link": ""

This way all you need to know is ID, which in my case is sergey.chernyshev or 504972292.

Another side of this is that Facebook is going to also store data from pages that were shared using their share button or added to interests or in any other way loaded into facebook’s system. They will be extracting this data using RDFa format and interpret it using a vocabulary that they call Open Graph Protocol (I will be calling it RDfb).

<html xmlns:og="">
<title>The Rock (1996)</title>
<meta property="og:title" content="The Rock" />
<meta property="og:type" content="movie" />
<meta property="og:url" content="" />
<meta property="og:image" content="" />

This will allow sites to add a few lines of code to their pages to get them recognized as meaningful data instead of just human-readable documents – this will allow smart agents like search engines, mobile applications, embedded systems and just simple widgets to make sense of this data and help people see it in the context that is most usable for them.

I have a feeling that Facebook being a great driver for many business decisions related to promotion and marketing through social media, this change is going to be a best thing that happened to Semantic Web so far, might be even bigger then Yahoo’s and Google’s efforts in universal search.

P.S. Such a great present for my presentation about RDFa tonight ;)

Listen to the lizard brain and walk on the path of the most embarrassment

I was listening to a long awaited interview with Seth Godin that Bob Walsh and Patrick Foley from Startup Success Podcast just released and Seth said something (11:38 in mp3) that resonated with me immediately:

…I use a resistance as a compass. If I’m uncomfortable about doing something, if I hear the voice of the lizard brain, that’s exactly what I choose to do…

This is exactly the “path of the most embarrassment” that I wrote about some time ago. This is the feeling that I found. The one that is so easy to differentiate from the comfortable fuzzy feeling that boring stuff brings.

It feels so good to have a validation by Seth, I think I should listen to this lizard brain more often not to step away from the path of the most embarrassment. Wait… good feelings should be avoided, don’t they…

Path of the most embarrassment

I’m working on HowDoable for a few months already and it’s been a fun ride and main challenge is to go towards the goal.

I’m using Pivotal tracker for my agile needs and i have a long backlog which I’m adding to more stuff over time, rearranging the list and so on. What I noticed that rearranging gets a pattern during hard times – I tend to avoid some kind of tasks – those that are not very natural for me, like writing some texts in English or just regular startup problems like writing business plan or think about the product from user’s perspective.

What I tend to push up the list is something I’m comfortable doing, like coding new features or playing around with new colors, logo, some other things, but definitely not those that bring me closer to the release.

Many words are said about shipping the product early and why it can be vital to business so I’m not going to repeat them here, but I never found a good recommendation about how exactly do we do that. One thing that I heard lately is a paradigm of “minimal viable product” which is about the set of features to include that will make the product stand out, but no more.

What it doesn’t describe is how do you do that in agile environment when so many backlog items come up when you start and reprioritization happens very often and requires constant attention. So I struggle to find that feeling that I can catch and follow during the periodic reordering of my task list / backlog to make sure that things that need to be done to be successful don’t get pushed down by things that I just feel like doing.

Some time ago I read a good quote from Reid Hoffman of LinkedIn – “If you’re not embarrassed by your first release, then you launched too late.” and it stuck with me as a great description of the problem of over-polishing the product which is not even seen by users yet.

So I though to myself – if I look at it from agile perspective and treat each iteration’s or even day’s product as a final product (thing that you want to have in your agile world) then embarrassment is exactly the feeling that needs to guide you when you’re picking the next thing to do.

What I mean is that if you thinking of moving some task down to replace it with some other task, think if this other tasks’ completion is going to help you avoid some potential embarrassment and if so, then stop right there! – what you’re doing is trying to feel better about the product and not bringing the product to the state that will benefit the business.

Unfortunately these are two different things and extreme perfectionism tha arises from trying to “polish the torpedo” never did any good and many projects and businesses were ruined by “unfinished torpedoes with shiny casing”.

So now what I do and urge all the strartupers to do (or open source developers for that matter) is to follow the path of the most embarrassment – when you feel that you have a choice of doing something to reduce the embarrassment, turn around and go into the opposite direction because you’re trying not to hurt your feelings. What you need to do instead is to go towards the business goals that I hope you had time to define and didn’t just jump into development, right.

Hope this insight helps and if you feel I’m wrong, let me know in the comments.

Sergey “Che” Chernyshev

Steve Souders wrote a post about people mispronouncing his name.

Obviously, I’m an emigrant which makes it different, but in my case people usually can’t finish pronouncing my last name and stumble somewhere in the middle ;)

I even thought about borrowing a nickname from Ernesto Guevara, so it’s easier to remember like Sergey “Che” Chernyshev, but wasn’t sure if I really wanted to be associated with communism ;)

It’s hard to translate this joke to English, but I felt like posting it anyway – it describes what people feel when they actually try to pronounce my name:
Sergey Chё?

Even Faster Web Sites

Even Faster Web Sites
I’m done with my copy of Even Faster Web Sites.

It’s definitely a book worth reading if you’re well into web performance optimization and want to step even further when all simpler optimizations don’t bring any more improvements.

JavaScript sections from Ajaxians and Nicholas Zakas are quite interesting but definitely for most complex 2.0 apps with tons of JS and front-end processing.

Flushing early and CSS selector performance are important too, Steve was talking about it at Web 2.0 @ SF – CSS is a bit beyond my comprehension unfortunately, but flush is easy to comprehend for those who made at lease a single IO app, especially networked.

One thing among tools – in my opinion, was given less credit then it deserves – it’s connection view (next to the waterfall) and content breakdown chart as well as empty/primed dual run definitely bring it high in the “packet sniffer” section and not only “analytic tools” section. And I agree with Steve that it’s availability through the web give it a huge value in the eyes of developers and business decision makers. It’s very possible though that that section of the book was done when most of these features were added.

If you didn’t read Even Faster Web Sites, you probably should. As well as its prequel – High Performance Web Sites.