The Colin Walls Blog

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.

24 July, 2014

Some time ago, I wrote about my view on the future of music. In a nutshell, I was saying that live performance was what it was all about. Time has moved on and I have further thoughts on the topic. Also, over that time, e-books have become quite mainstream and I question where that technology is taking us.

It seems that David Bowie has been having the same kind of thoughts … Read the rest of this entry »

,

21 July, 2014

Multicore continues to be a hot topic, as an ever-increasing number of embedded systems are designed with multiple CPUs – most commonly multiple cores on a chip. One of the challenges with understanding multicore is that the term actually covers a number of architectures and approaches to design. This is a topic that I have discussed somewhat before, but the increasing popularity of multicore and additional technology options make it a topic worth revisiting.

Figuring out the terminology is the first challenge … Read the rest of this entry »

, , , , , , , , , ,

16 July, 2014

Words matter to all of us, as it is arguably our ability to communicate that enabled the human race to progress as far as we have. I am very much a words person. Even though I do photography, spoken/written communication is very important in my life, particularly professionally. One of my treasured possessions is a 2-volume Shorter Oxford English Dictionary, which I received as a gift nearly 30 years ago. I like word games. Scrabble is the benchmark; Bananagrams is a new favorite.

Although I work with words all day every day, there is still the potential for confusion, annoyance and surprise … Read the rest of this entry »


14 July, 2014

As I have talked about before, I am particularly interested in programming languages, with a strong focus on embedded, of course. So, I always take a look when I see a survey that looks at what developers are using and what the trends are. When I saw that the IEEE were publishing some results, they really had my attention.

However, all was not what it seems … Read the rest of this entry »

, , ,

10 July, 2014

_DSC0022I recall reading somewhere [please do not ask me where!] that, every day, more photographs are taken than were shot on the previous day. And this has been true since the dawn of photography as a popular activity, when Kodak’s slogan was “You Press the Button, We Do the rest” in 1888. With cameras getting cheaper and phones and tablets with camera facilities becoming ubiquitous, I guess this trend is set to continue. This begs a question: what do you do with all those images? In the past, it was common to make photo albums, which often became much valued keepsakes. Indeed, I recently wrote about the return of a lost family photo album.

With digital photography, there are numerous other possibilities … Read the rest of this entry »


7 July, 2014

I have made a number of recent postings focused on C++ issues, responding to a number of questions. I have a few more planned, but I was intending to give this topic a rest for a while. However, my eye was caught by one question, which I felt had some potential:

I learned that Objective C objects are not complete copies of the class object. In other words, only the data and certain static structures are independent for each instance of a class. The methods are kept in a central location for all objects to use. Is there any C++ implementation for embedded systems that use this feature?

This sounds simple, but this question raises quite a few issues … Read the rest of this entry »

, ,

3 July, 2014

I recently had a spiritual experience. My daughter and I went to a Place of Worship one Sunday. We were welcomed by a young follower of The Faith – I would call him a disciple. He told us about his beliefs, listened to our doubts and answered our questions. We stood at the shrine while he explained how much better life would be if we followed The Faith. We were under no pressure or obligation to part with money, but, prior to our departure, I made a substantial payment.

We headed off to meet my wife for lunch, my daughter swinging a carrier bag containing her new MacBook … Read the rest of this entry »


19 June, 2014

At some time or another, just about everyone has their IQ measured. Such a test might be an explicit IQ measurement, where you get a score afterwards – 100 is the mean result. This may be for fun or perhaps for consideration for membership of MENSA [as I dabbled with many years ago]. Often such tests are used as part of a broader assessment or have a specific application.

An example is computer programming aptitude … Read the rest of this entry »

,

16 June, 2014

Following on from my recent online C++ lecture series, I found that I had a lot of interesting questions from the audience, which I had limited time to answer. It seemed logical to do so here. So this is the first of a number of posts where I will address one or more of these questions. If you have any questions about embedded software [not just C++], please email me and I will do my best to answer them.

For today, there are just 3 C++ related queries … Read the rest of this entry »

, ,

12 June, 2014

For me, seeing live music is a passion. I take as many opportunities as I can to attend performances of all kinds of music. I have a very broad taste. I am a frequent visitor to our local jazz club. I like to go to festivals. Last week we went to see a brilliant classical guitarist.

Yesterday evening it was the turn of progressive rock – a friend and I went to see AsiaRead the rest of this entry »


9 June, 2014

A frequent question which I am asked in person or by other means is “Where can I learn about embedded software?” Although this can come from young people looking for a career [in which case their choice of college course is probably the way forward], most such inquiries come from “normal” software engineers [i.e. folks who a used to programming desktop computers etc.] or hardware developers.

There are lots of possible answers to the question – beyond “it depends” … Read the rest of this entry »

, , , , ,

5 June, 2014

Even though I am a guy, I do have feelings. Two things, in particular, can stir emotions for me: if someone, about whom I care, experiences loss or disappointment, I feel strong empathy along with a desire to fix the problem; when I witness, or even just hear about, selfless acts of kindness, I can be intensely moved.

Just recently, I experienced both of these situations … Read the rest of this entry »


2 June, 2014

Maybe I should apologize for going on about C++ yet again, but, following on from the recent online lecture series that I conducted, I learned that there is a lot of interest in the topic. I also found the experience a very fruitful source of ideas, inspiration and queries – much of this will appear here.

During the lectures, I would periodically pose a question, which the attendees could answer via the chat. An interesting one was: how does a struct differ from a class in C++? … Read the rest of this entry »

, ,

27 May, 2014

Last week I conducted a series of 5 online lectures about C++ for embedded applications. [You can still access the materials and recordings from this site.] As with any such activity, although I hope that I am imparting information and advice, I also expect to get questions and ideas back. I was not disappointed. There were many smart questions that made me think [= good!]. There were no dumb questions that I know of, as the only dumb question is the one that you fail to ask.

It got particularly interesting when C++ constructors and destructors get mixed up with pointers … Read the rest of this entry »

, ,

22 May, 2014

A common phrase, which I seem to hear with increasing frequency is: “That is a 1st World problem.” Such a challenge is normally something to do with modern technology – perhaps a smart phone not synchronizing with the cloud properly. Ultimately, a 1st World problem is a matter which seems annoying, but is actually trivial in the global scheme of things. Most of all, such problems seem totally unimportant when compared with 3rd World issues – like lack of food/water, mass genocide, stuff like that.

This week I encountered a couple of examples of new technology – one aimed at the 1st World and the other clearly intended for the 3rd World … Read the rest of this entry »


19 May, 2014

As I continue with my current pre-occupation with C++, I decided to discuss some aspects of the language with my colleague Jonathan Roelofs, who is a development tools specialist. Like me, Jonathan is particularly interested in the tools issues that concern embedded developers.

As it seems to have wide interest, I decided to explore exception handling … Read the rest of this entry »

, ,

16 May, 2014

Internet shopping is, IMHO, a Good Thing. It may be argued that its success has been to the detriment of bricks and mortar shops. Be that as it may, but the efficiency of selling over the Web is amazing – a small business in an out of the way location can now regard its available marketplace as being Planet Earth. The business model is also ecologically attractive.

As a consumer, my interest is in securing a good price, but I also value good customer serviceRead the rest of this entry »


15 May, 2014

As my interest in C++ continues, I have been soliciting questions about C++ for embedded on various social media platforms. I you have a question, please email or tweet and I will do my best to answer it.

Here is a question that came in yesterday:

How testable is C++, specifically for constructs like abstract classes, templates, exceptions?

This is quite a complex question to address, partly because it can be hard to separate “testing” from “debugging”. Taking these example constructs, classes and templates may largely be tested by means of instantiations. For a temple, for example, you need to write a test harness that instantiates the template using a variety of likely data types and verify that the resulting code is valid. Exception handling is a different issue. There are a finite number of exception types to test, so the test harness just needs to include code that throws each one. Then it is a question of ensuring that the right catch block is invoked for each exception [and that the code therein does what is required].

Maybe the questioner has a broader concern, in which case they are invited come back with clarification.


12 May, 2014

As I mentioned last week, I am very much in “C++ mode” just now, mainly because I am preparing for some online classes. As a result of various social media contacts, I am getting some interesting impressions of how C++ is viewed among embedded developers. There is certainly much controversy. Some developers love it, but many are very critical.

Various aspects of the language concern engineers, and a particular one is exception handling … Read the rest of this entry »

, , ,

8 May, 2014

My blog posts seem to average out to around 500 words. I do not have a quota or a target – they just work out that way. Today, by that measure, is going to be good value. They say that a picture is worth 1000 words and today I have a bunch of pictures.

My main hobby, as I have mentioned before, is photography, which I have been doing all of my adult life. My wife is relieved, as I just bought a new camera … Read the rest of this entry »

,

6 May, 2014

C++ has been on my mind lately. There are many reasons why embedded developers are wary – possibly even afraid – of C++. These include code bloat, execution performance and unreliability resulting from dynamic memory allocation. They are all issues with which engineers should concern themselves, however, none of them are intrinsic problems with the C++ language, as they can all be controlled and contained.

The last on this list of concerns – dynamic memory allocation – I find particularly interesting … Read the rest of this entry »

, ,

1 May, 2014

Advances in science and technology are mostly a Good Thing. More people live longer, healthier lives in greater comfort and with more leisure time that ever before in history. Personally, I am very interested in all things scientific and welcome new technology when I see the benefits that it brings. However, there are times when a “perfect storm” seems to brew. If bad science and vested [large financial] interests get mixed up with a little politics, a good outcome is unlikely.

As I see it, genetic modification is an opportunity for it all to end very badly … Read the rest of this entry »


28 April, 2014

A frequent topic for discussion, I have found, both here and elsewhere, is programming languages for embedded development. Every developer has their favorite and has clear ideas on what is going to happen in the future. Market research also indicates certain trends, but, curiously, many of those trends have fallen victim to the innate conservatism of embedded developers. There is a strong “if it ain’t broke, don’t fix it” culture and I am not about to try to change that.

Currently, C is the dominant programming language for embedded. Market research has frequently told us that C++ usage will steadily increase and overtake C sometime soon. I have seen such surveys for about 20 years now and it does not seem to be happening … Read the rest of this entry »

, ,

Meet Colin Walls

I have over twenty-five years experience in the electronics industry, largely dedicated to embedded software. When not working, I enjoy photography, books and music. Learn more about me, including my go-to karaoke song and the best parts of being British.

Follow Colin Walls

Latest News from Colin

  • Loading tweets...

Colin’s Upcoming Appearances

  • Embedded World
    February 25-27: Designing for Ultra-Low Energy, Multicore Processors I
  • EE Live!
    April 1-2: Self-testing in Embedded Systems, USB 3.0