DNA Lounge update

DNA Lounge update, wherein note is taken of Mortified, Blow Up and Fringe-related media.
Tags:

Soft Robot Walking and Crawling

This doesn't really seem that menacing. They could definitely up the menace here.

It does seem designed for rectal excursions, though, which has a menace all its own.

Previously, previously, previously, previously, previously.

Tags: , , , , ,

Apple recently broke Ctrl-Y

Ever since MacOS 10.0 was released, text fields have supported Emacs bindings for the single-character Control commands, showing that there were people inside Apple (and, presumably, NeXT) who were right-thinking and sensible.

But some time late in the 10.6 release cycle, and continuing into 10.7.1, the binding for Ctrl-K ("kill to end of line") became broken.

I care deeply about this, because these commands have been burned into my hands' muscle memory since dinosaurs walked the earth, and every time it screws up, my brain basically falls over.

Proper behavior for "Kill" is this:

  1. If the last command was not "kill", truncate the kill buffer;
  2. Append the deleted text to the kill buffer.

Specifically, cursor motion, self-inserting characters, and basically everything else takes it out of kill-appends mode. The only time kills should append is if you type ^K twice in a row with no other intervening typing or motion.

This is how it used to work in 10.5.8 (I just tried it) and, I think, at least part of the way through the 10.6.x series. But it changed for some reason!

From my experiments, it seems that what Apple currently does is this:

Kill:

  1. If "no more kills" flag is set, truncate the kill buffer.
  2. Append the deleted text to the kill buffer.

Yank:

  1. Set "no more kills" flag.
  2. Insert contents of kill buffer.

That's wrong. Proper behavior is that if you kill text, move, kill more text, and yank, you get only the second text inserted. Current Mac behavior is that you get both pieces of text inserted -- in fact, all text that was killed since the last yank!

To demonstrate, type this into any text area (e.g., a Safari page with a form):

    one ^A ^K ^Y RET
    two RET
    three RET
    four RET
    five RET

Then position the cursor at the beginning of the "two" line, and type this:

    ^K ^K ^N ^K ^K ^N ^Y

You should now be looking at:

    one
    three
    five
    four

But instead you have:

    one
    three
    five
    two
    four

Is there any way for me to fix this myself? It appears that the key bindings are defined in /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict (a normal plist file) and available commands are listed in /System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSResponder.h, but I'm guessing there's no easy way to replace the definition of the deleteToEndOfParagraph: action with something else...


Update: For what it's worth (and for those who can read it) Apple Bug 10532310.


Update: Holy shit! I am told that this bug was fixed FIVE HOURS after I posted this -- Webkit bug 73888 and the patch. Thanks, Alexey!

This right here, people, is a grand triumph of open source.

Maybe the bug would have gotten the same kind of swift attention inside Apple (Alexey does work for Apple, after all) but none of us would have known that it had even been acknowledged until it showed up in a release, due to Apple's unconditional secrecy on all things. But because they do Webkit development out in the open, we all get to follow along! Which is awesome.

Of course I still have to wait who-knows-how-long until this fix is rolled into a build of Safari that I'm able to run, instead of being able to just spin my own or download a nightly like for normal software, so that's not ideal, but... baby steps.


Update 3, Aug 2012: The fix is in the Safari 6 release. So the answer is, "eight months".

Tags: , , , ,

Notes syncing

Dear Lazyweb, how do I get my notes to sync on MacOS 10.7.1 and iOS 5?

Back on 10.6.8 and iOS 4, I was able to sync my notes among my iPhone, iPad and desktop by just plugging them in. I could edit the notes in Mail.app on my desktop, or on either mobile device, and as long as I didn't edit on two different devices without syncing between, everything was fine.

Apparently to do "over the air" syncing of notes, Apple demands that I set up an email account on me.com, which is stupid. (What, storing my notes is beyond the capabilities of iCloud?) So I'm trying to do normal, tethered syncing like before, and while it seems possible to sync between iPhone and iPad -- but maybe only if I plug them in to my Mac in the right order? -- it never syncs into or out of the notes-editor inside Mail.app.

Is this Apple's way of telling me, "We would prefer that you use some other note-taking application than the one we ship with both our operating systems?"

My note-taking needs are extremely simple -- I don't need reminders or checkboxes or searching or images or even multiple fonts. Just a couple of pages that I can type text on, and be able to edit it from my desktop or mobile devices.


Update: Ok, it's possible to store your notes on any IMAP server, but apparently Mail.app now gets confused if you have moved your IMAP notes out of your inbox and into another folder on that same IMAP server, and starts treating them as "On My Mac" notes even though they still appear to be "IMAP" notes. Or something.

This seemed to work:

  1. iPhone: Settings / Mail / Account / Notes [ On ]
  2. iPhone: Settings / Notes / Default Account [ your IMAP acct ]
  3. Mail.app: Select pseudo-folder REMINDERS / Notes / IMAP server.
  4. Mail.app: File / New Note, and re-create all of your old notes there, cutting-and-pasting the text.
  5. Don't move them, ever.

After that, all three of my devices seem to be syncing with each other with somewhere around 2 minute latency.

Tags: , ,