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)

THIS CONTENT IS NOW HOSTED ON GITHUB: https://github.com/sweenig/ipfromdec/

Excel and IP addresses

THIS CONTENT IS NOW HOSTED ON GITHUB: https://github.com/sweenig/ipfromdec/

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.

Legal Uses of the BitTorrent Protocol: Part 3

Alright, so if you've read my previous 2 posts, you should have a good understanding of how torrents work and how you could setup your own torrent.  Now i'll explain how to use HFS (explained in part 2) to turn your torrents into items in an RSS feed.

The concept is fairly simple when compared to the bittorrent protocol itself.  Essentially an RSS feed needs to have a link to the torrent file in the title, description, or enclosure of the item.  HFS allows us to do this with a little tweak.  I found this tweak on http://www.rarst.net/software/hfs-rss/ (original text below) and i got it working in less than 2 minutes.  I currently use this to send home videos to all my family members.  They all have utorrent running and subscribed to my feed.  All i do is create the torrent and dump it into my HFS folder.  They get the torrent from the rss feed and all start downloading it at the same time.

----------Original Article----------
I had previously covered HFS which is excellent software for setting up HTTP file-sharing server. Unfortunately it does not natively provide RSS feeds that would be perfect for notifications about new files available for download.
After some poking and bugging fellow HFS users and developer himself last year I had put together usable workaround.

File list
HFS has native support for file lists. It outputs nice pack of URLs that is easy to feed to download managers instead of clicking each file.
Add some XML markup to that list and we have ourselves RSS feed.
File list template
Create text file named filelist.tpl in same directory as HFS executable and paste following code in it:
<?xml version="1.0" ?>
<rss version="2.0">
<channel>
<title>%host%%folder% directory feed</title>
<description>Files in %host%%folder% directory</description>
<link>http://%host%</link>
%files%
</channel>
</rss>
[files]
%list%
[file]
<item>
<title><![CDATA[%item-name%]]></title>
<description><![CDATA[%item-name% (%item-size%)]]></description>
<guid><![CDATA[http://%host%%folder%%item-url%]]></guid>
</item>
Browser discovery
File list is replaced with RSS feed and it should be obvious as such.
Menu > Edit HTML template…
Insert following line right before </head> and press Ok.
<link rel=”alternate” type=”application/rss+xml” title=”RSS for folder” href=”http://%host%%folder%~files.lst?recursive” />
Now browsers that support feed discovery will show available RSS feed in each folder.  File list link that is shown on page can also be renamed (or removed).

Limitations
Feed is served as plain text instead of XML – should not be a problem but may limit compatibility with some readers; no timestamps on RSS items because of complex time format used, currently impossible to replicate it in HFS; some characters (square brackets for example) are not properly encoded; resulting RSS includes all files instead of few recent ones, no workaround because of way sorting in HFS works.Overall
Method is far from perfect but is easy to implement and doesn’t require additional software. Definitely beats constant explaining why I had deleted something before someone had seen it.

Legal Uses of the BitTorrent Protocol: Part 2

The other day i posted a basic introduction to the bittorrent protocol.  Now i want to write down somewhere how bittorrent can be used in a legal situation.  As i mentioned in yesterday's blog, i have many servers that all need the same file every time there is an update, which could be as frequent as once a quarter for major updates.  The status quo is to remote into every server, log into the vendor website, and download the update.  This can be very time consuming, not to mention very boring. 
That's where bittorrent has helped me.  To continue with the analogy of the ants: each server is an anthill.  The update is the sandwich.  Now all i need are ants at each anthill (a bittorrent client at each server) and an ant with a radio (a bittorrent tracker).  As my torrent client, i chose to use uTorrent.  It's a fairly small torrent client with all the features i need.  Particularly, uTorrent can listen to an RSS feed and (as long as the feed is designed correctly) automatically get the torrents in the feed.  In other words, if i can create an RSS feed which contains the torrent file (the descriptor file that tells torrent clients about the sandwich) then i can have all the anthills subscribe to that feed.  But i get ahead of myself.
So, each anthill (server) has an army of ants (uTorrent client).  Now i need a seeder, that would be someone who has the original sandwich.  So, i install utorrent on my laptop (or i could use on of the servers, it doesn't really matter).  I also need a tracker.  Turns out the uTorrent client has a small basic tracker built in but disabled by default.  So, on the client on my laptop, i go and enable it.  Now all of the pieces are there to start torrenting.
For the first few torrents, i do things manually, just to make sure I've got everything setup properly.
  1. I open the uTorrent client on my laptop and start the 'new torrent' wizard.  I point the wizard to the update file i want to share (this could also be a directory with thousands of files, no need for zipping).  I also point the wizard to my laptop's IP address as the tracker.  When i hit finish, uTorrent outputs a *.torrent file (i saved that to my desktop).  If i look in my uTorrent client, I'll see that i'm now seeding the file and the fact that I'm seeding it has been reported to the tracker portion of the uTorrent client.  Now all i need to do is get that torrent file over to the other clients.  (Remember I'm doing this manually, this part will be much less complicated after i automate it.) 
  2. I go to each one of the servers and copy the *.torrent file (2-3KB max) to each server. 
  3. Then i open the *.torrent file using the uTorrent client on each server.
On a side note, i usually configure each torrent client to use the same port number.  This makes it easy to categorize the traffic in monitoring software.  It also makes it easy for security guys to recognize that it's a legal protocol.  Once i open the torrent file in the torrent client on each of the remote servers, that torrent client contacts the tracker on my laptop and asks for who else has the file.  The tracker says the file is being seeded (the whole file is shared) by my laptop.  uTorrent then starts to request very small pieces of the file from my laptop.  As it downloads the file, it updates the tracker to let it know which parts of the file it made available to other members of the torrent.  Eventually, between the whole copy on my laptop and the partial copies on the other servers, there are 2 copies of each piece of the entire file. At that point the torrent really speeds up and fairly quickly, the file is copied to each one of the servers.
Now, to automate the process.  I'm sure there is probably some perl code to automatically create a torrent from files in a certain directory, but for now, I'm still doing this manually.  It only happens once every time there's an update.  However, i can automate steps 2 and 3, by adding one piece of software to my laptop (obviously everything running on my laptop could actually be done on one of the servers, it's not crucial where it actually happens).  The software to be added is HFS (HTTP file server).  The reason i added this software is that it easily creates an RSS feed from the files in a directory.  So, by adding HFS, all i have to do is save the *.torrent files in a particular directory, and they automatically get added to the RSS feed.  There's some tweaking necessary for the RSS feed, so I'll detail how to do that.  Once the RSS feed is setup, i can go to each of the torrent clients on the remote servers and add it to the feeds list.  The client checks the RSS feed and downloads all torrents in it (there are obviously checks to make sure a torrent isn't downloaded twice).  By adding the RSS functionality, steps 2 and 3 are taken care of automatically.  All i have to do is save the *.torrent file in the HFS directory (saving the *.torrent file to a particular location is part of the torrent creation process, step 1).
So there you have it.  I'll post instructions tomorrow on how to customize HFS to make the RSS feed compatible with uTorrent's RSS feature.

Legal Uses of the BitTorrent Protocol: Part 1

You may have heard of bittorrent and associated it with illegal movie and music downloading.  While admittedly, the bittorrent protocol is mainly used for nefarious purposes, it occurred to me a long time ago that there had to be a legal use for it.  Then it hit me, the main purpose of the bittorrent protocol is to efficiently move one file from one place to many other places.  I manage a set of servers that run a third party software package that gets updated several times a year.  These updates are difficult to distribute because 1) they are fairly large (100-750MB) and 2) I have to distribute the same file or group of files to all my servers.  In steps bittorrent. 

How does bittorrent work?
Think of bittorrent as organized ants eating your sandwich while out for a lovely picnic.   Their ultimate goal is to get the sandwich to the anthill.  So, they break the sandwich up into very small pieces and each ant takes one back to the anthill.  The more ants, the faster the job gets done.  Now, imagine there are 15 anthills that want your sandwich.  (Also imagine the ants have an advanced piece of technology that duplicates small pieces of your sandwich).  With all these anthills trying to get your sandwich and given their duplication technology, each anthill would have a copy of your sandwich within short order.  Now imagine there's a huge ant with a radio.  You let him know that you have a sandwich to share with the ants.  Each anthill asks this ant where the sandwiches are and they get started.
Torrents work the same way.  You have a big file (the sandwich) that you want to distribute to a bunch of destinations (anthills).  You create a file called a torrent file (file extension *.torrent) and announce it to a tracker (the ant with the radio).  Then you email the *.torrent file (a very small file by the way) to the various destinations (anthills) who then open the torrent with their favorite bittorrent client.  The torrent file instructs the client to go to the tracker (the big ant with the radio) and get a list of the sources (or seeders) of the file, aka you.  The ants descend on your file and begin to take back copies of very small chunks of your file.  None of this is very novel (in fact it's quite similar to napster if you remember).  The cool thing is that once an anthill begins to participate in the torrent, the tracker (the big ant with the radio) is notified who then lets all the other anthills know.  From the point of view of one of the anthills, there is a big sandwich out there.  There are also 14 other anthills with part (or soon all) of the sandwich.  The anthills begin to trade with each other.  The more anthills involved, the larger the swarm, the more quickly the file is distributed.  Cool, huh?

What I wish my phone did

This post could also apply to any smart phone.  It's about my bb since that's what i have now.  I'm curious to see what the Windows7 phone will be capable of.

Ok, I've had a BlackBerry with my last two jobs and now I have a torch.  I'm still waiting for three big features that would truly give me 'outlook in my pocket'.  I understand that not everyone wants to have all the features of their pc in their pocket, but I've always wanted to be able to do everything on my phone that I can do on my desktop.  I don't think I'm alone given the popularity and incredible demand in the tablet device market.  But, I digress.  On to the features!
  1. I wish I could categorize items from my phone: Color coding is awesome!  I categorize my emails, my task items, and my calendar items.  I sometimes do this with rules, but mostly, I do it manually.  It helps me segregate the items on my calendar as well as helping me know at a glance what my plans concern.  I color code for different projects, types of meetings, etc.  I wish I could do this from my bb and sync it back to my outlook
  2. I wish I could follow up on items from my phone: Have you ever noticed that you can mark an email to be followed up on from within outlook?  Just right click the email in Outlook and under Follow Up, there are a bunch of options.  Say you've read the email and you need to respond to it, but not until next week.  Right click >> Follow Up >> Next Week.  Outlook puts a flag on the email and also adds the email to your To-Do bar (Alt-F2 to show/hide).  Outlook pops up a reminder next week that you need to address that email.  I wish i could mark something to be followed up from within my phone.  As it is, i mark the message unread (even if I've read it) so i know i need to mark it when i get back to my desk.
  3. I wish my phone knew when i was in meetings: Wait, it does: my calendar is synchronized with my phone!  I mean, i wish my phone knew when i was in a meeting and automatically turned off the ringer.  Then turned it back on after the meeting is over.  How hard would it be to add a field to a calendar item with a drop down containing my profiles.  Let the default profile be 'silent', but maybe it's just a training class and i want it to go to vibrate during that time.  So be it.
Anyway, those are my top 3 requests for my phone.  If anyone knows how to accomplish this in the existing setup, let me know.  Otherwise, I'm waiting with baited breath.

Ultramon

Ever since i first setup a pc with multiple monitors i've been frustrated with how windows handles it.  It's like nobody put any thought into it.  That's where Ultramon steps in.  Ultramon (http://www.ultramon.com/) is built to specifically handle multiple monitors.  There are two main features I use: smart taskbar and window switching.
  • Smart Taskbar: ultramon puts an additional task bar at the bottom of each monitor.  The windows in that monitor only display on the task bar of that monitor.  This means that a window on your secondary monitor shows up in the task bar of the secondary monitor (not the first).  This feature works fine in windows7, but diminishes some of the new task bar features in windows 7.  It works wonderfully in XP.
  • Window switching: this feature is particularly handy because i have a mouse with a few extra programmable buttons.  This feature allows you to move the current window to the other monitor.  Much easier than dragging the window from one to the other.  I take this two steps further by first going into the UltraMon config and setting a keyboard shortcut that move the current window to the next monitor.  Then i go into my mouse settings and set one of my buttons to map to that keystroke.  This means that when i hit that button on my mouse, the keyboard shortcut gets virtually pressed and UltraMon moves the current window to the other monitor.
This feature isn't so useful in Windows 7 because the snap feature is a little sexier.  With snap, i can hold the windows key and press the left or right button on the keyboard.  This snaps the current window to the left or right side of the current monitor.  Repeating that keystroke sends it to the left or right side of the other monitor.  Keep repeating the process and the window gets snapped in a sequence to 3 positions on each monitor.  I map that key stroke to a button on my mouse and i get the same functionality as with UltraMon.
The full version is worth it, but you can try it out for free first.

Just in time for Halloween

If you're using IP SLA tests to measure latency across your network, you may want to keep in mind that there is a caveat to using IP SLA.  Two reasons:
  1. QoS markings. If you are doing tests of different QoS queues all tests that are generated on that router will go out the default queue, even if marked for higher  priority.  So you use a shadow router that is within its trust boundary so that it will honor the QoS markings.
  2. Load on the Router.  IPSLA can add load to the router, on both the source and target.  So you can use the shadow router to act as the source or destination to reduce load on the WAN routers.  It’s not going to be a big deal if there’s only a handful of tests but if you’re doing an NxN combination of tests to between each site I would recommend a shadow router at each.
A shadow router?  Wait, i thought my Magic: The Gathering days were over after high school?!
A shadow router would simply be any router behind the WAN router, but within the QoS trust boundary.  That way any QoS markings on the test would be set on the shadow router, sent out the shadow router's default QoS queue, but honored by the WAN router and the rest of the network (depending on the config of the rest of the network).

Usually a shadow router isn't actually used for routing, but that will depend on your resources.  If you use a spare router to do your IP SLA, then the resources taken up by the IP SLA test aren't in competition with production resources.

Shout out to Zack Belcher who reminded me of these reasons to have a shadow router.

Xobni

A few years ago, one of my buddies turned me on to Xobni (http://www.xobni.com/).  It's an add on for your outlook that works so much better than the built in search.  There are two flavors, free and pay.  I haven't used the pay version, but i've talked to a few people who have and they like the additional features.

Like i said, i use the free version and really love it.  It adds a sidebar to your outlook that lets you search through all your email.   Not only that, but if you use the reading pane (everyone should use the reading pane), Xobni (inbox spelled backwards) will automatically display the search results for the currently selected email.  So, for example, if i am currently reading an email from my boss, Xobni will automatically display the following information:
  • Contact information - xobni will glean this information from all your past emails by looking at the signatures!)
  • Usage statistics - shows how many emails you get on an average per hour from the selected person, how many emails to you from that person and vice versa.  It will also show you how that person ranks (i.e. is that person your #4 most contacted person)
  • Conversations - xobni pulls up all emails from that person and groups them by email thread.
  • Attachments from that person
  • Links in emails from that person
  • Appointments with that person
  • Other people in your communications network with that person
There are also plug ins to automatically display that person's linkedin, facebook, twitter profiles, skype account information, etc.  Anyway, it's a useful tool and you can get it for free.  It seriously speeds up the amount of time it takes me to find stuff in my email.

Easy to do business with

I finally figured out what has been missing since the NetQoS acquisition by CA.  One of NetQoS' vision points was to be 'easy to do business with'.  NetQoS has always manifested this vision with exceptionally easy processes.  However, since CA acquired NetQoS, doing business has been difficult and aggravating.

For example: i just changed jobs from one NetQoS customer to another.  It took a week and a half to get my email address updated so i could log into the portal again and get notifications from the message boards.  And i went to get my new company's site IDs added to my profile and nobody knew how to find all the site IDs for my new company.  After a while we did find two site IDs (why one company needs two site IDs is obviously the brain child of a non-engineer).  However, the support guy wasn't sure the site IDs he gave me were all the site IDs for my new company!

Ug, please CA: ask someone from NetQoS what it meant to be 'easy to do business with' and get your act together.  You are NOT easy to do business with.