Quick thoughts on iA's Writer for Mac

May 31, 2011

Last week Information Architects released Writer for Mac, which had been eagerly anticipated by a lot of us writing geeks for some time.

Everyone these days loves holding up as a virtue the fact that many writing apps are coming with fewer and fewer customization options. When I see these sorts of comments I usually just roll my eyes, and that's exactly what I did when I saw the first bullet point in Writer's website copy: "iA Writer has no preferences. After opening the program, all you can do is write." *Yawn* We get it, you took options out. Great. You're hip.

That said, I must admit that I've been looking forward to this app ever since I first used its iPad counterpart last year. As I recently wrote about, the iPad app turned me on to Bold Monday's Nitti Light font, which I bought (for $75) and now use in nearly every app on my Mac. It of course is the font iA chose for its Mac version.

For its $18 price, I was a bit disappointed to not see support for the ODB Editor protocol, without which I can't use QuickCursor to route data in and out of the app. This means that any time I want to write something I either have to copy out of and paste into whatever app I use to store draft posts (currently nvALT), or use Path Finder to dig around my Dropbox folder. What is this, 2005? Surely support for this sort of thing is coming.

Despite that letdown, I've quite enjoyed writing with the app, and have lived in it a fair amount since buying it on launch day. Also, for some (clearly) irrational reason, I love the oversized, light-blue (cyan?) cursor, just as I did on the iPad. I'm on the fence about "focus mode," which dims everything other than the sentence you're currently writing, but maybe I just need more time with it. I'm a big fan of the auto-Markdown formatting, which is beautifully implemented, and the "reading time" metric is a nice touch.

Going forward, I think I'll continue using Writer for most of my long-form writing, and maybe for everything if they eventually add support for the ODB Editor protocol.

Given that you can't modify anything about the app (including the font, font size, line width, background color and text color), it won't appeal to many, and frankly, I think the inability to change the font size may be the most user-hostile thing I've ever seen. We've all got different screen resolutions, pixel densities, eyesight capabilities, etc., and so it seems silly to prohibit the adjustment of such a personal variable. Hopefully they'll ease off their we-know-best attitude in future updates--this isn't a typewriter.

One final thing about the app that really bothers me is that it defaults to a window height tall enough for just nine lines of text; the window basically is a 2x1 rectangle. Is there really no way to change this? Every time I want to type something in the app (without going full screen) I have to drag the window and make it taller?

Relatedly, this is the last writing app I'm buying this year. I'm done. This space is beyond saturated. Between nvALT (which is what I write in most), Byword, WriteRoom, Ommwriter, TextMate, BBedit, etc., I just can't take it anymore.

(See also Ben Brooks' take on the app.)

Lend a Kindle book via Lendle, get paid#

When you purchase a lending-enabled book, you're paying for a license to lend that book one time, ever, and we're building our service around altruistic Lendlers who are willing to expend that limited license on a complete stranger.

Because we think that's a lot to ask, starting today, we're moving forward with our "pay to lend" idea by crediting Lendlers $0.50 each time they lend a book.

China used prisoners in lucrative internet gaming work#

As a prisoner at the Jixi labour camp, Liu Dali would slog through tough days breaking rocks and digging trenches in the open cast coalmines of north-east China. By night, he would slay demons, battle goblins and cast spells.

Liu says he was one of scores of prisoners forced to play online games to build up credits that prison guards would then trade for real money.

Readable, a bookmarklet for reading on the web#

Readable is an application that helps you read more of the web. It reformats text -- on any website -- according to your exact specifications.

It's kind of like Readability (more like the original bookmarklet than the current service), but infinitely more customizable. Plus, it doesn't rewrite the URI when you use it (so you can, for example, send the the current article to your Kindle, etc., without having to worry about getting back to the original URI.)

I of course am using Solarized (dark) and Nitti Light (yes, it lets you specify custom fonts).

We're all alone and no one knows why#

A few years ago Mike Treder, Director of the Institute for Ethics and Emerging Technologies, laid out three propositions for dealing with Fermi's Paradox; after dismissing the first two (the second one maybe a bit too easily), he expounded on the third, which says that there have been advanced alien civilizations, but that they've always hit a "cosmic roadblock" that either prevented them from traveling too far from their origins or otherwise destroyed them.

Continuing with that logic he went on to say this about us:

Whatever civilizations have come before us have been unable to surpass the cosmic roadblock. They are either destroyed or limited in such a way that absolutely precludes their expansion into the visible universe. If that is indeed the case — and it would seem to be the most logical explanation for Fermi's Paradox — then there is some immutable law that we too must expect to encounter at some point. We are, effectively, sentenced to death or, at best, life in the prison of a near-space bubble.

This latest article (from March 2010) has Mike following up on reactions to that earlier piece, including his thoughts on many of the alternative propositions submitted by readers. Ultimately Mike ends up where he left off three years ago: "All in all, it seems clear to me -- irrefutably logical -- that some sort of cosmic roadblock, as yet unidentified, must exist. Either that or we are in a simulation."

(For those interested in this sort of thing, you'll definitely want to check out the comments.)

Hasselblad's new 200-megapixel, multishot camera#

The multishot modes offset each frame by a half or a full pixel width, an approach that compensates for the fact that each sensor pixel captures only red, green, or blue light. The four-shot mode takes about 20 seconds for a full photo; the six-shot mode takes about 30 seconds.

Each image file is ~600MB.

Chrome lets you mass-restore all the tabs from an accidentally-closed window

May 24, 2011

Earlier today I accidentally closed a Chrome window with 97 tabs. I contemplated suicide—as I'm wont to do when this sort of thing happens—because I knew I was going to have to trudge through my history and restore, one by one, the tabs I could remember still being open (and which weren't currently open in other windows). The process is a nightmare.

With my heart racing I clicked on the History menu item (not the full history dingus), looked under the Recently Closed section (which shows you your nine most-recently closed tabs) and just happened to notice a "97 tabs" folder at the top of the list. I expanded that folder and at the top it said, "Restore All Tabs." Boom. I was back to my previous state in about a minute. Brilliant.

It's taken way too much time (like, uh, about a decade), but we've definitely come a long way from the days of me and others having to write the most insane AppleScripts, extensions, plugins, etc., to automate the restoration of browser sessions; these days browsers ship with the baked-in ability to restore not only sessions, but also windows within those sessions.

(It's been a while since I've accidentally closed a browser window, and so I've no idea how long this feature has been in Chrome, but in any event, it's fantastic and saved me a ton of time today. For kicks, I fired up Safari to see if it had something similar, and it does; choose History from the title bar and click on "Reopen Last Closed Window.")

When will I use math?#

The most common question students ask math teachers at every level is "When will I use math?" WeUseMath.org is a non-profit website that helps to answer this question. This website describes the importance of mathematics and many rewarding career opportunities available to students who study mathematics.

Trailer for Ecstasy of Order: The Tetris Masters#

This is the official trailer for Ecstasy of Order: The Tetris Masters, a feature length documentary capturing the greatest world record Tetris players as they prepare for the Classic Tetris World Championship.

From the days of Thor Aackerlund and his historic victory at the 1990 Nintendo World Championships, right up to the present and Harry Hong's perfect "Max-Out" score, this documentary expertly chronicles over two decades of Tetris Mastery.

My favorite game of all time.

Men relax best when wives are busy#

Men, when they come back home, tend to be alone in a room. Women, when get back home, tend to be with one or more children doing childcare. When they are alone, they tend to be doing housework. When men are alone, they tend to be relaxing.

(Sarah, these are the results of a legitimate scientific study; please don't shoot the messenger. I love you. ;)

Fabrice Bellard's PC Emulator written in... JavaScript#

Um, this runs Linux within your browser. What?! You can try it out here.

The CPU is close to a 486 compatible x86 without [an] FPU. The lack of [an] FPU is not a problem when running Linux… because it contains a[n] FPU emulator. In order to be able to run Linux, a complete MMU is implemented.


TermKit is sort of a cross between a terminal and a GUI--using WebKit and JavaScript--and it's kind of blowing my mind.

[Since the early days of UNIX] we've gotten a lot better at displaying information. We've also learned a lot of lessons through the web about data interchange, network transparency, API design, and more. We know better how small tweaks in an implementation can make a world of difference in usability. […]

So while I agree that having a flexible toolbox is great, in my opinion, those pieces could be built a lot better… TermKit is my attempt at making these better tools…

I see TermKit as an extension of what Apple did with OS X, in particular the system tools like Disk Utility and Activity Monitor. Tech stuff doesn't have to look like it comes from the Matrix.

As an example, you can cat an image file:

TermKit cat doesn't know how to process PNGs or HTML--it only guesses the MIME type based on the filename and pipes the raw data to the next process. Then the formatter sends the image to the front-end.

Rui Carmo puts it well: "It's as if someone sent you HTML mail in the 70s."

(Via Andy Baio.)

Fantastical looks great and all, but...#

The web is buzzing today with the news that Fantastical, a beautiful interface to your calendar of choice, is now available for download.

While it most certainly is pretty and likely a joy to use, I'm a bit confused as to why anyone would use a calendaring app and a task-management app, unless maybe they're sync'ing/sharing their calendars with other people.

These days I throw everything into OmniFocus: projects/tasks (obviously), birthdays, anniversaries, meetings, etc. Why split any of this stuff across two different apps (if you can get away with using just one)?

How to tweet via LaunchBar

May 16, 2011

Ever since Twitter's official Mac client started forcing the auto-shortening of links, I've had to launch a second client (in my case, Echofon) to publish tweets that contained them. (Sometimes shortened links are OK, even necessary, but for the most part I like to leave them as is, because they can provide context to the tweet/link, and give potential clickers a better indication of what may be found at the link, who the author may be, etc.)

As you can imagine, this was beyond annoying, and so I set out to come up with a solution that would require only LaunchBar, at least as far as the interface was concerned.

I remember coming across something a while back that likely would have worked, but required a third party, through which your Mac talked to Twitter. No thanks. I also happened across a second potential option, but if memory serves it hadn't been updated to support Twitter's OAuth stuff, and so it no longer worked. At that point I'd kind of resigned myself to either solving the problem from scratch or just letting it go entirely, and had stopped actively looking for a solution.

Then, just a couple of days ago, TTYtter--a full-blown Twitter client for the shell (written in Perl)--flew onto my radar. The whole project is kind of insane, but that didn't mean it wasn't exactly what I was looking for. Once I realized it didn't have to be run as a daemon, but could instead could be executed with options that told it essentially to "tweet and quit," I knew the perfect solution was within my grasp.

After considering a couple of options, I decided to whip up an AppleScript (see below) that would let me tweet, via TTYtter, whatever I typed into LaunchBar's text field. (Yes, you could use the "Run Shell Command" available in LaunchBar 5 beta 2, but you'd have to type /path/to/ttytter.pl -status="" each time. Sure, that could be made a bit easier with TextExpander, but it's still less efficient than my AppleScript method.)

on handle_string(tweet)
    do shell script "/path/to/ttytter.pl -status=\"" & tweet & "\""
end handle_string

Setup is simple:

  1. Download TTYtter.
  2. Make it executable, and place it wherever you'd like. (I'm keeping it in ~/bin).
  3. Launch it from a shell, and follow the on-screen prompts to get your OAuth keys from Twitter. (This is the only time you'll interface with TTYtter directly.)
  4. Save the AppleScript to ~/Library/Application Support/LaunchBar/Actions. You can give the script whatever file name you want, but keep in mind that the file name will be the alias used to specify the script from within LaunchBar. For example, I saved my script as tweeter.scpt, and so to set it in motion I type (or rather start to type) "tweeter" from within LaunchBar.

And you're done.

Now, whenever you want to tweet via LaunchBar, simply highlight the script, hit the space bar, type out your tweet and press return.

Update: Soon after I published this piece I added functionality to the script to alert you when the draft tweet was longer than 140 characters, but never got around to updating this post. Then, a couple of days ago, Alan Schmitt wrote me to let me know he extended my script to show, for example, whether the tweet was sucessfully published. (He also added a character-count validator; mine tells you by how many chars you're over the limit, and his tells tells you the total chars).

His additions require a positive action from the user even when the tweet is published sucessfully. I didn't want that, and so I modified the code a bit (using display alert instead of display dialog) so that a positive action is required when the tweet is too long (i.e., you must dismiss the alert), but no action is required to dismiss any publishing feedback (i.e., the pop-up alert goes away after, in my case, one second).

Given the way LaunchBar works, I know of no way to get back to the text field after the alert pops up to tell you the tweet's too long (i.e., once you click "Dismiss" on the alert box, the alert and LaunchBar disappear). The good thing though is that LaunchBar remembers what you last typed in the text field, and so once the script is invoked again you can immediately start shaving off chars.

The below script is what I'm using now.

on handle_string(tweet)
    if length of tweet ≤ 140 then
        set theResult to do shell script "~/bin/ttytter.pl -status=" & quoted form of tweet & " 2>&1"
        display alert theResult buttons {"Dismiss"} default button 1 giving up after 1
        set charsOver to (length of tweet) - 140
        display alert ("You're " & charsOver & " chars over") buttons {"Dismiss"} default button 1
    end if
end handle_string

An interview with Stephen Hawking#

I regard the brain as a computer which will stop working when its components fail. There is no heaven or afterlife for broken down computers; that is a fairy story for people afraid of the dark.

Ditto, but you knew that already.