Embedded Systems Software, Computer Networking and Geeky Fun

nerd1951.com

November 25, 2006

The 2006 Ig Nobel Prizes

Filed under: News, Geeky Fun — harvey.sugar @ 11:17 am

Well, we’ve missed the “highlight of the scientific calandar” according to the respected journal, Nature.  I’m speaking of the 2006 Ig Noble Prizes.

“Last, but not least, there are the Ig Nobel awards. These come with little cash, but much cachet, and reward those research projects that ‘first make people laugh, and then make them think’” Nature

Some of this year’s winners were:

The Ig Noble prize is sponsored by Improbable Research an entertaining and educational website for both science geeks and normal people.

The award ceremony was held on October 5, 2006 but mark your calendar!  The 2007 Ig Nobel awards ceremony will be held on October 6, 2007.

• • •
 

Communications Protocol Framework Design Notes

Filed under: Projects, Cannonball — harvey.sugar @ 10:14 am

I’ve started posting design notes for the Protocol Object Framework. These notes are just one step away from the scribbles in my design notebook, so the classes described are bound to evolve as I flesh out the rest of the design.

The first class that I defined is the PacketBuff, the class for passing packets around between components of the Protocol Object Framework. I’ll be working on some related class designs for the next couple of days.

You’ll notice “efficiency features” for many of the classes. These are notes to myself for my upcoming presentation at The Embedded Systems Conference in April.

• • •
 

November 20, 2006

Cannonball Update

Filed under: Cannonball — harvey.sugar @ 7:59 pm

I entered all the requirements for Cannonball into the Open Source Requirements Management Tool (OSRMT) and realized that it’s way overkill for a project like this. OSRMT and tools like it are designed for cross functional groups where you have people from marketing, development, test, and project management. Each of the members of the group have different views of the requirements and the requirements management tool helps to reconcile these differing views.

So, in the end, I just listed the requirements on a web page: Cannonball Specification. I also created pages for the software license and the project name. These pages are all listed to the left under Communications Protocol Object Framework. Next I’ll be posting some design notes and then CODE!

• • •
 

November 19, 2006

Software Design Documents, Reviews, and Agile Methods

Filed under: Rants — harvey.sugar @ 12:19 pm

Martin Fowler is the author of UML Distilled, which I believe is one of the few books about UML worth reading.  I was reading Martin Fowler’s website last night and came across The Agile Manifesto and an article he wrote for SD Magazine.  One of the topics is design documentation in which he states:

Inevitably, when discussing agile methodologies, the topic of documentation arises. Our opponents appear apoplectic at times, deriding our “lack” of documentation. It’s enough to make us scream, “the issue is not documentation—the issue is understanding!” Yes, physical documentation has heft and substance, but the real measure of success is abstract: Will the people involved gain the understanding they need? Many of us are writers, but despite our awards and book sales, we know that writing is a difficult and inefficient communication medium. We use it because we have to, but most project teams can and should use more direct communication techniques.

“Tacit knowledge cannot be transferred by getting it out of people’s heads and onto paper,” writes Nancy Dixon in Common Knowledge (Harvard Business School Press, 2000). “Tacit knowledge can be transferred by moving the people who have the knowledge around. The reason is that tacit knowledge is not only the facts but the relationships among the facts—that is, how people might combine certain facts to deal with a specific situation.” So the distinction between agile and document-centric methodologies is not one of extensive documentation versus no documentation; rather a differing concept of the blend of documentation and conversation required to elicit understanding.

This touches on one of my favorite rants, why we do design documentation.  The importance of design documentation shouldn’t be minimized.  I’ve found that many times people don’t really understand a problem until they can explain it in text and diagrams.  But understanding the problem is the goal, not documenting the design.  The format of the design document is not important.  If someone has a well organized notebook and wants to pass around Xerox copies of it, that’s good enough for me.  Once you start coding, the design will evolve and the documents become obsolete.  It’s much like what Eisenhower had to say about battle plans: “In preparing for battle I have always found that plans are useless, but planning is indispensable.”

The attitude of documentation as goal also effects the review process.  Some review processes state that everyone should come to a review with a list of issues and only issues and not solutions may be discussed.  This approach stifles interaction and the creative process of the team.  I have also sat through far too many document reviews that were advertised as design reviews.  In these reviews people point out punctuation errors or variations from the standard document template.  You can spot this kind of review because the document author starts out by saying “Does anyone have comments on page 1?”

I believe that the designer should not go through a document at all in a design review.  Rather, the designer should present the design at the white-board.  This facilitates discussion.  The design does not appear to be cast in concrete as it does with a complete, nicely formatted document.  The reviewers are more likely to offer alternative design ideas or point out problems.  The review’s goal is a better understanding of the problem and a better design.

• • •
 

November 15, 2006

More Resources for Non-Designers

Filed under: Tools, Books — harvey.sugar @ 9:26 pm

I found The The Non-Designer’s Design Book so useful that I’ve just ordered The Non-Designer’s Web Book by the same author. Again, much of what makes well designed web pages applies to user interfaces in general.

Speaking of web page design check out useit.com, Jacob Nielsen’s website on web usability. He has a lot to say about usability and the web and backs up what he has to say with surveys of real users. I’ve learned alot from the articles on useit.com.

• • •
 

November 12, 2006

The Non-Designer’s Design Book

Filed under: Tools, Books — harvey.sugar @ 11:50 pm

I don’t usually review books on my BLOG.  I usually save that for amazon.com so that more people can have the benefit of my learned opinions ;).  In the case of The Non-Designer’s Design Book I’m making an exception because I don’t think many software engineers would seek out a book about layout design for printed matter such as posters or brochures. 

This book is an excellent reference for just presenting information for many kinds of media.  It is centered around four guiding principles; Contrast, Alignment, Repitition, and Proximity.  The book has chapters explaining each of these principles in detail and how they relate to each other.  The book is full of illustrations that make the ideas stick with you.

The author promises that after you read her book you will never look at a printed page the same way again.  I found that I can’t look at data presented on a computer screen the same.  This book is an easy read,  You could read it in a few hours and it will change the way you design user interfaces.

• • •
 

November 10, 2006

The Informal Programmer’s Association

Filed under: News, Geeky Fun — harvey.sugar @ 11:00 pm

Back in the days when the world was new, real computers were still in equipment racks and C was just starting to push Pascal to the sidelines, I belonged to a group that called itself “The Informal Programmer’s Association.”  It was part social group, part technical society and part professional organization.  We use to meet every other week at a member’s place of work that was kind enough to let us use a conference room after hours.  Some of the meetings were formal with presentations by members or invited guests.  Some of the meetings were very informal; basically “bull sessions.”  We even did the book club thing a number of times.  After the meeting we would adjourn to a local tavern and continue our discussions, sort of, over beer and snacks.  Some nights we adjourned quite early.

The goals of the group were to get together and socialize, have some fun, and learn a bit about programming from each other.  We had only two rules: no talking about the business of our employers and no recruiting.

I’d like form a group like this again and I’d like to find out if any of my local (Gaithersburg, MD) readers would be interested in joining.  With the holidays fast approaching I don’t expect to get this going until after New Years.  If you are interested, just email me at harvey.sugar@nerd1951.com, also please feel free to forward this information to anyone else that think you might be interested.  Thanks.

• • •
 

Embedded Systems Conference - Silicon Valley

Filed under: News — harvey.sugar @ 6:31 pm

Embedded Systems Conference Silicon Valley

Well, I’m escaping the lab again and they are going to let me out in public to speak at the Embedded Systems Conference in Silicon Valley in April.  I’ll be presenting the same topic “Efficiently Coding Communications Protocols in C++” but with more slides, more code and concrete examples.

• • •
 

Cannonball Progress: Requirements Management Tool Installed

Filed under: Tools, Cannonball — harvey.sugar @ 12:10 am

I got the Open Source Resource Management Tool up and running tonight.  The OSRMT client is running on my Windows desktop and using a MySQL database server running on my Ubuntu Linux server.  I didn’t want to run MySQL on my desktop because the last time I did this it turned my speedy Windows 2000 system into a Windoze system.

I’m quite pleased with OSRMT and the features it has.  It allows tracing from features to requirements to design to implementation to test cases.  When I have more time I’ll put up a page with some screen shots and walk through requirements tracing as it’s implemented with OSRMT.  Once I figure out the report generator, I’ll put up the requirements documents in HTML and PDF.  Or I may decide to build my own report generator using PHP pages.  Then the requirements would be displayed on web pages built on the fly directly from the requirements database.

• • •
 

November 8, 2006

Cannonball: Behind the scenes progress

Filed under: Cannonball — harvey.sugar @ 10:36 pm

It’s been quiet on the Cannonball front here at nerd1951.com but I have been working on it behind the scenes.  I’ve been struggling with a couple of issues. 

First I’ve been struggling to install OSRMT, the requirements management tool that I want to use.  I’m setting it up so that OSRMT runs on my Windows desktop PC but I want to run the MySQL server on my Ubuntu Linux server.  It’s been a while since I set up a MySQL server for remote access and even though no one can access this server from the outside I set it up to use SSH just on general principles.

The other issue that I’ve been struggling with is an architectural issue.  I want the classes that implement the protocols and layers to be loosely coupled.  This is required to meet my design goal of being able to add new protocols without touching the existing protocol classes.  The problem is that each layer needs to know what protocols exist in the layer below it.  For example, the IP protocol needs to know what link layers are available; i.e. PPP and Ethernet.  I’m toying with the idea of a central registry where a protocol class at one layer could look up what lower layers are available.  Any thoughts on this?

• • •
 
Next Page »