Skip to Content Skip to Search Go to Top Navigation Go to Side Menu


"Internet" Category


Net neutrality: an everyday scenario


Thursday, July 20, 2006

After my earlier post about Net neutrality, I’d like to follow up with an example that I’ve seen in real life around me:

It’s a flat-share where 4 IT savvy people live.
Everyone has a computer and there’s a local wireless network setup to allow them to share the internet broadband connection (ADSL).

They were all foreigners, staying in the country for a year or two.
They used Internet primarily for web, email and Instant Messaging.
The 1 Mbits internet connection was fast enough for everyone to share.

Then, they progressively made use of P2P technologies, and the usability of the Internet degraded dramatically for normal web, email and IM use.
It has been easy to prove that the degradation was a direct consequence of the use of P2P.

When one of them wanted to do voice conference with relatives abroad, he had to announce it to all his flat-mate and warn them not to use P2P at the scheduled time of the Internet voice calls.

After moans, discussions and unhappy Internet life they did capsized the bandwidth used by their P2P software.

Soon after they decided to centralize P2P use to one central server and to limit its availability to daytime when nobody is at home.

Occasionally, they received emails from their ISP, telling them to reduce their consumption, mentioning port blocking if no progress made.

So, what’s the moral of the story?

  • All Data are not equal
  • According to some ISPs, 20% of customer uses 80% of the network resources
  • action to fix the issue has been implemented both on the local network and at ISP level

With traditional medias joining webcasters to distribute video and audio on Internet, using P2P technologies like Kontiki, and the growing population of audio and video podcasters, the situation is not looking good.

Effectively, from a standard user (who does web, email, IM), the Internet will look more and more like it’s dying.

What’s the solution then?

  • I think the originators of the increase in resource consumption should pay for the traffic they are monopolizing:
    • ISPs should ask for a higher monthly rate from their P2P users
    • New Media companies should be required to paid a premium for media distribution
  • Priority of routing could be introduced and could be like that
    • higher priority to communication oriented data transfer
    • lowest priority (and usage limit) to generic P2P usage (BitTorrent, eDonkey, …)
    • fee based increase of priority for webcasters

That will allow ISPs to buy more pipes (I’ve got that strange feeling of being over-naive here ;-) )

The trouble with that model is that community originated media maybe be unfairly treated.
New media companies can afford QoS Internet service.
Podcasters and creative individuals can’t.

In other hand, guaranteeing Quality of Service really matters if money is at stake.
It’s then more relevant to new media companies.

So, as long as podcasts and distribution of individual creations are not de-prioritized as if they were generic P2P, the model could work.

Having to pay higher for your Internet connection if you are a P2P users may not be the best thing you’ve wished for.
Capsizing the bandwidth used and avoiding rush hour might be an alternative.
But as for the model described above, everybody has to play the same rules for the whole thing to work.

Technorati Tags:
, , , , , , , ,

How ‘Saving The Net’ may kill it


Monday, July 17, 2006

“Net neutrality” has been a hot topic in the blogosphere for many weeks now.
I’ve always managed to avoid all of the related articles.
But I’ve come across this interesting interview from The Register about Net Neutrality.

How ‘Saving The Net’ may kill it: ”

The engineer’s case against Net Neutrality

Interview If you’ve followed the occasionally surreal, and often hysterical debate around ‘Net Neutrality’ on US blogs and discussion forums, you may have encountered Richard Bennett. The veteran engineer played a role in the design of the internet we use today, and helped shaped Wi-Fi. He’s also been blogging for a decade. And he doesn’t suffer fools gladly.…

(Via The Register.)

eBay bans use of Google Checkout for auction payments


Thursday, July 6, 2006

Here we are. The war has started:

eBay bans use of Google Checkout for auction payments: “Xeni Jardin:
BoingBoing reader Catspaw says,

A week after it was released, eBay has added Google Checkout to its list of online payment methods not permitted on eBay. A Google spokesperson says: ‘Google Checkout is not a beta product. Google has a long history in billing and payments for AdWords for premium services, such as Google Video’.

Link.

Previously on BoingBoing:
Google launches ‘predatory’ Paypal rival Checkout, much is prohibited

(Via Boing Boing.)

Manipulating cookies without server side scripting and without client-side scripting


Tuesday, July 4, 2006

I wanted to title this article “Baking and eating cookie with no hands” but it could have been a little confusing ;-)

Sometimes there are situations where you’ve got a set of static pages on the web.
You don’t want (or can’t) use any form of server side scripting and where using javascript to do the job is out of question (because the page is hit by millions of users and you have to support people who have deactivated javascript)

I’ve found Apache mod_rewrite of great help for that.

Let’s say that you are publishing public domain books on the web.

you’ve got a url like that

/book/VolumeII/PartA/Chapter4/index.html

You want to supply the user a feature that will allow them to return quickly to the last text they have visited (a bookmark, literally, that is)

So you create a url like

/book/last_position/

and you it to redirect the user to

/book/VolumeII/PartA/Chapter4/index.html

How do you do it?
below is a mod_rewrite code that you can stick in your Apache config or a .htaccess:

RewriteCond %{HTTP_COOKIE}  ^.*book=(.*?)@part=(.*?)@chapter=(.*?)$
RewriteRule ^.*book/last_position.*$ /book/%1/%2/%3/ [L]

and to set the cookie when a user visits a url like

/book/VolumeII/PartA/Chapter4/

you use the following mod_rewrite code:

RewriteRule ^.*book/(.*?)/(.*?)/(.*?)/.*$ - [L,CO=book:book=$1@part=$2@chapter=$3:my.domain]

the “@” in both snippet of code has no special meaning, I use them as a separator. I suppose you could anything that’s not a Regular Expression operator. You cannot use “;” as this is a Netscape cookie field separator.

It’s also worth noting that the cookie flag is available only in versions of Apache greater than 2.0.40.

All good? The problem here is that every-time a user hits a url to read a book, a mod_rewrite code is executed and a cookie set which could be a performance drag.

it’s a better to modify the current url to save the current position:

/book/VolumeII/PartA/Chapter4/save_position

Then the following mod_rewrite code (instead on the one above that set cookie every-time) will do the trick:

RewriteRule ^.*book/(.*?)/(.*?)/(.*?)/save_position.*$ - [L,CO=book:book=$1@part=$2@chapter=$3:my.domain]

That way a cookie is set and mod_rewrite is triggered only when the user explicitly call it (through a link on the page).

But if it’s a link on the page, you want the user to stay on the page, so you will use the following code instead of the last one:

RewriteRule ^.*book/(.*?)/(.*?)/(.*?)/save_position.*$ /book/$1/$2/$3/ [L,CO=book:book=$1@part=$2@chapter=$3:my.domain]

In all of the code above, the url is being rewritten, which mean the user doesn’t see anything changed in the url. If you want the redirection being explicitly visible to the users, you can add the R flag. It becomes:

RewriteCond %{HTTP_COOKIE}  ^.*book=(.*?)@part=(.*?)@chapter=(.*?)$
RewriteRule ^.*book/last_position.*$ /book/%1/%2/%3/ [R,L]
RewriteRule ^.*book/(.*?)/(.*?)/(.*?)/save_position.*$ /book/$1/$2/$3/ [R,L,CO=book:book=$1@part=$2@chapter=$3:my.domain]

There’s one thing we need to do now: deal with users who have deactivated the cookies. When they click on the save_position link they will be brought back to the calling page whether or not they have cookie activated. The issue is the /last_position url. If by any chance non-cookie users find that url they need to be redirected somewhere. Somewhere could be an entry point to navigate all the book like /book/. We do the same if the users accepts cookies but haven’t got one yet.

this could be done with the following code:

RewriteCond %{HTTP_COOKIE}  ^.*book=(.*?)@part=(.*?)@chapter=(.*?)$
RewriteRule ^.*book/last_position.*$ /book/%1/%2/%3/ [R,L]
RewriteRule ^.*book/last_position.*$ /book/ [R,L]

A final refinement is the time of validity for the cookie. If you don’t supply this parameter when setting up the cookie, the cookie lifetime won’t last beyond the current browsing session. The COokie flag accept duration in minutes. So to set the lifetime of a cookie to 1 year, you do that:

RewriteRule ^.*book/(.*?)/(.*?)/(.*?)/save_position.*$ /book/$1/$2/$3/ [R,L,CO=book:book=$1@part=$2@chapter=$3:my.domain:525600]

Finally when assembled together, the code looks like that:

RewriteCond %{HTTP_COOKIE}  ^.*book=(.*?)@part=(.*?)@chapter=(.*?)$
RewriteRule ^.*book/last_position.*$ /book/%1/%2/%3/ [R,L]
RewriteRule ^.*book/last_position.*$ /book/ [R,L]
RewriteRule ^.*book/(.*?)/(.*?)/(.*?)/save_position.*$ /book/$1/$2/$3/ [R,L,CO=book:book=$1@part=$2@chapter=$3:my.domain:525600]

Related links:

Enjoy your cookies.

Technorati Tags:
, , ,

ASCII World Cup (Oh, That’s Geeky!)


Friday, June 16, 2006

ASCII World Cup: “

Tune your telnet to telnet ascii-wm.net 2006

Or read about it here (also has mirrors).

(Via mir.aculo.us.)

XML and HTML intermixed in the output of an XSLT transformation


Tuesday, June 6, 2006

I’m working on a project involving a Web API ( a RESTful one).

The response is an XML document that embed urls in the attributes of some elements. For documentation purpose I would like the url to be clickable when a human is browsing through the API so he can follow the urls and navigate the API.

My first thought was to create a client-side XSLT stylesheet to “linkify” the urls.

So far I’ve got a stylesheet that displays clickable links found in the xml, but out of their context. the XML is not present in the document. I’m no expert in XSLT, but to me it seems difficult to transform the xml elements (and children) from the source xml to be part of the result html.

I wonder if it’s the right approach.

Update:

I’ve solved my problem. I’ve actually had the wrong approach to XSLT(I tried to think “Procedural” which is not always the best reflex for XSLT :-) ). By using various xsl:template for the elements and the non-href attribute and the href attribute, things got a lot easier. I still have to list all node my API could use, but it’s not a huge vocabulary.

Now I have to make the indentation better, but that’s not too complicated

Time Travel


Thursday, May 25, 2006

No need for Doctor Who to see BBC home page evolution between 1996 and 2006.
Just hop on this flickr photoset:

http://flickr.com/photos/eyedropper/sets/72057594119272756/

Technorati Tags:
, , , ,

DReaM-ing of Fair Play ForSure


Tuesday, April 4, 2006

Why such theatrical names for things as carceral as DRMs ?

Flock


Thursday, February 16, 2006

I’m playing with Flock.

It’s an interesting idea to bring in on browser centric software, services like

social bookmarking (del.icio.us), photo sharing (flickr), blogging (this post).

The Flickr tab doesn’t work on my mac with flock 0.4.2 or something.