For No One

RSS
littlebigdetails:

iA Writer - When selecting a chunk of text, the stats at the bottom change to reflect the selection, and appear selected themselves.

Nice touch. Great idea to style the footer that way also.

littlebigdetails:

iA Writer - When selecting a chunk of text, the stats at the bottom change to reflect the selection, and appear selected themselves.

Nice touch. Great idea to style the footer that way also.

➩ Steven Seagal might be joining THE EXPENDABLES 3!!

If Seagal does end up in The Expendables 3, I guarantee at least one ponytail joke (probably more).

➩ App Store Trials

Amy Worrall:

I’m going to add my voice to those calling for trials of App Store apps. Here’s how I could see it working: Developers can choose whether to allow a trial of 1, 7 or 30 days, or to disallow trials…

I think her plan makes sense, but I have one question/suggestion about this part:

Once a trial is used up, you can’t get a trial of that app again on the same Apple ID.

What about after the app gets an update? Say you try out Photoshop, but it’s missing one feature you desperately crave (automatic LOLcat-style captions, naturally). You want to hold out until they add that feature. Years pass, and they add it, so you want to check their implementation (does the font they chose do your wit justice?). If you can’t try it out again, after a certain amount of time, or after a certain number of updates, that makes trials a lot less useful.

(via Daring Fireball)

May 3

Running AppleScripts from Automator

These days, I’ve been using Automator more and more to run AppleScripts (especially since Mountain Lion came out and disallowed Calendar, née iCal, from triggering AppleScripts directly: http://apple.stackexchange.com/questions/59257/ical-no-longer-runs-scripts).

I began copying and pasting scripts into my workflows, which is a messy solution. I kept the scripts around, because it’s easier to write and debug them in AppleScript Editor, and especially since I converted them to plaintext scripts and uploaded them to GitHub, it’s very useful to be able to easily diff them, as well.

But there’s a better way. A much better way, in fact. AppleScripts can call other AppleScripts, and this works from within the Run AppleScript workflow action, as well. The full solution looks like this:

on run {input, parameters}
    
    run script file "Macintosh HD:Some Directory On Disk:a cool script.applescript"
    
end run

Doing it that way, the Automator is a simple wrapper – you can set it and forget it. I’ve even confirmed that this works with scripts in the plain text .applescript format and compiled AppleScripts (.scpt).

Update

You can also pass the input and parameters arguments into your scripts from Automator as well. Just use the same on run handler that the Run AppleScript action defaults to (as shown above) in your script file, and pass the arguments from Automator like so:

run script file "path to script like above" with parameters {input, parameters}

➩ Learn CSS Layout

This site teaches the CSS fundamentals that are used in any website’s layout.

I assume you already know what selectors, properties, and values are. And you probably know a thing or two about layout, though it may still be a rage-provoking activity for you. If you want to learn HTML and CSS from the beginning, you should check out this tutorial. Otherwise, let’s see if we can save you some fury on your next project.

An awesome, awesome resource if you understand CSS in broad strokes, but not how the layout details work. I learned something from almost every page.

Apr 9

➩ Wat (Video)

Great short talk that should have any developer rofl’ing.

Hey great script for the transcoding, works like a charm!!! If you were to always encode to ATV3 preset and to the same destination folder, what would need to be modified to not receive prompts and just get to work as soon as you choose the service. On the side what are you using to tag data, any automation for this?

Anonymous

Thanks, I’m glad you find the Automator Service helpful. You can modify it as below to do what you’re asking (it makes it a lot simpler, actually). You set your destination and preset on lines 15 and 16.

on run {input, parameters}
    set handbrakeCli to "/Applications/HandBrakeCLI"
    
    -- Make sure HandBrakeCLI is installed
    set handbrakeInstalled to false
    tell application "Finder" to if exists handbrakeCli as POSIX file then set handbrakeInstalled to true
    if not handbrakeInstalled then
        display alert "Install HandBrake CLI" message "Please install HandBrakeCLI into the /Applications directory
 
The HandBrake CLI can be downloaded at http://handbrake.fr/downloads2.php" as critical
        return
    end if
    
    -- Be sure to include the trailing slash!
    set the destination to POSIX path of "/Volumes/SomeVolume/Encoded/"
    set chosenPreset to "AppleTV 3"
    
    repeat with inputFile in input
        -- Get original file's name
        
        set thePath to POSIX path of inputFile
        set prevTIDs to AppleScript's text item delimiters
        set AppleScript's text item delimiters to "/"
        -- Get the file name
        set inputFileName to (item -1 of (every text item of thePath)) as text
        
        -- Get the file name without an extension
        set AppleScript's text item delimiters to "."
        set inputFileNoExtension to items 1 through -2 of (every text item of inputFileName)
        set AppleScript's text item delimiters to prevTIDs
        
        -- Put back together if file name included periods
        set outputFileName to ""
        repeat with fileNamePart in inputFileNoExtension
            set outputFileName to outputFileName & fileNamePart & "."
        end repeat
        
        -- Put on the preferred extension
        set outputFileName to outputFileName & "m4v"
        
        set handbrakeCommand to "nice " & handbrakeCli & " -i " & quoted form of (POSIX path of inputFile) & " -o " & quoted form of (destination & outputFileName) & " --preset='" & chosenPreset & "'"
        --return handbrakeCommand
        do shell script handbrakeCommand
    end repeat
    return input
end run

To tag the files when I’m done, I use the incredible iFlicks. I used to muck around with MetaX, which is free, but much more of a hassle. iFlicks is even AppleScript-able, so you could add it to the service (maybe I’ll post an update for that at some point).

On purchasing an older iPhone

A relative recently asked me whether he should get an iPhone 4 as his first iPhone, two models behind the iPhone 5, released roughly 6 months ago. I imagine the advice I gave will probably apply to the same question around this time next year, substituting model numbers.

No one knows when the next iPhone will be coming out, but odds are in favor of August or later. I would definitely recommend against the iPhone 4 at this point in time - I had it for 2 years, and it was great when it was new, and is still decent now, but starting to show its age. And when you buy a phone, you’re committing to 2 years of using it. Disregarding the points situation1, an iPhone 4 is free (or maybe $1) when you sign up for a 2-year contract. The iPhone 5 is only $199, which is nothing compared to how much you’re going to be spending on a service plan over the life of the contract.

I’ve owned the 1st-gen iPhone, the 4, and now the 5, always buying them at launch, and have been relieved to upgrade both times. After a couple of years, the older phones start to feel slower. Apps run slower, you start to get constrained by the memory, and you’ll lose support for the latest OS sooner. I would strongly recommend the iPhone 5 if it’s at all possible - the 4G/LTE alone justifies the price difference, not to mention the larger screen, and thinner/lighter design.

I might add, depending on the person, to wait for the next model. If I were ready for a new phone, that’s what I would be doing. I had to wait 2.5 years between iPhone 4 and iPhone 5, because of the change in release cycle they began with the 4S. If I were impatient (or didn’t care about obsolescence), I would have gotten a 4S when my 4’s contract was up.

My upgrade strategy for Apple devices though, is to wait for the next model when I’m ready to upgrade. You guarantee yourself the longest period between product releases you could possibly anticipate. Of course, that doesn’t apply if your phone/computer breaks and you need a new one, but if you’re in a position to do so, I would recommend it. Also, you may be someone who doesn’t care about having the latest and greatest, and every model of iPhone has been great, so you have to make your own decision.


  1. He has reward points from a credit card which can help him get a phone at a discount. 

Mar 1
littlebigdetails:

Gmail - Incompatible versions of Internet Explorer show a damaged envelope as the favicon.
/via Eric Hansz

Very clever, that.

littlebigdetails:

Gmail - Incompatible versions of Internet Explorer show a damaged envelope as the favicon.

/via Eric Hansz

Very clever, that.

Mar 1

I have just read your article "Abolish All Patents". You do make some valid points but I think Patent Law has went seriously off track. I believe the original intent was to foster an atmosphere of creativity. I think the current state of Patent Law is exactly opposite of the original intent. I believe the solution lies in the direction of giving a Patent holder A certain amount of time to produce something under the patent, if nothing is produced the patent is nullified.

Anonymous

It sounds like you essentially advocate a “no squatting” stance. Since patent trolling1 is indeed one of the most problematic symptoms of the current system’s shortcomings, I agree that requiring an implementation of the idea could be part of a useful solution, especially for software patents. And setting an expiration date beyond which there must be an implementation seems compatible with the underlying principles of patent law, as time limits, regardless of whether anything is produced from the patent, have been part of intellectual property law from the beginning (in the US, at least).

As I see it, the biggest problem in trying to set such a limit would be deciding on the term of the limit. If you have too long a period, it will not deter trolls, and if it’s too short, it won’t protect legitimate inventions adequately, as some ideas may take a while to implement, and the longer you wait to patent an idea, the longer your competition has to steal it out from under you and patent it first.

Thanks for reading the post2 and writing back – I enjoy the discourse.


  1. A practice in which someone patents a software idea without ever putting it into a product, but then uses the patent as a land mine for legitimate software to trip over, often many years later, after the idea has become obvious and commonplace 

  2. For anyone who hasn’t read it yet, the title reads “Abolish All Patents?” and goes on to answer that rhetorical question with an emphatic “No!”