Thursday, January 19, 2012

Fighting SOPA and PIPA

SOPA and PIPA are two pieces of legislation aimed at decreasing the amount of illegal piracy that happens on the internet.  They could, if passed in their current version, grant the government powers that could cause problems for legitimate web sites.  I can't say it much better than Wikipedia and Google.  Read the information available before making any decision.

One thing I can do is help spread the message.  If you have a Twitter account and live in Texas, the following links will tweet a message to the Texas congressmen and women asking them to represent their constituents by opposing SOPA/PIPA.

Brought the bill to the house:
Lamar Smith

Texan representatives on Twitter:
Joe Barton
Kevin Brady
Michael Burgess
John Culberson
John Carter
John Cornyn
Henry Cuellar
Quico Canseco
Lloyd Doggett
Bill Flores
Kay Granger
Gene Green
Charlie Gonzalez
Louie Gohmert
Al Green
Ruben Hinojosa
Kay Hutchison
Jeb Hensarling
Sheila Jackson Lee
Eddie Johnson
Michael McCaul
Kenny Marchant
Randy Neugebauer
Pete Olson
Ron Paul
Ted Poe
Silver Reyes
Pete Sessions

Friday, January 13, 2012

How to Use Poll Instance Properties in a View


If you aren't completely, 100% comfortable with manipulating the database manually, stop reading this post now.  If you continue reading this post, you do so at your own risk.

In NV (and NPC if you've jailbroken it), you can create views using the NV Custom View Wizard.  One of the things the developers did but didn't really publicize is that you can pull poll instance properties into those views.  This includes any custom properties you may have added to the poll instance.  By default all poll instances have at least two properties: 'Name' and 'Description'.  Built in dataset poll instances (like ifstats) will have other properties which you can also use.  The trick is that you have to manipulate the database slightly in order to instruct the view to even look at the properties.  It isn't too bad, but like I said before, if you don't know how to do this with your eyes closed, don't try it.
  1. First you have to get the control id of the view (technically called a control) you have just created and will be modifying.  This is pretty easy to get, just open the view in the wizard and look in the url for the controlid parameter.  In this example, the id is 1200031.
  2. Next you need to get into the database and take a look at the control properties for your control.  Something like this: 'select * from control_properties where controlid=1200031 order by pageid, propertiesid, userid, propertyname;'
That should result in something like the following.

ControlID PageID PropertiesID UserID PropertyName PropertyType PropertyValue Editable Enabled
1200031 0 0 0 ColumnNames string latencymin,latencyaverage,latencymax Y Y
1200031 0 0 0 ControlType string PollInstance Y Y
1200031 0 0 0 Create.Date string Added at 1/13/2012 9:05:07 AM by nqadmin Y Y
1200031 0 0 0 data.chartType string Table Y Y
1200031 0 0 0 DataSetName string ISILONPerf Y Y
1200031 0 0 0 Description string This report focuses on the worst values for the specified parameter and therefore may be more prone to problems or failure. Y Y
1200031 0 0 0 DisplayFormats string ms|ms|ms Y Y
1200031 0 0 0 DisplayNames string Minimum,Average,Maximum Y Y
1200031 0 0 0 drillDown.target string Y Y
1200031 0 0 0 FieldNames string latencymin;latencyaverage;latencymax Y Y
1200031 0 0 0 FieldNames2 string Y Y
1200031 0 0 0 FieldNames3 string Y Y
1200031 0 0 0 FieldNames4 string Y Y
1200031 0 0 0 FieldNames5 string Y Y
1200031 0 0 0 Filepath string /nqWidgets/Poller/wptTopN.ascx Y Y
1200031 0 0 0 footer.text string Y Y
1200031 0 0 0 Limit string 10 Y Y
1200031 0 0 0 MibTables string ISILON_MIB.nodeProtocolPerfEntry Y Y
1200031 0 0 0 OrderBy string latencyaverage DESC Y Y
1200031 0 0 0 PropertyNames string Description,Name Y Y
1200031 0 0 0 RedThreshold string Y Y
1200031 0 0 0 Title string Isilon Node Performance Table by Protocol Y Y
1200031 0 0 0 Wizard.Action string ReportWizard('/npc/ReportWizard.aspx?PageID={PageID}&CtrlID={CtrlID}&PropertiesID={PropertiesID}'); Y Y
1200031 0 0 0 yaxis2.ColumnNames string Y Y
1200031 0 0 0 yaxis2.DisplayColors string Y Y
1200031 0 0 0 yaxis2.DisplayFormats string Y Y
1200031 0 0 0 yaxis2.DisplayNames string Y Y
1200031 0 0 0 YellowThreshold string Y Y

  1. You'll notice that I have a property called PropertyNames.  This is the entry you need to add to this table.  The propertyname will be 'PropertyNames' as shown.  The propertyvalue will be a comma separated list of the properties you would like to be available to this view.  For example, since I want both the description and the name properties available to this view, I added them both in there.
    You would normally add this record using an insert SQL statement.  A 0 in the pageid, propertyid, and/or userid fields represents a wildcard.  Technically, a view can exist multiple times on a page.  If it does, the pageid will contain the id of the page on which the control instance(s) exist(s).  The propertyid refers to which instance of the view on the page.  The userid refers to any properties that the user may have modified and saved to only their account.  If you want this change to apply to all instances of the view, the easiest would be to make the change to the default (pageid=0, propertyid=0, userid=0) then re-customize any views that have been customized.
  2. Once you've got that done, you can go back to the view wizard.  Go to the 4th step.  You can now use the property values within expressions or the 'Where' field.  The syntax is as follows: p_PropertyName.property_value, where PropertyName is the name from the comma separated list you entered into the database.  In my case, if I wanted to display the description, I would create an expression called 'Description' and the expression formula would be 'p_Description.property_value'.
One of the nice things about exposing properties is that you can use the properties in the 'Where' field of the view.  The where field allows you to pre-filter the view so that only certain objects show up.  For example, if I knew that the description contained an enumerated set of values (cifs, nfs, http, other), I could create a view that only shows the cifs objects by putting "p_Description.property_value = 'cifs'" in the Where field.

Unfortunately, this doesn't work for device properties like sysLocation, sysContact, sysName, sysObject, etc.  However, there is a script floating around that will take those parameters and store them in custom poll instance properties, which could then be exposed using this method.

Monday, January 9, 2012

How to convert VHS to DVD

We don't have that many VHS tapes lying around our house.  However, our wedding video is one important exception.  As a present for my wife on our 10 year anniversary, I decided to see if I had enough junk in my garage to do a conversion to a digital format so we could watch it.  Turns out I do.

The first think I would obviously need is a VHS player, also known as a VCR.  Fairly simple, nothing special.  I might have gotten a little better quality if the VCR had an S-video output instead of RCA composite video.  Maybe.

Friday, January 6, 2012

How to Wipe a Computer

I find myself leaving another job in favor of a better job.  Has happened quite a bit recently.  I wonder what that says about the economy?

Anyway, I've got another laptop I need to wipe clean before I can turn it back into my previous employer.  I figure, while I'm doing it, I might as well write down the various techniques.  You may want to do this anytime you're turning in an old computer or recycling it or giving it away.  Who wants to leave all that personal information on a computer!?

There are basically two options, the preference will be up to you.

Thursday, January 5, 2012

How to get Free HD TV

I hinted in my previous post that I made Hulu obsolete at our house at the time that I installed my Apple TV.  I didn't perform any real magic, but I do want to explain how I did it in case anyone out there is looking to do the magic that I do.

I normally only watch Hulu for ABC shows since I don't get good reception on our TV for the ABC affiliate here in Houston.  Let me explain.  Before I added the Apple TV to the mix, I used an antenna mounted in my attic which fed a signal to a pair of USB HDTV tuners connected to a pc connected to my TV.  I used Windows Media Center (WMC: a free piece of software included in every version of Windows Vista and Windows7) to watch and record TV.  WMC has a free guide built in and since I used two tuners, I could record/watch up to two shows at one time.  It was great.  I could pause live TV, I could schedule my favorite shows to record, and since it was a full blown PC, I could watch Netflix and use Hulu Desktop for online content.  I could even watch general conference via the internet browser.

All of this was great, except that the position of the antenna didn't give me great reception on ABC and I only got fair reception on some channels, missing out on the secondary channels altogether in some cases.  So, at the same time that I installed the Apple TV, I chose to get one other piece of hardware to alleviate the need of having a PC connected to the TV.  After all, I had to have the PC turned on all the time in order to ensure that all my shows would get recorded.  That combined with a big external hard drive that I had hooked up for TV show storage added to the power and heat inside my little entertainment cabinet.  I knew that I could use my XBOX as a media center extender, so I knew I could shift the load from the TV PC to my office PC.  The only problem was that I would have to run coax cable from the antenna down to my office and then plug in the two USB HDTV tuners.  I didn't want to have to run more cable through the wall.

The solution was to get a SiliconDust HD HomeRun Dual.  I found it used on the internet (thank you Amazon) for around $75.  The advantage of this device is that it combines the two tuners into one device and it uses Ethernet as opposed to USB for connectivity to the Windows Media Center PC.  This means that instead of running a coax cable from the antenna through the walls to my office PC, I could just run an Ethernet cable from the antenna/HomeRun Dual to my home router.  Since this is much easier due to the placement of my router, this became the optimum solution.

So, I installed the HomeRun Dual in the attic and connected it to the antenna.  I ran an Ethernet cable from there down to my punch-down and from there patched it into my router.  I installed the little utility on my office PC and fired up WMC.  WMC found the tuner on the network without any real work and before I knew it, I was watching TV on my office PC.  As it turns out, any other PC on my network can use one or both of the tuners as long as another PC isn't using them.  They are a pool of tuners available to everyone on the network.  Awesome!

The only problems was that the reception had changed.  I wasn't getting all the channels I was getting before or I was getting them, but not well enough to watch.  This wasn't unexpected since any time you change wiring in regards to an antenna, things can change.  I decided I needed to get my antenna higher so it would get better reception for those channels.  I mounted the antenna on the chimney and checked things out.  Lo and behold, I got wonderful reception on all the channels I used to get and I also now get very good reception on ABC and the affiliates.  I even now get 3 sub-channels to PBS!

Now that I get ABC, I don't really need Hulu.  If there is something I want to watch that I don't get through Netflix, over the air HDTV, or isn't in my collection of DVDs, I can always check Hulu.  If all else fails, Amazon and gohastings.com are always there to help with a used DVD.