July 15, 2008


Cool Tools 2

More cool tools to share:

This is a great, no-nonsense de-crapifier for Windows. I highly recommend it for cleaning out not only temp files and the recycle bin, but loads of other stuff lurking on your hard disc. It also has a nice registry cleaner that has worked very well.

By the same company as CCleaner, this is an excellent disk defragger. Both tools have very simple, clean interfaces and perform extremely well.

I may have mentioned this one before, but they've recently added FTP to their list of protocols (SFTP and SCP). An excellent tool just made even more flexible (although you should stick to the secure protocols if you can). It's synchronize feature is very handy, to sync two remote directories. You can run it from the command line or batch file as well.

MagicIso and MagicDisc are both very handy - for burning a disc from an ISO, and for virtually mounting an ISO image.

That's all for now!

Posted by randy at 07:00 PM | Comments (0)

February 18, 2008


Cool tools

Just wanted to share some recent tools I've been using to manage the digital jungle...

ScheduleWorld - this is a great service for synchronizing contacts and calendars among a huge variety of platforms and devices. I use it to keep my contacts straight between our two home computers, the laptop, and work. It works with google calendar too! The only drawback is the very clunky website and user interface, which you shouldn't have to deal with too much, but it puts you off initially.

Funambol - Sync utility that goes with ScheduleWorld. You only need this if you want to sync Outlook contacts and/or calendar.

SyncBackSE - basic hard disk backup utility, but with a very nice, powerful interface. Very reasonably priced (they have a free version, but I think it's worth paying for the full version).

Posted by randy at 05:51 PM | Comments (0)

July 28, 2006


The enemy is me

I'm ashamed to admit that, for one day, I briefly became a spammer. It seemed innocent enough, to send a message only to university faculty in the computer science & electrical engineering departments about my motor controller. Since by far universities have been the main customer, I thought there would be a match there. And there was, I got several positive responses, but a few really, really negative responses. I had no idea how passionate some people are against spam, and how much energy they must spend on a crusade against it. But I do know I'll never do it again - it's not worth the risk of pissing off the community you're trying to partner with.

It seems like such a shame to have a great, incredibly efficient, free technology like e-mail, and be unable to use it because of the horrendous abuse that's occured. One response threatened that I would never do business at that university. I couldn't help but wonder, how will he communicate that messsage to the entire faculty, what would be the most efficient way to tell his colleagues NOT to do business with me? An unsolicited email, perhaps?

Posted by randy at 11:58 AM | Comments (0)

July 06, 2005


Windows Serial library

OK, I've finally organized the source code and written a very simple demo program for the C windows library I mentioned earlier. These are plain vanilla C (although the demo is C++) routines to read from and write to the serial port. The code is available in the code library, or here.


Posted by randy at 02:55 PM | Comments (0)

June 21, 2005


C++ Resources

Just wanted to note a couple really handy sites/resources for C++ development, and other development. The fairly new iGrep search engine worked wonders on my serial driver problem - I found just what I was looking for, after other searches had failed. And the CodeProject has lots of articles on a wide variety of topics. I found some really nice .dll examples there. Here are the links:


http://www.codeproject.com (requires free registration to download code)

Happy coding!

Posted by randy at 02:15 PM | Comments (0)

June 13, 2005


Windows Serial Driver - score!

I spent the weekend hacking my way through the windows device driver jungle, and finally succeeded to get a basic serial port driver working (wOOt!). I'm amazed at how hard it has been to find a very simple serial port driver in C or C++ for windows. It must be an incredibly common need, but all of the search results I've found are either very out of date, don't work, or cost lots of money. So I finally started from scratch (okay, I started from a Microsoft Knowledge Base article from 1995).

This article builds an application called MTTTY that opens a teletype window and transfers files. It took me most of the day to get that code to compile because it was so out of date and used lots of deprecated API calls.

I had started with another sample app, VCTERM, but that uses an .OCX, or ActiveX control, which has the GUI part combined with the serial part. All I wanted was to actually send and receive data. So I patched up, then tore apart the MTTTY code.

What I ended up with is this: a Windows console application that builds in VC++.NET, opens, writes to and reads from, and closes any serial port, at any baud rate. It's in Visual Studio .NET, written in mostly C at the moment, but I will soon wrap it in a C++ class. I think I will use the PySerial object model as a guideline, because I like the way they did that. I will also add properties like parity, data bits, flow control, etc. to make it more general purpose.

I'm going to use this to build a Gamoto serial driver .dll, to make it really easy for any windows program to talk to the Gamoto.

Posted by randy at 05:27 PM | Comments (0)

April 28, 2005


PC Trouble

So I finally broke down and bought a new PC, to replace my 5-year old 600MHz P3 system. It's great to have a new bleeding edge computer, but I'm having a strange problem with it that I thought I'd write about, in hopes someone will find this on a search and have some information for me. This system was built by a co-worker friend who is very experienced with these things, and we are both baffled by this issue.

The deal is, the system shuts down when the CPU gets above 62C, even when the BIOS shutdown temp is set to 80C. I set it to 70C, and still, it shuts down at 62C. I can get it to this temperature by running a CPU burn-in utility. The interesting thing is when I disable the BIOS overtemp shutdown, it no longer shuts off. So it's clearly the BIOS that is shutting it down, but apparently way too soon. I'm using an Intel P4 Prescott, and I know they run hotter than any other CPU out there, but that's not the issue. Here's my system specs:

Intel P4 Prescott 3.4GHz
nVidia GeForce FX5500 128Mb AGP 8x Video
1Gb RAM, single DDR400 184-pin DIMM module
575W Dual fan Power supply
Biostar P4M80-M7 motherboard
10/100 on-board Ethernet, Realtek RTL8100C
Audio: Realtek ALC655 6-ch AC97 codec
USB 2.0, 8 ports
HDD: Maxtor 250Gb IDE, ATA-133

Anyone who has information about this, please drop me an e-mail or leave a comment. I've gotten a reply from Biostar, the motherboard maker, that basically said to run with the shutdown disabled, because it runs fine that way. Well, my smoke detectors run fine when they're unplugged too, but I'd rather they run fine while plugged in.

Another issue for the search engines out there: I found some kind of apparent virus that takes 50-60% of my CPU, and it's a program called akypcofz.exe - it showed up one day, and I tried to kill it with the task mgr, but it restarted almost immediately. I deleted it's startup entry in the registry, and that did it, but a few days later it showed up again. I killed it again and it hasn't returned for a week, but I'd like to know what it is and how to be rid of it for good. It doesn't seem to show up on any searches, so I'm putting it out here for someone to discover. Here it is again: akypcofz.exe akypcofz.exe akypcofz.exe !! I have a copy of the file if anyone is interested in analyzing it.

Posted by randy at 07:57 AM | Comments (1)

October 28, 2004


More music matters

I have recently been playing music on the PC in the basement, and listening to it on the living room/kitchen speakers. This is great, but I can't control the volume, skip songs, etc. very easily. What's a lazy geek to do? I hatched a plan that involves Audrey, everyone's favorite, but extinct, internet appliance, originally made by 3Com. They are now only available on E-bay and some reseller websites. She was a true pioneer 3 years ago, but perhaps ahead of her time. It's a simple little web-enabled tablet that can sit in the kitchen and receive e-mail, show web pages, etc. It has a stylus instead of a mouse, and the stylus lights up when you have an e-mail. My idea is to use it to control my basement music server. So if the phone rings while I'm getting my jam on, I can turn to the Audrey and hit Pause. I can also remove the current song from the playlist, for those times when you think, I gotta drop this one, I'm sick of it!

So, having just won the bid for an Audrey on E-bay, I went about learning how to control my music remotely. I found a great web interface for Winamp called WAWI, and I tried it out. It works great. In the process of this research, I also learned more about Shoutcast, and found it's easy to start broadcasting music to the internet, for anyone to listen to. So here I am at work, listening to my music from my basement via shoutcast, and, using WAWI, I can log in to my basement from anywhere, and stop/start, change playlists, even upload/download songs. Very cool!

If you want to tune in to Randy Radio, simply download and install Winamp (Windows), XMMS (Linux), or Audion (Mac), and go to the shoutcast website. Search for Randy Radio. Or just click here:

Randy Radio

Right now, it's an eclectic mix of classic rock, current stuff, blues, and folk-rock. You just never know.

Well, gotta run. Have fun listening!

Posted by randy at 02:21 PM

August 05, 2004


Internet Radio

Computer music update: I just found out about shoutcast, which seems to be a really cool free internet radio site. Hundreds of different streams of music, all free, and fairly good quality. Some streams have commercials, some don't. It works with WinAmp for a player. Try it out!

Posted by randy at 07:45 AM

July 20, 2004


Firefox tuning

I just did some tweaking of my Firefox web browser, and it definitely seems snappier after the changes. People have measured a 25-30% speed increase by making these tweaks to various network parameters in the configuration. I've posted my user.js file here for you to plagiarize if you like. I have to give full credit for this file to "laszlo" from the Mozillazine forums. Thanks laszlo! I should also mention that I highly recommend the Noia2f skin, and for extensions, I use Googlebar, and WebDeveloper. I haven't even begun to explore all of the handy extensions that are now available. By the way, this post is my first attempt at using Ecto 0.4, a windows client for Moveable Type, and I have to say it's definitely not ready for prime time. It locks up and does weird things, so I'm finishing this entry in the normal web interface. To use this file, copy and paste it into a new text file, and save it as user.js. Then move it to your Firefox profiles folder.
user_pref("browser.blink_allowed", true);
user_pref("browser.cache.memory.capacity", 65536);
user_pref("browser.cache.disk_cache_ssl", true);
user_pref("browser.chrome.load_toolbar_icons", 2);
user_pref("browser.display.enable_marquee", true);
user_pref("browser.display.screen_resolution", 81);
user_pref("browser.display.show_image_placeholders", false);
user_pref("browser.related.enabled", false);
user_pref("browser.urlbar.clickSelectsAll", true);
user_pref("browser.xul.error_pages.enabled", true);
user_pref("clipboard.autocopy", true);
user_pref("content.interrupt.parsing", true);
user_pref("content.max.tokenizing.time", 2250000);
user_pref("content.maxtextrun", 8191);
user_pref("content.notify.backoffcount", 5);
user_pref("content.notify.interval", 750000);
user_pref("content.notify.ontimer", true);
user_pref("content.switch.threshold", 750000);
user_pref("dom.allow_scripts_to_close_windows", false);
user_pref("dom.disable_image_src_set", false);
user_pref("dom.disable_open_click_delay", 1000);
user_pref("dom.disable_open_during_load", true);
user_pref("dom.disable_window_flip", true);
user_pref("dom.disable_window_move_resize", true);
user_pref("dom.disable_window_open_feature.close", true);
user_pref("dom.disable_window_open_feature.directories", false);
user_pref("dom.disable_window_open_feature.location", false);
user_pref("dom.disable_window_open_feature.menubar", true);
user_pref("dom.disable_window_open_feature.minimizable", true);
user_pref("dom.disable_window_open_feature.personalbar", true);
user_pref("dom.disable_window_open_feature.resizable", true);
user_pref("dom.disable_window_open_feature.scrollbars", true);
user_pref("dom.disable_window_open_feature.status", true);
user_pref("dom.disable_window_open_feature.titlebar", true);
user_pref("dom.disable_window_open_feature.toolbar", true);
user_pref("dom.disable_window_status_change", true);
user_pref("editor.singleLine.pasteNewlines", 0);
user_pref("inspector.blink.border-color", "#CC0000")
user_pref("inspector.blink.border-width", 1);
user_pref("inspector.blink.duration", 2000);
user_pref("inspector.blink.invert", false);
user_pref("inspector.blink.on", true);
user_pref("inspector.blink.speed", 200);
user_pref("inspector.dom.showAnon", true);
user_pref("inspector.dom.showWhitespaceNodes", true);
user_pref("layout.word_select.eat_space_to_next_word", false);
user_pref("layout.word_select.stop_at_punctuation", false);
user_pref("layout.xml.prettyprint", true);
user_pref("middlemouse.contentLoadURL", false);
user_pref("middlemouse.paste", true);
user_pref("middlemouse.scrollbarPosition", true);
user_pref("mousewheel.withcontrolkey.action", 1);
user_pref("mousewheel.withnokey.numlines", 10);
user_pref("mousewheel.withnokey.sysnumlines", false);
user_pref("mousewheel.withshiftkey.action", 3);
user_pref("network.http.max-connections", 32);
user_pref("network.http.max-connections-per-server", 8);
user_pref("network.http.max-persistent-connections-per-proxy", 8);
user_pref("network.http.max-persistent-connections-per-server", 4);
user_pref("network.http.pipelining", true);
user_pref("network.http.pipelining.maxrequests", 8);
user_pref("network.http.proxy.pipelining", true);
user_pref("nglayout.initialpaint.delay", 750);
user_pref("plugin.expose_full_path", true);
user_pref("plugin.scan.Acrobat", "6.0");
user_pref("security.warn_entering_secure", false);
user_pref("security.warn_entering_weak", true);
user_pref("security.warn_leaving_secure", false);
user_pref("security.warn_submit_insecure", false);
user_pref("security.warn_viewing_mixed", false);
user_pref("signed.applets.codebase_principal_support", true);
user_pref("ui.submenuDelay", 50);
user_pref("ui.textSelectBackground", "darkblue");
user_pref("ui.textSelectBackgroundAttention", "lightgreen");
user_pref("ui.textSelectForeground", "white");
Happy browsing!
Posted by randy at 10:13 AM | TrackBack

February 11, 2004


Browser hard sell

I tried out Firefox today, and I love it. It's a web browser like MS Internet Explorer, but with a nicer interface and lots of cool additional features. I like it's tabbed browsing feature - you can open 10 websites with one click, and easily bounce between them. It also has pop-up blocking. Plus it's all open source, so it's free, and it's always getting updated. Try it out!

Posted by randy at 04:01 PM

October 01, 2003


Anti-Spam Link

Here's a cool link that is supposed to trap spam-bots in a death-spiral. "Spam-bots" are programs that surf the web, looking for e-mail addresses to "harvest," and add them to their database. This link looks like a list of e-mail addresses, and at the bottom is a link to go to the next page, but it really just generates a new list of bogus e-mails. I'll give it a try by putting it on my links list.

Posted by randy at 11:29 AM

September 25, 2003


uClinux on a Coldfire

Yesterday afternoon I decided to see if I could get uClinux installed and running on a Motorola Coldfire 5282 (MCF5282, eval board from Motorola). I have been evaluating different RTOS's (VxWorks, ARC, Quadros, MULTI and ThreadX) for a new product, and the developers have had so much trouble just getting them loaded and configured for our boards, I thought, how much worse could linux be to get working? And for our product, all of these RTOS's are overkill. We need something small, cheap and easy. At least uClinux is cheap.

Well, I got it going! I used the built-in debugger to download the binary image using TFTP over Ethernet. My biggest stumbling block was getting my windows box to be a TFTP server (it's something peculiar about MY pc - other computers in the lab work just fine - arrgh!).

Once loaded, it looks pretty nice. It comes with a shell called Sash, runs a DHCP client, ping client/server, etc. IFCONFIG and ROUTE work as normal to set up the network. It has a web server, telnet client AND server, and a vi editor! They claim you can mount NFS and SMB file systems, run PPP and IP masquerading, but I haven't played with any of that yet. The entire image is just over 1Mb, which is too bad because we want to fit inside the on-board 512K flash. Will have to see what I can weed out. That means I have to start from the source code, install all of the GNU tools, etc.

Posted by randy at 08:24 AM

September 22, 2003


New Caps

Well, the capacitors I ordered arrived on Saturday and I quickly popped them into the motherboard, re-assembled the computer, and held my breath as I pushed the ON button... and it worked! Once in a while, it pays to be a geek.

One side note- As it turns out, I wasted a lot of time with the hard drive of that machine, because when I installed it in my other PC and tried to boot from it, it started to boot, then I got an 'unbootable device' error. Now I've learned that sometimes HD's don't like to be moved to another motherboard, and I should have just left it alone until I fixed the motherboard. Instead I spent lots of time re-installing Windows on that drive in order to get it to boot. Then when I put it back in the original PC, it wouldn't boot again, and I had to start over. What a pain. In the end I decided to wipe it and start over with Linux. I installed Red Hat 9, so now I've got a decent basement linux machine I can use as a server. I'm sure I need that for something.

Posted by randy at 07:29 AM

September 18, 2003


Opera Bookmarks

Hey, I wrote a cool little script today that takes all of your Opera bookmarks and writes them out in HTML, so you can share your favorite links with people much more easily. It's written in Python. Just edit the name of the desired source (usually Opera6.adr) and destination (i.e. mylinks.html), and it will produce a nice HTML page, with headings for each folder. From there you can cut & paste the links you want onto an e-mail or website.

Here's the source code

And here's a sample of the output.

Posted by randy at 04:47 PM


Bad Caps

Well, I discovered the problem with my motherboard last night: bad capacitors. The elctrolytic caps they used (1500uf/10V Radial thru-hole) have been failing all over the world, in all kinds of PCs. You can identify these by their bulging ends and dark brown/black crud that leaks onto the PCB. The fluid that leaks is corrosive, and can cause additional problems.

I don't remember the motherboard maker, but it's in an HP Brio BA600, pentium 3/600 Mhz system.

I'm ordering new caps today (Digikey P10228-ND), and will try to take some before and after pictures, for your viewing pleasure. My board has 10 of these, and they're about 60 cents each so there's a chance I may be able to save my motherboard for $6 or so. Wish me luck!

Posted by randy at 07:26 AM

September 17, 2003


Bare Essentials

Since I'm having to re-build, or at least recover, my home PC, I've been thinking about making a list of essentials to have on any Windows computer. Here's a first cut of the list:

Anti-virus: Norton (worth the money)
Firewall: Zone Labs Zone-Alarm (the free version works great)
SpyWare/Adware: SpyBot Search & Destroy (free)
Web Ad blocker: Proximitron (free)
Terminal: Putty (free)
FTP: WS FTP LE (free)
Browser: Opera as primary, MSIE as backup (when non-compliant crap doesn't work on Opera)

I'm sure I'll be adding to this list. What would be great is to have all this software in one place, and with one click, update all the versions to the latest ones, and be able to install all of them on a PC in one step.

This reminds me of a great article on recovering/re-installing windows:
How to install Windows XP in 5 hours or less

Posted by rgamage at 08:26 AM


Windows Woes

We recently went to Sicily for 10 days, and when we came back, our PC was hosed. It keeps rebooting continually. It's our main computer we use for e-mail and general use, and it's running Windows 2000. I swapped it with my PC in the Secret Laboratory (basement), so we're fine for now, but I still need to deal with fixing the stupid glitch. I looked on-line for help, with very limited success. I think I'll try upgrading the BIOS if I can find an update, and otherwise I'll try re-installing Windows 2000, and see if that works.

I'm pretty sure the hard disk is mostly intact, so worst case I can install that HD in the other computer, and salvage our data. However, this is really pushing me to get serious about backing up our data.

I find I am continually chasing down copies, or re-creating new versions, of the same information, like our address lists, e-mail archives, images, etc. I'd like to have all that stuff organized in one place, but available and updateable from anywhere, work, home, basement, web, whatever. I'm thinking of a palm pilot-like sychronization method, where if I update a file at work in this special folder, at some point all of the copies get updated, on all of my computers. I wonder if such a program exists, perhaps written in PHP with an SQL back end?

Posted by rgamage at 08:18 AM