Synch Outlook with Google

Using Funambol 6.0.14

Here's how to synch your Outlook Calendar with Google Calendar via ScheduleWorld, using Funambol 6.0.14 and Outlook 2003. But it doesn't work, because ScheduleWorld muffs the synch with Google.

  1. Download and install Funambol 6.0.14
  2. Start the Funambol client
    1. Tools/Options
    2. Select the Sync icon
      1. Disable synch of everything except Calendar
      2. Click Calendar's Details button
      3. Sync Direction = 1-way
      4. Clear the Include sub-folders check box
      5. Remote Name = cal
      6. Data format = vCalendar
    3. Select the Account icon
      1. Location = http://sync.ScheduleWorld.com/funambol/ds
      2. Username = your numeric ScheduleWorld ID from http://www.scheduleworld.com/tg/cal/preferences.jsp
      3. Password = your ScheduleWorld password
    4. Click the Calendar sync button. When it completes, check to make sure your ScheduleWorld calendar looks like you expect.
    5. Change the config to 2-way synch
    6. Click the Calendar sync button. When it completes, check to make sure your ScheduleWorld calendar looks like you expect.
  3. Visit http://www.scheduleworld.com/tg/cal/day.jsp and click "Google Sync." Be sure to wait until it shows the completion pop-up before you navigate off the page.

Note: If you wonder about the difference between cal and scal URIs at ScheduleWorld, here's what he has to say on the subject:

cal -> IETF open standard iCalendar and vCalendar supported.
scal -> proprietary mostly undocumented Funambol format

This setup synched Outlook with ScheduleWorld just fine. ScheduleWorld did not successfully get all the appointments into Google, perhaps because of different calendar models.  If you synch things enough, eventually the messed up Google appointments start showing up in Outlook.  Very bad.



<p> </p><p>Using Funambol 3.0.14 </p><p>Paradise Found: </p> <p>As others have blogged, it is possible to synch your Outlook Calendar folder with your Google calendar via ScheduleWorld. ScheduleWorld uses the Funambol Plug-in for Outlook to deliver parts of this magic. It even works… mostly. </p> <p>Paradise Lost: </p> <p>I loaded it onto my PC, did a synch, and found happiness. The next time I did a synch it croaked. Hmmm… Not good. Eventually I tracked down the problem in the source, and figured out that Funambol was having trouble using the proxy server. </p> <p>Technical Handwaving: </p> <p>The code allocates a buffer large enough to hold Content-length (from the HTTP header) bytes. It then reads all available bytes into that buffer. Oops! Buffer overfun! [sic] When it runs from my home LAN, Funambol gets what it expects – bytes read equals Content-length. When it runs at work, the proxy (or maybe a router or the ScheduleWorld server) glues a bunch of nonsense onto the content, so that there are many more bytes to be read than would be indicated by Content-length. </p> <p>Paradise Found Again: </p> <p>The good folks at ObjectWeb have fixed it in a new release, but that release does not yet work with ScheduleWorld. In the meantime, I've uploaded a DLL (see link below) that works around the issue. If you're using Funambol Outlook client 3.0.14, you can un-zip and drop this DLL into C:\Program Files\Funambol\plug-ins\Funambol Outlook Plug-in, replacing the old version of the file. </p> <p>Disclaimer: If you use my DLL, you agree that you are solely responsible for any consequences. I used it successfully a few times. No warranty. Your mileage may vary. </p> <p>Just the Fix, Ma'am: </p> <ul> <li>Replacement winmainclientdll.dll for Funambol Outlook Client 3.0.14 might work for other 3.x; does NOT work well with 3.0.7 </li></ul>

SVS, VMWare, and Portable Apps

SVS www.altiris.com

  1. Some zero-install apps at http://www.svsdownloads.com/
  2. Can install an app on one machine and run it on another. If the app requires activation based on your hardware, you'll have to activate it on multiple machines.

VMWare (and other VMs)

  1. Can run apps installed to an image.
  2. Slow, and really needs more than 1GB RAM and faster than a 1.8GHz mobile Pentium on the PC. Ubuntu is slow, Kubuntu is slow. I still want to try XUbuntu and running Ubuntu non-GUI with a Cygwin X-server.
  3. Sometimes you have to re-activate -- if you have an app that requires activation on hardware changes, and you run it on a major-different processor

Portable Apps

  1. Limited selection of apps
  2. Run on any PC from your USB drive

CoLinux

CoLinux seems to run pretty well, but I can't use it at work. They've used a Group Policy to block ICS NAT, and since Windows XP sends STP (layer 2 routing protocol) packets it could get my network port shut down. Then I'd have to explain why. Also worth noting, X-windows won't run on CoLinux, so you have to run your X-server in Cygwin.

Update: I got the latest snapshot of CoLinux and configured a network proxy virtual NIC. It works pretty well.

Popping GMail With Outlook Through a Firewall

Suppose you need to send/receive your GMail using POP3 and Microsoft Outlook. Easy. Suppose you're behind a firewall that permits only HTTP and HTTPS. Harder, but still possible if you have a server that you control that is outside the firewall.

I'll start by defining some terms:

  • Client - the computer where you run Outlook.
  • Middleman - the server that you control that is outside the firewall.
  • GMail - (needs no definition).

You'll need ssh and proxytunnel on the client. Install Cygwin and use its ssh. You may have to hunt for proxytunnel. You'll need stunnel on the middleman. The client has to be running an edition of Windows. The middleman can run Windows or Linux or other UNIX variant.

At a high level, you'll use proxytunnel to open a tunnel through the proxy, you'll use ssh to redirect client ports to ports on the middleman, and you'll use stunnel on the middleman to make the SSL connection to GMail. The amazing thing is that it actually works.

On the Client:

Insert the following lines into ~/.ssh/config:

Host middleman.you.com
ProxyCommand proxytunnel -p proxy.example.com:8080 -d middleman.you.com:22

This tells ssh that whenever you enter "ssh middleman.you.com" it should ask proxytunnel to connect through the HTTPS proxy on port 8080 on proxy.example.com to port 22 on middleman.you.com. This example assumes that you've set up sshd on port 22 on middleman.you.com. If your proxy/firewall won't connect to anything but ports 80 and 443, you may need to run sshd on one of those ports.

In case you're wondering, whenever your web browser connects to a web site using https via a proxy, it says to the proxy "CONNECT www.example.com". The proxy opens a TCP connection to www.example.com, and your web browser then tunnels its traffic through the proxy. The only difference with ssh+proxytunnel is that proxytunnel does the CONNECT and ssh tunnels its traffic through the proxy.

Create a shell script that resembles:

ssh -C \
-L 25:middleman.example.com:1025 \
-L 110:middleman.example.com:995 \
-p 22 your-user-id@middleman.example.com
stty sane
stty erase ^?

This tells ssh to forward client port 25 to middleman port 1025, and to forward client port 110 to middleman port 995. The "-C" tells ssh to compress the data stream. "-p 22" tells ssh to connect to sshd on port 22 on middleman; you'll need to change this if you've moved sshd to another port.

I added the stty lines after ssh completes, because every once in a while ssh will quit without putting /dev/tty back to normal mode.

Configure Outlook to use SMTP on port 25 on 127.0.0.1 without SSL, and to use POP3 on port 110 on 127.0.0.1 without SSL.

We have to handle the SSL on middleman instead of the client, because GMail's SMTP won't accept SSL from client when the TCP connection comes from middleman.

If you've not already done so, you may want to set up ssh to use public/private keys to connect to middleman without prompting for a password (details not explained in this article.)

On middleman:

Here's how to set up stunnel on middleman, assuming you're running Red Hat or Centos. If you're running Windows, you'll have to read the stunnel doc.

Create /etc/init.d/ssmtp (or call it stunnel if you prefer) containing:

 #!/bin/bash
. /etc/rc.d/init.d/functions
RETVAL=0
prog="ssmtp"

start()
{
echo -n $"Starting $prog: "
/usr/sbin/stunnel && success || failure
RETVAL=$?
echo
}

stop()
{
echo -n $"Stopping $prog: "
killproc stunnel -TERM
RETVAL=$?
echo
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
RETVAL=1
esac
exit $RETVAL

Then, in /etc/rc.d/rc3.d (and also in rc5.d, if your server runs X-windows) enter:

ln -s ../init.d/ssmtp S99ssmtp

Edit (or create) /etc/stunnel/stunnel.conf to contain:

socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
client = yes
foreground = no
[ssmtp]
accept = 1025
connect = smtp.gmail.com:465

[spop3]
accept = 995
connect = pop.gmail.com:995

This tells stunnel to unwrap SMTP over SSL from smtp.gmail.com on port 465 as plain old SMTP on port 1025 on middleman, and likewise for POP.

Since you don't want to provide SMTP access to the entire planet (it will get you listed as an open relay -- very bad), add the following lines to /etc/hosts.deny:

ssmtp: ALL
spop3: ALL

and add the following lines to hosts.allow:

ssmtp: localhost middleman.com 
spop3: localhost middleman.com

(You might prefer to use middleman's IP address instead of its DNS name.)

Finally, to get stunnel running, enter:

sudo service ssmtp start

Finally:

To actually send/receive email:

  1. Run your ssh-starting shell script
  2. Click Send/Receive in Outlook

Note that if you use Thunderbird, you could do things this way, but I recommend that you set up ssh to create a SOCKS proxy (e.g. "ssh -D 8888") and tell Thunderbird to proxy its traffic via SOCKS.  Then you can dispense with stunnel.

 

Paper or Computer?

Like many Getting Things Done acolytes, I've meditated upon the great question: Does GTD holiness come via the path of electronic task lists or paper task lists?
Paper's Attributes:
<ul> <li>Socially more acceptable to fiddle with in some contexts.</li> <li>When I'm in a big hurry, I like to reach for a Post-It.</li> <li>Simple.</li> <li>Reduces time at computer.</li> <li>Retro cool.</li></ul>Electronic's Attributes:
<ul> <li>Easier to re-organize large lists.</li> <li>Blackberry</li> <li>Nesting of projects and tasks (if I use an outliner).</li></ul>I'll capture more as I move forward.

Inboxes:
<ul> <li>Blackberry 8700c (employer mandate)</li> <li>Outlook for work email (client mandate)</li> <li>GMail via Thunderbird for non-work email</li><li>Hipster inbox</li><li>Papers cubby by home desktop monitor</li><li>Voicemail at work</li><li>Grandcentral voicemail</li><li>Jott?
</li></ul><p>
Tasks:</p><ul><li>Hipster - Electronic might be more effective for many people, but I am entirely too prone to get caught up in the shiny new whatzit tool of the week </li></ul>

Notes on Wordpress

Wordpress learnings:

  • If you fail to close a <div> in your page content, you can end up floating your sidebar to the bottom of the page.
  • I removed WP-Cache and now Wordpress does not work:

    This occurs because Wordpress still tries to run advanced-cache.php. Remove or comment out the following line to you wp-config.php file:
    define('WP_CACHE', true);


iPod Tweaks

Enable Hard Disk Mode:

  1. Connect iPod to computer
  2. Open iTunes (v7.0.2.16)
  3. You should see a "Summary" tab with a picture of an iPod. Near the bottom of the page, select "Enable disk use"
  4. Note: You'll find your music if you tell Windows to show hidden folders and then look in \iPod_Control\Music.  You'll see a bunch of folders, and inside them will be gibberish named MP3 files. The names are ugly, but the files have valid MP3 tags.

GreaseMonkey Scripts

Greasemonkey is a marvelous extension for Firefox. If I weren't already a Firefox user, Greasemonkey would be sufficient reason to start. Here are some Greasemonkey scripts I either created or altered. <ul> <li>dejalicious – Adds a marker to your page title to tell you whether you've already bookmarked this site on del.icio.us. Based on the Familiar Taste script, my version caches your del.icio.us bookmarks so that del.icio.us won't ban you due to excessive site hits. Dejalicious Greasemonkey Script</li></ul>

Getting Things Done Toolkits

I tend to wander from one toolkit for Getting Things Done (GTD) to another. Some of the tools I’ve tried include:


  1. Outlook Tasks
  2. Outlook with the NetCentrics Add-in
  3. TiddlyWiki
  4. GTD TiddlyWiki
  5. Bonsai (outliner)
  6. Plain text files
  7. jazzmasterson's coin envelopes and index cards
  8. handwritten index cards

I hope you see a problem.



What seems to happen is that once my list reaches a certain size (i.e. becomes difficult to tackle), I ‘clean it up’ into a new system.  This means I waste too much time in transition from one system to another.  Ineffective.



I tend to have lots of projects in various states of incompletion.  A really big, cringe-worthy pile.  I also tend to pull the, "Ohhhh…. Shiny…" stunt on new tools/technologies.



Here is a partial set of my current axioms:


  1. Many incomplete projects
  2. Blackberry 8700c
  3. Microsoft Outlook email at work
  4. Moderate degree of 'lock-down' on client's network and computers, including don't-install policy and blocking of POP, SMTP and webmail
  5. Business-supplied laptop running Windows XP
  6. Desire not to over-fill my pockets or to carry a 'man-bag' (i.e. a purse)

Update (11/15/06)

At the moment, I’m carrying a TOPS Royale (item 25229) hard-cover, 3x5 lined journal ($5 at Office Depot at Perimeter Pointe). It is about the same size as the Moleskine lined 3x5 ($10 at Barnes and Noble outside Perimeter Mall).


This morning, I had the urge to move back to the computer, due to difficulty in finding the things I want to get done *today*.  I'm going to try adding a fresh 3x5 card listing the day's priority items to mark my place in the TOPS notebook.

Update (11/25/06)

Bounce - I miss being able to shuffle pages. Tried a spreadsheet with tabs for Actions, Projects, Someday, and Reference. Wrote some macros to highlight Projects without Actions and Actions with misspelled projects.

Update (12/4/06)

Bounce - Oops! I'm trying to stay with paper, for simplicity. Going back to index cards. Using them pretty much like I was using the 3x5 journal, but I can shuffle the pages. Carrying them in a leather Franklin-Covey 3x5 holder ($15 at Office Depot -- look near the other small-format Daytimers). The FC holder is attractive, but it is too thick for carrying just 3x5 cards, and I've got 7 must-carry cards (driver's, credit, ATM, transit, health, pharmacy, business cards) and the FC doesn't have room.

Somewhere at home I have a 3x5 leather cover I ripped off a calendar. When I find it, I'll carry the index cards in it. At least it fits my shirt pocket.

I'll retain the Someday worksheet in my Excel GTD workbook. I can still capture Somedays on 3x5, but I'll file them in Excel for long-term. MAYBE I could put my Projects into Excel too, with just active Actions in 3x5?

Update (12/20/06)

Bounce - So I'm not actually using my index cards. I also feel like they don't really allow me to organize my stuff very well. Outlining seems like it would allow better organization.

Outlining Candidates

  • Google Docs - really deals in HTML documents. Could make it appear as an outline, but no ability to expand/collapse outline segments.
  • Microsoft Word - Put it into Outline view, and expand/collapse outline segments via the outline toolbar.
  • Microsoft Excel - select the rows you want to indent; from the menu select "Data/Group and Outline."
  • Bonsai - specialized outliner.
    • How to do Projects?
      • Separate outline for Projects?
      • Just another entry in my GTD outline?
      • Put each project into a separate outline, and link from tasks to their Projects. (Note: an item can have 0 or 1 links.) This looks slick from the item-to-project link, but how can you find links to a project from items?
      • Put project name in Contact field, or a custom field.
    • Hey! Just noticed it can associate icons with Keywords. Using Keywords for GTD contexts instead of Category could have some benefit.
    • Can color text by Category.
    • Has some maddening gaps.
  • Outlook tasks can do a simple outline-by-category
  • Remember the Milk is really slick, but doesn't do outlines

I’m going to try using Bonsai:

  • Context in Keyword
  • OUTLINE (not Item) Category of Projects, with an outline per project, with links from action items to project outline


Update (1/22/08)

Used paper for a while.  Then I stopped referring to it.  Maybe it was because the list got too long.  Took a look at ThinkingRock (2.0 epsilon).  It felt too slow at first, but after using it for a while, I discovered that it can do capture and processing quick enough.  However, the list of action items doesn’t include due date, and I can’t put items in the sequence I want.



I could use Remember the Milk, but I got sidetracked with its Twitter interface.



I’m thinking about going back to Bonsai, due to the flexibility in displaying the items I want in the sequence I want.



When work tasks come in fast and furious via email, Outlook tasks are quick capture.  I’m going to try using Outlook Tasks again.  Projects go into Task subfolders; I’ll use Smart Folder (search) to get the top-to-bottom view of all Tasks, regardless of location in Task or sub-folder.



Update (12/13/08)

I used index cards for awhile.  One task per card.  One project per card.  Then work got very, very busy, and I wasn’t able to keep up, and the index card stack got to be so big it was tough to carry.  This was one of the longest stretches with a single system that I’ve ever had.



I’m going back to Search Folders in Outlook.  You can’t create a Search Folder that searches for Tasks via the user-interface, but I’ve got a little VBA code to create search folders for my contexts.  I wonder why I stopped using this system before?



Search folders:


  • .All Tasks
  • .Completed Tasks
  • @category-names
  • someday (category name)
  • today (category name)
  • waiting (category name)

Projects

<br /></strong>   <br />There are at least 4 ways of handling projects in Outlook.&nbsp; There's the list-of-projects in a Note (or in a special Task); I think of this as the &quot;just like paper&quot; method.&nbsp; You can use folders within the Tasks folder for projects; this method necessitates the Search Folders, so that you can get a cross-project Next Action list. You can use Contacts as projects, linking Tasks to these Project-Contacts in order to see the tasks for a project.&nbsp; There is the Category-project (name something like [project-name-here-including-square-brace]).



List-in-a-note Projects
Advantages:


  1. Simplest to implement
  2. Resistant to tinkering
  3. Easy to export to Excel via copy/paste
  4. Highly resistant to Microsoft cutting features from Outlook.

Disadvantages:


  1. Can't list all tasks associated with a project.
  2. No good place to store project notes (unless you go with one Outlook Note per project, effectively making Note = Project).
  3. Extra work required to associate a Task with its project (e.g. enter project name in the Task body).
  4. No good way to convert a Task to a Project.

Conclusion: I don’t like it because of the non-linking of Tasks with their projects.



Folder-as-project Projects
Advantages:


  1. Easy to group all tasks with their project.
  2. Projects can have sub-projects.

Disadvantages:


  1. You have to use Search Folders created via VBA in order to list Next Actions across all projects.
  2. Hard to print a list of projects.  (You could write VBA to export a list of folders/projects to a special Note or Task).
  3. Hard to export to Excel.    (You could write VBA to export a list of folders/projects to a special Note or Task).
  4. No good way to convert a Task to a Project. (You could write VBA.)
  5. No good place to store project notes (unless you use a specially named task such as ".readme").
  6. Highly dependent on Microsoft retaining Search Folders and VBA in Outlook.


Conclusion: All of the current problems can be worked around at set-up time (i.e. not cumbersome after implemented).  It is workable.



Contact Projects
Advantages:


  1. Groups Tasks with their projects.
  2. Easy to export to Excel via copy/paste.
  3. Good place to keep project notes (in the Contact/Project).


Disadvantages:


  1. Projects can't have sub-projects. (You can actually do this with Contacts in obsolete editions of Outlook.)
  2. Dependent on future editions of Outlook continuing to allow you to associate Tasks with Contacts.
  3. Poor aesthetics unless you use a custom form.
  4. No good way to convert a Task to a Project (unless you use VBA). 
  5. Some of the time you'll get "Bla1 Bla2" and other times you'll get "Bla2, Bla1"

Conclusion: It is workable, but the Lastname, Firstname issue is ugly.



Category Projects:


Advantages:


  1. Group Tasks with their projects.
  2. Highly resistant to Microsoft cutting features from Outlook.


Disadvantages:


  1. You'll have to use VBA to export a project list to Excel.
  2. No good place to store project note.
  3. I find [project-name] aesthetically displeasing.
  4. Mixes project names with context names.

Conclusion: I really don’t like [project-name].



Current overall conclusions:


Contact-projects and folder-projects are both workable.  I don’t like seeing "Contacts" in a Task for the project link, and I really don’t like the Lastname, Firstame showing up in the Contacts field of a Task.



I’ll use project folders, with VBA to generate a project list into a ".Project List" Note, VBA to switch between Task and Project, and store project notes in a ".notes" Task as the first folder in a project (when I have notes).  Flag Next Actions.

Firefox Extensions (non-geek edition)

This is my list of extensions that are probably useful for the non-geek. Where I’ve not provided a link, you can find it by googling the extension name plus ‘firefox extension’

  • IE Tab (https://addons.mozilla.org/firefox/1419/) - Sometimes you go to a site that refuses to talk to Firefox. This extension lets you open a tab in *Firefox* that contains *IE*. You can manually open a site in IE Tab, and you can also give it a list of sites to always open with IE Tab.
  • Scrapbook (https://addons.mozilla.org/firefox/427/) - Sometimes you go to a web page and you bookmark it, and you come back later and it is gone. Scrapbook provides a convenient way to save the page you are looking at, with higher fidelity results than using File/Save.
  • Book Burro - adds a panel to Amazon pages, with a list of prices at other bookstores.
  • Showcase - it's like Expose' on the Mac. If you don't know about Expose', when you have eleventeen tabs open in your browser, and you want to go to one, this gives you thumbnails of all the tab contents and you click on the one you want to see. It doesn't sound terribly important, but once you get in the habit of using it, you'll never look back.
  • Greasemonkey - Wow. Where do I begin? Greasemonkey is an 'enabler.' There are many useful gadgets for Firefox that run only if you have Greasemonkey. Greasemonkey allows one to mess with a page after it is received but before it is displayed. Suppose you go to a web site that always puts white text on a black background and you hate that -- a few lines of Greasemonkey script later, that site now shows up as black text on a white background in your Firefox. Userscripts.org has thousands of Greasemonkey scripts. Here are a few that may be useful:
    • Keen University Library Lookup for Amazon (http://weblog.infoworld.com/udell/gems/LibraryLookup.user.js) - When you're looking at an Amazon book, it tells you if the book is in the Keen U. library. Why would you care? Because a little tinkering and you can make it check with *your* library system -- assuming that your library system is online. OK, this is geeky to do, but non-geeky in use. If you find out how to use your library's online card catalog, I can help you get this to work for your library system. I've got a DeKalb County edition I created months ago.
    • dejalicious - If you use del.icio.us to bookmark things, this is major handy. I wrote it. It is listed at http://www.firefoxfacts.com/2006/08/15/the-best-greasemonkey-scripts
    • Google Suggest - Adds Google Suggest dropdown to normal Google search
    • </ul>
    • Download Statusbar -- gets rid of the dumb downloading file dialog, and gives you color-coded download status bars at the bottom of your browser.
    • Tab Mix Plus -- tweaks the way tabs work. I use it to save a collection of tabs on a particular topic.
    • </ul>