Thursday, August 07, 2014

Trials with an Old Computer

About six years ago, I mused about what to do with an old computer, a 500MHz Pentium III.  My idea was to reformat the hard drive (20GB) and install one of these operating systems: Windows 2000 (already obsolete); Windows XP (facing obsolescence); and Linux (Ubuntu, although I don't recall why I decided on that flavor).

I tried all three plus Dyne:bolic, a Linux variant specialized for music and video production on under-powered computers.  Here's how I fared....

Dyne:bolic was easy to try out, and I didn't have to reformat the Window NT drive to do it.  So I tried it first.  After downloading version 2, I burned the ISO image to a CD.  It booted up just fine and I ran it from the CD.  It performed well, but it was set up for a single root-level user, and it wouldn't "play" Flash content.

Next was XP.  The first problem I had was that I couldn't activate the OS, even though I had a valid key.  But I played around with it anyway during the evaluation period.  Just twenty minutes was enough to know it would be way too slow.

Then I installed Windows 2000.  This involved a lot of tedious business with multiple CDs for the OS itself, then Service Pack 6 and then more CDs with security software and utilities.  Everything went well until I installed the antivirus program and updated it.  After that, the OS would not start.

Finally I decided to give Linux a try.  Rather than download images files, I decided to search the local public library system for Linux books that had accompanying CDs.  And I limited my search to old books, too, since I really needed the installer to be on CD-ROMs and not a DVD.  There were some Red Hat Linux books, so I got one and tried it.  It installed and ran really well except for the web browser, Mozilla, which had me pressing Ctrl-Alt-Del and longing for Task Manager to come up so I could kill it.

Of these four options, Dyne:bolic was clearly the best.  Unfortunately, by the time I got around to realizing it, Jaromil released version 3.0.0, whose 1.6GB image now must be burned onto DVD, not CD.  (I can't find the CD that had version 2 on it. And booting from USB is not an option in this computer's BIOS.)  This latest Dyne:bolic is totally awesome -- I tried the Live CD on my main home desktop (a P4), and I created a small virtual machine on my work computer, which boots the image file.

In order to run D:B3 on my PIII, I need a DVD drive.  Since I had two on my main desktop, I removed one and installed it on the PIII.  But, alas, it didn't work.  The computer detected the drive, but it won't boot from it, and Linux won't mount it.  So I think the laser is shot.  I've encountered a few non-functioning DVD drives in this manufacturer's computers, so I really do think the drive is defective.  In fact I wasn't able to boot from the drive recently when it was in the P4 that I took it out of.

So this is where I am now.  I need a working IDE DVD drive, which are expensive and/or refurbished.  There are adapters that can convert a SATA drive to IDE, but that's an extra expense I didn't want to pay.  Plus, I'm not sure this small form factor case will have any room for it, although I can put the new SATA drive with IDE adapter into the main desktop and move the working IDE DVD drive from the main desktop to the PIII if I really had to.

If / when I clear this hurdle I'll check in again.  Hopefully D:B3 will still be available!

Labels: , , , , ,

Sunday, July 06, 2014

Creative Door Repair

The back door of our home never quite opened and closed smoothly. It was necessary to lift the doorknob while closing it in order to prevent the bottom from scraping the threshold.

Very recently the upper hinge pulled completely away from the door frame.  My wife and daughter couldn't finesse the door closed any more.  I re-tightened the screws, but the holes for the screws had widened, so the screw threads no longer had enough wood to bite into.  The hinge wouldn't stay secure for long.

My first impulse was to replace the screws with longer ones of the same diameter.  But not finding any in my collection, I realized I would have to visit the hardware store.

I really enjoy going to the hardware store.  Not the big, nation-wide chain stores like Home Depot or Lowes, though.  I prefer the small, neighborhood shops that seem to carry the odd-ball bits of fixture parts that were used in our neighborhood over fifty years ago when our homes were built.  Our stores are usually staffed by a retired handyman or engineer.  Or maybe the guy just likes hanging out there, giving out free advice without even getting paid for it.

Alas I was too busy to make the trip.  So I busied my mind, thinking of alternative repair options while carrying out the many tedious chores I had to deal with.

My next idea was to plug the screw holes with wooden dowels.  In fact I had many ΒΌ inch dowel pins left over from an old wood-working project.  I could use those.  But because they were much larger than the screws and the holes, I'd have to drill out the holes first before inserting the pins.  And then I'd have to drill pilot holes into the dowels themselves so that I could get the screws into the pins.  And I'd probably have to use carpenter's glue to hold the dowel pin in place before drilling.

If I had much smaller dowels, I could simply stick them into the holes and jam the screws in.  This would certainly be enough to keep the screws fastened tightly.  But because I didn't have the smaller dowels, I'd have to go to the hardware anyway.

Finally the solution came to me.  I had all the dowels I needed right outside my door!  All I had to do was stroll through the wooded area of our yard to find the right size twig.  Which I did.  It took about 30 seconds.

One oak twig about four inches long was enough to fill all four screw holes.  I broke the twig into four pieces and inserted them into the holes and tightened the screws.

And now the door opens and closes easily, without needing to be lifted, and without scraping the bottom.

This to me is what makes home repair an art form.

Labels: , , ,

Friday, June 13, 2014

Execute Text in MS Word Using the System Shell

I was writing a tutorial in Microsoft Word that describes commands that the reader is supposed to enter at the command prompt.  I thought it would be neat if I could run those commands from within Word to validate them as I entered them.

And so I came up with a surprisingly simple VBA subroutine that sends selected text to the shell.  It is quoted, below.  The code should be placed into a module in Normal.dot.

Note that I invoke two statements in the Shell.  They are separated by the double ampersands.  I combine them into a single string (strCmd) that I pass to the shell.

The first statement is to change to the current working directory, which I assume is the same directory that the Word document resides in.  This isn't fool proof, however.  One failure mode would be if someone were to start Word and create a new document without saving it to the hard drive before calling the routine.  Another failure mode would be if the Word document were to reside on a remote share through a UNC path, such as \\FileServer\ShareName\tutorial.doc -- it's not possible to CD into a UNC path.

The second statement is merely the selected text.

Also note that strCmd  is preceded by the Win32 command prompt CMD.EXE.  The "/D" switch makes sure that no "AutoRun" commands get executed.  The "/C" switch terminates CMD after the command is finished executing.  CMD is included because Shell isn't able to find DOS commands such as CD.

Sorry for the small font on this source code, but I wanted to ensure it wouldn't wrap.

Sub InvokeWithShell()
' Executes the selected text to using the shell
' 2014-06-09 LudditeGeek Created
    Dim strCmd As String
   
    If Selection.Characters.Count <= 1 Then
        MsgBox "Nothing Selected!", vbExclamation, "Invoke With Shell Macro Message"
    ElseIf Selection.Paragraphs.Count > 1 Then
        MsgBox "Multiple Lines Selected!", vbExclamation, "Invoke With Shell Macro Message"
    Else
        strCmd = Selection.Text
        Debug.Print "Invoking " & strCmd
        strCmd = "cd " & ActiveDocument.Path & "\ && " & strCmd
        Shell "cmd /D /C " & strCmd
    End If
   
End Sub

Labels:

Saturday, March 01, 2014

Blackphone and Webroot

Friday on NRP, Morning Edition featured the Blackphone, a smart phone with privacy as its number one priority.  Also mentioned were Black, Boeing's super secure smart phone, and Webroot, a security application.

Read more at http://www.npr.org/blogs/alltechconsidered/2014/02/28/283523473/a-smartphone-that-tries-to-slip-you-off-the-grid.

Labels: , ,

Saturday, February 01, 2014

Disable Outlook's Junk Email Filters

After upgrading to Outlook 2010 over a year ago, it became apparent that its junk email filter continued to work even after we disabled it.

It took so long for me to notice because I use Popfile to categorize the email I download from my ISP's POP3 server.  Popfile would catch the most obvious spam before the Outlook junk email would process it.

But occasionally a message that Popfile marked as valid would end up in the Deleted Items folder.  Outlook's occasional false positive would make me wonder what was going on, but it happened so rarely that it was easier just to check for these false positives than to research the issue.  Besides, the corporate bulk mail filter running on the Exchange serve would stash things into the Junk Email folder, and I needed to check for false positives from that filter.

But then there was an incident that triggered an intra-departmental1 outcry about the issue.  It was the day that several messages from our Content Management System got flagged by Junk Email and deleted, causing folks not to notice updates on a few project files.

We all dutifully set Outlook's Junk Email filter to Disabled.  But I continued to see valid messages from my ISP placed into Deleted Items.  Recently I obtained a few spare moments2 and quickly found a solution to the issue.  It was my favorite Outlook/Exchange website that I landed on.  Here's the link:

http://www.slipstick.com/outlook/how-to-disable-outlooks-junk-email-filter/

The text says to change the value in a registry key, but in my case, the key didn't exist, so I created it, first.

Only time will tell whether this works.  I will know for sure only if it doesn't.  I suppose I can find an old message that triggered a false positive and send it to myself, but the header of that message would be different from the original header.


1 The emphasis is on the part of the work that contains "mental".

2 A good way to obtain spare moments is to schedule a meeting right after another meeting, so that if the other meeting runs late, the participants will be milling around outside the meeting room.  After a while, you get a sense of which meetings will run the longest based on the topic and especially on whether certain coworkers will be in them.  Some meetings can run so late that the folks who mill around will disperse and take an additional five minutes to reassemble, assuming they haven't gone off to lunch or embarked on an early vacation or retirement.

Labels: , , , ,

Friday, October 18, 2013

Excel Hyperlinks -- Relative vs. Absolute Path

I rarely insert hyperlinks into an Excel spreadsheet.  So every time I do, I get burned by Excel's predilection for turning Absolute paths into Relative paths.

Here's the scenario...

I'll use Excel to create a flat file database on my local hard drive.  I'll include links to the file server on the network using UNC paths, such as \\File-Server\Share-Name\Path2File\MyFile.ext.  (The Ctrl-k keystroke is really handy for creating hyperlinks, BTW.)

After building the table by adding fields in columns, adding formatting, and entering a few records in rows for testing, I'll consider the database to be production ready.  At this point I'll upload it to the same file server that my links point to.

The next time a user opens the network version of that spreadsheet, Excel will convert those carefully-entered absolute links to relative links.  So if the spreadsheet resides in \\File-Server\NewShare\Reports\Databases\LG.xls, the links to MyFile.ext turn into this: ..\..\..\Share-Name\Path2File\MyFile.ext.  They work just fine while the spreadsheet remains in that location.

But suppose the user saves the database and then e-mails it someone else in the organization, or copies it to his or her local hard drive.  The links are broken.  Furthermore, there's no easy way to fix them.  Search and Replace (Ctrl-h) won't find the ..\..\..\ in the hyperlinks.  You'll have to either fix them manually or write a program to do it.  And then the same thing could happen again, anyway.

But there is (thankfully) a trick to keep Excel from bastardizing your carefully designed links.  But it's a preventive measure -- you have to know about the trick before you get stuck with the link conversion.

The trick is to open the File Properties dialog.  Choose the Summary tab and enter C:\ in the text box next to the label that reads "Hyperlink base:".  Be sure to OK your way out and save.  These instructions are for Excel 2000 and 2003.  Later versions probably have the same properties dialog, but the way to open it might be different.

Really, it's best to do this before entering any hyperlinks.  Ideally, Excel would have an Option for this.  But alas, all I could find was a checkbox to enable Excel to prompt for workbook properties.

Hopefully, by writing this post, I've seared this information into my brain so that the next time I'm tempted to enter a hyperlink, I'll remember to set this property.

Hmmm, it just occurred to me to code this property using VBA....

Labels: , ,

Saturday, September 28, 2013

Brain Games

What kind of Geek could resist an opportunity to improve his or her mind?  If there is such a geek, I am not that kind.

So when I heard the advertisements sponsorship acknowledgments on NPR for Lumosity, I decided to check it out.

Lumosity develops and offers online games that improve mental function.  Their aim is to enable anyone to achieve his or her full potential, brain-wise, at least.

Lumosity provides two tiers of service: free, and subscription.  Users of free accounts are restricted to just three games per day, while subscribers have access not only to unlimited games, but also Personalized Training, Performance Tracking, and comparisons to other Lumosity users.

Since I joined way back on June 1, I've improved slowly and steadily to match the ability of someone half my age, assuming that someone is a slug.  Haha.  Just kidding.  Actually I have no idea because I'm using a free account.  All I know is that four weeks ago my score was 1025 and now it is 1111.

See?

Here's my Brain Performance broken down into various categories:


So check out Lumosity. It's free. It's fun. And you might just gain enough improvement to survive the upcoming Zombie Apocolypse.

Labels: ,