December 2009
29 posts
Xcode Plugins and Minimal Invasiveness
Stephen Ryner, Jr. / @amarshwren:
Xcode + git = http://bit.ly/GTMXcodePlugin to remove trailing whitespace (adds “Correct Whitespace On Save” option to preference pane.)
It appears Google’s Xcode plugin uses the same basic architecture as Xmo’d — a minimal Objective-C side to hook up a user interface and register some callbacks by swizzling interesting methods,...
Mandatory Internet Filters and Opportunistic...
I just learned Australia is going ahead with a plan to mandate national internet filtering.
Martin Pilkington tells me such a thing is already active in the UK:
@rentzsch The UK already has something like this for child pornography. Nobody knew about it until it accidentally blocked the wrong site
I can’t help but think this is a good thing.
The more sites gets blocked, the more...
AT&T: It's 2010. Do you know where your tethering...
Tom Harrington / @atomicbird:
Remember when AT&T promised to offer iPhone tethering by the end of 2009? Yeah, that was cool.
Yeah, it was.
Tethering is sole reason I’m keeping my iPhone on OS 3.0.1 — Apple fixed the hole in 3.1 that allowed tethering even on AT&T’s network.
I don’t use tethering a lot, but it’s incredibly handy when I do, and gives...
Version Numbers Becoming Antiquated
Steve Dekorte / @stevedekorte:
Given the reality of continuous development and internet distribution, are software “releases” much more than marketing gimmicks?
Nice thought. Do you use delicious v6.5.3? No, you just use delicious.com.
Version numbers are handy for developers, so they won’t ever go away.
But I expect version numbers to loose their current end-user...
No One Left
Michael Getler (via John Gruber):
Last Friday evening, Dec. 4, was the final broadcast of what has been known for many years as The NewsHour with Jim Lehrer. The following Monday, Dec. 7, the new-look version of the venerable, one-hour, weekday nights, news broadcast made its debut as the PBS NewsHour. Lehrer was still in the anchor chair but his name was gone from the logo and some things had...
Accenture Dropping Tiger Woods
I’m sorry to hear Accenture has terminated Woods’ contract.
I always thought Accenture’s use of Tiger Woods as a spokesperson was spot-on. Their ads spoke nothing about progress, invention, discovery or humanity.
It was pure shallow celebrity-worship targeted at those who manage what they don’t understand.
It was beautiful: an ongoing national multimillion dollar...
NSConference 2010
I’ll be speaking at both NSConference UK (near Reading) and NSConference US (in Atlanta).
My topic is “Spelunking OS X”:
Mac OS X isn’t just a sealed bucket of bits you receive on shiny optical discs — under the hood is software just like you and I write (just lots more of it). It’s beholden to the same laws of software-physics as you and I must obey....
BusyCal 1.1 Review
@violasong and I have upgraded from iCal+BusySync to BusyCal. My review:
The good:
Scroll by Weeks. Traditional monthly calendar views suffer from the problem where less and less of your calendar view is useful as the month progresses. The worst-case comes on the last day of the month, where only ~1/30th of your month’s display is usefully editable.
Compounding the problem is having...
Auto-Archive Hazel Rule
Last time I raved about Hazel, I included a custom AppleScript with a custom AppleScript extension that achieved my goal of auto-archiving things on my Desktop and Downloads folder that I haven’t looked at in a week.
Chief Noodler Paul Kim himself tossed me an email alerting me to the fact that Hazel has grown sufficiently powerful that I don’t need to run my custom script+extension...
Work Dilation
Andy Matuschak:
When John was just a little professor, his mother noticed him spending many hours toiling inefficiently on his homework, so she enacted an unorthodox restriction: he could only work for one hour a night.
John naturally thought his mother had become tyrannically anti-educational, and he struggled to finish his work in the time allotted. But he got more and more done each...
4 tags
Apple's Myriad JavaScript Frameworks
Try as they might to project a monolith image, there isn’t one Apple — there’s multiple silos each containing multiple teams.
Some of these teams interact with web technologies, and end up building frameworks to assist in development. Here’s a run-down of Apple’s many JavaScript frameworks, some public, some not:
SproutCore is used by the MobileMe team. Publicly...
2 tags
BBEdit Script: Set Tab Width to Widest Cell
Often I’ll have textual data in columnar (tab-delimited) form.
For serious manipulation, I’ll eventually copy and paste it to a spreadsheet and work with it there, but usually I don’t need to go that far.
I’ve been using this BBEdit AppleScript for years that greatly eases viewing and editing tabular data:
-- Get the input.
tell application "BBEdit"
set input to...
Hints for Spelling My Last Name
Marko Karppinen / @markonen:
So the current discussion at our office: the tricks each of us uses to remember how @rentzsch is spelled.
In the first grade, I didn’t know how to spell my last name.
I knew to start with “R-e-n” but it quickly went downhill from there.
When pressed (on things like written tests), I would start with “R-e-n” and then dynamically...
1 tag
RISC : CISC :: Objective-C : Java?
I was sold on RISC, mostly because of transistor budget economics.
Every generation of processors have a ceiling in terms of how many transistors they can fit on a die. RISC, being a more efficient architecture sans legacy cruft, in theory could always out-perform CISC given the same budget.
We know how that turned out — I’m typing this on an x86 CISC Mac.
I still think the...
1 tag
Apps I Love: Hazel
My desktop is clear again, and I didn’t have to lift a finger thanks to Hazel.
I have a script that auto-archives all items on my Desktop and Download folders that I haven’t looked at for a week.
Above is the selection criteria I use to tell Hazel when to fire my script. My script is:
on run
tell application "Finder"
set victimList to (selection as list)
...
GitHub and Tracking Open Source Licenses
I think GitHub is in a great position to revolutionize open source with regard to license management.
I’d love to see GitHub allow me to optionally declare the license of a public repository.
Then, licenses could follow forks and GitHub could even track and store click-wrapped copyright releases that are “signed” in your pull requests.
I can imagine a scenario where GPLv2...
1 tag
ClickToFlash 1.6b5
What’s new:
[NEW] Explicit Vimeo support: watch and download H.264 versions of Vimeo videos without loading their Flash player. (Sven-S. Porst)
[NEW] Poster frame of YouTube and Vimeo videos are loaded in lieu of the default gray-gradient background when H.264 support is enabled. (Sven-S. Porst)
[NEW] Whitelist now applies to entire URL rather than host. This allows things like...
1 tag
App Store Unintended Consequences
People think up and enforce Rules to suppress undesirable outcomes. What tends to be over-looked is that no filter is perfect, and all filters catch otherwise-desired outcomes as well.
In the case of Apple’s App Store, their “no private APIs” rule — intended to protect users and enhance stability — means delayed and altogether-blocked innovation:
Ken Aspeslagh /...
1 tag
Things I've Been Wrong About: Unix on the Desktop
I remember reading articles in the early 1990s laughing at articles from the 1980s predicting Unix would take over the desktop.
I subscribed to these thoughts, mostly out of ignorance.
Knowing then what I know now, I would have merely prayed it wouldn’t come to pass.
(Hint: I’m not a Unix fan.)
Repeat lesson learned: consider Moore’s Law before writing-off an idea or...
1 tag
Chrome OS App Store
Cringely writes:
Google will make tons of money from its app store. Remember that unapproved applications won’t be able to run on the Chrome OS and the best (maybe only) way to find approved apps will be through a Google store as pioneered by Apple with iTunes. This wasn’t lost on Eric Schmidt during his days on the Apple board. Through such an app store, Google will get a percentage of all...
Anti-employee
Robert Reich’s Blog: Worrisome Thoughts on the Way to the Jobs Summit:
Under the pressure of this awful recession, many companies have found ways to cut their payrolls for good. They’ve discovered that new software and computer technologies have made workers in Asia and Latin America just about as productive as Americans, and that the Internet allows far more work to be efficiently...
Google Public DNS
Google Code Blog: Introducing Google Public DNS: A new DNS resolver from Google:
Today, as part of our efforts to make the web faster, we are announcing Google Public DNS, a new experimental public DNS resolver.
I think it’s a great service, and I plan to use it under DNS duress.
But I also share Justin Miller’s wariness:
They might mean well, but having Google do...
2 tags
iTunes Script: Delete Played Podcast Episodes
I burn through a lot of podcasts at the gym, and tend to listen to them out-of-order. With 32 subscriptions, I develop a lot of plaque in the form of listened-to podcast episodes.
This AppleScript deletes all played episodes and their associated files in one fell swoop:
tell application "iTunes"
set librarySource to item 1 of (every source whose kind is library)
set podcastPlaylist to...
Disable and Recover from Mac OS X's Quarantine
Someone tweeted:
Does anyone have a service (Automator??) that removes the xattr quarantine flag from selected files and folders? I realize the danger….
While I tweeted my response, I wanted to get this information out to a wider audience.
Here’s how to put to sleep Mac OS X’s Quarantine yapping-dog.
First, slice off the head of the beast. Ken Aspeslagh taught me this...
Secure Delete, Time Machine and Windows Volume...
What you should know about Volume Shadow Copy/System Restore in Windows 7 & Vista « Trying To Be Helpful:
IS THERE A WAY TO SECURELY DELETE A FILE ON A VOLUME PROTECTED BY VSC?
No. Shadow copies are read-only, so there is no way to delete a file from all the shadow copies.
(via Bruce Schneier)
Windows Volume Shadow Copy is very different from Time Machine (Time Machine is a...
JRFeedbackProvider 1.7
What’s new:
[FIX] Posting Form to Rails fixed. (Mantas Masalskis)
[CHANGE] Update SCNetworkCheckReachabilityByName (deprecated in 10.6) to SCNetworkReachabilityCreateWithName+SCNetworkReachabilityGetFlags. ticket 11 (Justin Williams)
[DEV] Explicitly set GCC_VERSION to 4.0 in demo app to compile under 10.6 (still targeting 10.4). (rentzsch)
I’m worried Mantas’ removal of...
-objectAtIndex: in Cocoa Uncanny Valley
Objective-C:
NSLog(@"%@", [[NSArray arrayWithObjects:@"a",@"b",nil] objectAtIndex:-1]);
// => NSRangeException: *** -[NSCFArray objectAtIndex:]: index (-1 (or possibly larger)) beyond bounds (2)
Bit-pattern-wise, (int32_t)-1 == (uint32_t)0xFFFFFFFF, so that innocent-but-invalid -1 gets interpreted as ULONG_MAX.
ULONG_MAX is waaaay outside the bounds of our 2-element array, so an invalid...
2 tags
Mail.app Script: Move Selected Message to Read...
I guess I’ve never publicly mentioned it, but I use this script for Mail.app extensively:
tell application "Mail"
set nextSelectedMessageID to missing value
set selectedMessages to the selection
if (count of selectedMessages) = 1 then
set selectedMessageID to id of item 1 of selectedMessages
-- Find the selected message's position in the list.
set...
Passport'd
Yesterday my passport arrived.
Big deal, right? Just a renewal, right?
No, it was my first passport. Something I’ve been on-again-off-again (mostly off-again) trying to acquire for the last oh twenty years.
The “problem” was that I was born at home. Usually not a problem, except my mother also didn’t file for a birth certificate.
So I’m a Man Without A Past....