Jun
30.
2005

What should one do if one finds out that his/her creation is shared on a P2P network? You can't sue, as you generally have no idea who put it there*, you can't remove it from the network - heck, you can't even estimate the number of people who have it.

Some have tried polluting the network with fake versions of the same thing, some even tried infecting the file(s) with viruses (!) but the latest trick I saw made me smile - if you have to do something to protect your work, here's how you should do it...

I recently found out about Edward Tufte's Visual Display Of Quantitative Information and decided I need it (badly and urgently). It took me few minutes to order it through Amazon (FR) but the availability is at the moment 1-2 weeks (!). Impatiently I went to eDonkey network and searched for any electronic version - I needed to make a quick look as soon as possible. Sure enough, I found a PDF version even though of suspiciously small size.

Few hours later the "book" was sitting on my hard drive. But it was not really a book ;) It was a 5-6 page document consisting of:

  • the cover of the book
  • the link to the Amazon page of the book
  • the PDF form (!) to help you order it from Amazon
  • list of very positive reviews of the book on Amazon

I don't know about you, but for me this is pure genius, assuming it's the author (or someone he hired) who did it. The message was clear - if you want the book, here's how to get it - yet not rude.

Hey Scoble, if you decide to publish your book in the paper form and are afraid that P2P networks might cannibalize sales by providing electronic version for free you might consider doing this same thing ;)

*Actually if it's your software that is being shared, the best thing to do is to display the registered user's name prominently (in the about box, on the caption etc). Then you'd at least know who leaked it...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Jun
29.
2005

As is customary, Scoble has gathered several links to the interesting opinions on Grokster case. In the following post he gives us his view:

I was wondering to myself today: "Is Bram Cohen packing his bags?" I can just imagine the lawyers are working overtime to write up lawsuits against BitTorrent that he developed. Yes, even if he could prove that he wrote it for legitimate file sharing (for instance, for putting your own podcasts up and sharing those with your friends -- Adam Curry on Saturday says he's going to support using BitTorrent to distribute his podcasts since each podcast he puts up is eating up hundreds of dollars of bandwidth fees and his site was unreachable earlier this morning) I imagine that Bram Cohen will get taken to court to prove that. Lawyers are expensive. Defending a court case like that -- even if you win -- will cost millions.

Don't worry Robert - this decision has nothing to do with BitTorrent, and I'll tell you exactly why. First, let's see what did Supreme Court exactly say:

We hold that one who distributes a device with the object of promoting its use to infringe copyright, as shown by clear expression or other affirmative steps taken to foster infringement, is liable for the resulting acts of infringement by third parties.

First of all, BitTorrent is not a network. If you want to share something using BitTorrent you need to do the following:

  1. Decide what to share (one file or a hierarchy of folders), from now on referred to as data.
  2. Gather all metadata about the data you will share. This metadata is kept in a file with the extension "torrent" aka torrent file. Whoever wants to download that data needs to get the metadata first (in other words, torrent file). The torrent file can be downloaded from a Web page, sent by email, FTP or any other means.
  3. The metadata file is then fed to BitTorrent application. There are dozens of implementations (including my own, soon to be published) and they all (to my knowledge) interoperate even though they run on multitude of operating systems.
  4. The crucial part of the metadata is server address/URL (server is also called tracker). The only use of the tracker is to give each BitTorrent application information on which other users (BitTorrent applications that is) are interested in downloading the same data. Get this - tracker is usually a simple, single PHP or ASP.NET page running on a plain standard Web server.
  5. From that point on, BitTorrent apps communicate between themselves and share pieces of the data until the download is completed.

What this all means is that there is no such thing as BitTorrent "network" - trackers for various files (data) are scattered around the world and each tracker, well, tracks a (usually) small number of files. There is no single individual or company that stands behind all (or most) of these servers. Without servers, BitTorrent apps cannot find* other BitTorrent apps and thus can't share anything. Therefore, BitTorrent applications cannot themselves do anything to "promote its use to infringe copyright". The servers that index copyrighted material and provide both torrent files and trackers are the ones the above court ruling applies to. One of the best known ones (recently shut down exactly for the reasons stated above) was suprnova.org.

That said, the Supreme Court decision is vague enough to induce further debate and complicate the decisions of the lower courts and personally, I don't like it at all.

*I am aware that the latest beta of official BitTorrent client does not require servers to find data, but it's a topic for another post.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Jun
25.
2005

Wi-Fi adoption is going real slow - it's been a year I complained about it and nothing has changed. The prices are still the same - 10€ for 2h, except that now I know how to buy access ;)

Last time I tried I thought that I had to buy a pre-paid card similar to the ones for mobile phones and then enter the details somewhere. Turns out the model is simpler, and I learned about it when I used wi-fi on the Milan airport. It is enough to try to go to any web page, ISP redirects you to their welcome page where you can buy access online with the credit card.

The price is still a bit on the expensive side and if it stays like that, I don't see many people buying access...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Jun
24.
2005

Everything old is new again

Posted by: Drazen Dotlic in Categories: general.
Tags:

While reading about concurrency revolution over at Wes' weblog, I was reminded how many times what appears to be a new and completely original design/achievement is in reality only a variation of a known theme.

In this particular case, Wes is discussing (among other things) Microsoft Research approach to concurrency in the experimental language COmega and finds that it relies on asynchronous message-passing rather than synchronous method calls.

At first, this sounded like a great and completely new idea in the field of language design. But then I remembered a chat I had with a friend recently where he mentioned how Erlang (Ericsson's own language design) does not have threads, but very cheap "processes" that rely on asynchronous message passing (from Erlang whitepaper):

Concurrency - Erlang has extremely lightweight processes whose memory requirements can vary dynamically. Processes have no shared memory and communicate by asynchronous message passing. Erlang supports applications with very large numbers of concurrent processes. No requirements for concurrency are placed on the host operating system.

This does not mean that Microsoft research ideas are just a rehash of a known concept. Bringing the above into a mainstream language like C# or VB.NET is a very hard task in and of itself. In fact, many of the features in a modern language like C# existed for quite some time before in languages like Python, Ruby, Smalltalk, and even Haskell. What Microsoft gave us was great integration with the rest of the language and more importantly all new features work well with the existing .NET Framework Class Library. Let's hope that the same happens with new concurrency patterns...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Jun
23.
2005

Every now and then I discover something that was under my nose for God knows how long. I had one of these moments the other day while debugging some CORBA code - I thought "wouldn't it be nice if I could tell debugger to stop immediately after it encounters CORBA::Exception derived exception"?

Then I opened exceptions settings in Visual Studio and there it was, staring at me the whole time - the Add button. Just type in the name of the base exception class and you're done.

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Jun
22.
2005

Developer Tools overload

Posted by: Drazen Dotlic in Categories: rant.
Tags:

The buzz of the week is Scott Hanselman's 2005 Ultimate Developer and Power Users Tool List.

While useful as are many of Scott's posts I find the list waaay overcrowded and overloaded. Some people bothered to count and found 120 (count 'em - 120) tools! I bet if you eliminated the "duplicates" you'd reach a more reasonable and maintainable number. Why maintainable? Well, accidents happen and you might need to reinstall your whole OS, except that now you have a list of 120 developer utilities on top of God knows how many other utilities you need...

Notice for example that in the The Angle Bracket Tax group, features of several products largely overlap or are a pure subset of one bigger tool - XMLSpy absolutely dominates this category; if you can afford it, most (if not all) your XML/XSD/XSLT/SOAP related problems will be solved.

I see the tool overload problem similar to the problem of too many methods in a class (or better yet, interface). As much as you want your class to have more functionality you probably want even more that it remains usable and maintainable. I can't imagine a class having that many methods (120) even though I've seen some cases where this number comes dangerously close. For a thorough treatment of this see Herb Sutter's Exceptional C++ Style, Item 38: Monoliths “Unstrung,” Part 2: Refactoring std::string.

Don't take this as a stance against usage of proper tools - in fact, I already wrote about this issue some time ago - Importance of good tools. I just wanted to point out that when picking right tools for the job, one should make sure that while the toolset is functional and complete it should also be minimal.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Jun
21.
2005

Confusing title, isn't it? Well, that's how it's been the past few days - many have commented on the "Microsoft response to BitTorrent" aka Avalanche but rare few seem to understand.

John Dvorak (of PCMag fame) thinks it's The Scheme to Discredit BitTorrent (God I hate PCMag URLs, just look at this one!). I don't see how a research paper can discredit a working implementation (many platforms, all clients successfully interoperate). This appears to be usual anti-Microsoft FUD and trying to get some attention.

Bram Cohen (the author of BitTorrent) thinks that paper is complete garbage - note, the paper but not the work of Microsoft researchers. BitTorrent is Bram's creation and it's somewhat understandable that he feels bad about some false statements in the paper (more details below).

More conspiracy theories can be found at the i-kew: Avalanche, vapour and dirty tricks.  This just makes no sense - in short, author argues that Microsoft needs good P2P technology to help ease the load off of IM servers. Repeat after me: P2P is not (yet) suitable for distributing real-time content. That means no audio/video chat, streaming movies and no IM. It's just not designed for such scenario. If you want to upload 40GB of videos to a few hundred thousand people with your pathetic 128Kb ADSL upload link, no problem.

Having implemented (on Microsoft Windows platform using Microsoft .NET) and thus understood BitTorrent protocol here's what I think... The presentation of Microsoft researchers, especially in the PowerPoint form, feels a bit dated and is simply incorrect at a few places:

  1. They mention successful distribution of 1.77GB RedHat ISO image; that's small today, just for fun I got 2.6GB Fedora Core ISO image over BitTorrent yesterday in under hour and a half
  2. One slide mentions how clients sometimes request pieces of the file from servers - this never happens, neither with BitTorrent, nor with similar system that (to my knowledge) came before BitTorrent called eDonkey
  3. "If there are many users, deciding which is the best piece to download can be very hard" - nonsense :) experiments (and common sense) show that it's very efficient to always get the rarest piece first
  4. "Solutions that require to have full knowledge of who has what are not scalable" - not quite correct; while I agree that getting rid of bookkeeping "who has what" might improve the scalability, practice shows that keeping clients up to date with this information is trivially cheap and does not hamper scalability
  5. "Rare blocks are hard to obtain" - having in mind "rarest piece gets downloaded first" as a default strategy of most BitTorrent implementations, I simply do not see how this can hold

But before I dismiss the slides as a dirty trick, the scheme to discredit BitTorrent or simply delusional writings of a madman ;), let me tell you that it raises some valid points. If we could improve P2P network resiliency with a (computationally reasonably cheap) scheme similar to what Avalanche is offering it would be great for all P2P content distributors.

It's a pity these two technologies (Avalanche and BitTorrent) are seen as competing ones, not something that could as a joint effort produce even better P2P network. Don't forget that Avalanche has not been implemented yet while BitTorrent has been implemented to death on many platforms and using many languages - have this in mind while comparing (if you must compare, that is).

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
4 Comments
Jun
20.
2005

Have you noticed how prices of utilities and (developer) add-ons have steadily increased over the years?

Some examples: when Visual Assist was first introduced it cost $99, then $79 and even $49 for some time. Later on, the price climbed back to $79, $99 and recently finally to $129.

Even more interesting is Resharper, newer product in the same category. When it showed up, it cost $99 (luckily, I bought it at that price, and at least the next two upgrades seem to be free). Soon, the price changed to $149 with the announced pricing of $199 for the upcoming version.

I have noticed users complaining about the same trend for general utility applications - small, single-purpose apps now routinely cost $29 while slightly more complex ones easily go for $39, $49 or even $79.

As a future µISV I have mixed feelings about this trend. On one hand, I should be glad that the prices are going up because I might earn more. On the other hand, as Joel nicely shows in this post, pricing the product is not an exact science. I can't but wonder how many of these ISVs are really tracking the influence of the price change on their total earnings.

Seeing how people got upset about Visual Studio pricing which is dirt cheap compared to most of the development add-ons I can't shake off the feeling that something is not right here. However, if users (developers) are buying, this is nothing but a music to my (ISV) ears :)

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Jun
17.
2005

As I expected, my ISP upgraded my connection literally the day I left for 2 week vacation. While I was away, the only thing I was able to do was to update the DNS entries (my permanent IP address changed too) but there was nobody at home to reconfigure the router.

Everything should be back to normal now. I will try ADSL2+ mode tomorrow. In a strange twist of events ADSL2+ firmware for my router became available (not counting any beta releases) yesterday ;)

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Jun
2.
2005

I just received an email from my ISP notifying me about the changes to my Internet connection. Timing is "perfect" - I am leaving France tomorrow... If you speak French, this is in essence what I got:

Comme prévu, Free Haut Débit va procéder dans les jours qui viennent au dégroupage de votre ligne téléphonique, opération qui consiste à raccorder
votre ligne téléphonique directement aux équipements de Free Haut Débit. Cela vous permettra de bénéficier pour le même prix d'un meilleur débit.

Cette intervention va générer une interruption de service de quelques jours et necessitera un re paramétrage de votre connexion.

Nous ne sommes malheureusement pas en mesure de vous indiquer plus précisément la date du dégroupage de votre ligne étant donné que l'opérateur
historique, en charge des opérations finales de dégroupage, ne communique aucune date prévisionnelle de réalisation.

If you don't speak French, in short: we are proceeding with the process of connecting you directly with our equipment which will benefit you - same price, higher speed; this intervention will generate interruption of service for some days and will require re-configuration of your connection; we can't tell you exactly the date of the process because the previous owner did not pass the date to us.

Besides from telling me that my French is improving since I understood all this :) it is unfortunately exactly what I expected.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments