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 (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, 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.

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 “” 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.

Thanks IBM support chat. You are the worst.


The following is a completely real chat between me and IBM Websphere is fucking terrible

Chat InformationPlease wait for your IBM Sales Consultant to respond.
Chat InformationYou are now chatting with ‘Brian P.’
you: Hi Brian
you: I have a quick question about the eCommerce Edition of Websphere
Brian P.: Welcome to IBM’s Pre-Sales Chat.
you: I’m compiling a report regarding the features of websphere
you: I want to know if Jquery sliders, as well as other Jquery features are enabled by default
Brian P.: To be honest, your best bet is to use Google.
Brian P.: It is the easiest way to find information
Brian P.: I used IBM Websphere%Jquery sliders and found information
you: What is google?
you: Sorry, what is a google?
Brian P.:
you: is this a feature of websphere?
Brian P.: No, it is an application online that helps you find information
you: so if I buy websphere, I will get this google
Brian P.: Sterling Commerce was execellent at adding information to the web
Brian P.: No, Google is a search engine for information
you: So how do I buy a google
Brian P.: Google is a search engine only
Brian P.: Go to
Brian P.: For information only
you: I just had a word with my boss, and she is very interested in buying a google for our enterprise
you: How much is this engine?
Brian P.: This search engine is free
Brian P.: go to
you: We do want the IBM google
you: We don’t trust such an unknown company, we prefer to work with IBM
Brian P.: Ok, may I have your name, company name, and address?
you: Thank You Brian P, I have all the information I require. much success.

Building a game in 48 hours at the Toronto Global Game Jam!


The coolest thing I’ve heard about this year is the Toronto Global Game Jam!  For 48 hours, over 300 people are going to be gathered in teams to build a new game from the ground up, with hundreds of cities around the world doing the same thing on the same weekend.  I have no idea what is going to happen, but it sounds like a nerd fest of epic proportions.  I’m looking for a team to join, so if you are looking for someone with some product and writing skills – shoot me an email @ contact (at)

For more info, follow @Torontoggjam and @IGDAToronto on twitter – see y’all there yo.