I ♥ my Blackberry. I like its little keyboard. I like the way all the messaging and contacts just fits together.
But you've broken it! In a really annoying way.
Or to put it another way - I stuck with Blackberry because I like their product - their product includes email!
So... I think you need to be careful. When I started with my crackberry there wasn't much competition. Now we have Android phones (some with keyboards), iPhone, WP7 phones and a lot more besides.
From now on you'll have to persuade me to stay. My dis is a bit gruntled.
Sorry
Wednesday, 12 October 2011
Monday, 10 October 2011
The Internet...
It's hard to tell if people out there are... A - stupid, B - ignorant, C - Cognitively Dissonant, D - Insane, E - Trolls or F - Cunts.
SNR... less than a fraction of decibel...
SNR... less than a fraction of decibel...
Wednesday, 5 October 2011
Good Night Mr Jobs.
Best damn computer I've ever bought.
I know I paid extra for it... but I'm still glad! 3 years and I've never had a system crash. Once the mail app got stuck - it was such a rare event it's still stuck in my mind.
Without Apple, The Steves and all the great engineers they got to build something different the world of computers would be a lot duller, less colourful and generally a bit more... hmmm... Microsoft!
I know I paid extra for it... but I'm still glad! 3 years and I've never had a system crash. Once the mail app got stuck - it was such a rare event it's still stuck in my mind.
Without Apple, The Steves and all the great engineers they got to build something different the world of computers would be a lot duller, less colourful and generally a bit more... hmmm... Microsoft!
Tuesday, 19 April 2011
C as a Systems Language
The "Systems Language" definition is a bit fuzzy. I'd say it has to have address manipulation, type coercion (not conversion but all that evil stuff with unions and the like). It should also support plenty of bit meddling operations and structures.
To this end C has served well.
What has not served well has been the standard libraries and it's evolution.
Huge amounts of the specification can no longer change due to backwards compatibility. For example, we really don't need both typedefs and structs. We really could use polymorphism and even templates (without classes). We could build an object system (ala QObject or Objective C) if we had a slightly better macro system. The typedef synonym system really doesn't work well with automatic type conversion (which should be banned!). The string format is a bit... hmmm... It WOULD be FAR more efficient to store length (I really can't over-emphasize that!)
We could... but it works.
Maybe there's a need for a "new" C... but maybe what we've got is just damn good enough.
I say this as I just been rolling a new first fit and buddy memory allocator - it would be nice to have ref counted objects but, you know what, we can still work without them.
Monday, 18 April 2011
Flow... Explicit vs Implicit
Our computer programs are generally written with the idea that data processing runs from the top of the app the the bottom and may loop round again. Whole programs are written by putting lots and lots of these pieces together.
EDGE programs may be written the same way and re-interpreted to make a graph like system or vice versa - in fact we can translate between representations (compilation and optimisation patterns often use SSA - Single Strategic Assignment - which is a lot like a simple graph).
My code will look a lot more like EDGE than, say, C. This seems a good way to represent a program pre-compilation and for use in a graphical environment.
Friday, 15 April 2011
No Update Today?
Yup, just a little one.
I'm gonna use Qt for GUI work - yup, I also understand that most of this stuff isn't GUI at all but I'll probably steal their colour coded editor or just plane old QTextEdit, wrap some open/close stuff around it and call it a UI.
There are advantages to working this way - think multiple tabs and/or multiple windows - one shows you your central scripting whilst the others change as fast as possible to show how your models are turned into code, interpreted, graph outputs etc. Very nice.
One disadvantage is that an installer gets "big" once you've added all of Qt's libraries. Linux with it's dependency system doesn't worry too much. Windows - well you have to ship 'em and same with Mac.
I work almost exclusively with Linux (Ubuntu & Android to be precise - although Angstrom is on my list soon too). I do have a Mac (used to be for iPod/iPhone dev - but I simply don't have time to do that anymore). Windows - I don't even have a machine.
Qt also added QAudioInput and QAudioOutput recently - I'm not sure what the backing code is but I don't really mind. I used to use PortAudio but doubt I will anymore.
Right, next time a lot more on machines then samples and graphing.
Thursday, 14 April 2011
Going Native
Machines
We defined a machine as a functional unit - give some input data it will produce some outputs.
To map to native code inputs will be mapped as a pointer (that points to a machines output - note, it _could_ be itself).
To map to native code outputs will be represented as physical storage.
Every input and output can be named (and maybe typed one day).
Somewhat stolen from Forth is the idea that a machine can be compiled - once compiled a lot of dead code can be eliminated BUT (and it's a big but) what's within the machine can no longer change - the data flowing through it can change (necessarily) but we can't add or remove components nor can it's output to input connections be changed.
You don't have to do this though. If you continue to interpret your machine all edits are still possible - it will just run a bit slower (probably about 10 times slower!)
Subscribe to:
Posts (Atom)