soeren says

May 2 Chuckellania

May 2nd, 2010

  1. As an example, opening a 94 KB file through in an already-running TextMate through Transmit Disk takes 8.5 seconds; switching back to TextMate takes another 3.5. Working with any document in TextMate appears to significantly slow down whenever at least one ‘high-latency file’ is open, too. This makes edit in TextMate, test in other app, edit again workflows tedious and frustrating.
  2. Keep your Duke Nukem Forever jokes at the doorstep.
  3. Thanks to Jesper for the correction.

Tagged , , , , , , , , , , , ,
Posted in Chuckellania

Share | 4 Comments

So, my colcasac arrived

April 19th, 2010

It looks snuggly and comfy inside.

MacBook Pro in Colcasac

MacBook Pro in Colcasac (top)

Almost a bit too tight, perhaps:

Colcasac: MacBook Pro and MagSafe Power Adapter

But it does suggest to store the power adapter, and claims to be the “perfectly snug fit”:

Colcasac Tag

That is all.1

  1. I should have trusted my instincts when I wondered whether the iPhone’s camera will do. The camera doesn’t do justice how nice this thing looks.

Tagged , , ,
Posted in Chuckellania

Share | No Comments

Inaccuracies and Exaggerations from «Inside Mac OS X Snow Leopard: Exchange Support»

September 6th, 2009

We’ll start with the very end:

Daniel Eran Dilger is the author of “Snow Leopard Server (Developer Reference),” a new book from Wiley available now for pre-order at a special price from Amazon.

I don’t find it unreasonable to expect someone who writes such a book to strive for a certain level of accuracy. Having said that, let’s go:

Open source?

More importantly, Apple is providing its users with additional options that benefit both Mac users and the open source community.

What additional options for the open source community does Snow Leopard provide in the PIM area? A quote later on provides a clue what Dilger apparently thinks Apple has added:

Because Apple makes its money almost exclusively from selling hardware, it has opened up its own Snow Leopard Server applications, Address Book Server and iCal Server, as open source Darwin servers that can be compiled to run on Linux.

10.5 Leopard introduced the Apache-licensed Darwin Calendar Server, a subset of Leopard Server’s iCal Server, and this has been continuously updated (Snow Leopard Server ships with version 2). But while Snow Leopard Server ships with the new Address Book Server, there doesn’t appear to be any open source project for that. Marketing-wise, the iCal Server page mentions:

To further the widespread adoption and deployment of these standards, Apple has made the complete source code for iCal Server 2 available through the macosforge.org website.

No such thing for Address Book Server. Maybe they’re planning on it; maybe they’ve even said they are — but so far, this looks quite untrue. Dilger goes on:

That means Apple is essentially giving away both the client (to Mac users) and the servers (to the community) in order to encourage the use of open standards in messaging and collaboration.

No, the clients (Mail, Address Book and iCal) are most certainly commercial, closed-source software. Of the servers, all three are commercial and closed-source, although a subset of one is available in an open-source fashion. Which, by the way, is great on Apple’s part — but let’s not deny that a good configuration interface adds plenty of value, and Apple does not provide that for free (or otherwise openly).

Outlook not needed?

Next up, Dilger compares Apple’s trifecta of client apps to Outlook, with rather bold claims:

Integrated support for Exchange beginning with last year’s iPhone 2.0 means Apple’s mobile platform simply doesn’t need an Outlook client. Now Snow Leopard can also get by without Entourage/Outlook, thanks to new and improved baked-in support for Exchange in Mail, Address Book and iCal.

Microsoft has responded with the announcement that it will now be delivering a real (but still scaled back) version of Outlook for the Mac again

Now, unlike many, I’ve always been a fan of the separation into three apps. But even in 10.6, they are a far cry from Outlook being “simply not needed” or possibly to “get by without”. Public folders, anyone?

The Microsoft Bashing Tangent

With Snow Leopard and the iPhone each now providing their own client layer for accessing Exchange Server, Apple can now offer its users alternative access to other server products as well, from its own MobileMe and Snow Leopard Server offerings to web services from Google and Yahoo. This effectively turns Microsoft from a direct seller into a wholesaler that has to deal with Apple as a middleman retailer.

I’m sure this made some vague sense when it was written. It doesn’t when it’s read. The entire section goes on about Sears, CompUSA, Netscape, IE, IIS and off-shore wind energy. Actually, that last one was a lie. But a discussion of PIM client/server solutions this is not. He could have discussed Netscape’s brief ill-fated journey into the groupware market, but he didn’t. Instead, he’s talking about Microsoft’s evilness, implying a dominant position IIS has never had (“Microsoft first took control of the client with Internet Explorer and then began tying its IE client to its own IIS on the server side with features that gave companies reasons to buy all of their server software from Microsoft.”), and then switches over to everyone’s savior Apple with their open sourcing of Address Book Server, which hasn’t in fact happened. Finally, Snow Leopard Server apparently includes a “Push Notification Server”, which Apple knows so much about, nine out of the top ten results from Google are all articles of his, or links to them. So let’s skip this entire part.

Protocol confusion

Apple’s support for Exchange and its promotion of its own Exchange alternatives are two sides of the same coin, in the sense that they use the same technologies.

Well, this certainly is exciting news for Microsoft, who didn’t even know until this point that their very own Exchange Server has support for CalDAV and CardDAV built right in. (To be fair, it does for IMAP and LDAP, although it’s typically disabled.) Wouldn’t you love it if your developers don’t even have to build features, your marketing doesn’t even have to promote them, and yet you get to offer them?

Apple built its support for Exchange using WebDAV

No…

, the open specification that Microsoft supports on Exchange Server as a way to deliver messages to mobile clients.

…and no.

While Exchange Server has support for WebDAV, and WebDAV is very much an open specification, it’s such a broadly-specified protocol for file transfer and versioning over HTTP that it isn’t intended for mail, contacts, calendars, etc. in particular, so Microsoft has had to layer plenty of proprietary additions on top of it.1 Yes, it uses WebDAV. No, that’s not all there is to it. It’s about as vague a claim as calling XML or CSV a format. For transferring files, WebDAV is a sufficient specification; for storing mails, contacts, calendar events, notes and more, including a ton of metadata, it’s incomplete — by design.

Apple did not license Microsoft’s Windows-only “Exchange Active Sync” software; it merely licensed the rights to implement a compatible EAS conduit with Exchange. Apple owns the Snow Leopard software that talks to Exchange.

This may be, but given that it’s in the same paragraph, I’m skeptical, and also question the relevance. It seems a poor and unnecessary attempt at making Apple look independent. Maybe they didn’t pay a licensing fee; instead, they had to pay their developers to develop client code of their own. So what?

The client applications Apple has upgraded in Snow Leopard to connect to Exchange, including Mail, Address Book, and iCal, also use WebDAV to talk to Apple’s own Snow Leopard Server applications.

The latter part is correct insofar as that CalDAV and CardDAV are extensions to WebDAV for calendars and contacts, respectively. They’re entirely incorrect for Mail (there is no WebDAV-based mail specification aside from Exchange Server’s proprietary method), as well as for Exchange.

This all leads to an entirely wrong conclusion:

This effort to support everything from integrated client software owned by Apple makes Snow Leopard’s support for Exchange of use to everyone, even if they don’t use Exchange. The client work Apple has invested in making Macs Exchange-friendly also improves the features available via MobileMe, Snow Leopard Server, and even some other third party services such as those from Google and Yahoo.

On top of incorrectly believing that Snow Leopard interfaces with Exchange Server through WebDAV, Dilger apparently goes even further that, since CalDAV, CardDAV and his imaginary MailDAV2 are built on top of WebDAV and Exchange uses WebDAV as well, Apple is saving duplicate effort. That would be great. It’s also entirely off. First, Snow Leopard communicates with Exchange Server through the much newer, SOAP-based Exchange Web Services protocol. That’s why it requires 2007 Service Pack 1 Update Rollup 4; this entire interface is lacking in 2003 (and in the original 2007 release). Second, even if they were to use WebDAV, this wouldn’t help them much at all.

Imagine two CSV files, one with the columns Surname, Name and Birthday, and another with the columns Last name, First name and Phone number. Superficially to the human eye, they both clearly contain contacts. To the computer, they’re entirely different formats. One column is missing from each other’s format, and while two out of three columns have the same contents, they’re differently named. You’d have to write a converter to make them match. You have the same situation with different XML formats3, and with two different takes at implementing, say, calendars on top of WebDAV. And given that Microsoft is moving away from WebDAV, citing lack of efficiency, they probably won’t implement CalDAV any day now.

The App Store Tangent

App Store? Really? What does that have to do with anything?

The success of the iPhone App Store has benefited both developers and users by establishing a competitive market based on meritocracy. Snow Leopard’s support for Exchange, because it opens up equal access to alternative competition, similarly creates an iPhone-like market for desktop messaging services ranked by merit, not the vendor’s current market position.

Yes, vendors like, say, Microsoft. Also, software companies located in Redmond, Washington state. Can someone explain to me how an interface to a proprietary PIM protocol “creates a market ranked by merit”?

This will provide Snow Leopard users with not just the ability to talk to corporate Exchange Servers, but also the ability to access Apple’s own offerings and other third party services.

I’ll get right around to implementing Exchange Web Services in my own groupware. Surely the specification is somewhere on ietf.org. Oh, wait.

  1. That’s not a criticism; it’s just a fact of life.
  2. MessageDAV? LetterDAV? Running out of corny specification names quickly.
  3. Consider Atom vs. RSS.

Tagged , , ,
Posted in Chuckellania

Share | No Comments

So I went to CocoaHeads

June 13th, 2009

CocoaHeads is a group all over the world1 meeting up every month and discussing Cocoa (and Cocoa Touch), Apple’s primary development framework for the Mac and iPhone platforms. Alexander Repty (perhaps best known for his neat Lab Tick utility) took the initiative in launching a chapter for Bremen. We2 met for the first time on Thursday. About a dozen people came (we were hoping for four, maybe five), and it turned out to be a great two and a half hours in a café.

Like In The Old Days

It struck me when explaining this event to someone else how oddly this must come across: as more and more social activities of our everyday life — both leisurely and professional — takes place over the Internet, with chat rooms, discussion forums, blogs, and other fast-paced media, here comes what amounts to a perfectly old-fashioned hanging-out over coffee and cake. I first met Alex in #macsb (for Macintosh Software Business), an IRC channel on FreeNode focused on running independent Mac development studios. It’s one of the stranger coincidences in life: despite being an international chatroom hosting only several dozen people, we actually grew up less than a mile from each other. And yet, we never met in person until Thursday.

So why, when you can use CocoaDev to look up API commentary, Stack Overflow to discuss problems that have you stumped and Twitter to follow what others are cooking up, would you really need to attend anything in real life3 any more? It is perhaps downright antithetical to the stereotype for a software developer to do.

Truth be told, the benefits are hard to describe exhaustively. As far as resources go, the Internet is absolutely unparalleled. And yet, because we aren’t forced to interact socially, we tend not to. Forums and even twitter are far from real-time anyway, and as for chatrooms, we tend to lurk for minutes or even hours, only sticking our heads in when we feel like it. A café doesn’t give us that option, and while it honestly isn’t something I’d want to experience every day, it is a refreshing contrast to the usual. So, immediacy places a role. Those who are there are actually… there.

There’s a quality to actually meeting that perhaps roughly matches what Rands calls The Pond; a shared, mutual breeding place for ideas that just cannot with our current technology be replicated or even closely imitated with telecommunication. I’ve witnessed this myself with the occasional work from home (or elsewhere) I do; sure, everyone’s reachable, but that’s a stark contrast to everyone being around. Got a problem and can’t figure it out immediately? In the office, you’ll ask your neighbor to take a look (and, typically, just the advantage of two additional eyes solves things fast). Elsewhere, you’ll hesitate to instant-message around, call anyone up or even write an e-mail, and will for no good reason be more inclined to solve things yourself.

Finally, perhaps the decidedly low-tech nature of this — though, to be far, some did show apps that they’ve written or are working on around — is simply a refreshing change.

I had never been to anything like this before — I’ve been to expositions, and I’ve done demos for current and potential customers, but conferences, not so much. One reason? I had regarded the very idea of meeting up in person as somewhat outdated and superfluous.

Now, not so much, because clearly, the benefits of socializing with others who share your profession go way beyond the obvious intoxication and “networking”.

Post Scriptum

I thank (again) Lexx for organizing, and everyone else for attending. For those in Bremen or nearby, we plan to meet the second Thursday of every month. If anyone wants to join in or perhaps even present something, please do!

  1. Though Africa is feeling rather lonely right now, and South America even more so.
  2. To my own astonishment, that includes yours truly.
  3. It feels funny to stress this.

Tagged , , , ,
Posted in Uncategorized

Share | 2 Comments

Unique Fail

March 2nd, 2008

I haven’t fully moved to CoRD yet, largely because of various quirks in its UI. (I see that a new beta is out that may address most of my issues, but I haven’t had a chance to test that.) As a result, I mostly use Microsoft’s ‘official’ Remote Desktop Connection client 2.0.0b2. Plus, I’ve always loved its icon (props to Iconfactory on that, I believe).

This morning, it crashed. [Not a] big deal; crashes happen. I was curious why, though, and while the crash report didn’t help me figure that out (the topmost call in the stacktrace is MBUMutex::Acquire(unsigned long), which tells me absolutely nilch about the actual intent), I did find something else.

Here’s a portion of the Binary Images section from the crash log:

Binary Images:
    0x1000 -    0x23fef +com.microsoft.rdc 2.0.0 Beta2 (2.0.0 Beta2) <0775a7210cb4454ea17af3dfdec33e2c> /Applications/Remote Desktop Connection.app/Contents/MacOS/Remote Desktop Connection
   0x92000 -   0x108fe6 +com.microsoft.netlib 12.0.0 (12.0.0) <9fac28ca22ff49bf9185194497585126> /Applications/Remote Desktop Connection.app/Contents/Frameworks/Netlib.framework/Versions/12/Netlib
  0x436000 -   0x5bafc7 +com.microsoft.rdc 2.0.0 (2.0.0) <ad448d7a974d4d90ad5b89b5dfa08bc1> /Applications/Remote Desktop Connection.app/Contents/Frameworks/RDCPAL.framework/Versions/12/RDCPAL
  0x86c000 -   0x94dff7  libxml2.2.dylib ??? (???) <ccd6e2cb514fcd0b541bf153aae13481> /usr/lib/libxml2.2.dylib
  0x9c8000 -   0x9e6fe7  com.apple.OpenTransport 3.0 (3.0) /System/Library/PrivateFrameworks/OpenTransport.framework/OpenTransport
[..]

Notice something? That they still use OpenTransport strikes me as weird, that they use the same bundle identifier com.microsoft.rdc for the two distinct bundles RDCPAL.framework and Remote Desktop Connection.app, which furthermore run simultaneously, is even stranger, but oddest yet? This explosive combination actually works.

After all, a bundle identifier is supposed to be globally unique. There are several API calls that let you launch and otherwise access a bundle through its identifier. How would that ever work when two bundles which clearly, while related, are distinct in their nature and purpose, have the same identifier? Should Xcode prevent you from building a project whose identifier matches one that already exists? Probably impossible to do on a reliable basis. Should dyld refuse to link or XNU refuse to launch a bundle when one with the same identifier is already running? Or should Microsoft simply have someone smack the CFBundle documentation over developers’ heads?

Tagged , , , , ,
Posted in Rants

Share | No Comments