Thursday, December 5, 2013

The #hourofcode is coming, and Happy Anniversary!

This is my eightieth blog post, and also marks one year of blogging which- in many ways- amazes me. Firstly, I am amazed that I stuck with this. I don't really remember why I started the blog, but I'm glad I did. Its helped to develop a dimension of discipline that was nascent. Always there. Just waiting for the proper stimulus. Next (and for me this has a certain 'WOW' factor), this post marks the realization of the only goal that I had set for this blog: to have at least one viewer or reader on each continent (excluding Antarctica)... the person that made this happen lives in Trinidad and Tobago! Excluding the United States, I've managed to reach folks in thirty-five countries! And lastly, I've always thought that I possessed some ability at writing- probably not gifted, but possessing the ability to tell a story and turn a phrase.

I therefore extend a heartfelt and humble thanks to all who have taken the time to visit my little corner of the Internet and read my musings.

Okay, time to put the party favors and balloons away. I'd like to switch gears and talk a bit about coding.

Next week, Dec 9-15, is Computer Science Education Week, and a highlight of that week which practically everyone can participate in is The Hour of Code 2013. Of course, those who are not necessarily will cry, "but coding is so [fill in the blank]".

Well, don't fret, because coding isn't [fill in the blank].

For starters, coding IS for everyone. If you can do basic mathematics, you can code. If you don't know what to do or how to get this ball rolling, visit http://csedweek.org/  Its important for this to get out to everyone... coding is not necessarily easy (after all, you actually have to invest some time to learn how to do it), but it is a much in demand skill, and can be quite lucrative. The icing on top of this virtual cake, though, is the cost: many popular languages can be acquired for free, and instruction is also free online for many. Watch the video- chances are you'll recognize someone there (*I'm a geek; I recognized several). will.i.am of the Black Eyed Peas had a great programmer plug- "Great programmers are today's rockstars".

So, what's happening @the Secret Underground Lair? Well, we've played a bit with VB, HTML and a few other more obscure environments in the past, but starting next week we'll start looking hard @Python. I'm pretty excited about this; I hope my enthusiasm is contagious!


Lastly, a few links to older blogs- enjoy!

http://hochspeyer.blogspot.com/2013/02/hard-drives-bane-of-ones-existence.html
http://hochspeyer.blogspot.com/2013/02/it-old-school.html
http://hochspeyer.blogspot.com/2013/02/normal-is-town-in-illinois.html
http://hochspeyer.blogspot.com/2013/02/is-it-steamy-in-here.html
http://hochspeyer.blogspot.com/2013/02/its-time-for-rant.html

As always, I am hochspeyer, blogging data analysis and management so you don't have to.



Monday, December 2, 2013

Data never sleeps

Hey, hey, my, my. I'm not a fan of Neil Young, but that's a great song. It was Saturday night, and I found myself at one of the Secret Underground Lair's remote sites. It was close to midnight- relatively late for this particular Saturday. I had a serious case of the nods, and my trusty Logitech G105 keyboard was threatening to tattoo QWERTY into my forehead if I didn't shut down soon. Just one more small task, really- I had a few titles to enter into the database, then off to La La Land.

I have at least hinted in the past, I think, that we are strong embracers of the dull edge of technology- the bleeding edge moves too fast, costs too much, and loses its sheen in a hurry. So on Black Friday, Daniel hiked over to our local Gamestop in search of a few games, and to get a 1st Gen Wii, RVL 001. As I have a deep and abiding dislike of lines (queues), I opted to drive out closer to midnight. When I arrived, I was shocked to see a group of about forty people waiting in freezing temperature to get into the store, several later emerging with the just released Xbox One. While waiting I ran into Ryan, my cohort in comedy, and we chatted for some time. Well, up until the point where he started freezing- at that point, he went home, and I continued to wait. After about forty minutes, Daniel emerged with a case of the happys. We walked over to the Target store, and browsed around a bit before going home, and then off to bed.

Which catches me up to where I started. We ended having to go back to Gamestop on Saturday, as the Wii was a later Gen, and did not have... wait for it... Gamecube ports. So, he exchanged it, and because of the model, got some store credit- more games were acquired. I decided to enter all of this into the database and call it a night. I clicked the NEW RECORD arrow, and noticed that I had not alpha sorted the table, so I sorted it and much to my surprise, there was a dupe record! I went into Design View, and much to my shock, this field was not indexed. I'd been duped! I went back into datasheet view, and replaced the dupe with one of the new titles. Then, I went back and changed the field property to Indexed (No Duplicates) and saved.

Well, I tried to save. To make a long story short, there were close to twenty duped records in that table of 900+. It took nearly an hour to find all of them and replace them with new data. I was really upset, because I thought I had this under control... as Buford Tannen said, "Ya thought wrong, Dude". Never assume anything- even about your own data!

Which brings me to today (Monday). As I'm working this evening, I'm going to catch a nap. But before that, just a quick peek at the database. Everything is working properly, but I need a query to generate a simple checklist for digital video media (DVDs and Blurays), so I made a simple one and printed... yeah, it wouldn't print. That was ~45 minutes ago. I've had more than enough fun for one day with this- it is nap-thirty.

On a happy note, this post marks the one year of this blog. I'd like to thank the Academy, etc., and cutting to the chase, "AND WORLD PEACE". Yippie kay yay, folks.

Most significantly, I just recently achieved the only objective I had set for this blog: at least one view on each continent (Antarctica doesn't count). 

AS always, I am hochspeyer, blogging data analysis and management so you don't have to.

Monday, November 25, 2013

It was decaf. I swear it was decaf.

I was sitting here, listening to Pat Benetar while Python 3.3.3 downloaded, and it occurred to me that a cup of tea would be nice. The previous cup was indeed normal black tea, and as the hour was fairly late (2200), I made sure the next one was decaf- most manufacturers seem to go to great lengths to differentiate their packaging when marketing a decaf beverage. Not this manufacturer. In their defense, the box is clearly labeled "decaffeinated", but in all other respects the regular and decaf packages look identical.

So @0153, here I sit.

Actually, though, its not as bad as it sounds. I went in to work at 2330 Saturday night, and did not leave until 1100 on Sunday. Yep, I spent three days pretty much of working at a furious pace just to stay ahead of the presses. And this reminds me of a little I.T. anecdote.

At some time in the fog-shrouded past, we all knew someone like this. In fact, you may know someone like this today. This is the person that you always dread telling, "Whatever you do, please don't touch the red button," because you know that they will not let go of the thought of pushing the red button. It will tug at their sleeves, nip at their heels and gnaw at them until, one day- when no one is looking- they push the button.

And it goes- almost without saying- that you will not be there to yell in dramatic slow motion "STOP". When you find out about it, it will be too late. As Foreigner sang, "The Damage Is Done".

Yes, someone could not resist the equivalent of the red button- they loaded files from a folder named "OLD". And, undoubtedly they pictured themselves as the anti-hero of a Michael Bay blockbuster, hitting the load button and then turning and casually walking away while lighting a cigarette as presses explode one by one in slow motion behind him. Who does that? It's unimportant. I was told about it, and so a dozen files had to be recreated. To ensure this didn't happen again, I put the OLD folder into a folder I named, "These are not the files you are looking for" and then put that package into yet another folder which I named, "OLD DO NOT USE". And so, the problem was fixed.

Almost. The same junior genius that tried to load a bad file also copied it over a good one, which meant that those dozen files had just been created a few days prior had to be discarded and re-recompiled. On the plus side, no time or production was lost, as they were able to skip to the next file.

So its been a busy week, and I'm trying to be diligent and get this published, but between the work schedule, the Thanksgiving holiday and Jennifer (and Mr. T) being out of town, this poor blog has just been sitting here collecting virtual dust. I'm happy to report that it appears my Python download was successful. I've been working a bit on Jennifer's PC, among other things cleaning up her Media Player library. Only a little bit of progress to report on the database, but I should have the opportunity to do more work on that this weekend.

That's all the news from the Secret Underground Lair (remote). Until next time, I am hochspeyer, blogging data analysis and management so you don't have to. 

Sunday, November 17, 2013

More thoughts about words- including a bit of geekspeak.

A few days ago I was conversing with Ryan, our resident full-time custodian and occasional comedian. I'm not sure how the topic arose, but at some point the word "scanner" was used. "You know what's funny about 'scanner?'" I said.

"No, what's that?"

"Well, I know about four different ways which that word can be used."  And with that, I proceeded to describe the various scanners with which I was acquainted. In no particular order, the first one is the barcode scanner. These devices are ubiquitous- at stores, information kiosks... most smartphones have a QR and/or barcode app that can be utilize the phone's camera as a scanner. Here in the United States, the Post Office uses these scanners to scan the Intelligent Mail Barcode (IMB) which is found on most mail. While barcodes found on merchandise usually has a code that is attached to a single item and doesn't vary from one identical item to the next, IMBs are serialized- that is, within a mailing (say, for example, a monthly advertising piece), each IMB has a unique serial code. Some of these scanners can also read 2D barcodes. The 2D barcodes are the ones which look like square mazes or puzzles; they are capable of carrying all sorts of information. In contrast to an IMB, which has numeric information such as the postal data, a serial number and the ZIP code, a 2D encodes alphanumeric information; the addressee's full name, street address, city, state, ZIP code, and (depending on the size of the 2D), additional information.

Next is another type of optical scanner- the computer scanner (and the closely related photocopier, and fax). They all do pretty much the same thing: take a picture of something and make a paper copy of it. The duties of these machines have blurred quite a bit, with copiers able to fax or copy to file, faxes able to copy, and multifunction printers can even output photographs from file, hardcopy, or even old photonegatives or slides.

Next is the RF, or radio scanner. This is the classic "police radio" that is often talked about in older movies, where the whiz-kids hear a dispatch on their radio and end up nabbing the crooks before the cops can get there, or more recently, when Mr. Incredible and Frozone hang out on "bowling night" waiting for a police dispatch so that they can be super heroes again in a world where super heroes are outlawed. I used to sell these, so I'm a little familiar with their use.

Lastly, the CSRs where I work use scanners. These are a mystery to me... I'm not sure even if they're made out of paper or acetate, or what their purpose is. And while I realize that's pretty lame, its still another legitimate use of the word.

I had another data epiphany a few days ago, and this one solved an issue I had raised one or two blogs back- that being how do I know when a title has a corresponding entry (or entries) in the main Media table? I tested out adding a "check" column to the Media_Title table, but almost immediately discovered its Achilles' Heel: I could tell if the title was in use, but I could not tell exactly how, or for that matter, how many times. The new method uses the same table that the main Media table uses to categorize a piece of media- CD, DVD, etc., but allows for multiple entries. This is a god thing, as titles tend to repeat.

As always, I am hochspeyer, blogging data analysis and management so you don't have to,

Wednesday, November 13, 2013

11.12.13 (or, 12.11.13 depending upon one's location)

For whatever its worth, I usually take note of "special" number days- maybe its the geek in me, but I usually wish someone a hearty "Happy (fill in the number) Day!" It makes me geek-sad to realize that they don't always get it. For example, although it is nearly universally known (at least among my circle of family and friends), not everyone celebrates or is even aware that March 14th is Pi Day... I think even in parts of the world where this is rendered as 14.3 rather than 3.14, in the spirit of Pi the day is celebrated.

Of course, there wasn't much time for celebrating or even well-wishing as today was a work and a workout day. I got in relatively late Tuesday morning, and for some reason did not fall asleep too quickly. This may have been related to the pain in my knee, which does not takes sudden drops in temperature gracefully. A few days ago the temperatures had been in the mid- to high-fifties F (~11-15 C), but the past two days saw a sudden, dramatic drop- at one point the weather service on my phone said eighteen F (~ -8 C)! I had taken some of my over the counter medication in the morning two days in a row, but I still had a fair amount of tightness and discomfort. So today, after we got gas in the truck, we headed off to the gym. I spent about fifty minutes on the upstairs track, getting in nearly three miles (~4.8km). This did more than the drugs, and my knee felt nearly normal when I went to work this evening.

In the wonderful world of data, I finally pulled myself away from a few online distractions and added the check field to the Media_Title table. After such a (relatively) long lapse in development, I was glad to finally be able to get a little bit back on track. However, I ran into a problem right from the start: I had to keep switching between the two tables in order to synchronize my activity. I'm sure there's a way to automate this, but even if I knew how to do that, it would not work in this situation.

You see, to the best of my ability I've striven to keep the database as near to normalized as possible right from the start, and the existence of a Media table and a Media_Title table is a reflection of this. While each recording or publication may be unique, titles are often shared. In fact, as media has evolved, titles of the same work have been duplicated even in our small collection- to the point that we might now have even a print title in hardcover, softcover, audio, Kindle or .txt format. Ditto Music- vinyl, cassette, CD, mp3. And then there's video- VHS, DVD, Blu-ray and probably a few others. The whole point of the little parade of formats is this: in order to normalize, the title must come from another table... it saves a lot of brain pain. 

One little bit of progress was made just moments ago- I discovered that even on my relatively small LCD display on the computer I usually use in the Secret Underground Lair, I am able to display downsized windowed versions of the two tables side-by-side, so this may speed the process somewhat. I may also have the opportunity to use a PC with a larger monitor to expedite the process. We'll just have to wait and see.

Until then, I am hochspeyer, blogging data analysis and management so you don't have to.

Saturday, November 9, 2013

Swinging on a star

I've mentioned a few times that I really love music, and it is the original basis of my database. And while I think the cloud is a pretty neat idea, I am practical enough (paranoid, perhaps) to know that if I store my data in the cloud, it could be gone without warning. More and more, tech writers seem to agree in their writing that the cloud is not a matter of technology- its a matter of trust. And to be honest, most of the data I have on electronic storage devices is not important in the grand scheme of things, nor does it have great value, nor is it particularly embarrassing.

Still, its my data, and I don't intend to lose it should an ill wind suddenly blow my cloud away (Mick Jagger apparently was concerned with his personal cloud as early as 1965, in Hey You Get Off of My Cloud). So, I safeguard my data by keeping it local. One of the best ways this happens is demonstrated by my music collection. I do purchase .mp3s from time to time, but I prefer having the music on CD. If I do purchase a song or find a free mp3 (Amazon offers freebies, as do several other legitimate sites), I usually try to burn it to a CD, or at least make a copy to be burned at a later date. When Jennifer and I go to the local Goodwill store, the first section I peruse is their music. This past Sunday, we went there and someone had donated around fifty recordings from the Forties through the early Sixties. I picked out eight. Swinging on a Star by Bing Crosby was one of the songs on one of these collection discs (each has over twenty songs). I really enjoyed listening to it just now, but the funny thing  (and please don't think less of me for it) is that I think I like the version sung by (of ALL people) Bruce Willis and Danny Aiello in Hudson Hawk. Yup. And I generally am a purist, preferring the original recording  to covers.

Update: I started writing this a few days ago (hmm, have I said that before?). Work has been crazy-busy... I don't complain about that, really, because I still like to eat! As I ended Friday with overtime, the work I anticipate on Saturday will put me well over fifty hours- and we really do need the money, so I consider it a blessing. However, as a knowledgeworker with I.T. interests outside of my job, these hours can be a bit challenging. The most visible example is this blog: it often languishes for days from start to publication date. However, I don't force what I publish, and having what I consider to be a naturally terse writing style, I don't try to add a bunch of words just to make a piece a decent length. So, if I have nothing to say, I write nothing.

In a tweet the other day I remarked that epiphanies are easier to conceive than to execute, which fits perfectly here. In the evolution of my database, I've run into a bit of a conundrum: to simplify data entry, I've been adding records to subtables prior to adding the info to the primary table. This leads to a problem of not knowing which subtable data has been updated into the primary table.I think the solution is pretty simple- I say "think" because I have not tested it yet. The plan is to add a field to the affected subtables which denoted if a record has been added to the main table. Not rocket science, but the database is evolutionary rather than revolutionary, so I can't complain too much.

As always, I am hochspeyer, blogging data analysis and management so you don't have to.

Sunday, November 3, 2013

Polyglots and linguists and speak Engrish please, oh my! Or, why English is not easy.

In previous posts I have mentioned that I am a contractor at what is considered a mid-sized firm in the United States. I know a great deal about this firm, as I was once an employee there. As a contractor, I'm working pretty much the same evening-night-wee hours of the morning shift that I'd previously worked, and with the same group of people.

About six months back, I made an observation: not including myself (as I was not an employee), only one person out of the five who worked at night was a native English speaker (and the one who was a native, born in the USA speaker, was of Mexican heritage and fluent in Spanish). I'm reminded of this because I just found out that one of my coworkers- who has been with the company for over twelve years- is leaving at the end of this week.

Charly- sometimes known as Chaz or Chazbaby, taught me quite a bit, and I'm grateful for this. I also helped him a bit with English, and he eventually grew to trust my judgement and expertise in linguistic matters enough to ask my advice when he needed to write some serious stuff, such as our nightly job status updates, or when he needed to be perfectly clear on his motorcycle forum. After a bit of digging, it seems that it was George Bernard Shaw who originally came up with the idea of "two nations separated by a common language". Although Mr. Shaw was referring to Great Britain and the United States, his truism can also be applied to the United States and the Philippines. And one need go no further than Charly to prove this.

According to wikipedia, there are approximately 206 nation states, sixty of which claim English as their official or primary language. The Philippines is one of these. However, just because one speaks the language, it doesn't mean one speaks the lingo.

Charly loves humor, and growing up near Manila, I don't think he experienced much in the way of classic American humor. For example, he was only recently introduced  to the classic Laurel and Hardy Who's On First routine. He found a clip of the routine on YouTube, and I think the first night he played it for a solid hour.

My experiences with Charly over the years have underscored for me just how difficult American English must be for someone to learn. He grew up exposed to a form of English in Manila, but to the American ear it sounds accented and just plain odd at times. For example, I understand that in Tagalog gender is not associated with pronouns, so that when he is talking about his wife, Charly will use "him" or "he". Ditto with his daughter.

Much of American English is contextual. For example, in English if I wanted to say, "I give the milk to the cat", because of the way that the words are positioned, one understands that I am giving milk to a cat. However (in German, for example) I would say (write) Ich gebe der Katze die Milch (English: I give to the cat the milk).

I'm not sure what else to say at this point. I wish Charly the best, and English is what English is.

As always, I am hochspeyer, blogging data analysis and management so you don't have to.