.bin & .cue to .iso on Mac

If you are dealing with some old CD images in the .bin + .cue format, then

sudo port install bchunk
bhunk <bin -filename.bin> <cue -filename.cue> <new -filename.iso>

Explanation

A cue sheet, or cue file, is a metadata file which describes how the tracks of a CD or DVD are laid out. Cue sheets are stored as plain text files and commonly have a “.cue” filename extension. CDRWIN first introduced cue sheets, which are now supported by many optical disc authoring applications and media players.

Cue sheets are also used for many types of CDs in conjunction with an image file. The image file generally has a “.bin” extension.
Cue sheet (computing)“, Wikipedia

Hat Tips

    Other Notes

    Anonymous commenter Don writes, “For those of you who have a .bin file but instead of a .cue file have a .toc file, there is a utility for mac called toc2cue that you can get if you run macports and install the cdrdao port. Then you can convert over to .cue file and use this fine tool to convert your .bin file to .iso”

Mac Tweakers <3 SIMBL, Visor & Fish

While deciphering countless web pages for information about configuring and tuning iTerm, reoccurring themes from the most hard core are:

  • SIMBL: allows you to “patch” Mac applications to do what you want. I’ve come across at least 3 SIMBL plugins to make Apple Terminal.app more useful. The detractors cry that SIMBL destabilizes the OS, while its champions swear they’ve never had a problem.
  • Visor: ”a Quake-style drop-down Terminal” need I say more?
  • Fish: is the newest UNIX shell, it’s a friendly shell. The naysayers warn that it has a very small user community and that its development has slowed. The true believes proclaim that once you try it, there is no substitute for FISH in your diet.

I’m not currently considering using any of these, but I enjoyed coming across them.

Tuners Use zsh & iTerm

One of the tools that I haven’t had much success really tuning before, which I’m looking to try again is Apple Terminal.

Mac OS X has been with us since 2001. There is now a lot of stale information out there for tuning the command line experience. For example, there are still a lot of articles about tsch in search results. The earlier versions of Mac OS X default shell was tsch, but since 2003 the shell has been bash.

One thing I’ve noticed in the screenshots of tuned Terminal is “zsh” in the window’s title bar. I’m not willing to tackle figuring out the zsh shell, but I find it interesting that it’s a favorite of the tuners.

Another favorite seems to be using iTerm. I noticed my co-worker Demitrious Kelly sporting iTerm in his WATCHME for wpshell. And today, reading my co-worker Andy Skelton’s “My SSH config setup” fellow WordPress contributor Dougal Campbell and my co-worker Donncha O Caoimh both gave iTerm shout outs.

I wonder if Apple Terminal has mostly caught up to iTerm. It seems iTerm might still have some tab advantages.

Reveal Files on Mac OS X

My co-worker Michael Adams starts “PHP 5 + Apache 2 + MySQL 5 on OS X via MacPorts” with a great developer tip for Mac Finder:

# Displays all files in Finder. Optional: personal preference.
$ defaults write com.apple.Finder AppleShowAllFiles YES
# Relaunch Finder

This is a great tip — Mac .dmg disk images will never look the same.

Here is a reciprocal tip for the Mac Terminal.

In your favorite editor create ~/.inputrc (bash shell) with the following contents:

# http://osxfaq.com/tips/unix-tricks/week66/friday.ws
# Tab key filename auto-completion improvements
## ignore case
set completion-ignore-case on
## list alternatives immediately (bash normally requires 2nd Tab press)
set show-all-if-ambiguous on

Anyone else have tips along these lines, command lines that is?

5% of Nothing

More than 5% of Nothing

"Sync Alert" Adding 1 Contact with iPhone OS 3.0 with Mac iTunes 8.2.1 (6)

Makes me laugh and cry a little.

This alert is likely meant to warn that a whole lot of data is being added, modified or deleted as part of a sync. It’s an “oh crap, likely either you are doing some wrong or the software is”.

I’m intrigued that UI Expert Aza Raskin (Humanized & Mozilla Lab) finds this alert the “The first good use of a warning I’ve seen!”

I’m not confident that it is generally helpful. Reading online, it does seem that Mac Sync has been quite buggy historically, so this would likely have been very helpful, but does make me nervous that this alert is a bandaid instead of the needed medicine. I would be interested to find out the use cases, and the scenarios where this has been needed.

Synchronization of data between two (or more) sources is a really hard problem. Well the hard problem is mostly related to conflicts when something is changed in two or more places. Daniel Jalkut once wrote, ‘Every developer faces the decision: “Do I want to be known as the jerk who won’t implement sync, or the jerk who can’t.”‘

I’m not actually syncing, because I don’t use Notes on the Mac (does it exist?). It’s really just doing a backup.

In this case, that is the “Sync Alert” of syncing an iPhone running iPhone OS 3.0 with my Mac over ethernet to iTunes 8.2.1 (6). I’m syncing 1 note.

Assuming that this behavior is generally useful, that I’m receiving a warning when 1 note is being added brings up the most obvious issue. There should be a minimum threshold before this exception behavior is triggered. It shouldn’t be 5% of nothing.

When you’re just starting to sync with your Mac, this could be a fairly high frequency alert. It depends on how quickly you add items; how quickly you get to more than 20 items in a category. You’ll also see this alert again when you start using a new feature (new type of item). This leads to the 2nd issue, the alert and warning language — I’m not seeing any yellow, but I’m sure feeling it. Because it is potentially high frequency, it should be presented and worded as a friendly confirmation.

The 3rd issue isn’t obvious from this screen shot. Another clue that it should be a confirmation is that sync does not continue until you have cleared this alert. This is actually problematic, because the alert is non-modal, meaning you can hide it or bury it under other windows. The worst part is iTunes with it’s animated progress bar makes it look like the sync is still progressing. This alert should at least stay on top of iTunes.

The 4th is I don’t think add, modify, and delete are equal. Adding an item is an easier event to undo then a modify or delete. I can just delete it. If something is modified or deleted, it may be hard to recover the lost information. The different events should have different weights. Adding an item should only trigger an alert if a lot are added.

How many is a lot? That brings me to the 5th and final issue that readily comes to mind. It likely shouldn’t be a percentage at all. How long would it take before 5% is a really big number? Probably not long at all. If I have 1000 business contacts, a sync would have to delete 50 of them for me to be notified. Again assuming this alert offers some protection, by using a percentage, even as low as 5% percentage you are penalizing your most passionate customers. Possibly, it could be a percentage that also factors in things like amount of time since last sync or what operations resulted in the changes, but that would likely get complex quick and I suspect the developers would more quickly find the sweet spot by using a constant number (possibly variable on a curve. I hesitate to recommend user defined variable).

Later in that discussion by Aza linked above, he does add “It could be laid out better, but I like the idea of “uhhhhh, that’s dangerous”. Of course, undo is always better :) ”. I don’t think undo would be the silver bullet. I definitely think there is value in confirming changing a large amount of data particularly when the change is destructive, and the need to undo might be overlooked. I just don’t think Apple has polished this implementation.

I feel a bit like I’m playing dirty writing this article now when the next version of Mac OS X, Snow Leopard is only a couple of months away. Still, I was hoping this would be resolved with the new iTunes for iPhone OS 3.0. I’m still hopeful that Snow Leopard with it’s attention to polish might surprise me here.

Mac OS X Snow Leopard, a Major Bug Fix Release

I’m looking forward to the release of the next version of Mac OS X, version 10.6 Snow Leopard this September. As a Software Quality Assurance (QA) practitioner, I find it particularly interesting that this major release is basically a bug fix release — “lots of refinements” and upgrades to the architecture.

The Apple press release from last June includes:

… Rather than focusing primarily on new features, Snow Leopard will enhance the performance of OS X, set a new standard for quality and lay the foundation for future OS X innovation. …

“We have delivered more than a thousand new features to OS X in just seven years and Snow Leopard lays the foundation for thousands more,” said Bertrand Serlet, Apple’s senior vice president of Software Engineering. “In our continued effort to deliver the best user experience, we hit the pause button on new features to focus on perfecting the world’s most advanced operating system.”

Although QA people love this attention to what we are passionate about, conventional wisdom in the software world is that a major release with few new features is suicide, but there are factors working in Apple’s favor.

I don’t find the current version (no snow) Leopard v10.5 to be unstable or buggy, but I know other people have problems with it. There are a lot of user interface (UI) inconsistencies in Leopard among the various Apple applications. I’m interested to see if Snow Leopard sports a more consistent and usable experience.

Apple is selling this upgrade for only $29 US, when their major releases normally sell for $129 US. At $29 Apple customers won’t be looking for much to think they have got a good deal.

Apple’s main competitor Microsoft has created this opportunity. Microsoft Windows costs close to $300. And although Mac OS X only runs on Apple hardware, people’s frustration with Vista’s bugginess and instability has led people to specifically look for a computing experience that address this.

People are hopeful for Windows 7, but it won’t be available until at least a month after Snow Leopard ships. We can expect Windows 7 to have a lot of customer untested technology compared to Mac OS X which looks to be is a very incremental release.

Performance (and polish) is a feature. “Ultimately that feeling of control translates to happiness in everyone. In order to increase the happiness in the world, we all have to keep working on this. Ultimately that feeling of control translates to happiness in everyone. In order to increase the happiness in the world, we all have to keep working on this.”, my boss Matt Mullenweg, Velocity 09 Conference Presentation.

Because Apple builds both the software and the hardware, they can release their next generation of computers to immediately take advantage of the upgraded 64-bit stack, OpenCL for graphic card processing, and GCD multi-core processing throughout Mac OS X.

If Snow Leopard is well executed and well received, it will help people be more confident on computers and expect more from their software. It will be a good day for QA geeks.

Attack of the Case Sensitive Filesystem

Case sensitive file systems should be retired.

They allow us to do stupid things, mostly in error, but sometimes because we are too smart for our own good. There is no good reason for their (continued) existence.

I imagine that in the ancient days of computing it came about something like:

“Long file names will take up too much space”

“I know, we can make the file system case sensitive.”

“Great, now instead of ‘work-notes.txt’ and ‘notes-about-homebuilding.txt’, I’ll just name the files ‘notes’ and ‘Notes”.

Software developers are known for our passion for backward compatibility, and so today the popular file systems of Linux and Unix (except Mac) are still case sensitive.

Gross!

What has gotten me worked up about this (again)?

The cause this time is a customer checked into subversion two copies of a file just with different case. From the commit log, it seems likely that they meant to rename the file.

When I tried to update (or check out) the repository on Mac OS X (10.5.6), a case preserving, but case-insensitive file system (doing the right thing), it fails with a cryptic message:

svn: In directory 'images/author_header'
svn: Can't copy 'images/author_header/.svn/tmp/text-base/belief.jpg.svn-base' to 'images/author_header/.svn/tmp/belief.jpg.tmp.tmp': No such file or directory

using the pre-packaged svn 1.4.4 (r25188 – built Nov 25 2007). Out of interest, I used macports to upgrade to 1.5.5 (r34862) and the error is different but equally cryptic:

svn: In directory 'images/author_header'
svn: Can't open file 'images/author_header/.svn/tmp/text-base/belief.jpg.svn-base': No such file or directory

At this point, I had not identified the cause of the problem, so I was quite frustrated. Thankfully, I had a Linux box to check out the repository on and from there the issue looked obvious.

Solutions?

Save us from our selves.

When working on developing the next great file system, make it so amazing that you can slip in case preserving, case insensitivity like Mac OS X’s HFS+ (Mac OS Extended).

When developing tools like the next great revision control system don’t allow files of the same name but different case — the default configuration anyway.  Failing that, have good error messages. 

It’s not too late for Subversion either to fix the long rotten issue 667: handle file name case sensitivity edge cases (issue 2010: case sensitivity problem with checkout )

Update April 2, 2011: two years later, newer version of Mac OS X, and SVN, and I encounter the same problem:

$ svn up
svn: In directory 'macleans3/images/maps'
svn: Can't open file 'macleans3/images/maps/.svn/tmp/textbase/BQ_old.png.svn-base': No such file or directory

lloyd-imac:macleans3 lloyd$ svn cleanup
svn: In directory 'images/maps'
svn: Error processing command 'modify-wcprop' in 'images/maps'
svn: 'images/maps/bq_old.png' is not under version control

Again, after looking around for easy solutions on the Mac, I just logged into a Linux box, and checked out there, removed the duplicate file names, and committed.