Windows batch scripting and learning to love German footballers

Windows scripting – the computing equivalent of the German football team.
I suppose I should qualify that statement, if only to avoid irate comments from any German readers.
The German National side has always been admired rather than loved.

Yes, they have been more successful than most, and have produced more than their share of great players (Beckenbauer,
Rummenigge, Matthaus…add you’re own favourites here). Yet they are rarely cheered by the neutral.
This lack of popularity probably has quite a bit to do with the fact that, in major finals, Germany seem to be condemned to be cast as the bad guys against the forces of footballing light (the Total Football of Cruyff’s Netherlands in 1974), or the plucky underdog (Czechoslovakia in 1976, Denmark in 1992).

The footballing triumph regarded by Germans above all others is Das Wunder von Berne.
The 1954 World Cup Final was meant to be a coronation of one of the great teams in history. The Hungarians of Ferenc Puskas came into the final on the back of an unbeaten run going back 4 years, including an 8-3 thrashing of West Germany in the group stages of the tournament.

After eight minutes of the final, all was going to plan with Hungary already 2-0 up. What followed was one of the great comebacks – and great upsets – in the history of the game. Rahn completed the miracle with his second of the match, and the winner, with six minutes left.
Sepp Herberger, Fritz Walter and Helmut Rahn are the German equivalent of Alf Ramsey, Bobby Moore and Geoff Hurst. Outside of Germany, they remain largely unknown.
Incidentally, apologies for that 1966 reference, but unlike Germans (Italians, Spaniards…) we English have only that single triumph, or the odd glorious failure to look back on.

So, back to Windows batch scripting. It’s widely used, but next to the richness and variety of it’s siblings in the unix world, it appears hideously limited. However, there are times where it is simply unavoidable.

What follows are some basic examples of

  • Accepting user input
  • Using variables
  • a simple for loop ( because there is no other kind )
  • branching
  • interaction with an Oracle database

At this point, I have to say that if you are on a Unix/Linux system, or have access to Cygwin, there are far better ways of working with your database.

For any remaining poor unfortunates… Continue reading

VPN access on Mint using rdesktop

This post was going to begin with one of my occasional bulletins on the fortunes of Luton Town, beloved club of my mate, Simon. However, the man himself has been bitten by the blogging bug and the resultant musings on all things Teradata ( and various other topics) can be seen here.
So instead, I’d invite you to consider the Nordic majesty that is Milford Sound. Nestled in the heart of Fjordland in New Zealand’s South Island, this watery expanse evokes awe and wonder, even in a land where jaw-dropping scenery is always just around the next bend.
Milford Sound was itself named after the equally picturesque sounding Milford Haven. Yes, Milford Haven in Wales, site of one of the largest oil terminals in Europe.
I should note at this point that the Welsh Ambassador has demanded that I point out that Milford Haven does have some nice bits.

Moving swiftly on, in the vain hope of avoiding domestic disharmony, my point is, the fact that two things share common characteristics doesn’t mean that they are necessarily identical.

All of which provides a somewhat tortuous link to the subject of this post, namely, setting up remote desktop access via a VPN on Mint.

Now, you’d think this was pretty much the same as on Ubuntu, and it is…up to a point. Continue reading

Oracle XE – Speeding up Startup and getting Nofications on the Desktop in Ubuntu

Oh the tension. 2-0 up at half-time. Visions of last-day drama and an eleventh-hour escape floating tantilisingly before my eyes. Then, grim reality. A second-half collapse and the prize is snatched away once more. So, this is what it must be like to be an Arsenal fan.
I know that they say misery loves company, but it’s not really any consolation. Yes, my beloved West Ham have been relegated from the Premiership.

In an effort to rouse myself from the resultant depression, I decided to have a look at addressing one of those minor annoyances that I’m always intending to get around to but somehow never quite do. In this case, it’s how to get confirmation that my Oracle XE database has started before trying to connect to it ( and that it’s shut down before I turn off my computer). Continue reading

A Quick guide to Cygwin commands for the deprived of the DOS world

Things have been a bit hectic in my world lately. In addition to all the festive seasonal joy ( shopping, family, in-laws, out-laws etc) I’m in the process of changing jobs.

It is the way of such things that sometimes, you just can’t quite squeeze everything in.

The one thing I didn’t get time to finish before leaving was this DOS to BASH guide ( despite several evenings spent hacking away on Windows). So, for the CIG guys…well, it’s traditional – all kids know that there’s got to be at least one Christmas present that you can bash. Sorry. Continue reading

Twiddling with tar – Differential backups on Linux

When I first mentioned the title of this post to my girlfriend, she misheard and thought there was an extra “t” at the end.
One hasty explanation later I have avoided banishment to the shed. All of which is mildly ironic as the tar command comes with a whole alphabet of options, many of which are about to get used here.

As it’s name suggests, the venerable tar command ( Tape ARchive) has it’s roots back in the time when computers were the size of a small semi in Dagenham and punch cards and tapes were the acme of the Programmer’s art.

Now I’m going to use it for backing up data on my assorted Ubuntu machines.
What I want to do here is :

  • work out how much data I need to backup
  • create a full backup of all of my data
  • make sure I know what files have been backed up
  • test the restore of a file from the backup
  • make subsequent incremental backups

In the course of this odyssey, we will discover that du has a human face and that tar has a bit of a yellow streak.
There are several things that can go horribly wrong when playing around with tar, so I’m going to test everything on a small subset of files…that I have safely stored elsewhere.
Speaking of which… Continue reading

Apache, Aliases and Zenity on Ubuntu – how to control your ego

It’s the weekend. My girlfriend is staring at the screen in ferocious concentration as she does battle with her latest essay plan for the Masters she’s studying for.
Evicted from the desk and consigned to a dark corner, I’m trying to find some diverting, productive and, above all, quiet, way to amuse myself. As any parent will know, when the kids are quiet, it usually means they’re up to something… Continue reading

Zen and the Art of Shell Scripting

You know what it’s like with a little kid at his birthday party. They get all excited, eat far too many sugary foods and then run around behaving badly.
Oracle Openworld has ended for another year, and not a minute too soon. Hopefully, Larry will have an early night and stop being so excitable and upsetting all those jolly nice open source types he had round.
Meanwhile, in the comparative calm of the backwater that is this blog, I’ve been getting all Zen. Well, zenity, to be precise. Yep, I’ve decided that some my batch scripts needed to get all GUI with Gnome and zenity looks to be the tool to do it.
What follows is an account of my first steps with zenity followed by a demonstration of some of it’s capabilities. Continue reading

Ripping Yarns – Music, Samba, Ubuntu and Various Discworld Characters

Yes, I know this is supposed to be a blog about Oracle stuff. It’s just that, well, Larry’s been busy this week upsetting large chunks of the Open Source Community – MySQL; OpenSolaris; even James Gosling has had T-shirts printed up urging Oracle to “Let Java Go”. Suffice to say that, given all of this furore, I’ve concluded that I could do with improving my Open Source Karma a bit.
Fortunately, I’ve been busy this week, loading all of my newly inherited music collection onto by Ubuntu Server to enable playback from any other machine on the network. What follows is an account of my adventures.
It was a simple plan – rip all of the CDs to an existing Samba Share on the server and then find software that can read the format and allow playback on both Windows and Linux. Continue reading

Setting the Windows Path Variable for Cygwin…when you’re not allowed to

Several years ago, whilst working in an organisation that thought that organising functions into silos was an outstanding idea, I needed to have a UTL_FILE_DIR added to the init.ora ( this was back on Oracle 8i, since you ask).
Not having sufficient access to be able to implement this change myself I had to request it from the DBA group….based in Madrid.
The request was to enable us to write to a directory on the same server as the Database. Not being involved in the physical configuration of the database, I left it to the DBAs to pick which directory to use.
This change, which would’ve taken me 2 minutes, disappeared into the system. The DBAs had to refer it to the Linux Admins( Poland), who had to then discuss the matter with the Storage Team (Switzerland).
End result : six weeks later I get an automated mail saying that the call has been resolved…and I end up with a unix environment variable called $UTL_FILE_DIR. Oh, how we laughed. Continue reading

Windows Bashing…with Cygwin

I was in Wales last week, land of my girlfriend ( yes, I have got one, try not to look so shocked).
Wales, land of story and legend….where the rain goes for it’s summer holidays.

Stepping gingerly between the puddles in picturesque ( albeit, soggy) Laugharne, we spent an instructive ( and mainly dry) hour or so at the boathouse once occupied by Dylan Thomas. In the course of this cultural interlude, I learned that the Great Man’s last words were “ I’ve had 18 straight whiskys. I think that might be the record.”

Hmmm, I wonder if he’d been trying to write a Windows batch script ?

Whatever the merits of Windows in terms of it’s ubiquity, one undeniable fact is that the facilities provided for batch scripting on the command line are stone-age compared to those in Unix.
This is something I’ve often reflected on, usually when confronted with a problem that requires a bit more than a simple for loop.

Help is at hand however, in the form of Cygwin – a toolset which enables you to more-or-less run a bash shell on Windows. Sounds good to me. Let’s have a look…. Continue reading