Surtainly Not

Eighteen hours later, I'm here to write about the dumb, little toy of an app I made this morning just for Big Sur. I honestly don't expect other people to use it. I'm not even sure if I'll keep using it. It was more of a "I hate this. I wonder if I can fix it?" type of thing.

Read More »


Shelley

I've written previously about using Hazel on macOS to react to a new file appearing in a synced iCloud Drive folder and running commands. But I wanted a faster solution that I could trigger from almost anywhere - including an iOS Shortcut. A way to send a command directly from my phone (or maybe any other device?) to my Mac.

What I came up with is a tiny, macOS menu bar app I call Shelley - because as a friend told me, it's a Frankenstein of a hack.

Read More »


Merging and Deduplicating a Whole Lot of Google Photos

The point of this blog post is to say that I’m preparing for an eventual move to another photo cloud service. I’m also trying to keep my local backups neatly organized. So, I wrote a small command-line tool to specifically deal with the Google Photos backup format that you’ll receive if you request a dump of your data.

It takes Google’s directory structure and all their duplicated files, merges, sorts, and deduplicates your photos and videos into a sane folder structure - the one I’ve been using for over a decade.

Read More »


BespokeApp

I really don't know if anyone has a need for this other than me. But I've built this app a few times for myself in the past, so last night I finally took the initiative to make it generic and reusable - both for my future self and anyone else who might find it useful.

It’s called BespokeApp. It’s a simple iOS app that gives you a tabbed web browser with the pre-defined websites of your choosing.

Read More »


Fastmail Wrapper for macOS

I keep looking through my archives of old, private coding projects - the ones that I built just for myself to solve a particular need - to see if I can find any that other folks might find useful. So, here’s another one I spent a few hours cleaning up recently.

It's a native macOS app (wrapper) around the fastmail.com website that supports:

  • Multiple Fastmail accounts.
  • Native macOS notifications (and sounds).
  • Customizable Dock icon badges.
  • Keyboard shortcuts (⌘1 - ⌘9) to quickly open specific accounts.

Read More »


Roland is a Static Website Generator Written in Swift

If there's one thing I'm good at, it's reinventing wheels. So here's Roland - an open source, blog-aware, static website generator written in Swift that also uses PHP under the hood because PHP is still the best template language.

Read More »


DefaultApp

DefaultApp is an open source starting point – a template. I maintained it in Objective-C for over a decade before finally porting it to Swift in 2018. Anytime I start a new app – big or small, whether or not it’s something I plan on releasing publicly or if it’s just a small prototype or utility app I’m building for myself – I start with this project.

With DefaultApp I can go from initial idea to writing actual code in thirty seconds.

That said, I would't use this as the basis for a billion dollar corporation’s enterprise app. Or with a team of “100 engineers” “solving hard problems”. But if you’re a one-person development shop or a team of just two or three engineers building a typical macOS shoebox or document based app? Please take a look.

Read More »


Deactivated

I’m filled with rage and despair and also just sad thinking about what we in the tech industry unintentionally unleashed upon the world – and then willfully made worse through greed and arrogance. This is my small contribution to make things better. It likely won’t matter. But it does give me some relief to have done something. Anything.

Read More »


Triage Your Email in the Car with Siri

With this script, Siri will speak a summary of your unread emails and then allow you to take action on each individual message. You can listen to the full email body. Or, you can archive, delete, mark as spam, mark as read or unread, and send a reply.

Read More »


How to Import Your Pinboard Bookmarks Into DEVONthink and Convert Them to Searchable Web Archives

Pinboard is a web-based bookmarking service that can optionally crawl the websites you save and store a complete copy of how they appeared at that time. Because Pinboard is a good web citizen, they allow you to request an archive of all of your bookmarks and their saved contents as a...

Read More »


Backing Up Everything (Again)

This will take a while. Bear with me. I'm obsessive about backing up my data. I don't want to take the chance of ever losing anything important. But that doesn't mean I'm a data hoarder. I like to think I'm pragmatic about it. And I don't trust anyone else to do...

Read More »


A Simple, Open-Source URL Shortener

tl;dr One evening last week, I built pretty much the simplest URL shortening service possible. It's simple, fast, opinionated, keeps track of click-thru stats, and does everything I need. It's all self-contained in a single PHP script (and .htaccess file). No dependencies, no frameworks to install, etc. Just upload the...

Read More »


Categories
PHP Open Source

Rockwell - Sort of like a private Foursquare meets Fire Eagle

Back in 2008, when I worked for Yahoo!, I had the good fortune of chatting with Tom Coates a few times about the now defunct Fire Eagle location brokerage service. Fire Eagle was my absolute favorite product to come out of Yahoo! during my time there. I've always been fascinated...

Read More »


Switching from GitHub to GitLab

I've been a happy paying customer of GitHub since early 2009. But yesterday, for a few different reasons, I deleted all of my private repositories and moved them over to a self-hosted installation of GitLab. I didn't make that decision lightly, as I've been very happy with GitHub for the...

Read More »


Nostalgia - Rename Your Photos

I have a problem. Half of my photos come from my iPhone (via the Dropbox uploader), which creates filenames based on the date they were taken. But all the photos from my awesome DSLR are named BLAHBLAH_7001.jpg and BLAHBLAH_7002.jpg. That annoys me. I want all of my filenames to be...

Read More »


PebbleCam

My Pebble arrived last week and I've been geeking out over it ever since. I've been thinking a lot about wearable tech the last few years and signed up immediately when Pebble was first announced last year. (I can't wait to see what Apple can do in this space.) So with...

Read More »


Categories
Hacks Open Source

Search Mac and iOS Documentation From Chrome's Omnibox

Earlier this week, the Chromium Blog announced an official extension API for Chrome's omnibox (search bar). I've always loved keyboard driven interfaces — the command line, [Quicksilver](http://en.wikipedia.org/wiki/Quicksilver_(software)), Alfred, etc — so, I immediately started thinking about what I could build with it. My first idea was a documentation browser for Apple's...

Read More »


Sosumi for Mac - Find Your iPhone From Your Deskop

Every holiday, between the food and family, I always seem to find time for a quick project. Last year I built the first version of Nottingham over the Thanksgiving break. This year was no exception, and I found myself putting the final touches on Sosumi for Mac after an...

Read More »


Automatically Compressing Your Amazon S3 Images Using Yahoo!'s Smush.it Service

I'm totally obsessed with web site performance. It's one of those nerd niches that really appeal to me. I've blogged a few times previously on the topic. Two years ago, (has it really been that long?) I talked about my experiences rebuilding this site following the best practices of YSlow....

Read More »


Open Source Updates

On this lazy Sunday afternoon I thought I'd take the opportunity to mention a few open source projects I've recently updated. GitHub makes sharing code so ridiculously easy, it's a shame not to call attention to it occasionally in case other people might find something useful. Sosumi 2.0 First up is Sosumi...

Read More »


Categories
PHP Open Source

OpenFeedback Part Deux

A year and a half ago I wrote about OpenFeedback, an open source Cocoa framework for gathering feedback from your users. Initially, it was a sister project to Appcaster, my indie dashboard web app. Since then, Appcaster has grown up and morphed into Shine, but OpenFeedback remained unchanged. Tonight, though,...

Read More »


Shine - An Indie Mac Dashboard

Two years ago, shortly after I released VirtualHostX 1.0, I wrote about Appcaster - a web dashboard for Mac developers I built that manages my application updates, payment processing, etc. With the release of VHX 2.0 and Incoming!, I decided it was time to rewrite Appcaster as the original code...

Read More »


Sosumi - A MobileMe Scraper

Sosumi is a PHP script that scrapes MobileMe and exposes Apple's Find My iPhone functionality to the command line or your own web application. This lets you pull your phone's current location and push messages and alarms to the device. Like my previous blog post that dealt with AT&T's Family Map...

Read More »


Categories
Hacks PHP Open Source

Google Voice Dialer

Last year I posted...

Read More »


Categories
Hacks PHP Open Source

YUI App Theme

Tonight I pushed a new project to GitHub called yui-app-theme. It's a generic, skinnable layout designed for web applications — particularly admin areas — built using YUI Grids. In other words, it's a starting point. Usually when doing freelance work for clients, unless you're building on top of an existing CMS like...

Read More »


Categories
Open Source

PHP Wrapper for Yahoo! GeoPlanet

Earlier this month I wrote a quick PHP wrapper for Yahoo!'s GeoPlanet API. It's a super useful service for querying geographical information about nearly any place on earth — addresses, landmarks, colloquial locations, etc. Or, as the official description says GeoPlanet helps bridge the gap between the real and virtual worlds...

Read More »


Categories
PHP Yahoo! Open Source

Serving Static Content on Amazon S3 with s3up

I've written twice about using Amazon S3 to host your website's static content. It's a great solution for small websites without access to a real content delivery network. And now that Amazon has launched CloudFront on top of S3, it's even better. But there are still ways we can improve the...

Read More »


Amazon S3 Improvements in PHP-AWS

Two and a half years ago I began working with Amazon Web Services — first with S3 and then SQS and EC2. The code was eventually cleaned up and released as an open source project called PHP-AWS. Since then, it has remained relatively unchanged. Just bug fixes and the occasional...

Read More »


Parse Command Line Arguments in PHP

This afternoon I needed an easy way to upload files to Amazon S3 and set specific headers on them. I've built one-off scripts like this in the past, but this time I wanted to generalize the problem into a reusable shell command. I pulled in some code from PHP-AWS and got...

Read More »


Categories
PHP Open Source

Dial a Phone Number Using Grand Central and PHP

If you're lucky enough to have a Grand Central account, here's a quick PHP class that will login to your account and dial a phone number. This is probably one of the more random bits of code I've ever written, but I think it's useful. <?PHP $gc =...

Read More »


Introducing Appcaster + OpenFeedback

Today I'm proud to announce the release of two new open source projects: Appcaster and OpenFeedback. I've been working on them off and on for over nine months, so I'm very excited to finally see them out the door. Appcaster, which I've written about before, is a web-based dashboard for indie...

Read More »


Holy Crap! Mint Plugin

Here's a quick Pepper plugin called Holy Crap! I wrote for Shaun Inman's Mint software. The idea is simple: it sends you an email alert whenever it detects your site has become popular on del.icio.us, Digg, etc. Think of it as an early warning system. It's easy to add your own...

Read More »


Categories
PHP Open Source