Rest API

Have been working a lot with the WP-Rest API lately, and getting it to display certain content on the public side. I needed a way to show the taxonomy terms so we can dynamically populate a front-end filtering interface on another site using the “server” site as the backend.

 

Changes

We have merged our on-site IT with Connect Solutions, so there’s 5 technicians that are able to support all of our combined clients. It has been a difficult decision, with lots of growing pains, but I feel as if it’s the best course forward!

Tourbase

Have been working hard on a listing system that will incorporate google maps, different viewing styles, and link directly into wordpress as both a server and a client plugin. It has been a lot of time and effort but we’ll be launching it soon!

WPBakery Shortcodes to Avada

There’s no easy way to migrate from one shortcode system to another, such as WPBakery to Avada, or using Divi and trying to move it over to Gutenberg. I wrote a simple script to take the basic WPBakery shortcodes and output them as plain text, hopefully saving you a bit of time in migrating old posts over to a new system. It covers the following three shortcodes.

  • vc_single_image
  • vc_column
  • vc_column_text
  • heading

It’s rough, but it works, and gives you some semblance of a working site. I used it in conjunction with another plugin, “Remove Orphan Shortcodes“, in order to completely move hundreds of posts from using the original WPBakery shortcode system over to Avada, without actually doing a large amount of heavy lifting. What it will do is process nested shortcodes (images within column as an example) and output columns with some margins. Much tweaking to this is possible.

Add this content to your functions.php and fix your WPBakery woes.

 

VPS to VHD

Need to back up your VPS that has little hard drive space to a VHD with the intention of hosting it internally?

Guess what – it’s not fun! Transferring data has to be done through the network, unless you have a second drive attached to the VPS that will handle what you need it do. You can back up to an attached Terminal Services drive, but it has some severe overhead and could take a week or more.

The best option I have found is to attach an Amazon S3 storage bucket. I used a piece of software called TNTdrive (https://tntdrive.com/)  that lets you mount your Amazon bucket directly to Windows as a mapped drive. The best part is, you can back up 50GB in about an hour depending on your host network and hardware speed.

The only issues I encountered were drive space – you need to make sure the available drive space is greater than the used space, as TNTdrive has to cache the information before uploading, in multipart, to Amazon S3.

Swing Migrations: Drupal to WordPress

I use a lot of tools when I migrate sites, and one of them that I’ve used a few times before is a WordPress importer that takes your Drupal database and migrates it into a WordPress format. It’s available here, and I’ve mentioned it a few times before – does a great job, although only a partial job (it doesn’t import images into the database and attach them, but there are other tools to do that part of it, including some I’ve written).

So this particular tool, unbeknownst to me, actually nukes your entire WordPress database before it imports the Drupal content. I’ve only ever used it on new sites before, so I didn’t think anything of it – I set it up as usual, connected it to both databases, ran the import script and …

Screen Shot 2016-07-29 at 10.24.25 AM

I found out that everything was gone. This is a site we’ve been working on for about 12 months on and off, waiting on designers, content, videos, new logos, etc – it has been a long time coming. Anyways, no big deal, I just went looking for my backup – and couldn’t find it.

It’s the best. I wanted to both throw up and lie down and cry at the same time.

Turns out I was just looking in the wrong folder, and had it restored in another 5 minutes, but it brings me to my next point – if you’re going to import data into an active site, do a swing migration. It’s simple, can be done in a few steps, and is no big deal.

Step 1.

Set up a new database, then import the contents of the existing WordPress database. In this case, I just called it temp, and gave the Drupal user access to it in preparation for the migration.

Step 2.

Perform the migration using the temp database instead of the live one.

Screen Shot 2016-07-29 at 10.30.04 AM

Step 3.

Switch the wp-config login details over to the temporary database. Make sure you save the original database login details first, comment them out or copy them to another file. The temp database should have most of the original WordPress database, so login details will be the same, everything will work, just no content will be available. Once you’re logged in, go to Tools, Export, and pick your content type and date range. For this usage case, I picked everything in the past 12 months, which was after the original database import was performed. It will save it as an XML file which you can use to import.

Step 4.

Change the wp-config login details back to the original database login details, log in, and again go to Tools, but this time go to import. Click on WordPress at the bottom, install the import plugin, and run it.

Screen Shot 2016-07-29 at 10.35.54 AM

Choose the XML file you just saved, import it, and let it run its course. You may have to change some settings if the authors don’t match, and you may run across some post duplication, but it will import everything you need.

Step 5.

Clean up the import – Drupal has some annoying quirks to it with the default settings, like using nodes and permalinks only containing numbers. Some of the tools I use to clean this up include generating post slugs to match the title, then migrating the images from these same posts (both plugins that I have written as tools to migrate Drupal to WordPress). Really, some of these steps need to be done on the temporary database before you transfer the posts to the live database, but at least you get the general picture. You’re all set at this point to continue working on your live site.

Free Tools for Small Business

I just wanted to share a few of my useful vendors that make my job easier – from an accounting, time and task tracking, and taking payment point of view. I have tried a ton of them, some paid and some free, and settled on a few that make my life easier without a sticker shock, that balance features and functionality with that cost. Free is always better, obviously, but at some point you do need to pony up to the next level: some tools have per-transaction fees but are for the most part “free”.

So first off, accounting – I had been using Quickbooks for years, but the only problem with that is you need to either have the computer that quickbooks is on with you, and typically that one needs to be Windows based. There is Quickbooks for OSX, but I wasn’t willing to shell out the money (again) to switch to the Macbook I do web development work on. You also need to manually track payments and deposits, process payment manually, and good luck writing an invoice when it’s not with you.

Accounting

My colleague over at UFV, Anthony, told me about the online software package he uses – Wave. To give you an idea of what it does, take a look at the screenshot below. Everything you do on it is free – invoicing, tracking expenses, linking it to your bank account to monitor transactions, reporting, etc. It lets you invoice, receive payment, and track deposits all from your browser.

dashboard

Where you pay is when you want them to process payments online – yes you can send invoices and process them manually, but it’s so much easier when a client opens up the invoice, is presented with a payment option, and can enter in their credit card details right away. It takes about a week to set up payments, and requires your license to be scanned and business information to be sent over. After that, it’s smooth sailing, with about 2.9% per transaction and no monthly fee. If you want payroll options it is about $10 a month over and above that.

Task Tracking

If you have a problem with distributed work, where you’re not in a single office all day every day, hop on the Wunderlist bandwagon. It was so good that it was bought by Microsoft, but still does everything that made it famous before, for free.

all-devices@2x

It works on all devices, has grouping for types of tasks, task checklists, notes, options for reminders (including email reminders), collaboration with co-workers and colleagues, and an app on all platforms. Again, free.

Payments

squareKind of a big one – you want to get paid for your work, right? Well you definitely have the option of using Wave, but for other transactions where you want the person to sign, maybe swipe their card, and pay slightly less per transaction, I use Square. 2.65% per swipe, no monthly fees, and all you have to do is carry your phone with you – wait, you do that already! Awesome!

I mean, really – why are people paying an arm and a leg for merchant fees, a terminal, and another cell connection for one you take on the road with you, when you can just have the ease and simplicity of something that you just need an app for?

Anyways, it takes about a week to link to your bank account, but I use it pretty regularly when I just want to quickly process a card and most clients pay by cheque.

Banking

rbcYes, that’s right, you need a business bank account in some cases, especially if you register the business or incorporate. Wave, Paypal, and Square all allow you to use your name (and subsequently your personal bank account) as your business, but if you want to be a recognized business then you need to pay up the $100-odd dollars it takes to register and run a name search. Worth it!

In terms of business banking, RBC appears to have one of the better options around – Free. Find out more about their current campaign. I had originally started using their $6/month account, but then switched to their e-account, as you can basically do all of your online transactions at no cost. For cheque deposits it hurts the pocket as you pay a per transaction fee, so I now have both – $6/month for chequing, and free for savings (you can use the debit card anywhere for free, online transfers and transactions for free, etc). Just bring your registration papers with you and you’ll walk out with everything you need.

Call Direction (Phone Mailboxes)

I figured I would add this in as an afterthought, as I have quite a few clients set up on RingCentral using their 1-800 service. Basically, for $30/month, you get a virtual phone mailbox (pbx) system which will answer your calls and direct them to the right mailbox (press 1 for accounting, 2 for service, etc), as well as a host of other features. Call forwarding, screening, Area-code redirection (for instance, if you have multiple locations in different calling areas, person “a” in the 123-#### calling code area can reach store “a” and person “b” in the 321-#### can reach store “b” without a huge amount of effort and setup on your end. Voicemail to email too!

ringcentral

Congrats!

Well, there you have it: Your business is equipped to handle everything you need, at low-to-no monthly cost. Worth it!

 

Incorporation

You know, after getting slapped with a big tax bill and realizing I should have incorporated sooner, I am finally at a place which is awesome. I have a new company name, Infinus Technology, work with some great people, and the only person to be angry at when things don’t get done is myself. Since I’m pretty good at keeping account of my time and tasks, I can only hope that it carries over to growing the business – which has added four new clients in the past two months, and several websites. I have been getting Nicole to design things – as finding time is hard – and Bryan has been jumping in all over the place when I get called out to meetings or other client issues. Couldn’t do it without them. So incredibly lucky.

Social Aggregation

Social network aggregation is the process of collecting content from multiple social network services, such as Instagram, Facebook, Twitter, YouTube, etc. into one unified presentation. The task is often performed by a social network aggregator, which pulls together information into a single location, or helps a user consolidate multiple social networking profiles into one profile.

^ That’s the definition from Wikipedia – and boy are there a few out there now. All very expensive. I bet you they have some pretty heavy overhead costs too!

What we’ve done with Afterglow is let you pull in a bunch of your favourite social feeds into a single page. You can run multiple campaigns on each feed – such as a hashtag contest on Twitter, then an image contest on Instagram, and why not throw in your RSS feed from your blog posts and some Facebook engagements for good measure? I just added #hashtags for Instagram today, and tweaked the instant-loading nature of the homepage so it gives you a fast (better) example of real time updates, rather than having to wait 60 seconds for it to refresh. Turns out people don’t have that kind of attention span. Who would have thought? 🙂

http://afterglow.me

I’m the Fommy

Well, close enough anyways. I’m the father that does the job of a “stereotypical” mother. Because why not? Why should the moms get all the fun? I’m the one who drops the kids off every morning, and picks them up every afternoon – the first face they see in the morning and the last they see at night. I left my job two years ago to work from home and not only did it save us a ton of money but I got to spend 24 months with these guys:

Awesome day with the boys!

A photo posted by @thebrendancarr on

But that means I’m now in a state of flux – what to do next? Do I keep doing what I’m doing or go back to working a regular steady job and end up putting the oldest back in after school care?  I’ve had time to bring some more changes to Afterglow (including real time social streaming and an updated dashboard, plus more feeds via APIs)… and launch that email service… plus have been much more involved with the clients I do have, which they are much happier with. Time will tell!