DNS – Tweaks take 2

 Tips  Comments Off
Dec 212010
 

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.

http://www.zdnet.com/blog/apple/reminder-google-dns-can-slow-down-apple-tv-streaming/8960?alertspromo=&tag=nl.rSINGLE

 

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)
end-perform

*> 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") " -> "
movie::Item("RowKey")

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

goback.

end program Program1.

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

http://blog.markrendle.net/

http://azurekit.codeplex.com/

http://msdn.microsoft.com/en-us/library/dd179423.aspx

DNS – Tweaks

 Tips  Comments Off
Dec 142010
 

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… http://code.google.com/p/namebench/

MacBook upgrade

 MacBook, Tips  Comments Off
Nov 282010
 

My home laptop is my beloved black macbook which has a reasonable Core Duo 2.2 ghz but unfortunately the hard drive is getting a bit full due using as my digital photo album…

After a bit of research I decided to replace the 250gb drive with a new shinny 500gb from Seagate.

Preparation

After receiving the drive I needed to clone the drive to new drive, which is pretty straight forward if you have a “SATA/IDE Adapter Kit with Power Adapter for a 2.5 drive” and “Carbon Copy Cloner”.

After cloning the drive you can checkout the drive by booting off the external drive to see if everything is as you expected (press right alt on bootup)… Note: cloning the drive too hours… so perhaps leave it overnight..

Installing the drive

Then you can follow apple’s own instructions, which are kindly documented below, though my drive housing required the use of my trusty torx security drivers bits because it had one of those security screws….. thanks apple.. :-) Ohh.. you might want to leave your macbook turned off for a while to ensure it is cool as the drive is a snug fit.

Anyway, the outcome is I have a larger, faster drive and zipper little macbook… it feels quite nice… why didn’t I do it earlier…

References

  • Apple’s drive replacement instructions
  • Seagate ST9500420AS, 500GB Mobile SATA Momentus, 7200RPM 16MB Cache
  •  

    Over the last decade I have gained quite a lot of respect for Novell mainly due to their SUSE Linux platform and Mono.

    Strangely one of the companies involved in the acquisition is “Golden Gate” from San Fran, looks like it is the same company that also help us “Micro Focus” become liberated from Merant back in late 2001… if it is then Novell… sorry “Attachmate” have a really good chance.. Gosh.. its a small world..

    I really hope that their fortune changes under the new leadership of Attachmate… anyway good luck old Novell..

    http://news.cnet.com/8301-30685_3-20023535-264.html

    http://www.sec.gov/Archives/edgar/data/758004/000119312510265964/d8k.htm

    http://twitter.com/migueldeicaza/status/6732038669340672#

    Nov 132010
     

    Although the article/quote below is so true….

    Programming languages on the rise: Cobol

    It may not be fair to call Cobol a niche language as it was once the dominant language in the enterprise. Grace Murray Hopper, famous for finding the first bug in the early mainframes, helped create the language in 1959 and it’s been enhanced hundreds of times since. Cobol jockeys today get to play with object-oriented extensions, self-modifying code, and practically every other gimmick.

    That never earned it much respect in some circles. Or as famous academic Edsger Dijkstra put it: “The use of Cobol cripples the mind; its teaching should, therefore, be regarded as a criminal offense.” The folks in mainframe shops everywhere ignored this note and soldiered on. IBM calls one of the latest releases “Enterprise Cobol 4.2,” but it could as easily be numbered 147.2 or maybe even 588.3. Cobol programmers like the syntax that’s more like a natural language with actual nouns and verbs that form clauses and sentences — a technique that might call Ruby to mind.

    While fewer schools are teaching new programmers Cobol, the language is far from dying, with many corporations continuing to invest in their Cobol stacks. A recent search of Dice.com showed 580 jobs mentioning Cobol and 1,070 mentioning Ruby. The bulk of the jobs seemed to involve counting money (“asset management”) and counting doctor’s visits (“Health IT”). While these are some of the same areas that first adopted computers for back-office processing, the work still needs to be done.

    Versions of the languages run on JVMs and .Net virtual machines making it possible to migrate code stacks away from mainframes to Linux boxes. Programmers who want to use a more modern IDE can search for plug-ins to Eclipse, a project that is gaining new support.

    http://www.computerworld.com/s/article/print/9192822/7_programming_languages_on_the_rise?taxonomyName=Applications&taxonomyId=18

     

    As someone who has used Java for my own development needs for years, I find it sad the Java platform appears to be falling apart or at the very least getting some bad press.

    Lets consider the recent events, we have Oracle flexing it muscles and suing google over it use of Java on its android platform, IBM moving over to OpenJDK which does not help the chances of Apache Harmony ever getting license. Apple is dropping Java on the desktop… a loads of security flaws… The JCP process seems to failing.. which is a shame since at one time I was part of the JCP process when I worked in the J2EE connector group and the people I worked with where very good and dedicated to doing the best for the platform.

    Come on Java get your act together…. or you will start to use customers… starting with me…

    I think Java has lost it’s excitement for me, so I been on my own personal quest to migrate my own tools, classes into .Net… after all its going somewhere…

    I have nearly complete my own migration.. using a combination of ikvm, reflector and bit a of patience.. so far it has worked quite well… the upside is I really like mondevelop over eclipse.. it just feels more friendly and yes I do understand eclipse has a lot more powerful but I’m just a developer working on my home time.. I just don’t need the baggage that eclipse or java brings… for work use perhaps… but for home… forget it.

    Next stop the iPhone, iPad, iPod touch, WII, Xbox and Android using mono… I might even have a fiddle with Windows phone 7 after all its .Net.. now what language should I use… ahh it doesn’t matter… its .Net.. ummm nice…

    Oct 072010
     

    Recently I have had the pleasure of working on SQL Server 2008 R2 using the SQLCLR support.

    Which I must admit it is quite nice to use, though a couple of things have anoyed me while using… one of which is the user of “DROP ASSEMBLY” and its dependancies…. normally this is not a huge problem but when you are write tests, it is good practice to remove/drop everything before deploying.

    Being the sort of person that hates doing repetitively, I thought I would do a quick proc…. so let me introduce you to ‘MegaDrop’… yeah… its a rubbish name and the code is not elegant but it gets the job done..

    Enjoy…

     Posted by at 10:53 pm  Tagged with: , ,

    Sep 222010
     

    For the last couple of months I have been working on next release which is cunningly name:

    Visual COBOL 2010 R3

    Which is surprising since the previous was called Visual COBOL 2010 R2.

    If you are using any of products in the PC and want to get a sneaky look at the future of COBOL then please apply for our beta program..

    http://www.microfocus.com/promotions/wwtevcbp0110/default.aspx?page=form

    Good News!

     Uncategorized  Comments Off
    Sep 212010
     

    I just purchased a look online and got the crappiest message in the world… thanks Amazon!

    Good News! You saved £0.00 on your purchase

    Kindle edition prices differ by country. The price for this Kindle edition is different from the price we originally displayed. This is because you were not signed in when you purchased this item. Since the price in your country was lower than the price originally displayed, we went ahead and completed your purchase.