By using the ping command line program, we can find ot the IP address of a given host and vice-versa, while, of course, testing whether we can communicate with this host:

Ping-pong
Image via Wikipedia

Pinging an IP address is easy:

ping 1.2.3.4

We can pinging the computer name for its IP:

ping Mycomputer

But how do we find out its name from its IP? Simply use the -a switch like so:

ping -a 1.2.3.4

As for the image? Well, everyone likes a bit of…ahem…ping-pong!
My apologies.
, , ,

In my previous post on Algorithm Animation in HTML5, I wrote about reviving my old final-year university project of the same name for the purposes in trying out the HTML5 canvas tag.

Image representing 37signals as depicted in Cr...
Image via CrunchBase

Originally I wrote this in Delphi 3, and later wrote a version in C# when I was trying to learn the language. When it came to trying out the HMTL5 canvas tag, Algorithm Animation seemed like the perfect application with which to try.

Soon after completing the first incarnation and posting it, I stumbled across a 37 Signals blog entry, ‘How Do I Learn To Program?’.

The author talks about how he learned to program:

…I tried to learn to program by following tutorials that created programs I didn’t have the slightest interest in keeping…

Sound familiar? How many times have we followed tutorials in a book that have taught us how to write a program we have no interest in.

These examples generally start out with some problem, which and will demonstrate how this is solved with their examples. But, for me, there is no point of reference, and I have no empathy for the problem. I don’t really care about it, and as a result, don’t care about the solution. The knock on effect is generally, that I don’t learn as well.

So when i’m picking something new up, I always try to refer back to an interesting point of reference, hence attempting the Algorithm Animation.

, ,

Right back from the days of Visual Studio 6, in the C++ IDE (not VB6 – it was different, and annoying), I’ve always found the ‘find in files’ option useful.

So, imagine my dismay, when I couldn’t find it in Visual Studio 2010.

Fortunately, I stumbled across a blog post by Thibaut Van Spaandonck who provided  idiot-proof step by step instructions on how to do this.

And, hurrah, it returned:

Thanks to you, Thibaut!

,

Inspired by the Biolab Disaster HTML5 game, I’ve been playing around with the HTML5 cavas.

I decided to resurrect my old Algorithm Animation project, as it lent itself perfectly to this kind of thing.

So here it is:


If you’re seeing this, then your browser does not support the HTML5 <canvas> tag. The latest versions of most major browsers will, so why not consider upgrading, or installing the latest version of a different one!


Just Click “Go” and watch it work.

I make no apologies for the fact that its very very limited – it was just a proof of concept more than anything else! You’ll have to refresh the page if you want to run it more than once. Hmmm….I feel a ‘reset’ button coming on.

The HTML is laughably simple. In fact, here it is:

    <canvas id="myCanvas" width="300" height="170">
    Fallback content, in case the browser does not support Canvas.
    </canvas>
    <br />
    <input type="button" value="sort" id="sort" onclick="Sort_OnClick();"/>

The JavaScript is also fairly trivial, but I’ve made a good effort to hide that by wrapping it in a class! :-)

Feel free to have a look and play around and use if for yourself. Any links or general credits would be appreciated. I also like money ;-)

, ,

As HTML 5 gathers pace, a number of interesting projects utilising the technology are popping up. One in particular that caught my attention was Biolab Disaster, a classic platform game, written entirely in HTML5 and JavaScript.

Nara Institute of Science and Technology
Screenshot from Biolab Disaster

It will work in the latest versions of the most common browsers (including IE9, with which it reports issues with sound and speed). If you try to access it with IE8 or lower, you get the following unequivocal message:

“Hey there, it looks like you’re using Microsoft’s Internet Explorer. Microsoft hates the Web and doesn’t support HTML5 :(

To play this game you need a good Browser, like Opera, Chrome, Firefox or Safari.”

As for the game, well, it’s very simple and only has a limited number of levels. It won’t set the world of gaming alight, but nevertheless is still a fun (albeit brief) distraction.

Why not give it a try?

, ,

Short and sweet and to the point. No graphics and no-nonsense.

  • Control Panel -> Programs and Features -> ”Turn Windows Features On Or Of”

(Command line option: Or type “OptionalFeatures.exe” in the Start-Menu (Windows button) ‘Start search’ box to achieve the same effect)

  • Check “Internet Information Services”
  • Wait. (It could well take a few minutes – the last time I did it, it took over 20! – you might think nothing is happening).

Job done!

, , ,

A few months ago I wrote about trying to counter-scam the Indian Windows Telephone Support Scammers, and it would seem that I have a champion in someone called Caliston.

7/52 Magritte
Image by nikko russano* via Flickr

Three hours, all told, is how long he claims to have kept them on the phone for, allbeit across several different calls, but that’s still impressive in my book. That’s three hours that they weren’t scamming someone else.

These criminals are motivated by greed, have no imagination (they follow a script), and prey on the vulnerable. But, fortunately, they are hopelessly stupid, so are easy to fool – especially if you give the impression that you are willing to pay.

Anyway, you can read about Caliston’s exploits on this journal entry: http://caliston.livejournal.com/20313.html. Hats off to you, sir, I salute you!

Other Articles

This is the seventh of an ongoing series of articles that I have written following this scam. You can find them under the following tag group:

http://www.jameswiseman.com/blog/tag/windows-support-telephone-scam/

,

In an automatic shipping/deployment system you may find yourself having to determine object/item dependencies, and stipulate a shipping order manually.

Controlling IT Costs; Enterprise Architecture ...
Image by Wonderlane via Flickr

For example, when shipping SQL Server code, you might consider the following order of shipping precedence for database scripts:

  1. Structural creation
  2. Structural changes
  3. Relationships
  4. Static Data
  5. Views
  6. Stored Procedures
  7. Triggers

Views that depend on other views have to be shipped in the appropriate order, so you will need to consider this as a factor.

In the background we have a dependency table (sysdepends for SQL 2000 and sys.sql_dependencies for 2005/2008).

For the purposes of this article, I am interested in the creation and omission of records from this table for Stored Procedure dependencies.

So, let us create two simple stored procedures, root and dependent like so:

create procedure root as
select 1
go

create procedure dependent as
exec root
go

So problems anywhere, and the execution of dependent works a treat:

exec dependent;

Moreover, when I look at the sys.sql_dependencies table, I see an entry:

select sd.*
from sys.sql_dependencies sd
inner join sys.objects so on so.object_id = sd.object_id
where so.name = 'dependent'

However, when I add these in reverse (I.e. add the dependent Stored Procedure first), I get the following message:

Cannot add rows to sysdepends for the current stored procedure because it depends on the missing object ‘dependent’

With both stored procedures compiled, the code still works as before, however no entry is added retrospectively to the SQL table when ‘root’ is compiled after ‘dependent’

Although this has no practical impact with regard to execution, your ability to perform effective impact analysis for testing and refactoring purposes.

Fortunately, on SQL2005 and 2008, this can be remedied by executing the sp_refreshsqlmodule stored procedure.

And there we have it!

, ,