XFCE And Ubuntu Saved My Old Macbook

Screenshot of XFCE



2008 was the day that me and my Macbook Pro started our relationship.  It was great at first.  It was my first foray into OS X and I was starting to see why everyone was slowly but surely making the switch to Apple.  It was fast! It was beautiful! It just worked.  Not only that  but to this day, my unibody Macbook looks fucking fantastic  for its age and has held up way better than my old plastic-y laptops from the past.

However, the thing that has gone down hill has been performance.  See, when I first got the Macbook, it was running on Leopard and it was fucking blazing fast.  One of the main reasons that I had gotten a Macbook was to run Adobe Creative Suite (Photoshop, InDesign, etc.) and it did the job admirably.  This baby was fast!  When I upgraded to Snow Leopard, performance actually increased and I was over the moon with joy.  It set up expectations that Apple was going to continually push for optimizing code rather than adding all the glittery nonsense that would slow your machine down a-la Windows (Think Aero.  If you’re on a Windows PC, press Windows key + Tab and witness your graphics card wasting electricity).

When we got to Lion and Mountain Lion, shit got slow REAL fast.  Now with Mavericks, I’d say it’s even slower.  Chrome takes a couple of seconds to load.  Flash videos are choppy.  It gets hot fast and it sounds like a jet.  I record my podcast on Garage Band and it can’t even smoothly render the waveforms as I record.  It’s not unusable, but it’s definitely not my preferred device of choice – I’m either a desktop or phone guy now.

Anyways, as some of you may know, I’ve been really trying to learn how to program and it’s really a huge pain in the ass to do it on Windows.  I’m sure there’s a way to make MS-DOS work like terminal, but I’m not gonna do it.  Long story short, I ended up installing a virtual machine on my computer to run Ubuntu (a version of Linux) to do all of my coding in and it’s been great.  So naturally, I thought about installing it on my Macbook for fun.  Even though it was slightly faster, Unity, the Ubuntu user interface, was still slow.  Then I found out about a minimal user interface called XFCE and boy my MACBOOK IS BACK.

I can do most of the stuff I want to do on the web and it does it quickly.  Words I’d never thought I’d say again.   However it’s not without it’s drawbacks.  Here’s a pros and cons list:


  • It’s fast
  • It doesn’t make your computer sound like a jet
  • My laptop is not scorchingly hot anymore
  • You learn a lot by using it


  • It’s a massive fucking pain to install – I’m not even sure I did it right
  • A bunch of stuff does not work out of the box (i.e. WiFi indicator isn’t native by default, LED keyboard doesn’t light up, etc.)
  • There’s a huge ass learning curve
  • It’s a significantly worse user experience (no multi-touch gestures AFAIK, having to use terminal all the time is a gift and a curse)

So far, the pros outweighs the cons for me and I’m just glad I have my laptop back.

If this sounds good at all to you, check out XFCE and Xubuntu (the Ubuntu version with XFCE pre-installed).

Something to push against

There is really nothing more daunting than a blank canvas.

I used to be nervous about the first character or line that I would draw into a notebook because it was such a grand statement.  This act would be the beginning of my “creative” journey.  This was the case when I first learned to use Adobe InDesign in university as well.  I was forced to do a tremendous amount of sketches on paper to layout what my grand concept would be.  I just worked backwards.  I made the thing in InDesign and then sketched a bunch of layouts afterwards to “show my work”.

The way I like to create is to throw something on the screen and then push against it.  I take the smallest version of what I want to make and then I tweak it.  Then I tweak it again.  And again.  And again.  I’m sure somewhere there’s software that can track the versions of every single save you’ve done, but to be honest, I haven’t used it.  Why would I save a version of something that I thought was worse than what I have?  That’s why I changed it in the first place!

Every blog post that I write starts with a overly long process of deciding what the feature image should be.  I need that there to anchor my ideas and thoughts and the writing builds around that image.  For example, this post was first started with the instagram video that’s embedded below (I know it’s a video and not an image, but bear with me).  Ironically, for Shift SMS, I had created a mockup (seen above) which was supposed to help me figure out how I was going to design this web application.  But to be honest, it felt really pointless to do so.  This mockup was the equivalent of telling me to sketch out all of my layouts before I went and designed it on computer.  It just wasn’t the way I work.

But in the case for Shift SMS, what’s the alternative?  I would just code it and then iterate on that code?  Oh wait, I can’t code.  Shit.

I’ve been using this metaphor lately of mountain climbers on Mount Everest.  When you’re at sea level, there’s just people living their day to day lives.  Go a little bit higher, you’ll get the people that want to hike the base.  A little bit higher than that, you’ll get the amateur climber.  But there’s a point (8000 meters or 26,000 feet according to Wikipedia) where you need to carry oxygen, because the air is too thin.  This point is what separates the minor leagues from the pros.  If you cross it, you must be a serious motherfucker.

Applying this metaphor to my professional life, that point is the ability to fluently write code from scratch.  I can’t do that.  However, there are programming frameworks and plugins, which are pre-made chunks of code that you can customize to varying degrees.  In this metaphor, frameworks and plugins are like a small balloon of oxygen.  It’ll give you enough to survive a little bit longer, but it’s hardly the recommended way to hit the summit.  But when you’re in my position, you just need some goddamn oxygen.

So that’s where FullCalendar came in.  It’s a jQuery plugin that allows you to get a calendar going very quickly and somewhat simply.  Right now, I think having any form of a calendar interface laid out is great, because now I can push against it.

Validating A Business That Doesn’t Exist Yet Part 3: Slight Progress

shift page traffic

What a whirlwind week in the world of Shift SMS!

It’s not like “we made it” progress, but progress none the less.  Let’s break it down.

Guest Posting

Thanks to Joe at Betakit, I got my very first ever guest post on blog!  The post was titled “Here’s Four Toronto Startups Reinventing The Wheel” and it looks like it was really well received.  I’m really stoked because Betakit is a blog that I actually read, and I’d say easily is in the Top 5 biggest startup blogs in Canada.  I spent quite a bit of time writing the article (3 days) and I think it paid off.  Check out the share stats on for the post as of Sunday April 6th:


3 of the 4 companies that I mentioned in the article ended up retweeting the post, but the retweet that made me the most excited was by MaRS, which is the Toronto entrepreneurship and startup organization:



In return for the guest post, I had a little bio posted at the bottom with a quick blurb and a link to Shift SMS:


The reason guest posting is valuable is because it acts as a link towards the Shift SMS website, which gives it credibility.  As far as I can tell, the link that is sent to our site is a “follow” link (which means that Betakit is basically saying, yes give them some credibility), instead of a “no-follow” link (which means fuck these guys, don’t associate them with us at all).  All of this is a factor into how Google ranks and positions your page.  This is all worth it, even if the post isn’t directly driving traffic to Shift SMS.

Definitely going to look into doing more guest posting for sure.

Launching Next

launching next landing

We also got featured on this startup website called Launching Next.  It’s started by a user on the /r/startups subreddit, and I just submitted it for shits and giggles basically.  We ended up getting something like, 7 visitors the day it launched, but 4 email signups for the beta program.  DAT CONVERSION!  So naturally, what I did today was submit Shift SMS to a bunch of startup showcases, as per this list at OVoice.

One of the sad things is that over half of the websites that are on the list require you to pay them in order to feature them on their site.  That’s fucking SHENANIGANS if you ask me.  Even one of the larger sites called Betali.st (which looks fantastic, and isn’t scammy looking at all) allows users to pay in order to expedite their review process.  I don’t know.  I think that if you create a good product, that shit should be considered content and newsworthy.  You shouldn’t have to pay for exposure.  On the other hand, how is this any different from paid advertising, which I’m definitely going to do down the road?  I’m torn.

Cold Emails

and now we wait

As some of you may know, I did send off a batch of 8 cold emails to potential restaurants in my neighborhood to be a part of Shift SMS.  Here’s the email in full:

Subject: Problems with Staff Scheduling?


My name is Anthony Wong, the founder of Shift SMS. After working over 4 years at tech companies like Kobo Books and TheBay.com, we’ve decided to go and build something great for small businesses like [business name].

We’re launching a product called Shift SMS – our website allows you to distribute your staff schedule to your team via text message, and we also allow your team to coordinate any shift changes via text as well. No more crossed out lines on the staff calendar or frantic last minute phone calls!

We think that Shift SMS will solve your scheduling problems, and we would like you to be a part of our beta program later this year.

Would be interested in using a product like this?


This email was based on a formula in a great talk by Steli Efti called “You Gotta Be a Hustler“:

Steli Efti: You gotta be a hustler slide deck

The formula that I followed is featured in the video:

  • Paragraph 1: Who the fuck am I? Why should you listen for 1 more minute? I took whatever credibility I had and tried to associate me to it.
  • Paragraph 2: A No bullshit version of what Shift SMS does. Build some understanding with the headache of scheduling.
  • Paragraph 3-4: Close.

And using a tool called Boomerang, I was able to track whether or not they opened the email.  The result after 2 days: 5 of 8 emails were opened. 0 replies.

So with a couple of days to reflect, here are my thoughts on my email:


  • I think the narrative in the first paragraph is a good touch
  • It’s less invasive than cold calling, which I’ve never done before and would be a bit nervous to do
  • It’s pretty well written
  • It has a pretty clear selling feature


  • I have no idea who I’m contacting at these restaurants.  They’re just the general information contact.
  • The email seems a little spammy

I think going forward, I might have to put an ice on the emails and look into other more effective techniques.

What’s Next?

I think I’m going to have to hack together a minimum viable product some how.  A minimum viable product is basically the most basic, shitty version of your product that’s usable.  I’m definitely racking my brain to figure out how this would work, and I don’t know.  I’m currently facing a predicament between Ruby on Rails and Django/Python.  This is me right now:


django or python?


They both have their pros and cons.  To keep things short, I sort of know how to write Python, but Ruby on Rails has a lot of the shit that I need premade and templated already.  I just have to figure out how to assemble it together, as if it were some sort of weirdly named piece of IKEA furniture.

Stay tuned everyone – who even knows what’s going to happen this week.


Validating A Business That Doesn’t Exist Yet Part 2: Marketing


First of all, thanks for the support from everyone about Shift SMS! I’ve gotten some amazing feedback from a lot of people and I’m glad that people are so interested in the idea.

So without further adieu, this post is going to go over the marketing strategy for Shift SMS – what I’ve done and what I will do.

Social (Facebook & Twitter)

Anyone that knows me is aware that I’m not especially bullish on social media, especially when smoke testing a software as a service business.  However, when you’re trying to look the part, you have to have your social media channels setup.  I’ve been using Buffer to build up a cache of posts through out the week (and if you’re reading this Buffer, I would totally love to join the team;)) with the primary focus on Twitter.

The reason that I’m focusing on Twitter is 2 fold: I use Twitter more and Facebook has recently started charging people to distribute their content.  It’s gotten so bad that even celebrities are commenting about it:


Either way, I’ve been doing the standard “follow a crap load of people and retweet really popular things” strategy.  I’m currently just south of 100 followers after about a week and a half.

Like I said, the strategy here is to make it look like there’s people in the house like in the movie Home Alone:

home alone cutouts



Content marketing is really at the core of the marketing strategy for Shift SMS.  Here was the plan:

  1. Write about 20-50 blog articles using long tail keyword phrases people would search for (“how to write a staff schedule that won’t change” “how to train teenage staff“)
  2. People interested in the subject would read more about Shift SMS and want to sign up for the beta program
  3. profit

So far, this has not worked at all.  The traffic for these posts have been abysmal to say the least (I know, I know, it’s only been a couple weeks, but still).

I ended up listening to an episode of Pat Flynn’s podcast (Episode 66 – Niche Site Duel 2.0) and realized that I currently have no backlink, or backlinking strategy.  Basically, there’s no way people can find my stuff because no one has linked to it.  And because no one has linked to it, Google doesn’t see the page as valuable.  In order to combat this, I have a few ideas (that I have not executed on yet):

  • Guest posting on reputable blogs
  • Creating powerpoint slides of my blog and posting them on Slideshare for SEO juice
  • Writing press releases and submitting them to PR directories

I’ll let you know how those go in a future post.

Cold calling/emailing

This is the part where we start to get into the nitty gritty of smoke testing – getting to your actual customer.  I’ll be completely honest and say that I’m a little scared to approach people about actually selling this to them.  But enough whining.

My plan is basically compile a list of about 20 restaurants to start, ask them customer development questions, and then potentially ask if they would be interested in a product like Shift SMS.  I’ve concluded that my “closing” line will be something like “We’re looking to launch our beta program in 4 months, and we want to partner with you because you’d be a good fit.  Is this something you’d be interested in?” and then go from there.

Overall, I think the process is going pretty well and I’m just encountering the bumps and bruises that come along with building anything.  I’m definitely getting overwhelmed with the amount of stuff that I feel like I could be doing, and there’s a level of anxiety that’s coming a long with it.  I’m going to try and keep my head up and hopefully it works out.

Validating A Business That Doesn’t Exist Yet Part 1: Design


As some of you know, one of the pet projects that I’m working on while I’m unemployed is Shift SMS.  Shift SMS is simple staff scheduling software that allows your employees to coordinate shift changes via SMS.

When a staff member can’t make it to a shift, they just text Shift SMS.  Shift SMS will message all available employees to cover that shift.  When an available employee wants to take the shift they can just text Shift SMS back and then the change is automatically made to the staff calendar. Or that’s what I’d like it to be.

The idea for Shift SMS came about in a really odd way.  I had a friend that works at a restaurant who was complaining to me that they had to pick up a shift from one of their coworkers at the very last minute.  At the same time, another friend was spitballing startup ideas with me that I found way too pie-in-the-sky, and in an effort to bring him down to earth I suggested staff scheduling with SMS.

The more I thought about the idea for Shift SMS, the more I started to like it.  During university, I worked in a retail store and I remember seeing my manager standing in front of the computer for hours trying to come up with a staff schedule.  At first, I just thought that my manager wasn’t technical and didn’t have much to do, but I soon realized that organizing people in a schedule is actually a huge pain in the ass.  I did some customer development while getting coffee on the idea of Shift SMS and found out that a lot of businesses actually have this problem.

Originally, I was in contact with someone on Odesk about actually building out the software for a small amount of money.  I’m a big proponent of outsourcing work (in theory) but I’ve never actually gone and done it.  For Shift SMS, this was my thought process:


  • It’s cheaper than finding someone locally.
  • The MVP (minimum viable product) could be done quickly and I could go out and try and sell it.
  • It would be a good learning experience.
  • I’ve heard a lot of good things about outsourcing development from people like Tim Ferriss and Pat Flynn
  • Once the software was built, I wouldn’t have an excuse to not go for the startup dream.


  • I’d have to pay up front for a product that I’m not sure that anyone would buy.
  • I’ve heard horrible things about outsourcing programming from a lot of other people.
  • The person wanted to program using PHP (using a LAMP stack), but I was really adamant about using Ruby on Rails to build it at the time.
  • Felt like I was using Odesk as an excuse to not find a technical cofounder because I wasn’t confident in selling the idea.

In the end, the cons won out.  It wasn’t entirely about the money, as much as it was about the fear that I wouldn’t do anything with it when it was finished.  So I’ve made the decision to validate the idea before I put any real investment into the development of the software.  This means I’m basically marketing this company as if it was real until I get enough interest (as judged by email signups, mostly) and then I’ll build.


shiftsms landing page


I am 100% confident that if you went to the Shift SMS website right now, you would think it was a real startup.  Seriously.  It’s all thanks to a CSS framework called Bootstrap.  Simply put, Bootstrap is like a piece of code that makes everything looks decent enough for almost every occasion (A special thanks to Carlos from Blacktie.co for his free Bootstrap theme).  The image of the hand was provided by a design agency that does app mockups, and the screenshot was made with an iOS 7 screenshot generator.  The copy on the landing page took about 2 days to write and edit, and the blog was a WordPress install with a customized version of the Flato theme.



When I started my social media profiles (which I’ll talk about in the next post), I realized that I really needed a logo.  I didn’t need it to be groundbreaking, or change the world.  I just needed some sort of graphical representation of the company.  If I got the company up and running, I could always change that later.  So I went with literally the most basic concept and whipped it up in Adobe Illustrator in about 10 minutes.

Here’s how:

  1. Draw a square with rounded edges (through sheer experimentation, I used a 30 px radius on the corners).
  2. Draw a triangle.
  3. Join the shapes.
  4. Write “shift” in the middle using the font “Montserrat” which is all the rage with the kids these days.
  5. Save as transparent PNG.


Overall, it’s been a lot of fun coming up with the concept and hacking together a site that looks like something that’s legit.  In my next post, I’ll talk about the marketing plan for Shift SMS.

In the mean time, if you could follow @shiftsmsco on Twitter and Like Us on Facebook, that would really help with the experiment!




Spec work: Wayve

I’ve been spending a lot of time on the /r/startups subreddit and seeing a lot of cool startups.  Wayve, a sports app, was asking for an opinion on their landing page.  I decided to do a mock one that I thought was better.  What do you think?


wayve original



My version:



Which one do you like better?


How To Fix The 500 Error With Permalinks In WordPress on a Subdomain Using Apache

Hi Everyone,

just a quick follow up on my last post.  I have another WordPress install that’s hosed in a subdomain that was having issues with custom Permalinks.  And after a couple hours of guessing – I figured it out.

In your VirtualHost file (the file that should be titled “yourdomain.com” or whatever you have instead of .com) located in /etc/apache2/sites-available/, you need to make a NEW entry with the following:

AllowOverride All

Then save, and reboot Apache by typing the following in terminal/ssh:
/etc/init.d/apache2 restart

That should fix it!

How to fix the Not Found/404 page after using WordPress Permalinks on a server running Apache

So I recently bought a server for a year at Ramnode, just because I create a bunch of websites all the time and I got really tired of creating accounts on 000webhost.

In their defense, 000webhost offers an okay product, but unfortunately their generosity is often abused leading to their domains being blacklisted for things done on their servers.

This is sadly what happened to my podcast’s site, which is now banned from Facebook:

banned from Facebook


Anyway, back to the point.  After migrating my WordPress site, I noticed that there were issues with my custom URLs that were leading to the 404 page.  It took my a couple hours, but I finally figured it out.

Step 1 – Super important!

The absolute first step you have to do is launch rewrite in Apache.  This was the thing that I was missing.  To do this, SSH into your server and enter:

sudo a2enmod rewrite

Then reset apache by entering:
/etc/init.d/apache2 restart

Step 2 – AllowOverride All

Since my server hosts multiple domains, this step might vary, but in Apache there is a file called httpd.conf in /etc/apache2/ which does a lot of magical jibberish.  If you have multiple domains, this magical jibberish file is actually located in /etc/apache2/sites-available/___yourdomain___.

You’ll know you’ve found the right file when the first line in that file is:

<VirtualHost *:80>

In side that file, find every instance of “AllowOverride” and turn it into “AllowOverride All”.

Save the file, then reset Apache again by entering:
/etc/init.d/apache2 restart

 Step 3 – Optional – Change your permissions of .htaccess

So you may or may not have to do this step.  First go to Settings > Permalinks.  Select any link format that isn’t the default then save.  If it says “If your .htaccess file were writable, we could do this automatically, but it isn’t so these are the mod_rewrite rules you should have in your .htaccess file”, you’ll have to edit the file permissions of the .htaccess file.

The easiest way is to FTP into your directory, right click on .htaccess and change the number from whatever to “777”.  Then, go back into that permalinks page, select your custom field and click okay.  It will edit (or generate if you don’t already have one) a .htaccess file.

After that you MUST change your permissions back to “644”.  I cannot stress that enough.  YOU MUST CHANGE PERMISSIONS BACK TO 644 OR YOUR WORDPRESS INSTALL WILL HAVE A SECURITY HOLE.

If you need to do it using the command line, I’m sure you can easily google a way to do that.

That’s it!  Enjoy your new custom links!

Thanks a lot to Digital Ocean for providing me with Step 1 and everyone on the WordPress forums for the remaining steps.

How I did customer development while getting a coffee

Customer development while getting a coffee

I’m currently working on validating a SMS staff scheduling webapp called Shift SMS that lets managers push their calendars via SMS but also allow their staff to coordinate any changes on their own.  Shameless plug, please sign up for the e-mail list for the latest updates!

Today, I went to a local coffee spot called Manic Coffee when it was quiet and actually walked into their manager talking to their staff about their schedule.  What are the odds!  I immediately introduced myself and asked about their process when it comes to creating a staff schedule.  Here’s what I found:

What I already knew

  • They used paper
  • Their staff calendar was pretty consistent (a norm for places with less than 5 or 6 staff members)
  • Price sensitivity was high – they mentioned another app that cost $20 dollars with relative disgust
  • They knew of other apps which implies they might have tried to look for a solution in the past (great!) or they were pitched before (not that great)

What surprised me

  • They didn’t think that paper or excel was the best solution (great!)
  • They just didn’t think this was a problem that needed to be solved, even though staff changes were frequent enough to be a pain.
  • They asked if I worked in the service industry before I explained why I was asking (which makes this seem like a common pain point)

Overall, pretty interesting takeaways to go with my coffee.


My experience with Whatsapp in Hong Kong

So as you’ve probably heard, Whatsapp has been acquired by Facebook for $16 billion dollars in cash and stock.  I was pretty bullish on this purchase, but it wasn’t too long until the world of Twitter kind of lost their mind about it, so I felt compelled to share my personal experience of Whatsapp on my recent trip to Hong Kong.

1. Everyone and their mom uses Whatsapp

The very first thing that happened when I walked through the terminal doors into the arrival area in the Hong Kong area was my mom took a photo of me to share in her Whatsapp group chat with my aunts and uncles.  My mom did that.

It’s no exaggeration to say that Whatsapp is fucking everywhere.  I used Whatsapp to communicate to every single person I met in Hong Kong.  Classified ads and billboards on the street have Whatsapp numbers listed.  It is fucking everywhere.

2. People use voice notes in Whatsapp like a walkie talkie

While people in Hong Kong still talk on the phone, a lot of people are using the voice notes feature in Whatsapp like a walkie talkie.  Even I started doing it.  Go figure.

3. Whatsapp is so ugly and uncool that old people use it

The main strength of Whatsapp is that it appeals to a demographic outside of the tech savvy 18 to 35 year olds who have already moved on to other chat apps.  I saw a crap ton of elderly people using Whatsapp with gigantic fonts on phablets and it ironically did not break the UI of Whatsapp because it’s so crappy to begin with.  It’s a solid platform with a crap ton of users and I think that because of it’s wide spread distribution to people who don’t cycle apps too often, it’ll stick around for a while.

In conclusion,

Facebook clearly needs to do something with Whatsapp in order to get their money’s worth from this investment. It’s pretty clear that Facebook is buying the user base, but it’ll be cool to see what they do with Whatsapp to try recoop their cash.