Browsing Category:



Why I Cancelled Evernote

February 3, 2017

Evernote is a note service that allows synchronization across devices. The concept is incredibly useful – edit the same note from many different places. After 2 years of using Evernote, however, I’ve cancelled my subscription.

There are a number of reasons that users were pushed away from Evernote, including a privacy policy SNAFU. The lessons learned from their lack of communication or proper wording are worthy of examination. My gripe arose when Evernote made a change to their subscription plans. Free users, once able to synchronize notes across unlimited devices, were limited to 2. In doing so, they made an important assumption: synchronizing notes across devices is what users will pay for. Free users received a downgrade, and asked to pay for what was taken away.

Finding a profitable model can mean losing users.

In building startups of my own, I’ve come across the problem Evernote undoubtedly faced. Users will use a free version, but how can you get them to pay? Tech companies have a lot of expenses: developers, servers, and more.

With that in mind, creating a payment model can be difficult. A freemium product needs to do two things, draw in and upgrade users. The free offer needs to be tantalizing, and the paid version needs to provide enough value to call for a paid upgrade. In my personal experience, their choice of what to charge for is not something I’m interested in. On top of that, their limitations to the free plan eliminated what I liked about the platform.

The meaning behind big decisions

What this shows is their trend away from customer-centric to a business focussed on revenue. Perhaps they were unsustainable, or perhaps they were pushed by a stakeholder. To be clear, this isn’t my gripe. What I’m saying is that while there are many things Evernote could have charged for, they are charging for something I would not pay for.

Evernote has the right to do this, and we have the right to switch services.

Evernote is well within its right to change its plans. There’s no faulting them for that. But that doesn’t mean us users have to like it! To be clear, I don’t feel entitled to Evernote’s services. However, if they expect me not to switch to a different platform, they should entice me to pay by adding value to the paid version, not taking value away from the free.

Many people are very passionate about the services they use – see the Cult of Mac, for instance. For now, I’ll be sticking with Microsoft OneDrive. The OSX app still has a bug or two, but it syncs across all my devices, has absolutely everything I need, and runs smoothly. Running smoothly is, incidentally, another thing Evernote is struggling with.

Love Evernote? Hate it? I’d love to hear your feedback!


Thanks for reading! Next week I’ll dig into a business topic – maybe user testing?
Give me a shout on twitter!

Join the Conversation


Why Don’t People Use Strong Passwords?

January 12, 2017

Chances are that you use lots of online services, each one asking you to create new passwords. If you’re like most people, you’re only going to have 1 or 2 that you remember. After all, there are a lot of different sites to log into! Why bother making a new one every time?

Unfortunately, it’s time for a bit of a reality check – passwords are the bottom line of security. No matter how secure a service is, an attacker can easily access your account if you use a bad password. This is critical to note for a number of reasons – for instance, an attacker with access to your email account can reset the passwords on services you use, locking you out. As a result, you could find yourself without access to your online banking, professional email and more.

In this post I’ll explain a common way accounts are hacked, what weak passwords look like, and what you can do.

Why this is Important

Simple software used to hack into people’s personal accounts, like their Facebook account, will launch brute-force attacks. A brute-force attack, in this context, is when an attacker systematically guesses your password until they get the right one. Many pieces of software exist to automatically check every possible combinations of letters, numbers and words until it figures your information out. The reason why so many services lock you out if you incorrectly enter your password a number of times is to prevent this type of attack! To emphasize the point, a lack of lock-out protection is how hackers were able to steal photos in the 2014 iCloud celebrity photo leaks. They scraped interviews with celebrities for key words and phrases like pet’s names and familiar streets, then used programs to guess their passwords.

Common Weak Passwords

Before guessing random combinations, good software will guess from a list of people’s most commonly-used passwords. Companies like SplashData determine that list by scraping information from some of the biggest data leaks, like the Ashley Madison Hack. Using this information, we can determine the most common passwords that people used, listed here:

  1. password
  2. 123456
  3. 12345678
  4. 1234
  5. qwerty (if you’re curious about this one, look at the first 6 keys on your keyboard)
  6. 12345
  7. dragon
  8. p*ssy (let’s assume this one is about cats…)
  9. baseball
  10. football

A full list can be seen here. If your password is on this list, please try to come up with a better one! If anyone wants to gain access to your accounts, it will likely be trivial for them. Similarly, see below for a list of the most common 4-digit PINs (for iPhones, etcetera).

Most Common Passwords

Source in image: Nick Berry of Data Genetics

Most modern phones only give you 10 guesses before starting to lock you out, but that’s enough to get into almost 25% of phones.


Keeping yourself secure is actually a relatively simple process. First of all, see how secure your average password is with an online tool, like Then, consider implementing some of the following pieces of advice:

  • Don’t re-use passwords. One great password is useless if someone knows it!
  • Consider activating two-factor authentication (2FA) wherever possible. 2FA will occasionally use an emailed code or text message to confirm you are who you say you are.
  • Try a password manager like 1Password. Password managers allow you to make complex passwords on the websites you use, while only having to remember one simple password yourself.
  • Don’t needlessly share your password!

Well, that primer was a little longer than I was expecting to write. I hope you found it a useful starting point for protecting yourself!

Join the Conversation


Your First Programming Language

January 9, 2017

Recently, I responded to Business Insider’s shamelessly sponsored fluff piece on what your first programming language should be. Their recommended language is Python, because it’s simple and popular in the job market. While that’s true, it doesn’t mean that Python is what a new programmer should learn. I’ll explain why the advice is bad, how to actually pick a first programming language, and conclude with examples.

Why the advice is bad

First off – many people who get started with programming have no idea what to expect, and for good reason. We have a societal perception of programming as boring, but everything we see on the screen is so exciting! Sorry to burst the bubble, but realistically, your first program is going to be simple, text-based, and kind of boring.

That said, your first programs could be much more interesting, while still teaching you the basics. There are many simple languages that will allow you to do interesting things quickly – like designing websites or putting graphics on the screen. Processing, for instance, is a language for art and design that will have you making cool things quickly.

According to Business Insider, in Python “if you forget your parentheses or misplace a few semicolons, it shouldn’t trip you up as much as it might if you were coding in another one.” This is terrible advice for a new programmer. Bracket counting should be automatically handled, and your code isn’t going to work if you forget semicolons. On the first point, the web is full of free coding environments that provide bracket completion and matching tools. They’re called Integrated Development Environments, or IDEs. Furthermore, you’re going to find that missing brackets and semicolons will almost always break your code. Finally, and employer would never hire a programmer who couldn’t remember brackets and semicolons. Don’t be discouraged if you forget them for a while, but that’s a skill that needs to be enforced from the beginning.

What your first programming language should actually be

Let me be clear: Python is a great language, and if that’s going to be your first choice, more power to you. But, most humans are motivated by results – and with Python, you’ll be seeing exciting results slowly. That’s why you should take a step back and think: “What do I want to program?”

Here’s the secret – you’ll be motivated if you pick something to do, and then learn how to do it. I’ll provide a couple of quick examples, but you should do your own research as well!

I want to make a….

Website. Try Javascript!

Mathematical Model. Try MATLAB!

Game. Try the Unity game engine!

…I’m not sure!  No worries. There are lots of good ways to learn the basics – writing code, control flow, and more. While Python isn’t a bad choice, I’d recommend Processing. With Processing you’ll be writing simple code that will have cool, quick results. It should be a fun exercise for anyone trying to get into the field!

Thanks for reading, and I’d love to hear your thoughts!

Join the Conversation


Writing Good Technical Documentation

January 7, 2017

The time arrived to write technical documentation for our product, X Life. Our goal was to achieve the thoroughness of a wiki and the fun of Valve’s Handbook for New Employees.

We used Google docs so we could work together at the same time, which proved to be a fun exercise!

Building Good Documentation

Most of what worked in our documentation came from discussing it beforehand. The developers split up and brainstormed what they would want to see if they were reading new the technical specs. When we came together to share our lists, we were able to organize a rough framework very easily. We start a few notes for new developers, then an overview of the tech stack and details about the repository. Next is an in-depth look at some code, and finally, an FAQ section. This structure created a nice document that flows naturally.

A trick that helped readability was gradually adding code examples instead of overwhelming with them at the beginning.

Making it Readable

Our audience is mostly people familiar with the site who want a place for quick reference. With that in mind, we were able to cut out dry verbiage and keep helpful tips for new team members. Interestingly, following writing guidelines that help optimize blog posts for search engines helped keep to keep our writing sharp.

One of the most helpful tricks was to say exactly 1 or 2 things about each topic. This ensured that everything was explained, but brevity was enforced!

The End Result

What started as 5 pages of topics quickly became 25 pages of background and dependancy information, but we weren’t done. After 2 days of writing technical documentation, we ended up at 40 pages! Luckily, every section is brief and easy to reference, making the document quite readable. Many sites suggest using software to generate documentation. That might work for logging the usage of individual functions inside the code, which would be great for large companies. However, we’ve been recording function usage since the beginning, and decided that auto-documentation software wasn’t worth the money.

I hope that you find our experience writing documentation useful for yourself. Let us know in the comments if you have any of your own tips or tricks!

Join the Conversation