Matt Coneybeare

MC

Migrating From Sharify to LimeLM

| Comments

The Adobe Air version of Ambiance Desktop has been around for a few years now and has been quite popular as a try-then-buy app. When we first launched in February 2011, Adobe was really promoting Air as the best way for smaller software businesses to spread their products across multiple platforms. For us, that meant we could offer Ambiance on Macs, Windows, and Linux computers, all for the cost of developing for one of them.

To help promote Air apps, Adobe launched a service called Shibuya that allowed companies to easily hookup a try-then-buy licensing model in their Air products. We added it to Ambiance Desktop and we very pleased with the service.

A few months after we had released Ambiance Desktop, Adobe announced that they were shutting down the Shibuya program and the corresponding Adobe InMarket. Ok, we thought that really sucked, but it happens. There was a big problem though…

How to Setup a Rails-like Asset Pipeline With Octopress

| Comments

A few weeks ago I decided to use Octopress for my new blog engine when Posterous shut it’s doors, and I love it thus far. There are a few things I miss from Rails though… After working in Rails for so many years, I have become accustomed to some of the nicer elements of developing on the platform, such as the Asset Pipeline.

The Problem

I want to use something similar but couldn’t find anything nicely packaged up that would do everything I needed it to all in one. My solution needs to:

  1. Compile multiple css and javascript files into a single file
  2. Compress assets by removing whitespace to reduce filesize
  3. Compress assets by gziping them to serve to good browsers
  4. Provide cache-busting urls
  5. Provide asset_path tags for the source pages
  6. Upload assets to S3
  7. Use the S3 path in the final generated posts.

The Solution

There are several plugins that seemed to do most of the above points, but nothing that did it all. I got a great head start with the jekyll-assets gem. With the right configuration, the only thing it was missing was point 6. Let’s setup the gem and see how we can add S3 uploading later.

How to Map Plex Media Server to Your Home Domain

| Comments

Being the Über Geek that I am, reaching my home server from anywhere in the world is trivial. I have all the appropriate port-forwarding in place for ssh, ftp, vnc, and other miscellaneous ports for various different tasks and programs. One such program is Plex, a media server that houses, manages and maintains my media collection. When I want to access the Plex web client from teh internetz, I can simply type my home IP, port and path into any browser from anywhere in the world, login and Boom-Wow-Kapow™, I am in.

The Problem

While this process is great and easy for me as a software-engineer, my wife, who is !software-engineer should be able to watch Plex as easily as I can. She shouldn’t have to figure out the IP address of our home machine, remember which port to use or remember the relative path of the server. She should be able to enter a simple url, such as http://home.coneybeare.me to get to Plex, so let’s figure out how to do that.

Complex
http://68.194.30.155:32400/web
Easy
http://home.coneybeare.me

The Solution

The first step is to make it easy for her to reach the home machine. This one is easy as there is an entire infrastructure older than I am to match easy-to-remember names to hard-to-remember computer IP addresses: DNS. First, I added a home subdomain to one of my existing domain names. Then, I use a service called DynDNS to keep this subdomain up-to-date with my home’s external IP address. I could have written a script to do this for me, but I already had DynDNS setup for other reasons. Now we are looking good:

Good
http://home.coneybeare.me:32400/web

The next step is to get rid of that pesky port. To accomplish this, instead of having my router forward port 32400 to the server, I set it up to forward port 80 instead. Port 80 is the default http port, so omitting a port in the url is the same as using port 80. I wasn’t using the server to host any other webpages, so hijacking the whole system to serve Plex was fine for me.

A Chrome Extension to Easily Save Images to the Downloads Folder

| Comments

I am seeing Safari freeze up on me lately. To be fair, I load a ton of concurrent tabs, but Safari cannot handle dealing with that many tabs without grinding to a halt. I decided to switch to Chrome because it uses separate processes for each tab. This way, when one open tab starts consuming too much memory, the other processes are not affected unless the entire system is bogged down.

Safari

The first thing I noticed when making the switch is that I could no longer right-click an image and directly Save Image to "Downloads". When designing and developing webpages I use this feature quite frequently, grabbing images from different sites for mockup purposes. Chrome has a similar sounding item in it’s right click contextual menu called Save Image As..., but it behaves quite differently.

Making Octopress Stylesheets Use a Content Distribution Network

| Comments

I recently migrated from Posterous to Octopress. When working in development on the site, it is really convenient that all the stylesheets are relative and point locally. This means that I can run rake watch to monitor changes to the stylesheet, then Octopress regenerates itself and shows the changes instantly.

The Problem

Using Content Distribution Networks (CDN) are one of the best things you can do to speed up your site. There are many out there, but I use Amazon CloudFront to provide static S3 content across the globe at lightning speeds. The only problem with using a CDN in development is that refreshes to the content are not instant. It can sometimes take hours for changes to reach the network nodes.

I use CloudFront for many of the javascripts, font-files, images and other static elements on this site that don’t change very often. Stylesheets, on the other hand, are something I change constantly. I spend a ton of time tweaking here and there, at least in development, so I can’t swap out the source stylesheets for CDN hosted ones. Or can I…

The Solution

I created an Octopress deploy task called :css_to_cdn that is run as part of rake gen_deploy that will

  1. Upload public/stylesheets/screen.css to an Amazon bucket
  2. Scan the public site to find any relative links to stylesheets/screen.css
  3. Swap relative links out with the CDN link
This task is run after generate but before deploy so that in development, a generate will still use the local stylesheet.

Migrating From Posterous to Octopress

| Comments

Posterous recently posted a shutdown announcement stating that the service, now owned by Twitter, inc, would be closing up shop on April 30th, 2013. I have enjoyed using Posterous in the past for it’s triviality of getting content up on the web — literally as easy as sending an email — but now needed to find a new home for both my personal and code blogs.

I looked a bit into hosted services such as Wordpress and Tumblr, but none of them offered the kind of customization options that a hacker like myself needs. Either the system was built up to the point of code confusion (Wordpress) or it was too basic to do anything powerful with (Tumblr). I decided to look at writing and hosting my own CMS.

While researching, I came across Jekyll and started tinkering around, but once I started Googling for plugins and themes, I found that Octopress, built on top of Jekyll, already included most of the customizations and plugins I wanted. Octopress is really a boilerplate setup for Jekyll, allowing you ease of install/setup, while also providing with maximum customization options.

The first thing I had to do was to get my content off of Posterous. I found a great post by Justin Kelly that gave a script to download content from Posterous, and convert it into a format useful for Jekyll. I did have to make a few alterations though…

How to Avoid Accidentally Creating New Columns in Tweetbot and Set a New Global Hotkey

| Comments

UPDATE: 12/14/2012 Tweetbot for Mac v1.1.1 just officially added Global Hotkeys.

I love Tweetbot for Mac. It is easily the best desktop Twitter client out there, but it has one minor annoyance that stems from my muscle memory. Prior to Tweetbot I used the standard Twitter app. In the Twitter app, I had set a global hotkey to open a compose tweet form as ⌥⌘N. Without even thinking about it, I tend to press that key combination whenever I want to tweet, then usually again when nothing visual happens.

In Tweetbot, this key doesn’t open a new tweet window, but instead opens a new column view, something I have yet to find a use for. It actually took me a few days to realize that I was opening new columns because I keep my Tweetbot right aligned on the right edge of the screen, and new columns just appear on the right side of the app. When I first discovered what was going on, I had about a dozen columns hidden offscreen!

So how did I fix this?

My name is Matt Coneybeare, I design and develop for iOS (iPhone, iPad and iPod Touch), Mac OS X and the Web out of New York. In 2008 I started a software company called Urban Apps that has made some pretty popular apps such as Ambiance and Hourly News. My current Stack Overflow reputation is about 20k.

I was a Rockstar a decade ago, but then went back to school and collected a Bachelor's Degree in Computer Science from U.C. Berkeley. Now I am settled down with my beautiful wife Di and our three doggies Hamachi, Foxy and Millie. While coding, I walk about 16 miles/day on my Treadmill Desk.

Contact information

Name:
Matt Coneybeare
Email
Website
Twitter
App.net
Instagram
GitHub
Google+