Nicholas DiToro's Radar Screen

January 23, 2009

Mobility is Embedded

Filed under: Connectivity, Embedded Systems, Mobility, Wireless, Wireline — nicholasditoro @ 5:50 pm

“Mobility” in the context of electronics has been a marketing buzzword for a few years now. Embedded is an electronics category with a history that extends much further into the past. Mobility falls into the embedded category. With mobility, people usually think of cell phones (e.g., mobile phones), associating wireless with mobility. This can be a valid association as well, but not always. Confused yet?

These terms are not well defined. However, I can give you the flavor without too much trouble. Embedded systems generally refer to any device, that has a computer in it, that is not a Desktop Computer (or mini, mainframe, workstation, etc.). In other words, the computer is embedded into the device. Within the embedded genus, we have the mobility species.

Mobility, again in the context of electronics, generally refers to embedded devices used while the user is moving. For instance, an On-Star® system is a mobility device. It is also a wireless connected device, as it offers wireless voice and data communications. The figure below illustrates the continuum of mobile and connected devices. Accounted for in the figure are connectivity sub-categories of wireless and wireline. Also incorporated in the figure is a connectivity “application” idea, as in SMS texting on the PC. See Enterprise Guide to Gaining Buisiness Value from Mobile Technologies p. 12 for a similar kind of diagram, and an interesting and comprehensive treatment of the subject (Wiley; A. Kornak et. al.).

Some opinions vary as to whether mobility is embedded or not; perhaps because embedded does have something of an “Automotive Controls”/Industrial/Military connotation. You could even go as far as to say this blog entry is an opinion piece. I will offer the following touch-points to support my claims: Wind River, Microsoft, Xilinx, and AMD were present at both the Consumer Electronics Show (CES) last week, and Embedded Systems Boston (ESC) in October. (Intel was notably missing from ESC in October, but their website has a strong embedded section.) A total of 128 organizations (including Intel and Microsoft) categorize themselves in the “embedded” category and came up in a “mobility” search query at the CES website. Mobility is Embedded.

“But what about Mobility Laptops?” you ask. This will be a personal topic of discussion at the “Get Mobile 2009″ meeting of the Entrepreneurs Forum of Greater Philadelphia (www.efgp.org) on January 26, 2009. I hope to see you there!

Nicholas DiToro

October 20, 2008

Device Driver Programming is a Tough Job!

Filed under: Developer Tools — Tags: , , — nicholasditoro @ 8:30 am

Creating device drivers is one of the most difficult jobs in software. Device driver code and its close cousin system level code have two faces, one face talking to the hardware, the other talking to the operating system. The hardware facing side is often referred to as “device specific code” and is a major focus for embedded systems companies.

In reviewing Steve McConnell’s recent and very enlightening book Software Estimation: Demystifying the Black Art, I ran across some productivity graphs for this and other kinds of programming. I recompiled data read from the graphs to derive the graph on the right. The vertical axis shows the amount of code for average projects measured, in Kilo Lines of Code (KLOC), and the horizontal axis shows staff months expended on the project. The graph shows data for Driver and System level code (which can include Firmware, BIOS, Kernel, and digital hardware diagnostics code), Scientific and Engineering code (such as weather simulations), Internet code, and Business code.

To illustrate the point with an example, at 20 staff months of effort a team working on a Driver or System level coding project will produce 12,000 lines of code. Compare that to the Business Software team with two and a half times the productivity at 30 KLOC, with the same effort! Having worked with device specific code for a long time, I attribute this productivity shortfall to lack of development tools. This will be a favorite topic of discussion at the SAE Convergence conference in Detroit (Oct 20th to the 23rd) and at the Embedded Systems Conference, Boston (Oct. 27th through the 30th). I hope to see you there!

Nicholas DiToro

October 17, 2008

ISO 9000, Six Sigma, and Software Quality

Filed under: ISO 9000, Six Sigma, Software Design Process, Software Quality — nicholasditoro @ 7:05 pm

A wise man once told me that the amount of red tape you have should fit your organization, your product, and your process. This is the first thought that comes to my mind when I hear the words “ISO 9000″ or “Six Sigma”. My first experience with such “Red Tape” as a software engineer was working on a military embedded system designed to go into harm’s way. Designing safety critical software systems is an especially sobering task when you have your users’ lives at stake and the addition of national security as your responsibility.

A software organization designing safety critical code is often required to be ISO 9000 compliant, and compliance does not come cheap. After reviewing C. Jones’s recent and intriguing book Estimating Software Costs, one of the things that is in the forefront of my mind right now is this statement: “Unfortunately in a software context there is insufficient data available to judge either the defect potentials or the removal efficiency levels of companies … certified under any of the ISO 9000 – 9004 standards.” Mr. Jones goes on to say “When software projects are measured in companies that utilize the Six Sigma approach … the defect potentials are below … U.S. averages.”

I’ll be seeking out some more opinions and data on this subject at the SAE Convergence conference in Detroit (Oct 20th to the 23rd) and at ESC Boston (Oct. 27th through the 30th). I hope to see you there!

Nicholas DiToro

February 15, 2008

Blank Venn Diagram Template for a 4 Way Venn Diagram

Filed under: Graphs — Tags: — nicholasditoro @ 10:41 pm

The way most people draw Venn diagrams allows the display of, at most, three sets and their combinations. Microsoft Word’s Venn diagram tool also has this limitation. If you need to illustrate all of the intersections of four sets, you can download my Microsoft Word template of a Four Set Edwards’ Venn Diagram (EVD) here. A branch of discrete mathematics called combinatorics addresses the problem of the BORG Island example. Discrete math is a favorite subject of computer scientists and computer engineers. You can read more about these kinds of diagrams here:  http://www.combinatorics.org/Surveys/ds5/VennEJC.html

Nicholas DiToro

January 15, 2008

KVM Switch Software (Minus the V)

Filed under: Developer Tools — Tags: — nicholasditoro @ 10:28 pm

Control all of the computers on your desk from one keyboard and mouse, for free.

KVM switches electrically switch the Keyboard, Video monitor, and Mouse that you are using to other computers on your desktop. Synergy (a free download) provides the software version of this function, without the video switching, by utilizing your network connection. The software can help un-clutter your desk, and possibly save you from carpel tunnel syndrome as well. I have found it to work very well on my Linux and Windows XP systems.

Synergy is well documented, and is available for free through Source Forge. It took me about 15 minutes of clear thought to get the software installed and configured. I did have to refer to the documentation to get things running.

Having video switch functionality or even an extended desktop is on the wish list for this software. I did try to hack around this limitation by using Cygwin’s xserver on my Windows machine (i. e., by running the xhost command on Windows/Cygnus, and setting the DISPLAY variable on my Linux box). This did not work for me, possibly because “X” and Synergy are fighting over resources. Despite this, Synergy is handy. I am able to utilize both my machines, for instance, one for Browsing web pages, and the other for coding. Clipboard text can be transferred between machines; a very nice feature.

The Synergy web page can be found here:

http://synergy2.sourceforge.net

Kudos to Chris Schoeneman and the development team for providing this extremely useful software! Keep up the good work!

Theme: Shocking Blue Green. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.