Wednesday, November 23, 2011

NPC Application Groups

As mentioned in a previous series of posts, when building groups in NPC, there needs to be a 'Reporting Groups' group.  Expanding on the need for reporting groups, I figured I'd detail exactly what should go into that group and how to work with it.

The most important group that should exist in the reporting groups is an application group.  This application group doesn't contain any objects of itself and really isn't used for any reporting.  It's just there to assist in managing the groups that it will contain, namely application groups.  While the strategies outlined in my previous posts build the groups needed to organize the geographical layout of your infrastructure, the Applications group is where the logical layout of your applications is built to facilitate reporting on individual applications.

Monday, November 21, 2011

What a unified object model means

After spending some time talking with customers at CA World, I've realized that not everyone gets the vision of a unified object model.  The other observation is that even though QR codes are everywhere (and I mean everywhere people, open your eyes!), half of the self proclaimed "techies" out there have no clue what a QR code is.  To continue with this tangent, I can't wait until we have 3D detectors on our phones and can keep them in our pockets.  Along the same line, just wait until a phone in your pocket can pickup and store the information encoded in 3D QR codes you pass by every day.  But I digress.

A unified object model is a method of designing systems so that they all have a concept of the types of data objects with which they will all interact.  For example, gohastings.com knows what a DVD is.  When I search, I can search for just DVD's or I can include books and video games.  This is a simple example, but the fundamentals are the same.

As for network monitoring software, it is essential that any user interaction interface know about the different types of objects contained there.  It is my understanding that this is one of the main goals of the Catalyst project at CA.  Before anyone out there begins to argue, I'm not saying that this is the most technically direct definition. I'm trying to boil it down.

NPC actually already utilized a somewhat unified object model, implementing a concept called context.  Context is refers to the object of focus of a control or page.  For example, one type of context in NPC is the interface context.  The interface context allows NPC to understand what an interface is and what products report data pertaining to interfaces.  ReporterAnalyzer (aka NFA), eHealth, and NetVoyant all deliver interface based statistics.  Since NPC knows what an interface is due to the object model implemented, it can deliver a mix of information from all three products.  The object model in NPC has its limitations, however CA has promised to expand that model (Catalyst).

For me, some of the most important contexts are group, site, application, server, router, switch, generic IP based device, interface, CPU, and memory, among others.  While it would be good to have a complete list of all the basic and intermediately complex contexts, what is most important is that context be extensible.

NetVoyant actually accomplished this in part due to the nature of the self certification process.  While top level contexts were fixed (group, router, switch, server), the child objects could be extended by building a new certification.  The advantage of this is that NetVoyant knew about every different type of child object.  Whether it was a temperature probe, a UPS battery, or a server case intrusion detection switch.  Also, every context had its own set of pages.  Which meant that when I drill into a battery, I always see battery related data.  When I drill into an interface, I always see the same interface report with the same layout, with the same types of graphs.  The only difference was the object focused on.

One of the limitations of the NetVoyant object model was that it only partially allowed for different types of devices.  While drilling into a server, a switch, or a router took me to their individually designed and tailored pages, any other type of device (firewall, WAP, wan accelerator, et al) would always take me to the same set of 'generic device' pages.

To some extent, this is the point of a unified object model.  Implementing the knowledge of how objects interact with each other and what kind of data is associated with each type of object.  Along with this, Catalyst seeks to unify how systems interact with each other when requesting information about each type of data.  By unifying and classifying this data and standardizing how the data is shared, more integrations can be made with less effort.  And that's the whole point of a unified object model.

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.

Twitter
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.

http://twitter.com/home?status=insert%20your%20message%20here

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.

Facebook
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:

https://www.facebook.com/plugins/like.php?href=http://stuart.weenig.com

Click on the link above to see what this looks like.  You can replace the href=http://stuart.weenig.com with your own URL (like href=http://www.facebook.com/NetQoS).  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.

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

http://www.linkedin.com/shareArticle?mini=true&url=http%3A//stuart.weenig.com


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.

Locations
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:http://stuart.weenig.com;

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 howtogeek.com:
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:
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
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:

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.
Cons
  • 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.

Friday, September 30, 2011

NPC Sites and Groups 3 of 7: Building the Groups

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

Back when NPC underwent a dramatic set of upgrades, one of the new features was the group tree. Administrators could now create groups of monitored objects that could be applied to pages as filters. Recently, the NPC developers added a context page so that users could actually drill into a site. Instead of applying a filter, NPC would take the user to a set of pages specifically designed to show a set of site overview reports for the objects in the group. These site groups are crucial to implementing the best group structure.

Calling back to a Best Practice document written by NetQoS several years ago, NPC administrators should create five groups under the root, /All Groups: All Sites, Regional, Line of Business, Reporting Groups, and zExcluded Items. Optionally, a sixth group could be added, zRetired Groups, where groups that should no longer be used can be retired without actually deleting them.

Thursday, September 29, 2011

NPC Sites and Groups 2 of 7: Building the Sites/Networks List

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

Before any thought can be dedicated to configuring the products, a good Sites/Networks list should be compiled. The Sites/Networks list should represent the smallest building blocks for reporting groups. Ideally, if you wanted to report on anything smaller than one of these sites, you’d report on an individual device or poll instance.

This list may already exist in some form or another. You’ll probably need to clean it up a bit. Whether you start over fresh or take an existing list and clean it up, you should have a list similar to the one shown below. Columns could be added to the right to include metadata about the site like Line of Business or Regional membership. This information is not required to implement this best practice, but can help when filling out other groups. The information I’ve provided below will be used as an example throughout this document and should hopefully exemplify most of the complex situations possible in corporate networks.

Site NameNetworkLine of BusinessRegion
New York10.1.0.0/16Sales OfficeNA
Los Angeles (Bldg 1)10.2.0.0/16, 10.3.0.0/16CorporateNA
Los Angeles (Bldg 2)10.4.0.0/16, 10.5.0.0/16, 172.16.1.0/24Corporate, Sales Office, Data CenterNA
London10.100.0.0/16Sales OfficeEMEA
Singapore10.150.0.0/16, 192.168.150.0/24Sales OfficeAPAC
Table 1: Raw Sites List

Now that the sites list is compiled, it needs to be cleaned up a bit. The Los Angeles site is actually two sites. Also, Bldg 2 of the Los Angeles site is comprised of three different network segments, each serving a different line of business (LOB). I recommend treating each of these network segments as separate locations. Most reporting will want to segregate data center operations from the corporate network infrastructure monitoring. Also, since Corporate and Sales are two different LOB’s, splitting them into different sites will allow easier reporting by LOB later on. After cleaning up the raw Sites/Networks list, we end up with the list shown below:

Site NameNetworkLine of BusinessRegion
New York10.1.0.0/16Sales OfficeNA
Los Angeles (Bldg 1)10.2.0.0/15CorporateNA
Los Angeles (Bldg 2 - Corp)10.4.0.0/16CorporateNA
Los Angeles (Bldg 2 - Sales)10.5.0.0/16Sales OfficeNA
Los Angeles (Bldg 2 - DC)172.16.1.0/24Data CenterNA
London10.100.0.0/16Sales OfficeEMEA
Singapore10.150.0.0/16, 192.168.150.0/24Sales OfficeAPAC
Table 2: Final Sites/Networks List


You’ll notice that I’ve added to the names of Bldg 2 to make them unique. Also notice that I’ve simplified the network definition for Bldg 1 since the two subnets were consecutive and could be summarized using a smaller subnet mask.

To be continued...

Wednesday, September 28, 2011

NPC Sites and Groups 1 of 7: The Philosophy

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

A while ago, I started building a document that detailed the best practices I had developed around groups and sites in NPC.  I applied to present this at CA World this November, but the new direction of CA World wasn't compatible with this type of presentation.  As a result, I'm going to post my findings here.  I'll post the sections individually then maybe post the whole thing later as a single document.  I've also built a little applet (using my limited programming skills, so be nice) that takes a majority of the manual work out of following these best practices.


The Philosophy

After having setup countless instances of the NetQoS suite of products and after the most recent release of SuperAgent, I’ve stumbled upon a discovery that I think is significant.  Frankly, I’m surprised no one at NetQoS has realized or built on this relationship.  Perhaps they have, but due to the recent evacuation of NetQoS talent from CA, no one has stepped in to fill the gap.  This is why I’m writing these posts.
This discovery came after being tasked to revamp the group structure in a NetQoS Performance Center (NPC) installation.  At the same time, a request came in to clean up the locations in Unified Communications Monitor (UCM).  It was then, that I noticed that the information required for both was essentially the same.  I needed to know what locations we had and what subnets were in use at those locations.  Not long after that, I realized that the same information is needed, although in a slightly different form, for SuperAgent and NetVoyant configurations.
Therefore, in order to configure four of the NetQoS products, one set of core data is required.  There are obviously other pieces of the configuration that are required to get the best monitoring.  In these posts, I’ll detail how the Sites/Networks list can be used to best configure the core NetQoS products.

To be continued...

Tuesday, September 27, 2011

iPhone5 Release Date Heavily Hinted

Apple has issued invitations to a press conference that can only mean the release of iPhone5.  The only real question I have is whether or not iOS 5 will come out at the same time.  Nobody outside of Apple really knows and those inside Apple aren't talking.  However, since I already have 2 iPhones and an iPad, I won't be running out to get another device to replace the perfectly good one I already have.  It looks like I've entered the friend zone with Apple.  The friend zone is the place where you aren't really affected by the huge, amazing, wonderful, new stuff coming from a provider and instead have to deal with being a second rate citizen to whom the provider isn't really interested in since you've already spent your money with them.

Too many companies ignore the customers in the friend zone.  How many times have you seen your internet provider offer a deal for home internet that's at least half of what you're paying now for internet, but you don't qualify because you're an existing customer?  Or a mobile phone provider/carrier?

Look people, you wouldn't have to spend so much money attracting new customers (who, face it, were probably at one point in the past one of your loyal customers) if you extended the new offers to your existing customers as well.  I wouldn't even consider leaving my current internet provider if I got the same deals that new customers get.  I'm not saying they have to automatically give me the deals new customers get, but at least don't disqualify me.  If I'm willing to sit on the phone for 2 hours just so I can get a better price on my internet and continue to remain a loyal customer, give me the deal!

Monday, September 19, 2011

I am such a geek

As if you didn't know, I am a geek.  A nerd.  I like Star Wars and I can tell you most of the back stories of all the X-men.  However, tonight I have outdone myself.

Tonight, will go down in history as one of those I-told-you-so moments for Mrs. Moore, my 7th and 8th grade math teacher.  I remember well the day we were given the assignment to produce detailed drawings of our implementations of "constructions".  Constructions were the epitome of geometry.  Constructions consist of using a rule and a compass (remember: that sharp thing with a pencil on the other end that no one knew what exactly it was used for) to make various geometric calculations, like finding the half way point on a line or drawing a line that is perpendicular to another line or finding the center of a circle.  I struggled through them for what seemed like weeks.  It was a 3 day assignment, but I was smaller then so everything else was bigger, right?  I remember at least ten times a day someone asking Mrs. Moore why we would ever need to know how to do constructions.  Well, little did I know...

One of the constructions we had to learn was how to bisect an angle.  It's actually pretty easy once you understand a little about what a compass can do.  Anyway, when hanging crown moulding in a room, when two pieces of crown moulding meet, you have to miter them.  Mitering a piece of moulding basically means cutting it at an angle so that the two pieces that touch actually touch.

Well, when mitering two pieces of moulding, you have to cut the edge of the moulding at an angle that bisects the angle where the two pieces meet.  In other words, if two pieces meet at a 90° angle, each piece has to be mitered at 45°.  If they meet at 135°, each piece is cut at 67.5°.  Well, tonight, I found myself trying to hang moulding with my buddy, Dusty.  He brought his electric miter saw and we thought we would fly through it.  Little did we know.

So, we made some cuts, then had to fix them, then had to make some more cuts.  Eventually we got to a corner where we couldn't get the cuts to match up.  The angle was wierd and we kept going back to the saw to try to even it up.  Then I heard the voice of my 8th grade math teacher when Dusty said, "We need to split that angle in half, whatever it is."

At the beginning of my engineering schooling, I bought a very nice compass set thinking I would finally learn how to use the enigmatic compass.  Eight years later, I blew the dust off it and used it for the first time.  I used the construction I learned in 8th grade and finally proved Mrs. Moore right.  The cut was perfect, the two pieces fit together like the blocks on an Egyptian pyramid.  Well, what do you know: I do need to know how to do constructions for real life!

Saturday, September 17, 2011

And Google+ Takes an Astounding Hit!

Well, the battle between G+ and Facebook is heating up.  Google+ exploded onto the scene with some wonderful new features that instantly propelled it into the ring with heavyweight social networking champion Facebook.  Circles and meetup were desperately needed in a social world where people were limiting what they did on other social networks because of our own dual sided nature.  I only had social friends on Facebook and all my professional connections were on LinkedIn.  I only recently added twitter where I've been mostly posting from my professional life.  Everyone had this problem, so Google stepped up and presented an elegant solution: circles.
Now with G+ you could post something and choose which circle of friends would see that post.  You could put all your professional friends in one circle, your social friends in another, and even make a closer circle just consisting of family and close friends.  It was a stroke of genius on Google's part.  Facebook took a huge uppercut to the jaw right after the round started.
Facebook floundered, modified the chat interface, promised an HTML5 based iOS app, and make a couple other small changes.  But Facebook wasn't out of the game yet.

Monday, September 12, 2011

More BlackBerry woes

In case you hadn't noticed, BlackBerry isn't doing so hot.  According to a comScore report, RIM has lost another 3.7% of the mobile market, giving it up mainly to Google and Apple (See the chart below).
Source: comScore - http://bit.ly/qixHpB
This leads everyone in the mobile industry wondering what will happen to BlackBerry.  Some people have said that BlackBerry still has strengths.  Oddly enough, those strengths are the same ones they have had since before Google even came to market: great keyboard and easy to understand navigation (BlackBerry's the only phone with a right click intuitively similar to Windows' right click).

So what is a washed up mobile phone maker to do when facing obviously superior competition?  Well, they can do what most technology companies do: steal.  What will it take to get Google's Android on BlackBerry hardware?  In that case, it wouldn't even be stealing.  Some people are even talking about this as an alternative for BlackBerry (BlackBerry's Support Forums) and I wouldn't be surprised to see some hacker out there loading Android on a BlackBerry (if they can jailbreak it).  

Another option is for RIM to start manufacturing a bolt on keyboard for iPhone and Droid.  Could you imagine what would happen if Otterbox or Boxwave were to partner with RIM to make a case with a flip out BB style keyboard?  It would be a killer for RIM since they would lose the entire BB-has-the-best-keyboard market.  But really, what else can RIM do?

Honestly, I see BlackBerries running Android within a few years.  It's their only viable option.  

Monday, August 15, 2011

RIM's last chance

Well, in case you didn't hear, Google bought Motorola Mobility (a split off company from Motorola that built their phones).  This is Google's second attempt at manufacturing hardware for mobile phones (the first being the very underwhelming Nexus).  This will make Google much more like Apple and RIM when it comes to mobile phones: they will now make the hardware as well as the software for their mobile phones.  While Google claims the acquisition is in response to the MSFT/APPL led coalition which won the battle over the defunct Nortel's immensely valuable set of patents, it coincidentally lines up Google to directly compete with Apple in the mobile world.

Now that Apple has proven that, given the right spark of ingenuity, it's best to produce the phone and the operating system together, it only makes sense that the largest smart phone operating system builder would follow suit.  They'd be dooming themselves to failure if they didn't.  Microsoft made a similar gamble making a huge deal with Nokia (not an acquisition but more of an agreement) to have them produce the hardware that Microsoft hopes will rocket their mobile operating system (or their unified operating system, does anyone think that will really happen?) into a level of decent competition with their old rival Apple.

All of this begs the question: what about everybody else?  What other players are out there, and will the addition of another 800 lb. gorilla into the market allow anyone else to survive without putting on the gorilla suit?  What will happen to Microsoft (who is pretty much the only other smart phone operating system maker)?  What will happen to RIM (who has had the most dismal of quarters followed by "streamlining" [read layoffs])?

Here's what i see: RIM is betting everything on their QNX operating system.  With good reason, it's supposedly revolutionary (I am not an operating system developer so i couldn't tell you whether it is or not, but the experts have said that it is).  However, RIM is dead set on releasing the next version of their BlackBerry OS for their entire line of phones before dumping that as soon as possible for QNX.

If RIM survives that self induced roller coaster, it could emerge as the next gorilla to enter the playing field.  If not, RIM will not have much choice but to show up in Redmond wearing a short skirt and high heals promising incredible experiences for not much money.  At that point Microsoft (who has never really had any success building hardware for their own operating systems, at least not compared to the success that Apple has had) will have the opportunity to gobble up a hardware maker that is already established in the enterprise market. If Microsoft doesn't screw it up (like Cisco did with the Flip), they may emerge as the next suited gorilla in the market, finally able to compete with Apple and Google.

The other players in the smart phone market don't stand much of a chance at this point.  Who in their right mind would try to build a phone and put Google's operating system on it?  Who could really compete with a Google OS/Google hardware phone using a Google OS/[Any] hardware phone?  Is Samsung up to the challenge?  Who knows.

Tuesday, August 2, 2011

Creating detour loops in powerpoint

Often when giving a presentation i use visual aids.  Since there's nothing like powerpoint out there, i've tried to learn as much as i can about it.  One tip i can give is how to create what i call detour loops.  Detour loops allow the presenter to detour onto another topic temporarily then return to the main topic without losing the flow of the presentation.
This technique essentially uses links that the presenter can use to jump to another position within the presentation and jump back.  So, let's say i'm describing the functionality of a certain piece of software.  I'll give an overview with a slide that has some explanatory text on it.  Normally, when i'm done with this slide, i'll switch over to the software itself and show the student how to do what i'm doing by using the actual software (no powerpoint slides needed for that part).  However, sometimes it can be useful to not show the software itself but rather a screenshot of the software (think large groups or buggy software).  In that case, i want to show some powerpoint slides then resume the show.
Well, on the preceding slide that has the explanatory text, i'll put a link to the slide containing the screenshot.  This slide is actually the next slide in sequential order, but i've hidden it so it normally doesn't show up.  That's the first slide of my detour.  All of the slides in the detour are hidden.  That way they don't show up unless i click the link.  The nice thing is that once you navigate to a slide that's hidden, all the slides after that will show up even if they were hidden.

Friday, July 15, 2011

Google+ and how it will change the world (or not)

This post is not much more than a place holder.  I got my G+ account already (gplus.to/sweenig), but i haven't spent enough time to figure out how or if it will change the world.  I promise it will come.

Thursday, July 14, 2011

New Job

Sadly, I'm leaving RIM after 9 months to pursue a consulting job mainly serving CA customers through installation/configuration services, training/knowledge transfer, and advanced consulting related to the CA|NetQoS suite of products.  I'm sad to leave RIM, especially when things are getting really exciting, but I'm also optimistic about my new position at Enterprise Iron.

Monday, July 11, 2011

Using auto refresh in Chrome

I belong to an online community hosted by CA.  They recently overhauled the website and added a chat feature so you can chat with other community members.  While this is great and functions much like the facebook instant message feature, the page is set to timeout (i.e. log out the user) after 15 minutes.  The timer resets whenever i navigate to another page in the community.  However, if i just open the community page and leave for 15 minutes, i'll end up getting logged off and showing offline to the other community members.  When i was at RIM, i built a simple html based page using an inline frame and some javascript to auto refresh the iframe.  This basically refreshed the page every 5 minutes.  This worked and had to be done this way since i could only use IE.

Now that i principally access the community on my own computer, i use chrome and have found this wonderful little add in that will refresh any page for you.  It's called Auto Refresh Plus. I now have a little button i can press to display a simple clean menu.  The menu has various time options; i pick 5:00 and click start.  Now the page automatically refreshes every 5 minutes.  Woohoo!

Monday, June 27, 2011

How to create a ring tone in iTunes

Turns out this feature used to be built into iTunes, but Apple got greedy so they took it out so most people would just buy ring tones.  While this is dumb, it's perfectly legal to create a ring tone for your iPhone using a song you've already purchased or an mp3 you already have in your library.  It uses the 'fair use' clause of copyright law.  Fair use is the same clause that allows you to use your DVR or make a mix tape all while 'copying' copyrighted content.  It's totally legal.

Wednesday, June 22, 2011

Efficient use of wireless bandwidth

Michael Mace recently posted his second article about the impending doom of mobile executives.  The article (and it's sequel) are very good summaries of the dire straights in which mobile execs find themselves.  They are between the signature rock and a hard place, with either decision they make resulting in the probable loss of their career. 

Monday, June 6, 2011

Best Hurricane Tracking Information

Living in the south and being involved in several hurricane clean up projects, i've acquired several useful links that i monitor during hurricane season to make sure i'm up to date on the current status of anything that may be headed our way.  I figured i'd share this information with the world.

There are usually a couple others that i use, i'm still looking for them.

Friday, May 27, 2011

SNMP Polling vs. Traps

SNMP has been around for decades.  Many manufacturers build SNMP agents into their products so NMS nodes can monitor their status.  There are two ways SNMP can be used to monitor a device: 1) active regular polling by the NMS to the device and 2) traps sent by the device to the NMS.  Unfortunately, many people seem to only know about one or the other method.  I'm approached regularly with requests to monitor a particular set of devices via SNMP.  I ask what metrics they'd like to monitor (approaching from method #1) and they usually respond with the MIB and say, "We want to monitor everything."  After a simple discussion about what they expect should happen, their requests usually come down to wanting NV to be able to receive any and all traps defined in the MIB.  Oh the humanity.

NetQoS: the Next Pure Digital?

After hearing about the announcement by Cisco to officially drop the Flip camera, I have started to wonder about the similarities between Cisco and CA and Pure Digital and NetQoS.  Read this article and then see if i've gotten anything wrong:
Cisco is a big company that has gobbled up competitors instead of beating them at a fair fight.  Just like CA.
Cisco bought a company that could have gone stratospheric but has failed to manage it well.  Just like CA.
Pure Digital customers "[felt] like [they had their] heart ripped out and replaced with a brick.  Just like CA customers.
Cisco didn't apply the right resources to their new golden egg acquisition.  Just like CA.
Pure Digital employees that came over to Cisco will soon be getting layoff notices on their desks.  Every other week, another NetQoS employee leaves CA (John Mao, David Oliver, Lindi Horton, John Catalano (et al), Joe Burbano, Steve Harriman (et al), Greg Hutton, Mark Wheat, etc. etc. etc.).  At least NetQoS guys know to jump ship before it drowns.
So, does this spell eventual doom for the NetQoS products?   I don't think so.  But nothing has come out of this acquisition unscathed, especially the relationship between the vendor and the customer.

Apple being a little underhanded?

I should disclose, i work for RIM.  Still, even if i didn't work for them, i'm a little shocked that Apple would sink this low.  Is it true?  Perhaps.
http://www.appleinsider.com/articles/11/04/07/apple_reportedly_caused_display_shortage_that_delayed_rim_playbook_1_month.html
Still, this is the tactic i take when fighting against aliens or killer robots.  Cut off their supply.  Even if it means you'll only delay them.  In the technology race, release dates are significant down to the day.

Stitching PDF documents

Every once in a while, i have to submit expense reports.  Like some other new expense report systems, when submitting receipts, you have to print off a cover sheet containing a bar code.  When you send in your receipts via fax (what is this, 1987?) you have to use that barcode sheet as a cover sheet.  Luckily, you can also email it in.  However, your scanned receipts and the barcode cover sheet have to be part of the same file with the barcode file coming first.
The problem i have with this is that essentially, i have to print out the barcode sheet and scan it in with all my receipts.  Seems a waste to print something out so i can scan it back in.  When i talked to one of the guys in the expense department, he said he'd put in a request for me to get a full copy of adobe acrobat pro so i could merge them together.
So, i did a little search and found pdfsam (PDF Split and Merge).  This little utility is free and lets you split pdfs into multiple documents and reassemble them any way you want.  Pretty cool stuff. Definitely cheaper than acrobat pro!

Finally, something that doesn't work in iOS, wait nevermind.

I got an iPad back in October.  I've been really pleased with it.  It's constantly exceeded my expectations.  With the release of iPad 2 yesterday, Apple calling 2011 'the year of the iPad 2', and RIM's own tablet coming out soon, i'm excited to see how quickly we can get to a point where we don't need desktop systems in our homes. 
Anyway, about the thing that doesn't work.  I use the remote app to remote control my iTunes on my personal computer.  That way every time i want to change songs, i don't have to switch my kvm over to my home computer.  I can just reach over and click next on my ipad.  I've had problems with this before though.  My wifi at home is A/B/G/N.  The iPad supports B/G.  Sometimes when my iPad would time out and switch itself off and i'd manually turn it back on, it would report that the wifi was connected, when really it wasn't.  This was annoyingly obvious when trying to use the remote app (since the remote app requires ethernet connectivity).  I finally figured out that i could go and disable the wifi then reenable it and everything would work fine.  Then, this afternoon, my wife sat down to watch a netflix movie on her iPhone.  We got a startling email from AT&T stating that we'd gone over our 200MB limit for the month.  Turns out this problem applies to all iOS controlled wifi devices.  I disabled her wifi and reenabled it and lo and behold, web pages started to load much faster.
So, i had to conclude that the problem is not actually with iOS but with my router.  After a little research on the internet, i found that 802.11n is the culprit.  I went onto my router and disabled A/N wifi and without doing anything to either device, they both started functioning.  My wife got a bunch of emails that had been delayed since there was no connectivity.  And a youtube video i had paused on my ipad suddenly started working.
Go figure.  I guess you could technically call this a bug with the iOS and the corresponding hardware since the presence of an N network shouldn't hose up a G network.

Discovery's Final Launch

Well, by now the shuttle Discovery is within sight of western Europe (the shuttle can see them, they won't be able to see the shuttle).  I've had the video from spaceflightnow.com playing in the background all this afternoon.  I took 20 minutes to bite my nails as there was a glitch at the range (did you know there are systems on standby during every launch to blow the shuttle out of the sky if we lose control of it and it starts kareening toward a populated area?!?!) and to watch the subsequent launch.  It was an amazing sight.  Even with the little piece of tile that came off and was plastered over with a sharpie and the BSOD that happened at the firing range, it's an amazing feat that men can launch themselves into space, orbit our planet, and meet up with other spacecraft in space.

This will be the final flight of the Discovery.  After it lands, NASA is going to mothball the whole thing and put it in a museum.  This makes me sad.  I wanted to see a time when i could take a weekend trip to the space station and, who knows, maybe run into the Doctor.  Thank you US Gov't for destroying the dreams of every Star Wars fan who dared to think that we could actually make this work.

Syndicating yourself

Thanks to Kevin Grimes for the tips on how to get this setup.
I recently configured our community to syndicate to twitter, facebook, and LinkedIn. It was actually easier than i thought. I discovered that this can be used to syndicate your own self out to twitter and facebook.  This method only allows for one way communication from the community to the social networks.
So, here's how i did it:
  1. Sign up for a bit.ly account. I used the same password for all the accounts to make it easy. Once you've got your bit.ly account created, go to settings and make a note of the API key. You'll need that later.
  2. Make sure you have a twitter account and a facebook account.
  3. Connecting to Twitter and Facebook:
    1. Now go to twitterfeed.com and sign up for an account. Twitterfeed is a service that will take multiple RSS feeds and publish them to twitter and/or facebook. So, go get any RSS feeds you want to syndicate. I went and got the feed from my blog.  Twitterfeed has two steps, one to get data from your RSS feeds, and the other to determine where you want to publish that data.
    2. On the twitterfeed site, click 'Create new feed'. Give your feed a name; this name won't show up anywhere except in twitterfeed. It'll help you keep your feeds straight (I ended up with 10 feeds, so it was important to have some intelligent naming). Paste in the URL for the RSS feed and hit 'test rss feed'.
    3. Open advanced settings on that page. I change the update frequency to add up to 5 updates at a time. Since twitterfeed checks the feed every 30 minutes, it's possible that more than 1 new item appears in the feed. If this is so, twitterfeed should go ahead and publish as many as possible (which is a maximum of 5). Also, change the 'Include' option to include 'title only'.  'Post link' should already be checked; expand bit.ly settings and put in your bit.ly user account name and the API key. This will allow URLs to be shortened so they don't take up the majority of your post in twitter.
    4. Go on ahead to step 2. This is where you'll select where to publish your feeds to. Pick twitter and you'll be brought to a page asking you to pick what account to publish to. Your twitter account will not appear in the drop down box to begin with. To get it in there, click the huge 'authenticate twitter' button and sign in with your twitter account. Once you're brought back to twitterfeed's page, your account should be available in the drop down box. Select it then click 'Create service'.
    5. Repeat the process for facebook. For facebook, you can choose to publish the feed to your account or any of the pages you manage. The nice thing is that when you add the rest of your feeds, you won't have to re-authenticate. Your twitter/facebook accounts will be available from the drop down box.
    6. Once you've created the services for facebook and twitter, click the All Done button. If your feed has items, you should see them show up in facebook and twitter within a few minutes.
*If you want two way synchronization between twitter and facebook, you can use the facebook app called 'twitter'. Then you would only use twitterfeed to get your posts to twitter.

Facebook account versus Facebook pages

In the last little while, i've received friend requests from 'people' on facebook.  Really, the requests come from an organization like my local rock climbing club.  The account was setup by a person who is an officer of the club and wanted to get the club on facebook.  So, that person created a facebook account as if the group was an actual person.  It was then that i received the friend request.

For anyone trying to do this same kind of thing, don't do it!  Actually, don't do it that way.  Actual accounts are for real people not organizations.  If you have an organization and you want a presence on facebook, create a page.  The page can contain information about the group and has a wall.  Instead of friends, the page gets followers.  The page is administered initially by the person that created it.  The creator can then add officers that have varying levels of permission to do stuff on the page. 

This is the car I'm looking for

I don't normally do this, but someone found this video and sent it to me (thanks ang).  Now I have this inexplicable need to buy this car.  It's not the color i'm looking for, but it is the right car.


View it here if your browser sucks.

I finally broke down and got twitter

In order to start syndicating myself a bit more, i've decided to finally get a twitter account.  I held out as long as i could.  Anyway, a friend of mine from the CA Endevor community sent me a how to on connecting your blog to your twitter account.  He also sent instructions on how to connect your blog to a facebook page, but i haven't tried that yet.  Anyway, here are the instructions (i've modified them slightly based on my experience):
Assumptions: You already have a twitter account.
  1. Create a bit.ly (http://bit.ly/) account.
  2. Find the bit.ly API key (found on the account settings page)
  3. Create a twitterfeed (http://twitterfeed.com/) account.
  4. Create a new feed using the RSS feed from your blog.
  5. Under advanced settings, set it to include the title only.
  6. Under advanced settings, make sure "post link" is selected.
  7. Under advanced settings, select shorten link through bit.ly and use the 'bit.ly settings' menu to enter your user account and the API key from step 2.
  8. Continue to step two of the feed creation and authenticate your twitter account.  This took a while because my IE settings were keeping things from happening.
  9. Once you authenticate, your account should be available in the drop down box.  Make sure it's selected and continue.
That should be it.  You should see a new post on twitter with the title and link to your blog entry (it might only include the first one in the beginning, but should include every one after that).

Apple and Big Money

Seems Apple is riding high lately.  Their string of successess has only been marred by the leave of absence of Steve Jobs.  However, new and exciting things are on the horizon for iOS based devices:
http://www.appleinsider.com/articles/11/01/25/apple_finalizing_wireless_e_wallet_for_iphone_5_ipad_2_report.html
http://www.appleinsider.com/articles/11/01/24/deutsche_bank_very_positive_on_iphone_trial_no_going_back_to_blackberry.html
http://osxdaily.com/2011/01/21/xbmc-for-apple-tv-2/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+osxdaily+(OS+X+Daily)
Not to mention the announcement that you can now get an iPhone on Verizon instead of being forced to drink the AT&T kool-aid.  Does all this add up to a huge change in the technology world?  For sure.  Does it mean people will eventually not get desktop computers?  Maybe.  More likely it means more homes will adopt the home server architecture having one very powerful very high capacity system instead of multiple desktops per household member.  Given that RDP and VNC both exist as apps for iOS, it wouldn't take much to turn an iPad or even an iPhone into a terminal.  With the right docking station hooked up to the network, a couple monitors, a keyboard, and maybe a mouse (probably not), any iOS device could be turned into a terminal.  However, i expect that services that would normally be accessed with direct input to a PC will be configurable using apps.

Excel and Dates

While recently working on some data, i recently stumbled across some formulas that i found useful:

Excel handles dates as numbers. Basically the number of days since 1/1/ 1900 0:00. The decimal portion of the number represents the hours and minutes within the day. For example today is 40556.64462. So, if i wanted to subtract the number of hours until quitting time, i'd need to subtract 40556.64606 from 40556.70833. This is fairly easy.

XBOX Kinect review

So, i did get a kinect around the middle of december and have liked it overall. It's really quite good for a first generation motion capture video game controller. Most of the positive feedback can be read in other reviews. I wanted to make sure i got my gripes on here, so here i go:
  1. It may be my HDMI cable, but i've had problems with the xbox turning on. If my tv is not all the way switched to the correct input when i turn on the xbox, it doesn't seem to enable the hdmi port on the xbox. Not really a problem with the kinect, but it didn't start happening until after i hooked up the kinect.
  2. I have the kinect on the same table the tv, so it's below the tv and out from the wall by about 2 feet. The 'optimal' range from the sensor is about 6 feet. I have a fairly spacious den, but i still find myself backing into the couch to get the best experience.
  3. Not all kinect games are created equal. I have three games: kinect adventures, kinect sports, and biggest loser. It's easy to tell which games were tested with normal people and which weren't. When using kinect, navigating is as easy as controlling a mouse cursor with your hand. Since there's no button to click on, you have to hold your hand over a button to click on it. When a game requires a bunch of option selections to start the game, it gets tiresome waiting for the xbox to register clicks. Biggest loser is the worst game i've played so far. The menu consists of only icons, you have to mouse over in order to get a description of what each icon does. The problem is that the hover over click time has been reduced (supposedly to speed up menu selection). By the time i've hovered over a button long enough to read half of the 5 word description (in small font btw) the game has registered a click and opened that menu. The other problem with that game is that it doesn't do a good job of recognizing the exercises you're doing. They put a trainer up on the screen and a 3d representation of you as well. You're supposed to follow the trainer. If you're not exactly in sync with the trainer, it frequently stops the game saying you need to decrease the difficulty because you clearly can't keep up. And it isn't just me; i've had two other people go through the 'pre-test' and fail out completely at the same exercise, the game stating that clearly this exercise is too much for us.
  4. Having nothing really to do with Kinect: you can't do much online with xbox unless you've paid for a gold xbox live membership. This is a clear loseout to the wii where you can play online with anybody as long as you have their information.
That's pretty much it. It's been fun playing with the kinect. I usually have to shower after playing since i usually work up a sweat. In fact, given some wrist weights, i've been able to shed a few pounds while duking it out in the boxing arena. Volleyball is really lifelike. I find myself jumping as high as i can to get those spikes.

Sorting Excel data using formulas

Sometimes, you sort data in excel. This is handy since the order provides a framework around which our mind can be wrapped. However, it's not always handy to have to select the cells you want to sort and use the menus to sort them. Sometimes, it would be handy to sort the data automatically.

Square

Wow, Thanksgiving hit me harder than I thought it would. I've been neglecting my blog. Well, i've come back from the holiday with a doosey.
Check out http://www.squareup.com/. Quite honestly the coolest thing i can do with my iPad. Read here as to why it can't be done on the blackberry.

Using VMWare to test software for bugs

I earlier posted instructions on how to create virtual machines to run other operating systems on your desktop. Another advantage of virtual machines is that they can be used to test software for bugs or virii. If you've ever downloaded beerware and wondered if it would infect your computer if you ran it, installing it on a VM can (mostly) keep your computer from getting infected. At least, the VM might get infected or hosed. If that happens, simply power off the VM and delete the files.

Another way of running software you don't necessarily trust is by running it in Wine. Wine is not an emulator, technically. It allows you to run windows programs in linux. If you have a Linux VM built, go ahead and install Wine in the software center. Then copy your executable to the linux box. Right click and select open in Wine environment. It'll run just like windows.

There are many options for Wine. One being that you can map lettered drives in the Wine environment to physical locations in the Linux file system. There's a huge learning curve in regards to permantly mapping Windows file shares to the linux file system. I'm still wrapping my head around that. Perhaps when i figure it out i can write a 'windows user's guide to mapping windows file shares in linux' article.

iOS 4.2 is bigger than the Beatles

So, the Beatles are bigger than God, right? Well, with the recent tease and supposedly huge announcement from Apple about the Beatles library finally being released on iTunes, I'm left saying, "Dang Steve, getting multitasking on my iPad is more important that your new money making scheme." I mean, not only did they miss the Beatles revival of my generation 10 years ago, but I've already bought all the Beatles music i want on CD and ripped it into my music library. Why would i want to buy it from Apple when i already bought it?

Seriously, with the playbook (better battery, no required data plan if you have a bb, flash, and multitasking) release emminent, the iPad had better get a facelift or finally face a competitor eye to eye. Contrary to Apple's promise that i'll never forget today, i probably will as soon as iOS 4.2 is released. Until then, i'll be listening to my Beatles music that i didn't purchase through iTunes and waiting for Apple to fulfil its promise to upgrade my iPad sometime this month.

Custom Formula: IP2DEC (IP address to decimal)

I mentioned in my previous post that i needed to build a custom function around converting IP addresses to decimal numbers. I wanted to share how to add your own custom functions to excel. This involves VBA and excel add-ins. Essentially, you can create functions in VBA then call them from cells in any spreadsheet. The nice thing about this is that you can take a very complex formula, like the one i posted before about converting an IP address to decimal form, and make a very simple call to calculate the result.

TLDR; take me to the download.

Excel and IP addresses

It seems I am frustrated by Excel's inability to handle IP addresses natively.  Eventually, i should write some global formulas mimicing inet_ntoa() and inet_aton() from MySQL.  In the mean time, I've been creating the formulas manually to slice and dice IP addresses.  It's not actually too hard, as long as you're not scared by long formulas.  I usually build this formula in pieces then consolidate them down to one (I should write a procedure that would do that automatically).  Eventually...

Anyway, the formula is this:
=VALUE(LEFT(A1,FIND(".",A1)-1))*2^24+VALUE(MID(A1,FIND(".",A1)+1,FIND(".",A1,FIND(".",A1)+1)-FIND(".",A1)-1))*2^16+VALUE(MID(A1,FIND(".",A1,FIND(".",A1)+1)+1,FIND(".",A1,FIND(".",A1,FIND(".",A1)+1)+1)-FIND(".",A1,FIND(".",A1)+1)-1))*2^8+VALUE(RIGHT(A1,LEN(A1)-FIND(".",A1,FIND(".",A1,FIND(".",A1)+1)+1)))

You can put this formula into any cell and it will take the IP address in cell A1 and convert it to decimal.  The nice thing about this is that you can apply this formula to a list of IP addresses then use it to sort the IP addresses.  That way 10.200.0.0 comes after 10.5.0.0.

See part 2 of this post here.

Removing the protection from Excel workbooks

I get frustrated from time to time when i'm forced to use a mediochre Excel spreadsheet. For example, i have a spreadsheet that i have to fill out from time to time. I put in between 3 and 10 entries and have to number them. This is the most annoying thing. The first thing i did was open the original template and insert the following formula into A2:

Windirstat

I don't give out my recommendations lightly.  If i haven't used something, i'm not going to tell you that i like it.  I might say to give it a try, but i won't tell you that it's the best thing ever without knowing.

I've used Windirstat (Windows Directory Statistics) for several years now.  It is the best tool i've found for tracking down why your hard drive is full.  You can get it at http://windirstat.info/.  The actual code is hosted on SourceForge.net, which has always met my needs. 

Download windirstat and run it.  Let it analyze your C: drive to see what you get.  Besides creating an awesome visual representation of your hard drive files (btw, go to options and turn on viewing free space), it'll list the folders on your hard drive that are consuming the most space. Ever run out of space on your hard drive and wondered what you could delete that would have the biggest impact?  That's what Windirstat can do.  It'll even look in your recycle bin to see if anything in there is taking up significant room.

How to increase your rating on My CA

Wow, this will probably change soon given the planned upgrades, but if you wanted to increase your rating, post an entry to your blog then give it a thumbs up.  Then you can delete the entry.  The positive rating will stick with your profile.

Step by Step Instructions for building a Linux VM

As a continuation of a previous post, I wanted to give some detailed instructions on how to get a VM up and running.  While i'm at it, if you haven't tried Ubuntu yet, this will be a good way to get you immersed into it.
These instructions assume you've got vmware player already installed on your computer.

First thing you need to do is get a copy of the OS installation iso file.  An iso file is simply a file like a word document or excel spreadsheet.  The difference is that an iso contains the details of an entire CD or DVD.  You could use the iso to actually burn a copy of the cd.  Or you could use something like Daemon tools to virtually insert the CD into a virtual drive (another post another time).  Go to http://www.ubuntu.com/desktop/get-ubuntu/download to get a copy of Ubuntu.  It's the easiest version of Linux, especially if you're used to Windows.

Once you've got the ISO file downloaded, go make a 'Virtual Machines' folder somewhere on your hard drive.  I put this in my user profile directory alongside my documents, music, and video folders.  Put the ISO file in that folder.

Launch VMware player and click 'Create a New Virtual Machine'.  A wizard will be launched with three options.  If you had a copy of ubuntu on disc, you could just insert it into your drive and pick the first option.  But, VMware can just use the iso file we downloaded.  So, pick the second option and browse out to the iso file in the 'virtual machines' directory.

It should say something like "VMware will use easy install".  Click Next.

You're then prompted for your name, username, and password.  VMware's going to setup your account for you, so go ahead and put in the information.

The next step will prompt you for a VM name and location.  Pick a name.  Then browse out to the 'Virtual Machines' folder.  VMware should append the vm name to the location.

You'll next be prompted for hard drive size.  This is up to you.  You can allocate as much hard drive space as your computer's hard drive has free.  Unless you're going to use this for your primary desktop, you will never need more than 20GB.

The next screen will give you a summary of what you just told VMware to build.  Click Customize Hardware.

If you want to give your VM more memory, use the slider.

You probably don't need a floppy drive so you can remove that.

Make sure the network adapter is set to bridged.  This makes networking transparent.  As far as the VM (and everything else on your network) is concerned, your VM will be plugged into the same network as your computer.

You could also remove the sound card and/or printer if you won't need them.

Hit ok then finish.  You'll see the VM powering on and Ubuntu will begin to install.  At this point you're essentially done.  Instead of you having to setup Linux, VMware is going to do that for you.  It'll setup a user account for you, install the VMware tools (under the hood stuff, but you'd notice if they weren't there).
Once easy install is done, your desktop is ready.  You can start customizing it however you want.  Just be warned, if you hit the X to close out the VMware player window, the VM will be suspended.  Obviously during the install this will probably hose everything.

Also, if you want to connect USB devices to your VM, plug them into your pc.  Then look at the status bar in VMware player.  You'll see an icon for each device.  Right click the device you want to connect and hit connect.  Just a warning, a device cannot be connected to both your computer and the VM at the same time.

How to stay logged into My CA

Don't you hate how MyCA logs you out if you leave it alone for more than 12 seconds?!  It drives me nuts.  Well, i may have discovered a bug that keeps you from having to log in even when you get the little message at the top saying your session has expired.  When you get that message, instead of clicking on the link in the message, click one of the other navigation tabs.  For example, if you're looking at your MyCA, click on your Blogs tab.  It'll log you back in without having to put in your username and password.

Honestly, I don't know how anyone expects us to use the chat feature if you can't stay logged in while doing other stuff.

VMWare for Beginners

This post is for beginners.  No hate from the peanut gallery!
My life changed when i found out about vmware.  (It also changed when i found out about 3tera, but that's for a different post.)  Getting into VMWare wasn't the easiest thing mainly because i'm a hardware guy.  If you virtualize my hardware, what am i supposed to do?  But the wonderful thing about vmware is that you can make hardware virtually; this means you can make as much hardware as you want with no cost! 

VMWare could be called a computer emulator.  An emulator is software that acts like hardware.  The easiest example of a hardware emulator i can think of is one i used back in high school and college: the TI-83.  I would open this app on my PC and i would be presented with a graphical interface that looked exactly like the TI calculator i had in my hand.  I could do everything with the emulated calculator that i could do with my physical calculator. 

That's what VMWare does, except it does it for a computer.  The simplest computer has only a couple pieces: a motherboard, processor, ram, hard drive, keyboard, mouse, and monitor.   VMWare emulates all of that (and more). 

To get started with vmware, go to vmware.com and sign up for an account (it's free).  Then look for the vmware player.  It's the simplest version of vmware.  Once you've got it installed, open it.  You'll be presented with a few options, you'll want to create a new virtual machine.  The wizard will help you create your computer.  The first thing it'll ask for is an installation CD.  Find your trusty windows xp, windows 7, ubuntu, or debian installation CD and pop it in your drive.  VMWare will inspect the cd and virtually put together the hardware for your computer.  Go through the rest of the wizard and power on your virtual machine.  You'll notice that you'll get a quick bios screen, then on to installation.  At this point, nothing is different from setting up a physical computer.  Let windows or linux install and you'll end up with a full blown computer emulated on your computer.

The really cool thing about this is that you can run a linux based computer inside your windows computer.  Or if you have programs or devices that only work in windows xp but you have windows 7, you can run xp in a vm and load the program there (this is essentially the basis behind xp mode in windows 7). 

Once you get more comfortable with VMWare, you can get the free VMWare server installed on your desktop (warning, this won't work on your computer if you're using a home/home premium version of windows).  The nice thing about vmware server is that you don't have to have a window open for each vm running.  You can run them in the background; with vmware player, if you close the window, the vm goes into standby.

I have VMs for several different things:
  • my canon scanner which isn't compatible with windows 7. I have a very trimmed down version of windows xp running in a vm.  Whenver i want to scan something i boot up the vm and plug in the scanner.
  • I play around with ubuntu and debian to try to increase my linux prowess.  The cool thing is running windows apps through wine on ubuntu in a vm running on windows.  Try saying that 10 times fast!
  • I have an old dvd ripper program on a stripped down windows xp machine.  This allows me to make an avi file from my dvd movies so i don't have to jump up and put in a dvd when i want to watch a movie.
  • I run a sharepoint website for my family.  It uses windows 2003 in vm.
  • I run a development linux box to test OTRS and other linux based open source software.
The nice thing is that last thanksgiving, i bought a desktop computer with 8GB of RAM and a 1TB hard drive.  My desktop normally only needs 2GB of ram to run, so that leaves me 6GB that i can dedicate to VMs.  Since most of my VMs are stripped down to only perform one or two tasks, they don't require much.  I can run all my VMs at once (except for sharepoint) and they all run fairly well.

Media Library Organization

I'm still not sure why, but the other day when i logged onto my home computer, all the applications that i had pinned to the taskbar were gone.  I noticed yesterday that iTunes seemed to have lost its head.  It opened up and displayed no music, no content.  Nothing.  Needless to say i was pissed.  As i'm writing this blog, i'm beginning to suspect that the recent installation of office 2010 may have happened around the same time.  I wonder...

Anybody bought an xbox Kinect yet?

I'm an early adopter.  I realized that earlier this year and it's made purchasing technology a lot less stressful (knowing who you are usually does that to you).  So, to fulfill some inner need to maximize my technological prowess, I purchased one of the new xbox 360s earlier this year.  I never had an xbox, I've never been a serious gamer.  Wait, i take that back; at one point i worked with a group of guys that were into soldier of fortune II.  I got into it and couldn't get enough of the rush you feel when you think you're about to be shot at any second.  I played on PC and that was good enough for me.  I even hosted LAN parties back in college (maybe someday i'll post the story of when i got pulled over going home at 3:30 am with a pickup truck full of computer equipment).  Eventually, i got a Wii.  My wife couldn't object because i got it for free with my frequent flier miles.  I didn't tell her how much i spent getting the 3 additional controllers and extra num chuk and balance board.  From the first tennis game, i realized that this was a different animal.  The fact that you were no longer interacting with the game through buttons, but through gestures was huge. 
Needless to say, i was floored when microsoft announced the kinect.   It was like someone had realized the difficult part of the wii (besides low resolution) and completely obsoleted controllers altogether.  So, of course, i immediately went out and bought an xbox.  I went ahead and got one of the new ones (only to discover later that the kinect would come out with a retrofit kit for earlier models).  I was disappointed to find out that the kinect wouldn't be out until later this year.  So, i picked up 3 controllers and no games.  Luckly a buddy of mine loaned me a slew of games because the console doesn't come with any.
So the kinect has come out and i'm curious to hear a real person's perspective after having used it.  I've read a few reviews, but they mostly seem like pre-release predictions than specific "i liked this feature" or "this feature doesn't work well" reviews.  I did find a good review at techradar (http://www.techradar.com/reviews/gaming/games-consoles/controllers/microsoft-kinect-905010/review).  Has anyone else had any experience with it?  Obviously, i'll be going out this weekend to get one and will post my experience here.

NetFlow without Cisco Gear

It turns out you can get NetFlow data without having a Cisco device (or with a Cisco device that doesn't support NetFlow).  I had seen and dealt with nProbe before, but wasn't aware that it also runs on Windows.

SPANs are fairly ubiquitous on most switches.  Even if you can't do a SPAN, taps are fairly cheap and add minimal amounts of latency when inserted inline.  If i'm not mistaken, you can even setup rules so that certain subnets appear as if connected through its own interface.

The funny thing is that NetQoS doesn't have an article explaining the simple steps to get it working.  I found this on SolarWinds' social networking site thwack.com:
http://thwack.com/blogs/orion-product-team-blog/archive/2009/11/10/orion-nta-and-nprobe-analyzing-bandwidth-hogs-without-flow-capable-network-equipment/
  1. Download and install nProbe on a Windows (or Linux) server: Download an evaluation version of nProbe and install it on a server.  As noted in the diagram above, you'll need a server with two NICs - one to connect to the span port of the switch and the other to export flows to the Orion NTA server. The eval version of nProbe supports 2,000 flows export, so you’ll eventually need to purchase a copy.  It’s around $100. 
  2. Enable port spanning or port mirroring on your Managed Switch: Configure port mirroring or port spanning on your managed switch to the port that the server running nProbe is connected.  This will allow nProbe to see all traffic flowing through the switch.  You’ll need to consult your switch documentation for how to configure port mirroring or port spanning. If possible, consider only spanning the ports of interest to reduce the amount of flow data collected.
  3. Add the nProbe server to Orion: Add the server running nProbe to Orion, including all interfaces
    Add the server interfaces as monitored NetFlow Sources.  Go to NTA settings and enable “Allow monitoring of flows from unmanaged interfaces”
  4. Configure nProbe to export flows to Orion NTA
Open command prompt on nProbe server and navigate to C:\Program Files\nProbe-Win32>
Run nProbe from CLI using the options listed below:
             nprobe
                 /c - output to console.  This is the easiest method, especially for a demo situation, because you can review the debug messages.
                 -n <Orion NTA server address>:<port>  - IP address and port that should receive the flow records.  Use 2055 for port.
                 -b 1 - modest level of reporting
                  -i  <interface> - generally 1 on Windows; en0/eth0 on Linux; en0 for Ethernet on OSX, en1 for wireless
                 -u <in-index> - sets the ingress interface for all flows (use 1).
                 -Q <out-index> - sets the egress interface for all flows (use 2).
          E.g. nprobe /c -i 1 -n 10.199.15.50:2055 -b 1 -u 1 -Q 65539
NOTE:  It’s important the ingress (-u) and egress (-Q) interface indexes be set to the server interfaces being managed in Orion. NTA will drop flows from interfaces that are not managed in Orion.  You can see the interface index for the server interfaces in Orion by drilling down to their respective interface details view. So, if your nProbe server had two interfaces being monitored in Orion NTA, you would just set the option –u to the index of one of them and the –Q switch to the index of the other.   See nProbe documentation for other command line options.

How to synchronize your calendar and contacts everywhere

Frankly, I'm surprised I didn't do it sooner.  But i've just started using google to synchronize all my calendars and contacts into one place.  This can be difficult since I have a BlackBerry, an iPad, and a couple PCs at home.  Luckily, both my PCs at home are running Outlook, my personal pc running Outlook 2010 on Win7 and my company laptop running Outlook 2003 on WinXP.  I figured i'd share my method with anyone else in case anyone knows of an easier way of doing this.

First, let me define my requirements:
  1. I want to sync my calendar and contacts across all four places.
  2. I want the sync to be automatic.
  3. I want the sync to be fairly regular, although it's not crucial that it synchronized every 10 seconds.  I'm ok with synchronization having a 10 minute lag.  It's just my calendar and contacts, they don't change that often.
  4. I want to do this for free.
I looked into a few options for sharing calendars.  Microsoft has an option called web calendars, but it's not the same as synchronizing to a single calendar.  I finally stumbled upon Google's calendar sync app.  It runs on your desktop and synchronizes your primary calendar in outlook with your calendar on Google's servers.  My BB already synchronizes my calendar from my work PC to my BB, so that's already taken care of.  The only problem left was getting my Google calendar on my iPad.  Turns out, since iOS supports an exchange server connection, Google stepped in and made it so you can access your mail, contacts, and calendar via and exchange connection to m.google.com.  So, that solved it.  I now had one calendar on all my PCs and both my mobile devices.

Now for the contacts.  I've already mentioned that the iPad has an exchange connection to google and automatically synchronizes contacts.

I could synchronize my iPad with iTunes on my desktop and that would synchronize the contacts to outlook on my desktop.  However, I want this to be automatic.  I could probably use MobileMe to synchronize between the iPad and my desktop, but that costs money.  So, I found gcontactsynch.  GCS is a third party app that syncs outlook contacts with gmail contacts.  At first i had problems with Outlook thinking it was an unsecured program trying to access data, which in fact it is.  After allowing it a bunch of times, it started synchonizing without any prompts.  I wonder if i could use an exchange connection using the same settings as my iPad.  That would be more seamless and wouldn't involve a third party app.  Perhaps I'll try that sometime.

Google has a BB app called google sync that synchronizes calendar and contacts with the BB calendar and contacts.  I've already got the calendar synchronizing with my desktop, which synchronizes with my BB (now I'm rethinking that though since the calendar sync app would only run when my laptop is turned on).  So, all that's left is to get the contacts on my BB sync'd.  I could probably use google contact sync just like i did with my other desktop.  That would get the contacts on the desktop which would sync automatically with the contacts on my bb (through regular bb sync).  However, i'd prefer to use a google app over a third party app.  So, i'm using Google sync to synchronize the contacts to my BB which will get sync'd back to my desktop through bb sync.

So that takes care of everything.  I've got the same set of contacts and the same calendar on my phone, my iPad, and both my work and home computers.  I'm going to try uninstalling the calendar sync from my work PC and enable calendar sync'ing on my phone (which should also get the calendar to my desktop).  I'll post the results here.