Another High-calibre Saturday

calibre, an e-book reader’s best companion, has been upgraded to v. 0.6.5.

In keeping with my history of tips and tricks for installing calibre on Fedora, I offer the following, based on the install I just completed. I’m running Fedora 11, and this worked for me.

I had to install

poppler-devel-0.10.7-2.fc11.i586
poppler-qt4-0.10.7-2.fc11.i586
poppler-qt4-devel-0.10.7-2.fc11.i586

to get calibre to install and have full PDF support. Said packages are available from the Fedora repo.

The install was error-free, following the usual

wget -O- http://calibre.kovidgoyal.net/downloads/calibre-0.6.5.tar.gz | tar xvz
cd calibre*
python setup.py build && sudo python setup.py install
sudo calibre_postinstall

Though you couldn’t tell it, I have completed about 90% of a Fedora RPM for calibre. It handles dependency checking well, and lays down the required files properly. The postinstall section of my RPM needs some work; there’s a nasty blow-up that I need to investigate.

Previous calibre posts, for your reading pleasure, can be had here.

-k-

Wiki-Top

As documented here, $DAYJOB is detracting from my blogging a bit. I pour most of my vim and vigor into the now required Daily Status Report. I arbitrarily added a couple of sections to my DSR; Observations, Mood, and Thought for the Day. These sections are used for unsolicited editorial comments, at least some of which have been well received by my Overlords.

Lest this turn into one of those posts lamenting my lack of posting, I really have something to say this time.

I’ve also switched from TicklerWiki to DokuWiki for the production of the DSR. TicklerWiki is based on Tiddly Wiki. Any of the TW family has the wiki entirely contained within a single html file, which is makes portablilty trivial. Just copy the file to a thumb drive, transport it, and use it anyplace you have a web browser. No web server, just file -> open, and you’re wikified. And it was a great ride, until a few weeks ago when the TW file got unaccountably and unexpectedly truncated. While TW’s auto-backup feature mitigated the impact of this, I decided to implement a new platform.

Enter DokuWiki. Requiring a web server and PHP, DW is only slightly more involved in its setup. However, DW stores all the wiki pages as plain text. No Postgres, mySQL, or any other database backend needed. Plain text. An old Unix graybeard’s dream come true. The entire wiki content can still be transferred to a thumb drive for portability. So, I stood up a webserver on localhost, fired up DW, and I was off and running.

As I started doing the DSRs on DokuWiki, I realized that DW had many more uses. Now, my entire day’s activities live in DW. Examples:

  • Someone emails me new IP addresses for remote systems that need to be reconfigured next week. Create a DW entry with the new information pasted from the email, set a task to do the reconfig on the proper date. Come go time, call up the task, cut and paste the new network info into a terminal window, and rock on.
  • I have tons of downloaded PDFs,many with cryptic filenames. Create a documentation namespace, upload them to DW, with appropriate annotations, and read/retrieve as required.
  • Draft project plans/implementation How-Tos, etc in DW, export them to html, and distribute as needed.
  • The many DW plugins available for formatting code, bash shell sessions, etc, make it almost fun to do documentation.

My enthusiasm for DokuWiki precipitated a skunkworks project to use DW to update our aging knowledge base system. And skunkworks projects are the most fun of all.

-k-

Higher calibre

calibre, the real deal in e-book management software, has been updated to version 0.6.0. In addition to support for the Kindle DX, there are numerous other enhancements, as detailed in the changelog.

Before you can explore the new shininess, you must build calibre. I’m running Fedora 11 currently; the instructions I posted here still pretty much apply.. A couple of nuances:

To get full PDF functionality, PoDoFo must be installed. These can be had from the Fedora 11 repository, just yum install them:

  1. podofo-libs-0.7.0-2.fc11.i586
  2. podofo-0.7.0-2.fc11.i586
  3. podofo-devel-0.7.0-2.fc11.i586

.
I think only the podofo-devel is a calibre requirement. The versions available from Fedora 11 were sufficiently current for calibre’s needs.

Next, you’ll need some later versions of sip, PyQt, and qt4; these are sufficiently current, and are available from the Fedora Rawhide repo:

  1. sip-4.8.1-1.fc12.i586
  2. sip-devel-4.8.1-1.fc12.i586
  3. qt-4.5.2-3.fc12.i586
  4. qt-x11-4.5.2-3.fc12.i586
  5. qt-devel-4.5.2-3.fc12.i586
  6. phonon-backend-xine-4.3.1-11.fc12.i586
  7. PyQt4-4.5.2-1.fc12.i586
  8. PyQt4-devel-4.5.2-1.fc12.i586

Now, calibre should build and install, on F11 anyhow.

I haven’t had time to explore the shiny newness yet; more details to follow, as the quest begins.

-k-

, ,

Point and Drool

I’ve just spent a little time in the Fedora IRC channel. Someone there was asking about tools for managing large numbers of systems; some type of dead simple system, which would require minimal configuration and maintenance, and would also naturally come equipped with a webified interface.

One of the chat participants then offered this piece of sage advice:

I think “point and drool” by “junior admins” and good systems management practices are mutually exclusive.

Indeed. I must use that line in $DAYJOB at my earliest opportunity. Maybe even on Monday.

-k-

Presto! It’s Fedora!

One of the many enhancements in Fedora 11 is delta RPMs. Delta RPMs are updates that contain only the updated files, rather than all files in the original RPM. This saves download time; nice if you’re updating over a slow internet connection. To use this feature; do this:

yum install yum-presto

Now, on your next update, any delta RPMS will be automatically detected and processed. Changed RPMs not supporting deltas will be downloaded in their entirety, just like old times. Both types are processed in the same invocation of yum update; in other words, it just works.

Output from my latest yum update:

Size of all updates downloaded from Presto-enabled repositories: 3.3M
Size of updates that would have been downloaded if Presto wasn’t enabled: 6.6M
This is a savings of 51 percent

Neat, eh?

-k-

Geek Truckin’

MLB and I enjoy our Search for America Tours. The extra time in driving is more than offset by the absence of dealing with poory trained, uncaring, and often surly TSA employees. We can pack as big a bottle of shampoo as we want, and no one cares. We also don’t have to deal with uncaring and surly airline employees, who see us only as cattle, to be herded on and off the plane to make room for the next batch of suckers. We can stop and get our own snacks, meals, and water whenever the need arises. Nevertheless, road trips are lots of hours on, well, the road. So MLB and I look at the 18 wheelers, note what truck line they are from, and opine as to what they may be carrying. On the most recent tour, the following dialogue unfolded:

MLB: I know I’ve asked a thousand times, but what does P.A.M. stand for in the PAM truck lines?

Me: Pluggable Authentication Modules.

I couldn’t find the answer to her question on the PAM website, so I guess my answer’s as good as any1

-k-


1 According to this, the company was founded by Paul A. Maestri, but that isn’t the meaning of P.A.M. It supposedly stands for Pretty Awesome Mileage. It looks like a great company. In some of my wild let’s get away musings, I fantasize about becoming an over the road trucker.

Amazon RPM Downloader on 64-bit Fedora

Commenter Chris points out that my previous instructions assumed a 32-bit version of Fedora. And he is correct; the Amazon MP3 downloader is a 32-bit application. I see no reason it shouldn’t work on a 64-bit OS, provided the 32 bit version of certain libraries are present; these are the libs of interest:

libgtkmm-2.4.so.1 => /usr/lib/libgtkmm-2.4.so.1 (0×03321000)
libgdkmm-2.4.so.1 => /usr/lib/libgdkmm-2.4.so.1 (0x032d9000)
libatkmm-1.6.so.1 => /usr/lib/libatkmm-1.6.so.1 (0x077b2000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x004f5000)
libpangomm-1.4.so.1 => /usr/lib/libpangomm-1.4.so.1 (0×03685000)
libcairomm-1.0.so.1 => /usr/lib/libcairomm-1.0.so.1 (0x02ff4000)
libglibmm-2.4.so.1 => /usr/lib/libglibmm-2.4.so.1 (0×07675000)
libsigc-2.0.so.0 => /usr/lib/libsigc-2.0.so.0 (0x070ec000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x02e49000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0×00350000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x0036f000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0×00900000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0×00110000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0×00156000)
libgobject-2.0.so.0 => /lib/libgobject-2.0.so.0 (0x00cb7000)
libgmodule-2.0.so.0 => /lib/libgmodule-2.0.so.0 (0x00d18000)
libdl.so.2 => /lib/libdl.so.2 (0x00b72000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00bab000)
libcurl.so.4 => /usr/lib/libcurl.so.4 (0x001d1000)
libssl.so.6 => /lib/libssl.so.6 (0x03c4d000)
libboost_date_time.so.3 => /usr/lib/libboost_date_time.so.3 (0×00949000)
libboost_signals.so.3 => /usr/lib/libboost_signals.so.3 (0×00969000)
libboost_iostreams.so.3 => /usr/lib/libboost_iostreams.so.3 (0x0097d000)
libboost_thread-mt.so.3 => /usr/lib/libboost_thread-mt.so.3 (0x0095a000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00b79000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x03ccd000)
libm.so.6 => /lib/libm.so.6 (0x00b48000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0398a000)
libc.so.6 => /lib/libc.so.6 (0x009d4000)
libcrypto.so.6 => /lib/libcrypto.so.6 (0x039b7000)
libgiomm-2.4.so.1 => /usr/lib/libgiomm-2.4.so.1 (0×07714000)
libgio-2.0.so.0 => /lib/libgio-2.0.so.0 (0x00d53000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0×03958000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0×00233000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x002c8000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x0038c000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x0021e000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x002fe000)
libz.so.1 => /lib/libz.so.1 (0x00b96000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0×00223000)
libXext.so.6 => /usr/lib/libXext.so.6 (0×00325000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x008f6000)
libXi.so.6 => /usr/lib/libXi.so.6 (0×00335000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x0033f000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x004bb000)
libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x008fb000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x0090d000)
libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00dcc000)
/lib/ld-linux.so.2 (0x009b0000)
libidn.so.11 => /lib/libidn.so.11 (0x03b15000)
libssh2.so.1 => /usr/lib/libssh2.so.1 (0x03b48000)
libldap-2.4.so.2 => /usr/lib/libldap-2.4.so.2 (0x00e12000)
librt.so.1 => /lib/librt.so.1 (0x00cac000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x03b76000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x03baf000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x03ca7000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x03b71000)
libssl3.so => /lib/libssl3.so (0x041c2000)
libsmime3.so => /lib/libsmime3.so (0×04199000)
libnss3.so => /lib/libnss3.so (0×04036000)
libplds4.so => /lib/libplds4.so (0x03fbe000)
libplc4.so => /lib/libplc4.so (0x0400b000)
libnspr4.so => /lib/libnspr4.so (0x03fc3000)
libresolv.so.2 => /lib/libresolv.so.2 (0x03afa000)
libbz2.so.1 => /lib/libbz2.so.1 (0x041f4000)
libselinux.so.1 => /lib/libselinux.so.1 (0x00c8c000)
libexpat.so.1 => /lib/libexpat.so.1 (0x00d2a000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00cfa000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00d1e000)
libssl.so.8 => /usr/lib/libssl.so.8 (0x03f36000)
libcrypto.so.8 => /usr/lib/libcrypto.so.8 (0x03dbe000)
liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0×04012000)
libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x004c5000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x03ba3000)
libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x03ca2000)
libnssutil3.so => /lib/libnssutil3.so (0x0417e000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0×00910000)
libfreebl3.so => /lib/libfreebl3.so (0x00e58000)

These can be had by installing these 32-bit RPMS:

atk-1.25.2-2.fc11.i586
bzip2-libs-1.0.5-5.fc11.i586
cairo-1.8.6-2.fc11.i586
cairomm-1.8.0-1.fc11.i586
cyrus-sasl-lib-2.1.22-22.fc11.i586
e2fsprogs-libs-1.41.4-10.fc11.i586
expat-2.0.1-6.i586
fontconfig-2.6.99.behdad.20090508-1.fc11.i586
freetype-2.3.9-3.fc11.i586
glib2-2.20.1-1.fc11.i586
glibc-2.10.1-2.i686
glibmm24-2.20.0-1.fc11.i586
gtk2-2.16.1-4.fc11.i586
gtkmm24-2.16.0-1.fc11.i586
keyutils-libs-1.2-5.fc11.i586
krb5-libs-1.6.3-20.fc11.i586
libcurl-7.19.4-8.fc11.i586
libgcc-4.4.0-4.i586
libidn-1.9-4.i586
libpng-1.2.35-1.fc11.i586
libselinux-2.0.80-1.fc11.i586
libsigc++20-2.2.2-3.fc11.i586
libssh2-1.0-2.fc11.i586
libstdc++-4.4.0-4.i586
libX11-1.2.1-2.fc11.i586
libXau-1.0.4-5.fc11.i586
libxcb-1.2-3.fc11.i586
libXcomposite-0.4.0-7.fc11.i586
libXcursor-1.1.9-4.fc11.i586
libXdamage-1.1.1-6.fc11.i586
libXext-1.0.99.1-2.fc11.i586
libXfixes-4.0.3-5.fc11.i586
libXi-1.2.1-1.fc11.i586
libXinerama-1.0.3-4.fc11.i586
libXrandr-1.2.99.4-3.fc11.i586
libXrender-0.9.4-5.fc11.i586
nspr-4.7.3-5.fc11.i586
nss-3.12.3-4.fc11.i586
nss-softokn-freebl-3.12.3-4.fc11.i586
openldap-2.4.15-3.fc11.i586
openssl-0.9.8k-4.fc11.i686
pango-1.24.1-1.fc11.i586
pangomm-2.24.0-1.fc11.i586
pixman-0.14.0-2.fc11.i586
zlib-1.2.3-22.fc11.i586

Then, insure you grab the 32-bit versions of boost and openssl mentioned in the original post.

Disclaimer: I have not tried this myself, but it should produce an MP3 downloader for a 64-bit system. I don’t know exactly how this might interact with a 64-bit Firefox, but the Amazon-supplied binaries should be OK.

As always, YMMV.
-k-

, , ,

Arrived!

The Kindle DX arrived, on schedule. The initial charging of the battery is done, the “Welcome Aboard” letter from His Bezosness has been read.

I’ve trained MLB in the usage of the Kindle 2. She’s diggin’ it.

Initial reactions:

  • It’s incredibly easy to share books between the two devices. The DX has retrieved content bought on the K2, and is happy to display it.
  • I bought a book and had it downloaded to the DX this evening. MLB’s K2 is happy to let her read that one as well, providing she has any interest in Security Monitoring.
  • The DX screen is every bit as sharp and crisp as the K2.
  • The DX is heavier; I knew that going in. Initially, the heaviness is not an impediment. It’s more of a balance thing; the DX seems bottom heavy. I make this observation after less than a half-hour of using the DX, whilst sitting in my chair, training MLB, drinking a beer, and watching the Stanley Cup Final. I’ll revisit this point.
  • The DX auto-rotate feature works nicely, at the expense of some strange page breaks. It is possible to lock portrait/landscape display. This is a Good Thing.
  • Initial copying of vendor supplied PDF manuals shows the DX on-board PDF reader does the best job yet of displaying arbitrary PDFs. Once again, some come up smiling, others are less than spectacular. Even the less than spectacular ones are readable. With some tweaking, I think things will improve. My naive hope of blindly copying arbitrary PDF documents over with no intermediate processing has faded somewhat, but the inital DX handling of them gives me hope.

The DX is a keeper. My initial observations are encouraging. I’ll fiddle, tweak, test, and let y’all know how it goes.

-k-

,

Shipped!

The Big Ol’ Kindle DX, from Amazon, is on the truck:

Ship Carrier: UPS
Tracking Number: 1Z7xxxxxxxxxxxxxxxx
Status: In transit

Order #: nnn-mmmmmmm-zzzzzzz
Shipment Date: June 10, 2009
Destination: RESTON, VA, US
Estimated Arrival: June 12, 2009

Hmm… new Kindle, WordPress upgrade, multibooting Fedora on a test laptop.

The geekiness thickens…

-k-

Estimate

From Amazon:

Items not yet shipped:
Delivery estimate: June 12, 2009

* 1 of: Amazon Kindle DX Leather Cover
Sold by: Amazon.com, LLC
* 1 of: Kindle DX: Amazon’s 9.7″ Wireless Reading Device (Latest Generation)
Sold by: Amazon Digital Services, Inc.

And the anticipation heats up.

-k-