Tuesday, February 17, 2009
What's on my iPhone: Fring (Skype and IM's)
although today's announcement of a deal with Nokia includes hints that they are working on more mobile platforms. They support Android already, so their main missing link at this point is the iPhone.
Fring is a decent substitute for now. I mostly use it to keep up with Skype and YIM chat sessions when I'm away from my laptop.
Monday, July 28, 2008
Skype Downloads Approach One Billion
The usual caveats apply, most of the downloads are version upgrades, but there are over 300 million different registered skype names, and concurrent user counts peak at 12 million most days.
At the time I got a nice mention from Skype Journal, and you can find good analysis of the Skype usage levels at Jean Mercier's Skype Numerology blog. As ever, you can track the actual numbers via an RSS feed that Skype provides, or just view them at this graph.
Why does this matter? It matters because this is the kind of critical mass that the rest of the Telco industry and VOIP startups are only dreaming of. I'm about to turn off my long distance and international phone plans and just have local calls on my home phone. The home phone I just ordered will redirect long distance and international calls over Skype, and make local calls on the land line. This will save me hundreds of dollars a year in telco service costs, so it pays for itself in less than six months. There is even a special offer on the hardware right now. I fully expect that in a few years time I will also be making the bulk of my mobile calls over Skype as well.
All I want from the Telco's is reliable unlimited raw bandwidth at a fixed low price, which is a terrifying prospect for the dinosaurs of this industry...
Thursday, March 27, 2008
Patents on Peer to Peer Trading Platform
Peer-to-peer trading platform
Peer-to-peer trading platform with relative reputation-based item search and buddy rating
Peer-to-peer trading platform with search caching
Peer-to-peer trading platform with roles-based transactions
The seed of the idea came from my good friend Josep Ferrandiz, who still works at PayPal. The ideas were developed with help from Zahid Ahmed who is now working for EMC, and with a lot of help from Neel Sundaresan who manages eBay Research labs. The patents are in all of our names.
I think we came up with some cool ideas, we also stress tested the Skype API's in some novel ways and got some things fixed. The lasting legacy of this work is more robust application to application messaging API's and improvements in Skype4Java.
Tuesday, June 12, 2007
Using Occam to Simulate p2p Web Services
About a year ago I gave a paper at an IEEE E-Commerce conference that described how I used the latest pi-calculus enhanced version of the old Inmos Transputer language Occam to build a very efficient massively threaded simulator for large scale p2p web services that ran on my laptop.
I blogged this at the time, but The paper itself is subject to the rules IEEE sets out for peer-reviewed conference papers and you need to be a member or pay a fee to get it from http://doi.ieeecomputersociety.org/10.1109/CEC-EEE.2006.81
However, I wanted to share this more widely and have just posted a pdf of the presentation slides for my IEEE paper. Here are the first few slides, and a description of the Tools section:
Simulation of Skype Peer-to-peer Web Services Choreography Using Occam-Pi
Abstract
Complex web services are very difficult to test and verify before deployment on a large scale.
A semantically equivalent in-memory simulation can be built using Occam-pi that runs up to 100,000 nodes about a million times faster than real life.
Rapid protocol development and detailed behavioral analysis using simulation supports the development of robust services that can scale.
The implementation of a simulator that models centralized web services and application to application messaging over the Skype Peer to Peer network is described.
Overview
- The Landscape
- The Problem
- The Tools
- The Solution
- Implementation
- Running the Simulation
- Conclusion
- References
The Tools – Pi Calculus
- WS-BPEL, SSDL and WS-CDL are based on Pi-Calculus
- Pi-Calculus is based on Communicating Sequential Processes (CSP)
- Pi-Calculus provides a formal model of parallel message based computing
- Occam-Pi
- The Occam language is based on CSP, and has been extended to add the Pi-Calculus extensions to form the Occam-Pi language.
- The primary implementation of this language is known as KROC, the Kent Re-targetable Occam Compiler
- KROC is freely available from the University of Kent at Canterbury, UK
- Runs on Intel architecture Linux, MacOS X, and Microsoft Windows/Cygwin platforms. Older versions exist for SPARC, PPC etc.
The Tools – Occam Language Constructs
- The constructs that are used in Web Services choreography map directly to Occam language constructs
- The Occam language has direct support for sequential, parallel and alternate processing blocks, complex protocols, and channel based communications
- Occam-Pi adds more dynamic constructs to the language
- Mobile channels - pass a channel end over another channel
- Mobile processes - suspend a process, pass it over a channel and resume it in a new context
- Dynamic process forking with barrier synchronization
- Rigorous Occam-Pi Compile-time Checks
- Processes or expressions are not allowed to have any “side effects”
- Syntax and usage of all protocols, data and constructs is checked
- Occam is designed to allow very comprehensive static analysis
The Tools – Occam Runtime Characteristics
- There is no need to use XML message encoding or namespaces
- since the compiler can check that a protocol is being communicated correctly
- At runtime, the Occam-Pi language is fast small compiled code
- with its own threading model, in a single process
- The Occam-Pi runtime detects and reports deadlock
- including the line number in the code at which each process was stalled
- Occam-Pi is very efficient
- All communication takes place in a single address space at memory bus speeds
- Basic process creation takes 20 nanoseconds on an 800MHz PC
- Basic channel communications takes 70 nanoseconds
- Compared to typical web services transactions over the internet these transactions are about a million times faster
- The language is also very compact, and one hundred thousand to one million threads can be created within a 2 GByte address space.
- [Cygwin] “GNU + Cygnus + Windows”, http://www.cygwin.com/
- [GraphML] “Graph Modeling Language “, http://graphml.graphdrawing.org/
- [Hoare78] C. A. R. Hoare. “Communicating Sequential Processes.” Communications of the ACM 1978.
- [Hoare85] C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, 1985.
- [KROC]. “Kent Retargetable Occam Compiler” http://www.cs.kent.ac.uk/projects/ofa/kroc/
- [Occam2] Inmos Ltd, Occam 2 Reference Manual. Prentice Hall, 1988.
- [Milner99] Robin Milner, “Communicating and Mobile Systems: the Pi-Calculus”, Cambridge University Press, 1999.
- [Skype]. “Skype Developers API” https://developer.skype.com
- [SSDL] Webber et al. “Asynchronous Messaging between Web Services using SSDL.” IEEE Internet Computing Vol10, No1 2006.
- [WS-BPEL]. “OASIS Web Services Business Process Execution Language” http://www.oasis-open.org
- [WS-CDL] “Web Services Choreography Description Language”, http://www.w3.org
- [yEd] “Graph visualization and editing tool”, http://www.yworks.com/
Friday, February 16, 2007
Skype downloads approach 500 Million
How are the competition doing? Vonage added a few hundred thousand users last quarter. Thats a few orders of magnitude away from being a competitor!
Of course, Kazaa is based on an earlier version of the P2P technology that powers Skype, and which is about to come to the world again via Joost. Joost just released a new beta for Windows, and their first beta for Intel based OSX. I still can't justify upgrading from my own Powerbook G4 (it just works) so I'll have to wait for them to backport to the older systems, and use my work laptop.
Sunday, November 19, 2006
Skype on Solaris
http://blogs.sun.com/darren/entry/skype_1.3.0.53_on_solaris_via
Solaris has a Linux compatible subsystem called BrandZ for running Linux binaries that don't have Solaris builds (like Skype). Darren figured out how to get the Linux build of Skype to run on Opensolaris.
Thanks to Alec for pointing this out.