Think Like An Evernote Programmer

Say_Hello_to_Your_New_Brain_on_Evernote__Company_of_the_Year___Inc_comSource: INC article on Evernote 2011 INC ompany of the year

I did a bit of work with Evernote for Windows 5.1.2.2387 (270387) Public last week. A reader who had found How to scan business cards, step-by-step with YouTube Video discovered that once the business cards were scanned, dragging and dropping the business cards into Evernote in one group APPENDED all the PDF files to one another.

So, what was wanted was “one card, one note” inside evernote. What was happening was “many cards, one note” in evernote. Inconvenient because it is just clunky not to have separate business cards in notes, especially since each card was a separate PDF.

And off we go …

I installed Evernote for Windows 5.1.2.2387 (270387) Public in my Windows 7 computer. Had the reader send me some PDF’d business cards, and then replicated the “many cards, one note” behavior. Check! Card PDFs were fine. Evernote Windows was appending PDFs as it copied N individual PDFs in.

Q. How do we fix this? A. Think like an Evernote programmer.

I’ve been using computers (mainframe and micro, I somehow skipped the mini-computer revolution) since the days of punched cards. I bought my first IBM PC for $5,000 on March 1st, 1983 precisely 1 week before the IBM PC XT (the XT was the first 10 megabyte hard drive sold by IBM for the PC) was introduced for the same price. :-(

So what? Well, so I’ve been using computers so long that “hacking” how to use them efficiently was required, just to use them. And one the the “hacks” I discovered along the way was to “think like the programmer” who wrote the software.

Step 1: Figure out what hardware the programmer was using while writing the software. Many problems were solved by keeping up with the RAM and operating system version that programmers were using over the years.

Step 2: Think like the programmer. What would s/he think is the elegant way to solve the problem? What would s/he think is an inelegant way to solve the problem?

Step 3: What do these imply for the way the programmer designed the solution in this case?

Step 1 can for the most part today, be skipped. RAM and OS have expanded to the point that they are rarely the core problem. So when I experimented with Evernote Windows I did not worry about step 1.

Step 2: What would the Evernote programmer think is the elegant way to solve the problem?

I had a *hint* about this from the fact that the business card PDFs were appended one to another. This was subtle *snub* from the programmer indicating that this was the NON-elegant way to solve the problem.

*Aside* Having worked with software engineers at many Fortune 100 businesses, I have the ability to simulate the software team meeting that decided to append files, in my mind.

  • I can hear the under-appreciated human factors person say “We should have many files dragged into Evernote create many individual notes in Evernote!”
  • and then the software team shouting him/her down with “No, that is so lame. As is intuitively obvious to even the most casual observer, the right (elegant) way to do this is to do X.”
  • And, as the software team joins in derisive laughter at the outnumbered human factors person, the issue is decided.

But, the human factors person is not finished, s/he pulls out the secret weapon of a reason for many PDFs, many notes.

  • “But … [waits for derisive laughter to subside] The Mac version of Evernote is many PDFs, many notes! The Windows version should be CONSISTENT with the Mac version!”

Silence falls across the conference room for precisely 2 seconds. Then exactly the same furor erupts that set Barrabas free and sent Christ to the Cross “Kill the human factors person, let his/her blood be upon us and our children!”

There are some things that just can’t happen in this world, and one of them is a large, gelled Windows/Linux software team consciously sacrificing to be consistent with a small, second class Macintosh software team. /*Aside*

So:

Hypothesis 1: Dragging and dropping many-to-many is NON-elegant to Evernote Windows programmers.

Hypothesis 2: There is another way “X” to import many PDFs to many notes.

Hypothesis 3: Find “X” and the problem is solved.

So, as every circa 1980s microcomputer person knows, finding X can be accomplished with the XKCD method:

xkcd__Tech_Support_Cheat_SheetSource: https://xkcd.com/627/

So I looked at Evernote’s menus and decided that “Tools” looked related to what I needed to find “X”. Then I dropped the menu and saw “Import Folders”

Windows_7

Aha! Step 3: Find “X” has been tentatively accomplished. “Import Folders …” is the way Evernote programmers thought would be elegant to import files many-to-many notes.

Hypothesis 4: Import Folders … is the way the programmer assumes is “elegant” to import many PDF files into many notes.

Step 4: Test solution found in step 3.

Short Answer:

Import Folder is indeed the way to import many-PDFs-to-many-files. But *YOU MUST CREATE THE IMPORT FOLDER WITH EVERNOTE OFF YOUR ROOT DIRECTORY for it to work. At least, that is what I had to do.

Once I did this, the business card PDF files *instantly* appeared in my Evernote account.

Long Answer: or Appendix A on Access Control Lists and Programmer Paradigms

Having to use Evernote to create the folder, and the folder only working off the C: root directory may tell us the species of programmers working on Evernote.

Hypothesis 5: Evernote is mostly coded by Unix programmers.

I  guess this because I was forced to create the Import Folder … with Evernote itself, and from the C: root directory

You see …

Unix and Windows use different file attribute systems. Windows uses a larger capability technology called Access Control Lists (ACLs). And when using a system maintained by non-windows-to-the-bone people, one runs into ACL problems.

For example, I was using a famous course management system once, and wanted to share an assignment between 2 classes. I read the instructions on how to do this, and followed them. When I clicked “share” the course disappeared from both courses.

CLASSIC ACL PROBLEM!

Because … an attribute was changed that is not within the experience of the Unix programmers who wrote the famous course management system.

Hypothesis 6: Evernote has an ACL bug! Hypothesis 7: The ACL bug does not like directories that are not in the C: root.

By using Evernote (a Windows program) to create the folder, I was implicitly correcting an ACL bug in Windows Evernote that was created by having a Unix programmer write the code.

I may be in the weeds here, but Evernote, if you are reading this, check me out on it. Not that many people understand ACLs to make this (possibly stupid) hypothesis. And, it would be nice to close the bug. The manager in charge of the course management software was so non-technical s/he did not have receptors for the term “Access Control List.” *Note* to Evernote, buddy can you “paradigm” and check out the ACL coding of “Import Folders…” that are not created by Evernote?

Hypothesis 8: Perhaps having Evernote create the folder off the C: root directory would work around the ACL problem.

Finish Step 4 by creating the import folder “Evernote” of C: from within Evernote.

This was the fix. Lessons learned:

  1. Think like the programmer, look for the “elegant” solution whether Mac or Linux or Windows programmers agree on what that is or not.
  2. Us the https://xkcd.com/627/ methodology to find what the programmer thought the elegant solution would be.
  3. When traversing the step by step of solving the problem, go slow, be a patient problem solver, and expect things to go wrong. Don’t let secondary problems derail your hypothesis of the elegant solution.
  4. The previous three steps are easier if you love working with software people and have done so since the “old days.”

Enjoy! :-)

Support RestartGTD by buying at Amazon.com with this link!

bill meade http://goo.gl/JkkEI8

3 thoughts on “Think Like An Evernote Programmer

  1. Pingback: “Import Folder …” for Macintosh Evernote Users | RestartGTD

  2. I may have been seeing Access Control List ghosts, it *seems* like if Evernote is having trouble seeing folders created by Windows Explorer (problem I had) that a tsunami of outcry would have insured the problem would be fixed. But, I had the problem and it set off my ACL alarm. Also, I am using 10.9.2 (at this time, the latest version of Mac OS X) so I thought it might be wise to post the potential of an ACL problem, because 10.9.2 and VMWARE Fusion + Windows 7 might have introduced an ACL bug that propagates down to Evernote through two operating systems! But no, I’m not paranoid! :-)

    I’ve worked in multiple software companies (email and HP) and the Mac team in the companies I’ve worked in have never been as large as =LN(Windows Team) in size. But, unless someone from Evernote sees this and gives us a ballpark estimate, we won’t know.

    I suspect that Evernote is not so much a Windows shop as it is a Python/Linux shop. But that is my *radar* talking, not data.

  3. Great post Bill, but I never create the Import Folders folder using Evernote, I do it with either Explorer or PowerShell, usually as C:UsersMeEvernote. Having created it I tell Evernote to use it. All works well. I can’t say why you ran into the problem you did.

    One other comment. I doubt that the Windows team at Evernote is larger than the Mac team. I suspect all the one of differences between the various platforms comes down to a management belief in letting a 100 flowers bloom and only worry about feature parity if a lot of us start complaining.

Leave a Reply

Your email address will not be published. Required fields are marked *