Thursday, July 20, 2006

Audacity + Rhapsody (or Napster)

Did you know?: Using Audacity, you can record the music you listen to with Rhapsody or Napster. Install Audacity and then change your input from the microphone to the "Wave Out" device and you are ready to go. Then, queue up your desired playlist in Rhapsody or Napster and let it play. Hit the record button on audacity and let it run through the songs on your playlist. When it is finished, stop recording in Audacity and then go back and find the start and stop of each song. Select the proper portion of the recording and export that selection in either .wav, .mp3, or .ogg format. Do this for each song in your playlist and, Viola!, you now have a digital copy of the music you were listening to. The quality is as good as the service streams to your machine, which makes Napster the better choice for recording like this due to its higher audio fidelity. However, Rhapsody sounds pretty good too. I find either sounds good enough to crank up loud on my car stereo. I certainly can't tell the difference between these recordings and CD quality, though there doubtless is one. I have never had a terribly discerning ear when it comes to audio "quality".

It takes a bit of effort, but this is a great way to recover your long-lost music - especially if tracking it down through the traditional file-sharing methods has proven fruitless.

Now, naturally, this is not something they want you doing, and the legality is shakey at best. However, there are those who believe that they have a right to a digital copy of music they purchased on physical media. This holds true even if the music in question was John Schneider's Greatest Hits that they purchased in 1985 and lost in 1987. Such individuals feel quite comfortable procuring the music from that album in digital form by whatever means necessary.

I'm not saying I support such things (though I lean toward their side rather strongly). All I am saying is that you can do this, and it is really quite easy.

One importnat tip - turn off windows sounds by going to the Control Panel/Sounds And Audio Devices dialog in the start menu. Select the Sound tab and then select the "No Sounds" sound profile for windows sounds. This way you won't get windows beeps and blurps in the midst of your favourite song.

-Michael

Monday, July 10, 2006

Bringing you up to speed...

I haven't written in a while, so I thought I would update you all on the latest achievements in my life:

1. Got a new PDA phone - the Sprint 6700. A nice review is here:

I chose this phone for several reasons. First, I wanted to ensure that I had a keyboard of some kind. I could have gone with the Motorolla Q or one of the older Treo-style keyboard devices, but without exception those PDA phones sacrificed some screen pixels to provide me with the keys. The slide-out form-factor of the 6700 allowed me to keep my precious pixels and get a better-sized keyboard to boot. The only cost was the thickness of the phone, which I must say is rather unweildy at something like 2-3" thick...

2. I bought an XBox 360.


Being a game developer by trade, this was an easier purchase to justify than it would be for ordinary mortals. ;) My fiance doesn't particulary believe that I really bought this for "research" purposes, and neither do I to be honest, but the bottom line is that I need to keep up on the latest gaming platforms and if that means iH ave to suffer through endless hours of exciting gameplay, well... so be it.

3. I bought 3 or 4 new hard drives.

I can't seem to stop buying hard drives. Every weekend some store is selling some hard drive for a rediculously cheap price. My last purchase was a 400GB hard disk for a measly 120 dollars. Whoa. How can I possibly pass that up? The result of purchasing several new drives is that I have displaced several smaller, older drives that had previousy been in my USB encolsures (of which I have four). I am getting to have quite a stack of hard drives on my computer hardware shelf.

4. I bought 2 new network-storage "units".

I bought a netgear network drive that can hold two separate hard drives and present them as a network share on your local area network. This was a good way to let me use some of those new hard drives I had purchased without displacing existing drives. I also bought a DLink network storage device that only holds one drive but can daisy-chain 2 additional USB enclosures shoudl I so desire.

5. I bought a Nintendo DS Lite

This little bugger is great! I don't know why I waited os long to get one - because it is a great handheld gaming platform. I just wish that they had used one large touch-screen instead of two separate screens. Whomever thought that was a good idea should be taken out and shot -- umm... unless it was the same bloke that fought for the use of the stylus and the touch screen - in which case he/she should just get a stern talking to.

6. I bought oodles of PSP games

I bought a PSP a long time ago, but I keep buying new games even though all I ever seem to really play is Untold Legends 2 (or whatever the second one is...)

7. I bought a room air conditioner that doesn't work.

Damn thing. I'm taking it straight back to Home Depot as soon as I get around to it....

Well, that's about all the major purchases I made. I am hoping to buy, in the future, the following:

  1. A PSP LocationFree unit - to let me record, view, and manage television programs from my PSP or PC.
  2. A PS3 when I can mortgage my home (I'll need a home to mortgage first).
  3. A Nintendo Wiiiiiii (how many i's are there in that stupid name?)
  4. A new PC - at least parts of one. My current PC seems to feel the need to reboot constantly and to turn off all my USB hubs and lock up. Annoying!
  5. Get a media PC set up in the living room so that I can watch all those divx recordings of my DVD collections that I have gathered through my use of newzbin, giganews, and newsleecher.

That's all for now. Tune in for more frequent updates - after all there are at least 3 people that read this blog ... and for that mighty readership I must make certain sacrifices and keep things updated regularly.

-Michael Moore (Seattle, WA)

Tuesday, October 25, 2005

Keyboard recording software roundup

I just finished looking around for a freeware program that could handle keyboard shortcuts that might be several keys in length. Here are the results of my research, I hope they are of some use to you as well. If they help you, do me a favour and leave me a comment to let me know.

Peace,

-Michael

Goal:


To be able to hit Control-F12 or something like that and have it execute a series of keystrokes. For example, to open a menu in the interface and select an item in that menu that does not have a keyboard shortcut assigned to it.

Note that there is not stated need for the mouse to be scriptable, but several of the products I list have that capability as well.

My Research:


Though somewhat limited, you should be able to do what you want with this utility:

  • http://www.digital-miner.com/hkcontrol.html


  • It is freeware, though like almost all freeware you are encouraged to donate if you enjoy the program.

    Another program that can do what you want is called Hot Key Pro, but it costs 30 dollars. I found it to be very easy to use and does a lot of powerfull things. It can be found here:

  • http://www.hot-keyboard.com/


  • The one I like the best, because it is the most flexible, is:

  • http://members.ij.net/anthonymathews/MacroMaker.htm


  • It is free, and can do mouse and keyboard recordings, and can do other things like insert delays in the commands, add system variable values, etc...

    Finally, a great resource for all of the varous programs that do this sort of things I found here at tucows:

  • http://www.tucows.com/downloads/Windows/DevelopmentWebAuthoring/Hotkeys/


  • Afterthought


    The program I also use that can probably do this is called "StrokeIt". (http://www.tcbmi.com/strokeit"). I mentioned it in a previous email to the company waaaay back in June or May -- it allows you to perform mouse gestures to trigger actions. I use it for ease of use in navigating my browser windows and for opening and closing programs. For example, if I draw a letter C with the middle mouse button held down, it will close the current window I am looking at. If I draw a _| (inverted L) figured, then it will send a PAGEUP keyboard command to the current window, etc... I have mapped forwardnad back buttons in the web browser to left and right strokes, etc...

    StrokeIt can also do keyboard shortcuts,a nd I believe it can send multiple keys, but I didn't bother to figure it out since I found so many other programs that worked and I figured you weren't so much interested in mouse stroke software as you were int he keyboard macros. If you change your mind about that, do let me convert you :)

    Friday, September 30, 2005

    Some devstudio tips

    Hi everyone,

    I sent this around at work yesterday. Its just a couple of tips about programming in Visual Studio .Net 2003.


    When a project changes, dev studio offers to Reload it. This doesn't always work.
    ===============================================================

    1. Most of the time the Reload button works fine when a vcproj or sln file has changed. However, in the case where a new file has been added to the project you will usually find that you have to completely close out the solution and then load it again to avoid link errors for code in the new file. Personally, I just restart dev studio in such cases.

    Setting up Tool menu items to run perforce commands
    ========================================

    2. To properly set up the Tools menu to have your perforce checkin, checkout, revert, and sync commands you need to set the following environment variable: "P4CLIENT=username". For example, I have set my P4CLIENT environment variable to "mmoore". Then you can set up commands like "c:program files\perforce\p4.exe" with arguments "diff -f $(ItemPath)". If you have logged in to perforce via p4win, you should have no problems. To be safe, I also set : "P4PORT=myperforceserver:1666", but I'm not sure if you need that.

    Properly handling an environment variable change
    =====================================

    3. Note that when you make changes to environment vairables via

    "My Computer/Properties/Advanced/Environment Variables...",

    you are not going to see those changes in any programs that were already running prior to that point. This can bite you in many ways, but one of the more apropos in this case is the need to restart devstudio after changing an environment variable, such as the P4CLIENT mentioned above.

    * SIDE NOTE: Those who might use a filebrowser program instead of the default explorer folder browsers have to be especially cautious on the environment variable changes. If you're used to running devstudio from Directory OPUS or Explorer XP and you change an environment variable to a new value in the windows shell, you'll need to restart your file browser program so that new programs launched with inherit the updates to the environment variables.

    MINIDUMPS
    ===========================

    4. Devstudio added minidumps to the mix in 7.0, which makes it easy to set up a crash handler that takes a snapshot of the stack, registers, and associated information such that the call stack can be reproduced faithfully at any time in the future. A minidump may decide to include the entire heap if desired - doing so allows you to view all aspects of memory including the values of variables not on the stack. Heap minidumps also do not need to be pointed to the original binary to load symbols - the heap info is enough. Minidumps without the heap, on the other hand, must be pointed to the original binary and its associated pdb file.

    To use a minidump, you simply open it in devstudio and open it as if it were a project file. You'll see a callstack as if the program had just crashed, though of course it hasn't. :)

    Hope these tips help somebody,

    -Michael

    Tuesday, September 13, 2005

    program to find which process is using a file windows

    Today I was trying to delete a file on my hard drive and it came back and told me that, although it bitterly regretted it, the operating system would not be able to comply with my request because another process had the file opened and was restricting access to it. Without the proper access, the operating system cannot delete a file.

    I tried my first trick, which works a good percentage of the time: I renamed the file. Or, I tried to. Instead, I got a similar message indicating even this approach of renaming the file was not possible. Often it works because the owner of the handle that has the file opened can continue to access the file so long as you simply rename it and do not attempt to delete it. I think, though I am not sure, that this method works so long as the owner of the handle does not have that handle opened for write access.

    At that point, the question that is the title of this blog entry came into play: "Is there a program out there that will tell me which program or programs has a specific file opened?" If I know which process has my file held hostage I can use task manager to terminate that process and thus free up the file's permissions so that I can safely delete the file.

    I did a few google searches but didn't turn up much. Disheartened, I started scanning with my good friend 'procexp.exe' - or Process Explorer - to see which one it might be. Procexp can show you which handles a given process has open, including files. As I did this manual hunting, I noticed the Find menu, which turns out to be the perfect tool for the task. Using its Find Handles... dialog, you can type in the substring to search for - which can be a portion of the filename, or the type of resource in general. For example, type 'ntuser' and you'll find all the handles opened on your system that touch anything with ntuser in it, such as the ntuser.dat log file, which every user has in Windows XP.

    This feature was so usefull and cool, I just had to share. If anyone is even reading this out there, and you have a good tip of your own, please do share!

    Update:

    There is now ( perhaps always was) a command line utility also available at sysinternals.com called Handle that provides a very rapid way to find open files and other handles on your system. I recommend it above procexp.exe unless you're already running procexp.exe. It is also nice, if you are like me and use a suite of unix commands for dos. Then, you can pipe the results from the handle command to whatever other command-line programs you like. For example: 'handle | grep -i insight" will show me not only what files are opened that have the word insight in their title but also all handles opened by my editor, Source Insight, because its executable name is insight.exe.

    -Michael