Zero Day – Mark E. Russinovich

Just finished reading “Zero Day” by Mark E. Russinovich. The author is a fellow at Microsoft and well know in the computer circles for also being the author of various tools from SysInternals a company he used to own.

The book is about cyber-terrorist and without giving too much away its quite a interesting read.

Anyway… here is what is said about the book from the author himself:

An airliner’s controls abruptly fail mid-flight over the Atlantic. An oil tanker runs aground in Japan when its navigational system suddenly stops dead. Hospitals everywhere have to abandon their computer

databases when patients die after being administered incorrect dosages of their medicine. In the Midwest, a nuclear power plant nearly becomes the next Chernobyl when its cooling systems malfunction.

At first, these random computer failures seem like unrelated events. But Jeff Aiken, a former government analyst who quit in disgust after witnessing the gross errors that led up to 9/11, thinks otherwise. Jeff fears a more serious attack targeting the United States computer infrastructure is already under way. And as other menacing computer malfunctions pop up around the world, some with deadly results, he realizes that there isn’t much time if he hopes to prevent an international catastrophe.

Written by a global authority on cyber security, Zero Day presents a chilling “what if” scenario that, in a world completely reliant on technology, is more than possible today—it’s a cataclysmic disaster just waiting to happen.

Posted in Uncategorized | Comments Off on Zero Day – Mark E. Russinovich

You can make money without doing evil…

Well this is what google says in their corporate philosophy but I seriously doubting this.

If you are not aware of the most recent cuffle about google, let explain and perhaps rant a little.

Google; in an attempt to prevent the spread of the gpl-2 license from the linux kernel on the android platform to user’s application decided to clean the kernel headers of it so it can be used in the bionic libc.

My understanding of the gpl-2 license is that once you have applied the license to your code, you are free to change it, include it and attribute your changes but the gpl-2 remains, so I can not see how they can clean the code of the license when the license itself prohibits it.

Cleaning up the linux headers files does not seem such a big deal at first especially given the linux chaps have the own sanitised version themselves but it really does open it a huge whole in the open source arena. If you can remove the gpl-2 from the linux headers which contain macro’s aka inline code then why can’t you do the same for other gpl-2 software and release it or use it anyway you wish. After all if google can do it without doing any evil… why can’t anyone else do the same?

Is this the end of gpl-2 or just the start of new legal battle with the do no evil company being covered the brown stuff.

So what should google to next…
– standup and say “sorry” and “we will fix it”
– move bionic libc to the proper sanitized headers
– reissue a firmware that mitigates issue
– put some more love in the open source arena and stop taking evil shortcuts

Anyway rant over… lets see what happens next…

Posted in Google, gpl-2 | Tagged , , , | Comments Off on You can make money without doing evil…

One Billion Reasons..

What can a company do with a 1 Billion USD?

Well if you are Microsoft you can use this or more to ensure one of your competitors becomes a OEM vendor!

This is exactly what is said Microsoft did to influence Nokia to use their mobile offerings… Which at first seems a bit of amazing turn around for Nokia given the amount of effort it has put into Symbian but I guess cash is king! Good luck Nokia..

Posted in Nokia, Windows Mobile | Tagged , | Comments Off on One Billion Reasons..

New Gadget

Over the last couple of years I have not been getting on too well with my second generation iPod Touch but it has been a bit of a love hate relationship… I love it when works well with my mac’s at home but find it a real pain on Windows, it works but it feels like I’m forcing it to work… even the sound feel damp and uninspiring..

Anyway, I thought it time was to try something different out, so I had a look around and decided to pick up the Cowon J3.

So what do I think about it, well I had an interesting first day experience… I managed to brick… yes… completely brick it… even for me this was a first!

I used to have an old creative labs mp3 player and this used Microsoft’s MTP protocol and so did the new shinney J3… so I downloaded and built libmtp and started to play around with the protocol to see if I could automatically create some playlist… well that was my intention… a couple of hours later the cowon froze up on me and pressed the reset switch and the reset button… and the rest has gone down in brick laying history..

Using the guide at I manager to get the right tools and the firmware to try and repair it myself.

Using the tools above, I managed to install a new firmware but it still crashed with “checking albums” on startup.. so I decided to place the firmware on the micro sd card and I found it booted off this…. wow I thought its not completely bricked… Then I was able to mount the drive… re-format it as fat and then I re-installed the firmware… this time it worked!

Anyway, as you can imagine after this first day experience I really was not too impressed with myself, libmtp or the cowon.

Nows, its a couple of weeks later… I now have started to like my lovely cowon… at first I thought the user interface was childish but it has grown on me.. it simpy works when I need it to work.. however the nicest surprise is that I now love my music again but I have left libmtp alone!

Posted in cowon, Tips | Tagged , , , , | Comments Off on New Gadget

Getting started with Windows Azure

As someone has been working with Windows Azure since its early days I understand how much effort it takes to get started with the platform.

Luckily over the last couple of Windows Azure SDK releases the documentation is started to do justice to the platform itself.

Any here are some nice links to get you started:

General Overview Whitepaper
Official Microsoft Site
Updated List of all “How To” Documents for Azure
Video: Lap Around the Windows Azure Platform
Posted in CLR, COBOL, Windows Azure | Tagged , , | Comments Off on Getting started with Windows Azure

A good new years gift…

My day job keeps me housed in Visual Studio 2010/Windows, so for my out of hours development I feel I need a change, so for many years I have been a home mac and/or linux user; anyway I have used many languages over the years but I feel more comfortable using C#, so my development environment of choice is monodevelop.

Last week I was lucky to get onto the MonoDroid beta, I thought of it is New Year gift from Mono/Novell guys…

So last week I started to playing with it…. its fun… and I think its going to be fun ride using Mono, C# and Android. With phone such as my nexus one and the recently announced Droid Bionic (2GHz dual-core processor, 512mb) it really means that we can start to put some quite computational intensive applications on these devices, plus having access to a quick database such as sqlite makes life easier… now what should I do with it?

Posted in CLR, CSharp, Mono, MonoDroid | Tagged , , , , , | Comments Off on A good new years gift…

Michael’s very own “Getting Started with Visual COBOL”

Michael Burgun over at his own blog space has started blogging about using Visual COBOL… Its worth a look as having meet Michael last year I can honestly say he is a very knowledgeable and experienced chap, so I am sure he will impart some of his own wisdom..

The articles are: .NET greenfield development in Micro Focus Visual COBOL 2010
and today’s article, Getting started.

Posted in CLR, COBOL, Microsoft Visual Studio, Tips, VisualCOBOL2010 | Tagged , , , , | Comments Off on Michael’s very own “Getting Started with Visual COBOL”

DNS – Tweaks take 2

Although I have good results tweaking my DNS it appears it can have its side affects if you have a very fast internet connection and are doing some serious streaming… have a read of the following quoted article.

If I ever get a fast home connection then I will be aware of this… until that day…or just incase santa lays some fiber optic cables..

The experience of one Mac developer with his new Apple TV box, offers a reminder to the tech-savvy “power user” that Google DNS and OpenDNS may take a serious toll on performance video streaming.

On his blog, Joe Maller wrote that he had a fast Internet connection (15 – 20 Mbps), and so he was shocked when his Apple TV reported that it would be several hours before he could start watching his HD video. The culprit in his case was Google DNS.

It appears that Google DNS and OpenDNS don’t mix well with the way that distributed video is served up. This can be Apple TV or YouTube.

This totally makes sense. iTunes’ video content is delivered by Akamai who has distributed massive datastores around the world so those large files originate from nearby servers and spend less time getting switched around the network. Akamai somehow uses our DNS routing to determine our location. If Google DNS or OpenDNS routes everyone to Akamai the same way, then those Akamai nodes and the pipes leading to them get overwhelmed.

Ironically, people feel that they’re doing the right thing by switching over to OpenDNS or Google DNS. In this case, it appears to be the wrong choice. Maller points out, that in this case, it is the “tech-vanguard” that will take the hit here. Most non-savvy users will simply hook into their ISP’s DNS.

After switching from Google DNS, Maller said his Apple TV rentals were ready in less than 30 seconds.

Posted in Tips | Tagged | Comments Off on DNS – Tweaks take 2

AzureKit and COBOL

AzureKit is a nice piece of source code released on CodePlex by Mark Rendle. The AzureKit makes life much easier for creating, searching, deleting elements in your Azure’s Table Storage.

My idea was that if the AzureKit was easy enough to use, then it could give us a nice way of accessing Azure’s table storage without to hosted in Azure itself.

Given, this idea I recently spend a bit of time exploring the APIs and how they could be used from COBOL and to be honest it was a pleasure to use, so thank you Mark for the good work.

For anyone not familar with Azure Table Storage, it is a structured storage that uses tables.. sounds obvious. It does not have a SQL interface, so it is marked as a NoSQL storage mechanism.

The normal Azure Table Storage APIs are fine but reasonably complicated… perhaps too complicated for most people to use.

The APIs Mark has put together really does make life easier.

The AzureKit provides you with an IDictionary, IEnumerable and IQueryable style interface which for anyone familar with .Net this API style will feel very natural to them, so I think it gives you a nice programming model.

This combined with Visual COBOL’s support for doing ‘perform thru’ on IQueryable objects make its easy to use.. Anyway enough talking time for some code…

data division.
working-storage section.
01 movieTable type AzureKit.Table.
01 movie type IDictionary[string, object].
01 movieQuery type IEnumerable[
type IDictionary[string, object]].
01 movieIQuery type System.Linq.IQueryable[
type IDictionary[string, object]].

procedure division.
set type Azure::Account to "mystorageaccount"
set type Azure::SharedKey to "myverylargesharedkey.........."
set movieTable to new type AzureKit.Table("Movie",
type AzureKit.IfTableDoesNotExist::CreateIt)

*> Delete ALL
perform varying movie thru movieTable::GetAllRows()
invoke movieTable::Delete(movie)

*> All two items
set movie to type AzureKit.Table::NewRow(
"Jaws: The Revenge",
type Guid::NewGuid()::ToString())
set movie::Item("Year") to 1987
set movie::Item("Director") to "Joseph Sargent"
set movie::Item("Rating") to "Worst Movie Ever!"
invoke movieTable::InsertRow(movie)

set movie to type AzureKit.Table::NewRow(
"Empire Strikes Back",
type Guid::NewGuid()::ToString())
set movie::Item("Year") to 1982
set movie::Item("Director") to "George Lucas"
set movie::Item("Rating") to "Best Movie Ever!"
invoke movieTable::InsertRow(movie)

*> query
set movieQuery to movieTable::Query(
"PartitionKey eq 'Jaws: The Revenge'")

set movieIQuery to type System.Linq.Queryable::AsQueryable[
type IDictionary[
string, object]](movieQuery)

set movie to type System.Linq.Queryable::FirstOrDefault[
type IDictionary[
string, object]](movieIQuery)

display movie::Item("PartitionKey") " -> "
movie::Item("Director") " -> "

*> show the results
perform varying movie thru movieQuery
display movie::Item("PartitionKey") " -> "
movie::Item("Director") " -> "


end program Program1.

That’s pretty easy… now what shall I do with the APIs… answers on the comment strip!

Posted in COBOL, Tips, VisualCOBOL2010, Windows Azure, Windows Azure | Tagged , , , , | Comments Off on AzureKit and COBOL

DNS – Tweaks

DNS speed can really affect your home router either for the better or worse..

I use a open source bit of software called namebench to periodically verify that I am using the most performant/reliable DNS server.

Take a peek, it really does help…

Posted in Tips | Tagged , , | Comments Off on DNS – Tweaks