Notes on Tomboy Notes

Installing Tomboy

It's usually already there for Debian distros. For RPM-based Linuces, do

$ sudo yum install tomboy

Synchronizing notes across computer hosts

I've done this between two Linux computers running Fedora and Mint/Ubuntu.

  1. On the computer whose notes you want to get (to the "new" computer), from the panel's system area or system tray, choose Preferences → Add-ins → Synchronization
  2. Right-click Local Directory Sync Service Add-in and choose Enable button. (If button is greyed out, this add-in is likely enabled already.)
  3. Create a subdirectory into which you want to synchronize your notes. You must know the path because you're going to copy its contents to the new computer. I like to choose /home/russ/Downloads/Tomboy.
  4. Choose Preferences → Synchronization.
  5. Here you need to active Service: to Local Folder if not already done.
  6. Navigate in Folder Path: to the subdirectory you want. I have trouble changing this and have to rattle around in the Tomboy UI before it will allow me to do it. I think it wants this set once, when Tomboy is newly installed, then never again. Again, my path is /home/russ/Downloads/Tomboy.
  7. Copy this subdirectory to your new computer, let's say it's called nargothrond:
    $ scp -r /home/russ/Downloads/Tomboy/ nargothrond:/home/russ/Downloads
  8. Turning to your new host, nargothrond, (assuming you have installed Tomboy), choose Preferences → Synchronization.
  9. Ensure that synchronization is being done using Local Foler as Service: and /home/russ/Downloads/Tomboy as Folder Path:.
  10. Usually, the dialog will ask you if you want to synchronize now which you can do or you can just choose Synchronize Notes.

Tomboy is sophisticated enough to merge notes during synchronization asking you to choose what to do (overwrite, rename, etc.). I have never done this.

Diacritics note

Frequently broken, the ability of some Linuces to give you the option to type accented characters optionally (see here for Debian distros), that is, without converting your keyboard to some non-local variant, creates the need for this note. Copy and paste this text into a Tomboy note.

Paste this and change the font to Fixed Width/Monospace, normal height. You may need to insert or remove spaces to pretty it up.

I put the ones at the left separate because my need is always for French.

Diacritics, etc.

à â        á ä ã æ Æ
é è ê      ë
î ï        í ì
ô œ Œ      ò ó ö õ ø
ù û ü      ú
ç Ç        ß ñ ð þ

« »

           ¡ ¿

HTTP status code note

Paste this and change the font to Fixed Width/Monospace, normal height. You may need to insert or remove spaces to pretty it up. The yellow ones are those I use more frequently than any others.

HTTP Status Codes

200 OK                 300 Multiple choices
201 Created            301 Moved permanently
202 Accepted           302 Found
203 Non-authoritative  303 See other
204 No content         305 Use proxy
                       307 Temporary redirect
                       308 Permanent redirect
400 Bad request        500 Internal server error
401 Unauthorized       501 Not implemented
402 Payment required   502 Bad gateway
403 Forbidden          503 Service unavailable
404 Not found          504 Gateway time-out
409 Conflict           520 Unknown error
415 Unsupported media type

UNIX Filesystem Permissions
UNIX Filesystem Permissions

----------    0000    no permissions
---x--x--x    0111    execute
--w--w--w-    0222    write
--wx-wx-wx    0333    write, execute
-r--r--r--    0444    read
-r-xr-xr-x    0555    read, execute
-rw-rw-rw-    0666    read, write
-rwxrwxrwx    0777    read, write, execute

SAX Parser Sample
SAX Parser Sample

def getResult():
  result         = httpclient.get( uri )
  payload        =
  resultIdParser = CqPostResponsePayload()
    xml.sax.parseString( payload, resultIdParser )
  except Exception as e:
    print e.message
  return resultIdParser.getResultId()

class CqPostResponsePayload( xml.sax.ContentHandler ):
  Parse response payload, looks something like:
  def __init__( self ):
    self.result = StringIO()
    self.resultIdCharacters = ''
  def getResultId( self ):
    return self.result.getvalue().lstrip().rstrip()
  def startElement( self, tag, attributes=None ):
    if tag == 'result_id':
      self.resultIdCharacters = ''
  def endElement( self, tag ):
    if tag == 'result_id':
       # tie off the result_id...
      print >> self.result, self.resultIdCharacters
  def characters(self, content ):
    self.resultIdCharacters += content
/usr/share/icons/Mint-X/status/22 # ll *tomboy*
-rw-r--r-- 1 root root 634 May  1  2014 tomboy-panel.png
/usr/share/icons/Mint-X/status/22 # ll ../../../Mint-X-Dark/status/22/tomboy-panel.png
-rw-r--r-- 1 root root 644 May  1  2014 ../../../Mint-X-Dark/status/22/tomboy-panel.png
/usr/share/icons/Mint-X/status/22 # mv tomboy-panel.png tomboy-panel.png.sav
/usr/share/icons/Mint-X/status/22 # cp ../../../Mint-X-Dark/status/22/tomboy-panel.png .