Archive for Colin Walls

The Colin Walls Blog

Words on the move

March 11th, 2010, by Colin Walls | Permalink | No Comments

I have written about my interest in language on a previous occasion and commented that I considered myself very lucky to have English as my first language. Although I do not really speak any other language enough to communicate usefully, I find the subject fascinating. Whenever I can, I try to learn 6 basic words [yes, no, hello, goodbye, please, thank you], along with a key phrase or two [like "May I have a beer please"] and the first few numbers. I can do that in a few languages, which is fun.

Lately I have become interested in the relationship between languages and how words move around … (more…)

Tags:

EW 2010

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

Last week I went to Nuremberg [or Nürnberg if you prefer] to attend Embedded World 2010. I have been to this show most years over the last decade or so and it just seems to get bigger and busier each year. This year there were more than 700 exhibitors and in excess of 18,000 visitors. It is now definitely the biggest show/conference for embedded developers anywhere in the world. The electronic displays Conference was co-located; this seems like a reasonable synergy.

I had a number of specific reasons for being at the event, which turned out to be even more interesting than expected … (more…)

Tags: , , , , ,

The AIRpod

March 5th, 2010, by Colin Walls | Permalink | No Comments

I am always interested in new technology, but sometimes I hear about something which particularly catches my imagination and fires my enthusiasm. A recent example is Android, which I wrote about here and here. I have a feeling that the Apple iPad might be special too - watch this space in a few months. But there is a technology, that I find intriguing, which is not really anything to do with electronics, but all about cars and transportation. I am not a big fan of cars and, even though I liked the Morgan factory, just regard them as a way to get about. But, what about a car that runs on fresh air … (more…)

Tags: , , ,

What is “real time”?

March 1st, 2010, by Colin Walls | Permalink | 3 Comments

The term “real time” is widely used nowadays. Although it is a technical term, it finds its way into quite normal conversation. I might be heard to say “I do not watch much real-time TV”, meaning that I record programs to watch at my convenience. So, colloquially, real time means “immediate” or “occurring now”. How does this align with its precise meaning when we refer to a real time operating system, for example? … (more…)

Tags: , , , ,

A taxi in Munich

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

I am very interested in business success stories. In particular, I am fascinated by the contributions that individuals make to the success of a large company. I wrote about that here, for example. I am also very interested in small - even one person - businesses and how they succeed. One of my favourites is a guy called Kurt, who is well known to many of my colleagues and operates a one-man taxi firm in Munich. Having used his services many times over the years, I have given a lot of thought to why I see him as so successful … (more…)

Tags:

Staying in line

February 22nd, 2010, by Colin Walls | Permalink | 3 Comments

The idea of inlining code - placing the actual code of a small function at each call site - is a well known compiler optimization, which I have discussed before. This technique can provide significant performance improvements, due to the elimination of the call/return sequence. Also, stack usage is reduced. There is a possible cost in terms of increased program memory requirement.

It is reasonable to expect a good C or C++ compiler, when told to compile for speed, to perform inlining automatically. Some C compilers have extensions to give more control over this, but C++ has intrinsic support for inlining within the language … (more…)

Tags: , , , ,

The Names Game

February 18th, 2010, by Colin Walls | Permalink | 5 Comments

How do you spend your free time in the evenings and at weekends? Obviously, I would expect as many different answers as there are readers of this blog. But one thing that many people do, at one time or another, is play games. This means different things to different people. For some, gaming is something they do on their computer - either pitting their wits or skills against the computer itself, or playing against other humans out in cyberspace.

For me, I prefer game playing to be a social activity - I like to play with real live human beings who are actually in the room with me. If there are just two of us, I do not mind Chess; Othello is another favorite. For a group of 2, 3 or 4, my firm favorite is Scrabble. We were recently introduced to The Settlers of Catan - a role-playing board game, which I felt was quite compelling. For a larger group - at a party say - games need to be adaptable to the number of people and accept a wide level of capability among players. They also need to be quick and easy to learn. With all that in mind, I would like to tell you about my favorite. I do not know if it has a real name, but I will call it The Name Game … (more…)

Tags:

Android beyond mobile

February 15th, 2010, by Colin Walls | Permalink | 2 Comments

There is a lot of buzz about Android at the moment. Indeed, I have written about it here, as has my colleague Scott. A lot of the discussion is around the topic of the new Android-powered smart phones that seem to appear on a daily basis. Just about every handset manufacturer seems to have jumped on the bandwagon. I have no problem with this. Far from it. I really like my Android phone and would encourage anyone to look at what is available. Although Google seem to be strongly focussed on dominating the mobile handset market, I think that the application of Android in other areas, beyond mobile, is much more interesting … (more…)

Tags: , , , ,

Avatar

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

I am not a film buff. I go to see a movie a few times a year - there is no movie theater [cinema for us Brits] in the town where I live, but I plan to fix that [not planning to build one, just move house, but that's another story]. I have always enjoyed science fiction and the big screen experience often suits the genre. So, when I head about Avatar, I was immediately interested. When I heard it was 3D, I was intrigued, as I had never seen a 3D movie. I enjoyed the experience on two levels: first, the content - the concepts and the story; second the technology of the making of the movie … (more…)

Tags: , ,

Thanks for the memory

February 8th, 2010, by Colin Walls | Permalink | 2 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 … (more…)

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 … (more…)

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++ … (more…)

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 … (more…)

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 … (more…)

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 … (more…)

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 … (more…)

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 … (more…)

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 …

(more…)

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 … (more…)

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 … (more…)

Tags: , , ,

I have over twenty-five years experience in the electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles and two books on embedded software, I am a member of the marketing team of the Mentor Graphics Embedded Systems Division, and am based in the UK. Away from work, I have a wide range of interests including photography and trying to point my two daughters in the right direction in life.