Software Is the New Hardware

I’m probably late on the wagon with this, but I just discovered that standardized protocol interfaces are fast becoming commonplace – and I’m not talking about the network-side interface, I’m talking about the application-side interfaces, also known as APIs, or should I say open APIs. APIs used to be a matter of taste and design, pride and prestige; they were known to make or break an SDK. All this is about to change, as APIs are being standardized, and SDKs (read more...)

By Ran Arad  |  March 25th, 2009  |  Filed under Development, Standardization
2 comments  |  Add your own 


5 must-have tools for VoIP Developers

Is developing protocol stacks and communication software any different from developing any other software? I have to develop API’s for my protocol stacks a challenge in itself and related more to user psychology than to programming. I have to check control flows all the way down to the network and back to the application. I also need to process large amounts of data and  develop  many platforms. I hope these tools will be as useful to you as they are (read more...)

By Ran Arad  |  June 9th, 2008  |  Filed under Development
1 comment  |  Add your own 


Gabe Wachob: Memo to API Service Providers

Gabe Wachob provides tips for API developers. In contrast to my low-level approach, Wachob looks at API design from a holistic perspective. Although he speaks on API design for web services, most of his tips are relevant to every aspect of API design. For example: API can be seen as a separate product you are delivering One can document the service and not just the API Provide a reference client application to demonstrate usage of the API The one that I am most fond of involves developing against your API “fun and personal”. Wachob links another post explaining that last point, in which he writes: “If you are a developer, you know what the thrill of the hack is – when your building something, and you sit down and implement a new feature and all of a sudden, your stuff plugs into a bunch of other people’s stuff and what was once a cool standalone thing is now part of an ecosystem of interoperating cool stuff. The whole becomes greater than the sum of the parts. And you, the developer, are part of it.” Here Wachob references web services, developer communities and open source development. I need to think about how this translates to the design of product APIs and protocol stacks and I’m open for new ideas.

By Ran Arad  |  April 9th, 2008  |  Filed under SDKs
Add a comment 


Naughty protocols, need spanking

I have previously mentioned Joel Spolsky’s brilliant post about standards. If you’ve not read it yet, it is really worth your while. In that post he quotes Jon Postel‘s robustness principle and Marshall Rose’s critique: Counter-intuitively, Postel’s robustness principle (“be conservative in what you send, liberal in what you accept”) often leads to deployment problems. Why? When a new implementation is initially fielded, it is likely that it will encounter only a subset of existing implementations. If those implementations follow (read more...)

By Ran Arad  |  April 7th, 2008  |  Filed under Interoperability, Standardization
Add a comment 


Multi Thread Me

In the movie “Super Size Me“, Morgan Spurlock goes from healthy to sick in one month of McDonald’s products. I’m reminded of this movie when I hear talk about adapting protocol stacks to use 64 core systems – doing that in the wrong manner, which usually means multithreading them out of their minds. Why Multi-Core? Multi-core processors are very reasonable. It’s a simple way of getting more processor power without raising the processor clock speed (generating more heat and consuming (read more...)

By Ran Arad  |  March 10th, 2008  |  Filed under SDKs
1 comment  |  Add your own 


Pass the dogfood

Eric Sink wrote a blog post differentiating between different approaches to software development, (linked, and summarized, by Jeff Atwood of Coding Horror), mainly questioning how developers are using the own products they develop. The two interesting commercial categories are “ThemWare”, software that is not used by the developers themselves, and “UsWare”, software which is used internally, and thus is far superior. Jeff writes: Consuming the software you’re creating is colloquially known as dogfooding in programming circles. Unless you’re (un)lucky enough (read more...)

By Ran Arad  |  March 7th, 2008  |  Filed under SDKs
1 comment  |  Add your own 


I’m hunting: 4 most important qualities I look for in protocol programmers

I’m in the process of recruiting a programmer for my team, during which, I started to ask myself, what are the definitive qualities required from a protocol programmer. You might say, anyone could be a protocol programmer, or you might say, anyone can learn to be a good protocol programmer, but let us assume, for the sake of discussion, that there are some personal qualities for a great protocol programmer. What are they? Let me offer my ideas: Attention (read more...)

By Ran Arad  |  February 26th, 2008  |  Filed under SDKs
Add a comment 


5 “don’ts” when building a protocol stack

Having recently had the privilege of writing a protocol stack from near-scratch, and having worked on a dozen more, I saw and did a few common mistakes: 1. Don’t assume it’s easy. It’s not easy. Even when you are writing a proprietary protocol to communicate between just two entities, don’t go “oh that will just write itself” – it will write itself, badly. Go to the design phase. Make sure that even if you’ll need to expand your protocol over (read more...)

By Ran Arad  |  January 21st, 2008  |  Filed under SDKs
Add a comment