jedidja.ca

There's always something new to learn today

Uhm...WoWwwww

I've been having a lot of fun playing Hearthstone recently; what's kind of interesting with the new Battle.Net app launcher is looking at your purchase history with Blizzard.

Somehow, between 2005-2007 (I blame Timm) and 2010 (I blame Brad, Scott, and Peter), I managed to spend over $500USD extra (mostly at a time when the Canadian dollar was substantially lower) on a $60 game.

Well done, Blizzard. Well done :)

Developers + Canadian non-profits = success

or

How to help out a Canadian non-profit on a shoestring budget.

I've been trying to share my progress with helping out the Orléans Festival over the last few months, all the time saying to myself – I should really write one comprehensive page about all this.

Are you a developer? Do you live in Canada? Read more about why you should be helping a local non-profit.

After talking with a few people, I'm hoping that I can provide a list of services that developers can use to help out Canadian non-profits in their community.

tl;dr - Sign up for (at least):

All of this information is geared towards assising non-profits who have zero or no budget to spend on technology (like mine). For full disclosure, I have spent some of my own money on services (as a donation, because I think it's worth it) and have pointed that out where appropriate.

If you know what a CNAME record is, skip parts 1, 2 and possibly this entire post!

1. Domains

You must be master of your domain.

For an organization who doesn't have a domain name (e.g. orleansfestival.ca), go and register with a provider like EasyDNS. You might also want to register the French version (e.g. festivaldorleans.ca)

If the organization you're working with already has a domain/website, ensure that they also own the account where the domain name is registered. A simple way to verify this is to ask "when is our domain name scheduled for renewal?" — a blank look is not a good sign.

With a blank look, you can start digging for information. Your domain name needs to be renewed on a yearly basis (usually) and with Murphy's Law in full effect for technology, you know that the registration will expire one week before your event/fund drive/etc. Figure this out now sooner rather than later!

2. Identity

You need to either own or register your non-profits name with Twitter, Facebook, Google+, Pinterest, etc.

Trust me. Do it now even if you don't intend to use it. Trying to "recover" a name later on is not fun.

At the very least, you can point these accounts to your domain name (registered in step 1).

3. Website Hosting

As we discussed earlier, "free" or "unlimited" web hosting may not be the best option for your site. If you're working with a non-profit that has one event per year and something goes wrong because your server neighbour is sending a million 419 Scams emails, your patrons will be less than pleased.

My research over the last few months (Oct 2013 - Jan 2014) indicates that Azure is probably the best bet given that you can host pretty much any platform (ASP.NET MVC, PHP, Node.js, etc.), storage prices at least match Amazon S3, and you can scale up or out whenever you need to.

4. Email

There is no question here - sign up for Office 365.

5. Document Storage

This one is a little bit tough. As I mentioned earlier, the best choice for total space (and privacy for Canadians) is definitely sync.com.

However, if you sign up for Office 365, you do get a ton (25GB) of free storage (via SkyDrive Pro/Sharepoint). And the online editors for Word/Excel are hard to beat. Unfortunately syncing a massive amount of documents can give you some pain. After that, all is well.

6. Version Control

If you haven't yet jumped on the Git bandwagon, then visualstudio.com is the answer for you. Anyone with a CVS, SVN, or Sourcesafe (gasp) background will feel right at home. Your projects are all private by default, and you don't need to submit any special paperwork to get extra priveleges. Also, the integration with Azure hosting is very cool. More details here.

Github is also very cool and does offer a great deal to non-profits. Just make sure that anyone helping you out down the road also knows Git...

7. Crowdfounding

As a non-profit, there is a surprising limit as to what is accessible vs a charity. Long story short, for a Canadian non-profit you probably want to use Causevox.

Go here for slightly more information.

8. CRM (Bonus)

Non-profits need to raise money every. single. year. I recently learned that they're only allowed to end each fiscal year with +/- $1000 unless there's proof that they are saving for something (e.g. a building).

You can imagine that fund-raising / sponsorship / grants are a huge things for non-profits. Unfortunately for Canadian ones, I haven't come across anything that's free.

  • Salesforce, regardless of what their webpage claims is NOT available to Canadian non-profits. I've asked them to update their wording.

  • SugarCRM doesn't seem to have any deals for non-profits.

What does that leave? The cheapest, again, is Microsoft's offering. You can get Dynamics (Basic) for $3.75 CAD/user.


Join a community of like-minded developers who want to help Canadian non-profits.

Why Canada needs more developers ... who care

There has been a lot of talk in the last year or so about North America needing more developers. Regardless of whether or not that's true (it's not), I honestly believe that we need more developers who care about their community.

Let's face facts: we (Canadian developers) are a priveleged lot.

If you are billing Canadian clients $50/hour, your annual income* is (at least) equal to the average household income of around 76,000.

A Canadian consultant billing an American client $100USD/hour just got a 10% raise in the last month. For free. Their daily raise is almost equal to what someone on minimum wage makes in a day.

So don't tell me we're not priveleged. But we are special. And needed.

Whether you are someone dedicated to the cause who spends free time watching Pluralsight videos and honing your skills, or the developer stuck in a boring job who only shows up at work to collect a paycheque and spends free time racing motorbikes, you are still needed.

I am consistently amazed (or perhaps frightened) by how non-profit organizations here (and around the world) deal with technology. They are doing good work and often stumble along with a mismash of Excel spreadsheets, random free websites, and mostly just clueless best intentions. They can use our help.

Call to Action

Usually a CTA is supposed to be somewhat subtle, but in this case let's make it very obvious :)

We as developers have skills that can be put to awesome use outside our day jobs. Donating money to a good cause is one thing (and very encouraged) but I firmly believe that we can do much more by donating our time and knowledge.

Because there are only 24 hours in a day, the only good reason for us to volunteer at a soup kitchen is for the experience. There are undoutbedly hundreds of other people who can help in that respect.

But there aren't hundreds of people who know that SASS is better than LESS, or if you deploy your website properly then scaling happens at a push of a button, or even that creating a cross-platform mobile app is possible. Or that C# is better than Java. Ahem :)

Non-profits in Canada need our help and we are in a very unique position to help them. Spend a few minutes today thinking about organizations in your community, contact them, and see how you can improve their use of technology.

One More Thing

After writing for the last few months about what I'm doing with the Orléans Festival, there's a chance that making a page of exactly what Canadian non-profits can use might be useful. Please check it out, leave a comment if you can help improve the information, and definitely share it whever you can :)

* Assuming 4 weeks of vacation and 10 days of public holidays, then 46 weeks * 37.5 hours/week * $50/hour = 86,250. Since businesses have to pay both employer/employee CPP and EI contributions, it's got to be close to $76k when all is said and done. Except you also get to claim deductions, so you're still ahead.


Join a community of like-minded developers who want to help Canadian non-profits.

Crowdfunding your non-profit

You may have noticed a trend among many of my posts relating to the Festival: I have practically a $0 budget to work with. Perhaps in upcoming years I can work on that, but being the first time in this position I'm doing whatever I can to stick to the current "budget".

I did some research this morning, and here's what I came up with; hopefully it saves you some time.

Possibilities

CauseVox - free until we hit $5000/month in donations then switch to monthly (http://www.causevox.com/pricing/). Site is quite professional and gets my vote. Would appreciate people taking a quick look at others on the list to compare, though.

Check out our site on CauseVox!

Indiegogo - although we don't get the benefits of being non-profit (only applies to US ones). Fees depend on which option you choose. (http://www.indiegogo.com/how-pricing-works-on-indiegogo)

FundRazr - We qualify for "lower fees" under non-profit (http://support.fundrazr.com/hc/en-us/articles/200055273-Can-I-Raise-Money-For-Charity) but I can't find exactly how much lower. Ensure your PayPal account is registered as a Non-Profit. (https://fundrazr.com/pages/service-fees)

Haricot - A possibility. Based in QC. 5% fees (http://www.haricot.ca/page/how-it-works)

Fundo - Also from QC. Feeds depend on which option you choose (https://fundo.ca/en/home/pricing)

Fonpop - Also from QC. Can't tell if there any fees involved. (http://www.fonpop.com/en/faq.html)

Weeve - totally free, but not sure what "Acquired by LX Ventures" might mean (http://www.weeve.it/landing)

TrendTrunk - very different way of fundraising (https://www.trendtrunk.com/fundraising)

GreedyGiver - If we had stuff to give away... (http://www.greedygiver.com/FAQ.php)

MotherlandFund - Site looks terrible. Fees are nothing special either (http://www.motherlandfund.com/pages/how-it-works)

Ones we can ignore

Kickstarter - not for non-profits or donations. Must be creating something

Giveffect - only for Charities

Catalyst - only for "social change"

Legup.ca - looks very low-budget and doesn't appear to work for organizations yet

ideacious - only for products


Join a community of like-minded developers who want to help Canadian non-profits.

Librarian in Training

I've probably spent at least eight hours over the last few months attempting to get all the Festival files (documents + photos) collated, organized, and backed up. Here's where I've learned so far.

Services

  • Dropbox just doesn't cut with only 2GB of free space. They used to offer 30% off Dropbox for Business but I can't currently find a link.
  • Google Apps for non-profits doesn't apply to Canadian non-profits. They also have weird duplicate/triplicate file sync issues.
  • Box.com offers 10GB for free on their personal plan but doesn't seem to have any specials for non-profits.
  • There is a special place in hell reserved for Sharepoint/SkyDrive Pro. More on that later.

Luckily, there is a new-ish player in town that is perfect for Canadian non-profits: sync.com.

Not only do they have awesome and friendly customer service, they are offering 12GB free to Canadian non-profits. Currently you have to sign up for the beta and once you have an account, just email their tech support with your relevant information and you'll get an extra 7GB for free.

What happened to Office 365?

File management is one area where Office 365 falls flat on its face. Where to begin?

  • The lack of transparency is mind-numbing. Where are the logs? Where is the status window showing me exactly what's happening between my client and Sharepoint? The filewatcher (groove.exe or skydrive.exe?) is arbitrarily slow in picking up changes and it's impossible to see what it's thinking or doing.

  • There appears to be no way to determine the sync mappings from a Sharepoint Site to a specific local directory. If for some reason this breaks (as mine did) you cannot point the sync at an existing folder; instead it creates a brand new one and downloads all 2GB (or whatever) again.

  • Is it possible to easily move a set of files/directories up one level via the web interface? Or to a new directory? It's not obvious.

  • By default, no one has permissions to a new document library you create. Also, you don't get any emails when people request access.

  • Good luck trying to find the place to give people access to your document library too. It's hidden in a very odd place under the gear icon / site settings.

  • You cannot have more than 5000 files in a library, regardless of total size.

  • Making too many changes on the PC client will result in some of them being undone. I've been playing with four directories containing ~2200 files for the afternoon and I have to double-check that anything involving more than 100 files or so has actually synced. There are certain directories I've had to move 3 times to their new location.

The last two points are so onerous (and something that no other sync service has issues with, except for Google Drive in its own special way) that they've even posted a warning in the admin section. Bleh.

What about Google Drive? Surely they did a better job...

Nope. Sync your Google Drive folder to a drive that doesn't contain your OS. Magically, it will create duplicate/triplicate copies of all the files.

Long story short? Use sync.com.


Join a community of like-minded developers who want to help Canadian non-profits.

Web hosting for your non-profit's website

I really need to spend some time and write a full page combining all these posts into step-by-step instructions. Maybe by the end of the month :)

With the source code for your website safely stored away, it's time to find a good place to deploy it. Since I come from a strong .NET background and had some slightly complex ideas for this year's site, the Linux-based PHP hosting we originally had wasn't going to cut it. My immediate thought was Azure and since you get 10 free websites I figured it was ideal.

Except for one thing. You can't host custom domains on the free accounts :(

And there's no way we are going to have people visit orleansfestival.azurewebsites.net instead of orleansfestival.ca or festivaldorleans.ca.

Unfortunately I realized this way too late and had already convinced the committee that switching was free unless we needed to scale. (Keep in mind all these tasks I'm writing about are being done with a $0 budget).

So I bit the bullet and decided to donate the $10/month for hosting to get us through till September 2014. And now I'm glad I did.

The updates rolling out to Azure bit by bit (including reduction in pricing to match S3 storage) are always welcome news. The most useful features I've found revolve around the integration between visualstudio.com and the actual Azure deployment.

Awesome Azure Website features

(that I've used so far)

  1. You can connect your website to a visualstudio.com project (repository). Any commits to that repository will automatically deploy a new website.

  2. You can enable online editing directly from your Azure dashboard. What this means is you get a live copy of your repository, in a nice editor, where you can make changes and see the result immediately. When you're happy, you can push the changes back to visualstudio.com as well!

    Visual Studio Online "Monaco"

    (Yes I know I said in the last article I chose visualstudio.com because the Git learning curve can be high. But since I'm the only dev currently I can choose Git and then always switch to TFS if and when I get help. I wouldn't have that option on Github).

Other Options

There are so many webhosting companies out there I am sure other sites have put together up-to-date comparisons. I would caution people to be wary of any "free, unlimited bandwidth, unlimited space" hosting options, though. Although I don't have the details on it, I know the Festival was unfortunately hit with an outage from that type of site in the critical two-week period before the event.

For .NET developers, my experience with discountasp.net has always been decent, but even their current deal (which requires an annual subscription) can't beat what you get for a pay-as-you-go Azure shared website (and certainly does not include the cool real-time editor).

I have zero experience in deploying PHP, Ruby/Rails, or node.js apps but I've heard a lot of good things about Digital Ocean. Keep in mind, though, that Azure supports all of those platforms too :)


Join a community of like-minded developers who want to help Canadian non-profits.