I draw on a couple of principles from GTD, and from Inbox Zero. They are:
Here’s how that looks:
It’s important to remember that email clients are not task management systems, scheduling systems or knowledge systems. In the same way that a carpenter uses the right tool for the job, as knowledge workers we too should use the right tool for the job.
Sometimes, as in this case, the tool is the methodology, not so much the actual tools used. The tools I use can be completely different to the tools another will use. It’s the process, the methodology that matters.
Investing the time to clarify how we process a thing pays off over time.
]]>Because I was able to clone the git repo to my local, and that repo was already configured/set for publishing to github pages, all I needed to do was install github pages locally, rather than Jekyll etc.
I could make changes, commit the change, push it and it would appear on the live site, but I couldn’t preview it locally with Jekyll. Hence why github pages locally installed, it contains Jekyll.
However, when trying to install github-pages
I was getting this error:
gem install github-pages
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
Using the instuctions kindly noted by Antonio Cangiano at Programming Zen1.
Summary below (Antonio explains it in more detail)
brew update && brew install rbenv ruby-build
export path="$HOME/.rbenv/bin:$PATH"
Add the following to .zshenv
export PATH="$HOME/.rbenv/bin:$PATH"
Added the following to .zshrc
source $HOME/.zshenv
eval "$(rbenv init - zsh)"
Restart the iterm2 and run the following commands
rbenv install 2.6.5
rbenv global 2.6.5
Restart iterm2 and run the following command
ruby -v
You should see something like: ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin19]
returned
Then run this command
ruby -e "puts (1..100).reduce(:+)"
You should see 5050
returned
Now install github-pages
gem install github-pages
Now when running jekyll serve
in the root of the local repo, I can use a browser to view the site before issuing a git push
.
He was getting a similar error for htmlbeautifier. His explaination contains more detail.↩︎
This post is simply so I can find it again in another couple of years, when I go to setup a new Mac.
]]>So I’ve created a Keyboard Maestro shortcut to make them easier.
What it does is run a shell script to get the current date and time and saves that to a variable.
Then we insert by typing the HTML code to do the superscript1 for the foot note.
We use the date-time variable to create a footnote id to go at the bottom of the document (ie fn-yyyymmddhhmmss
) and a slight variation for the backlink back up to where the footnote was inserted (i.e. fnbl-yyyymmddhhmmss
).
Then a line below insert an ordered list with a list item where the footnote text goes. Of course, we then move that to the bottom of the document.
If we have more than one, manually update the number used for the footnote. Because the list of footnotes at the end are in an ordered list, they will be numbered automatically.
If you’ve got a way to further automate this please let me know.
Text of footnote goes here. ↩︎
The em dash is perhaps the most versatile punctuation mark
Useful site called thepunctuationguide.com details how to use the em dash and many other punctuation marks.
]]>Andy Matuschak has/is writing about Note-writing Systems. He’s also written Exalting data, missing meaning which I found interesting.
He comments on evergreen note-writing as the basic unit of measure for knowledge work, which is a new thought for me. I’ve typically measured work in terms of revenue, hours billed, or projects completed. While those measures are important, after reading his take, perhaps if I measure evergreen notes as the fundamental unit, that, I’m thinking will improve those other measures.
Says Andy:
… Most people use notes as a bucket for storage or scratch thoughts and Note-writing practices are generally ineffective.
- Evergreen note-writing helps insight accumulate
- Evergreen note-writing helps reading efforts accumulate
- Note-writing helps writing accumulate: these notes are the fuel for the Executable strategy for writing, particularly if you Create speculative outlines while you write.
It’s certainly fueling thoughts for me…
]]>Later,
Ben.
Later,
Ben.
I’ll outline a simplified example of our problem - using just one record type - however we have Account, Contact, Notes, Activities (Calls, Meetings, Tasks), Emails, file attachments etc all thrown in here and related to one another.
What it means now is that there are two input databases to migrate, that have account and contact records that have the same GUID’s.
Imagine that the Sales department has following data in the database:
GUID | Name | Rep |
---|---|---|
123 | Alice | Jane |
456 | Bob | Jill |
789 | Cindy | Jane |
And then it was copied and used by the Service department and became this:
GUID | Name | Rep |
---|---|---|
123 | Alice | Sue |
456 | Bob | Sue |
012 | Diane | Jill |
Note that the GUID
for Alice and Bob in both databases is the same.
Naturally enough over time, the records for Alice and Bob diverge from each other so there come to be many differences.
Today both databases are in operation onsite at the client, albeit in different departments.
Migrating these into one database is a problem because if we import the Sales database and then import the Service the Rep values will be updated and reflect who the Service Rep is and not the Sales Rep.
We don’t want to lose history of who did what and when, or said what to whom and when.
Thus there must be a better way then just mashing it together and overwriting history.
In our situation we also have a few other considerations:
INSERT
of data, but we’ll do an UPSERT, that is an UPDATE
if it’s already migrated or INSERT
if added to the old database since the last run of the migration jobThusly what we do is map the source database to a new field, and we map the fields that are distinctly different, like Rep, separately.
Thus the import source becomes:
GUID | Name | Sales Rep | Source |
---|---|---|---|
123 | Alice | Jane | Sales |
456 | Bob | Jill | Sales |
789 | Cindy | Jane | Sales |
GUID | Name | Service Rep | Source |
---|---|---|---|
123 | Alice | Sue | Service |
456 | Bob | Sue | Service |
012 | Diane | Jill | Service |
Which when migrated becomes:
GUID | Name | Sales Rep | Service Rep | Source |
---|---|---|---|---|
345 | Alice | Jane | Sales | |
678 | Bob | Jill | Sales | |
901 | Cindy | Jane | Sales | |
234 | Alice | Sue | Service | |
567 | Bob | Sue | Service | |
890 | Diane | Jill | Service |
Later when they merge the records, they’ll be able to have:
GUID | Name | Sales Rep | Service Rep | Source |
---|---|---|---|---|
567 | Alice | Jane | Sue | Merged |
890 | Bob | Jill | Sue | Merged |
901 | Cindy | Jane | Sales | |
432 | Diane | Jill | Service |
To bring these databases together is not complex, but it takes time, planning, good testing and above all, patience.
]]>