Hacker News new | ask | show | jobs
by comex 3344 days ago
Not just Windows. Some choice strings from macOS system frameworks:

AppKit:

    NSSavePanelOverRetainToCompensateForAdobe
    NSShouldWorkAroundBadAdobeReleaseBug
    Adobe Invener Fusion opted out due to odd event processing
Foundation:

    com.adobe.Reader
    com.adobe.Acrobat
    com.adobe.Acrobat.Pro
    _allocWithZone:.do_adobe_hack
(Though they're hardly alone. AppKit contains a huge number of bundle IDs scattered through the strings list, presumably for various special cases…)
1 comments

Everyone has hacks for the biggest products out there, it's a fact of life.

My DAV server has hacks for Microsoft bugs and misfeatures, hacks for older Apple clients, hacks for Konqueror of all things, because I tested against it.

And our current CalDAV code has just inherited two new hacks this week to work around weird bugs in shit that Google Calendar has been serving up:

* years with only two digits or two leading zeros rather than 20xx.

* unquoted TZNAMEs with :s in them.

At least events from year "0012" are allegedly legitimate parsable ISO8601 times, and the events from year "12" are at least legitimate VCALENDAR. The broken TZNAMES parse legitimately, but

DTSTART;TZNAME=GMT+10:00:20120101T01010101 needs to be fixed up pre-parse.

Welcome to interoperability, where liberal in what you accept is the only choice when your communication partner is much bigger.

Excerpt from the Radicale documentation:

> The Radicale Server does not and will not support the CalDAV and CardDAV standards. It supports the CalDAV and CardDAV implementations of different clients (Lightning, Evolution, Android, iPhone, iCal, and more).

Yeah, I bet. The standards are getting better, but there are so many vendor specific things that you need to support to have a good experience that just reading the standards in isolation won't help you much.

Contributing to devguide.calconnect.org on the other hand, helps everybody.

I wonder if someone has the energy to establish connectathons for "above layer 4". Most of our interoperability problems these days are virtual (thanks to brick and mortar connectathons squeeing out any of the old layer 1-4 bugs). These days we could do them online, and automate the detection of regressions.

I was actually astonished that connectathons are still running; I haven't been to one in decades: http://www.connectathon.info