Can Your Trust Your Software?

Monday March 10th 2008, 3:11 pm Printer Friendly Version
Filed under:AllPeers, Software Development, Software Industry
Posted By: Cedric

I’ve just come across this horror story about G-Archiver, a windows shareware which backs up your gmail account to your local hard drive but also emails your username and password to the creator!

When we initially launched AllPeers, the client was not open-source but we always said our goal was to do it. At the time, the source code was not clean enough to open but we knew this was the only way for us to prove we were genuine and not planning on spying on our users.

When we finally opened the code, some people saw it as a desperate move on our part. It was not. It was a way for us to be transparent and to say “if you don’t trust us, just look at our code”.

There are a lot of advantages about developing open-source software but trust and security are certainly high on the list.

Now forget about open-source software and think about all these websites who ask you for your login credentials in order to “import your contacts”. Can you really trust them and if so how? How paranoiac are you about this? I usually tend to trust the sites but is a nice design and a groovy name enough to earn my trust when it comes to my email credentials?



AllPeers: Lessons Learned

Although AllPeers didn’t produce the kind of outcome that we had hoped for and expected, it’s been a tremendous learning experience. Hopefully others will be able to benefit from what I consider to be the main lessons.

Luck and ambition

Naturally the success of any startup is dependent to some degree on luck, and the luck factor rises in proportion to your ambitions. If your plan is to sell T-shirts online then execution is probably the main consideration. If you make really cool designs, have an easy-to-use website and do good marketing then you’ll probably make money, though you’re unlikely to be buying a private island in the South Pacific any time soon. If, on the other hand, you plan to dethrone Facebook by adding state-of-the-art social features to the fabric of the web, transforming the internet experience of billions of people, you’re going to have to execute to perfection and still get really really lucky if your company is to succeed. Of course, if you make it you’ll be assured a very comfortable early retirement.

Neither of these approaches is inherently wrong but you should be aware of what you’re getting yourself into. If you can’t stand the thought of failure, make sure you’re not tackling a problem that is too big and ambitious. In the case of AllPeers, we knew that there was going to be a lot of luck involved (as there is with any product that relies on network effects and viral adoption), and we were pretty well prepared for the challenges we would face. It is comforting to see failure in this way because we certainly wouldn’t have sacrificed our lofty ambitions to increase our chance of moderate success.

Raise as much as you can

I’m not the first one to say this, but let me express my wholehearted agreement: raise as much as you can, as soon as you can, and not a penny less. In early 2006, before we had released even a private alpha of AllPeers, we suddenly became a minor web star thanks to a couple of white-hot buzzwords (”Firefox” and “BitTorrent”) and a very positive writeup on TechCrunch. (And in fact we owe a great deal to Mike Arrington, who grasped our vision immediately and did a great job of articulating why it was exciting. It’s easy and intellectually lazy to be pessimistic before the fact and snarky afterwards, while it takes courage to go out on a limb and predict success.) We believed our own hype a bit too much, unfortunately, and didn’t take advantage of the opportunity to raise a lot of cash at a high valuation. Instead we brought in a very modest amount under the assumption that we’d be in a great position in a few short months to close a much bigger round.

As a result, we were under constant pressure to get user numbers up so we could raise more money. This isn’t the way to run a company, particularly one with an ambitious technological vision. We ended up making a string of tactical moves rather than taking a step back and looking at the big picture. As a consequence, we ran out of money before we could get the product to where it needed to be. Don’t make this mistake.

This shouldn’t be construed as a criticism of Mangrove Capital Partners, who led our series A investment round. They are a fantastic group of individuals whom I wouldn’t hesitate to recommend to any entrepreneur seeking funding, and a classic example of a VC who really does offer much more than money to a budding startup (something they all claim to do). But only a company’s founder has a single-minded focus on the company’s success, and this includes acquiring a war chest to deal with unforeseen contingencies.



Use The Force

Tuesday March 04th 2008, 7:23 pm Printer Friendly Version
Filed under:AllPeers
Posted By: Cedric

Since the announcement of the closing of AllPeers we have been submerged by emails, IMs, SMS and phone calls from total strangers and friends in the industry.

Before making the announcement, Matt and I were wondering yesterday if anyone would really pay attention. After all we had not been in the news for some time and we would not be the first company to “join the deadpool”. To our surprise, our announcement has generated a lot of press coverage including Wired, CNET, InternetNews, Ars Technica and of course blogs (from the most famous ones to the smallest ones). The feedback is a general feeling of sadness and incomprehension.

This has been beyond our expectations (this is a recurring thing here at AllPeers) and we are turning all this love into positives vibes for our personal and professional lives.

As Obi-Wan Kenobi said: “If you strike me down, I shall become more powerful than you could possibly imagine.“.

This is pretty much how we feel right now 24h after going public with the news. Thanks to all for caring, this is why we create businesses.



AllPeers Service Shutting Down Today

Monday March 03rd 2008, 4:25 pm Printer Friendly Version
Filed under:AllPeers, Firefox
Posted By: Matt and Cedric

It is with deep regret that we inform our users, friends and fans that we will be shutting down the AllPeers service today. We are tremendously proud of the product that our team has built, and we remain convinced of the potential of adding social features like file sharing to the web browser. However, we have not achieved the kind of growth in our user base that our investors were expecting, and as a result we are not able to continue operating the service.

The past few years have been an incredible adventure for us. We would like to thank all of the amazing people who have helped us along the way. This includes countless users who provided us with valuable feedback about how to improve our product; the Mozilla community, who has proven to us that “community” is more than just a word when it comes to open source software; the many volunteers who spent hours translating each AllPeers version into fifteen different languages to make it available to non-English speakers across the world; and the friends and family who have supported us as we pursued what undoubtedly seemed like a crazy dream.

Being an entrepreneur is the most rewarding and exhilarating job we can imagine. Being able to build on a vision you have one morning and watch as it grows into reality is quite an experience. Seeing people get excited by what you are building is incredibly gratifying. The praise, devotion and even harsh criticism of the user community is what keeps you going despite long working hours, frequent stress and periods of uncertainty.

When we started working on AllPeers, we knew that it was an ambitious project with no guarantee of success. Such is the nature of any software startup. Sometimes it works, sometimes it doesn’t. Although we are deeply disappointed with the way this adventure has ended, we hope that fear of failure will never prevent us from daring to act on our inspiration.

We have met many many new friends thanks to AllPeers (you know who you are). This is a fantastic silver lining that gives us great comfort. We hope you will stay in touch as we move on to new pastures.

The success of this blog has also been one of the best experiences to come out of AllPeers. We will continue to operate it under the “Peer Pressure” name, posting our random thoughts about the web, the software industry, the evolution of media and whatever else strikes our fancy. We hope you’ll keep on reading. Matt will also continue writing his Just Browsing blog with a focus on web browsers and browser technology.

You haven’t heard the last from us. See you in our next life!



Live On Air Interviews Me

Friday January 18th 2008, 7:32 pm Printer Friendly Version
Filed under:AllPeers, World Wide Web
Posted By: Matt

My friend and former colleague Frank Felix Debatin has posted an interview with me on Live On Air, the official blog of his company 1000 Mikes. The interview is in German (although I wrote the answers in English and asked Frank to translate them). We touched on a number of topics, including our upcoming plans for AllPeers and the basis of my new Just Browsing blog.



AllPeers at FOSDEM

Monday January 14th 2008, 11:09 am Printer Friendly Version
Filed under:AllPeers, Firefox
Posted By: Matt

Tristan Nitot wrote up a good description of the open-source free-for-all that is FOSDEM. I’m still not a proper open source person (though I’m getting better at Unix shell scripting, which probably means I’m on the verge of shedding any lingering capitalist bent), and at the last two FOSDEMs I didn’t go to many (any?) of the general sessions. But this, after all, is the big European Mozilla bash, and that’s more than enough reason to make the trip. I’m sure that, like last year, some of my AllPeers colleagues will come along as well.



AllPeers v0.75

Thursday December 13th 2007, 11:21 pm Printer Friendly Version
Filed under:AllPeers, Firefox
Posted By: Matt

The other day we released AllPeers v0.75, with a number of improvements that we hope you’ll enjoy. One of the most frequent complaints we’re heard about previous versions is that, if someone who has shared files with you goes offline, downloads don’t resume automatically when they return. This is now fixed. We’ve also completely redesigned the procedure for restoring your account if you change computers or need to get your AllPeers account back for any other reason. This has been another very common support issue in the past.

We’ve made a number of changes to the user interface that we hope will make it more attractive and usable. And finally we’ve spent a lot of time tuning performance to make the software faster and more responsive. We hope you’ll enjoy the new version and we look forward to your feedback.



Help Us Choose a Mozilla Markup Generation Solution

Monday December 03rd 2007, 2:56 pm Printer Friendly Version
Filed under:AllPeers, Software Development, Firefox
Posted By: Matt

UPDATE: Based on some discussion on IRC I probably should have given some more background to this post. In a nutshell, we are a Firefox extension and we store data in SQLite. For our extension’s user interface we want to generate markup (specifically HTML) from this data using templates that describe the page to generated, with placeholders for dynamic data. Something very similar to PHP, JSP, ASP, etc. in other words, but running on the client inside the Firefox process.


I’ve felt for some time that we need to change the way that AllPeers generates its user interface. For the most part, this is currently accomplished using a rather byzantine JavaScript-based framework loosely inspired by Eclipse. Experience has shown that this framework is a) rather slow, b) difficult for people to learn and understand and c) completely non-standard. At the same time, it’s proven challenging to find a viable alternative that meets all our requirements:

  • Minimal code footprint
  • Fast
  • Support for recursivity (iterating hierarchical structures)
  • Support for polymorphism (different template fragments for different types of data when iterating over a set)
  • Support for streaming generated markup
  • Execution possible in a background thread
  • Simple syntax conducive for working with graphic designers

The last point rules out XSLT, in my mind, since it’s too difficult to work effectively with a graphic designer who creates static HTML pages. How are such pages to be maintained once they have been broken up into lots of little template rules? So we took a close look at the various open source templating engines out there. There are some appealing options based on Python, but we decided that shipping the Python runtime with AllPeers is not realistic, which narrowed the choice down to two C++-based solutions: CTemplate and Clearsilver.

Then I read a recent blog post by Mark Finkle, prompting me to look again at an option that’s been kicking around in my head for ages: using XUL Templates. When I first investigated this a couple of years ago, they didn’t appear up to the task, but substantial improvements have been made since then. The ability to graft straight onto a SQLite database, in particular, is of great interest to us.

The main issue I see with XUL Templates is that we may want at some point to move AllPeers to its own process, leaving only a thin UI layer in Firefox. This implies that our future template engine will have to generate markup to a stream rather than manipulating a DOM directly. In addition, we may want to do this in two phases, initially running the generator in a protocol handler inside the Firefox process. So it has to work on a background thread. To my knowledge, XUL Templates currently can’t do either.

Do we go ahead and adapt an outside framework like Clearsilver for our purposes? Or do we try to soup up XUL Templates to meet our additional requirements. I’d love to opt for the latter since I think these improvements might be of value to the Mozilla community at large. But it’s a tough call without knowing the answers to the following questions:

  • Is anyone else out there interested in using XUL Templates to stream markup, run on a background thread, etc.?
  • How much work would it be to adapt the XUL Template engine to our requirements?
  • Is there a “third way” that I am missing?

Any input on either of these points would be greatly appreciated.



Build Your Own Dedicated AllPeers Server

Monday November 12th 2007, 12:33 pm Printer Friendly Version
Filed under:AllPeers
Posted By: Matt


My friend and former colleague Ingo posts about his dedicated AllPeers server, cobbled together MacGyver-style from an old laptop. (He refers to me as his “crazy ex-colleague”, though I can’t imagine why. The voices in my head keep reassuring me that I’m perfectly sane.) His post is in German, so for those whose Teutonic language skills are lacking, the gist is that he loves AllPeers except for the fact that people can only get at your files when you’re online. So he dug up an old computer and set it up to run AllPeers 24/7. Not only is it functional, but with its sporty Weapons of Mass Distribution t-shirt, it’s one of the most fashionable servers in the neighborhood.

Note that if you want to run your regular AllPeers account on one machine and a dedicated server on another, you might want to take a look at our caching user extra.



Pimp My iPhone

Friday November 02nd 2007, 5:17 pm Printer Friendly Version
Filed under:Apple, AllPeers
Posted By: Matt

I got sick of looking at the boring default iPhone wallpaper, so I asked our graphic designer Sasha to whip up something a bit more personalized:

It turns out it’s hard to take a photo of an iPhone without getting all kinds of glare and whatnot, so I used Erica Sadun’s sweet little iPhone screenshot utility and asked Sasha to photoshop the result into a professional iPhone photo found on the web. (My graphical skills being exactly nil, as regular readers will know.)

You can download the image I used if you want to spruce up your own iPhone.



What Does Prism Mean for AllPeers?

Wednesday October 31st 2007, 7:57 pm Printer Friendly Version
Filed under:AllPeers, Software Development, Firefox, World Wide Web
Posted By: Matt

I’ve come out of the closet recently as a big fan of WebRunner, so it was incredibly exciting to see Mozilla officially take the project under its wing with a great new name and branding. As far as I’m concerned, this is where the future’s at.

Since I’m all about putting my money where my mouth is, this raises the intriguing question of what it would mean to port a complex extension like AllPeers to Prism. We’ve certainly got a lot of mileage out of AllPeers as an extension, leveraging the full functionality of Firefox including the relatively easy extension installation process. Nonetheless, the need for explicit downloading and installation of a lot of code (mostly compiled C++) is a drag. Turning AllPeers into a true web app would remove all of the remaining friction for potential adopters.

The first question is how much existing functionality could be rewritten in JavaScript. Clearly JavaScript 2 will ease this task since it brings a lot of new programming constructs to the party that simplify the implementation of complex application logic. Tamarin is also a virtual must since its just-in-time compilation will have a major impact on performance. It should theoretically be possible to implement our entire resource management framework and networking layer in JS (although this would be painful since it implies rewriting a lot of existing code). I’m pretty sure some additional low-level networking code would have to be exposed by Mozilla, since we make extensive use of NSS directly.

The only remaining essential binary code in AllPeers is our codec support: we embed both FreeImage and the FFmpeg libraries in order to extract metadata from media files (height, width, length, bitrate, etc.) and generate thumbnails. With the work that Stuart Parmenter has done on Mozilla’s support for image encoding/decoding and the planned video and audio tags, it isn’t too much of a stretch to imagine a future Firefox where codecs can be installed in a manner similar to plugins and made available to JavaScript code. (Mike Shaver touched on this during his talk on future browser features at Mozilla 24.)

We also need some way to store our data in an efficient local database. Something like Google Gears would presumably fit the bill. It doesn’t look to me like DOMStorage will scale for a large repository of highly structured data, but I might be mistaken about that. I’m not sure how much traction (if any) Google Gears has outside of Google itself, but if it doesn’t catch on then some other persistent storage mechanism will be needed that gives applications control over the database at the SQL level.

The other issue that springs to mind is how to overlay AllPeers-as-a-web-app onto Firefox. We’ve had many people express interest in running AllPeers in a separate process, but a lot of the product’s appeal, in my opinion, stems from the fact that it is right there in your browser when you need it. This means that web apps need to be able to modify browser chrome: adding a sidebar, toolbar and status bar panels, at very least. This raises all kinds of security concerns, I’m sure, but at the end of the day if the app is written entirely in JavaScript with standard web privileges, it can’t do anything too heinous. Perhaps the biggest barrier is cracking the nut of dynamically loading and unloading overlays. This is tricky and it doesn’t look like anyone’s working on it right now. Hopefully someone will pick up the ball since this is, in my opinion, one of the biggest barriers to adoption of Firefox extensions in general. Perhaps the best approach would be to start a green field effort to enable web apps to modify the browser’s chrome in controlled ways, rather than trying to adapt the existing extension mechanism.



Firefox with AllPeers: 25,000 Downloads

Tuesday October 30th 2007, 12:11 pm Printer Friendly Version
Filed under:AllPeers, Firefox
Posted By: Matt

Back in June we announced that we would be making available a bundle of Firefox with AllPeers preinstalled, in partnership with Mozilla. The product has been a resounding success, and we just passed the 25,000 download mark last week.

This means that over the past four months, we’ve helped to bring over 25,000 new users into the Firefox fold. Another interesting tidbit: out of the 13 languages that have been downloaded, English is the most popular (nothing surprising there) followed by French and then by Chinese, which narrowly nips out German. If our statistics are any guide, the rise of Firefox in China is well underway.

The Mozilla folks have been absolutely fantastic in helping us to put this bundle together. We hope we can continue to return the favor by doing our part to bring new users to Firefox.



AllPeers on TorrentFreak

Tuesday October 23rd 2007, 10:47 am Printer Friendly Version
Filed under:AllPeers, Firefox, P2P
Posted By: Matt

TorrentFreak is running an interview with me about our Social BitTorrent functionality, present and future.



Extending Extensions

Thursday October 11th 2007, 5:54 pm Printer Friendly Version
Filed under:AllPeers, Software Development, Firefox
Posted By: Matt

I wrote a while back about our intern Luděk’s work on demonstrating how AllPeers can be extended by installing additional Firefox extensions that we call “extras”. The first extras added support for uploading images to Flickr and links to del.icio.us as part of the sharing process. They aren’t really ready for primetime, but they are good demonstrations of how one extension can extend another (in general) and how new features can be added to AllPeers (specifically).

Since then, Luděk has been hard at work writing additional AllPeers extras. It is certainly a goal for these to be useful to some AllPeers users. With a bit of luck they will also be useful for those thinking about the requirements for adding real support for extension dependencies to Firefox. And, ideally, we’ll eventually see third parties motivated to write extras for AllPeers. You can see all the extras currently available on our new extras page.

As far as the Flickr and del.icio.us extras are concerned, it occurred to me recently that a better approach would be for these (and potentially other services) to be available in a way analogous to normal contacts. So I can share an image with my friends Bob, Fred and “Flickr”. The latter would result in the image being uploaded to their website rather than being shared via the AllPeers network. Luděk seems to agree so expect to see this in a future version.

Another cool extra provides operating system shell integration. After installing it you get a new context menu option in your file manager to share files with AllPeers. This makes it quicker and easier to share files without having to go through a potentially cumbersome drag-and-drop process. It works both on Windows and on GNOME’s Nautilus, KDE’s Konqueror and Dolphin and XFCE’s Thunar (which I like to refer to collectively as “Linux stuff”).

The final extra lets you set up a special user who will automatically receive any files you share. So if you have one machine that’s always on, you can install the caching user there and be sure that your files will always be available even if the computer you shared from (e.g. your laptop) isn’t. This is an elegant solution to the “no sources” problem that plagues all peer-to-peer networks.

I hope that these will be of both educational and practical value to others. I’ll blog about other extras as they appear. If anyone has ideas, drop me a line.



Win an iPod Nano

Thursday October 11th 2007, 2:03 pm Printer Friendly Version
Filed under:AllPeers
Posted By: Cedric

Are you the lucky AllPeers user who will become the proud new owner of an iPod Nano? Sounds too good to be true? Just take a minute to let us know what you think by filling out our new survey about AllPeers. This will help us better understand how you use AllPeers so we can make it even better.

Note: In order to be eligible for the prize, contestants must complete the entire survey and provide their email address at the end of the survey. Only one entry per person. The winner will be hand picked on November 15th, 2007 and contacted directly.


 

AllPeers File Sharing



AddThis Feed Button



Creative Commons License
This work is licensed under a Creative Commons License
Conestoga Street Wordpress Theme by Theron Parlin