Jump to content
Introducing 'Templates' for Evernote Read more... ×
Notebook Limit Increase Read more... ×

Rob Freundlich

Noteworthy
  • Content Count

    97
  • Joined

  • Last visited

  • Days Won

    2

Rob Freundlich last won the day on May 10 2016

Rob Freundlich had the most liked content!

Community Reputation

104 Awesome

2 Followers

About Rob Freundlich

Recent Profile Visitors

1,318 profile views
  1. Rob Freundlich

    The Great Big Brand Refresh

    @jefito You make good points all around. Sounds like we're in similar places - our customers have very hard problems to solve, and they want something that gets the job done. For years, our software was incredibly utilitarian, and was used by only the most technical users at the customer sites. More recently, our customers have had more of a need for the less techie people to be able to use our stuff. Functional, Fast, and Cheap are still hyper-critical for the runtime software, but we've had to bring in Friendly and Usable on the UI side. That's been a huge bonus for me, because even though I do have a background in comp sci, the really hairy computational stuff doesn't really float my boat - UI is where it's at!
  2. Rob Freundlich

    The Great Big Brand Refresh

    The cynic in me wants to say "Clueless". <grin, duck, and run>
  3. Rob Freundlich

    The Great Big Brand Refresh

    You're a lot less cynical than I am - I've never seen the a branding change that made a difference, and was anything other than a pain in the <insert body part here> for the developers. ROFL! True. But a smart company listens to its employees and its users as well as "the market", or whatever drives rebrandings. And I'll play my part - I'll do the rebranding work when it comes up. I'll do whatever work the company tells me to do. But part of my part, as a very senior developer/programmer/engineer/whatever the heck we're calling ourselves this decade, is to tell management when I think a mistake is being made. Particularly since (a) my focus is user interface, so I'm thinking about the users all the time, and (b) my current company, the one I've been at for 10 years, has a very customer-centric view of the world. Because of that, I'm expected to speak my mind if something isn't right for the customers/end users - we all are. Maybe that skews my perspective as a user of other products, but TBH, I think it's the right thing for all employees in product-based businesses. Existing customers are what it's all about. In a well-designed system, where everyone who worked on it at all levels was smart and had the authority to make decisions, you're absolutely right. And as long as I'm dreaming, I'd like a pony. But yeah, I agree with you. And the stuff I'm working on now is a far cry better from that perspective than the stuff I was working on when I went through rebranding h*ll in the past. If my company handed down a decree from above tomorrow that we had to rebrand things (which, in spite of what I said above about everyone being expected to speak up, could still happen), it wouldn't be nearly as painful as my past experiences. But I'd still wonder, loudly, why we were doing it. Well, yeah, I mean, who am I to argue with Spock? ;-b
  4. Rob Freundlich

    The Great Big Brand Refresh

    It definitely matters to investors, because they don't care about the things that really matter. Maybe it matters to new customers, although I've never looked at a product that rebranded itself and said "oh, hey, now that they have a new logo and colors, I'll try it, even though I never did before!" But speaking as a software developer who has been at companies that did a rebranding, I can tell you with absolute certainty that there is at least one group of people who works there to whom the rebranding matters not one bit. Well, that's not quite true. It matters a lot, in that they had to put in a hell of a lot of time and effort to change their code in ways that had zero practical effect, and if they're like every other software developer I've ever worked with, they're not happy about it. So it matters, but not in a positive way.
  5. Rob Freundlich

    The Great Big Brand Refresh

    No, actually, we aren't. We can be satisfied by a product that does what we need it to do, efficiently and in which bugs and design flaws are addressed instead of remaining in the product for years. We can be satisfied by seeing the company put its resources into addressing those problems instead of into marketing fluff that appears, from the outside, to be intended to impress investors or attract new users, when the existing users are increasingly unhappy. Many existing users are not looking for significant enhancements to the product, we are looking for stabilization, bug fixes, and the correction of design flaws. In fact, many of the "significant enhancements" (for example, the recent emphasis on collaboration and other business features) did make the product more complicated and were unwanted by many of the existing users. Yes, that's exactly what they did. And before that, they decided "now" was the time to appeal to the masses by adding new features that many existing users didn't want, leaving the existing bugs and design flaws in place. It's a poor decision, to always look forward at what you don't have and never look at what you already do have.
  6. Rob Freundlich

    The Great Big Brand Refresh

    They clearly spent a lot of time on the rebranding. I hope that doesn't mean that rebranding matters the most to them. As opposed to, say, fixing all of the little things that have been bugging us users for years.
  7. Rob Freundlich

    Sync failed with errorCode=BAD_DATA_FORMAT

    I didn't catch on to that before. Interesting. It does pretty much invalidate my reverse-engineered design. I'm still baffled, though, as to why the actual implementation I saw in the database would get funneled down to any kind of slots for syncing. The notebooks and tags literally each have their own color and font attribute information attached to them in the database. If I were designing a sync protocol for that, I'd just have it send each notebook or tag's color/font attribute information with each notebook or tag so it gets compared/conflict-resolved like any other field. It seems like trying to turn them into some sort of named/slotted things that get synced separately would be an awful lot of extra complexity. Not saying that this is it, but on a casual inspection, it's fairly lading... That's note-specific, not notebook- or tag-related, so I doubt styles live there. Plus it's a 4K limit, which doesn't seem to relate to a 250-style limit, unless they're allocating a specific amount of memory per style and leaving room for other things.
  8. Rob Freundlich

    Sync failed with errorCode=BAD_DATA_FORMAT

    I find this whole 250-style limit to be very bizarre. I'm a software developer, so I'm going to take that one data point and reverse-engineer the most likely design from it, laying out my logic along the way. Point 1: There's a style limit. From this, I will draw the following conclusions about the design: 1. There is an entity in the Evernote system called a Style 2. A Style describes color, font attributes (bold, italic, etc) and has a unique identifier 3. Style entities are stored in a separate file or table from other entities 4. An entity that can be styled, such as a notebook or tag, has a reference to its Style entity - most likely the Style entity's unique identifier. Point 2: The limit on styles is 250. From this, I will draw the following conclusions about the design: 5. 250 is very close to 255, which is the number of unique things that can be identified by a 1-byte value. Therefore it is very likely that the unique identifier for a Style entity is a 1-byte value. 6. The file or table storing Style entities is, for some reason, limited to 250 (or, more likely, 255) entries. These aren't the only possibly conclusions, but they are logical, and fit the facts we have been provided with. Also, they are pretty minimal and simple, and in general, simple and minimal are often (but not always) the best. Based on these conclusions, plus the fact that Evernote is known to be built on SQL database technology, I will now sketch out what I'd expect to find in the database. #1: A table called something like STYLES, with an identifier column called something like ID, of type CHAR(1) (which is a single byte type), and columns for color and font attributes. For some reason, this table will have a maximum number of rows set to 250, if that is even possible. I don't know enough about databases to say whether it is. #2: A table called something like NOTEBOOKS, with, among other things, a column named something like STYLE_ID, which is an ID value from the STYLES table. #3: A table called something like TAGS, with, among other things, a column named something like STYLE_ID, which is an ID value from the STYLES table. Again, not the only possible implementation, but it's logical and fits the conclusions. Also again, they are simple and minimal, which often are the best. So now I'll close Evernote, fire up my DBBrowser for SQLite, and take a look at the Evernote database structure to see how I did with my reverse engineering. Here's what I actually find: 1. NO styles table at all. 2. A table called notebook_attr that pretty clearly contains all of my notebooks. Interestingly, it includes a column called item_color and another called item_style. For notebooks I haven't assigned a color to, item_color is -1 For notebooks that I have assigned a color to, item_color is the decimal value of the color's hex value For notebooks I haven't set any font attributes for, item_style is null (the SQL equivalent of "no value") For notebooks I have set any font attributes for, item_style is a decimal value 3. A table called tag_attr that pretty clearly contains all of my tags. Interestingly, it includes a column called item_color and another called item_style, whose values are similar to the values in notebook_attr (although the "no font attributes" value for item_style here is 0 rather than null. Interesting. The color and font information are stored with each notebook and tag, not in a separate table. So from a data storage perspective, there is no reason whatsoever for there to be a limit on styles. So where does this limit come from? Are they somehow condensing the styles into a structure like I reverse-designed as part of the sync process? If so, what on earth for?!?!? Why not just sync the information as-is? I'm baffled. And frustrated.
  9. Rob Freundlich

    Sync failed with errorCode=BAD_DATA_FORMAT

    Absolutely! I'm a huge fan of options, especially for something like this.
  10. Rob Freundlich

    Sync failed with errorCode=BAD_DATA_FORMAT

    I got a response this morning: Thank you again for the time to state your suggestion and your ideas about how tags could be handled within Evernote. I really appreciate this and hope that a feature update will address your request about the tags and the styles. If you have any further questions or concerns please feel free to reach out. Best regards, (I'll leave out the person's name to protect their privacy) OK, I'll accept that. It's a very appropriate response, and the kind of answer I'd feel comfortable giving to one of my own users. I'm a little skeptical, given how long the tag hierarchy thing, especially, has been around, but I'll give them a chance on this one.
  11. Rob Freundlich

    Sync failed with errorCode=BAD_DATA_FORMAT

    I have engage customer support on this, and the problem is that I have too many styles defined. Removing styles from some of my tags solved the problem. Here is the email I sent to support in response: It will be interesting to see what kind of response I get.
  12. Rob Freundlich

    EverTool app

    For some reason, my company decided many years ago that we'd use it (long before I got there), and now we've got too many solutions built around it to ever get rid of it. It's not quite as bad as jabbing yourself repeatedly in the eye with a sharp stick, but it's close.
  13. Rob Freundlich

    Sync failed with errorCode=BAD_DATA_FORMAT

    I just updated to the latest version, and the problem still happens. Nice tip about the List format - I didn't even know about the Sync information there! That yielded some very interesting results: there are a bunch of notes with a black outlined circle in the Sync column, and if I try to click one of them, an equivalent note elsewhere in the list, without the black circle, will be selected. The equivalent note has the same title and metadata, but different created and updated dates. Yup, time to ask support about this one.
  14. In the last couple of days, my syncs have started failing with errorCode=BAD_DATA_FORMAT. Here's the log of my last sync attempt: Evernote for Windows 6.11.2.7027 (307027) Public OS: Windows 10.0.0 User: ME Memory: 193 MB Created: 2018/07/22 11:19:39 --- Bootstrap info: loadedFresh <bootstrap_info><profile name="Evernote"><settings account_email_domain="m.evernote.com" cardscanUrl="https://cscan.evernote.com/cardagain" enable_facebook_sharing="1" enable_gift_subscriptions="1" enable_google="1" enable_linkedin_sharing="1" enable_shared_notebooks="1" enable_single_notesharing="1" enable_sponsored_accounts="1" enable_support_tickets="1" enable_twitter_sharing="1" marketing_url="https://evernote.com" service_host="www.evernote.com" support_url="https://help.evernote.com/hc/"/></profile></bootstrap_info> --- 11:19:05 [INFO ] [4084] [34132] 100% Retrieving lock status for 11 notes from "www.evernote.com/s26" 11:19:05 [ERROR ] [4084] [34132] 100% EDAMUserException: errorCode=DATA_REQUIRED parameter="authenticationToken" 11:19:05 [INFO ] [4084] [35396] Client synchronization started 11:19:05 [INFO ] [4084] [33180] 0% Loaded updateCount: 139041 11:19:05 [INFO ] [4084] [33180] 0% Usage Metrics: sessionCount=0 11:19:05 [INFO ] [4084] [33180] 0% SyncState: devices used: 15 11:19:05 [INFO ] [4084] [33180] 0% Client is up to date with the server, updateCount: 139041 11:19:06 [INFO ] [4084] [33180] 0% Updating server items 11:19:06 [INFO ] [4084] [33180] 100% Uploading 262 item styles 11:19:06 [ERROR ] [4084] [33180] 100% EDAMUserException: errorCode=BAD_DATA_FORMAT parameter="preferencesToUpdate" 11:19:06 [INFO ] [4084] [35396] Client synchronization finished, status: failed 11:19:06 [INFO ] [4084] [35396] * elapsed time: 1s Thoughts?
  15. Rob Freundlich

    EverTool app

    I want to put in a plug here for the EverTool App. I'm not the developer, just a happy new user. It's a Windows 10 and Mac app that takes the text on your clipboard and formats it. So you can cut text out of Evernote, open up EverTool, select a predefined format, and then paste it back in. Voila! User-defined styles. Here's the forum posting that pointed me to it. So what's so cool about it? First, it's a nice, convenient way to get user-defined styles in Evernote. Second, one of the options for a style is "Parse Markdown". So you can write your note in Markdown, cut it, go to EverTool, select a style that parses Markdown, and paste your text back in, and you've got a nicely-formatted note that you wrote in Markdown. Third, one of the options for a style is "Format code", with a zillion predefined code formats. Fourth, each style can have a keyboard shortcut. So even without the EverTool app open, you can cut text, hit the shortcut for your style, and paste it back in. It's not quite as seamless as having built-in styles in Evernote, because you have to cut and paste your text before and after formatting it. But still, pretty cool. Fifth, and best of all - the keyboard shortcuts are not bound to Evernote, they are system-wide (at least in Windows 10 - I don't use a Mac, so I don't know for sure). So you can actually use them in other apps. Let me say that again: You can use the keyboard shortcuts from other apps to add standardized formatting, including Markdown and code styling, on standardized keys in other apps. Want to write your Word documents in Markdown? Want to add a code snippet to an email? EverTool has it covered. I don't know whether the developer intended it to work that way, but if he didn't thank goodness for unintended side effects! Now, if he can just get it working on Windows 7, I can use it at work to more easily format my emails in Lotus Notes. At least then, something will be easy in Lotus Notes.
×