Tag: software

OneNote: a hidden Microsoft Office gem

Last week I discovered Microsoft OneNote 2007, and I am (honestly) impressed. Actually, the first time I ever heard of OneNote was when I read the FAQ of InkSeine.

OneNote 2007

Here’s part of the product description:

Office OneNote 2007 is a digital notebook that provides people one place to gather their notes and information, powerful search to find what they are looking for quickly, and easy-to-use shared notebooks so that they can manage information overload and work together more effectively.

I have been using a combination of Gmail, Google Calendar, Google Docs, Google Notebook and del.icio.us to organize (and capture) information (partially inspired by this setup). The big problem here was synchronization. I ended up copying URLs to Google Notebook since I would never be confronted with them again if I stored them in del.icio.us. There were no explicit links between meetings, documents, and other resources (e.g. websites or short notes in notebooks). I would add gadgets for each of these apps to my iGoogle page to keep an overview. Although I could cope with this setup, it was not ideal. Gmail and Google Calendar are great services which I still love to use, but for quick notes and jotting down ideas I often resorted to paper notes.

Although OneNote is not perfect either, combined with a laptop (or tablet PC) it has the potential to eliminate most paper note taking. To get a good overview of what’s possible with OneNote, have a look at these resources:

A lot of people have been impressed with OneNote and have blogged about it.

Here are a few of OneNote’s features that I like:

  • text search in images and audio
  • audio and video recording with synchronized notes
  • shared notebooks
  • embedding any file as a printout
  • screen clippings
  • the ability to write and draw anywhere on a page
  • tags (e.g. todo, important, question, etc.)
  • calculator support
  • inking support (if only I had a tablet PC)

Here’s an example of how I used OneNote to summarize an intuitive explanation of Bayesian Reasoning by Eliezer Yudkowsky:

Intuitive Explanation of Bayesian Reasoning in OneNote

Announcing PydgetRFID

I just released version 0.1 of PydgetRFID, the Python interface to the Phidgets Inc. RFID kit I blogged about earlier. It’s free software (licensed under the GPL). It wraps libphidgets with ctypes to talk to the hardware.

The software is now more polished and additionally provides a D-Bus service that allows other applications (written in any language with D-Bus bindings) to use the hardware. Currently this means you can connect to the hardware from Python, Ruby, .NET, C, C++, Perl and Pascal!

This DBUS service allows to start and stop reading, and emits a signal whenever a different tag (including the nil value) is read. I modified the original PyGTK GUI to use this daemon for communicating with the hardware. Furthermore, I improved the HAL support so that plugging the device in and out is detected. Unfortunately, the daemon cannot yet handle this though. That’s for a next release

Here is the GUI (which you probably remember from the last post). Nil values are now colored red:

PydgetRFID: GUI

And this a screenshot showing the communication between the daemon and the GUI logged with dbus-monitor:

PydgetRFID: using the the daemon and GUI

More information can be found at the PydgetRFID homepage.

PyGTK GUI for the PhidgetRFID reader

I had some fun writing a Python wrapper around libphidgets for an RFID reader we had lying around here. To do so, I used ctypes (apparantly the Python bindings for libphidgets were broken). To check for a connected RFID reader, I interfaced with hal through dbus. Afterwards I created a simple GUI for the device with PyGTK.

Here is the result:

PyGTK GUI for RFID reader

I experienced some weird permissions problems though. The device could only be opened with root privileges. Takis helped me step through libphidgets to see if there was a bug in it. In the end, we solved it by changing the /etc/udev/rules.d/permissions.rules file (in my case it was called 40-permissions.rules). I’m not sure if there are any security problems with this though.

I changed these lines:

# USB devices (usbfs replacement)
SUBSYSTEM=="usb_device", MODE="0664"

to:

# USB devices (usbfs replacement)
SUBSYSTEM=="usb_device", GROUP="plugdev", MODE="0664"

I will probably put the code online when I have some spare time (and after I cleaned it up a bit).