Uncategorized

Borrowing Kindle Books from the Boston Public Library

Amazon now offer books to borrow at many public library systems, including the Boston Public Library. The user experience needs some fine tuning, mostly due to the BPL website being a bit clunky. But it works great. You will need a Kindle, and/or Kindle reader applications on your iPad or Mac or PC. I use a first generation Kindle as well as the Kindle reader on my iPad2. NOTE: When you click on one of the images below, you are seeing just a picture of the example. Click the back button to get back to this article!

1. Log into the Boston Public Library Website

But surprise? There is no digital content on this website. That is correct. The current site only shows physical books and other materials. You need to click on the download menu to go over to the digital content side.

2. Use the digital site to search for Books

This is the no so nice part. The BPL search screens are not as friendly as the Amazon screens, for example. You can also use the Advanced Search feature to help locate only Kindle books.

3. See What Format is Available

Once you click down to a book's page, you can see the different formats available. Assuming we want a Kindle book, click on the "Add to Cart" link. In the screen shot, because I already borrowed this book, the "add to cart" link now shows "Place a Hold", but you get the idea.

4. Download Book from Amazon

When you click on the Add to Cart link, you first gets to the "Cart" page. Then if you click on the "Get for Kindle" button, you will be sent to Amazon to download the book.

If you have a Kindle that has wi-fi (the newer ones do) you can have it send to your Kindle automatically. I have a first generation kindle so it requires an extra step. Or if you want to also send the book to your iPad, click on the "Manage your Kindle" link.

5. Send the book to multiple Devices

On this screen, you can send the book to your iPad Kindle reader, or your PC/Mac reader! Click on the "Action" button and you will get a manage devices choice. Then just click on send to Kindle and pick your device(s).

Enjoy Reading!

That is it. Quite a few steps, but it works well.

Of course, if you do not have a Kindle, now you have a reason to get one.

SpyMaster as a time management tool?

After playing SpyMaster for a day, it clicked -- Since the game cycle is in multiple of 5 minutes, it can be integrated into a time boxing '(10+2)*5' procrastination hack. The best explanation for this procrastination hack is at 43 Folders. Basically focus on one single task for 10 minutes, then allow yourself to be distracted and go have "fun" for 2 minutes. Checking and playing SpyMaster an be your 2 minute reward.

Technorati Tags: , ,

Scanning Circa Notebooks

I have been keeping a paper based work journal all my professional life. I have a bookshelf of them. While I live pretty much on the web, I find there is nothing (yet) that can replace jotting down notes, pen on paper. I switched systems many times. Most recently, I had an inspiration -- Combine Levenger Circa notebooks with a good scanner, my SnapScan S300M, I can have the best of both worlds. I would take notes on the Circa notebook, and then scan them into PDF for electronic archiving.

Well, I finally decided to try the scanning process. What I feared came true -- the circa "holes" are not meant for a scanner's auto feeder. The leading (moving) piece of paper will snag the next sheet, resulting in a mess. Take a look at the second picture -- how it chewed up the second paper.

Fortunately, the SnapScan is good enough, and my hand-eye coordination is good enough, that I can hand continuous feed papers one sheet at t time into the scanner. It is a bit more work, but I also get over the max 10 pages at a time limit of the SnapScan.

So the system seems to work. Now if only my hand writing is good enough for some sort of OCR based PDF searching, then the system will be complete.

Technorati Tags:

Django on Leopard

Part of the reason I was waiting to switch from using Windows XP (gasp) as my Django development platform to OS X is that it is actually easier to install the platform on XP. Windows does not come with any of the tools, so it was a matter of installing the version that I need. For OS X, it had a older version of python, so I would have to have multiple versions of it running. But Leopard changes all that. So I switched! Running Django on os x becomes much easier with Leopard. Out of the box Leopard comes with almost everything I need :

Python is at version 2.5.1 • svn is at version 1.4.4 • SQLite is at version 3.4 with python library installed

For development, I use SQLite and the built in web server only. I run Postgres on the production boxes. Because I do not have to install Postgres, getting Django setup is just a matter of setting up the rest of the environment:

Install Django

You can just download the installation tarball and do a standard Python install. But to have a little more flexibility in switching Django versions, I download both the production and trunk versions of Django into my own directory. Then using a soft link I can switch between the two. Download Django into my own home directory, under extlib, where I put all the external libraries. Then link from the Python site-packages directory to my own Django directory. By switching where that link points, I can switch version.

# Make directory and download two versions of Django: cd $HOME mkdir extlib cd extlib svn co http://code.djangoproject.com/svn/django/tags/releases/0.96.1 django-0.96 svn co http://code.djangoproject.com/svn/django/trunk/ django_trunk

# Then symlink instead of installing the django code into the Python site-packages, which is at # at /Library/Python/2.5/site-packages on my machine.

sudo ln -s ~/extlib/django-0.96/django django

Note: You can find the location of the library by running a simple python statement:

python -c ' import sys; print sys.path'

and look for the site-packages directory.

Setup Shell

I need to setup my shell environment so that my (multiple) Django projects can find Django. If you need help in figuring out where to put things, bashrc vs bash_profile etc, this article explains how and where to put things very well. Most importantly, add the django bin directory to your path:

PATH=$PATH:/Library/Python2.5/site-packages/django/bin Note: I am adding the Django bin directory to the PATH via the python site-packages link. That way if I switch Django versions via the site-packages link, the PATH will switch automatically!

Python Image Library

I need to use this for image processing. I thought I could get away from installing the free Apple developer tools but I couldn't. I have to install the Apple XCodeTools set first, from the OS X installation CD. Then download the source files here .

Before running the install, you also need to get the libjpeg for JPEG support:

Dowload the source at http://www.ijg.org/files/jpegsrc.v6b.tar.gz untar it, cd into the jpeg-6b directory and then:

cp /usr/share/libtool/config.sub . cp /usr/share/libtool/config.guess . ./configure --enable-shared make sudo mkdir -p /usr/local/include sudo mkdir -p /usr/local/bin sudo mkdir -p /usr/local/lib sudo mkdir -p /usr/local/man/man1 sudo make install

The following the PIL build instructions:

edit the setup.py file, add the lines instead of setting them to None:

JPEG_ROOT = "/usr/local/include" ZLIB_ROOT = "/usr/local/include"

then run:

python setup.py build_ext -i python selftest.py sudo python setup.py install

User Interface Bad Example #703

I recently signed up for a health club membership at one of my alumni university. The club and facilities? Seems first rate for the money. Their online registration service? Great example of bad web application design. Really bad: It offers online membership signup, and class registration. Sounds great. But look at this common usage scenario:

Registration for class for a new family member:

  1. Click on "add new member"
  2. Fill in information, several screen
  3. arrives at end of membership add, see link for register for classes
  4. click on register for classes, continue to select class
  5. make payment, registered !! BUT
  6. because membership is not immediately approved, the class registered as a non member, paying the wrong fee.

Or this very simple problem -- searching for a class to register:

  1. Click on "registration"
  2. A very long list of classes, sorted by class type, and begin date, shows up
  3. nice? No -- because classes that are already past is in the list, making it hard to find the right class and time. You have to look at each class' start and end date to see if the class has already past.

How to do that right? Either do not show classes that have ended, or at least offer a filter. Doesn't say too much for this college's computer science department huh? Luckily I did not get my comp sci from there!

Best Pasta for sauces

Ok. May not be the "best" pasta, but this "fancy shape" pasta is great for eating with sauces because of its shape. It picks up the sauce easily and plentifully. What is it? From Colavita, it's called "Radiators 69". These are so special that I can only find them in certain stores, and not even on their website. Another more expensive version is the "Spugnole" by Pastificio Marella. According to the importer's website, "spugnole" means "Small sponges" . I quote: "We dare you to find a sauce that won't get trapped in this pasta!"

Four Stages of Learning - a model for Hiring

In Genuine Curiosity's Incompetence is wonderful post, he discuss the four stages of learning model. A person goes from unconsciously incompetent to consciously incompetent to consciously competent and finally to unconsciously competent. This mirrors one of my analysis on hiring people. I learn this from somewhere but I forgot where: You can draw up a two by two matrix:

  incompetent competent
not self aware (unconscious) avoid at all cost -- "I thing I know it all" Hire !! undiscovered star
Self aware (conscious) Hire -- willing to learn avoid depending on personality -- star vs diva

And look for the undiscovered star or the "willing to learn" as you next hire.

Loft vs High Rise city living

I often hear these from friends -- "you live in the city, right?", "loft? How about those nice luxury condo buildings?", "No? Why not? I thought that's real city living....". Don't get me wrong. I grew up in Hong Kong, and lived in many high rise buildings. I was/am used to them. But given the choice, I very much prefer the real or fake (new) loft buildings that is at most 5 or 6 stories tall. Why? It is because, part of the reason for living in the city is that I feel more connected to the neighborhood and people. From my windows, I can see the streets, and the city activities on the street, day and night. I can see the people in the next building. I can see the courtyard and parks. I feel like I am almost there. If I move to a high rise building, that visual connection is lost. You are now looking out a window far away from the ground. You cannot make out the details of the activities. You are not connected. It's more like voyeurism rather than connected.

Also, most highrise are designed so that the connecting spaces, the corridors on each floor, are narrow and have way too many units per floor. It becames a very impersonal space, very disconnected. You live in a box within a box, and don't know anyone around you. That's not city living.

Redi Shade

Only took us four years, but I finally decided to get some solar shades for the lofts. The new loft is high enough that the sunshine pours into the space all thru the day, which I love. However it is also blindingly bright. Since time is money we decided to get them ordered and installed. After comparing different brands and installer, we settled on Soleil solar shades -- No we did not go for the full motorized version. Those are rediculously expensive. But our installer is kind enough to put up some temp shades while we wait for ours to be made. What did he use? Redi Shade. They are about $5 a set, functional, perfect for temporary use. We may even get a few to put up in our hip (meaning cheap) office loft space.

John Woo

From a film review by Leighton Klein: "Woo's strength has always been splitting the moment apart: finding the truth that lies between the pull of a trigger and the touch of a bullet, dissecting the instant when someone realizes he's been betrayed by - or must betray - his best friend. "

I thought this was very well put. Go see Windtalker.