I won’t be buying an ebook reader yet
Every so often I have a sneaky look at the latest ebook hardware in the hopes of seeing something that will fit my needs. I want to read mostly technical, text booky-type PDFs. So far only the Sony Reader Touch PRS-600 comes close. It handles PDFs and allows annotation. As it doesn’t store the annotations inside the PDF they cannot be synced back to my computer for additions or rereading. What good is an annotation that’s stuck on a device?
This is my shopping list of features:
- Reads PDFs natively (i.e. no file conversion)
- Allows PDF annotation
- Syncs annotations back to computer where they can be read in Adobe Reader / Preview.
- Screen large enough to allow comfortable reading without zooming
As you can see it’s hardly a long list, most of it’s pretty basic too. For the sake of balance here’s a list of the features I really don’t need:
- An MP3 player
- Mobile phone network connectivity
- To be locked into one ebook supplier
What I want to use this for is hardly groundbreaking and yet a device with the simple list of features does not exist – amongst ebook readers that is. Looks like I’ll be sticking with my phone which does read PDFs and has an annotation feature that syncs back to my computer. The only problem is I’m sure it will send me cross-eyed.
Setup Googlemail push email
Google currently doesn’t offer push email on their mail service. Whilst there are plugins for various email clients and desktop widgets they require a constantly running desktop computer to work.
What you will need
- A push capable iPhone
- Prowl for iPhone (setup and working)
- A second googlemail account with IMAP switched on
- A shell account to run a cron job
- Hosting to run a PHP script
- Be willing to add the email login details to the PHP script
Setup
Download and open the mail.php file. Add the email and password details from your second Googlemail account and your Prowl API key. Create a folder, say gmailpush, on your PHP enabled hosting and upload mail.php into it. Set the permissions on mail.php to 711. You also need to upload the prowlPHP class file to this same folder.
Next login to your shell account and setup a script to call the mail.php file. The shell script should look like this:
curl "http://www.domain.com/gmailpush/mail.php"
Set its permissions to 700.
Next you need to setup a cron job to run the shell script every five minutes. Still in your shell account type crontab -e to open your cron settings. The settings will be open in Vim. Put Vim into insert mode by pressing the i key. To set your previous shell script to run every five minutes type:
*/5 * * * * ~/shell_script.sh
Then save and close by hitting the escape key and typing :wq and pressing enter. You can read more about cron at Wikipedia.
Finally you need to setup a forward on your main email account, I recommend the use of filtering to prevent any password related emails from being forwarded, since the password for the push email account is being stored online.
What does the PHP script actually do?
Logs into the Googlemail account and sends out a push notification for each message. The messages are then deleted, hence the need for a separate account.
Installing OS X on a Dell Mini 9
Please not that these instructions are based largely on those on the Dell Mini forum, you should definitely read those before you start. This post it meant to fill in some of the gaps I found whilst installing.
Things to do BEFORE installing OS X
Before you start there are some thing you need to check whilst you have the original OS installed. Check that the wifi and bluetooth (if you bought that option) are switched on. People have had problems with being unable to switch these on post OS X install.
Stuff you will need
- Dell Mini 9 (Whilst it is possible to install OSX on the default 8GB drive it won’t be much fun to use. I opted for the 16GB and an 8GB SD card.)
- A legal retail copy of Leopard
- The Type 11 iso boot image
Burn the Type 11 iso image to disk, if you don’t have an external drive you will need to use the USB method. I had trouble booting my Leopard DVD so I used a CD of Type 11 and an SD card based OS X install.
If your OS X disk isn’t the latest version (10.5.6 as I write this) and you have another mac available it is quicker to download the combo 10.5.6 update from the Apple website rather than wait for the Mini 9 to use the Software Update.
Installing OS X
-
Boot up the Mini 9 with the Type 11 disk (press 0 at boot to select the external drive). It should present you with a prompt. You now need to boot into the Leopard install. Press Enter, then follow the onscreen instructions for booting from Leopard. As I was using an SD card plugged into the right hand side USB slot I had to type 81. You should see the grey Leopard install screen.
-
Use the menu and choose Disk Utility to format your internal drive to Mac OS Extended. Do not to use Journaled or Case-sensitive (Case-sensitive won’t boot – I found this out the hard way).
-
Make sure you deselect the extra languages and printer divers, this saved several gigabytes of space for me. Apart from that follow the normal procedure for installing OS X, it will take about an hour. It is quite likely you will get a notification at the end that the install failed, ignore it.
-
Restart the machine, booting from the Type 11 disk again. This time at the relevant prompt select the internal drive to load Leopard off, should be 80. Then on the final prompt type -f this should enable it to load without problems.
-
Update Leopard using either the Software Update option in the apple menu or the combo file you downloaded earlier.
-
Reboot from the Type 11 disk yet again. Same instructions as above.
-
Install the DellEFI app from the DellMini9Utils on the Type 11 disk.
- If all went well you should be able to unplug the external boot device and boot up from the Mini 9’s drive.
Post install
To enable sleep you need to disable Legacy USB Support in the Mini 9 bios settings.
Run a Time Machine backup, being a hackintosh things may not work in quite the same way as normal and this will save you a lot of time.
That’s it, you should be left with about 6Gb of space on the SSD to install any apps you want.
A little helper for the Stephen Fry L competition
Right, been trying this Stephen Fry L competition thing on Twitter but I’m not having much success. My mind wandered and I ended up writing this little helper form. It counts up all of the L’s so you don’t have to. Please note that pasting may not count until you type a character. Sorry, but I did write this in about five minutes.
Update Twitter from your iPhone via the command line
This guide assumes you have a jailbroken iPhone or iPod Touch with MobileTerminal installed.
I have Twitterific on my iPhone, it’s a nice app but I’m using my iPhone on Orange and they are quite tight when it comes to decent internet access. I wanted to be able to update my Twitter feed without downloading all of the feeds that I follow. Answer: use wget to send an update.
As I didn’t want to have to type the lengthy wget command every time I set up a shell script to do this for me. Make sure you are in /var/mobile and then open nano with nano twitter-update.sh
Type in the following script:
#! /bin/sh
read -p "What are you doing?" -e tweet
wget -q http://twitter.com/statuses/update.xml --http-user=email --http-password=password --post-data="status=$tweet" >/dev/null
echo "Done"
You need to change email and password to your Twitter login details. Save and close the file.
Next open your .bashrc file with nano and add an alias to save you typing ./twitter-update.sh. Mine looks like this:
alias t='./twitter-update.sh'
Again save and close the file. Reload your .bashrc file with source .bashrc. That’s it. Now I can send a Twitter update by opening MobileTerminal and hitting ‘t’, then type in my tweet.
Installing Perl and the Lighttpd webserver on an iPhone
This guide assumes that you have jailbroken your iPhone with firmware 2.2 and have Cydia and MobileTerminal installed.
Installing Lighttpd and Perl
Open Cydia, go to the search tab and search for ‘lighttpd’. Click on the resulting listing and install Lighttpd.
To install Perl you need to add the CoreDev repository to Cydia. Open MobileTerminal and type the following:
(¬ denotes a wrapped line.)
iPod:~ mobile$ wget http://coredev.nl/cydia/coredev.pub
iPod:~ mobile$ apt-key add coredev.pub
iPod:~ mobile$ echo 'deb http://coredev.nl/cydia iphone main' > /etc¬
/apt/sources.list.d/coredev.nl.list
Now when you run Cydia you should see the CoreDev repository in the sources list, look for an entry called something like Perl 5.x.x-x and install it.
Configuring Lighttpd and Perl
Lighttpd will install without a config file or a place to put your website HTML files so you now need to create these. Open MobileTerminal, you should find yourself at /var/mobile. If not, go there by typing the following and creating a folder called Sites:
iPod:~ mobile$ cd /var/mobile
iPod:~ mobile$ mkdir Sites
Next you need to create the Lighttpd config file. Navigate to the /usr/etc folder and create the file lighttpd.conf:
iPod:~ mobile$ cd /usr/etc
iPod:~ mobile$ nano lighttpd.conf
This will open the nano text editor. Type the following into your file:
server.document-root = "/var/mobile/Sites/"
server.port = 80
mimetype.assign = (
".html" => "text/html",
".txt" => "text/plain",
".jpg" => "image/jpeg",
".gif" => "image/gif"
)
server.modules += ( "mod_cgi" )
cgi.assign = (
".pl" => "/usr/bin/perl"
)
index-file.names = (
"index.html",
"index.pl"
)
This is the minimum you need in your config file to run Lighttpd. This config sets the location of the folder that houses your HTML files that you created earlier, sets the port, assigns a few basic file types and tells Lighttpd where to find Perl.
Now save the file by swiping diagonally down and to the right onscreen until the cursor goes red, then press the letter O. To quit nano swipe diagonally down and to the right again and press X.
You can check the syntax of the config file by typing the following:
iPod:~ mobile$ lighttpd -t -f lighttpd.conf
Testing the webserver
In order to test the webserver you need to create a test HTML file and save it to your /var/mobile/Sites folder as index.html.
Get the IP address of your iPhone in the network settings panel and make a note of it. Go back into MobileTerminal on your iPhone and type the following to temporarily activate Lighttpd:
iPod:~ mobile$ lighttpd -D -f lighttpd.conf
Now try and load the iPhone’s IP address in a browser on your computer, you should see your test index.html file.
Starting up Lighttpd automatically
Open MobileTerminal, navigate to /usr/bin and create a shell script containing the previous start up command:
iPod:~ mobile$ cd /usr/bin
iPod:~ mobile$ nano lighttpd-startup
Then inside nano:
#! /bin/sh
lighttpd -D -f /usr/bin/lighttpd.conf
Save the file then and quit nano. This file needs to have its permissions altered to enable it to run:
iPod:~ mobile$ chmod 755 lighttpd-startup
Now for the code to make the lighttpd-startup script run on start up:
iPod:~ mobile$ cd /System/Library/LaunchDaemons
iPod:~ mobile$ nano com.lighttpd.startup
Again, inside nano type the following:
(¬ denotes a wrapped line.)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" ¬
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.lighttpd.startup</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/lighttpd-startup</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Save the file and close nano. Now the next time you restart your iPhone Lighttpd should automatically start up.
Offline WordPress released
I finally got around to releasing my script I use for toting my private WordPress notebook around on my iPod. It’s essentially a PHP page that creates a static HTML page with a load of JavaScript to selectively hide and show posts as they’re searched for.
This is my method for getting the resulting file onto my iPod. I’ve included it here in case it’s useful to someone.
Things you will need
- A jailbroken iPod/iPhone
- MobileTerminal (from Cydia)
- wget (from Cydia)
- file:// Schema in Safari (from Cydia)
Setting up the alias
Open MobileTerminal and type the following:
iPod:~ mobile$ nano .bashrc
This will either open your existing .bashrc file or create one for you in Nano.
The following command will create an alias that makes a backup of your previously downloaded export page and then downloads the latest version.
alias wp='cd; mv export.html export~.html; wget http://www.domain.com/pathtopage --output-document=export.html'
Note that if your blog is behind a password you will need to add --http-user=name and --http-password=pass to the wget part of the alias.
Now close the file by typing CTRL-O.
To make sure your .bashrc file loads when you start up your iPod you now need to create a .profile. Type the following:
iPod:~ mobile$ nano .profile
Then add the following to that file:
source $HOME/.bashrc
Close the file by typing CTRL-O.
Now any time you want to download your WP data just load up MobileTerminal and type wp. To load your offline page in Safari you need go to the URL file:///var/mobile/export.html.
The best todo app on the iPhone/iPod
I love Remember the Milk. I’ve been using it for about two months now, both for work and personal lists. RTM have recently released an iPhone/iPod app to integrate with their web app. It syncs your data for use offline and unlike Appigo’s Todo (which also syncs with RTM) it supports tags. True you do need to have a pro RTM account but at $25 per year it won’t break the bank. It’s certainly less than buying the awful, slow and crash-prone OmniFocus for iPhone along with either the desktop version of OmniFocus or MobileMe account you’ll need to sync it to. Oh and did I mention that it will eat your data?
Apple ‘upgrades’
Hmm, reading up on the big Apple hardware announcement on Tuesday I have to say I’m disappointed. I was really hoping for an OS X powered netbook. Instead what we have now is a so-called pro laptop with a shiny screen. Oh and if you want a small form factor laptop with firewire then you’re SOL because the MacBook only has USB2 in the new models.
Reading the various comments on TUAW the fanboy response of “if you want firewire buy a pro” is quite spectacularly idiotic. If your laptop is your only computer then fine, go pro. I however, already have a desktop, I don’t need another all singing all dancing workhorse, and 15 inch laptops are not very mobile. The MacBook is too expensive to be missing such a key port. I don’t mind that my Eee PC only does USB, it cost less than £300, it’s not designed to be used solo. A MacBook is, or was.
I’m seriously questioning my commitment to using Apple computers. I’ve already given up waiting for a netbook for this round of my laptop upgrade cycle with the purchase of the Eee. Currently I work on a white 20 inch iMac, what do I do if that breaks? Suck it up and buy a shiny screened iMac? Nope, I remember the nightmare of shiny CRTs too clearly. What about a Mac Pro? I design websites, I don’t operate mission control, 8 cores is overkill for my needs. And an £1800 starting price? Forget it. So it looks like either I join the dark side and get used to Windows or I switch to Linux. I’ve been using Ubuntu on my Eee and I’m impressed with it. It even runs Photoshop. Then there’s always VirtualBox to run anything that isn’t covered on linux.
Linux versions of mac applications
A couple of months ago I gave up waiting for Apple to release a slight, small notebook. The Macbook Air is too big. I didn’t need a paper-thin laptop that still required a large bag to put it in. I needed a small thing I could throw in my backpack and not have to make the daily decision as to whether I really needed to take it with me. Cue the Eee PC 901. I bought the XP version as I wasn’t sure how I’d find working with linux. After about a week of using XP I wiped it and installed Xubuntu. It’s lighter than Ubuntu as it uses XFCE rather than Gnome as its desktop. As a total mac-head I needed to find some equivalent apps to put on my new toy.
The Easy Stuff
Some apps didn’t need replacing, Firefox is available for linux and Photoshop runs brilliantly under Wine. And of course linux has a Terminal.
Text Editor
I’ve been using TextMate for a while now, it’s probably my most used app, it’s the only one I actually miss when using my laptop. jEdit is a reasonable substitute, it allows you to configure your own syntax colouring, so I copied my favourite TextMate colour scheme.
FTP
Initially I tried FileZilla but I had problems with it disconnecting from servers, it got painful having to navigate to the same folder over and over again each time I wanted to update a file. gFTP fixes this, plus it is quick to load and run.
Chat
Pidgin is available for both windows and linux. It supports MSN, AIM, Google Talk, ICQ and Bonjour among others.
Music Player
Exaile doesn’t do everything, it won’t sync my iPod for instance. It does play MP3s however and that’s all I needed.
PDF Reader With Annotation
Mac: Adobe Acrobat
Linux: PDF Xchange Portable
This one’s a bit of a cheat, being a Windows app it needs to be run under Wine. I searched in vain for a native linux app that handled annotation in a standard way; I need to be able to read my annotations on my mac as well as my Eee. PDF Xchange Portable runs very well under Wine.