The Colin Walls Blog

Thanks for the memory

February 8th, 2010, by Colin Walls | Permalink | No Comments

The computer world is often accused of being mired in jargon and I think that is a fair criticism. In some ways it gets worse when an everyday word is “hijacked” to have a new meaning. A good example is “program”, which had several meanings before it was applied to software. Interestingly, in the UK we use the US spelling ["program"] to refer to software, but retain the English version ["programme"] for everything else.

Another re-purposed word is “memory”, which is interesting because it has acquired a number of meanings in a computing context. Historically, the term referred to the place that a program and data resided during execution - it still does have this meaning. But it was also used to refer to bulk storage like disk drives. Even today, when someone tells me how much memory their PC has, I have to make sure that they are not telling me about disk storage. For embedded systems, memory has always been a term with a number of meanings … Read the rest of this entry »

Tags: ,

What is my phone for?

February 4th, 2010, by Colin Walls | Permalink | No Comments

I do not like talking on the telephone very much. To me, it feels like a very artificial, inefficient means of communication. Talking face to face is a much richer experience and any inefficiency is offset by the benefits of the non-verbal communication and its subtle nuances. Written communication can be much clearer [even though it often is not] and more efficient. Each of these media has its place and the phone comes in the middle as a compromise.

However, I am very happy to have a mobile phone and use it extensively, but very little of my use is talking, and I wonder how common my experience is nowadays. I have always been a somewhat early adopter of technology - I usually wait for version 1.1, but not hang on for 2.0. My phone usage can be understood by looking at my personal history … Read the rest of this entry »

Tags: ,

Overloading or obfuscation?

February 1st, 2010, by Colin Walls | Permalink | No Comments

What is the key objective when you write some code? The obvious answer is that you want to impart some specific functionality to the device that you are programming. That would be fine, if just designing and writing code was all that a software engineer was required to do. There are several programming languages that would enable code to be written very rapidly. An example, that I have an affection for, is Forth. With this language you can crank code very quickly indeed and it can be quite efficient, particularly on memory footprint. The problem comes when you try to read the code later. I have heard people describe Forth as a “write only programming language” and I can see their point.

This is the crux of the issue. Developers only spend a small proportion of their time writing new code. They expend a good deal more effort maintaining and enhancing existing software. So, the real answer to my initial question should be that you are communicating the design of your algorithms and procedures to the poor guy who will maintain the code at some future point [which may, of course, be you!].

So, writing clear, well commented code is vital. This rather puts the nail in the coffin for Forth, but opens up some possibilities in languages like C and, more so, C++ … Read the rest of this entry »

Tags: , , , , ,

Indefinite

January 28th, 2010, by Colin Walls | Permalink | No Comments

I have a boundless interest in language and communication and have written on the topic before [here and here, for example]. I always feel lucky and privileged to have English as my native tongue, as the language has such enormous flexibility. Apart from having such wide usage, there are always lots of ways to say things and more vocabulary available than with any other language.

But there is one thing lacking - a facility which I feel we should nurture and revive: indefinite pronouns … Read the rest of this entry »

Tags:

Product quality: belief or proof?

January 25th, 2010, by Colin Walls | Permalink | No Comments

There are two aspects of any product that give me great pleasure: good design and quality of manufacture. This applies to just about anything: a pair of shoes, a car, a house , a piece of software … Assessing both these parameters can be hard. A pair of shoes must look good, be comfortable to wear and last well; this takes time to evaluate. A car needs to be enjoyable to ride in, drive well and offer long term reliability and economy; again, not something to be measured quickly. A house can be even more difficult, as you need to live in it through a full year of seasons at least and, even then, you may still be evolving the way that you use the space, which will establish how good the original design was.

In many ways, software can be the most difficult product of all to assess, as programs represent the most complex “machines” mankind has ever produced … Read the rest of this entry »

Tags: , , , , , ,

Vacation for the PC repair man

January 21st, 2010, by Colin Walls | Permalink | 1 Comment

I have used PCs for many years. The first one, way back in 1986 was a “genuine” IBM PC XT [10M hard drive and 640K memory - it did the job]. Since then, I have used and owned machines from a number of manufacturers, but there is one that has become my firm favorite. It is also the preferred supplier to Mentor Graphics. I am not going to name them here [they are rich enough to pay for their advertising] - all I will say is that they were the first large PC vendor who built their business on direct sales to end users.

I have written on previous occasions [here for example] about being impressed by exemplary customer service. A while ago I heard a story that gave me a clue as to why this PC vendor is so successful … Read the rest of this entry »

Tags:

Agile revisited

January 18th, 2010, by Colin Walls | Permalink | No Comments

I am always delighted when I get responses or feedback resulting from postings here. About a month ago, I wrote about the use of Agile for embedded development, which provoked some interesting correspondence.

Neil Johnson [from XtremeEDA] commented that, because an embedded system is, by definition, a combination of hardware and software, that requires a cross-functional development team, Agile techniques can apply just as well to IC development. I was thinking about times past, when I had often been given part-working prototype hardware, where the design was in flux. This would have lent itself to being guided by Agile. Neil’s focus is more system-on-chip [SoC] design, where simulation is used extensively through the development cycle. He drew my attention to an interesting website: www.agilesoc.com

Mike Jones has extensive experience of using Agile for embedded software. He has generously allowed me to reproduce his writing here … Read the rest of this entry »

Tags: , ,

Time’s arrow

January 14th, 2010, by Colin Walls | Permalink | 2 Comments

I have always enjoyed science fiction on TV, movies and books. One facet of the genre that I find particularly intriguing is time travel. I am thinking of shows like Dr Who, Star Trek, Time Tunnel and Quantum Leap. I also recently read [and very much enjoyed] The Time Traveler’s Wife. In all these cases, we are asked to accept the possibility that travel, both forwards and backwards in time, is a possibility. Interestingly, in all these cases, time travel does seem a bit haphazard, with some challenges about hitting a specific date. But they all manage to make the journey.

For the most part, when reading any kind of fiction, I expect a lot from the author. I want to be entertained, but I also want to learn something. So, I anticipate a high level of integrity and knowledge to be displayed. If I find numerous technical flaws or “continuity” errors, I get frustrated [and do not get me started on "The Da Vinci Code"!]. With older science fiction, I have to suspend belief, as science may have overturned the knowledge and assumptions of the time; this is hard, but worth it for a good story. Somehow, I am always happy to accept the idea of time travel, even though it is counter-intuitive and at variance with a lot of scientific research … Read the rest of this entry »

Tags:

Small or fast?

January 11th, 2010, by Colin Walls | Permalink | 1 Comment

Life is often about compromise, but embedded developers really are not good at that. Code generation is a context in which compromise is somewhat inevitable and we call it “optimization”. All modern compilers perform optimization, of course. Some do a better job than others. A lot of the time, the compiler simply guesses which optimization will produce the best result without knowing what the designer really wants. For desktop applications, this is OK. Speed is the only important criterion, as memory is effectively free. But embedded is different …

Read the rest of this entry »

Tags: , , , ,

aMAZEd

January 7th, 2010, by Colin Walls | Permalink | No Comments

In the UK, the Christmas and New Year holiday is quite a long stretch. We have 3 public holidays [4 in Scotland, I believe] - 25/26 Dec and 1 Jan. Many people take 3 days annual leave between to make a long break. This year, the calendar permitted the bridging of 2 weekends, so we could easily have a 10 day break.

Personally, I am not a big fan of Christmas, as it seems to have become a time of excess: too much food, too much drink and, for many, too much debt. However, I do rather like the concept of New Year being a new start - a clean sheet to write on and other such clichés. Once this is over, there is often a feeling of anticlimax, but I have the benefit that Libby, my Other Half, has her birthday on 2 Jan. This year we celebrated in an interesting way … Read the rest of this entry »

Tags:

C, C++ and the family tree

January 4th, 2010, by Colin Walls | Permalink | 4 Comments

I am interested in programming languages in general and particularly as they apply to embedded systems programming. I have written about this topic before, but I wanted to revisit it and consider the issues from another angle. The most popular programming language for embedded continues to be C. Clearly it offers the capabilities and facilities that most developers need today, but what comes next? I think we can get some ideas by looking at the genealogy of C - where it comes from and how it relates to other languages … Read the rest of this entry »

Tags: , , ,

A Google mobile lab, anyone?

December 31st, 2009, by Colin Walls | Permalink | 1 Comment

As I am off for the Christmas and New Year holiday, I decided to ask Scott Salzwedel, who did a fine stand in for me some weeks ago, to write another post. He has returned to a topic he clearly finds fascinating. -Colin

As if Motorola’s launch of the Droid isn’t enough, now there’s word of Google launching its own Android phone, the “Nexus One.” Alas, the Google phone is here. But is it really a phone? More on that later.

Getting to this point seems rather circuitous for Google. After all, for the past two years the Android platform was based on a partner-oriented model where the likes of a Motorola or HTC built the device and carriers provided the service. Now, just like Apple (and Palm), Google wants to control the hardware, software, and even distribution… Read the rest of this entry »

Tags: , ,

Crystal ball

December 23rd, 2009, by Colin Walls | Permalink | 1 Comment

Writing my last blog of 2009, I am in reflective mood. I read about some recent research that showed that time really does seem to go faster when you are enjoying yourself and, to me, it does seem like only yesterday that we were heralding the new century/millennium. Now, as we approach the end of its first decade [which is actually next year, but I am going to adopt the common misperception for the moment], it is interesting to think about what is characteristic of 21st Century life… Read the rest of this entry »

Tags:

Stand-by or boot-up

December 21st, 2009, by Colin Walls | Permalink | 2 Comments

Like most people nowadays, I have a selection of electronic devices that have become part of the fabric of my life. I have certain expectations: I want a device to do what it is supposed to do. I want it to be easy to use. I am after reliability. I want it to consume the minimum amount of power - either to conserve battery life or to simply be environmentally friendly. Lastly, I want the device to be available and ready to use when I want it.

As such devices are generally embedded systems, my requirements are generally met [or not!] by the software. It is the last of my criteria, and the influence that software might have on it, that I find particularly interesting… Read the rest of this entry »

Tags: , ,

There, their

December 17th, 2009, by Colin Walls | Permalink | 7 Comments

For me, language is interesting. It is all about communication and that is what I enjoy doing and it is the cornerstone of what I do professionally. As I have discussed on a previous occasion, I do not really speak any foreign languages [but I have signed up for Italian classes in 2010!], so my focus is on using English as well as possible. It may be assumed that I mean that I should use English correctly, but, in reality, my priority is to use it as an effective communication tool, which is not necessarily the same thing… Read the rest of this entry »

Tags:

Agile embedded

December 14th, 2009, by Colin Walls | Permalink | 1 Comment

The Agile methodology has been talked about for some years. To be frank, I have given the matter very little attention - I just had a basic idea of what it was all about. I suppose I had a feeling that the approach was rather chaotic and disorganized, which is at odds with my view of what programming should be like. However, I attended a talk at a conference recently which changed my mind. The presenter was, in essence, trying to sell some project management tools that support the Agile methodology. But he also described the philosophy in terms that I could appreciate. I realized that what was being proposed was very similar to the approach that I have espoused for many years … Read the rest of this entry »

Tags: , ,

Innovation as an Asset

December 10th, 2009, by Colin Walls | Permalink | No Comments

I do not really understand the stock market. I do not own any shares. Well at least not directly - I have pension funds, but they seem rather remote. I have some friends who own ARM shares. They are not technical, so they asked me what ARM did and I said that they made chips like those used in mobile phones [I know that is not strictly true]. They could not understand how a billion handsets a year get produced and yet ARM’s shares remain in the doldrums. And frankly, neither can I.

A few years ago, however, I did gain some insight into how companies are run and this gave me a few ideas … Read the rest of this entry »

Tags:

IP/ESC’09

December 7th, 2009, by Colin Walls | Permalink | No Comments

Last week I attended a conference in Grenoble, France. For some years there has been an annual event focussed on intellectual property [IP] and the broad area hardware design reusability. This year it was extended to encompass embedded systems as well - the last of the three days was largely dedicated to this topic. I submitted some proposals for papers and two were accepted. Hence my attendance. A colleague of mine was also due to attend in order to present a keynote and another technical paper. However, he was required to travel to the US last week, so I took his place. I figured that I would have a busy day on Thursday. The event was interesting and made me think about what conferences are all about and what people expect from them … Read the rest of this entry »

Tags: , , , ,

Keeping the lights on

December 4th, 2009, by Colin Walls | Permalink | 1 Comment

I am interested in environmental matters and I am keen to adopt practices, products and technologies that make me more “green”. So I try to recycle more, drive less and save energy when I can. Much of this is voluntary, but some is becoming compulsory. Recently, a European directive resulted in the phasing out of standard 100w tungsten [incandescent] bulbs. Now we have to use these infernal low energy bulbs and I do not like them at all … Read the rest of this entry »

Tags:

Blocking and non-blocking APIs

November 30th, 2009, by Colin Walls | Permalink | No Comments

I recently received an email from a regular reader of this blog. I am always very happy to receive feedback, comments and suggestions. In this case, it was a suggestion for a topic to address, which was particularly welcome. The writer wanted me to talk about blocking and non-blocking APIs … Read the rest of this entry »

Tags: , , ,

This blog is a discussion of embedded software matters - news, comment, technical issues and ideas, along with other passing thoughts about anything that happens to be on my mind.