Clipboard automation with Slack, Automator, and AppleScript.

Several weeks ago I wrote about using a personal Slack team for notifications and other personal info. Since then, I’ve continued to experiment with adding channels and connecting services, trying to find the right mix of utility and centralized information gathering for me.

One of the things I really love is using a #clipboard channel, which allows me to instantly synchronize anything between my Mac and iOS devices. Some people use Slackbot for this, and yes, you could also use AirDrop or any of the myriad clipboard syncing apps, but I’ve tried almost all of them, and they all disappoint in some way. Nothing beats Slack for sheer speed and reliability in this arena, believe it or not.

Given that I’m always looking for ways to waste time streamline workflows for maximum productivity power ups, I was curious to know if I could make the copying of text (my main use case) faster within this process. I asked the following question:

and was met with a chasm of silence. And a few people who wanted me to let them know if I figured out a way to do it.

Slack’s Mac app is essentially a web wrapper for the site itself. Which isn’t a horrible thing, but does make for some less-than-stellar integration points. It’s actually easier to automate this kind of thing on iOS, believe it or not, due to the extension system provided to developers beginning with iOS 8. But I had a little time this weekend and was determined to figure it out, so I decided to get my hands dirty with Automator like any other rational person. I was able to get highlighted input text copied to the clipboard and sent to the right channel on the web easily, but that meant I needed to open a web page every time and wait for it to load… like an animal. So I began thinking about UI scripting and decided to try it with the Mac app using AppleScript.

I will admit this right now: I’ve never really used AppleScript before, and I’ve used Automator only peripherally over the years, so the result of this little experiment is a bit of a dumpster fire. But it actually does what I want it to, which is kind of cool.

First, I needed to understand at least basic AS stuff. I did a little reading and managed to get a handle on it fairly quickly. It’s quite a bit of fun, and I’m actually sorry I waited this long to play with it. Once I felt comfortable, I put together as much as I could in Automator to get the app focused and ready. Then I began assembling the script. In order to really win, once Automator launched the app, it needed to do the following:

  • from whatever team I last left the app in, switch to my personal team (Cmd-1)
  • activate the quick launch dialogue (Cmd-K)
  • enter “cl” to highlight my #clipboard channel
  • simulate a press of the return/enter key
  • paste the text into the field (Cmd-V)
  • simulate another press of the return/enter key
  • switch back to the app I was working in (Cmd-Tab)

All of this is totally possible, and not even that hard in AS. I found this awesome app that displays the key codes and other info for keys as you press them, so I was able to keep the script a little bit tidier. The tricky part–the part that drove me nuts and took me the longest to figure out because it wasn’t instantly apparent–was that I needed to build tiny delays into the script to allow the Slack app to catch up to the simulated inputs. I added a few tenths of a second between the steps in the script, and the result was that the app looked like I was just typing super fast, pasting, and tabbing back to the previous app, as opposed to just farting out the failed alert sound your computer makes when you do a thing it doesn’t want you to (which happened a lot as I was tripping through figuring this out). The finished result looks like this (seasoned AS users, avert your gaze; don’t look upon this atrocity):

tell application "System Events"
key code 18 using command down
delay 0.3
key code 40 using command down
delay 0.5
keystroke "cl"
delay 0.3
key code 36
delay 0.3
key code 9 using command down
delay 0.3
key code 36
end tell

Like I said, not the prettiest piece of work. A second smaller AS block just handles the Cmd-Tab after this is done. But it works, and I’m pleased as punch that it does. I mapped a keyboard shortcut to the Services menu entry in System Preferences, so now I can highlight text with my right hand, and with my left, hit a key combo and instantly run the action, returning to the current app in about 3 seconds. And the pasted snippet is available on all my devices, instantly.

So yeah. There you go. Waste of time? Probably. Useful? Actually, yeah, very. And I learned a little something. So let’s just move on.

Using Slack as a personal information center.

At this point, we can probably all just admit that Slack wins all the things. It’s an absolutely fantastic tool, with great support and constant updates, and it just seems like it’s headed in all the right directions for almost every kind of user. Sure, there are things we’d all like to see changed (managing teams if you’re on more than a few is still insane), but the consensus is that we love it and it’s great, and I’d agree, so let’s just keep going.

I’ve been making changes to the way I use my devices and think about apps in the past few months, and a large part of that process has been looking at what apps I do use or must use, and don’t want to do without. Put differently, how can I do more with the apps I am using already, as opposed to adding other single-use apps to my devices? Drafts is a good example of this–it’s a single, simple jumping off point for so many text actions and much more on iOS and beyond. Slack has quickly become one of those apps for me–a “must install” on any device. So since it’s always going to be there, I decided to start thinking about it in a new way.

I read Federico’s post on using Slack as a shared notification layer, and how the MacStories team was piping content into their Slack channels to better inform everyone of things at once. It’s a great idea, since everyone is in there anyway–you can really cut down on miscommunication and make sure people are up to date easily. I wondered if it could work in a similar way for a single user. And how effective would it be? Slack provides many super cool integration points to connect to other services and even more interoperation is coming, which is very exciting, and led to me conducting this experiment. I signed up for a new team (sigh) and set it up with a few key channels, just for me.

I think it’s safe to say that notifications are the most obvious way to extend Slack right out of the gate. I set up an #alerts channel, hooked it up to IFTTT and Twitter. So far, I’ve configured:

  • Updates from our local police department about things going on in town
  • Updates from a few select Twitter accounts for things like system status of services I use
  • Weather forecasts (duh)
  • Updates to saved searches on eBay (for classic video game consoles, et. al.)
  • ESPN updates for baseball game start times (not that I ever have the time to sit down and watch a game, but still)
  • Surf height changes past a certain threshold at my preferred spot (yes, we surf in NJ, deal with it)

I also decided to break out a separate channel for Zendesk tickets that might show up. I thought it made sense to get them within Slack as well, but didn’t want them to get lost in a stream of personal stuff.

Of course, notifications can be an issue themselves, so I made sure to only allow Slack to tell me about the stuff I want to know about as it changes. Basically, this #alerts channel is (based on the sources) fairly low-volume despite all the crap I stuffed in there, so it’s not constantly pinging me all day long, which of course is an entirely different discussion about mental attention and prioritizing information delivery. Some other time, perhaps.

Beyond notifications, I’m thinking of other ways to get inventive with pulling data into a single, unified space.

Slack has an RSS integration. Now, if you’re still reading a thousand sites a day in a dedicated reader, this would be a terrible idea for you. But, if like me, you only read a few sites a day, you can give this a spin. I created an #rss channel, added the dozen or so sites I follow into the integration, and was done. I now have a little feed reader built right into Slack, which even tells me when new posts have come in since I last checked it, thanks to the built-in read status feature.

Extending this further, I created a #readlater channel, where I can dump links that I might want to follow up on. Again, if you’re high volume, forget it, but for a handful of things here and there, it’s a neat idea. And this might not necessarily be articles I want to read, but a scratchpad for links that don’t really fit in a traditional read later app, or necessarily need to become an OmniFocus task–stuff I can come back to whenever, with no implicit priority assigned.

Next, I figured I’d try something different. I generally don’t read or follow the news, because in most cases, it just makes me upset for a variety of reasons. But I decided to try a #news channel, with some parameters set within IFTTT actions. I added Entertainment Weekly, Time, NPR, and the New York Times actions with modifiers for how popular any given story might be, or from certain sections of those publications. So it’s not a firehose of all the things those areas publish, but a few links here and there throughout the day. The jury is still out on whether or not I even like this, but it’s working pretty well.

I also added IFTTT actions to this channel for Wikipedia’s article of the day, and Vimeo Staff Picks, just to add a little more variety into the mix. I think if I consider the sources a little more, and choose a few keys sites I don’t read all of, but like little blips from occasionally, this could be pretty fun.

Finally, I created #clipboard which allows me to paste text, images, links, etc. between iOS and the Mac. Again–yes, there are a thousand dedicated clipboard syncing apps, and you can use AirDrop blah blah–you know what? Slack’s always on and it’s fast, and it works.

Since it’s just me posting into all of these channels, and I’m on a free plan, it’ll be a while before I hit the 10,000 message archive limit, which means up until that point, I can also search against my channels to see something historically that I may have added weeks ago and want to return to for any reason. Certainly I can also delete messages as I go, keeping my channels clean each time I return to them, processing them like little inboxes. This may sound like anathema to some of you (another inbox? HERESY) but don’t forget–it’s just you in here. You control the flow of info.

I haven’t even begun to scratch the surface here. Slack’s hit on something really terrific that so many apps fall short on: make something useful, and make it super fun. If you’re doing anything cool I might like to try with your Slack channels, by all means, let me know.

Private APIs aren’t open to interpretation.

There are a lot of political injustices imposed on people around the world every day. Suffering is nearly limitless, and horrible problems erode basic human needs and rights almost everywhere. Developers misusing a service’s APIs and then being shocked when their behaviors are called out is not among these injustices.

Ars has a story about a kid who built an app to upload photos to Instagram being “threatened” to take it down. At first glance, a lot of us that don’t work in the corporate world or for a large company see this and would probably think, “Man, that sucks. Boo, Instagram.” The problem is that Instagram’s API has never allowed for uploading to the service. That’s why you could only ever use the main app to send pictures in. Caleb Benn decided that when he saw all the other Mac apps that didn’t have this functionality, he had a market opportunity on which to capitalize.

As a developer, he had enough savvy to hook into the service and build and release a functional Mac app. But whether out of naiveté, ignorance, or disregard, he decided to use a private API to do something the service didn’t permit. The story on Ars positions him as a pawn entangled in a corporate maneuver to oppress independent developers. It talks about how he’s headed off to UC Berkeley to study CS, and he was just solving a problem.

If you read the API terms of use, it doesn’t explicitly say you can’t upload, which may be the problem. But any developer who sees over a dozen apps for a photo service that all don’t do what seems to be the obvious thing they need to do has to then ask “why is that?” and be prepared to do a little digging, and potentially not like the answer. That the company came after him is unsurprising, and well within its rights. That he’s disappointed with this outcome is within his rights. It’s a lesson. That it’s being picked up as a David and Goliath story is bad journalism.

The EFF is now weighing in on this, which really saddens me.

The Electronic Frontier Foundation’s “Coders’ Rights Project” suggests that Benn might be within his legal rights to make the app.

“According Instagram’s [sic] website, reverse engineering the API is indeed a violation of the terms of use,” Corynne McSherry, the legal director at the Electronic Frontier Foundation, told Ars in an e-mail. “That said, the general terms of use refer in turn to an API ‘license.’ Whether or not an API is copyrightable expression as opposed to a method of operation, is by no means a settled question.”

“It’s shameful that Instagram is trying to use its its [sic] terms of service to impede users’ fair use rights and stifle add-on innovation,” she added.

The EFF has many, many, MANY better battles to fight around the world. That it’s deciding to spend its resources re-interpreting the language of an API optionally provided by a service that does not need to do it at all is troubling.

Believe me, in 99% of these matters, I’m almost always in favor of the little guy getting a shot to do something. But this is either a) careless development and unfortunate overall, or b) a calculated stunt by a smart kid who wanted some attention. It’s not political oppression, and it’s not worth the EFF’s time. It’s business, and it’s totally reasonable, although maybe not what you’d want.

Life isn’t always what we want it to be.

Siri, SMS, IFTTT, and Todoist.

When a lot of us started checking out Todoist after Federico’s comprehensive review, one of the things I noticed I’d be giving up was the Siri integration that I’d come to rely on with OmniFocus. OF has a nice feature where it would watch your Reminders for things you added, presumably using Siri, and pull them into your inbox within the app. Todoist is insanely flexible in so many ways, but there’s not currently a direct parallel for this feature.

I started looking to IFTTT for a solution to this. I noticed some recipes that attempt to do the same thing, as IFTTT can monitor your iOS Reminders as well. But since it needs to occasionally be brought up from the background, if you don’t jump into the app regularly, the reminders may never show up. Which defeats the purpose of capturing this way.

I had forgotten that IFTTT can process incoming SMS data as a trigger as well as use it as an endpoint. So today I looked into pushing text messages to IFTTT and having them then get redirected to Todoist. Since both services talk to one another directly on the web (one of the most interesting parts of Todoist in my opinion), this actually works incredibly well, and way faster than I’d anticipated.

You’ll need to set up a recipe in the following way:

  • Start with the SMS channel, and choose either the plain incoming SMS option or a tagged one if you prefer (my suggestion would be to keep it simple, since we’re relying on Siri to do the work and you want accuracy).
  • Then choose the Todoist channel (activate it if you haven’t already) and have the task sent to whatever project you like. I always use inbox, as it’s just for general capture anyway.
  • Once the recipe is made, you can tap to edit certain parameters of the Todoist action (priority, task content, due date1, and note for premium subscribers).
  • I created a contact simply called “Inbox” on my iPhone, again to keep things simple for Siri.

So now, I just say: “Send a message to Inbox that says remember to follow up with the team” and Siri parses it as you’d expect, and sends the message2 directly to IFTTT. Seconds later (it’s shockingly fast in my experience) the task is in my Todoist inbox. It’s way faster and more reliable than hoping the IFTTT app is running often enough to pull reminders directly, and since sending text messages is one of those easier Siri things that works more often than it doesn’t, it’s pretty solid.

Todoist’s web core makes it an interesting way to funnel things into your task list. I’m so glad I thought to do this, because it makes that instant capture I was missing totally achievable again.

  1. I noticed one weird thing related to applying due dates to Todoist via IFTTT. I have my Todoist account set to add a reminder notification to any task that has a date and time associated with it. However, while tasks with times were added correctly, the reminder notification was not. I reached out to support about this and was told that this connection probably isn’t currently supported via IFTTT. If you’re just collecting inbox items this way and processing them later, it’s a nonissue. If you edit the recipe to add dates/times however, just be aware of this potential limitation. 
  2. You can do this with Siri and email too, using the subject line as the task item and the body as the note (if you’re a premium subscriber). But I found that since I’m usually only doing the name of the task anyway, as it’s the bit I need to think about and SMS is so fast and easy, it’s preferable to email in this case. 

Direct Searches with Duck Duck Go and Launch Center Pro.

Since the release of iOS 8 and Yosemite, Duck Duck Go has been available as a default search option in Safari. I recently switched over to it for a few weeks as a trial. It’s a cool search engine with a lot of upsides (a strong stance on privacy, cool customization) but in my tests, I found that my results weren’t as accurate as Google’s in almost every case. This weekend while I was searching for information on Transmit’s terrific iOS version, the first two results were about the app, and then I saw a page full of other… things.


Now I’m not signed into Google in this example, so that’s a straight search, not tailoring of results as far as I know. So going forward, I’ll be starting searches there, as the information returned seems to be far more accurate for what I’m looking for in a general case.

But there’s something really cool that Duck Duck Go can do, and it’s extremely valuable and interesting. The search engine has its own syntax that can be used to really get results differently. More importantly, there’s an entire system of bangs that can do direct searches on hundreds of sites, parsing your queries automatically. Needless to say, once you start down this rabbit hole, it’s a lot of fun.

My current application for this is created as a menu in Launch Center Pro. I read through the list of supported sites and created a scrolling list of all the places I could potentially want to search (shopping sites, different search engines, review sites, etc.) which then just asks for text input. The request is then sent to Safari, where the it’s parsed quickly and followed to the site. For instance, if you want to look for “Tron” on Amazon, you would type “!a tron” and you’re sent to the browser, to Amazon, and then a search on Tron is run.

Using Duck Duck Go as the default search on iOS means you can do this right from Spotlight, which is super cool. But I knew I’d forget the bangs, and I wanted it to be faster (and I wanted to revert to Google as my default search) so LCP was the perfect place to put it. Now with one tap, I can visually browse a list that looks like this:

DDG Menu

and immediately jump to results. The list item URL looks like this:


So all you need to do is create a new entry, select “List” from the text input, add this string, and then edit the list item name and specific bang for each site, keeping the rest of the URL intact.

If you know where you want to go, it saves a little time, and it’s really fun. If you’re curious, I’d recommend exploring Duck Duck Go. There’s a lot to like about it.

The hidden potential of

I’ve thought a lot about in the past few months, as many of us have I imagine. What started as discontent with the obnoxious corporate machinations that Twitter’s begun to execute spawned a movement to start something different and user-focused as opposed to focused on marketing. I won’t go into the details, because it’s well-documented in about a million other places, but suffice to say, the project got funded, we got an alpha web app and quickly became a geeky subset of Twitter users both curious to try something new and disenchanted with the current state of things elsewhere.

The launch of Netbot kicked the service into high gear for a while and it saw a huge spike in traffic and activity, proving a point many have made, namely that in today’s tech world, to the user, the application is the service. CEO Dalton Caldwell has even said himself that the ‘out of the box’ experience for new users isn’t terrific, and while they’re working to improve that, apps are paving the way and bringing people into the fold. And we watched as Netbot’s influence stabilized and we’ve seen overall ADN conversations trickle off in our feeds. People went back to Twitter, because the conversation keeps happening there due to a massively entrenched network effect that’s undeniable.

Lots has been said about the potential of ADN, and how it really needs to do something special to continue to grow. It won’t beat Twitter at its own game (admittedly, that’s been stated as not a real targeted objective anyway), but it’s got to do… something.

I’m starting to believe all of what we’ve seen is merely prelude to something more. I’ve been bullish on the service since making the decision to back it and I’ve watched it with great interest. I finally got around to listening to the official ADN podcast a few days ago too, and it’s basically Dalton talking about the API development and answering questions from users. The thing is, in hearing him talk about their progress and plans, I’ve started to realize something – two things, actually.

  1. The Twitter-like feed tool we currently see as “” is but one face – the starting point – of a much larger idea
  2. It’s not just about making that tool better – the long play is to build an extensible communication platform not just for Twitter use cases, but for a myriad other outlets

I’d considered other ways in which the service might become valuable, but I’ll admit, I kept coming up short until I heard him talk about their plans. I thought about how it might be used as an external comment platform for blogs, linking threads and conversations back to a post via the service. I could see that being kind of cool, and I think it would definitely (given the price to enter the service) at least preliminarily solve a part of the “commenting problem”. Users willing to pony up some money to be part of a service like this might be less compelled to be dicks on people’s blogs. It’s a long shot, but you can see where I’m headed.

Listening to the podcasts, though, something else became very clear. The private messaging API is going to be the catalyst behind this entire thing. Dalton described how their focus on releasing a capable first iteration of this aspect of the service took great importance as they worked this past few months. He mentioned the concept of the “internet of things” – all the interconnected devices that are filling our lives with notifications and (in some cases) noise. He talked about the immense success platforms like BlackBerry Messenger and WhatsApp have had in the mobile space, and pointed out that no matter how large public messaging is, private messages (SMS and the like) outweigh it by orders of magnitude. He also reinforced the fact that ADN is not rushing to do much of anything – they’ve created a sustainable business model for the time being, focused on user features, and their goal is to continue developing the service, strengthening the hooks to outside applications and enabling developers to create new and interesting things by delivering working code examples with updates to the API.

Most importantly, he mentioned that with his previous company imeem, the final face of the service was drastically different than its first one. As with any software, the users will in large and small ways influence the ongoing development, and discover use cases that the devs hadn’t even considered. This is the core piece that as a market, we’re unable to see yet. We see a Twitter competitor, and one that feels like it’s faltering as Twitter continues to swell its userbase. We see something that we want to succeed, but we’re not seeing the endgame yet. I’m mentally reinvested in the entire idea after listening to him on the podcasts – not because he’s compelling users to foment revolution – but because he’s seeing past the market perception of what the service is supposed to be. It’s only been five months since the blog post that kicked this off, and four since funding. I don’t know many web services that declared victory in any capacity in that timeframe, and it’s worth keeping that in mind.

I highly recommend checking out the podcast if you’re even marginally interested in this at all. It’s changed my thinking; you may discover the same.

Thoughts? | Twitter

How I’m using Dropbox.

Since I talk about Dropbox quite a bit anywhere and everywhere I can, I’m often asked for app recommendations and about the services that I use with it. The beauty of it is that these things can and do change from time to time because so many apps and services plug into Dropbox that there’s always something new to try. So here are some of my uses and apps as of right now.

For starters, I don’t use my OS X home folder for anything, if I can help it. Everything important lives in Dropbox. I can’t move my Library in there, but if I could, I would. If I lost my MBP tomorrow, I could be back up and running 90% of the way just by logging into Dropbox on a new machine. That makes me feel good. Now, onto some more specific things.

1Password: The alpha and omega of all my Dropboxing. 1Password is the single most useful app on any of my systems, and my world lives inside it. Security’s no joke, and 1P makes it easy. Constant updates, communicative and friendly developers and a willingness to always improve make it my number one app, anywhere.

Notes, Reminders: Notes are stored as plain text files and kept in a folder called Notes. I point the awesome Notational Velocity fork nvALT at this folder on the Mac, and whatever app I’m currently using on iOS at it as well. Right now, that happens to be Elements by Second Gear. It’s clean and fast. Reminders are a different beast. Currently I’m back using Appigo’s Todo, which I’d purchased a million years ago, but which has seen some pretty decent updates. My tasks sync in a Dropbox folder and appear on all my devices. This could change by the time you read this, but that’s what’s great about Dropbox. Another one of my favorites is TaskAgent, although it’s more for lists and doesn’t have reminder functions built in. If you just have one list, you might check out Due, which is also great.

Camera Uploads: This is a service that’s now provided directly through the Dropbox app. Before it was offered, I used many different iOS apps to get my camera roll into Dropbox, and I still use one called CameraSync because it uses geofencing to determine when to activate and upload your pics, taking the manual process away entirely. I set it up for the office and my house, and when I go between them, I get a notification that my pics are uploading. It’s like magic. (I also have Photo Stream turned on as a fallback, but I like that they’re also in Dropbox automatically as well, for obvious reasons – Photo Stream has a 1,000 pic/30 day limit).

Byword: My favorite writing app for Mac and iOS. Hook Byword up to your Dropbox, and your works in progress are everywhere. I store them as plain text (.txt) files for portability into other writing apps as well.

Day One: My journal of choice. Byword is for things I intend to put somewhere on the web, Day One is just for me. A gorgeous Mac and iOS app, with tons of features and improvements. If you’re not using this app, you’re seriously missing out on a flagship writing experience. Again, I choose to store the data file in Dropbox, because I want to be able to pull it apart if I feel like it (or need to) and iCloud’s data container doesn’t sit well with me.

Scanner Pro: A great quick utility by Readdle. If I need a PDF of something I’m looking at in the real world, I grab my phone or iPad, take a picture, and Scanner Pro converts it to a great looking PDF and drops it into my Dropbox for me. Easy.

Drafts: Quick capture and instant dumping into a variety of iOS apps. I keep a “Drafts” folder hooked up to Dropbox and have it set to capture text notes that I intend to file away in my large note file. Hazel watches this folder and drops .txt files into the other one for me.

TextExpander: Super time-saver. TextExpander takes snippets of keys you assign and drops giant chunks of text in their place. I keep the settings synced with Dropbox between my systems.

Paper: My favorite sketching app. Although I don’t use Paper all that much, when I do, it exports my journals right into a Dropbox folder. I end up using this to quickly diagram things for clients sometimes. It helps to have a picture to go with what I’m saying, and if we’re all in agreement, I can save it, export it and refer to it when I go to create a formal wireframe document or something like that.

Software: I keep a master repository of all kinds of .dmg files and installers in Dropbox. I’ve been a Pro customer for years, and recently had my storage space doubled to a massive 200gb, so this is even less of a problem now than before. Super convenient when you’re managing multiple systems in an office environment and the Mac App Store isn’t how you plan to do it.

System: I keep a folder called System in my Dropbox, and the purpose of this folder is to preserve app settings and things like that. If I can, I’ll install an app and configure it so that its settings automatically go there, but if not, I can always manually copy/move some things around or set up Hazel rules to duplicate these settings/files. Alfred is a good example of an app that runs out of this folder – all my extensions and tweaks are synced between my Macs into Alfred from here.

What else?…

Sharing: throw things in a Dropbox folder, get a quick link. Better than email for giant files, and usually works ok for everyone.

IFTTT: there’s all manner of cool automated things you can do with IFTTT, a web service that aggregates other web services to do some nerdy heavy lifting for you. I’m currently pulling all my Instagram shots in automatically, as well as Facebook pics I’ve been tagged in. I also have something set up to automatically forward a document from my iPhone to a folder specified by me in Dropbox, but I don’t really find myself using it. Still, it’s cool and it’s just scratching the surface.

iPhoto: I wouldn’t recommend trying to point multiple machines’ iPhoto installs to one library you keep in Dropbox (seems to have issues, YMMV) but if you only have one machine on which you use iPhoto, it’s an easy way to back that giant file up (if you have the space).

I could go on and on. When I record podcasts, they dump directly into a Dropbox folder from Audio Hijack. I keep a folder just to sync stuff between my MBP and my Mac mini server at home if I need to. A different folder to share things with my wife and her MBP. The possibilities are nearly limitless, and growing every day. It’s a fantastically reliable and functional tool I’ve grown to rely on. I’d hate to go back to computing without it.

If you’ve got a great way to use Dropbox, I’d love to hear it.

Twitter |

Glassboard and getting back on our feet.

When Hurricane Sandy hit us, our office, like most in our area, was completely shut down. We had no power, and our entire staff was scattered. We had about thirty people with varying levels of cell service, power, and internet connectivity. We needed a way to get everyone in one place quickly and easily, and that was becoming an increasingly tall order. That’s when I remembered the excellent Glassboard by Sepia Labs.

Glassboard is a private social network for groups. You create a board, invite your participants, and everyone can post and read into that board. You can add photos, reply with comments to posts, and receive push notifications when others update the board. The thing that really worked for us was that the service is available as an iPhone app, an Android app and a web app (still in beta, perfectly functional). This meant that across all our staff, everyone would be able to use it in some capacity – those who had cell service but no home connectivity could use the apps, and those with home connectivity and no cell service could use a browser.

In a matter of a few hours, we had status updates on everyone (all safe, thankfully) and were talking about a contingency plan for the office and our client obligations. Glassboard allowed us to communicate effectively and quickly across a variety of platforms, and took the guesswork and aggravation out of organizing a group of our size. It’s a great tool with some talented people behind it, and I look forward to seeing its continued development.

It’s free with optional pro account upgrades, and you should check it out. Our Iterate interview with Brent Simmons of Sepia Labs (and many other great things) will be up soon.

Simplified, part 2.

I’ve been a huge fan of Squarespace for a long time, since I started using the service in May of 2009. Coming from a self-managed WordPress install, it was like a breath of fresh air, in which things were well-designed and easy to understand. You could add complexity piece by piece in sensible ways (if you wanted to) but mostly it was great for writing and posting quickly and attractively. The mobile apps were a nice encapsulation of the experience and allowed you to do the basic things you’d want to on the go.

I eagerly awaited the release of v6 this year after hearing so much about the beta as people used it and said how amazingly new it all was. How could the service possibly top itself? What wizardry awaited in this new release? The launch came, and I immediately migrated my entire site to the new service.

That was my first mistake. I soon realized that none of the categories I’d created over the past few years appeared in my composition windows when I was posting. Which meant that I needed to either re-create each manually, or I had a much bigger service issue that I couldn’t possibly fix. I contacted support and spoke to a variety of different, eager-to-help representatives, but the issue went unfixed for several weeks, during which I was afraid to add content to the site, not knowing how it might affect things. It finally did get resolved, though, so I can say thanks for that.

In that same span of time, I realized that the iOS apps upon which I relied for quick posts from my iPhone and iPad were slowly becoming hobbled. I could not edit posts I’d created in the new system on iOS because of the limitations of the way the apps handled them. I wasn’t doing anything nutty; I post entirely text, with the very occasional image (almost never). Over a few weeks, I wasn’t able to even post new entries to the site at all. Two days ago, I noticed that all the buttons in the iPad app compose window do exactly nothing now. Which left me with a post in the app that I couldn’t save as a draft or publish.

I stuck with a service that I’ve used for years, because I loved the flexibility. Which recently was whittled away to literally nothing. The iOS apps are now broken beyond belief. One would assume the company would be hard at work on restoring compatibility. But instead, it released a new branded note-taking app… because that’s what its users need more. I know notes are so hot right now, but it would really be better to have the entire service work as advertised. Even on the web, I’ve experienced slowdown, hangs, and complete failure as I try to do even the most basic things.

I finally tired of waiting for something to happen, so yesterday I migrated the site to a hosted WordPress install. I paid for ad removal and a custom URL. At least WP’s iOS apps do something (namely, work properly). The theme I chose is simple and pleasant, and I’m able to continue writing when I want to (infrequently) but when I post, it goes somewhere. I’m getting serious about dropping things from my life that don’t work for me or make things more difficult than they need to be. Sadly, one of my favorite web tools became one of those weights that needed to be dropped. I’m not beyond sweeping the leg when I need to.

No mercy, sensei.

Let’s talk about the future.

As a kid (ok, a nerdy kid), I had dreams of an incredible future that my VIC-20 couldn’t even begin to predict. I watched science fiction films and fantasized about all of the amazing ways that technology would transform the landscape of our lives. As I grew older, and some of those dreams took shape, my excitement and passion for tech increased as I watched developments come to pass that previously only lived inside my fevered geek-kid dreams. It goes without saying that if you showed a current generation mobile phone to yourself as a 12-year old, your head probably would have just exploded on the spot.

Which is why I’m a little troubled by the way Google is positioning itself and its products as the future of our technology. Not for the reasons the internet would ordinarily attribute to a proclamation like this (cult member status of a competing platform’s movement), but rather because at its core, I’m not sure that Google is being honest with itself, and with us.

Take Google Glass, a piece of wearable technology that looks like it was left behind by a time traveler. The geek kid inside me looks at that and says ‘Wow! I can’t believe I’m going to be able to have an always-on HUD for my actual life!’ because that’s just the way I’m conditioned to respond to products like this. The pragmatic adult inside me looks and says ‘Ok, good, but let’s see how the platform around this develops before we get excited’ because that’s how my grown-up brain thinks. But the fact remains that it’s a cool and interesting piece of tech, and I remain curious about it.

Look at Google Now, a recent addition to the Android OS with Jelly Bean. The main idea behind Google Now is that by plugging into Google services with your phone, your location, your likes and dislikes, your habits, patterns, and intentions will slowly be absorbed and presented back to you in a meaningful context, with relevance. Amazing, right? Imagine most of the friction involved in gathering in-the-moment information on your smartphone removed – you look at it, and it seemingly already knows what you want. Sports, weather, restaurants around you, everything that matters to you right now as you’re looking at the phone. It’s a very cool idea and one that paints a better picture of our machines working for us, as opposed to with us, or in some cases against us (let’s just say it took a while for Siri to actually grow into her promises of information at my fingertips the way I wanted it).

Great ideas, executed and advanced by what was and is one of the greatest engineering companies on the planet. No one would assert that Google can’t bring the future to us, given how it’s shaped the web and redefined how we interact with it. My problem is this:

Google is bringing the future to us so it can monetize every single thing we do in our lives, online or offline.

Google is not a pure engineering company, rather, Google is a company that engineers great products (and they are great) in order to advance a larger, singular objective: the collection of user-provided data to better serve advertising interests. It’s not a company that sells products to people; were that the case, this entire thing would look and feel very different to me. We know how Google makes money. It’s not a secret. As I watch Google release more impressive and robust mobile products with comments like “there’s no margin, it just basically gets (sold) through” the picture only gets clearer. It’s not making money on hardware. It’s not making money on software, as it’s traditionally kept software products free to most if not all users. The money comes from us, and all the information we give it. The money comes from tailoring ads to match what it thinks we want. Which at its core is itself a great idea, but leads to a lot of other questions.

But before this gets tin-foily, let me refocus: if you’re cool with Google knowing a lot about you, that’s fine. For the most part, I don’t even care myself. I’m not super paranoid about this kind of stuff, although I do tend to approach it with a more skeptical eye. What I don’t like and can’t agree with is the notion, as presented by the company, that it’s changing the landscape of consumer technology and the way we interact with one another for any noble reason. It’s not doing this to join all the peoples of the world together in blissful online harmony. It’s not doing this so that we can experience amazing new things and drive humanity to new heights. It’s doing this because (first and foremost) it’s made of geeks and geeks like to build cool things (and other geeks want to use them), but those things take money to build and sustain, and the way it makes its money always seems to take a backseat to the wow factor. And that’s what troubles me. It’s not the advancement of technology for the love of the art and science of human discovery – it’s cool technology, but it leaves a lot of questions in my mind about motivation and method.

And listen – all of this could just be fired-up rhetoric in a few years anyway, when Google announces complete data transparency and personal information is regarded with the sanctity some of us feel it should be. I’m not holding my breath for that particular outcome, but to be fair, Google’s always been first to say that we should be able to get our data in and out of a system when we want it, and its guiding corporate goal is to stay away from the Dark Side of the Force. All I’m saying is, think about the subtext of all the things you see coming to market and the messages you’re receiving along with them. Ask yourself: is this the future you’ve always dreamed about or is it the future brought to you by [ADVERTISER NAME HERE™]?