AvianSafari 1.0.2

Just a quick note that AvianSafari 1.0.2 has been released. If you’re on a previous version you should upgrade immediately since the API key was reset (I foolishly committed it to my local repo and forgot I was planning on pushing it to a public Github repository). If you’re seeing Twitter authentication requests in Safari then that’s the manifestation of the issue. Sorry about that!

Download now!

AvianSafari, A Safari Extension

I’m extremely proud to announce AvianSafari, a browser bar based Twitter client for Safari. You should check it out right now and then come back and read about it. I can wait.

Okay, now that you’ve got it installed we can move on. AvianSafari supports the following:

  • Home Timeline
  • Mentions
  • Sent Direct Messages
  • Received Direct Messages
  • Tweet Pagination (Scroll Wheel or Arrow Buttons)
  • Unread Tracking
  • Search
  • Trends
  • Native Retweet
  • Reply
  • Tweeting
  • Delete Tweets
  • Sending Direct Messages
  • URL Shortening (TinyURL, TinyVH, bit.ly, j.mp, is.gd)
  • Authenticated URL shortening for bit.ly / j.mp
  • Variable Update Interval
  • Controllable Link Behavior (new tab, current tab, tab position, et cetera)
  • Conversation threads
  • Linking @mentions and URLs
  • Much, much more!

For communication with Twitter I created AvianLib, an OAuth/Twitter library written in Javascript. I’ll be putting AvianLib up as a separate project on Github in the near future so others can consume it. If you’d like to take a look at AvianSafari’s source code or provide feedback head on over!

AvianSafari Product Page

Big thanks to Brian Kim (icons), Matt Pennig (general JS guru), and Clay Benson (website).

Optimize Legibility (Safari Extension)


View All My Safari Extensions

John Gruber linked to an article about the text-rendering:optimizeLegibility CSS property today and as he said, news to me. I’ve built a quick Safari extension to enable it by default in Safari (Firefox already does this). So, without further ado:

Optimize Legibility is a simple Safari extension that injects a single CSS attribute (text-rendering:optimizeLegibility) into every page. This will improve kerning and ligatures in text.

Download it or view the (trivial) source at Github.

Update: 1.0.2 adds an icon and reverts the CSS to matching body rather than wildcard. Should improve performance (although it won’t be noticeably faster on any modern machine).

CDN Tools 1.0 Released

After a long delay I’m proud to announce the release of CDN Tools 1.0. This a major release that requires you to reload all your sideloaded files. Do not upgrade to 1.0 from 0.99 unless you’re ready to reload everything!

New Features:

  • WP 3.0 compatibility1
  • Changed method of storing info about sideloaded files to be far more robust.
  • Use directory structure on Cloud Files (uses just one container now)
  • Now CDNifies post thumbnails as well (WP 2.9+ feature)
  • Fix for blogs using SSL
  • Caches credentials for more rapid initial loads/multiple media attach uploads.
  • You can now define constants in wp-config for plugin configuration. This allows to configure settings that will be active on all end-user sites without allowing them to see/edit the config. If you define constants the CDN Tools admin page will not register a configuration page.

Head over to my CDN Tools page to learn more or go to wordpress.org to download it now.

  1. 0.99 probably works with 3.0 as well

Incommunicado

I apologize for any slow response you may receive to emails you send to me. Im currently traveling with only intermittent internet access. I promise Ill catch up as soon as I can when Im back in the states!

Localizing Safari 5 Extensions

Update: If you’re a registered developer you can check this thread for more information. The gist is that settings strings are not localizable at this time. I’ve filed a bug 8105949 against it (I recommend everyone report one as well if they want this fixed).

I’ve gotten a great deal of requests to localize my Safari extensions into various languages. Unfortunately, Apple hasn’t released any documentation on whether or not the Info.plist data can be localized.

In normal Mac OS X applications you can define key/value pairs using a Language.lproj directory with an InfoPlist.strings file. OS X then automatically uses the translated strings based on the primary language. As this seemed a likely candidate for i18n support, I’ve been experimenting with this for the past day or two…without success. So now I’m pleading with you, the internet! Is there a way to do i18n in extensions? Or will we need to wait for Safari 5.x to add this (critical) feature?