Saturday, September 13, 2008

Frets on Fire Note

Frets on Fire is a fantastic game that I am now addicted.  I find it extremely relaxing and it can take my mind away from work for some real relaxation.  The game is for Linux, Mac, and PC.  It is written in Python.  The biggest drawback is that it only comes with a few songs.

I grew up learning how to play the piano.  I used to love learning something new and kept trying to get better and better.  That was until I met a natural piano player that couldn't read a note to save his life but played much better than myself.  The whole time I learned how to play the piano, I never learned how to play with the piano.

Make no mistake, Frets on Fire and games like Guitar Hero and Rock Band won't teach you how to play an instrument.  Luckily I don't want to learn how to play the guitar, I want to pretend that I know how to play the guitar.  For me that is the big draw of these types of games.  I can improve my fictitious skill and have fun listening to songs that I didn't even know were favorites.

I wish I could work with Jonathan Coulton to fret "Code Monkey" and have him resell it for a few bucks.  Finally I'm at a place the Record Industry wants me to be, I'd like to purchase a song and learn how to fake-fret it for a video game.  It really does seem to be the next logical step toward loving a song.


Now for the real reason I felt compelled to write...

I had the hardest time getting Frets on Fire to recognize a new folder full of songs.  Apparently, Frets on Fire will not go any further that the first layer when adding songs to its playlist.  However, you can trick Frets on Fire into recognizing a deep folder structure if you put a song folder inside of every folder depth for the first time Frets on Fire recognizes the folder.  After Frets on Fire recognizes your folder, you can then redistribute your song folders however you would like.  For example, instead of creating 2 new folders under songs and then placing the song folder, you must create it like data/songs/newfolder/newsongfolder/song.ogg

Friday, September 5, 2008

SQL Server Performance Counters

Page 2 - How to Perform a SQL Server Performance Audit
How to Perform a SQL Server Performance Audit - Using Performance Monitor to Identify SQL Server Hardware Bottlenecks

Performance Audit Checklist

Memory: Pages/sec
Memory: Available Bytes
Physical Disk: % Disk time
Physical Disk: Avg. Disk Queue Length
Processor: % Processor Time
System: Processor Queue Length
SQL Server Buffer: Buffer Cache Hit Ratio
SQL Server General: User Connections

Once you have added each performance indicator as listed above, then find out your Average, Minimun, and Maximum for each value.

Remote Assistance Shortcuts

If you want to call Remote Assistance from another program like a helpdesk web application, you have to do a couple tricks. I found out about these links by using SysInternals ProcMon and performing the tasks I wanted to copy. I then had to look through the information for the needle in the haystack.

Here is the generic starting of Remote Assistance on Windows XP (you will need to fill in the computername at a web form):
C:\windows\PCHealth\HelpCtr\Binaries\HelpCtr.exe -FromHCP -url "hcp://CN=Microsoft%20Corporation,L=Redmond,S=Washington,C=US/Remote%20Assistance/Escalation/Unsolicited/unsolicitedrcui.htm"
Here is the SMS 2003 call that sends a computer name variable to the command line (This doesn't work unless you have SMS 2003 installed or copy the SMSUnsolicitedRCUI.htm to the correct PCHealth folder)
C:\WINDOWS\PCHEALTH\HELPCTR\Binaries\helpctr.exe -FromStartHelp -url hcp://CN=Microsoft%20Corporation,L=Redmond,S=Washington,C=US/Remote%20Assistance/Escalation/unsolicited/SMSUnsolicitedRCUI.htm -ExtraArgument "NOVICECOMPUTER=_ComputerName_&NOVICEUSERID="""

Where _ComputerName_ = NetBios name of the remote computer

This is the location of the original hcp files:
C:\WINDOWS\PCHealth\HelpCtr\Vendors\CN=Microsoft Corporation,L=Redmond,S=Washington,C=US\Remote Assistance\Escalation\Unsolicited\

Let me know if you need a copy of the htm files. I'm pretty sure I would break Microsoft's copyright by posting the html file on this webpage.

Thursday, September 4, 2008

Upgrading Dell BIOS through Ubuntu

Repository/firmware - DellLinuxWiki
For Ubuntu systems, be sure the Universe section is enabled in /etc/apt/sources.list, then do:

# set up repos
wget -q -O - | bash
aptitude install firmware-addon-dell
aptitude install $(bootstrap_firmware -a)

Following these instructions didn't work for me. It looks like the bootstrap.cgi script is removing a temporary apt repository file from /etc/apt/sources.list.d/dell-software-temp-bootstrap.list

At any rate if you install these 2 debs the instructions should work.


amd64 (both Intel and AMD 64 bit processors)

        <a href="">dell-firmware-repository_1-2_all.deb</a><br />        <a href="">dell-software-repository_1-2_all.deb</a>

Analytics and Metrics for Help Desk Personnel

ITIL Alternatives
The British Educational Communications and Technology Agency (BECTA) has developed the Framework for ICT Technical Support (FITS) and is based on ITIL, but it is slimmed down for UK primary and secondary schools (which often have very small IT departments).

Becta Schools
Internal metrics

Internal metrics are to manage the processes and should indicate any
issues internal to ICT that may have an impact on service delivery.

Example internal metrics:

* Availability of individual components such as routers and servers - used to calculate service availability
* Breakdown of time taken by each participant in the life cycle of
an incident
* Breakdown of time taken in each step of the life cycle of an incident
* Percentage of incidents resolved by the service desk in a given period
* Number of changes approved in a given period Number of changes rejected in a given period
* Length of meetings when considering change and trend over time
* Number of changes resubmitted following failure during testing

Becta Schools
External metrics

External metrics are to measure service delivery and should indicate any issues that may be causing a detrimental impact on users of the ICT services.

Example external metrics:

* Length of time elapsed between identifying an incident and resolving it
* Number of calls logged in a given period
* Number of calls logged in a given period sorted by priority
* Number of calls logged in a given period sorted by category
* Number of changes implemented in a given period
* Number of successful changes in a given period
* Number of failed changes in a given period
* Availability of ICT services

Now to apply these metrics to our chosen helpdesk application, BMC's SDE product.

Wednesday, September 3, 2008

Powershell Script To update links

Single line to deploy new shortcut to all workstations:
cat workstations.txt | ForEach-Object -process {copy-item 'shortcut.lnk' -destination "\\$_\c$\documents and settings\all users\start menu"}

If I was to work on this again I would want to add a line that would tell me what workstation was being worked on like the untested code below.  If the computer is turned off or not able to be connected then the error just shows up as "Copy-Item : The network path was not found" or "Copy-Item : Could not find a part of the path" without any indication of what workstation was failing.
cat workstations.txt | ForEach-Object -process {

write-host "Trying to connect to $_"; copy-item 'shortcut.lnk' -destination "\\$_\c$\documents and settings\all users\start menu"}