Computers Posts

  • 07.03.09 Career Update, Part ++n (Web, Me, Computers)

    I’ve now ended up working on Chrome, Google’s web browser. The team I’m on is responsible for implementing HTML 5 features, as well as designing and implementing other new features (for standardization) that will help web apps become as powerful as native apps. Much of what we do will go into the WebKit source tree, where it will also directly benefit Safari, Android, the Palm Pre, and other WebKit-based browsers.

    In fact, everything I work on (more or less) is going to be open source. Both the WebKit and Chromium source trees are public. You can view, if you care to, the one patch I’ve contributed so far and the one that’s currently out for review. That’s kind of mind-blowing, in a good way, to me, steeped as I am in the secrecy of Apple.

    I’m pretty excited by this. There are quite a lot of things I’m interested in working on—client-side storage, local apps, drag-and-drop, better font support, menus, even far-out stuff like peer-to-peer networking. Forward in all directions!… MORE

  • 06.14.09 Is There Any Point To Using The Keychain API On iPhone? (Computers)

    I’ve always liked the Keychain technology in Mac OS X. Sure, the API is notoriously confusing and awkward, but the end-user benefits are compelling. The iPhone has a Keychain API too, but it’s a different API than the Mac OS one. At first glance it looks simpler and easier to use, and maybe it would be if it were properly documented, but in practice the item-storage part of it (the SecItem* functions) is incredibly frustrating because the documentation is both incomplete and just plain wrong.
    After finishing filing a bunch of bug reports with Apple today, I had the crazy idea: why should I be using the Keychain store at all on iPhone? Going through my list of reasons why the Keychain is a good thing, I realized that hardly any of them apply on the iPhone.
    What you’re left with is a rudimentary flat-file database, specialized for just a few data types, with a really clunky and badly documented API. Other than the fact that it happens to already exist, there’s nothing about it that’s as good as something you could write in a few hours using CoreData, or your favorite high-level SQLite API like FMDB or QuickLite, or even a property list.… MORE

  • 05.24.09 Chatty + MYNetwork (Computers)

    As foreshadowed, I’ve created a modified version of the Chatty iPhone sample app, which uses the MYNetwork library instead of custom networking code. You can “get it off of Bitbucket”:http://bitbucket.org/snej/chatty/wiki/Home.… MORE

  • 05.22.09 Apple Never Promised Us It Wouldn’t Be Evil (Ideas, Computers)

    Here is the latest absurdity to come out of Apple’s deeply, endemically fucked-up App Store approval process: Jamie Montgomerie’s Eucalyptus app, an e-book reader that can download public-domain books from Project Gutenberg—about the most innocuous thing you could imagine, right?—gets rejected not once but three times for containing “obscene, pornographic, offensive or defamatory content”.

    Leaving aside the issue of whether Apple has any business deciding what constitutes obscenity (a task that’s driven grown Supreme Court justices to drink)—
    And leaving aside also the fact that Apple’s censors have three times now been too dim to comprehend that the application does not contain any books, obscene or otherwise, but downloads them from the Internet much like Safari—
    No, the really outrageous issue is that the supposed obscenity here consists of a text-only English translation of the Kama Sutra. Apple specifically called out some pages of steamy advice for “when a man wishes to enlarge his lingam“. (No, really .)
    MORE

  • 05.20.09 A Bonjour / Chat Tutorial For iPhone Developers (Computers)

    MobileOrchard just published a tutorial article by Peter Bakhyryev, describing an iPhone app called “Chatty” that acts as a simple peer-to-peer chat-room.

    The source code is released under an MIT license. It’s a well-written overview of everything from sockets to runloops to message framing, and it happens to basically describe what my MYNetwork framework does. So an alternate way to read the tutorial is as a description of things you don’t have to worry about if you’re going to use MYNetwork ;-) Because honestly, the stuff he’s describing can be a real mess to deal with, and isn’t that the kind of thing that should be solved once and stuffed into a reusable framework?… MORE

  • 05.08.09 Murky Mailing List And Progress Report (Me, Computers)

    I’ve set up a Google Groups mailing-list for Murky, my Mercurial version-control app. It’ll be for both developers and users of the app.

    Speaking of “developers”, I’ve been really pleased with the reaction to my initial source-dump to Bitbucket! So far, in nine days:

  • 04.29.09 Murky: A Mercurial Client App (Me, Computers)

    After repeated prodding, I’ve finally gotten off my butt and released Murky, a GUI client app for the Mercurial version-control system. I’ve been working on it for over a year, and using it a lot myself; I had always planned to open-source it “when it’s ready”, but never actually got around to doing the necessary cleanup and uploading.

    I’m happy to say that Murky is finally blinking in the light of day, with its own Mercurial [natch] repository on Bitbucket.

    Murky is by no means complete (or particularly polished) but here’s what it can do:… MORE

  • 04.22.09 MYProjects now hosted on Bitbucket.org (Computers)

    I’ve set up new homes for my various programming projects on Bitbucket.org, which is rather like Github, only for Mercurial instead of Git. (hg clone github.com, perhaps?)

    In addition to Mercurial repository hosting, each project gets a nice source browser, a wiki, and a bug-tracker.

    To kick things off, I’ve put up a new release of MYNetwork …… MORE

  • 04.14.09 Project/bug tracker for MYCrypto (Computers)

    I’ve set up a project tracker site for MYCrypto on Lighthouse. It’s got the usual features—a bug ticket database, milestone tracker, news posts, etc.

    Right now there are no bugs tickets filed. So MYCrypto must be done. Haha! No, I still need to file tickets on the known issues and planned features, but I haven’t gotten around to it yet. (Maybe I should file a ticket to remind myself.)

    Oh, and there’s a MYCrypto news feed you can subscribe to.… MORE

  • 04.13.09 MYCrypto library now alpha-testing (Computers)

    I’ve got a new open-source Mac/iPhone library out … but it’s early days and it’s not really ready for use yet. I’m hoping some smart folks [that’s you] will want to help implement missing bits, or at least find bugs.

    It’s called MYCrypto and it’s a high-level cryptography API, with object-oriented interfaces to:

    • Symmmetric cryptography (session keys and password-based encryption)
    • Asymmetric cryptography (public and private keys; digital signatures)
    • X.509 identity certificates (for use with SSL, S/MIME and CMS)
    • Cryptographic digests/hashes (effectively-unique IDs for data)
    • The Keychain (a secure, encrypted storage system for keys and passwords)
    • Cryptographic Message Syntax [CMS] for signing/encrypting data… MORE