Rss Feed
Facebook button
Reddit button
Delicious button

Archive for the 'internet' Category

Page 3 of 4

Broadband in Brussels

(post seems to have disappeared when I migrated to Wordpress
I have what is proving to be an expensive habit: I’m subscribed to over 30 podcasts (including e.g. Diggnation at 300MB/week), I regularly download software to try out, I use BitTorrent on a regular basis, I buy stuff on iTunes. All that adds up to more than my allowance my ISP subscription gives me (20GB per month). Most of the months I pay an extra €8 per 10GB.

I’m a Coditel customer (cable provider in the part of Brussels where I live). I started out on ADSL until I got loads of technical problems and Belgacom/Skynet could not solve them. My current bandwidth is not bad (although not as fast as Telenet):

http://www.adslbox.be speed test results:
- Download speed : 4415 kbit/s or 552 kbyte/s
(in theory it should be 10.000 kbit/s)
- Upload speed : 233 kbit/s or 29 kbyte/s
Wed Feb 15 2006 at 20:59:42 UTC+0100

But now I want to know: do I have the best formula? So I collected some data. On vergelijking.be all the provider formulas are listed, but the list is not up-to-date. I collected all the latest numbers from the ISPs’ homepages. I got some real throughput statistics from adslbox.be and ispmonitor.be.

BROADBAND PRICES

Broadband in Belgium: sorted by price
The cheapest broadband one can get is Coditel LightClick: 22,90 € for 1 Mbps. The best price/speed you can get is Telenet ExpressnetTurbo (60€ for a theorethical 20Mbps and an actual throughput of about 11 Mbps). The one to avoid is Belgacom ADSL Light: 30 € for a meager 0,5 Mbps.

COST OF 50GB/MON

Now let’s see what happens if I would go to 50GB data transfer per month. Only 6 providers allow for this, either because their GB/mon allowance is big enough or because the price per extra GB is acceptable:
Broadband in Belgium: cost of 50GB/mon
Where I live, I cannot get BruTele or Chello, so the only options are Coditel (cable) and Dommel, RealDSL or Mobistar (ADSL).

GB/MON ALLOWANCE

Broandband in Belgium: GB/mon allowance
There are a 6 broadband subscriptions that allow unlimited download allowances: Dommel Netconnect Pro, BruTele @Home and @Turbo, RealDSL Basic and GeekDSL and Chello Extreme. The only options for me in Brussels are the 2 ADSL ones, of which the Dommel one is excessively expensive (€150/month).

CONCLUSION

For Brussels, Coditel is still a very good option (now if they could update that empty FAQ page that doesn’t seem to have been updated since the nineties). There is no point in switching from SpeedClick to MegaClick for the GB/mon only, but if the speed is really the double (in theory 20Mbps instead of 10Mbps) it might be a nice upgrade. I don’t need something like 200GB/month yet, but if I would, then RealDSL would be the best option.

If you live in Flanders and your main concern is speed, go Telenet ExpressNet Turbo. If you need loads of GB/month, go Chello Extreme (where possible) or RealDSL.

UPDATE
RealDSL does NOT accept any new subscriptions since October 2005, since there seem to be a capacity problem with its bandwidth provider Telenet. Luc and Cindy blogged about this earlier, so I have no excuse for my sloppy research. The only DSL provider with a unlimited bandwidth offer seems to be Dommel, but at an extreme high price. Their €33/50GB is however a good offer. Thanks for the update, Smetty!

RSS is a hammer


We’re all excited by the promises of Web 2.0, we’re all awaiting the next really neat remix application/service of data, meta-data, analysis and presentation. But let’s not fall for the “I have a hammer, so all problems look like a nail” trap. According to me, Dave Winer goes one step to far when he says:

(on Tim O’Reilly’s Web 2.0 Meme map)
Web 2.0 is really simple, it’s RSS 2.0.
on scripting.com

Similarly, in a comment on the excellent “The Web 2.0 is here” article, Scott Johnson writes:

Ajax is where it’s at. Ajax is the driving force behing 2.0.
(on web2.wsj2.com)

It’s not because you have particularly strong feelings about one building block of the Web 2.0 temple that you can simplify the whole thing. RSS is important. Ajax is important. And so are REST/XMLRPC/SOAP, KML, social software, folksonomies, contextual advertising, “Long tail” logic, Creative Commons, … It’s the sum of all these forces that hint at a future “Web 2.0″ that’s bigger and brighter.

In the mean time, since I don’t think Tim O’Reilly’s chart is very clear, and even Dion Hinchcliffe’s effort is not 100% clear, I’m working on a visualisation of Web 2.0 on my own.

Technorati:

De Standaard: down by popular demand

De Standaard is one of the better (Flemish) newspapers in Belgium, and the pioneer of building an excellent web site around a “traditional” medium (even making money from it). That is why it is so surprising that after all these years, they still haven’t figured out how to handle traffic peaks. Nor how to customize web server error messages.

They must have posted something really interesting again this morning (“Nieuw theoretisch rijexamen verrast“? “Belgen bouwen in China“? I can see these thanks to krantenkoppen.be) because their site is unavailable:

“The request cannot be processed at this time. The amount of traffic exceeds the Web site’s configured capacity.”

Three remarks on that:

  • “the Web site’s configured capacity”? Either add more servers (’scale out’) or make sure your server can handle more traffic (’scale up’). What kind of lousy error message is that?
  • Did you read this part on the 500.13 error page: “Open IIS Help, (…), and search for topics titled Monitoring and Tuning Web Application Performance, Performance Monitoring and Scalability Tools, and About Custom Error Messages.” Yes, I know it’s embarrassing but do read that part on customising IIS error messages. Create a custom page for all 500 errors that is worthy of a high-profile professional web site.
  • The site of a newspaper is rather static. Let’s say there is a new element on the homepage every 15 min at maximum, and most ‘item’ pages never change once they are created (apart from ads and promotions in the sidebar). This is content ideally suited for caching with a reverse proxy. Even if your server can’t handle 10.000 visitors per minute, a battery of ‘dumb’ caches before your servers can do that easily. If you have no idea what I am talking about, call me.

The Standaard Blog on the other hand is hosted on Typepad, and they sure use caches (look for “X-Cache = HIT/MISS from www.sixapart.com“).

Technorati:

Flickr changes image URLs with some glitches


Old URL:
photos23.flickr.com

New URL:
static.flickr.com/23

Just this week I started getting problems with Flickr images that were embedded in my own sites. I got a “red cross” instead of a picture. When I checked the image URLs that I was using and the ones that Flickr currently uses, I saw they had changed, and the transition was not flawless (at that point).

Where each image used to reside on one of the photosXX.flickr.com servers, they now have the URL http://static.flickr.com/XX/… (with the same server id XX). Apparently in some cases, the image URLs were not automatically redirected to the new address, which caused the crosses. Some Flickr users were complaining about the same problem on the Flickr forums.

While I am writing this, more and more URLs start working again, i.e. there is an automatic redirection to the correct URL. But basically this 1 month old explanation of the Flickr image URLs has to be updated:

http://photos{server-id}.flickr.com/{id}_{secret}_[mstb].jpg becomes
http://static.flickr.com/{server-id}/{id}_{secret}_[mstb].jpg

FLICKR STORAGE HISTORY
In the early days of Flickr, the images were stored on separate servers: photos1 was 69.90.111.71, photos2 was 69.90.111.72, …, situated in Vancouver, BC (Canada): probably adding 1 storage server at a time while the gigabytes were pouring in. After the move to Yahoo (Sunnyvale, CA) in July of this year, all photoXX DNS names were changed to point to the same 68.142.213.135 IP address – or storage1.flickr.vip.mud.yahoo.com.

Today, instead of maintaining the 33 DNS entries, they opted for working with 1 domain name static.flickr.com and let the load balancing/cache distribution (analyze.forret.com shows there is a “X-Cache = HIT” HTTP header that is a caching directive) decide from which server the image should be grabbed. You can actually get an idea by this little hack:

  • photos1: “storage3.flickr.mud” shown on the ‘home’ page
  • photos2: “storage5.flickr.mud”
  • photos3: “storage3.flickr.mud”
  • photos4: “storage7.flickr.mud”
  • photos5: “storage4.flickr.mud”

A total of 8 storage servers, I’m guessing.

Technorati:

Online software development: the WikiRAD


I love the idea of social software. Specifically, while it has been several years since I first encountered the wiki concept (Ward Cunningham’s c2.com), and I have been a Wikipedia contributor for a while, it is only since I checked out the emerging wiki hosting sites (see Google and social software: wikis) that I realize that wikis are becoming mainstream. Sites like Wikispaces, JotSpot and PbWiki are providing anyone with the tools to safely and effortlessly develop a body of knowledge.

On a seemingly unrelated point, I am currently developing some stuff in PHP (codeword ‘photcasting‘ but more on that later) and I realise my development environment is so amateuristic: I use a text-editor with FTP support (the last couple of years it has always been Editplus), and everytime I save some code, I overwrite the older version on the ‘live’ server. I also develop on different PCs in a typical week (easily 3) and so I don’t have 1 development PC with PHP running where I could stage everything before I deploy it to my ‘production’ site. With a bad broadband connection, when a ’save’ operation goes wrong, you end up with a ‘crucialstuff.php’ script file that is empty (0 bytes) and brings your whole site down. Unfortunately, I know this from (repeated) experience.

Earlier today, I was thinking about these 2 issues one right after the other and bam: they collided. I have a new development paradigm: the WikiRAD.

‘WikiRAD’ development

WRITE CODE

  • you write your code with your browser in a Wiki-style editor, with syntax colouring added (haven’t seen that in a Wiki editor yet). The code resides on a WikiRAD server (with RAID5 disks, daily backups, …). You need no other software on your PC to be able to develop software.
  • the Wiki system takes care of version management and comparing of sources (Wikis already do this). Check in, check out, rollback, branching, merging, several developers on 1 codebase, … all possible!
  • you can search your whole codebase for certain keywords, jump to class definitions – just like normal IDE
  • when you look at your code, the names of classes, templates, libaries, .. become clickable, just like in a … wiki!
  • there are tools to make writing code easier (class wizard, sample code, forum for questions)
  • there’s a Google-like crawler that indexes code so it becomes available for other developers – this is real “open source”!

COMPILE AND RUN

  • the WikiRAD server lets you develop in a ’stage’ mode (separate from your real system) and lets you deploy it to ‘production’ once you’re sure. The production server can be your own server, with deployment via FTP or SSH.
  • for the most popular languages, you also have a lint system that can detect obvious errors in your code before compiling.
  • if the language you write in requires compiling (like C++, C#, VB.NET, …) the server takes care of that – probably faster than on your own Pentium III.
  • you no longer need to set up a ’similar’ server to test your software, it will run on the same kind of system, behind the same combination of routers and firewalls, with the same libraries installed.
  • you can add breakpoints, see the console output, view values of variables, …

So take Sourceforge, drop in a Wiki system for writing the code, a system for online debugging and profiling and tada: life has just become so much easier for a programmer.

All remarks are welcome!

Technorati:

Internet activity in the EU

The sport of data consolidation: I got my hands on the number of domainnames for all EU countries (June 2005) and combined those with the # pages in Google for each TLD (Top Level Domain, like .be or .fr) and the population statistics for the EU countries. Some Excel activity later, this is what I got:

Registration activity

This is the number of registered domains per 1000 inhabitants. It might give an indication of how ‘normal’ it is to have your own website.
This is the Top 5:

ext country domains persons dom/1000
.dk Denmark 166.414 5.410.000 30,76
.nl Netherlands 405.721 16.300.000 24,89
.de Germany 1.194.366 82.720.000 14,44
.ee Estonia 18.088 1.340.000 13,50
.at Austria 93.689 8.160.000 11,48

Remarks: Estonia seems a surprising entry here, but actually Poland and the Czech Republic aren’t doing that bad either. Better than Belgium, actually.

Authoring activity

This is the average # web pages per person for each country. I estimated the #pages per TLD as a Google query on “xx site:.xx”. (so for belgium, a search on “be site:.be”). If the number of pages is a rough estimator of how much information is available, then this is an indicator of how productive the information producers of the country are.
This is the Top 5:

ext country Google pages persons pages/pers
.lu Luxembourg 1.670.000 455.000 3,67
.uk United Kingdom 174.000.000 59.900.000 2,90
.fi Finland 14.400.000 5.250.000 2,74
.se Sweden 17.800.000 9.040.000 1,97
.ee Estonia 2.280.000 1.340.000 1,70

Remarks: Luxembourg, the country where everyone wants to work and pay taxes but no one wants to live. And again Estonia, up there with the Scandinavian connection and the English!

Site size

This is the average # web pages per domain for each country. This might be an indicator of web site size – the work a webmaster puts in his creation – or just verbosity (hey, the French are first, and then the Spanish, and they DO talk a lot).
This is the Top 5:

ext country Google pages domains pages/dom
.fr France 43.900.000 72.338 607
.es Spain 12.400.000 25.988 477
.fi Finland 14.400.000 30.182 477
.lu Luxembourg 1.670.000 4.458 375
.uk United Kingdom 174.000.000 495.041 351

Remarks: the best place to be a webmaster is France. The web sites are large, you have no competition from the US or South-America (no one speaks English or Spanish) and there’s lots of domain names still available.

All data:

TLD Description DOMAINS SHARE GOOGLE POPULATION PAGE/
PERSON
DOM/
1000
PAG/
DOM
at Austria� 93.689 2,8% 10.300.000 8.160.000 1,26 11,48 110
be Belgium� 72.949 2,1% 10.600.000 10.440.000 1,02 6,99 145
cz Czech Republic� 79.612 2,3% 8.350.000 10.230.000 0,82 7,78 105
dk Denmark� 166.414 4,9% 8.250.000 5.410.000 1,52 30,76 50
ee Estonia� 18.088 0,5% 2.280.000 1.340.000 1,70 13,50 126
fi Finland� 30.182 0,9% 14.400.000 5.250.000 2,74 5,75 477
fr France� 72.338 2,1% 43.900.000 60.290.000 0,73 1,20 607
de Germany� 1.194.366 35,2% 62.800.000 82.720.000 0,76 14,44 53
gr Greece� 21.851 0,6% 5.040.000 11.210.000 0,45 1,95 231
hu Hungary� 63.846 1,9% 5.600.000 10.080.000 0,56 6,33 88
ie Ireland� 13.441 0,4% 640.000 4.030.000 0,16 3,34 48
it Italy� 211.700 6,2% 25.500.000 58.600.000 0,44 3,61 120
lv Latvia� 8.061 0,2% 2.020.000 2.300.000 0,88 3,50 251
lt Lithuania� 8.924 0,3% 1.890.000 3.430.000 0,55 2,60 212
lu Luxembourg� 4.458 0,1% 1.670.000 455.000 3,67 9,80 375
nl Netherlands� 405.721 12,0% 20.700.000 16.300.000 1,27 24,89 51
pl Poland� 294.651 8,7% 7.780.000 36.130.000 0,22 8,16 26
pt Portugal� 16.056 0,5% 3.690.000 10.460.000 0,35 1,53 230
sk Slovak Republic� 23.719 0,7% 2.600.000 5.380.000 0,48 4,41 110
si Slovenia� 11.021 0,3% 2.060.000 1.960.000 1,05 5,62 187
es Spain� 25.988 0,8% 12.400.000 43.430.000 0,29 0,60 477
se Sweden� 61.499 1,8% 17.800.000 9.040.000 1,97 6,80 289
uk United Kingdom� 495.041 14,6% 174.000.000 59.900.000 2,90 8,26 351

Technorati:

Tricks to fight right-click image copying


An image like the one on the right (using the standard <img> tag) can easily be copied by any visitor: right-click the image and select “Save Picture As” or “Copy Image”. In cases where the author wants to protect his images from copying, there are a couple of ways to make the copying harder. Not make it impossible, just less trivial.
The fact that you can get the image by checking the HTML (“View Source”) is something that is difficult to avoid, and in any case, the vistor could always take a screen shot and trim the result to have only the image. So I’ll just focus on disabling the “Save/Copy Image” functionality.

Remark: there are ways to make all Right-Click functionality inaccessible. I think this is a bad practice (for the reasons, check jeffdav), so I will not cover these methods.

Trick #1: Table Background

You use the image as the table background: <TABLE STYLE="background-image: url(...)">. If you do just that, the “Save Picture As” option goes away, but a new “Save Background” is created. So you cover up the image by placing a transparent gif before it, in the <TD> cell.

The end effect is that is looks like you can copy or save the picture, but you will be saving the GIF file.

Remark: you have to explicitly specify the dimensions of the table, it will not autoscale to the size of the image.


Trick #2: Div Background

You can do basically the same thing with a <div>: you use the picture as the background image, and you put another <DIV> above it with the transparent GIF.

You would again need to specify the exact dimensions of the whole thing, but wait, there’s another trick: put the image in an <IMG> tag inside the second DIV and give it a visibility: hidden. This way it takes up the size of the picture without actually showing up, or appearing right-clickable.


Trick #3: Flash image

The third is a no-brainer: using a Flash object. Almost 100% of browsers have Flash built-in, so compatibility problems are limited. For the exact OBJECT and EMBED, check the HTML source of this text or the Macromedia site.
Here also, you need to give the right dimensions to the Flash object, otherwise it will take a default (square) size.

Remark: using the menu="false" option ensures that the only options showing up on a right-click are: “Settings…” (disabled) and “About Macromedia Flash Player …”.


Conclusion

It is possible to use some simple tricks to make right-click copy or save functionality impossible. I wouldn’t go as far as to call this ‘copyright protection’, but it helps. At least no one can claim they just copied it because they thought it would be OK.
I used the last option (Flash) on my Tango Steps site, to protect the images I use from my teachers, Marisa and Oliver.

Technorati:

Idea: using a URI for sending email

In order to send an email over SMTP, you need 2 sets of information:

  • WHAT: the content of the email, i.e. from-address, subject, to/cc addresses and the actual message (in TXT and/or in HTML)
  • HOW: you also need the name/address of an SMTP server (and its SMTP port), and optionally a username/password to authenticate to the server (ESMTP) – these would typically be fixed for the email sending application.

On the other hand, you have the HTTP GET format where you can put everything you need to execute the request in 1 string:
http://james:password@www.example.com /hr /request /?type=holiday&start=2004-11-22&end=2004-11-24
No need to save the ’server/port’ data separate from the ‘request’ location or from the actual content.

Which inspired me to a similar format for sending email:

smtp://[username[:password]]@server[:port] /from:address [/subject:text] [/to:address] [/cc:address] [/bcc:address] [?[subject=text] [&message=text] [&to=text] [&cc=text] [&bcc=text] [&attachment=file]]

Some examples:

  • smtp://relay.example.com /from:me@example.com /subject:Test+was+OK%21 /to:james@destination.com /?message=Here+I+am%21
  • smtp://localhost:2525 /from:monitor@example.com /subject:webserver+3+is+down ?to=support@example.com&message=webserver+3+is+down+(time-out+after+10+seconds)
  • smtp://james:password@localhost /from:james@example.com /subject:this+is+authenticated /to:test@example.com

Keep in mind: a URL is typically limited to 255 characters (depending on implementation), and a querystring (the part after the “?”) is limited to 4KB.

  • Out of principle, the from address should always be specified as the 1st level pseudo-folder /from:address/. Because it should never be longer than 100 characters, and there should always be one, and only one.
  • If your subject is more than 200 characters, you need the ?subject=text notation. Otherwise the /subject:text/ is preferable because you would be less inclined to specify more than 1 subject.
  • If your message content is more than 200 characters, you need the ?message=text. If you need more than 4KB, you could use the equivalent of a HTTP POST, i.e. not specify it in the URL string, but stream the whole this after giving the request.
  • You could allow multiple /cc:address/ entries, or just use a /cc:addr1;addr2;addr3/
  • to allow ‘pretty’ email addresses, you could allow /from:peter@example.com:Peter+Forret/. (Any better suggestions for that?)
  • You could allow a smtp://default/... if you still want your email sending application to choose its SMTP server.
  • Attachments can be specified with an address on a local disk, or on the Internet (with another URI)

The advantages of this system?

  1. you can specify a complete email in 1 single text string (with size limitations)
  2. one could easily specify a lists of emails to be sent (e.g. a text file with 1 email per line), and use different SMTP servers for some of them (e.g. send the Hotmail/MSN ones directly to mx?.hotmail.com for speedy delivery)
  3. it can be interpreted by the SMTP client (email sending application), that translates it into a regular SMTP conversation (HELO ... MAIL FROM ... RCPT TO ... DATA)
  4. it could easily be accepted by a web server, that accepts the URI with the smtp:// replaced by http://. One could send an email by just clicking on a link in a browser. The server would of course not accept these requests from anyone, otherwise it would be an easy spam machine. But one could send emails with cURL or WGET. How about that?
  5. if a company stores all sent messages on a special server, you could have a search-within-your-emails-site with +- the same URI format:
    http://peter:password@searchmail.example.com /from:peter@example.com /?subject=*contract* &notbefore=2004-11-15 &notafter=2004-11-20 &to=*robert*
  6. One could also adopt smtps:// for SMTP over TLS.

If anyone can do something useful with this, be my guest!