Saturday 5 July 2014

Installing cherrytree on a Mac

Cherrytree is a terrific note taking software but it’s a big tricky to get installed on the Mac. Okay, not that tricky, but here we go…
I am working on Mac OS X 10.9.3.

The steps take here were suggested by zackpete on a cherrytree discussion list. Below is just a more expanded list of what I needed to do to follow that advice.

  1. As suggested on the MacPorts site, I installed Xcode and Xcode Command Line Tools.

    This took a surprising long time. Eventually, impatience won out, and once again I had cause to be grateful to those who take the time to document issues they see and ways to resolve things like this. Information on http://scheyeniam.blogspot.dk saved me, pointing out that I probably had a zombie storeagent process that needed to be killed. The steps I took here were:

    • Quit the Apple Store program.
    • Force killed the store agent process via the Activity Monitor. (Kill didn’t work, but if you come across this note, you should try an ordinary kill first.)
    • Restarted the Apple Store program.
    • Went to Purchases.
    • Clicked on the Resume button beside the Xcode app.

    At that point, the app installed really quickly.

  2. Agree to the Xcode license by opening and Terminal and running the command

    sudo xcodebuild -license

    Scroll to the end, reading all of it of course, and type in the word 'agree' if you agree.

  3. Install the Xcode Command Line Tools. I did this by using Spotlight to find Xcode, and then launching it. I was prompted to agree to install things that would allow me to run Xcode. So I agreed to that.
  4. I then had to run the command

    xcode-select --install

    To install the Xcode Command Line Tools.

    At this point, I'm not sure whether step 3 was necessary or not. But I'm too lazy to rip everything out and put it back to find out. Apologies!

  5. Install MacPorts as described on the MacPorts site.

  6. I think that XQuartz should be installed at this point. (I already have it installed, so no instructions are included here for this.)
  7. Update the MacPorts package index using the command

    sudo port selfupdate

  8. Install some dependencies. To do this, open a Terminal and use the command

    sudo port install python py27-pygtk py27-pygtksourceview p7zip py27-enchant

    The easiest way to ensure that the command "port" is on your PATH at this point (i.e. that the command called "port" can be found if you type in a command like the one above) is to open a new terminal window at this point.

    If you don't already have dbus-python installed, then you will need that.

    sudo port install dbus-python

    You then need to start up dbus using the following commands

    sudo launchctl load -w /Library/LaunchDaemons/org.freedesktop.dbus-system.plist
    launchctl load -w /Library/LaunchAgents/org.freedesktop.dbus-session.plist

    If you don't run those commands, you will likely see an error saying that dbus does not have enough memory.

  9. Download the latest cherrytree source code.
  10. Extract the source code using the following command in a Terminal

    tar xvfz cherrytree-version.tar.gz

  11. Move into the unpacked cherry tree directory

    cd cherrytree-version
  12. You need to fix a problem that exists in the file that you will use to install cherrytree with before progressing to the installation.

    Use your favourite text editing program and navigate to line 208. At the time of writing, this was the final line of the setup.py file.
    Hash out the that line so it looks like this:

    #subprocess.call(“update-desktop-database”)

  13. Run the following command to install cherry tree

    sudo /opt/local/bin/python2.7 setup.py install

  14. You need to run cherry tree with the MacPorts python. One way to do this is to explicitly use the full path to that python, for example, from within the cherry treefolder, you could run:

    /opt/local/bin/python2.7 cherrytree

    That's pretty inconvenient though. My choice is to set up an alias for cherry tree so that when I type the name, it calls the correct command.

    For whatever reason the install command in the step above did not end up with cherry tree going into /usr/local/bin. However, that's fine with me. I moved the installation directory to a convenient location, and then set up an alias for the command, putting in the full path to the cherrytree executable.

    alias cherrytree=“cd /Users//mySoftware/cherrytree–0.33.4; /opt/local/bin/python2.7 cherrytree”´

    The reasons for running cherrytree from within the source directory where it was built is because if I didn't, then I got an error:

    Traceback (most recent call last):
       File "/Users/<username>/mySoftware/cherrytree-0.33.4/cherrytree", line 65, in <module>
       f_main(args)
        File "/Users/btiwari/mySoftware/cherrytree-0.33.4/cherrytree", line 46, in f_main
           import main
         ImportError: No module named main
    

Other troubleshooting


If you see errors like the following when you try to launch cherrytree:

´raise ValueError, 'unknown locale: %s' % localename´

then you probably need to add locale settings. For example, the following could be added to your profile.

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Mac - ironing out the little things

I just got a new Mac. This page is just to store the notes on things I had to do to get things working the way I wanted, or working at all.

Two finger scrolling


At first, I had no problems scrolling up and down in browser using the two finger scrolling action. Then suddenly it stopped working in Firefox although it worked in other applications that I happened to have open. I read some advice about turning off the smooth scrolling option in Firefox under Preferences | Advanced, but that made no difference.

The solution was to follow the advice in this video posted by Anson Alexander where I had to go to

System Preferences | Trackpad | More gestures

and turn off the option to Swipe between pages.

I definitely value up and down scrolling on a page far beyond swiping left and right, so if this is the price to pay to keep that working, so be it.

Thank you for the solution, Anson!

Using nvALT for Markdown editing, conversion to HTML and then posting in Blogger

It may or may not be the most direct way to do things, but steps I have used to post to this entry to this blog were:

  1. Create a note using Markdown in nvALT, a Mac-based note editor.
  2. Preview the note in html by using

    Preview | Save Preview in HTML

    I choose not to save it, which means I can just view it.
  3. Copy the HTML to the clipboard.
  4. Paste into the Blogger editor in HTML mode.
  5. If I’m keen, then test the weblinks in Blogger by switching back to Compose mode, clicking on the link and clicking on the option to Change.

The window that pops up gives you the opportunity to test the link.

That’s it.

Tips, tricks and gotchas?

  • If you forget to put in the http:// in your link, then blogger will add http://www.blogger.com to the start of your URL, thus breaking it real good.
  • Toggle on the Preview window by going to

    Preview | Toggle Preview Window
  • I had to change the settings in Blogger so that the paragraph tag in html was not changed just a br tag when I switched from HTML to Compose view. This used to be a general setting, but now it is changed by going in to a particular post, choosing Options there, and then selecting the option under Line breaks labeled Press “Enter” for line breaks.
  • For good measure, I should mention that I use SpiderOak Hive as a way to ensure that the notes I make in nvALT are available from all the systems I work on.
  • To get the ordered list above to allow me to put information across several lines into point 2, I had to indent (at least) eight spaces. Something nice and easy to forget, so I’ve logged it here.

Next steps?

It was thanks to posts by Michael Schechter at bettermess.com that I found nvAlt and thought to try out the route to note taking. He’s a big fan of the Byword editor and using that via nvALT, so that might be worth a look. On the other hand, some keyboard shortcuts and productivity aids might be where I should put in some time now.