Web UI Protocols are Broken

GUI, the final frontier. All the bits flowing through the network, all the lines of code running through the processor, all the DSPs and the codecs, all the man-years, and what the user will see is just a GUI. And they never let programmers touch the GUI, now do they? That’s the designer’s job, and while a few designers dabble in programming to some degree, user interfaces designed by full-time programmers tend to stand out for being, how shall I (read more...)

By Ran Arad  |  September 24th, 2008  |  Filed under Development, Standardization
Add a comment 


4 Gotcha’s of text-based protocols

As I stated many times, I think binary encoding is superior to text based encoding. However, usually, when you are a software engineer implementing a protocol, the protocol choice is not yours. In this post, I will consider the pitfalls and gotcha’s of text-based protocols and how to design your way around them. I mostly consider protocols defined by ABNF rules (such as SIP). If the protocol uses an XML scheme, there are readily available documents on parsing XML into (read more...)

By Ran Arad  |  July 3rd, 2008  |  Filed under Development, SDKs
3 comments  |  Add your own 


Compiled Protocols vs. Script Protocols

There is a huge difference between compiled languages and scripting languages: the former are first entirely compiled and then executed, the latter are interpreted as they progress. I will use this terminology to discuss two types of protocols: the more common is made up of readymade messages or methods; each message type indicates a predetermined course of action. The less common type, and one I think deserves more attention, sends messages made up of many simple commands that do very (read more...)

By Ran Arad  |  May 27th, 2008  |  Filed under Standardization
Add a comment 


Logs + Scripts = Ownage

At times, I like to keep scores between Development and Customer Support (CS). If a problem is on the customer’s side, a point is awarded to development and if the problem is with our code, a point is awarded to customer support. Then there are the many special cases, for example problems with documentation (points for CS), problems with API design (more points for CS), problems fixed for another customer already (points for Development) problems which are already fixed in (read more...)

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


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 


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 


Why text-based protocols hurt your design

If there is one thing I learned, it’s that text based encodings are a menace. They have their use, have no doubt; I’m not throwing away all the XML flavors and HTTP-like protocols. I’m just saying that their use should be limited to cases where we already deal with text-based data, like HTML or information repositories, not for complex communication protocols. Binary Decoders Two things can be said about binary decoding: it’s rigid and it’s repetitive. That means that if (read more...)

By Ran Arad  |  February 11th, 2008  |  Filed under Standardization
4 comments  |  Add your own 


Can have it all: flexibility with simplicity

API design is tricky. You have to constantly answer two opposite questions: How can I let the user do anything he would like to do? How can I make things simple to use? Flexibility causes complexity, simplicity causes rigidness, right? Wrong. Take the void pointer for example. The void pointer can point to anything, so it’s flexible, and it is very simple as well. The same can be said for Java interfaces or C++ container classes. Or take (read more...)

By Ran Arad  |  February 4th, 2008  |  Filed under SDKs
1 comment  |  Add your own 



Subscribe

Subscribe via RSS
Subscribe via email:

Interactive Video Platform