<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>http://ruben.verborgh.org/</id>
  <title>Ruben Verborgh's blog</title>
  <updated>2013-05-31T19:30:00Z</updated>
  <link rel="alternate" href="http://ruben.verborgh.org/"/>
  <link rel="self" href="http://ruben.verborgh.org/blog/latest.xml"/>
  <author>
    <name>Ruben Verborgh</name>
    <uri>http://ruben.verborgh.org/blog/</uri>
  </author>
  <entry>
    <id>tag:ruben.verborgh.org,2013-05-31:/blog/2013/05/31/towards-serendipitous-web-applications/</id>
    <title type="html">Towards serendipitous Web applications</title>
    <published>2013-05-31T19:30:00Z</published>
    <updated>2013-05-31T19:30:00Z</updated>
    <link rel="alternate" href="http://ruben.verborgh.org/blog/2013/05/31/towards-serendipitous-web-applications/"/>
    <content type="html">&lt;p&gt;Hyperlinks are the &lt;a href="/blog/2013/03/29/affordances-weave-the-web/"&gt;door handles&lt;/a&gt; of the Web,
as they afford going to the next place you want to be.
However, in a space as large as the Web,
there is an awful lot of possible next places,
so the webpage might not offer the door handle you are looking for.
Luckily of course, there’s a thing called Google,
but wouldn’t it be much more awesome
if the links you need were already there on the page?
Because right now,
the author of the webpage has to make the decision where you can go,
as he is the architect of the information.
But should he also be the architect of the &lt;em&gt;navigation&lt;/em&gt;
or should that be &lt;em&gt;you&lt;/em&gt;, the person surfing the Web?&lt;/p&gt;&lt;a href='http://ruben.verborgh.org/blog/2013/05/31/towards-serendipitous-web-applications/'&gt;Read more&amp;hellip;&lt;/a&gt;</content>
    <summary type="html">&lt;p&gt;Hyperlinks are the &lt;a href="/blog/2013/03/29/affordances-weave-the-web/"&gt;door handles&lt;/a&gt; of the Web,
as they afford going to the next place you want to be.
However, in a space as large as the Web,
there is an awful lot of possible next places,
so the webpage might not offer the door handle you are looking for.
Luckily of course, there’s a thing called Google,
but wouldn’t it be much more awesome
if the links you need were already there on the page?
Because right now,
the author of the webpage has to make the decision where you can go,
as he is the architect of the information.
But should he also be the architect of the &lt;em&gt;navigation&lt;/em&gt;
or should that be &lt;em&gt;you&lt;/em&gt;, the person surfing the Web?&lt;/p&gt;</summary>
  </entry>
  <entry>
    <id>tag:ruben.verborgh.org,2013-04-30:/blog/2013/04/30/lightning-fast-rdf-in-javascript/</id>
    <title type="html">Lightning-fast RDF in JavaScript</title>
    <published>2013-04-30T08:15:00Z</published>
    <updated>2013-04-30T08:15:00Z</updated>
    <link rel="alternate" href="http://ruben.verborgh.org/blog/2013/04/30/lightning-fast-rdf-in-javascript/"/>
    <content type="html">&lt;p&gt;Node.js has spawned a new, asynchronous generation of tools.
Asynchronous thinking is different from traditional stream processing:
instead of actively waiting for data in program routines,
you write logic that acts when data arrives.
JavaScript is an ideal language for that,
because callback functions are lightweight.
I have written a parser for Turtle, an RDF serialisation format,
that uses asynchrony for maximal performance.&lt;/p&gt;&lt;a href='http://ruben.verborgh.org/blog/2013/04/30/lightning-fast-rdf-in-javascript/'&gt;Read more&amp;hellip;&lt;/a&gt;</content>
    <summary type="html">&lt;p&gt;Node.js has spawned a new, asynchronous generation of tools.
Asynchronous thinking is different from traditional stream processing:
instead of actively waiting for data in program routines,
you write logic that acts when data arrives.
JavaScript is an ideal language for that,
because callback functions are lightweight.
I have written a parser for Turtle, an RDF serialisation format,
that uses asynchrony for maximal performance.&lt;/p&gt;</summary>
  </entry>
  <entry>
    <id>tag:ruben.verborgh.org,2013-03-29:/blog/2013/03/29/affordances-weave-the-web/</id>
    <title type="html">Affordances weave the Web</title>
    <published>2013-03-29T08:00:00Z</published>
    <updated>2013-03-29T08:00:00Z</updated>
    <link rel="alternate" href="http://ruben.verborgh.org/blog/2013/03/29/affordances-weave-the-web/"/>
    <content type="html">&lt;p&gt;What makes the Web more fascinating to read than any book?
It’s not that the information is more &lt;a href="http://en.wikipedia.org/wiki/Wikipedia:List_of_hoaxes_on_Wikipedia" title="Wikipedia reliability"&gt;reliable&lt;/a&gt;
or people have become &lt;a href="http://www.dailymail.co.uk/sciencetech/article-2052146/Elderly-people-read-iPads-times-faster-normal-books.html" title="Elderly people 'read iPads three times faster than normal books'"&gt;tired&lt;/a&gt; of the smell of paper.
The exciting thing about consuming information on the Web
is that you can keep clicking through for more.
Hyperlinks have always been a source of endless curiosity.
Few people realize that the hypertext concept actually far predates the Web.
The idea that information itself could become an actionable entity
has revolutionized our world and how we think.&lt;/p&gt;&lt;a href='http://ruben.verborgh.org/blog/2013/03/29/affordances-weave-the-web/'&gt;Read more&amp;hellip;&lt;/a&gt;</content>
    <summary type="html">&lt;p&gt;What makes the Web more fascinating to read than any book?
It’s not that the information is more &lt;a href="http://en.wikipedia.org/wiki/Wikipedia:List_of_hoaxes_on_Wikipedia" title="Wikipedia reliability"&gt;reliable&lt;/a&gt;
or people have become &lt;a href="http://www.dailymail.co.uk/sciencetech/article-2052146/Elderly-people-read-iPads-times-faster-normal-books.html" title="Elderly people 'read iPads three times faster than normal books'"&gt;tired&lt;/a&gt; of the smell of paper.
The exciting thing about consuming information on the Web
is that you can keep clicking through for more.
Hyperlinks have always been a source of endless curiosity.
Few people realize that the hypertext concept actually far predates the Web.
The idea that information itself could become an actionable entity
has revolutionized our world and how we think.&lt;/p&gt;</summary>
  </entry>
  <entry>
    <id>tag:ruben.verborgh.org,2013-02-21:/blog/2013/02/21/programming-is-an-art/</id>
    <title type="html">Programming is an Art</title>
    <published>2013-02-21T08:30:00Z</published>
    <updated>2013-02-21T08:30:00Z</updated>
    <link rel="alternate" href="http://ruben.verborgh.org/blog/2013/02/21/programming-is-an-art/"/>
    <content type="html">&lt;p&gt;People who have programmed with me
or have seen &lt;a href="https://github.com/RubenVerborgh"&gt;my open-source work on GitHub&lt;/a&gt;
know that I put a lot of effort in my coding style.
I indeed consider programming a creative act,
which necessarily involves aesthetics.
And then, some people consider aesthetics the enemy of the pragmatic:
&lt;em&gt;“don’t spend time writing beautiful code
when you can write effective code”&lt;/em&gt;.
However, I argue that my sense of beauty serves pragmatism much better,
because it leads to more concise and maintainable code,
and is thereby far more effective.&lt;/p&gt;&lt;a href='http://ruben.verborgh.org/blog/2013/02/21/programming-is-an-art/'&gt;Read more&amp;hellip;&lt;/a&gt;</content>
    <summary type="html">&lt;p&gt;People who have programmed with me
or have seen &lt;a href="https://github.com/RubenVerborgh"&gt;my open-source work on GitHub&lt;/a&gt;
know that I put a lot of effort in my coding style.
I indeed consider programming a creative act,
which necessarily involves aesthetics.
And then, some people consider aesthetics the enemy of the pragmatic:
&lt;em&gt;“don’t spend time writing beautiful code
when you can write effective code”&lt;/em&gt;.
However, I argue that my sense of beauty serves pragmatism much better,
because it leads to more concise and maintainable code,
and is thereby far more effective.&lt;/p&gt;</summary>
  </entry>
  <entry>
    <id>tag:ruben.verborgh.org,2013-01-31:/blog/2013/01/31/what-web-agents-want/</id>
    <title type="html">What Web agents want</title>
    <published>2013-01-30T23:00:00Z</published>
    <updated>2013-01-30T23:00:00Z</updated>
    <link rel="alternate" href="http://ruben.verborgh.org/blog/2013/01/31/what-web-agents-want/"/>
    <content type="html">&lt;p&gt;The iPhone’s Siri has given the world a glimpse
of the digital personal assistant of the future.
&lt;em&gt;“Siri, when is my wife’s birthday?”&lt;/em&gt;
or &lt;em&gt;“Siri, remind me to pick up flowers when I leave here”&lt;/em&gt;
are just two examples of things you don’t have to worry about anymore.
However cool that is, Siri’s capabilities are not unlimited:
unlike a real personal assistant, you can’t teach her new tricks.
If you had a personal agent that could use the whole Web as its data source—instead of
only specific parts—there would be no limits to what it could do.
However, the Web needs some adjustments to make it agent-ready.&lt;/p&gt;&lt;a href='http://ruben.verborgh.org/blog/2013/01/31/what-web-agents-want/'&gt;Read more&amp;hellip;&lt;/a&gt;</content>
    <summary type="html">&lt;p&gt;The iPhone’s Siri has given the world a glimpse
of the digital personal assistant of the future.
&lt;em&gt;“Siri, when is my wife’s birthday?”&lt;/em&gt;
or &lt;em&gt;“Siri, remind me to pick up flowers when I leave here”&lt;/em&gt;
are just two examples of things you don’t have to worry about anymore.
However cool that is, Siri’s capabilities are not unlimited:
unlike a real personal assistant, you can’t teach her new tricks.
If you had a personal agent that could use the whole Web as its data source—instead of
only specific parts—there would be no limits to what it could do.
However, the Web needs some adjustments to make it agent-ready.&lt;/p&gt;</summary>
  </entry>
  <entry>
    <id>tag:ruben.verborgh.org,2012-12-31:/blog/2012/12/31/asynchronous-error-handling-in-javascript/</id>
    <title type="html">Asynchronous error handling in JavaScript</title>
    <published>2012-12-31T08:00:00Z</published>
    <updated>2012-12-31T08:00:00Z</updated>
    <link rel="alternate" href="http://ruben.verborgh.org/blog/2012/12/31/asynchronous-error-handling-in-javascript/"/>
    <content type="html">&lt;p&gt;&lt;em&gt;Anything that can go wrong will go wrong&lt;/em&gt;, so we better prepare ourselves.
The lessons we’ve been taught as programmers to nicely throw and catch excep­tions
don’t apply anymore in asynchronous environments.
Yet asynchronous programming is on the rise,
and things still can and therefore &lt;em&gt;will&lt;/em&gt; go wrong.
So what are your options to defend against errors
and graciously inform the user when things didn’t go as expected?
This post compares different asynchro­nous error handling tactics for JavaScript.&lt;/p&gt;&lt;a href='http://ruben.verborgh.org/blog/2012/12/31/asynchronous-error-handling-in-javascript/'&gt;Read more&amp;hellip;&lt;/a&gt;</content>
    <summary type="html">&lt;p&gt;&lt;em&gt;Anything that can go wrong will go wrong&lt;/em&gt;, so we better prepare ourselves.
The lessons we’ve been taught as programmers to nicely throw and catch excep­tions
don’t apply anymore in asynchronous environments.
Yet asynchronous programming is on the rise,
and things still can and therefore &lt;em&gt;will&lt;/em&gt; go wrong.
So what are your options to defend against errors
and graciously inform the user when things didn’t go as expected?
This post compares different asynchro­nous error handling tactics for JavaScript.&lt;/p&gt;</summary>
  </entry>
  <entry>
    <id>tag:ruben.verborgh.org,2012-11-27:/blog/2012/11/27/everything-is-connected-in-strange-ways/</id>
    <title type="html">Everything is connected in strange ways</title>
    <published>2012-11-27T08:00:00Z</published>
    <updated>2012-11-27T08:00:00Z</updated>
    <link rel="alternate" href="http://ruben.verborgh.org/blog/2012/11/27/everything-is-connected-in-strange-ways/"/>
    <content type="html">&lt;p&gt;What’s the connection between the Eiffel Tower and the Big Ben?
How are you related to Mickey Mouse?
Or Elvis Presley?
Today, there’s a fun way to find out:
Multimedia Lab’s new Web app &lt;a href="http://www.everythingisconnected.be"&gt;Everything is Connected&lt;/a&gt;
allows you to see how any two topics in this world connect.
Choose a start topic (this might be you!)
and watch an on-the-fly video that takes you to any destination topic you select.
You’ll be amazed to discover how small the world we live in really is.
In this post, I’ll take you behind the scenes of this fascinating app.&lt;/p&gt;&lt;a href='http://ruben.verborgh.org/blog/2012/11/27/everything-is-connected-in-strange-ways/'&gt;Read more&amp;hellip;&lt;/a&gt;</content>
    <summary type="html">&lt;p&gt;What’s the connection between the Eiffel Tower and the Big Ben?
How are you related to Mickey Mouse?
Or Elvis Presley?
Today, there’s a fun way to find out:
Multimedia Lab’s new Web app &lt;a href="http://www.everythingisconnected.be"&gt;Everything is Connected&lt;/a&gt;
allows you to see how any two topics in this world connect.
Choose a start topic (this might be you!)
and watch an on-the-fly video that takes you to any destination topic you select.
You’ll be amazed to discover how small the world we live in really is.
In this post, I’ll take you behind the scenes of this fascinating app.&lt;/p&gt;</summary>
  </entry>
  <entry>
    <id>tag:ruben.verborgh.org,2012-10-25:/blog/2012/10/25/social-media-as-spotlight-on-your-research/</id>
    <title type="html">Social media as spotlight on your research</title>
    <published>2012-10-25T11:00:00Z</published>
    <updated>2012-10-25T11:00:00Z</updated>
    <link rel="alternate" href="http://ruben.verborgh.org/blog/2012/10/25/social-media-as-spotlight-on-your-research/"/>
    <content type="html">&lt;p&gt;As researchers, communication is arguably the most important aspect of our job,
but unfortunately not always the most visible.
Sometimes, our work is so specific
that it seems impossible to share it as a story with the outside world.
Surprisingly, day-to-day social media such as Facebook and Twitter
can be highly effective to give your work the attention it deserves.
To achieve this, researchers must become conscious social media users
who engage in every social network with a purpose—and a plan.&lt;/p&gt;&lt;a href='http://ruben.verborgh.org/blog/2012/10/25/social-media-as-spotlight-on-your-research/'&gt;Read more&amp;hellip;&lt;/a&gt;</content>
    <summary type="html">&lt;p&gt;As researchers, communication is arguably the most important aspect of our job,
but unfortunately not always the most visible.
Sometimes, our work is so specific
that it seems impossible to share it as a story with the outside world.
Surprisingly, day-to-day social media such as Facebook and Twitter
can be highly effective to give your work the attention it deserves.
To achieve this, researchers must become conscious social media users
who engage in every social network with a purpose—and a plan.&lt;/p&gt;</summary>
  </entry>
  <entry>
    <id>tag:ruben.verborgh.org,2012-09-27:/blog/2012/09/27/the-object-resource-impedance-mismatch/</id>
    <title type="html">The object-resource impedance mismatch</title>
    <published>2012-09-27T11:00:00Z</published>
    <updated>2012-09-27T11:00:00Z</updated>
    <link rel="alternate" href="http://ruben.verborgh.org/blog/2012/09/27/the-object-resource-impedance-mismatch/"/>
    <content type="html">&lt;p&gt;Most programmers are not familiar with resource-oriented architectures,
and this unfamiliarity makes them resort to things they know.
This is why we often see URLs that have action names inside of them,
while they actually shouldn’t.
Indeed, URLs are supposed to identify resources,
and HTTP defines the verbs we can use
to view and manipulate the state of those resources.
Evidently, there is quite a mismatch
between imperative (object-oriented) languages
and HTTP’s resources-and-representations model.
What would happen if we think the other way round
and model HTTP methods in an imperative programming language?&lt;/p&gt;&lt;a href='http://ruben.verborgh.org/blog/2012/09/27/the-object-resource-impedance-mismatch/'&gt;Read more&amp;hellip;&lt;/a&gt;</content>
    <summary type="html">&lt;p&gt;Most programmers are not familiar with resource-oriented architectures,
and this unfamiliarity makes them resort to things they know.
This is why we often see URLs that have action names inside of them,
while they actually shouldn’t.
Indeed, URLs are supposed to identify resources,
and HTTP defines the verbs we can use
to view and manipulate the state of those resources.
Evidently, there is quite a mismatch
between imperative (object-oriented) languages
and HTTP’s resources-and-representations model.
What would happen if we think the other way round
and model HTTP methods in an imperative programming language?&lt;/p&gt;</summary>
  </entry>
  <entry>
    <id>tag:ruben.verborgh.org,2012-08-30:/blog/2012/08/30/perl-and-the-preikestolen/</id>
    <title type="html">Perl and the Preikestolen</title>
    <published>2012-08-29T22:40:00Z</published>
    <updated>2012-08-29T22:40:00Z</updated>
    <link rel="alternate" href="http://ruben.verborgh.org/blog/2012/08/30/perl-and-the-preikestolen/"/>
    <content type="html">&lt;p&gt;If I wanted to join the &lt;a href="http://oslo.pm.org/"&gt;Oslo Perl Mongers&lt;/a&gt; for an RDF hackaton,
Kjetil Kjernsmo asked me two months ago.
We had met at the &lt;a href="http://lapis2012.linkedservices.org/"&gt;LAPIS workshop&lt;/a&gt; in Greece,
where he showed me the open source work he had been doing.
“Sure, I’d love to join”, I replied, “but there’s only a minor problem—I don’t know Perl!”
Turns out there was nothing to worry about:
learning Perl is easy, and the community embraces newcomers.
Plus, the hackaton was located near a beautiful mountain landscape in Norway.
Needless to say, I had a splendid week.&lt;/p&gt;&lt;a href='http://ruben.verborgh.org/blog/2012/08/30/perl-and-the-preikestolen/'&gt;Read more&amp;hellip;&lt;/a&gt;</content>
    <summary type="html">&lt;p&gt;If I wanted to join the &lt;a href="http://oslo.pm.org/"&gt;Oslo Perl Mongers&lt;/a&gt; for an RDF hackaton,
Kjetil Kjernsmo asked me two months ago.
We had met at the &lt;a href="http://lapis2012.linkedservices.org/"&gt;LAPIS workshop&lt;/a&gt; in Greece,
where he showed me the open source work he had been doing.
“Sure, I’d love to join”, I replied, “but there’s only a minor problem—I don’t know Perl!”
Turns out there was nothing to worry about:
learning Perl is easy, and the community embraces newcomers.
Plus, the hackaton was located near a beautiful mountain landscape in Norway.
Needless to say, I had a splendid week.&lt;/p&gt;</summary>
  </entry>
</feed>

