Wednesday, April 25, 2012

User Interfaces for Embedded Systems

I've always been interested in the user's interaction with embedded systems.

My primary embedded design goal is to make the man-machine interaction simple and intuitive. And today, more than ever, technologies are available that enable the creation of rich yet user-friendly experiences.

I recorded this video to introduce some topics I keep in mind when embarking on a new embedded design:

    • Important factors to consider

    • Technology alternatives

    • User involvement

Let me know what you think. Thanks.


Wednesday, April 18, 2012

Risk Management in Software Development


One of the tenets of many mainstream software development processes is proactively managing risk.

Of course this sounds like a good idea, but the question becomes: how do you do it?

I've learned that addressing the riskiest areas in a project first usually creates the biggest returns. This is difficult, however, because most people gravitate to the easy things first.

The problem with going with our natural tendencies is that we can tackle a lot of easy things without actually accomplishing anything of significance. And if the risky thing doesn’t work out as planned we may have to throw away some of the prior work, which is always a major frustration.

I'm curious how my readers manage risk in a software development process. Let me know!




Wednesday, April 11, 2012

GPUs: The Unsung Hero of Embedded Displays

GPUs, also known as Graphics Processing Units, are the unsung hero of smartphones, tablets, and embedded displays.

The incredible throughput rates of GPUs allows for computation that standard multi-core Central Processing Units cannot provide. 

Companies are also beginning to add application processing to the GPU, known as GPGPU (General-Purpose Graphics Processing Unit). This is not a hardware device as such but is software and hardware working in concert on a GPU.

Since GPUs are not oriented to traditional application programming, various software platforms have evolved. OpenCL is supported by an industry consortium, to promote platform independence.

The competing standard is CUDA which was created and is promoted by NVIDA, a leader in the GPU market.  Some say NVIDIA's  GeForce256 was the first GPU. (At least it was marketed that way.)

Anyway, I'm interested to hear what GPUs my readers are currently using, and if they have any comments on their usefulness or shortcomings. Let me know.



Wednesday, April 4, 2012

Software Development Process Implementation: Things to Consider


I just finished this video explaining the most critical aspects of implementing a software development process.

It's an issue that I'm fanatical about, especially because it involves basic software development process strategies that can save companies tons of money and time. (And who doesn't love extra money and time?)

Anyway, the video is 4:23 long, and introduces the below topics.

    • Requirements

    • Design

    • Testing

    • Source Control