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.