Saturday, April 28, 2012

Violent action is needed.

This troubling article is an example of how one small part of the world can present vast danger to the rest of us.

It has been long known that ecosystems without predators quickly collapse because the top predators keep the lower order ones at bay. In the case of marine habitats, the next most important predator on the list after the shark is the Humboldt Squid and, if you thought Jaws was scary, you ain't seen nothing next to a pack of hunting squid.

Fishing boats that participate in destructive and illegal fishing for sharks and whales should be summarily sunk. A fifteen minute warning to get crew into lifeboats and a torpedo to destroy the fishing boat would do a great deal to protecting us all from the horror of a squid attack in quiet inshore waters.

Already in the Gulf of Mexico, squid numbers have become so great that fishermen in small boats are in fear of their lives after several boats were attacked and the crews literally eaten alive.

If the international community are unable to persuade other countries to prohibit destructive fishing which affects all the worlds oceans then unilateral force should be used to protect the more progressive countries rights to a viable oceanic ecosystem.

The same principles should apply to poaching of Elephant and Rhino for so-called Chinese medicines. Poachers should be summarily executed.

Its about time that the rest of the world put a forceful end to this destruction for superstitious medicine and so-called "cultural" precedents. We don't have time to continue to be nice and discuss it in a civilised way.

Friday, April 27, 2012

Sinclair, a mixed legacy.

April 27th was the thirtieth anniversary of the Sinclair Spectrum computer. This machine launched so many careers, including my own, when it became the platform upon which the UK games industry was founded in the mid 1980s. My own commercial programming work was preceeded by years of owning the ZX81 and early 16K Spectrum before I created my first commercial success, the AMX Mouse for the Spectrum in 1985. All the code for that system was written by hand in machine code stored on casette tapes that I religiously saved three times on different casettes with a NEW casette set every week for the whole development cycle. Cutting one's teeth on such a low powered machine gives a great appreciation of how to use limited resources to the fullest.

For later projects, and with the spoils of the sale of my mouse, I bought a PC, equipped it with CP/M and cross assembled Z80 code for the Spectrum, ransferring it via the RS232 port on the Interface-One. Ah heady days.

Now the Raspberry Pi is available, designed in part by an ex Spectrum programmer so good legacy there. I was also amazed to find that Linus Torvalds states that his original inspiration to write his own operating system comes from having made the mistake of buying a Sinclair QL which was so rubbish that he had to code just to be able to use it. Just imagine what may have happened if the Sinclair QL had been reliable! Linus Torvalds may still be just another Finnish dude and instead of Apple being the greatest company on earth, Sinclair might have been at the top.

Sunday, April 15, 2012

Visual Studio 2011 beta

If you're lucky enough to be able to get hold of a copy, the Visual Studio 2011 beta is available now.

Filled with great new features including a lot of stuff aimed at building metro style applications, Visual Studio 2011 carries on a long tradition of programming IDE excellence.

Metro style applications, originally only available as a scripting solution is now a full fledged C# or Visual Basic programming target so your applications can indeed contain all that you might expect from compiled managed code.

A simulator will be included for testing of Metro apps that are targeting phones or tablets as well as touch screen PC's, great if your development kit doesn't actually include a touch screen (I must fix that!)

You can do remote debugging. This is so useful if you need to debug the exact experience as it appears on the target device. I've used a version of this on my Gadgeteer but I'm looking forward to debugging live on my phone.

Microsoft are also really pushing the store. Create and manage your Windows store developer account and publish applications to the store. Windows Phone is sadly lagging behind iPhone and Android in terms of application availability so Microsoft obviously have a strong desire to make this process as easy as possible, unlike Apple who seem to want to get in the way of the process as much as possible.

Visual Studio 2011 also places great emphasis on code quality. This is an area which has almost never been used in the past except where consultants like me get called in to find out why a long running project is dying. With Visual Studio 2011 you get those tools built in and integrated into your build process from day 1.

I'm greatly looking forward to the final release. Lets get this beta over with Microsoft!!

Saturday, April 14, 2012

Mmmmmm PIE!


Twenty three pounds sterling, that’s about twenty eight Euros or about thirty five Dollars, gets you a Raspberry Pi computer. In the 1980's when the price of an eight bit microprocessor had dropped to a level low enough to allow their inclusion in commercially available systems, machines like the Commodore 64, Sinclair or Timex Spectrum and many others blazed the trail into the eager palms of kids whose parents were told earnestly that "I can do my homework on it" but in reality they were used to run games until the early hours of the morning.


These machines all came with some version of BASIC which it's true to say, was used to gain an appreciation of programming and indeed, many kids laboriously copied games from magazine listings, thereby gaining some small appreciation of programming.

Then came the era of the poke; A "poke" was a way to change the code of a game such that it operated differently, giving you extra lives or super powers. Pokes were sometimes aimed at data, changing game parameters but the more sophisticated ones involved programming a sort of "cardiac bypass" into a game to re-purpose the original code. These were effectively sophisticated attacks on the code and were often used to overcome copy protection such as the famous LensLok which was a fiendish optical image obfuscator that decoded dots on screen into a readable code that you had to type in. If you didn't have the LensLok device, the program wouldn't run. To circumvent that one had to remove the whole LensLok code and replace it with something that looked as though it was working correctly. No small task.

The ethos of the time was to find out as much as possible about the machine itself. Books with complete ROM diasassemblies, books with pokes for every game written and a healthy magazine offering blurred the line between programmers and gamers because if you were the latter you sooner or later needed the skills of the former,

I followed a similar route into programming, starting with BASIC on a machine with a 1K memory The ZX81. Because of memory restrictions I discovered assembly language programming. It truly is amazing what you can squeeze into 897 bytes of free memory if you get right down to the level of the microprocessor. Necessity really was the mother of invention then.

Slowly however, as computers became “user friendly” many of the kids who had cut their teeth battling with these small systems grew up to become engineers and programmers, myself among them. The computers became appliances that worked when they were turned on, the user became a consumer of software that was created by huge corporations in black-art cube-farms and the knowledge of bare-knuckle programming fell into myth and legend.

As an employer of programmers and having been responsible for many an interview, I have noted that the available pool of really good programmers, the ones with a natural and intuitive understanding of the art of programming are more difficult to find as time goes on. The courses of computer science change little and for me, a computer science degree these days tells me that the recipient qualifies for little more than total re-education in an environment that they’ve never seen, notably, the real world of programming. A personal habit is to ask the normal interview questions and then, at the end of the interview, ask, “So, what projects do you have going at home right now?” If the response is “I grow interesting vegetables! Would you like to see some pictures?” or “I make replica Faberge Eggs!” then it’s extremely unlikely I’ll hire them. If on the other hand, even if the interview went abysmally, they tell me “I’m currently rebuilding my 32 Playstation compute cluster because I want to be able to run epigenomic predictions for my greenhouse plants in which I grow tomatoes that are entirely tended by a robot hydroponics system and pruned by lasers which bye the way also kill all the pests by shooting them out of the sky MWWHAHAHAHA!!!” then I usually can’t get a contract in front of them fast enough. Those really are interesting vegetables!

So, Raspberry Pi was created by, amongst others, the same chap who used the aforementioned fiendish LensLock on his wonderful game Elite to encourage kids to mess with the internals of their computer again in a way that impassions them and encourages this generation to leave the readymade toys in the bedroom and go out and build some stuff on their own. If we carry on without that, we’ll have absolutely no-one but the computer science graduates to rely on.

Friday, April 13, 2012

Apple Trojan Complacency

For so long Apple have crowed that their systems are not susceptible to viruses but this is clearly not the case. It has just been that until now, their hardware was too low on the radar of the cyber criminal to draw attention.
Now I see an even greater risk. The Apple community are and always have been users of a system that proports to be easy, simple and safe. They are unused to being presented with clever malware that looks like genuine high quality trustworthy product. From here on in, the Apple user will be even more vulnerable to attack because of built-in complacency.

Thursday, April 12, 2012

SPOT

Smart Personal Objects Technology much hyped a few years back (Wow! almost a decade!) with its inclusion in smart watches etc has clung on to existence in the .Net Micro Framework and is once again coming into prominence with the rising interest in do-it-yourself hardware.

SPOT contains a number of useful APIs aimed at standardising applications, events, timers, images, fonts and a host of other things.

Extensions to SPOT now available in the just released .Net Micro Framework version 4.2 provide layers for hardware devices and give access to facilities such as communications systems like USB and other serial standards. It provides simple access to file systems on SD cards or USB flash drives and enables the use of small displays and touch screens to name but a small part of what it is capable of.

Like so many good ideas, SPOT was in advance of the capabilities of the hardware of the time, giving a sort of utopian view that couldn't be realised and which was, sadly, vilified by the press and to some extent, the community itself. Now however, with the arrival of open-source hardware like Arduino and Gadgeteer, SPOT is becoming a front line choice for hobbyists and professionals alike.

If you're even remotely interested in the maker ethos or have a hankering to create a smart doorbell or a super-smart "talkie toaster" then SPOT will make that task easier.

Wednesday, April 11, 2012

Visual Studio Stopped Working

This really is getting tiresome. VS 2010 dies lots when doing solution wide search and replace.

Where's the solution then?

First experience Macbook Air as a Windows Development device

I had a little Phillips laptop for several years. It was light and had reasonable battery life. It had a dual core with four gigabytes of memory and a reasonably sized hard-disk and I took it everywhere with me.

A while ago I gave the little laptop away to my son and decided to get a new one. Well, I ummed and ahhed for a long time about what to do. Whether to get a really small one or a powerful beast. I also seriously began to consider whether to go for something like a Lenovo or to get an Apple laptop and re-program it with Windows. It was tough.

My professional life has changed drastically in the last year because I made a concious decision not to continue in the same big finance corporate world I had become used to for nearly a decade. I really wanted to go back to electronics, embedded systems, small interconnected and mobile gizmos; to return to my career roots if you will.

My interest in mobile phone programming has enabled me to touch on iPhone, Android and Windows Phone. I have also taken up Arduino, PIC, Atmel and Gadgeteer programming as well as starting to do electronic and PCB design again. Apple only allows development for their hardware to be done on a Mac. I accepted this and bought a Mac Mini a couple of years ago but I can do most everything else with a PC.

I have however become impressed with Apple hardware. My iPhone and iPad are constant companions and the iPad delayed my desire to buy a laptop for more than six months because I really didn't need one when I had the iPad around. So, i bit the bullet, or should that be the apple?, and bought a Macbook Air. When it arrived, rather than setting it up in dual boot mode I decided to run a Windows 7 install in a virtual machine and retained the OSX-Lion on the real machine. In the last week I've had a chance to test it out and I'm pleasantly surprised that it all works fine.

I have VirtualBox running a Windows 7 install, Visual Studio on that. Then I have XCode on OSX but most importantly, Mono, MonoToch, MonoDroid and all the tools that let me write code in C# on non MS platforms with the framework APIs I am used to. I can even write on Visual Studio and copy directly to Mono and test on another platform.

Utter insanity!

http://www.scientificamerican.com/article.cfm?id=tennessee-law-will-allow-teachers-to-challenge-climate-science

The American constitution, so enshrined in the mumbo-jumbo of American politico-religious interpretation has once again failed to separate church and state by allowing a teacher to forward a personal opinion of their interpretation of the universe rather than adhering strictly to scientifically established guidelines.

In Tenessee, one can stand in front of a class of children who are there to learn and tell them that the great purple octopus Mubaa Boobaa that lives in the sky with his horde of one-legged hampsters pushes the clouds around and if you don't make him happy by reciting his scriptures and standing on one leg for three hours a day in honor of his hampsters he will send a tornado to blow away your house. You won't even get prosecuted or fired for it!

My hopes for western civilization dwindle daily.



C# Growing fast

For years, and indeed, even now, Java has been top of the heap when it comes to number of lines of code produced world wide. C# however has been catching up and is now snapping at the heels of the well established languages according to the TIOBE index.

C#'s original mandate, according to Anders Hjelsberg, was to make a simple and well structured language without the complications of C++'s multiple inheritance nightmare. Those of you that remember or perhaps still use C++ will know the pain of ATL and all that jazz. Now if you tell me you understand it then ok. If on the other hand you say that you like it I'll be inclined to question your sanity.

For me, it makes the most obscurely unreadable incomprehensible code that ever was written outside of an obfuscation contest.

As you may know from this blog, C# is now a prime language, not only on Windows platforms but also, through the auspices of the Novell / Mono / Xamarin effort a language available to developers of iPhone and Android platforms. It's also a great choice for stand-alone embedded systems with the .Net Micro Framework enabling C# on Gadgeteer and other platforms.

I'd love to see C# neck and neck with Java as a language choice and who knows, maybe one day, it will topple that venerable and, lets face it, equally managed language from the top of the index.


Holy Flying Monkeys!

Took delivery of a couple of items from GHI-Electronics today and in the box was this little fellow.

He has elasticated twangy arms and can be propelled at great speed into the outer atmosphere, (well, across the shed really)

Thank you GHI!

Thursday, April 05, 2012

Quantum computer built inside a diamond

Despite the hope we have for vast computing power, I think that quantum computing is still a long long way out there toward the horizon. For quantum computing to be considered mainstream its no good to have  success in the lab. It needs to be in your pocket on your phone.

I make a bet with myself that a practical commercial quantum computing solution for the masses is more than ten years away.

Here's hoping I'm wrong.

Quantum computer built inside a diamond

No renewal...

I got notification the other day that my MVP status hasn't been renewed. This would have been year nine. Well, I suppose really that my community contributions have dropped off this last year, due in no small part to the need to spend vast amounts of time on family matters instead of answering posts in the various fora that MS deems important. I used to derive vast pleasure from my MVP status but recently, all I really looked forward to was the free MSDN subscription that came along with it.

I'm hoping that my children's personal problems can be drawn to a close in the next few months so I can have the spare time to post on technical topics again.

Still, don't hesitate to mail me requests or questions as before.