TiddlyWiki and Firefox 3+ Security Prompt

When TiddlyWiki goes to save a file, in Firefox, you get the following dialog
=====
Internet Security

A script from "file://" is requesting enhanced abilities that are UNSAFE and could be used to compromise your machine or data
=====

Update:

I now use this:
Type “about:config” into the URL address bar, and set the property security.fileuri.strict_origin_policy to false
You’ll often read doc about updating prefs.js with something that resembles:

user_pref("capability.principal.codebase.p0.granted","UniversalXPConnect  UniversalBrowserRead");
user_pref("capability.principal.codebase.p0.id", "file://"); 


This advice is almost correct, but you you specify only "file://" you will still get the message. You must specify the full path name of the file. Instead of "file://", give it something like:

user_pref("capability.principal.codebase.p1.granted", "UniversalXPConnect");
user_pref("capability.principal.codebase.p1.id", "file:///C:/Documents and Settings/kevin/Desktop/TwoNote/ScrapBook.html");
user_pref("capability.principal.codebase.p1.subjectName", "");


Firefox no longer accepts that "file://" is good for "file:///blah-blah/blah.html

Rebooting Linux (Centos 3) Virtual Server

I am using a virtual server from Rose Hosting.  It runs Centos 3.  When I try to reboot, it fails with a mesage:

  • init: /dev/initctl: no such file or directory

Running:

  • mkfifo /dev/initctl

seems to have corrected the problem.  I'm not sure whether I eventually ran "reboot -f" or "init 6" to reboot.

UPDATE 9/4/2008: No, the mkfifo did not do it.  Running "reboot -f" simply reboots without doing the shutdown sequence.  Think of it as a front-panel reboot.  It turns out that some VPS (virtual private servers) use a hacked edition of init, that doesn't actually read /dev/initctl.

Running "reboot" or "init 6" still gets

init: timeout opening/writing control channel /dev/initctl

after running mkfifo.

Oracle exp (and other utilities) Without TNSNAMES

It is possible to run the Oracle exp or imp (and probably other commands) without getting your tnsnames.ora and your environment variables 100% right.  (You will need them at least part-way right.) Here's how to run exp:

exp userid/password@sidname direct=y recordlength=65535 feedback=1000 file=test1.dmp log=test1.log tables=(TABLENAME)

Note: sidname might be globalname instead; I’m not sure.


SQL*Plus can be run without TNSNAMES by using

sqlplus userid/pwd@database.company.com:1521/sid

Chandler PIM, iCalendar, and Outlook (Oh my!)

I thought I’d take a look at Chandler for GTD.  I downloaded and installed Chandler_win_1.0-rc1.exe.  That was the easy part.  Then I had to import my Outlook data.



Chandler can import .ics files (only). In case you’re unaware, Outlook 2003 can export a .ics file, but it exports one per event.  This doesn’t work for my 1000+ events.



I tried outlook2icalv1.04.zip from SourceForge (plus others, that either did a worse job, or would only export a SMALL number of events).  When I imported the file it created, Chandler threw the following error:

  File "C:\Program Files\Chandler1.0-rc1\release\bin\lib\site-packages\dateutil\rrule.py", line 948, in _handle_BYWEEKDAY
    n = wday[:i] or None
exceptions.UnboundLocalError: local variable 'i' referenced before assignment­


Since I know just a bit of Python I edited "C:\Program Files\Chandler1.0-rc1\release\bin\lib\site-packages\dateutil\rrule.py" and inserted at line 945:

    i = 0

I’m guessing that under some conditions, the i isn’t defined upon exit from the loop, so I moved its scope to be outside the loop.
I had to delete the corresponding .pyo file in order to force the recompile.

This still wasn’t enough to let Chandler import my .ics file, so I edited my .ics file and mass-replaced "INTERVAL=0" with "INTERVAL=1".  This is a bug in outlook2icalv1.04.zip.  INTERVAL must be a positive integer, and, as some of us learned in the 3rd grade, "positive" is not the same as "non-negative," because zero is neither negative or positive.

And it was also necessary to mass-replace (regular expression) ";BYDAY=$" ($ means EOL) with nothing.  outlook2icalv1.04.zip outputs BYDAY=(nothing) when it shouldn’t output BYDAY at all.

Then I realized that none of this debugging was going to import my Outlook Tasks, because outlook2icalv1.04.zip only exports appointments.  I could have modified outlook2icalv1.04.zip, since it is just VBA imported into Outlook, but I had to get some things done (i.e. work).

New personal rule – PIM data goes in Outlook.  No synchronizing with Outlook.  No export from Outlook.  No add-ins to Outlook that make my data unusable in a plain-old-Outlook.  (I am open to using add-ins that store all their data in Outlook Appointments or Tasks – just not add-ins that store data that doesn’t show up in Outlook when I open my PST from another computer.) 

Outlook is the data store for my PIM data.  The counting of the Holy Hand Grenade shall be Outlook – not 2, nor 4.

Playing Audible.com AA Files in the Car

I wanted to be able to play audio books from Audible.com in my car.  I don't have an iPod in this car, but my car stereo does have an audio input jack.  I have a cheap MP3 player.  So I thought I'd load an audio book to the MP3 player, to listen to in the car.

I tried using the DirectShow filter for .aa files, with multiple applications such as dbPowerAmp and GoldWave.  It sorta worked, but some books got cut off a few minutes before the end.  Consistently.

I tried burning to a virtual CDRW from iTunes.  NoteBurner appears to work, but since the trial version only records 3 minutes of each track, I can't tell if it too suffers from the cut off at the end of the book.  Other virtual CDRW programs simply were rejected by iTunes and by Audible Manager (old version that had CD burning support).

So I pulled out Nero 8, and burned a set of .nrg CD images.  Then I used Nero ImageDrive to mount the CD, followed by dbPowerAmp Music Converter (dmc) to convert from the audio tracks to mp3.

I could have just burned real CDs, but a 12-hour, unabridged book is a big stack of CDs.  The nice thing about using Nero is that it will burn the whole series of virtual CDs without intervention.  It just burns image.nrg, image1.nrg, image2.nrg, image3.nrg, etc.

For the record: I purchased these audio books, and I will not "share" them with others.  Shucks, I make my living by creating intellectual property -- I'm not going to be a hypocryte and steal someone else's IP.

Music Players

I'm taking a fresh look at iPod-enabled music players.  Current candidates include:

  • iTunes
  • Songbird + its iPod-enabling add-on
  • Floola
  • Yamipod

Yeah, I'm Windows, so Mac-only and Linux-only players are out.  I don't want to be further locking myself into Windows, so Windows-only players like Winamp are out.  I'm not a glutton for punishment, so WINE+Linux doesn't count as being able to run a Windows-only player in Linux.

  • Songbird (reviewed 7/15/08)
    • It is a workable media player. 
    • Not portable by default.  MIGHT be possible to run portably.
    • With the iPod add-on, it accesses the iPod pretty well (without requiring the iTunes iPod driver). 
    • I can't seem to copy tunes from my iPod to a specified folder on my PC. 
    • Has some interesting add-ons and skinning.  I don't like the default skin (white text on black background).
  • Floola (reviewed 7/15/08)
    • It is a workable media player.  Simple. 
    • Portable.
    • Copies files to PC with decent file naming options.
    • Slow to exit.
  • Yamipod (reviewed 7/15/07)
    • It is a workable media player.  Simple. 
    • Portable.
    • Copies files to PC with decent file naming options.

I think I'll use Floola.  From what I've read, Floola and Yamipod are both written by the same guy (they look a lot alike, including the readme.txt files), and he's paid more attention to Floola recently.

Outliners

Things I want from an outliner:

  • Expand/collapse branches of the tree (a.k.a. “folding”)
  • Brain-dead easy to use
  • Works on Mac, Windows. Nice but not necessary to work on Linux or in a web browser.
  • OPML support

Candidates:

  • Atom editor with FoldingText extension
  • Sublime Text with plain text
  • My Life Organized
  • LooseStitch
  • Sproutliner
  • iOutliner
  • Bonsai

Issues and observations:

  • Atom + FoldingText extension
    • This is interesting. Works on Windows, Mac, Linux. Can view documents with Google Chrome; could view on Android/iOS via DropBox and Chrome.
    • Non-intuitive for infrequent users. Steep learning curve. Keyboard driven and you’ll need a cheat sheet if you haven’t used it recently.
    • It is not open source, but the source is available in Python. If it gets abandoned, you could probably keep it going.
    • Some key bindings are a little funky on Windows because he doesn’t use Windows himself.
    • I’m going to try making this my Outliner.
  • Sublime Text with plain, indented text.
    • Crude. You just enter your outline in plain text. Tab to indent. Sublime Text gives you folding for indented sections, as if it were code.
  • My Life Organized
    • Windows only. It is focused on GTD. Desktop application. Synchronizes tasks with Outlook. Does not do OPML well
    • Retarded about Alt-F (press and release Alt, press and release F)
  • LooseStitch
    • Web based
    • Can’t list all my outlines in the free version (can in the $25 per year version)
  • Sproutliner
    • Web based. Abandoned. Withdrawn.
  • iOutliner
    • Web based
    • I can’t find a way to delete an outline. (4/20/2009).
    • Slow
  • Bonsai
    • Windows only. Feature-complete, general-purpose outliner. OPML support.
  • The Fargo family: (No organization of outlines - File/Open shows one long list.)
    • Fargo - discontinued in 2017; like LittleOutliner, but stores in DropBox
    • LittleOutliner.com - basic OPML editing. Stores on his server, but you can export OPML and may be able to set up your own server via http://my.1999.io/users/littleoutliner/2016/07/06/0003.html and RTFM at http://fargo.io/docs/outlinerHowto.html
  • Oak - only stores in browser’s local storage
  • Concord - GPL, Javascript, browser local storage; http://scripting.com/2013/09/16/concordOurGplOutliner
  • OmniOutliner - great; huge; only Mac and IOS
  • OneNote - No export to OPML; I’m familiar with it. Works on Mac but not Linux. Can paste in images (but they take up a full line). OneDrive but local cache. What do I do if MS drops Mac support?
  • Evernote - doesn’t fold
  • Cloud Outliner 2 $9 - simple; Mac and IOS only

For all the web-based outliners, I’d need a daily export in order to protect myself if they summarily shut down their web site. For desktop applications, I’d just need to add the data files to my existing backup process. Web-based outliners come closest to running on Linux/Windows/OSX/iPhone/Android, assuming I use the web interface from the cell phone.

I work for a company with pretty restrictive web filtering. At the moment, I can get to the online outliners, but there is always the risk of being cut off. For the web outliners that are open source, I could always install them on my server, but that is geekier than I want to go for an outliner. Of course, if it isn’t web, at the moment, I can’t get to it when I’m away from my desk.

Observations:

  • I’d like to store data locally so Spotlight can find it. But I’d like to store it in the cloud, so I can use it from multiple clients.
  • As an outliner, I really like Bonsai, but I can’t get past the Windows-only. I’m not going to run it in a VM.
  • OPML is a big deal, because it lets me exchange data with other outliners. You can export from MLO, but it takes some massaging to get the data into another outliner.
  • If I had a Mac at work I might use OmniOutliner Pro.
  • MLO works well for GTD, but Bonsai is a better general-purpose outline (IMHO).
    • MLO will synch with Outlook tasks. This is helpful because I can drag an email to my Tasks folder, and add a to-do with the email body as reference.

Create Microsoft Loopback Adapter

  • Set up the Microsoft Loopback Adapter on Windows XP:
    • Open Control Panel, and start "Add Hardware"
    • Select "Yes, I have already connected the hardware"
    • Select "Add a new hardware device"
    • Select "Install the hardware that I manually select from a list"
    • Select "Network Adapters"
    • Select "Microsoft" and "Microsoft Loopback Adapter"
    • Assign a static address to it.
    • Reboot. Even though it doesn't say you have to.
  • Next?

Unison on Windows

Running the Windows edition of Unison has a problem.  Synchronizing small sets of files works nicely.  Synchronizing large file sets (hundreds of thousands of files and about 30 GB) will just stop sometimes.  The client says that it is waiting for updates from the server.  The server side isn't doing any I/O or burning any CPU (per task manager).  It just sits.

This happens more frequently with "unison -socket 9999" than via ssh, but it happens both ways.  It happens with older releases and it happens with 2.28.34.  I've only tested with the text mode executable, not the GUI.

So I thought I'd give the Cygwin edition a try.  Note that I want to use it to synchronize the Windows file system, and I'm not particularly concerned with the Cygwin file system (which is just there to hold the Cygwin Unison executable and configuration files).

  1. Install Cygwin via http://www.cygwin.com/setup.exe
    1. Be sure to select the newest Unison, OpenSSH, and  cygrunsrv packages.
  2. On your Cygwin server, open a Cygwin bash prompt. It will create your /etc/passwd file.
    1. ssh-host-config -y
    2. When it asks, CYGWIN=tty ntsec
    3. cygrunsrv -S sshd
  3. On your Cygwin client, open a bash prompt:
    1. ssh yourId@yourServer
    2. Work out any problems with ssh before proceeding.  I recommend setting up password-free ssh:
      1. ssh-keygen -t rsa (Note: Only do this if you don't have ssh without password connecting from this client to ANYWHERE.)
      2. Copy your id_rsa.pub (or your identity.pub, or whatever you've named your public key) to the server as ~/.ssh/authorized_keys2
      3. On the server:
        1. chmod 600 .ssh
        2. chmod 600 .ssh/authorized_keys2
      4. On the client, run "ssh yourId@yourServer" and it should login without a password.
  4. On your client, from a shell prompt, run "unison /tmp ssh://yourServer/tmp -testserver".  This is effectively a unison-ping.  If it doesn't succeed, solve the problem before proceeding.