« May 2006 | Main | July 2006 »

June 20, 2006

Case-sensitive file systems and me

Grumble grumble grumble...

The background:
I come from Linux. Let's get that out there in the open right away. (I feel better already). I make money (among other sort of more businessman-like things) playing sysadmin to several Windows (no fun), Linux (fun), and OS X (friendly) machines.

Comfort finds me in the command-line and, while I'm no bash genius (Juan is, I think), I get around. One old carryover that I bring with me from the Linux world is a penchant for case-sensitive file-systems. I like 'em. Feels like home, ok? I guess that makes sense.

The hate:
Two pieces of software that I find very impressive just puke on case-sensitive file systems.
Parallels workstation (which I love) might allow me to use windows right along with my primary install of OS X. If only it didn't puke all over the place when trying to run on case-sensitive hfs+. I find myself dual-booting off of an external firewire (handily defeating the purpose of owning parallels in the first place) installation of OS X to run this otherwise fantastic software.
MOTU Symphonic Instrument, which is a really fantastic sample-based orchestral synthesizer, has the following behavior:
1. On PPC, there is a bus error
2. On Intel (it's UB), the whole machine hangs. That's right, folks. My machine is HOSED
Once again, if I boot into a case-insensitive file system, it runs (and it's really really cool).

The response:
Parallels:
NONE! I have submitted bug reports through the beta of parallels. I have submitted bug reports now that the software is out of beta. I believe in this software. I have paid for this software to support it's development despite the problems I am having.

MOTU Symphonic Instrument:
NONE! I have submitted bug reports and tried to call their (ALWAYS busy) support number. I have, again, happily paid for this software (there is no demo available; I just bought it based on the reputation of their hardware and software).

Question:
Am I *that much* of an outlier? Seriously. Am I the only somewhat old-school Linux geek who prefers a case-sensitive system on OS X?

Solution:
Ug. I guess I'll just buy a huge external drive, make a very careful extra backup (in addition to my usual backup) of both of my machines and go case-insensitive. Pain. In. The. Butt.

June 07, 2006

Bob

I don't know how he finds the time, but the python / mac community owes Bob several rounds of applause. Let me be the first to stand (soon as I get this here foot outta mah mouth). I'm also wowed at how he managed to find my blog and comment before I got round to sending a question to the mailing lists. And ... well you know... he kicked my butt and I deserved it.

June 06, 2006

PyObjC proxy fun

PyObjC is cool. Really. No Kidding. What I'm about to say, though, is making me think that my friend Patrick www.patrickkidd.com has a better idea in using pyQT for gui work...

When I'm using an external library, say perhaps one that sends information over a network, I try to be careful to keep from passing the lower-level code anything that could muck things up. Well... it turns out that it's nearly impossible to keep python's object types from being converted to pyobjc objects. This isn't too surprising, given that many ints, strings, etc. have to make their way into objc arguments, though I was making the improper assumption that python objects were converted through some kind of transparent proxy only when crossing that boundary to the objc runtime. I find out now that python objects are sometimes just converted. That being the case, I didn't expect those converted objects to act like anything but your typical python object from the point of view of python (ala duck typing... sorta). Again. WRONG. Somehow, for instance, the integer type sometimes turns into an OC_PythonInt (which has a method intValue() to get to the python int it represents, FYI) and it doesn't have the same methods as a python int. Bummer. It's kinda hard to send that over the network.

What to do?

"assert" statements, I guess.