Jump to content


Level 2
  • Content Count

  • Joined

  • Last visited

Everything posted by SamHasler

  1. I might have an action ## such as "Take car to garage" that would be dependent on a next action # "call Fred to get the phone number for the garage". At least that was supposed to be the idea, although now I look through my notes I see that I've used it more for prioritisation than for ordering by dependency. I tend to keep most projects (multi-action tasks) as bullet lists in one note.
  2. For projects with more than one action an action ## is dependent on a next action # being performed first.
  3. It works for me with the latest Evernote Windows client. It's probably that the font your installation of Evernote is using for tags doesn't have Unicode characters, or at least not the ones you want to use. You could check what fonts your windows installation is configured to use in Control Panel.
  4. Sorry, I forgot that the perl script calls a batch script to export my "tickler" notes from Evernote. I'm not exporting anything to Google calendar if that's what you want, sorry. The perl script is just fetching the google calendar feeds and then combining them with an export of Evernote notes tagged :Future that have their Subject Date set to the date I want to be reminded of them. (In the screenshot the Evernote items are the ones with @Context instead of calendar names.) If you don't need the Evernote export you can just remove this section of the perl script: my @ticklers = split(/\n/, `getnotes_future`); foreach (@ticklers) { if (/(\d\d\d\d)(\d\d)(\d\d)T\d{6}Z\t(\S*)\t(\.*)\t(.*)/ ) { $main::duration = date("$1-$2-$3") - today(); &$setunits(); my $dow = Day_of_Week($1,$2,$3); # NB: $5 contains other tags, but we're not outputing it. push @output, "$1 $2 $3 $days{$dow}\t$main::duration$main::unit\t$4\t$6\n"; } else { push @output, "! NO DATE/TIME $_\n"; } } If you do want to combine Evernote notes with the Google Calendar feeds then you'll also need the getnotes_future.bat script that the perl script calls. Here it is: @echo off setlocal set PATH=%PATH%;C:\Program Files\Applications\Evernote\Evernote3 set PATH=%PATH%;C:\Program Files\System Tools\xmlstarlet-1.0.1 set EXPORTFILE=evernoteexport_calendar.txt set XPATH2=child::tag[text() != '#' and starts-with(text(), '@')] set XPATH3=child::tag[text() != '#' and not(starts-with(text(), '.')) and not(starts-with(text(), '@')) and not(starts-with(text(), ':'))] set XMLSELECT=sel --net -T -t -m "/en-export/note" -m "note-attributes/subject-date" -v "." -b -o "{tab}" -m "%XPATH2%" -v "concat('{',.,'}')" -b -o "{tab}" -m "%XPATH3%" -v "concat('{',.,'}')" -b -o "{tab}" -m "child::title" -v "." -n REM & -> ^& -> ^^^& (Escape twice! once for the SET command, and again when used) REM % -> %% set SED2=s/{tab}/ /g set SED3=s/}{/, /g set SED4=s/ {/ /g set SED5=s/} / /g set SED6=s/\%%/\%% /g cd %TEMP% ENScript exportnotes /q "tag::Future" /f "%EXPORTFILE%" xml %XMLSELECT% "%EXPORTFILE%" | sed '%SED1%;%SED2%;%SED3%;%SED4%;%SED5%;%SED6%;%SED7%' del "%EXPORTFILE%" Note that the batch script uses XMLStarlet to process Evernotes XML export, as well as the unix SED command which you can get by installing cygwin (which is the version I use) although the SED in GNU utilities for Win32 may be a simpler and smaller install, although I haven't tested the script with it.
  5. It's actually a perl script. Usage with Samurize It's been a while since I wrote it but if you're using it with Samurize I think that as well as installing ActivePerl you will have to install the Date::Simple perl module. Use the Perl Package Manager in ActivePerl's Start Menu folder to install any modules you are missing. Once you've added the script as a meter you need to add your calendars to the parameter list. For each calendar there are two parameters: the first is a name for the calendar (e.g. Personal, Work, Holidays, etc.), and the second is the http://www.google.com/calendar/feeds/.../basic url from the calendar's settings. Just leave any parameters that you don't want to use blank. You will also want to set the Tab Size in the Display settings to something large. I use 110 Usage outside Samurize if you're using something other than samurize to display it you'll probably want to replace the start of the script with something like this: sub Calendars { my @output ; my %calendars = ( "Personal ", "http://www.google.com/calendar/feeds/.../basic" , "Family ", "http://www.google.com/calendar/feeds/.../basic" , "Work ", "http://www.google.com/calendar/feeds/.../basic" , "etc ", "etc" ); The Script #!c:\cygwin\bin\perl.exe -w use strict; use LWP::Simple qw(get); use Date::Simple ('date', 'today'); use Date::Calc qw(Day_of_Week); use HTML::Entities; sub Calendars ($cal_1_name, $cal_1_url, $cal_2_name, $cal_2_url, $cal_3_name, $cal_3_url, $cal_4_name, $cal_4_url, $cal_5_name, $cal_5_url, $cal_6_name, $cal_6_url){ my @output; my %calendars = @_; my $params = "?futureevents=true&orderby=starttime&sortorder=ascending&singleevents=true"; my %months = ( "Jan", "01", "Feb", "02", "Mar", "03", "Apr", "04", "May", "05", "Jun", "06" , "Jul", "07", "Aug", "08", "Sep", "09", "Oct", "10", "Nov", "11", "Dec", "12"); my %days = ("0", "Sun", "1", "Mon", "2", "Tue", "3", "Wed", "4", "Thu", "5", "Fri", "6", "Sat"); my $calendar_name; my $calendar_url; my @lines; my $setunits = sub { $main::unit = " days "; if ($main::duration > 30) {$main::unit = " months "; $main::duration = int(($main::duration / 30) + .5);} elsif ($main::duration > 10) {$main::unit = " weeks "; $main::duration = int(($main::duration / 7) + .5);} elsif ($main::duration == 1) {$main::unit = "Tomorrow "; $main::duration = "";} elsif ($main::duration == 0) {$main::unit = "Today "; $main::duration = "";} elsif ($main::duration < 0) {$main::unit = "Passed" ; $main::duration = "";} }; while (($calendar_name, $calendar_url) = each(%calendars)){ next if '' eq $calendar_name; my $calendar_data = get "$calendar_url$params"; @lines = split(/\n/, $calendar_data); foreach (@lines) { s/&/&/g; if (/([\d\D]*)<\/title>When: (\S+) (\S+) (\S+) (\S+)<br>/ || /([\d\D]*)<\/title>When: (\S+) (\S+) (\S+) (\S+) ([0-9]+:[0-9]+ to [0-9]+:[0-9]+) /) { my $event = decode_entities($1); my $day = "$3"; if ($3 < 10 ) { $day = "0$3"; } $main::duration = date("$5-$months{$4}-$day") - today(); &$setunits(); if ($6) {$event = $event . " (" . $6 . ")"} push @output, "$5 $months{$4} $day $2\t$main::duration$main::unit\t$calendar_name\t$event\n"; } } } my @ticklers = split(/\n/, `getnotes_future`); foreach (@ticklers) { if (/(\d\d\d\d)(\d\d)(\d\d)T\d{6}Z\t(\S*)\t(\.*)\t(.*)/ ) { $main::duration = date("$1-$2-$3") - today(); &$setunits(); my $dow = Day_of_Week($1,$2,$3); # NB: $5 contains other tags, but we're not outputing it. push @output, "$1 $2 $3 $days{$dow}\t$main::duration$main::unit\t$4\t$6\n"; } else { push @output, "! NO DATE/TIME $_\n"; } } @output = sort (@output); return join "", reverse @output[0..19]; } print &Calendars(); Remove "reverse" near the end of the script if you want it sorted the other way.
  6. set the subject date (currently not accessible on the Mac client) and then make a saved search for [-subjectdate:day tag:expires] and check it whenever you open evernote to see if any notes have expired.
  7. You could always tag the notes as you process them, and then view all those tagged notes and move them at once and delete the tag once they're archived.
  8. I don't think this should be a default feature (whatever workflow users decide to layer on top of Evernote should be their choice), but having the ability to customise the interface and add functionality with macros would be a useful addition. Are you aware that you can select many notes at once either by holding Ctrl and clicking on their headers, or clicking in the Note List, and then drag them all to a notebook?
  9. Sometimes after I switch notebooks (in the desktop client) I remember something I want to add to the notebook I was just editing. It would be useful to have backwards/forwards buttons (with shortcut keys) to go to navigate a history of notes that I have been focused on. If it could also remember searches/saved searches that would be even better.
  10. If you edit the note attributes you should be able to set the subject date, it is separate from the created and modified dates. I assume the Mac client has a Note List view similar to the windows client, the Subject Date is a column, in that view. With my own system I also tag them "Future". I can then search for [tag] or [subjectDate] to find them, and [tag] to find overdue items.
  11. does [created] do what you want? you can search for [todo] and use the subject date to set a due date.
  12. That's not possible with the current search syntax. The way I set dates on notes that I want to be reminded of in the future is to set their Subject Date in the future and tag them "Future". I can then search for [tag] or [subjectDate] to find them, and [tag] to find overdue items. date searches find either all notes since the date, or all notes before it if you negate the search. So if you require a search for notes on a specific date you would have to combine them, e.g. [subjectDate]. See the API for a full description of date/time arguments in searches.
  13. It's also worth noting that there are plenty of other protocols that users might find useful that Evernote doesn't support such as mailto, skype, search-ms, and many more. I don't think it's wise to enumerate allowed protocols without reason as it needlessly limits the number of tools that Evernote can interact with.
  14. Was that referring to the http(s) link limitation that makes my evernotesearch:// protocol unusable? Although links to specific notes would be useful, a way of having links to saved searches inside notes would be much more versatile. Especially since they could be shared in public notebooks. And there are plenty of other protocols that users might find useful that Evernote doesn't support such as mailto, skype, search-ms, and many more. I don't think it's wise to enumerate allowed protocols without reason as it needlessly limits the number of tools that Evernote can interact with.
  15. These are the tags I use for my GTD system: I'm using RedUKs idea of one and two character tags for Next Actions and Actions, but I've used #/##. The thing I like about this system is that I can then search for [tag] to find all actions. I use this in some of my saved searches, see below. (I couldn't do that with */** as [tag] is a shorthand for notes with any tag, and although you can search for [tag] you can't search for all actions: * OR ** notes. I tried [tag] but it is invalid search syntax.) I often group a lot of related actions under one note but for my biggest projects I create a tag under the Project tag starting with a full stop "." to allow me to include or exclude project notes in saves searches and also as a reminder list of what my projects are. The Project tag itself is used for project plans. Not every project gets a plan, just the biggest ones. I also use the usual @Context tags, as well as :Someday for someday/maybe notes, and :Future for tickler notes. The use of : at the start allows these tags to be easily ignored in searches using [-tags::*]. If I ever had to delegate something I'd also have a :Delegated tag. I also picked : because it sorts well in both the tag list and the notes list. If I sort the notes list by tags then :Future and :Someday notes are placed out the way at the bottom of the list. It also sorts after the project "." tags in the list of tags for one note: The only nit-pick I have with this sort order is that "##" Action notes are sorted before "#" Next Action notes, although that's not a major problem. Tickler notes that I want to be reminded of at specific dates are tagged :Future, and I edit their attributes and set the Subject Date to the date I want to be reminded of them. I then extract these using ENScript.exe and merge them with an extract of upcoming events in my Google Calendars, and use a Samurize script I have written to place them on my desktop. I also use another script to extract all my next actions and use Samurize to place them on the desktop: I only use my Google Calendars for events that will happen on specific dates so the calendar data I grab is only for future events. However, the Evernote tickers export will grab all ticklers, even ones with an elapsed subject date, so that I force myself to go and edit the note to get it off the bottom of the calendar. My next actions appear under the calendar (scroll the above image to see them). Tags for projects are placed in the first column (with the preceding "." removed), @Context tags in the second column, the third column contains any other tags and the fourth column is the title of the note. I haven't applied any sorting to the list, thinking it's better to review the whole list before picking an action to do next (at least that's the theory) but I may use priority tags in future or at least sort the project notes together. I've created a set of saved searches for easily narrowing down on specific kinds of notes (although my system is relatively new so I can't say how useful these searches are yet): I'm using a tip from a Lifehacker.com article (Customize Your Gmail Labels with Unicode Characters) to change the sort order of my saved searches using unicode characters. Here's what the searches do: # w/ no @ [tag] Actions should always have a context, anything in here needs an @Context tag added. @ w/ no action [tag] Any note with an @Context tag should have an "##" action or "#" next action tag, unless it has a :Someday or :Future tag. (Note the # and @ characters sort these to the top of the list where I can keep an eye on them) Searches for specific notes that I want to have quick access to are preceded by the ▶ character. ● Active Project Plans [tag] Project plans that aren't :Future (tickler) or :Someday projects. ● Project Notes [tag] ✦ Actionable [tag] ✦ Project Actions [tag] ✦ Single Actions [tag] (non-project actions) ✧ Non-Actionable [-tag:#*] Reference [-tag:#* -tag::*] (Notes that aren't action, tickler or Someday/Maybe) Along with Trash these tags and saved searches mean that I can easily view which notes are in the 8 categories that GTD organises "stuff" into. I don't use the checkboxes as there are no keyboard shortcuts for checking/unchecking them. If I have a note where I want to have several actions I use bullet lists (Ctrl+Shift+ and strikethrough (Ctrl+T) to indicate done items (and remove the # tag when all are done). Using Home, Shift+End, Ctrl+T or even Home, Shift+Down/Up Arrow, Ctrl+T it's easy to mark items in the list as done while navigating it.
  16. In the windows client if you click in the note outside where the PDF is displayed you can add text. On the web it's also possible to view these notes, but I found that if I edited the note via the web it would insert the PDF's filename and size into the note.
  17. A note linking to Apendix C in the Support FAQ titled "Advanced Search" would have helped me find it quicker when I was looking for it earlier today.
  18. As a workaround, you could add an "expires" tag to such items, set their Subject Date in the future and search for expired notes with [tag]. I've written a script for the windows version of Evernote to get the best guess out of the OCR data. I think the tool I used to process the XML export data should work on Macs, although the batch file would need to be rewritten to something that would work and Macs and to use whatever the alternative to ENScript.exe is for getting exports out of Evernote for Macs. Alternatively you could just look at the raw export format in a text editor, but there's no formatting of the OCR data so it's a bit difficult to wade through without some processing.
  19. Sorry, I had the wrong link for Texter (fixed now), take a look at it, it's much simpler than PhraseExpress.
  20. Use a text substitution app. Windows: Texter (Free) PhraseExpress (Free for personal use, Professional licence costs US$ 49,95) Mac: TextExpander (Costs $29.95)
  21. If you add a link to a note it has to be http or https. I'd like to be able to use any protocol. I'd particularly like to use custom protocols so that I can customise Evernote.
  22. I thought I had a really neat solution for this, but the way Evernote handles links doesn't allow it. It's an extension of missdipsy's idea of using searches. I created an evernotesearch:// protocol and a script to handle the protocol by passing whatever was after evernotesearch:// back to evernote as a search (using ENScript.exe). Unfortunately if you create a link with a custom protocol like evernotesearch:// in an evernote note it will revert to plain text next time you view the note. Still, it could be useful for linking into Evernote from external applications. If anyone is interested here is my code: evernotesearch.reg Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\evernotesearch] @="URL: evernotesearch Protocol" "URL Protocol"="" [HKEY_CLASSES_ROOT\evernotesearch\shell] [HKEY_CLASSES_ROOT\evernotesearch\shell\open] [HKEY_CLASSES_ROOT\evernotesearch\shell\open\command] @="\"C:\\Program Files\\evernotesearch.bat\" %1" evernotesearch.bat @echo off setlocal set ENS="c:\Program Files\Evernote\Evernote3\ENScript.exe" set params=%* REM Strip evernotesearch:// protocol and trailing slash SET params=%params:~17% SET params=%params:~0,-1% set params=%params:"=""% %ENS% shownotes /q "%params%" exit
  23. I'd like to be able to fix or "pin" the whatever tags I have selected, and/or the current search in the searchbox, so that I can change notebooks and see the notes in each notebook (or All notebooks) that have the currently selected tags and/or match the current search. I'd like the pinning of tags or search to be independent, so I could just pin the tags, and then narrow the search in one notebook, and have it remove the search when I move to another notebook, and conversely, just pin the search, and narrow it by a tag in one notebook, but have it remove the tag filter when moving to another notebook. If I had to prioritise tag or search, I'd say that being able to pin tags would be more valuable to me.
  24. In the desktop client you can edit the creation date of notes via the Attributes dialog (Ctrl+Shift+D on windows), so you could manually alter the dates of the notes to put them in the order you want. As far as I can tell there's no way to edit the creation date on the website.
  • Create New...