Thursday, October 27, 2011

Automatically Tweeting with a QR Code

To continue with my QR fever, I've been looking into what can be easily automated using QR codes.

The first thing I found is how to tweet from a QR.  This is fairly easy since any QR can contain a URL; So, the only thing needed is a URL that will tweet.  A quick search on the web revealed this.

Use these codes for special characters – (%20 is a space) (%40 is @) (%25 is #) (More here).  Given that, you could even include a mention, a hash tag, or even a tiny url.  I'm trying to figure out how to include a location in a tweet, but that's proving more difficult.  If anyone knows how to do that, please let me know.  Once you have the text, you can put it into the QR code generator on Google's chart API.

The next thing I found is how to make a QR code to get someone to Facebook.  Unfortunately, there's not really an easy way to get people to 'like' something on Facebook by just scanning the code.  What you can do is point people to your Facebook page (or to any URL really) and hope they like it from there.  One thing you can do is point them directly to a 'like' page within Facebook.  This is accomplished by creating a URL like this:

Click on the link above to see what this looks like.  You can replace the href= with your own URL (like href=  This will bring up a very small like button that the user can then click on.  The nice thing about this is that if they're already logged into Facebook in their browser, they'll get a richer experience.

Turns out sharing something to LinkedIn is pretty easy.  I used the qr generator at QR Stuff to figure out the link:

I thought it was weird that the colon needed to be translated but that the forward slashes did not.  If you find that you need it, the URL code for a forward slash is %2F.  As you can see by clicking on the link above, the forward slashes do not need to be encoded for the share to work.

My next goal will be to figure out how to enable location based check-ins through Facebook and twitter.  If anyone already knows how to do that, let me know.

Wednesday, October 26, 2011

Using QR Codes to Share Contact Information

I recently saw a QR code at the entrance to a local hobby store here in town and decided to see what would happen if I scanned it with my camera. Since I already have a QR reader app on my phone, I fired it up and took the shot. I was startled to see that my phone now had a contact screen showing the contact information for the store, hours, website, etc. It was pretty cool, especially since the store is a local store that has nothing to do with high technology.

Since then, I've decided to get ready for CA World by seeing how hard it would be to put my own contact information into a QR code. Then I could paste the QR code onto my badge and quickly and easily share my contact information with other people at the convention. It took a while and I learned a little bit, but here are the results:

The best place I've found to generate a barcode was (surprise, surprise) Google. They have a chart API that you can use to build charts and display them on web pages. Very cool. As it turns out, all QR codes are really just text. You start by embedding contact information in a very simple markup (popularized by NTT DoCoMo), then pasting that into the QrCode chart type.  Tweak the parameters and you end up with a nice little code that can be read by most scanners.

The trickiest part is to format the text using the markup language.  For example:
MECARD:N:Stuart Weenig;URL:;

would result in this QR Code:

In order to embed more information into the code, just add fields.  For example, you can add one or more telephone numbers.
NameN:Designates a text string to be set as the name in the phonebook. (0 or more characters) When a field is divided by a comma (,), the first half is treated as the last name and the second half is treated as the first name
Phone NumberTEL:Designates a text string to be set as the telephone number in the phonebook. (1 to 24 digits)
Video Phone NumberTEL-AV:Designates a text string to be set as the videophone number in the phonebook. (1 to 24 digits)
E-mailEMAIL:Designates a text string to be set as the e-mail address in the phonebook. (0 or more characters)
MemoNOTE:Designates a text string to be set as the memo in the phonebook. (0 or more characters)
BirthdayBDAY:Designates a text string to be set as the birthday in the phonebook. (8 digits) The 8 digits consist of the year (4 digits), month (2 digits) and day (2 digits), in order.
AddressADR:Designates a text string to be set as the address in the phonebook. (0 or more characters) The fields divided by commas (,) denote PO box, room number, house number, city, prefecture, zip code and country, in order.
URLURL:Designates a text string to be set as the homepage URL in the phonebook. (0 or more characters)
NicknameNICKNAME:Designates a text string to be set as the nickname in the phonebook. (0 or more characters)

Another idea I had was to tape a QR code on the back of my phone. So that in case it gets lost, someone can at least know who it originally belonged to. This would also make it easier to share contact information with just about anybody.

Thursday, October 20, 2011

Techno Nursery

We're getting ready for 2 pair of little feet destined to arrive around February.  As such, I've been preparing the nursery.  I finished the moulding (still need to touch up a couple places) and got some bookshelves in.  As usual, I wasn't satisfied.  I needed to tech-ify the room.  So, I had a couple ideas:

Idea #1: Remote Lullaby
Over the last few months, I started collecting lullaby music into a playlist (thanks, Jewel for the inspiration and the starting tracks).  I even burned a CD so I could pop it into the little CD player/radio we put in there.  However, I knew that wouldn't do.  So, I dusted off the old Dell Hybrid pc and installed it behind some books on one of the bookshelves.  I dropped a network jack into that room and set it up as a headless pc.  The idea is to connect some small speakers and use the remote app on my iPhone to control the streaming of the lullaby playlist from my desktop to the nursery.  The idea being that I could roll over in bed and start up a lullaby without even getting out of bed.  So far so good.  Just gotta pick the speakers that are going to be connected to the pc.

Idea #2: Baby Monitor
Luckily for me, someone had already come up with a good way of doing this.  It only took about 20 minutes of searching on the web before I found JumiTech.  They have built an agent and an iOS app that work together to stream video from a webcam to an iOS device.  So, I installed their agent, plugged in a very, very old webcam from the garage, spent 20 minutes getting a driver that would install, and installed the app on my phone.  I started up the agent then started up the app on my phone.  After a couple of clicks (no serious configuration) I was looking at my face on my iPhone from the point of view of my little old webcam.  Very slick.  Next step is to purchase a night vision enabled webcam to see if it will work.  I should also be able to view the webcam from anywhere on the internet, thanks to UPnP.  I've disabled that for now, but we'll see if it becomes something I will enable later.  The agent supports audio, but since the webcam doesn't have a microphone and also since it only streams audio when connected, this won't work as a complete baby monitor replacement.  However, it's very cool that I can just rollover to my nightstand and within a couple clicks see into my nursery.

If you have any ideas for cool technology improvements for the nursery, I'd love to hear about them.  What else can I do with a network connected PC in the nursery?

Tuesday, October 11, 2011

How to use APD

APD (Application Performance Dashboard) is a very useful widget in NPC.  It allows the report designer to create a crosstab-like report showing the performance of a single set of networks when connecting to multiple applications.  The nice thing about this is that application traffic can be consolidated into a single view that is easy to troubleshoot.
The first thing you do is determine which network group to focus on.  If you've followed my best practice and created and 'All Sites' group, this usually becomes a great group to use for the network.
The next thing to do is to configure which applications these networks should connect to.  In order to see which of your SA configured applications are your front end, you can go to SA and look at the performance map filtered by the 'All Sites' network group.  The applications listed with the highest observation counts are probably your front ends.
After that, you can configure the back end applications.  The easiest way to do this is within the wizard itself.  Click 'add second tier' and look for the application with the highest observation counts.  APD counts a second tier application whenever it sees the server(s) of a front tier application acting as a network and connecting to the second tier application.  The same applies to a third tier application.

If you have a load balancer that only changes the destination address (and not the source address) on incoming packets, the true second tier application will appear as a first tier application.  In that case, add the true second tier application as a first tier application to the APD.

Friday, October 7, 2011

Hiding the D: drive (the restore drive) from Windows

Most computers today come with the hard drive split to look like 2 hard drives.  The reason manufacturers are doing this is because one is used for the computer and the other contains all the files necessary to restore the PC to factory settings (reimage the pc).  Since that partition is usually sized so that it doesn't have that much free space, nobody ever uses it as extra storage space.  As a result, it's pretty much a useless drive until you need it.  So, why not hide it from the operating system?  It could be done, but the manufacturers don't want to take the time to do it.
Taken from
Open regedit and navigate to HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
The NoDrives key most likely does not exist by default, so you’ll need to create it with right-click \ new 32-bit DWORD and name it NoDrives.
This value is a 32 bit number, and the bits are arranged in reverse order with a value of 1 hiding that drive. For example, if we wanted to hide drives A: and F: we would arrange it like this:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1

Converting 100001 to decimal we end up with a decimal value of 33 or a hex value of 0×21, so if you double-click on the key in the registry editor, choose Decimal and then enter 33 into the value field.
In order to see these changes, you’ll need to restart explorer.exe, which you can do easily from Task Manager or the longer way by just logging off and back on.

Thursday, October 6, 2011

NPC Sites and Groups 7 of 7: GXMLG - Exporting the Configuration Files

Part of a series of posts.  To see all posts, click here.

Once the sites and networks are completely configured in the tool, configuration files can be generated for NPC, NetVoyant, SuperAgent, and UCMonitor.

Before an NPC configuration XML file can be generated, the tool need s to know the path to the ‘All Sites’ group. If an XML file was imported that was exported from an existing ‘All Sites’ group, the tool extracted this information from the XML. If a CSV was imported or the Sites/Networks list was built manually within the tool, this setting must be input manually on the ‘Import’ tab of the tool.

Three other settings of importance exist on the ‘Import’ tab: NVDatasource, SADatasource, and UCMDatasource. If the values of these fields are set to ‘true’ the tool will include rules in the NPC XML for that type of datasource. The tool will also include CSV outputs for those data source types. Setting the value to anything other than ‘true’ will exclude that type of data source output.

There are two options for exporting the configuration files. On the ‘Export Config Files’ tab, the ‘Export All Config Files…’ button will prompt for a location to output the files. The tool will save the XML and CSV files in that target folder. Those files can then be imported into their corresponding products.

The other option for export is to click the individual generation buttons. These will generate the output and place it into a text box in the tool. The text could then be copied and pasted into a text editor to save the files.

Wednesday, October 5, 2011

NPC Sites and Groups 6 of 7: GXMLG - Automatic Config File Generation

Part of a series of posts.  To see all posts, click here.

At this point, this is all the information strictly needed to start with a Sites/Networks list and end up with a fully populated Sites group in NPC, a NetVoyant that should be discovering all devices at all sites, a SuperAgent that only needs an active monitor port, and a UCMonitor that only needs an active monitor port (if monitoring only Cisco telephony).

The obvious next step is to implement this into the product in such a way that this configuration is done in NPC and synchronized to the sub-products. However, since CA is currently sans an NPC Product manager, we’ll have to suffice ourselves with a third party tool.

Tuesday, October 4, 2011

First impressions of the iPhone 4S

I just finished watching the keynote video for the iPhone 4S. I have to say I am impressed. I am really excited about the release of the new iPhone, but I think I'm more excited about the release of iOS 5.  In my household there are two iPhones and an iPad, so the release of a new operating system is more exciting to me than a new device.
The release of Siri could turn out to be revolutionary or it could flop. There have been other voice recognition technologies, however none have used real English language commands. For example, Windows 7 and Vista both include voice recognition technology, but in order to use that you have to stick to a pre-defined list of commands.  The fact that Apple's new device allows you to speak to it in normal words could mean success where others have failed.
iOS is set to release next Wednesday, so, I'll give a full review of the new features when I get it installed.

In the mean time, I've promised a review of the Boxwave clip-on keyboard for my iPhone.
All in all, it's what I expected.  I hoped for a physical keyboard.  Here are the pros:


  • It was incredibly easy to setup.  I have used Bluetooth before, so I was familiar with the general pairing process.  It wasn't any different from any other Bluetooth device I had ever used.  
  • It's Bluetooth, so it doesn't require any cables and it doesn't occupy my sync port.
  • It is a physical keyboard, so typing on it has been an improved experience over the virtual screen keyboard because of the added real estate and because of the tactile nature of a physical keyboard.
  • It has a 'show/hide keyboard' button that allows me to show or hide the virtual keyboard just in case I ever want to go back temporarily.  I've actually had occasion where using the virtual keyboard was better (I'll explain in the cons).
  • It has arrow keys!  I can use the arrow keys to move the cursor around.  This is especially helpful when i'm editing text that I've typed incorrectly.  I can go back to the mistake without having to erase everything after the mistake and do it again.  The arrow keys also allow for 'home' and 'end' functions, especially helpful when typing.
  • Charging - while the keyboard is charging, there's a light.  When it's done charging, all the lights go off.  This is disconcerting because I came back after an hour of charging it the first time and I thought the charger had become unplugged and it hadn't been charging.  I discovered that about 20 seconds after unplugging it and plugging it back in, the charge light went out, hopefully indicating a full charge.  After a few charge cycles, this is indeed the behavior.  It was not documented anyway.  Boxwave, put a green light on there that lights up when it's fully charged.
  • They keyboard is not lit - the keys on the keyboard are not lit up which means that when it's dark, I can't use the keyboard.  I fumble around for the 'show/hide keyboard' button (or just power off the keyboard) to force the virtual keyboard to come up and I can use it like normal.  So basically, when it's dark, the keyboard is dead weight.
  • The apostrophe requires a function key to be pressed.  This is annoying since there are other keys, like the equals sign, that don't require a function key.  The apostrophe is going to be much more utilized than the equals sign.
  • Function/Shift keys - the keyboard has a plethora of function keys to allow numerals and additional characters, which is great.  However, when typing in a long string of numbers or special characters (think :-)), I can't just hold down the function key.  I can either press and depress the function key between each character (frustrating) or I can double tap the function key to go into function lock (double tap again to undo function lock).  While both of those options are great, I'd also like the ability to just hold down the function key and put in all the special characters I want.  Same goes for the shift key.  That way, it acts more like the keyboards I've been using for the last 30 years.
  • Autocorrect - now that I'm using an external keyboard, iOS' internal auto correct feature doesn't always work.  For example, if I type 'i', it doesn't get corrected to 'I', nor dont to don't.  Nor does it automatically capitalize the first word in new sentences.
That's pretty much it for now.  If I come across any other glaring problems, I'll post them.

NPC Sites and Groups 5 of 7: UCMonitor Locations and SuperAgent Networks

Part of a series of posts.  To see all posts, click here.

UCMonitor Locations
As mentioned before, the relationship between NPC Sites and UCMonitor Locations should be a 1-to-1 relationship. Locations should be named the same way the locations are named in NPC. All that remains is to ensure that the networks that correspond to each site are added to each corresponding location.

UCMonitor locations can be imported via a CSV file. The syntax is described in the Installation Steps documentation and is shown below:

Saturday, October 1, 2011

NPC Sites and Groups 4 of 7: NetVoyant Discovery Scopes

I have a philosophy about NetVoyant and discovery scopes. I believe that NetVoyant should be opened up to all segments of the network. Most people disagree saying there’s no need to discover workstations and printers.

While I agree that there’s not much value in discovering or polling people’s desktops or laptops nor network attached printers, there are mechanisms built into NetVoyant that allow partial discovery of those devices without using licenses. In fact, NetVoyant is setup by default to ignore workstations and printers. During discovery, NetVoyant will attempt to get the sysObject OID. Based on this sysObject OID, NetVoyant knows what type of device is being discovered. If it is a workstation or printer, it will be classified as such and placed into the workstations or printers group and discovery will halt for those devices.

The best scenario will depend on each individual situation. I’ll detail a middle-of-the-road solution that should work in indecisive situations.