Showing posts from March, 2016

Software component architectures for streaming media

I am working on several papers, and a new training class, explaining software component architectures especially in relation to streaming media and DSP. This is interesting and I am gaining some valuable new insights into these topics. Software component architectures let you build systems by connecting pre-existing components. A software component is a piece of code that is re-usable in many applications: extending the idea of re-usable software functions to cover larger blocks of code but also letting the components be deployed and version-controlled independently of the applications that use them. The aim is re-use instead of re-invention: to make software components that, like hardware components, can be used again and again, interchanged and relied on. This is a difference between components and objects: objects try to correspond to a reasonably clear mental model of the actual objects that make up the system, and so encourage us to design objects that do make sense in this way.

A dose of reality

Sometimes I argue with mathematicians about DSP. My view of DSP is an engineering one: firmly grounded in the idea of an objective reality. Signals, for me, signify something about the ‘real’ world - the results of measurements, or encoded messages that have some ‘real world’ meaning. Wikipedia agrees and in fact goes a bit further in saying: “In the context of signal processing, arbitrary binary data streams are not considered as signals, but only analog and digital signals that are representations of analog physical quantities.” Some mathematicians (and some DSP engineers) argue that the data in DSP is ‘just’ a set of numbers. Those numbers may represent some samples or properties of some thing in the real world, but once represented as a set of data they are ‘just numbers’. There is some truth in this, but I think it is a dangerous over-simplification. Let’s take a simple application to explore the idea. Suppose that I have a signal. We start with a set of samples of this

Zero hours

For the last 30 years I have worked as a consultant, on contracts that are usually loosely defined but that place me as my own employer - self-employed. There is one exception to this, because having been instrumental in establishing an MSc in Embedded Systems at the University of Kingston, London, eight years ago I still teach its module on DSP Processors - which usually involves about eight full days of teaching. I used to be a Guest Lecturer but the university requires that to teach more than 5 days I must be an Hourly Paid Lecturer (HPL). This has two consequences: first that I became an employee of the university - which, in the absence of my having any other employer, thus becomes my 'employer' despite the fact that almost none of my work is for them; second that my rate of pay fell by almost a half. I don't actually mind the fall in pay because I like teaching the students and do it more for that enjoyment than for the money, and because the Guest Lecturer rate was