0
Digg me
Image representing Instapaper as depicted in C...
Image via CrunchBase

I have been using this trick to get all the webpages I want to read bundled in an eBook that I can carry offline and read on my Nexus One. You can also use any ePub compatible reader, e.g. on your iPad too.

Requirements

1. Google Nexus One (or any other smartphone or mobile device which has an ePub eBook reader)

2. Aldiko on Google Nexus One (or your preferred ePub eBook reader on your device)

3. Instapaper account

Method

1. Add the Instapaper Read Later Bookmarklet to your browser bookmark bar.

To do that, on your account, click on Add+, then drag the “Read Later” bookmarket into your browser’s bookmark bar

2. On any webpage that you want to read later, click the Read Later bookmarklet to save it to Instapaper. When you’re done saving several webpages of different sites, that will constitute your eBook, proceed to step 3:

3. On Instapaper, Add a new folder and name it.

4. On Instapaper, in Unread, move all the pages you want to read into the folder you just created. Once done, proceed to 5.

5. On your Nexus One (or other device), browse to Instapaper.com.

6. Select the folder you want to create an eBook out of.

7. Click the ePub icon underneath the Download (Beta) section

8. The eBook will download. Once downloaded, Click on it and it will be imported in your Aldiko bookshelf and you can read it offline.

Troubleshooting

Sometimes, step 8 doesn’t work. In that case, just download the .ePub file from a desktop or laptop and transfer it to your device manually.

Aldiko settings

My preferred settings for Aldiko are:
- Disabled screen rotation: I want to be able to read resting on my side when in bed
- Use Volume buttons to flip pages (and disable touching the screen to flip pages)
- Page flip time at minimum
- Readable font size

Reblog this post [with Zemanta]

  • Share/Bookmark
Tagged with:
 
0
Digg me

AppleThe Apple tablet is said to be announced in January 2010 and I believe Apple will be shaking a few industries in one fell swoop. In this post I make a few predictions about the tablet as well as analyze what Apple does well and what they should do.

Update: the LA Times has an article on how the stock performed:

Apple stock soars to all-time high

Amid speculation about a forthcoming tablet computer, the company’s shares have risen 145% this year.

Apple tablet characteristics

  • It’s going to be a general-purpose multi-tasking computer
  • I think the Apple tablet also support gesture-recognition through the webcam from a distance. You’ll be able to flip pages through just a gesture at a distance, without touching the tablet. There will be other gestures supported
  • There could be some switchable voice recognition and command functions on it too.

Industries which will be shaken up or disrupted by Apple’s tablet

  1. The Music-making industry

For the argumentation, see my post in 2007 on how Apple will revolutionize music-making which I wrote before the release of the iPhone.

The whole experience of how you make music within a sequencer with virtual instruments is about to be revolutionized by Apple with a forthcoming combination of multi-touch hardware and software based on Logic and running on at least Leopard. The very act of recording, manipulating and producing music on a computer will become an organic performance in itself.

And here is what some people have been doing in the meantime, demonstrated by Jordan Rudess of Dream Theater:

One thing Apple needs to do here is make the software detect how much pressure or indirectly, pseudo-pressure.

2. The traditional publishing industry

Single purpose devices like the Nook, the Kindle will disappear, and people will rather use a fuller computing device like the Apple tablet to read the press, mostly on the web or in other digital formats like Flash and PDF.

Apple has pitched the publishing industry to move their content online and through their distribution channel so they can be accessed and read on the tablet.

The split is advantageous to publishers as compared to the amazon Kindle terms, with Apple taking 30% whereas Amazon takes 30% if it is exclusive, and 50% if not.

3. The Cable/Television industry

TechCrunch has a good article on it.

Apple’s strengths here will be:

  • the very high-resolution screen and general great screen quality
  • the excellent movie distribution channel and store through the Apple Store/iTunes combination, but that would necessitate wireless access for it to work anywhere

4. The Mobile computing industry

It remains to be seen how good a tablet is for computing on the go, as posture and ergonomics will be different form having a laptop with a keyboard and a separate screen. But the tablet will still be a fantastic portable computing device.

I am still wondering whether the device will be iPhone O.S. based or built with Snow Leopard. The latter appears primed for use on a tablet, with an adjustable on-screen keyboard. As the more powerful O.S., Apple would do well to use Snow Leopard in the tablet.

If the tablet uses the iPhone O.S., Apple would win points for making it multi-task out-of-the-box. In addition, Apple would leverage the existing Apple App Store infrastructure.

What Apple has and has done well

  • The Apple Store
  • iTunes
  • The distribution through the Apple Store, the App Store and iTunes
  • The Design of it all, making the user experience beautiful
  • Genius recommendations for music – this can easily be transposed for Movies and Books
  • Acquisition of Lala, so that content can be streamed easily from the cloud

What Apple has going against it

  • Does not play well with more readily available formats and codecs, including open-source ones
  • DRM, with machine authorizations

Machines get obsolete or die and have to be replaced, so why should you be limited to 5 machines where the content you paid for is stored and not be able to easily get all the content you purchased in a new machine? What if my old machines all died?

  • Does not allow sending gifts from one country to another user

The next decade will pitch Apple against Google on some fronts.

  • Share/Bookmark
0
Digg me

e Logo At DemoCampMontreal4, I showed the results of time spent programming Ruby and RubyOnRails within the excellent e Text Editor for Windows. You can read about the presentation in my DemoCampMontreal4 report here at YashLabs, MTW and Marc-André Cournoyer’s blog.

e Text Editor and the extensible Bundle system

e is compatible with (the Mac OS X-only) TextMate bundles and can load in its snippets for faster Ruby and Rails programming. However, I also wanted to have quick access to all the methods associated to the common Ruby data structures:

  • String
  • Array
  • Hash
  • Fixnum
  • The Design

  • A keyboard shortcut for launching the menu
  • A menu displaying all methods is displayed
  • From the menu, the user can scroll and select the method or jump to it with a keypress for the first letter of the method
  • On selection, the menu disappears and the appropriate method name is inserted at the current cursor position
  • Ruby’s reflection capabilities

    Ruby logoRuby is a great object-oriented language. In Ruby, everything is an object and hence all the object-oriented principles I learnt are implemented in Ruby quite well and simply, which is more than can be said for C++ and Java. For instance, in Ruby, you can do this:

    10.times

    or

    "Hello".length

    Ruby is great for introspection as it has good reflection capacities – an object can provide information about its internals. The inbuilt .methods method gives all the methods associated with a data structure. e.g.

    puts Array.methods.sort.inspect

    gives


    ["< ", "<=", "<=>", "==", "===", "=~", ">", ">=", "[]", "__id__", "__send__", "allocate", "ancestors", "autoload", "autoload?", "class", "class_eval", "class_variable_defined?", "class_variables", "clone", "const_defined?", "const_get", "const_missing", "const_set", "constants", "display", "dup", "eql?", "equal?", "extend", "freeze", "frozen?", "hash", "id", "include?", "included_modules", "inspect", "instance_eval", "instance_method", "instance_methods", "instance_of?", "instance_variable_defined?", "instance_variable_get", "instance_variable_set", "instance_variables", "is_a?", "kind_of?", "method", "method_defined?", "methods", "module_eval", "name", "new", "nil?", "object_id", "private_class_method", "private_instance_methods", "private_method_defined?", "private_methods", "protected_instance_methods", "protected_method_defined?", "protected_methods", "public_class_method", "public_instance_methods", "public_method_defined?", "public_methods", "respond_to?", "send", "singleton_methods", "superclass", "taint", "tainted?", "to_a", "to_s", "type", "untaint"]

    However, [].methods.sort contains additional methods not contained within Array as shown by:


    res= [].methods - Array.methods
    puts res.inspect

    This gives the additional methods of []:

    ["select", "[]=", "transpose", "< <", "&", "indexes", "partition", "map!", "uniq", "empty?", "fetch", "values_at", "*", "grep", "+", "shift", "clear", "-", "reject", "insert", "reverse!", "indices", "delete", "first", "concat", "member?", "flatten!", "|", "find", "join", "delete_at", "each_with_index", "nitems", "unshift", "index", "collect", "fill", "all?", "uniq!", "slice", "length", "entries", "compact", "last", "detect", "delete_if", "zip", "each_index", "map", "sort!", "assoc", "rindex", "any?", "to_ary", "size", "sort", "min", "push", "find_all", "each", "slice!", "pack", "reverse_each", "replace", "inject", "collect!", "rassoc", "at", "reverse", "compact!", "sort_by", "max", "reject!", "flatten", "pop"]

    Therefore, instead of Array.methods, I’d rather get [].methods.

    Cygwin

    Cygwin logoCygwin’s great UNIX-like programming environment is used by e for the bundle system. This is interesting because from there you can run Ruby code within the e Bundle system and communicate with Cygwin through to the Operating System.

    There’s a great post by Ben Kittrell describing how he made a great Mac-like environment for Rails development on Windows using Cygwin.

    wxCocoaDialog

    wxWidgets logoCocoaDialog is a lightweight Objective-C application for Mac OS X to provide easy access to common GUI widgets and is particularly suitable for object-oriented scripting languages.

    Fortunately, some kind soul ported CocoaDialog to use the cross-platform and open-source wxWidgets toolkit. Actually, it is e Text Editor and its TextMate-compatible bundle system that gave rise to wxCocoaDialog.

    And in this wxCocoaDialog port, we have three additional runmode items not present in CocoaDialog on Mac OS X, including…menu!

    Putting it all together

    Provided you have e installed (wxCocoaDialog comes with it) as well as Cygwin and Ruby for Cygwin, here is how to proceed.

    1. In e, press CTRL-SHIFT-B to open the Bundle Editor
    2. On the left tree-view pane, select Ruby
    3. Click on the big + button lower down and choose New Command
    4. Name the command RubyMethodsString (or anything suitable for you)
    5. Paste in the following code I wrote which connects Ruby, Cygwin, wxCocoaDialog and e. Be careful when pasting as currently the code formatting plugin does weird things with quotes – all the quotes are straight except after index= – the outermost ones really are backticks to access the system

    6. #!/usr/bin/env ruby

      #Access Ruby Methods for strings
      #August 2007 - Josh Nursing - josh.nursing AT gmail.com

      SUPPORT = ENV['TM_SUPPORT_PATH']
      DIALOG = SUPPORT + '/bin/CocoaDialog.exe'
      sel = ENV['TM_CURRENT_WORD']
      x = "--xpos #{ENV['TM_CARET_XPOS']} "
      y = "--ypos #{ENV['TM_CARET_YPOS']} "

      am="".methods.sort

      menu=[]

      #Populate menu with formatted entries
      am.each do |w|
      menu.push "'" + w.to_s + "' "
      end

      #CocoaDialog menu
      index =`"#{DIALOG}" menu --items #{menu} #{x} #{y}`.to_i - 1

      #Insert the selected method text at caret position
      print '.' + am[index]

    7. In the upper right corner, as Environment, select Cygwin
    8. Lower down, select as Input: Selected Text or Word
    9. As Output, select Insert as Text
    10. As Activation, select Key Trigger and press a key combination. I used CTRL-SHIFT-Y
    11. Close the bundle editor and in your Ruby file within e, after a string variable name or string, press the key shortcut
    12. e menu extension for Ruby Programming

    13. Navigate the menu either with the Up or Down Arrows or jump straight to a method by pressing its first letter
    14. e menu extension for Ruby Programming 2

    The selected method including the dot is inserted within your code in e.

    From here you can derive the very similar codes for the other data structures and add them with new shortcuts. My shortcuts are in a row on the keyboard (CTRL-SHIFT-Y, -U, -I, -O).

    This menu extension can be accessed when you’re developing a Ruby on Rails application as well.

    This shows how e can be usefully extended to work better with your favorite programming language.

    • Share/Bookmark
     
    0
    Digg me

    Firefox LogoI was at my friend Olivier’s place and he was showing me his searches on eBay. It’s a good thing he was using Firefox as he benefits from more stability, security and the support of open standards this way.

    However, I noticed he was opening new windows for his searches (trackpad right-click and Open in New Window) instead of using Firefox’s tabbed browsing and switching through them using Alt-Tab on his Windows laptop.

    “Why are you doing that?” I asked.
    “Because it’s faster to use the keyboard to switch between windows.” he replied.

    Essentially, Olivier was using the right tool but not using its particular strengths and had a poor excuse for not knowing how to use Firefox properly. Some of the Firefox features would be slightly wasted if he was stuck in a Windows-switching habit. I usually combine the trackpad with the keyboard for navigating in Firefox.

    Here are some keyboard shortcuts and other tips to boost your productivity when browsing with Firefox.

    1. CTRL-K to go straight to the search bar and enter your search term

    2. On the results page, maintain CTRL and navigate to the links of interest using the trackpad and Left-Click on the trackpad button. This will open all the links in different tabs in a single Firefox Window in the background, while you’re hunting for other relevant search results. If you use a wheel-mouse, most probably a wheel-click is already set to do just that. This method is great for Digg also or any other site with a lot of links that you want to browse to.

    3. CTRL-TAB to navigate the tabs forwards or CTRL-SHIFT-TAB to navigate backwards.

    I know the Mozilla keyboard shortcuts page says you can also use CTRL-Page Up and CTRL-Page Down, but if one of your tab contains a page with a entry box in focus, then you’ll be stuck on that tab when you get to it.

    4. CTRL-W to close a tab

    5. CTRL-T to open a new tab

    6. CTRL-D to add to your Bookmarks

    7. CTRL-B to open your Bookmarks sidebar

    8. Backspace to navigate back

    9. CTRL-Trackpad slide down to increase font size and CTRL-Trackpad slide up to decrease it. This works if you can already use your trackpad’s rightmost y-column to smooth scroll a page up or down like I do.

    Last but not least, a really great time-saver:

    10. CTRL-SHIFT-T to re-open a tab you just closed by mistake.

    Mozilla has a page for Firefox keyboard shortcuts.

    • Share/Bookmark
     
    0
    Digg me

    Google Calendar synced with Thunderbird and LightningWith the release of the latest version of the open-source calendaring application Sunbird, Mozilla has also released the Thunderbird extension Lightning.

    Until now it wasn’t really possible to have two-way synchronization of your local Lightning calendar with Google Calendar. In this post, I show you how to do this so that an event added or edited in Google Calendar will appear in Lightning, and vice versa automatically. For Windows XP you should apply the XP timezone patch, but for all other Operating Systems, like Mac OS and Linux, the steps should work the same.

    Requirements:

    1. If you have Windows XP: XP timezone patch

    2. Google Calendar

    3. Mozilla Thunderbird – The best open-source email program.

    4. Provider for Google Calendar add-on

    5. Lightning – Thunderbird calendar add-on

    Install the timezone patch if necessary. If you already have Thunderbird and a Google Calendar account, then:

    1. Download and install the Provider for Google Calendar add-on for Thunderbird

    2. Download and install the latest Lightning add-on for Thunderbird

    To do these two steps above, you must:

    a. Right-click and save the extension in a local folder

    b. In Thunderbird, go to Tools->add-ons

    c. Click on the lower left “Install…” button and then find the two add-on files you saved (with the .xpi extension)

    Once the extensions are installed, check whether Lightning has correctly determined your timezone, and if not, set it manually in Thunderbird:

    Tools->options->Lightning->Timezone tab

  • Now, log into your Google Calendar and choose the calendar (if you have more than one) you want to sync with. Add some new test events if you wish.
  • On the lower left pane next to your calendar, click the blue down arrow, and select Calendar Settings.
  • On the settings page, go down to your Private address and click the orange XML button.
  • Right-click on the address shown in the new window and Copy Link Location.
  • In Thunderbird’s lower left pane, click on the Calendars tab, and then click on the New… button.
  • Select “On the Network” in the new window which appears. Click Next…
  • Select “Google Calendar”, and then paste the private address you copied into the Location entry. Click Next.
  • Give a name to your Calendar and choose a color. Click Finish.
  • Enter your password for your Google Calendar account and check the box so that Password Manager remembers it.
  • You should find your events appear magically in Thunderbird.

    Now try adding a new event in Thunderbird and Reload the Google Calendar page in your browser. Then, try editing an entry in Thunderbird and Reload the page in Google Calendar.

    There you go, two-way sync between Thunderbird and Lightning and Google Calendar!

    Now, when you see an interesting event on Upcoming or any other site which uses microformats, you can easily add that event to your Google Calendar with a single click, thanks to Firefox and the Operator add-on. If not, read my previous post on Enhancing calendar scheduling with Microformats.

    Once you’ve done that, your event is both in Google Calendar (so that you can check your calendar from any online computer) and in Thunderbird (so that you can check your calendar even when offline).

    The world just got a whole lot better.

    • Share/Bookmark
     
    0
    Digg me

    microformats logo Have you missed some event lately because the information about events is dispersed and fragmented and it’s boring to have to type things in your calendar?

    I will show you how to improve the scheduling of activities in an online calendar by automating much of this process by using Microformats.

    Microformats enable machine readability but additionally add meaning to chunks of text and other data. That means that these chunks of information also become machine ‘understandable’. In turn, this leads to automated processing of semantically useful data.

    The implications for building an Artificial Intelligence with the Semantic Web are staggering but in the meantime, I just want to tell you about a practical application of Microformats which is useful today itself, namely how to make good use of the hCalendar Microformat.

    What you should use:
    1. Firefox. You are using Mozilla’s Open-Source Firefox, aren’t you? If not download it.

    2. Operator. A Firefox extension or addon by Michael Kaply of IBM, which detects Microformats and enables you to act on them. Install it and restart Firefox and restore your session to come back here. Michael just opened up Operator’s source code. Thanks for that and for Operator Michael.

    3. Google Calendar. Get an account with Google and login.

    4. Upcoming.org. Yahoo’s event site which has support for Microformats.

    On installing Operator and relaunching Firefox, you should have a new thin toolbar. Mine shows: [Export Contact | Google Calendar | Google Maps | Flickr | Del.icio.us | Technorati]

    Now, head to upcoming.org and as search tags, type in, for instance, ‘Montreal’. This should list all events locally. It would be much more helpful if upcoming.org also provided Microformats on this list of events but currently it doesn’t.

    MTEBFast II

    Click one of these events. For this example, I chose the forthcoming Montreal Tech Entrepreneur Breakfast II launched by Ben Yoskovitz.

    GoogleCal1

    Operator detects the hCalendar Microformat content and add “(1)” next to the [Google Calendar] button among other things.

    GoogleCal 2

    Click on this button and the events information is automatically added to Google calendar’s event form. You can then save the event into your calendar.

    Voilà. You now have a way to rapidly find and integrate events within your online Calendar with nothing to type – just clicks.

    Now, it would be more interesting if people blogging about events would take the time to add Microformats to the information. One way to do this is to use the hCalendar Creator by Ryan King, based on previous work by Tantek Çelik. It also automatically add tags so that you can found similar events on eventful.com, another web service which is also using Microformats. Similarly here, Eventful does not provide the Microformat information in the list view.

    Check my past post about DemoCampMontreal1. Operator detects it immediately because that informative chunk of text was microformatted with hCalendar information by using the hCalendar creator.

    You can read more about Operator on Michael’s blog and on the Mozilla blog.


    • Share/Bookmark