Wednesday, December 16, 2015

Global Warming? Maybe Not, But .....

For any Global Warming enthusiasts out there in the US Northeast this winter must seem like almost the ultimate in opportunities to say "I Told You So" to all the Climate Change Deniers! Just look at the temperatures! In the Philadelphia area it almost reached 70F last weekend - a temperature that, in the 1960s, would have had pin-striped Londoners looking seriously at the time-tables for the next train down to Brighton and the beach!

In mid-December???

That's the weird piece that's got the Global Warming crowd crowing, but it isn't. Really. What we have, instead, is a phenomenon called the Polar Vortex - a circulating pattern of cold air centered over the Arctic - being very strong this year, so all the cold air is held over far northern Canada.

At the same time, El Nino is happening strongly, so the west coasts of north and south Americas are getting lots of moisture. Storm Echo is a good example - look here at all the snow it's dropping!

This means that the north-east of the US just isn't getting any cold air! Yet! Although the coming week may well be very different as Echo finally arrives!

As you may have read, I've been popping up at SQL Saturdays all over, and even managed one in Montreal on the weekend before Thanksgiving!

This is one of the roads near Montreal.

This SQL Saturday was special, because it was the very first that the user group in Montreal has put on, and, while very small, was definitely well worth the long drive up - which was itself a lot of fun. Montreal is just a great place, and I'm really looking forward to doing it again next year.

No food this time - wait for a really easy and tasty Onion Soup next time.


Monday, November 09, 2015

A Soup for Winter

Welcome to the home of the hungry programmer! After a long day of fighting my way through undocumented SSIS jobs to try to get them ready for a looming release I'm home to find the horror that that there are no leftovers left!!

Ok - what's in the fridge? a bag of carrots, celery, leek, and a red bell pepper. There's onions and dry lentils in the pantry, and half a dozen or so smoked sausages (kielbasa style). So there's hope, and I'll be fed for the next couple of lunches too!

2 litres Chicken Broth Red Bell Pepper, chopped 500g dried lentils
20 baby carrots, chopped 6 sticks of celery, chopped 6-8 straight kielbasa, sliced
2 leeks, chopped 1 and a half onions, chopped Salt, Papper, Basil

  • Put about a litre of chicken broth in a (very) large pot and add an onion (and another half, as I had a half waiting) and maybe half a kilo or so of bacon, chopped into little squares. Set it to boil for maybe 15 mins. 
  • Add the lentils and simmer for about another 20-30 minutes. 
  • The lentils should be swelling nicely by now, so add all the veg and mix it all well together.
  • Add about a teaspoonful of basil, and salt and pepper to taste.
  • Keep simmering for another 20 minutes.
  • Add the kielbasa smoked sausage (sliced into coins) and mix well in. 
  • Keep cooking for about another 20 minutes, so all is well boiled. 
  • Serve with bread and enjoy the inner warmth!

So here's a close-up so you can see that it's quite a busy-looking soup - plenty of visual interest with the colours and textures.


Sunday, September 27, 2015

More Food, More SQL Saturdays!

Well, time has run me over like a dump truck again - 4 months since I got to write anything here!

Upcoming SQL Saturdays are now:
Pittsburgh October 3rd #440
Montreal November 21st #466
Washington, DC December 5th #470
Providence, RI December 12th #465
They're all looking like good events, so if you work with SQL Server, or if you're into IS in any way and are near an event, you should come along and take part - they're tremendous fun!

Food  --  Scallops and Ravioli

As those of you who've seen this blog before are, I'm sure, aware, I love food. In fact, I eat nothing else!!
So, the AG was hungry this afternoon - and so was i, as a matter of fact, and there was a pack of Cheese-filled mini-raviolis from Trader Joe's sitting in the pantry whimpering that it was being ignored.

In the fridge I found some baby spinach, some chopped garlic, and some little baby tomatoes. The pantry yielded some parmesan cheese, and the fridge door some Almond Milk and some butter.
Out of the freezer came some little bay scallops, and from the spice racks came Chives and Herbes de Provence, along with some black pepper.
Finally you'll need some thickener - I used some Bisto (Turkey, not trad.) that you can get at English shops.

  1. Firstly, start the water heating for the ravioli (5 minutes or so to get hot, and then about 12-15 to cook). 
  2. Put the scallops in some water to make sure that they're thawed.
  3. Next, you melt the butter and add in all the herbs (chopped garlic, chives and herbes de Provence, and some good sprinkles of fresh black pepper.
  4. Once that's started cooking so that the flavours are coming out (2 minutes or so), add the scallops and let them simmer in too. This will take about another 2-3 minutes.
  5. Now add in about half a cup of Almond milk per person you'll be serving, turn up the heat somewhat to get it almost boiling, and then stuff in pretty much as much of the spinach leaves as you can, and cover. 
  6. Cook for five minutes, mashing down the leaves every minute or so, so that they get good and wilted, and then add some more almond milk and a teaspoon or two of Bisto. Stir all very well and the liquid should soon start to thicken as it all heats up.
  7. Now add the tomatoes - I slice mine once lengthways - and turn down the heat some.
  8. Decant the pasta into bowls, cover generously with cheese, garnish with more (fresh) spinach leaves, and pour on the scallop mixture. 


Saturday, May 30, 2015

SQL Saturdays

At the beginning of April I started moving - because a 90+ minute commute each way is just too much! Home is still in the hands of horizontal storage and looks likely to stay that way for another few weeks at least, which means that there's another few weeks of having thin trails and paths through mountains of tubs, boxes, and bags of "stuff", and the perpetual danger of being hit by falling debris dislodged by a careless cat!

So two weeks ago we loaded the cat trays with food, super-cleaned the litter, and escaped on Friday night to drive to Rochester, NY. Five and a half hours later we arrives at the hotel ... how come the weather forecast never said anything about the rainstorm between Syracuse and Rochester? Right next to a Red Lobster - convenient!

Next morning I check out and drive to the RIT for the event. Tola takes off for yarn raiding!
Courses on PowerShell, Extended Events, the Apply statement, Wait Stats, and a double period of Kathi Kellenberger's Window Functions. Great information, leavened with helping of chat with the vendors and some nice lunch left everyone somewhat brain-dead by the final gathering at 5:15 and, after raffles were drawn, we staggered out to find cars. I found a lot of yarn to drive with - !

So another five hours drive home .... again, nobody warned us of the horrendous rainstorm coming out of Pennsylvania into New York state. Thunder, lightning, and heaps of rain! We get home around midnight. Feed the cats and straight to bed because on Sunday I get  to drive again! This time to South Plainfield in NJ for a Linux Admin course! Just two hours each way and five hours of course. I manage to get home around nine pm. Eat and crash. Monday morning I'm wondering if there actually was a weekend!

A week goes by. Tola's birthday caused some celebration. She got a little Acer Switch 10 ... After charging it up it appears to be a very nice little machine - has Windows 8.1 pre-installed but nothing's perfect, and its going to be used almost exclusively for iTunes. Take off the demo version of MS Office and the McAfee anti-virus unpaid system with all their prompts for money and install Avast or suchlike and it's usable.

Another week and I'm back on the SQL Saturday trail - I'm writing this in New York. This one's popular enough to have crashed the SQL Saturday web site! I don't know how many people are here - three hundred or more, compared to the two hundred in Rochester. So the nice things are not just the learning, which is fun, but also meeting up with the people I've met at other SQL Saturday events and the people I used to work with. This time I met some people who took the same courses last September with Brent Ozar in Philadelphia, some guys I used to work with, and a whole heap of speakers who I've seen several times - we all get to know each other and it's nice to see familiar friendly faces.

Coming up soon are Philadelphia on June 6th and Albany on July 25th. #411 is in Cambridge on September 12th, #440 is Pittsburgh on October 3rd, and #446 in Portland, OR, on October 24th. Cambridge would be nice; Protland is almost a requirement as my wife's family lives in the area.

Next time I'll start doing a series of SSIS Tips!


Thursday, January 22, 2015

Sheepless in Seattle

Somewhat of a corny title, but what the heck!

Here's a warning - this is full of pictures and Blogger doesn't seem to control pictures very well any more. For that reason you should play with the screen width to get the lines right!

At the end of last October my wife and I travelled across the country from Philadelphia to Tacoma in Washington. Yes! You know it !! The home of Galloping Gertie!
This (right) is what happens when a bridge gets to undulating along its length (like hills coming towards you along the road) and also, at the same time, develops a cork-screwing motion (think of grabbing the ends and twisting them in opposite directions!).

Anyhow, such things don't happen in Tacoma any more - it's a nice quiet place. So nice, in face, that many of the AG's relatives have settled in the area from Seattle to Portland, and so we went to visit. I also have some friends there, so we did more of the visiting lark. Finally, as we were where we were, we also went for a visit to Vancouver.

On the very final day of October we arrived in Portland and went to visit Twisted yarns there!

It's a nice, large, airy store with a huge amount of yarn!

And needles!

And books!

In fact, there's so much that it seems to be trying to come out to join you as you sit on the comfy couches!

 And finally two more photos of the yarn. We also met with a good friend of ours, a one-time Knitting PodCastStar ans more recently blown (literally) from her home and out to the west coast.

And here's the beautiful Lady of the Store, to whom we extend thanks for allowing us to take all these photos!

Could we go south without visiting Voodoo Doughnut?

Enough said - right???


Friday, January 02, 2015

SQL Saturday

There are a lot of places that you can learn about Microsoft's database package - MS SQL Server. Not much training, as you've probably learned, is just free for the having. Here's the exception!

The PASS (Professional Association for SQL Server) is an organisation that you can join for free. It has chapters - mostly local to your geography but some virtual. For me, Philadelphia is my local chapter - PSSUG. Philadelphis SQL Server Users Group runs a meeting monthly, two sub-groups quarterly, and a SQL Saturday annually. The next one is due on June 6th, 2015.

2014 was a bumper year for SQL Saturdays for me:
2014.03.01................ #268 ................North Haven, CT
2014.03.22................ #277 ................Richmond, VA
2014.06.07................ #294 ................Philadelphia, PA
2014.06.21................ #303 ................Rochester, NY
2014.06.28................ #293 ................Portland, ME
2014.07.26................ #302 ................Albany, NY
2014.10.04................ #315 ................Pittsburgh, PA
2014.10.18................ #314 ................Providence, RI
2014.11.01................ #337 ................Portland, OR
2014.12.06................ #347 ................Washington DC
Ten events in all, including 2 pre-con days, as well as going to a full week of Brent Ozar's BDA and Query Troubleshooting courses !

I can't see me doing anything like that many in 2015, but I'll be trying for some!

2015.03.21 ................. #381                 Richmond, VA.............Abandoned for me because of a snow storm!
2015.04.25 ................. #366                 Ottawa, ON...................Coincided with Marillion Weekend 2015 in Montreal
2015.05.16 ................. #383                 Rochester, NY..............This one definitely looks "on"
2015.05.30 ................. #380                 New York City, NY.......Exciting! - last year there wasn't one in NYC!
2015.06.06 ................. #390                 Philadelphia, PA..........My "home" event
2015.07.25 ................. #386                 Albany, NY...................Looks good
2015.10.03 ................. #440                 Pittsburgh, PA..............Looks good

Edinburgh and Dublin on the 13th and 20th of June are looking amazingly attractive - to some extent it depends on what time off I have available, and to some extent it depends on what yarn stores there are in the area !

In addition to the SQL Saturdays, I've also gone to Alan Hirt's Mission-Critical SQL Server training class in Philadelphia on March 30th - April 2nd. That was definitely worth the money and time!

Finally, just to spice up the mix, I'm spending my Saturdays for the next few months taking a Linux Administration course at Avtech in South Plainfield. Looks like it's going to be fun!

Get in contact - meet me there!


Thursday, January 01, 2015

Linux - Installing a Program By Hand

In Windows you download an executable (.exe) or a .msi installer program, double-click it, and sit back and hope. It used to be that Windows' use of .dll files promised a major problem if your new program wrote a new version over a file of the same name that did something else! All of a sudden installing the new anti-virus program killed the accounting program stone-dead! This was known as "DLL Hell" and there's a good Wikipedia article here about it and how it was "cured", if you're interested!

Of course, Windows itself changes from time to time, as service packs and patches are installed, but Microsoft, being just one company, can make sure that if it replaces version 12 with version 13 then they appear to be identical to the program trying to use them.

Linux operates slightly differently. When I write a program I do it in an environment of different programs that it needs, just like I do in Windows. For example, I might require at least Windows 2000 so that I can use an infra-red device (Windows NT didn't support that). Similarly, in Linux, I might require a certain version of some particular other program in order to support my program's functionality. In order to do this I package my program up with all the pieces with which I can supply it, and then add a dependency list of what versions of what other pieces of software my program will need. For example, there's a nice customisable little utility called Docky, which offers a variety of differing launch bars - Windows style, Apple style, etc. - and my little application might need to live with at least a certain version of Docky.

Once I've made sure that I have listed all the required Dependencies that my program has, I can load it up into a Repository and let people have at it!

When you want to install my program you would normally (for Mint) get it from Synaptic Package Manager, as you can see here. You just click on the item you want and ask to mark it for installation, and the Package Manager reads the package, sees what you don't have installed from the list of Dependencies, and tags them for installation too. Once you're done you tell Synaptic to install everything for you and you let it happen.

So simple! But what if what you want isn't on offer? Then you have to do it yourself. Here's an example.

I have a rather nifty little box (a Canopus ADVC-300 - you used to be able to get them from B&H, but maybe now second-hand) that takes in analogue audio/video (like from a videocam) and spits out a digitised version on an IEEE Firewire cable. Happily my PC has a Firewire socket.

To the right you can see the front (over) and back (under). You plug your RCA jacks into the front and your Firewire cable into the far-left socket on the back. Ever so neat and it gives you 1080p - quality pictures!

Anyhow, the best program for pulling in the feed from this is one called dvgrab (Digital Video Grabber). You run it from the command prompt and it just does its thing until you turn it off. For demonstration purposes this is how you go about it:

Open a command prompt and go to the folder in which you want the incoming files to appear. I start in my own folder ("mirwin") here, so I have to go up one (cd ..  just like in DOS!) to "home" and up one again to the root before I can go down to "media", down to B2 (the name of the hard drive I want to put the video on) and down again to the "canopus" folder. I'm sure that there are easier ways of going directly to it, but I remember the tree structure and find my way more easily like this!

mirwin@Bonobo ~ $ cd ..
mirwin@Bonobo /home $ cd ..
mirwin@Bonobo / $ cd media
mirwin@Bonobo /media $ cd mirwin
mirwin@Bonobo /media/mirwin $ cd B2
mirwin@Bonobo /media/mirwin/B2 $ cd canopus
mirwin@Bonobo /media/mirwin/B2/canopus $ ls

The last command above is "ls", standing for "list" (although there is no "list" command!), and I got nothing back because the folder is empty.

So next to run dvgrab, in the (mistaken) belief that it's installed:

mirwin@Bonobo /media/mirwin/B2/canopus $ dvgrab
The program 'dvgrab' is currently not installed. You can install it by typing:
sudo apt-get install dvgrab

So not only does it nicely tell me that I can't run it, but also why not (not installed) and even what to do to go and get it! How friendly!
OK, so I'll type in that weird line and see what happens:

mirwin@Bonobo /media/mirwin/B2/canopus $ sudo apt-get install dvgrab
[sudo] password for mirwin: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
0 upgraded, 1 newly installed, 0 to remove and 50 not upgraded.
Need to get 129 kB of archives.
After this operation, 340 kB of additional disk space will be used.
Get:1 dvgrab amd64 3.5-2 [129 kB]
Fetched 129 kB in 0s (204 kB/s)
Selecting previously unselected package dvgrab.
(Reading database ... 183240 files and directories currently installed.)
Preparing to unpack .../dvgrab_3.5-2_amd64.deb ...
Unpacking dvgrab (3.5-2) ...
Processing triggers for man-db ( ...
Setting up dvgrab (3.5-2) ...
mirwin@Bonobo /media/mirwin/B2/canopus

As you can see, it's quite verbose, but that's deliberate, so you know what's going on and have some chance of catching it if it goes wrong. As I explained above, and as it tells you as it goes along, it reads the list of everything that the package has and needs, works out what all is needed that isn't actually in the package, and then tells you what has to be installed. In this case just the program itself - dvgrab. Then it tells you how much space it'll use and gets, unpacks, and installs all the bits.

Now to run it:
mirwin@Bonobo /media/mirwin/B2/canopus $ dvgrab
Found AV/C device with GUID 0x0020110113001daa
Waiting for DV...
^C""     0.00 MiB 0 frames
Capture Stopped
Error: no DV

So it ran, found the Canopus box (the AV/C device) and waited for it to send some video. It didn't, of course, because I'd not yet plugged in a videocam to the other end, so the box had nothing to send.

So now I can attach my DVR or camcorder to one side of my Canopus box, using cables with RCA jacks, and feed it analogue audio-video signal. From the other side of the Canopus comes an IEEE 1394 FireWire cable that connects to my laptop. In the laptop dvgrab sucks up the digitised signal and saves it to disc in gigabyte chunks, all ready for me to watch using a program like the VLC Vdeo Player.

So that's how you install a simple Linux program. Not that hard after all!


A few photos of Philadelphia

As you probably know, I live on the outskirts of Philadelphia, in New Jersey. What you may not know is that at present I work 39 floors up in the Comcast Center. Here are some pictures of Philadelphia.

To the right we see part of down-town Philadelphia, with the clock tower of City Hall in the middle.

Below is a photograph looking east and a little north, out over the Ben Franklin Bridge and into New Jersey

While taking these photographs a helicopter whizzed past the window! I didn't have a telephoto lens mounted, and it didn't come back, but from this you can see how high up I was!

The Church of Jesus Christ of Latter Day Saints is engaged in constructing a temple in down-town Philadelphia, and here is a birds-eye view of their progress at the end of 2014.

Right is the Seat of the Archeparchy of Philadelphia, the Ukrainian Catholic Cathedral of the Immaculate Conception.

Left is another interesting building in Philadelphia. This is the Cira Center.

Here's another view.

As you can clearly see, it's designed to "feed" off other buildings around it.