September 28, 2014

iPhone 4S on iOS 8.0.2

It feels just a little snappier than when it was on iOS 7.1.2.

I was alarmed last week by Ars Technica’s article, which said performance was not the only problem. With a message like that, who would like to voluntarily brick their pocket computer? Then the recent 8.0.1 push that wasn’t hopeful either. Meanwhile, my phone downloaded 8.0.2 in the background today, and pushed out a notice.

From a quick search on twitter, I found a few reporting that the latest update was working just fine on their iPhone 4S. No word of an update from Ars Technica on this. (Why is it that only bad news gets reported first? I mean there are a lot of hopefuls like myself that are keen to see if they can still continue to use their good old devices.) I thought here’s what I am going to do: I will trust Apple to decide, if the 4S is good for the new OS, and update my phone. The understanding is implicit: if they break that trust, they’ll lose me.

iOS 8.0.2: I notice the system-wide text size setting has improved quite a bit over 7.1.2 — helps my readability, in Mail in particular, which is nice. Word suggestion too, which is something I could get used to. The keyboard limits the screen size to one to two lines at most while I do, but it’s not an issue. Siri seems to have some glitches, but it’s not my immediate concern; I’m sure they’ll fix it.

As for the latest products, I am one of those for whom none of Apple’s offerings this September were worth the notice. (I did watch the generally nice recording of the event out of curiosity, and promptly removed Apple’s free U2 offering from my music library after; sorry, I’m not a fan.) The bigger phones are too big, and I like my wrists free. If Apple does not return next year with a newer or refurbished 4” model, then I’ll just keep using my 4S for as long as it works, before bidding goodbye to Apple’s phones.

September 27, 2014

URL + title with TextExpander

I love the fact that Markdown does not force me to have links inline, thereby keeping it clean and very much readable as a plain text file. Whenever I create a link, I’d also like to include its title text more often than I actually do. This is because doing it manually is an extra step, and when words are flowing, there is no time to pause. But it does not have to be this way, and I realized TextExpander can handle this well; it’s just that I need to break it down into a couple of Applescript snippets, before calling them both in a third plain text snippet. Here’s how:

Applescript snippet 1 ;u1:

tell application "Safari" to get the URL of the front document

Applescript snippet 2 ;u2:

tell application "Safari" to get the name of front document

Plain text snippet 3 ;uri, which calls both these above in Markdown format:

%snippet:;u1% "%snippet:;u2%"

When I hit ;uri, I get the URL of the link, followed by its title in quotes.

September 21, 2014

Optimizing external font request

I use four external fonts for this site. (See Colophon.) Three functionally, with the fourth limited only to serving a small subset of English letters in caps. Given my specific need, loading the fourth seemed like an excess, and I began looking to find a way to reduce its footprint. Engineers at Google Fonts, as it happens, have already thought through this problem. I learned this from Dr. Levien, whose beautiful font, Inconsolata, which uses polynomial spirals, is one of those four I use.

The fourth font is used only for titles and navigation links on the page, so to avoid repeating characters, I wrote a tiny script to generate my list of unique characters:

#!/usr/bin/env python
# encoding: utf-8
"""
unique-letters.py

Finds unique set of letters in a sentence. Helps me minimize 
external font overhead: http://goo.gl/9unwL .

Created by ckunte on 2014-09-16.
"""

def main():
    x = "I AM CHYETANYA KUNTE THIS IS A PERSONAL LOG ARCHIVE HOME COLOPHON"
    print "".join(list(set(x)))
    pass

if __name__ == '__main__':
    main()

x in the above is the list of words I use, which I’d like my forth external font to display. Instead of filtering it manually, the above script reads it and print a unique string of non-repeating characters out.

$ python unique-letters.py 
A CEGIHKMLONPSRUTVY

Using the list above, I construct the URL to import in to my CSS, as below, thereby limiting font-character overhead in site’s load times.

@import url(http://fonts.googleapis.com/css?family=Lato:400,900&text=ACEGIHKMLONPSRUTVY);

It’s not clear from the article, and I haven’t tested to see, if the above method is case sensitive.