Embedded Systems Software, Computer Networking and Geeky Fun

nerd1951.com

September 21, 2006

Public Speaking and the Embedded Systems Conference

Filed under: News — harvey.sugar @ 8:59 pm

Well, the Embedded Systems Conference is next week in Boston and I’m gearing up to give my presentation. I was surprised to find that my conference paper, Efficiently Coding Communications Protocols in C++, was published today at both embedded.com and Doctor Dobb’s. The presentation will be even better than the paper. I haven’t given a technical presentation to a large audience for quite a while and I’m a pretty excited.

I was giving a lot of presentations when I was the lead engineer for development of the Acterna TTC/TBerd 1000 which was the first portable ADSL test set. As the technical “go-to guy” I was usually called on when ever anyone wanted a technical presentation about the product. The toughest presentation had to be the one for our sales organization. I had an audience of fifty or sixty impatient sales guys asking pointed questions about every feature the box had or didn’t have. I also trained our tech support staff and the production test staff. I liked the customer presentations the best. I enjoyed getting out and seeing what the telcos were really up to. The best were the presentations I gave to British Telecom and Telefonica because I got to go to London and Madrid.

• • •
 

September 17, 2006

The Revolution Will Be Televised, on the ‘Net

Filed under: Rants — harvey.sugar @ 11:06 am

Welcome to the revolution, again. There is a lot of press from industry pundits and academia about Internet-2 and what it will be. Techies are excited by Ajax (Asynchronous JavaScript and XML) and the term “semantic web” is being tossed around. But as usual I think they’ve missed the point.

The last “Next big thing” was music distribution via the web. Where did this come from? Not from the entertainment industry or high tech companies. Apple was just smart enough to catch the wave. The idea came from a generation of college kids who found nearly limitless bandwidth available in their dorm rooms and thought up something cool to do with it. We can also thank them for text messaging, blogs, multi-player computer gaming and the creative uses for webcam

Now this kind of limitless bandwidth is starting to really become available to rest of us. My Comcast connection now provides 11 meg. of raw bandwidth. Verizon, driven by the desire to compete with the cable companies, is finally deploying fiber to the home in northern New Jersey. Other regional carriers are planning similar deployments. The first Internet revolution was driven by access the next revolution will be driven by bandwidth.

What cool new stuff will we do with this bandwidth? I can’t say. I just implement the stuff. But I wouldn’t look to industry or university research departments. Look at “Lonely Girl” or MySpace and if you haven’t heard about these then you better get a clue fast. I would look to that real hot bed of creativity, the college dorms.

• • •
 

September 15, 2006

Object Oriented C++ Programming Project

Filed under: Rants, Cannonball — harvey.sugar @ 11:58 pm

I’ve been ranting about software development in this blog for several months now but ranting alone does not solve any problems or show anyone a better way of doing things. So, I’ve decided to start a software project to illustrate how object oriented design and C++ programming can be applied to a serious real-time application.

The application I’ve chosen is a TCP/IP protocol stack. I’ve been writing software to implement communications protocols for almost thirty years and this is still one of my favorite areas of software development. There are several good implementations of TCP/IP written in C including the implementations in the Linux Kernel and BSD Unix distributions. There are also several experimental TCP/IP implementations including the x-kernel. However these implementations have all grown some warts from unanticipated feature creep.

My goal is to use a C++ implementation to create a protocol stack as a set of components with simple well defined interfaces. This is one of the hall marks of object oriented programming that the internal implementation of the components can change but the interfaces remain stable. Well defined interfaces should also allow new protocols to be added without having to rework the existing components thus avoiding some of the warts caused by feature growth. Finally, if an interface needs to be redefined in order to support a new feature, the existing components need to be updated in a uniform way to support the new interface. This is what is meant by refactoring and again helps the software retain its structure while growing to support new features.

Right now I’m still doing research into existing protocol stacks but I have started to define what some of the components will look like. I’ll be discussing some of this in my talk at the Embedded Systems Conference in Boston. I’ll add new pages discussing the designs of the components and the overall protocol stack and the C++ code as I go along.

If anyone knows of a good tool for generating UML diagrams that can be published on a web page, please leave me a comment. I’d hate to do them in Power Point and convert them to jpegs. It’s a lot of tedious work and just looks bad. I will be using Doxygen to document the code.

• • •