Press "Enter" to skip to content

Category: computers

Keyboard Cleaning Time

A visible build-up of finger gunk on the flat surface and laser-etched numbers on most-used keys shows that it’s time to clean my keyboard. To do this I first use Simple Green All Purpose Cleaner at full strength, then a generic glass cleaner to remove the Simple Green residue, then 99% isopropyl alcohol to remove any remaining residue. Each is applied to a clean paper towel and used to carefully scrub both the keys and gaps between. Being one of the (excellent) modern, flat, metal-body Apple keyboards it’s particularly easy to clean, and after I’m done the keyboard feels like new.

Leave a Comment

Microsoft Excel Date Munging: 1900 vs. 1904 Date System

While working on migrating data for the upcoming MMBA Chapter Transition one of my tasks was to export membership data, split it into chapters, then sent it off to IMBA for import into their membership system. After getting the information out of the database I used my Mac to create one large spreadsheet with all the requisite fields covering the entire state (including a chapter column) and sent it around to all interested parties for confirmation that it looked fine. The next step was to break it out into per-chapter data so this time I sat down at my PC, opened the file, filtered on each chapter, selected everything displayed, copied the data, created a new file, pasted the data, saved the now per-chapter data, and sent it off to IMBA.

A couple weeks later, once the files had been pulled into IMBA’s systems, I received a few notes questioning the data as some chapters listed only single-digit counts of active members whereas they were known to have exponentially more. Checking over my data I found that the per-chapter spreadsheets were wrong, and that the date columns had been decremented by a good deal rendering most active memberships expired. For example, on my personal row the expiration date of 6/29/2012 became 6/28/2008.

After a bit of investigation I learned about the toggle shown above to set Excel documents to use the 1904 Date System, and this turned out to be a big key to figuring out the problem. As documented here in Microsoft KB article 180162, when I’d first created the spreadsheet on Mac the file was set to use the Office for Mac default of 1904 Date System and the populated with the accurate data. Opening the file on PC retained this 1904 setting and displayed the data correctly, but when the new file was created with the PC default the 1900 Date System and data pasted into it became offset by roughly four years. I’d presumed that the copy/pasted data would be the same and with the first few columns in each sheet looking correct I didn’t check the rest, and files with incorrect expiration data were thus sent off to IMBA.

The real reason for this goes a bit deeper and involves how Excel stores dates. Specifically, dates are stored as a numerical offset (called a serial number in Excel) from a starting point in time (an epoch). Toggling between the 1900 Date System and 1904 Date System changes the epoch, but as date fields copied and pasted between sheets are copied as their serial number, if the epoch changes the displayed date will be different. The data behind the scenes doesn’t change, but the information presented to the user does. See Microsoft KB article 180162 for a more detailed explanation of why this occurs.

I understand all of the reasons why this works as it does (legacy compatibility with Mac vs. PC, the use of a serial number + epoch so that all international date formats are easily handled, etc) but in some edge cases (such as what I ran into) the result for the end user is maddening.

Leave a Comment

iTunes 10.4.1 UI Bug

There is a UI bug in iTunes 10.4.1 which causes the rewind (<<) button to become highlighted when switching to the Mini Player. This causes unexpected behavior when one Cmd-Tabs to iTunes and presses space intending to pause the music. To replicate this issue do the following: - Bring the normal iTunes window to the foreground. - Note that the Play / Pause button is highlighted. If it's not, press Tab to move the highlight to it. - Double-click a track to begin it playing. - Click the + or press Shift+Cmd+M to switch to Mini Player. - Note that the rewind (<<) button is now highlighted instead of the Play / Pause button. This was tested with iTunes 10.4.1 on OS X 10.7.1. UPDATE: This appears to finally have been fixed in iTunes 10.5.3.

1 Comment

16GB of RAM in my iMac

Along with the SSD I also upgraded the RAM in my iMac to a full 16GB. It’s amazing to me, but a full 8GB (2x 1333 MHz SO-DIMMs) is only US$59.99 from Crucial. It wasn’t long ago that an 8GB flash card cost this much.

Sure, I don’t need this much RAM very often, but I did find that with 8GB and a bunch of design programs open (such as when doing PCB or mapping work) the machine would occasionally page. At today’s prices I don’t mind buying a bit more ram so that swap is almost never used.

1 Comment

Shell Variables Not Expanding in %PATH% on Windows 7 Non-Administrator Command Prompt

I recently ran into an interesting issue on Windows 7. Users running a non-Administrative Command Prompt on Windows 7 would find that Windows’ programs which are supposed to be in their %PATH% (eg: ipconfig.exe, xcopy.exe, etc) weren’t. Checking the path showed that shell variables inside of the PATH variable weren’t being expanded:

Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\

However, if Command Prompt is run as an Administrator (Start → Right Click Command PromptRun as administrator) %PATH% will be set correctly:

Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\

Thanks to a coworker, online research, and the helpful folks over at serverfault the cause of this was found to be an incorrect value type in the registry (discussion here). Specifically, the Path value in HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment must be set to REG_EXPAND_SZ so that it’ll expand shell variables that it contains. If (incorrectly) set to REG_SZ the symptom above will be seen because the variables aren’t expanded.

What doesn’t (yet) make sense to me is why this issue is only visible with the incorrect type in a non-administrative Command Prompt.

For reference, per this MSDN article entitled Registry Value Types the difference between REG_SZ and REG_EXPAND_SZ is that the latter will expand shell variables that it contains; literally “A null-terminated string that contains unexpanded references to environment variables”. The former (REG_SZ) is just a string.

3 Comments

SSD Installation in a Mid-2010 27″ iMac

This weekend I fitted my 27″ iMac with an SSD and I now have that running as the boot and OS drive, with large-stuff-storage on the internal 1TB drive. I’ve been considering an SSD for a while, and with prices finally becoming reasonable (~$225 for 120GB) it was time to give it a go. Due to Apple’s screwup last year I ended up with a mid-2010 iMac; a model which could have been ordered with an SSD from the factory. While this 27″ iMac didn’t come with an SSD, thanks to this post by Tobias Müller I found that it was possible to buy the plastics and cabling and add one with a factory-type fit. So, I did.

After receiving the parts and reading through Tobias’ post and the Apple factory service manual I set about fitting the drive. I won’t go into details of the install here, but it would easily rate 4 out of 5 for difficulty of non-custom computer work that I’ve done. Because the SSD sits in a carrier behind the logic board I had to remove the display, power supply, LCD power supply, Airport card, a blower, hard drive, optical drive, logic board, and an IR receiver to get the job done. The SSD, mounted in the pressure wall / plastic carrier and connected with a new wiring harness, settled nicely into the case and everything went back in.

Beyond the SSD, if you’d like to try this modification yourself you’ll need the following Apple parts:

922-9531: Power Cable / Wiring Harness
922-9485: Pressure Wall
922-9538: SATA Cable

I purchased all of these new from Usedmac for a total of $84.24 shipped and installed them along with a 120GB Intel 320-series SSD. These parts, with the SSD attached, can be seen here. If you don’t want to pay ~$20 for an Apple-specific SATA cable, a 10″ cable with a right angle connector on one end (only) which bends towards the top of the drive will suffice.

4 Comments

Download Maps via QR Codes

While working up some revisions to the River Bends trail map for the trail head kiosk and I realized that having a QR code on it which links solely to a PDF of the same map might be a good idea. This would allow one to scan the code and download the map to a phone and keep an offline copy; exactly how one would want an electronic copy while out and about.

I think this would nicely augment the standard large map placed at the trail head and the typical paper map distribution box. One would just have to ensure that the link stays live for the life of the map. It might be a better idea to have the QR code on a separate smaller poster that just says “Scan Me to Download The Trail Map”, as it’d be cheaper / easier to update should the need arise.

This is probably the first productive use I’ve had for a QR code.

(The image above is a draft / mockup and links here to the current [but soon to be out of date] version of the map. Final implementation will definitely need more polish.)

2 Comments

Historic Case Badges

This evening while cleaning out an old tool bag I found these two old computer case badges for Data Premium and Pack In Tell brand computers. These were two house brands from Computer Warehouse, a retail computer outlet in Troy and Madison Heights where I worked from late 1996 until early 1999. These shops were later known as Thomas Computer Warehouse and then Computer Builders Warehouse. During this time the Computer Warehouse stores worked closely with Inca Computer Company; so much so that I essentially transfered from CW to Inca to work in their R&D department. Once Inca closed up shop (it was basically a brick and mortar chain with grandiose plans opening right in the middle of the dot-com bubble) under I returned to Computer Warehouse for a few months before moving on to the world of corporate IT.

I think I’ve got an Inca badge or two around here somewhere as well.

Leave a Comment

RSS Graffiti Test Post

For years I’ve been hesitant to use Facebook too much, instead opting to post everything to nuxx.net, with article-length content going in a wiki, photos going in the photo gallery, and blog posts going here at the blog. Since Facebook has picked up steam, is going to be around for a while, and is the de facto non-geek online identify, I figure I should start using it more.

To continue centrally publishing content but allowing it to be available in Facebook I’ve enabled the RSS Graffiti application, set it to pick up nuxx.net blog‘s RSS feed, and let it do its thing. This is my first post after enabling this and thus a joint test / welcome-to-me-actually-posting-stuff-on-Facebook.

UPDATE: I’ve opted to not use RSS Graffiti and instead allow Facebook’s Notes application to import RSS feeds. Hopefully this will work better.

UPDATE 2: Damn you for being broken, Facebook! Notes consistently returns an error saying that it’s failed saying that there is a problem which is being worked on.

Leave a Comment

MultiTech MultiModem II (5600 Series) Teardown

I recently had a chance to play with one of the last bastions of high-quality analog modem technology, a MultiTech MultiModem II, 5600 series. It’s an extremely high quality device which can do things such as automatically dialing a stored number when DTR goes high. These are quite useful as diagnostic backup devices and are often found connected to enterprise-class equipment to allow tech support another channel in or to allow the device to send emergency error messages.

Since I had access to this I decided to open it up and look inside, since tech like this isn’t too common these days. Photos of the MultiTech MultiModem II (5600 Series) disassembly (such as the one above) can be seen here in this gallery.

In the two photos showing the two sides of the PCB (top · bottom) here’s the components I found most interesting:

· Conexant SM56D / CX06833-44: This is the heart of the device; the modem itself.
· Atmel ATF1502ASV: EEPROM CPLD (Electronically Erasable Programmable Read-Only Memory Complex Programmable Logic Device); likely where the front panel controls run and how the modem chip is controlled.
· LM7805 (x3): Three linear voltage regulators which seems to me like an old but very reliable method for getting smooth power.
· Intersil ICL3207ECBZ (x2): RS232 transmitters / receivers.
· Atmel 26C16AN: 16K serial EEPROM.
· Atmel AT49BV040A: 4-megabit (512K x 8) Flash Memory. (Hidden in photo by front panel bracket.)
· Fairchild Semiconductor 74LVX4245: Dual Supply Translating Transceiver. Converts between 3.3v and 5v busses; used to drive 5v logic in LCD display module. (Hidden in photo by front panel bracket.)
· LM386: Audio amplifier for modem speaker.
· Cypress Semiconductor CYIFS781BSXC: Spread spectrum clock generator designed to reduce EMI.
· 28.224 MHz Crystal: Connected to clock generator.

Leave a Comment