PageKite – An awesome tool for serious web developers

If you have done any serious web development, you know how important it is to have a local environment to work in.

It’s not very hard to set up a local web server, database server, and just start banging out code. If you have a mac, you don’t even need to install anything to start a PHP or Python project.

Development problems comes into play when you reach a point in your project when you need to start making inbound calls for things like oAuth or web hook callbacks. For these sorts of things to happen, you need your dev machine exposed to the world, and presented in an addressable format, or upload the whole project to a production server – both, a pain, and a time suck when you are developing.

Exposing your web server to the world usually requires a few modifications and a little bit of know how. Once ready to expose to the world, you need to open firewall ports and advertise your IP Address. If you are like me, and program on the run (office, home, coffee shop, airport, etc), I don’t always have access to router / firewall / port forwarding settings. Technically it’s against the Terms Of Service of my internet provider to expose a web server on my connection, so I CAN’T open any web server ports.

Enter PageKite to save the day.

PageKite is a cool project out of Iceland (yes Iceland!), that solves the problems I listed above. PageKite makes local websites or SSH servers publicly accessible in mere seconds, and works with any computer and any Internet connection. It’s also 100% Open Source. It’s dead simple to use. You just need python installed on your machine (which serious web developer doesn’t have python installed?), and the pagekite.py file from pagekite.net.

For $4 a month, you can’t beat the ability to run a simple lite weight script that securely exposes your web server to co-workers, API services, and anyone else you can think of. You probably don’t want to run a production level server via PageKite, but it gets the job done for development work, and it does it in an amazing way.

The best part is the fact that it doesn’t matter what type of connection you are on, you can expose your work to whoever wants to see it. No firewalls, no dynamic IPs, no hassle. I’ve used PageKite to build my last two Shopify apps, SEO Meta Manager, and Order Lookup App. It’s been nothing but an awesome experience. PageKite has found a permanent place in my web dev tool box.

check it out at http://PageKite.net. The Video below is a bit long but explains it very well.

[youtube]https://www.youtube.com/watch?v=7a66r23jnKA[/youtube]

iTunes 11 – Bring Back the Old iTunes Look

iTunes 11 sports an all new interface and thats great, but if you are like me, you just want to use the features that you’ve become used to. I’ve figured out how to get most of the old features turned back on in iTunes 11.

  • Get the sidebar back by clicking the button in the upper left corner, and then click “Show Menu Bar” on Windows. Then select View > Show Sidebar.
  • Get the status bar back by clicking View > Show Status Bar.
  • Click Songs in the top bar, and sort by Artist for the traditional list view.

Now, iTunes 11 should look close to iTunes 10. I have found that I need to use the album view to show artwork. The Song view no longer shows album art.

Working with Shopify .css.liquid files in TextMate

I’ve been working with Shopify.com for some time now. One of the(many) cool things that Shopify has going for it, is the TextMate bundle they offer. It really makes writing Shopify Liquid code much nicer.

If you’ve ever working on a Shopify theme, you’ve most likely delt with a .css.liquid file. It’s a CSS file that contains a tiny bit of liquid code (mostly for linking to assets like background images). By default, TextMate will treat these file like liquid files. They really should be treated as CSS files.

To fix this, in TextMate, press cmd+option+control+L. This will open the “Bundle Editor”. Expand “CSS” in the navigation pane on the left.

In the right window, find:
fileTypes= (

Add “css.liquid” to that list. Look at the below image for an example.

 Restart TextMate and you should be read for some Shopify CSS goodness.

How a bad hard drive changed everything for me

I made the switch to from a PC to Mac back in early 2009, when I got my mac mini. Later that year I sold it and got a Mac Book Pro. It’s been my primary computer and work horse for the last 3 years. With it I’ve developed 10 iPhone apps, several web applications and spent countless hours surfing the web. I’ve never had an Issue with it…. until a few months ago.

While using the computer, I would randomly get “the spinning beach ball of death“, and it would last a few seconds to a few minutes. I started to notice that it would happen most frequently when I opened an app, a document, or if I tried to save a file. That made me instantly think it was a hard drive issue.

Opening the macs console app and looking at the system logs, it was clear there was a coloration between the times I saw an issue, and log entries for I/O Errors on the hard drive. Knowing that the drive was going bad, I booked an appointment at the local Apple store. I also created a time machine back up of the computer.

This was the first time I ever needed any service on my computer, so I didn’t know what to expect. This is how it went down:


Apple Genius: Hi, what’s the problem with your computer?
Me: The hard drive is failing. Lots of read / write errors.
Apple Genius: What makes you think the drive is failing?
Me: (*Opens computer lid, points to the console logs*) These error logs entries reporting I/O errors and bad sectors.
Apple Genius: Oh! OK, so yeah, you know know your stuff. That’s a bad drive. Let me check something… yup your computer is covered by Apple care.
Me: Sweet!
Apple Genius: Ah, this has a 320 GB drive. Sorry, we are out of stock on those. But I can replace it with a 500 GB drive, if that’s OK.
Me: OK, whats the price difference to upgrade from the 320 GB to the 500 GB?
Apple Genius: (*confused look on his face*), ummmm you have Apple Care, there is no cost. It’s free.
Me: Even the for upgrading the drive, it’s free?
Apple Genius: (*still confused*), yeeeeahhhh, you have Apple Care. It’s free.
Me: Sweet! How long will it take to get my computer back? (I’m thinking at least a week)
Apple Genius: Do you have a backup at home?
Me: Yeah, a took a time machine snapshot before I came in.
Apple Genius: OK good, It’s still going to be a while, we’re really back logged right now. It’s going to take at least 15 – 20 minutes. You might want to get a coffee and come back.
Me: Wow! So less than 30 minutes, and the parts and labor are free? You are just going to swap out the drive right here?
Apple Genius: yeah…. you have Apple Care, it’s free.

20 minutes later

Apple Genius: Here you go, all done. The new 500 GB hard drive is installed. I’ve also extended your Apple Care for another 3 months since you had an issue with the drive.


I took it home, plugged in the time machine drive and started the restore process. 3 hours later, I was back up and running. No data loss, no issues. No money spent!

Sure Apple computers are expensive, but the level of service you get when you need help is the best that I’ve ever seen. The tech didn’t try to fight me and tell me that it was a problem I caused or that it was out of warranty, or I had to pay a deductible to use the warranty. He didn’t try to up-sell me on other services, hell he didn’t even try to sell me anything, I was ready to pay money for the upgraded drive! The turn around time was unreal. Less than 20 minutes, and he apologized for taking longer than normal. He even extended my warranty because I had to go to the trouble of bringing it to the store, and because I had an issue. All of this FOR FREE. I guess free can be argued, because it’s built into the computers price tag.

Overall the experience was amazing. So good that I’m making a post about it here. In a world where anything can be bought over the internet and price comparisons happen on a global scale, the only thing left to compete over is service. Apple realized this, and delivers such a good experience, they turn customers with problems into evangelists for the company. This is exactly what Gary Vaynerchuk outlines in his book, “The Thank You Economy“.

As a business owner, this experience has opened my eyes as to why customer service really matters. I guess I was just so used to bad service (I’m looking at you Best Buy!), that I was delivering that same bad experience to my customers. I saw customers interactions as problems instead of opportunities to create an evangelist for my brand. Since this experience and revelation occurred to me, I’ve launched two Shopify.com apps (SEO Meta Manager and Order Lookup App). Both have been very successful. Sure they are great products, but my attitude about customer service has changed and I think it has made a huge difference in how I conduct business. Yes, there are products that are technically similar to mine, but they don’t offer the white glove customer service I do. That’s my true advantage.

To wrap this up, thank you Apple and thank you Gary Vaynerchuck. Your words and application of a Thank You Economy have changed the way I do business and treat customers.

Jackson Highland – Hello World

On March 11, 2012, My wife, @AmyAbernathy, gave birth to my son – Jackson Highland (aka Josh Highland 2.0). It was one of the most defining moments of my life. If you follow me on Facebook, Twitter or Instagram, most of my updates have been about Jackson.

It’s been an interesting transition into fatherhood for me. I’ve slowed down on creating apps, and writing code to help Amy out, and to spend more time with Jackson. He’s hands down the coolest thing I’ve ever helped create. I really look forward to watching him grow up. I hope he also has an interest in tech! I’m sure that I will have many more blog posts about him in the future.