No Sound in Flash on Mac Intel (fix)

Fix for MacBook Pro when sound isn’t working from Flash in the browser.

Recently installed an update and discovered that Flash no longer played sound in my browsers on the Intel based MacBook Pro from Apple.

No idea why. Sound works elsewhere, including the browser for non-Flash (e.g., Quicktime) content.

Found the fix online: Open GarageBand, play a note or two on the keyboard, and quit. Whatever cleanup GarageBand does, fixes the sound problem — you don’t even have to close the browser.

Worked for me!

Writing XML and HTML in WordPress

It was frustrating for months… WordPress was swallowing angle brackets commonly used in XML and HTML as actual tags. This made pasting in sample tags into a message impossible. The fix?

From WordPress’s Admin menu, Options / Writing, and uncheck the box for “WordPress should correct invalidly nested XHTML automatically”. Also turn off the wysiwyg editor helps, done by Users and scrolling to the bottom left and unchecking the box.

Retrospect Express (hack to fix)

Retrospect Express, which comes as the default backup software with Maxstor One-Touch drives, breaks with .NET 2.0 – here’s how to fix.

Recently a XP user, let’s call him “dad,” obtained a Maxtor One-Touch 500GB USB/Firewire hard drive for remote storage. With it came some free backup software, Retrospect Express, which he used for making incremental backups.

It was working well enough until he upgraded to .NET 2.0, then mysteriously the software didn’t work anymore. It stuck at “Checking status…” and didn’t recognize any restore points. Nothing seemed to help.

I ran FileMon to watch what Retrospect Express was trying to do when it started. It was trying to repeatedly write to a log file and failing. So, I created the file, and tried again. It was an audit message saying it was failing at a .NET Hashtable. Clear evidence that the changes in the .NET 1.1 to .NET 2.0 collection API messed up Retrospect Express. Or, another way to look at it, Retrospect Express was trying to use the latest .NET, but was coded for the older .NET, and even though -both- were installed, it failed to run.

Turns out a lot of people on the Internet were having this very problem. And, everyone who contacted Dantz, the makers of Retrospect Express, seemed to get the same abusive treatment: left on hold for an hour, only to be told they’d need to pay to have assistance, and that the copy that came with the drive wasn’t registered. It wasn’t Microsoft’s problem, nor Maxtor’s. A fix had been promised on the web for months, but nothing was come of it. In the eyes of the online community Dantz was being an evil bastard company, and it was hard to disagree.

Luckily, persistence paid off, and a user I only know as Chris posted this in a forum:

  1. Close Retrospect Express, including the icon in the system tray.
  2. Create a file called Retrospect.exe.config and using notepad, put this in it:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <startup>
    <supportedRuntime version="v1.1.4322" />
    </startup>
    </configuration>
  3. Save the file in the same directory as the Retrospect.exe file (usually in C:\Program Files\Dantz\Retrospect Express HD\) and try running Retrospect Express again.

This solved the problem, coercing the application to use the older v1.1 copy of .NET.

Chris, whoever you are — thanks.

Accessing Windows Machines from OS X

How to get your OS X system to see your files on Windows XP.

I have a number of friends who are making the switch from Windows to OS X, and I thought I’d pass along this simple step so they can easily access their Windows machines from their OS X systems.

Step 1) From Finder, choose Go / Connect to Server… (although, I almost always use the shortcut and press Command-K at the desktop)

Step 2) Enter the server address in this form

cifs://WORKGROUP;Walt%20Stoneburner@BOATANCHOR/C$

  • Use cifs (Common Internet File System)
  • Use :// …much like you do when you do http://
  • Make sure the slashes go forward
  • Specify the workgroup — you can find this by right clicking My Computer on the Windows box, choosing properties, and going to the Computer Name tab, then looking for Workgroup
  • Be sure to put a semicolon a the end
  • Specify your username, not your “full name” — you can find this by pressing Control-Alt-Delete and reading the “Logon information section: ‘…is logged in as BOATANCHOR\Walt Stoneburner‘”; press ESC as not to reboot.
  • If you have any spaces substitute them with the hex code %20 as shown above.
  • Use an at-sign and enter the machine name — you can find this by pressing Control-Alt-Delete and reading the “Logon information section: ‘…is logged in as BOATANCHOR\Walt Stoneburner'”; press ESC as not to reboot.
    If you want, you can use an IP address instead of a machine name.
  • Then specify a forward slash, followed by the shared resource. C: is C$, D: is D$, and so forth.

Once you Connect, you can press the plus sign to remember this setting so that you’ll never have to enter it again.

Trends at “No Stuff, Just Fluff”

I had the wonderful opportunity this weekend to attend the Northern Virginia Software Symposium “No Fluff; Just Stuff” Java and OpenSource conference in Reston, VA – a high-content technical conference that doesn’t waste time with marketing glop.

I walked away noticing several trends.

1) In a conference that’s designed around Java, security, and OpenSource technologies, Ruby got a lot of air time! It seems that Ruby on Rails for 80% of web applications can be 5 to 10 times faster than developing in Java, not to mention far more fun!  Combine this with AJAX, the Prototype JavaScript framework, Scriptaculous, Rico, and Behaviour, and it’s possible to get some rich clients out of a web browser.

2) Apple laptops have arrived.  Anyone who’s anyone has them now.  The developers.  The speakers.  The audience.  Not seeing Microsoft machines in a technical conference (remember, these people make the software you use) was an eye opener.  A number of people had the new Macbook Pro, Apple’s Intel based processor, which, using Parallels, lets you run XP.  Slap the desktop Virtue over that, and you can use both operating systems on the same machine concurrently.

3) Internet Explorer is bad. Worse than I ever thought.  And not just from a security hole perspective.  Everything.  We’d learn something really cool and wonderful, and then we’d find out that IE didn’t do it, didn’t do it right, had a memory leak, or was non-standard.  The more you look at web advancements, the more you wonder why people still use IE.  It lacks features, it is problematic, and it renders web pages wrong.  As such, if you use IE, you may be seeing Explorer Destroyer appearing more agressively – it puts FireFox in front of the user.
4)  There seems to be a growing movement away from complexity.  Frameworks and protocols that carry too much intellectual baggage are being replaced with simplier, smaller, less featured alternatives.  I think we’re seeing abstractionism finally starting to collapse under it’s own weight.

5) Convention and consistency is winning out over configuration and flexablity.  Standing back, trends go in circles.  In BASIC, you need a dollar sign to tell the compiler a variable is  string: A$.  But, oh no, how awful, we have to use punctuation to hint to the compiler.  Nay, let me say  string A  instead, and just use the variable I want.  Now I can’t tell one type from the other, so I use prefixes:  strHouseNumber.  But what if my type changes?  I should change my variable names, because  int strHouseNumber is misleading.  Finally, I need all this error handling in the event I do something wrong as a developer.  Now I’ve got complex code and ugly variable names.  The trend is coming full circle: do lots of automated testing, cut back on error handling code, script languages are actually powerful and fast enough, and if I stick a punctuation on a variable, I can read the type easier:  A$

Where Did Control-A Go?

Did Microsoft stop supporting Control-A in the browser and operating system Run… box?

I remember clear as a bell on old Windows 98 and 2000 systems being able to hit Control-A when I was in a text box and having it select all the text.

The two places I did this most often was Internet Explorer’s url area, and the Start / Run… command entry area.

However, on XP, this short cut seems to have silently disappeared. WHY?

Pick a non-Microsoft application, like FireFox. It works there.

If anyone happens to know how to re-enable Control-A in an input field, I’d really like to know how. If anyone happens to know why it was removed, I’d really like to know that more.

FireFox Bug: Text Disappears when Shift-Double-Clicked

In FireFox, if you shift-double-click while editing, the text vanishes. Bug? Or, is there a deeper story about design and bug reporting that this exposes…

That’s the problem with bug reports in general. Something’s missing — because what you’ll hear back from the developers of FireFox is that it’s not a bug, it’s a feature, and it works by deisgn.

More importantly, …they’re right.

Allow me to walk you through the problem: you’re editing using GMail, WordPress, or LiveJournal — when you go to select some text by doing a Shift-Click and drag, your mouse stutters or perhaps by accidental muscle memory habit you end up accidently Shift-Double-Clicking. To your surprise all the text in the input box becomes invisible.

The content is still there, hust invisible. You can move the cursor around. If you submit, it gets sent. What gives?
It’s not an accidental one-time software glitch, it’s repeatable. It doesn’t matter if you’re selecting text, or shift double clicking in one spot: it happens consistently.

So, before filing a bug report, you try it on different browsers.

IE, no problem. Opera, no problem. Safari, no problem.

And there’s a surprising confirmation that FireFox behaves this way both on XP and OS X, so we’re pretty sure it’s a FireFox issue at this point. We try it on the latest build right out of the development tree, and it happens there, too.

Time to report a bug.

If you follow the directions, and many people don’t, you learn that this bug has already been submitted to the FireFox development team many times.

XP – BUG 307612 and BUG 307613,   OS X – BUG 317687.

I personally don’t think people who take the time to research and submit a bug are stupid or lazy, stopping just short of duplicate checking. I think that the keywords used to search for duplciates aren’t expansive enough to do the job well. I search for “Disappear” and get a hit, someone else searches for “Invisible” and gets a miss (so they report a bug).

Another problem, assuming you read all the bug reports to the end: The developers closed it.

The last thing that you want to see on a bug you just verified are the words RESOLVED and/or INVALID, because you know it’s going take some arm twisting to convince the development team otherwise.

One of the fundamental problems being on a development team is that you do get an awful lot of things that aren’t bugs reported as bugs. There’s tons of duplication, and worse, tons of ambiguity. Despite writing detailed directions explaining what information is needed and in what format, most bug reporters don’t do that. It becomes too easy to throw the baby out with the bathwater.
I almost wish there were was a flag attached to one’s bug reporting account that said “I’m either a professional software developer or I have worked in a QA division” that would weight the submissions higher in the developer’s mind. It’s the same problem as when you’re the company IT expert and you call Dell for a support issue and their level one technician wants you to reboot and reinstall the operating system.

The problem is also reversed. And this is a problem that needs fixing: developer responses can also be ambiguous. We’ve all seen cases where a bug is marked as “not a bug” or “works as designed” with no explaination.

But not in this case, luckily. One of the developers has the insight to point out that this is an AdBlock feature, and it’s by design. By design?
This explains a lot, everything to why it only appears to happen to FireFox — since that’s the browser that uses the AdBlock extension. It explains why the FireFox team is wasting time chasing after these, it’s not their problem. It explains why their responses are terse, as, again, it isn’t their problem. Disabling AdBlock itself, not just it’s filters, but the whole extension, solves the problem. Problem is, I like AdBlock. I need AdBlock. I want AdBlock.

Now sometime software works as it was designed to work, but fundamentally the design is wrong.

Joel Spolsky describes it like this: A user interface is well-designed when the program behaves exactly how the user thought it would.

And there is nothing about a text area waiting for input that makes me expect that Shift-Double-Clicking while trying to select text should permanently turn the entire contents of the text box invisible while editing.

That’s about as annoying as the folks who put the “Quit Application With No Save or Confirmation” menu item right next to the “Save” menu item, where a mere slip of the mouse spells disaster.

Further investigation of AdBlock’s development area, shows there’s a nifty feature called Quickblock, which allows you to Shift-Double-Click an element on the screen and make it turn invisible. It’s a great way to zap ads or annoying content!

Problem is, the trigger mechanism is very close to an action commonly used by editing. And, Adblock doesn’t make a distinction whether it’s an input control or not — and why should it, as if it did, advertisers would put ads in controls.

This doesn’t solve our problem as a user, though. It’s a good feature with bad interface design. Luckily, one that can be easily solved.
Either the shift-double-click needs to be changed to something else, or we need the ability to turn it off or lessen it’s sensitivity.

In the thread, “Quickblock makes me sad“, we see that other users are plagued by this problem, and some users have started building their own versions with this feature disabled.

Clever, but this is not something the source code should have to fork over. Nor, is it something the layperson should be expected to have to do just to be able to safely edit text.

Quickblock should remain a feature, but it should be possible to disable it, disable it for a list of specified sites, or have a mode where it’s possible to have it not affect editing controls. In fact, I’d be quite happy if when I Shift-Double-Clicked on an edit control if it then asked me for confirmation, but not on other elements.

I’ve proposed the change as a new minor feature, assuming I haven’t missed how to do it already (which is possible). But I have my doubts anything will happen.

Why? I’m a developer. And my natural knee-jerk reaction to an end-user is “if you are doing something that causes a behavior you don’t like then don’t do it anymore.” Problem is, developers don’t use systems the way end users do, and that makes them predisposed to not share the user’s perspective. Afterall, programmers don’t spend their days on the web writing in little edit boxes, and if there’s a problem with one, there are a dozen work arounds, including opening an editor, composing, and pasting. We think other users work like we do and know how to use other tools like we do.
But that’s not how users think or work.

My hope is that if you are also having this problem, you’ll find this article before you bug the guys at FireFox with it, and instead go here and add your voice, in a kind way, so that the great developers of AdBlock know how to improve the product further and to show that you support their tireless efforts.

OS X: Batch Rename from GUI

This is the third time I’ve had to go hunting how to enable batch filename manipulations for OS X. Now I’m documenting it so I don’t have to hunt this down again.

I keep forgetting about this trick, so I thought I’d post it in the event I have to ever do it again.

Part of the problem with a graphical GUI is that it’s very difficult to rename files in batches, for instance, prepending some text to a group of files.  This kind of thing is fairly trivial at the command line.

Apple has a facility to do this, but as it’s not something a regular user does often, it’s not enabled by default.  Here’s how to get all kinds of additional functionality out of OS X.

1) Open /Applications/AppleScript

2) Turn on Show Script Menu in menu bar

3) Optional: turn on GUI scripting, show library scripts, and choose where to show them.

You’ll notice up near the time in the menu bar a black scroll has appeared.

All the batch renaming and filename twiddling stuff is under the Finder Scripts.

UPDATE 19-Dec-2009: Upgrading to Snow Leopards deletes some useful scripts, specifically the Finder Scripts.

UPDATE 31-Aug-2010: The scripts live in “/Library/Scripts/Finger Scripts” and are

  • Add to File Names.scpt
    md5 4b0cd899acb19b5fc62ef2049d81a933 – 18114 bytes
  • Change Case of Item Names.scpt
    md5 af7429228be4d0e1a096092af5341c52 – 17808 bytes
  • Replace Text in Item Names.scpt
    md5 716493cab1c569953a7f40d76ed9a1f7 – 24328 bytes

OpenOffice and .WBA Files

While trying to import a .WBA file into Thunderbird’s address book, I learned a bit about .WBAs, mailing lists, and how far Open Source applications have come.

My wife, Tamara, was president of the Washington Calligrapher’s Guild, for quite a while.  Among her many tasks was sending email notification to hundreds of members.  Although she’s stepped down to take on some larger commissions and projects, she still handles the group notifications on occasion for important announcements.  Many of the members use web based accounts either through their ISP or Hotmail, and most anti-spam packages recognize a bulk message from Hotmail as being a bad thing — as such, important notifications never make it to their destinations.

A guild member who manages the current list of email addresses sent an updated list, and my wife who’s technically savvy in such matters bumped into a problem, so she called me.  My wife uses two packages to do her magic: OpenOffice and Thunderbird.

Try as she might, she could not get the .WAB file, which is a Windows Address Book file, imported into Thunderbird.  She could open her address book in Thunderbird, and she could double click the .WAB file and see its contents, but she couldn’t cut’n’paste, nor could she import the file …all of which was very confusing, because she could see the email addresses clear as day.  More importantly, she doesn’t have MS Office nor Outlook installed on that machine.

I have to admit, when she called me, she’d tried a lot of things, and even I fumbled around for half an hour trying to figure out what was going on and why this trivial task was so hard.

The answer was surprising: OpenOffice does handle .WBA files in the first place!  The only reason we got the file open was because Outlook Express, which comes with XP, was on the system, and it had opened the address book.  However, because Thunderbird’s GUI for its address book is so close in visual layout, neither she, nor I, recognized we were in two different applications!  It looked and felt like we had two identical dialog boxes up working on different files; once we knew what was going on, the subtle differences became apparent.

Obviously the goal was now simply to export to a data neutral format and import with the other application.  This led to a new, more frustrating problem.

The way the Windows Address File works is that it maintains a list of email addresses, of which email lists are simply logical subsets.  This makes sense from a design standpoint, because if you update one person’s email address, you don’t want to have to change their email address in every list you own.

The problem was Outlook Express didn’t want to export just the emails from the list, it wanted to dump all of the addresses, and sorting out the personal emails, the other lists, the virus induced email addresses, and the real guild related ones was a nightmare to do manually.  Try as we might, we couldn’t get the lone list exported by any conventional means.

The solution, it turned out, was to open the list, do a select all followed by a copy.  I then had to open notepad and do a paste.  This made some ugly multi-line records.  I then pushed this file to a Unix system, where I hacked a quick one line Perl program at the command line to reformat the records, and pulled it back to the Windows box.  Open the file in OpenOffice jiggled it into a format that not only Thunderbird was able to read without complaint, but GMail as well!

In fact, once the data was outside of Microsoft’s clutches, we had no problem repurposing it for anything else.  The moment an open source application could touch the data, all the interoperability problems instantly vanished and my wife was back to doing work again.  It was a wonderful real-world example of why proprietary data formats are harmful to a typical end user, even the savvy ones.  It was also a wonderful example of how good Open Source software is becoming, in that unless you’re looking for it, you actually think you’re using commercial software.

Apple’s ProCare: First Look

After shelling out $99 on Apple’s ProCare, here’s what it was like.

Apple has a pretty sweet deal going that they haven’t made much of a fuss about.  It’s called Apple ProCare, and for $99 you get a magic number on a pretty cool looking translucent credit card-like piece of plastic.  This gets you six things:

  1. Personal one on one training for a subject of your choosing with an Apple Expert, usable once a week for 52 weeks.
  2. Up to seven day advanced registration for free tech support at the Apple Genuis Bar.
  3. Complete setup, assuming you buy a new Mac — they’ll configure it for you, including migrating your files.
  4. Priority machine repair with same-day service when possible, technical questions answered with priority.
  5. A yearly tune up to keep your machine running smoothly, including physical cleaning of your equipment.
  6. This level of treatment in any Apple store anywhere in the world.

From these services, it’s fairly easy to see they have two types of target audience.

The first is the highly inexperienced person who needs help connecting their iPod, uploading pictures from a camera, or wants to make a web page.  We call this the “I can’t get my email” type person.  This person asks their one or two questions and is never seen from again — sheer profit.
The second is the highly experienced person who’s looking for some really specialized information for some application.  We call this the “I can’t get my professional video loading into DVD Studio Pro using the H.264 codec when compressed by Quicktime Pro and MP4 produced by Final Cut Pro HD won’t work since I’m getting visual artifacting with the default configuration, so I need to figure out whether it’s the audio data channel, the frame rate, or the image dimensions which cause the rejection, since H.264 is listed among the available import media types…” kind of person.  This person taps the knowledge of the creative expert, so the goal by Apple is to educate them about new products, train them to use them, and hope for a sale.  In short, it’s one on one advertising.

I fall into this second group.

Now the way the whole thing goes down is that you get onto Apple’s site, register using your special number, and get an appointment at the Genius Bar for a given time.  My wife, meanwhile was going to sit in on an Apple demonstration show.

The reality went more like this:  I showed up at the right time, but my name was never called, nor was I listed, and in fact, people walking in the store were jumping in front of me.   The demonstration show was canceled earlier that day.

Turns out this was for good reason, as those folks were sick.  Consequently, we had to track someone down, and they looked me up, and hooked me up with an expert immediately.  That person, who was very nice, made it clear that he was not a Final Cut Pro expert, but a Motion expert.  This explained what was about to happen.

I brought in a demo CD of my problem, demonstrated it, and within the first two minutes had totally stumped him.  It was clear that their basic training shows how to use the software in the most generic sense.  The why behind the way things acting the way they do are not taught.  However, if you get the right creative consultant, this person may have a passion about a given application and know a lot of really useful things.

The majority of my  Final Cut Pro questions were not answered, or at least not to my liking, or even worse I knew better and could tell when I was being B.S.’d by someone who didn’t want to admit they didn’t know the answer.  As such, I’d say the quality was poor.  And, when he knew I wasn’t getting the answers I wanted, he did manage to track someone else down to help.  Bonus points there, chap.
But, when we flipped over to the application that the person did know, in this case Motion, he was able to show me all kinds of amazing tricks and techniques, and even extended our meeting time beyond the one hour time block.  As such, I’d say the quality of that consulting was beyond excellent.

All in all, I have to say that I most likely had the worst possible experience that is capable of coming out of Apple: a late start and the wrong expert for the topic.  Even still, the experience was a very positive one!  So, I can only imagine what what getting the right person would be like.

My intent is to go again next week, bounce some of the same questions off the right expert (assuming she’s well), and see what answers I get.  All I know is that after one hour with an Apple consultant, I’m now far more proficient than I was before.

Apple, you’ve done well.