Submitted by Bill St. Clair on Wed, 15 Jul 2009 00:38:17 GMT  <== Loom ==> 

NuBux has got to be the simplest account interface imagineable. Register with an email address and password, and it gives you $1,000 to play with (demo system, obviously). You can spend to other email addresses, see a list of your transactions, and inspect each individual transaction. That's the whole thing. Open source. MIT license. A product of Pelle Braendgaard and Stake Ventures Inc.

Add comment Edit post Add post

Loom User Interface Changes

Submitted by Bill St. Clair on Fri, 05 Jun 2009 10:33:34 GMT  <== Loom ==> 

Patrick Chkoreff has installed Version 86 of the Loom digital vault and payment system. He's done a number of user interface improvements, making it easier to add contacts and assets, and to invite new users to Loom. Bravo!

1 comment Edit post Add post

Loom iPhone Interface Updated

Submitted by Bill St. Clair on Thu, 21 Feb 2008 13:32:53 GMT  <== Loom ==> 

I updated my Loom iPhone interface,, to match Patrick's changes to the Loom interface. "Folder" renamed to "Wallet". "Location" renamed to "Contact". You can tap on a line in a contact's section of the wallet to take all the assets on that line. Also, you can tap on the contact name as well as the green dot (which I retained because I like it) to edit a contact in the "Loom Contacts" screen.

Add comment Edit post Add post

Major Loom release v61

Submitted by Bill St. Clair on Sun, 17 Feb 2008 20:45:54 GMT  <== Loom ==> 

New release of Loom software with many improvements:

  • You now claim an asset from a contact with a single click. Therefore the "Take" button has been eliminated, and only "Give" remains.
  • You can now add a new asset to your folder by copying and pasting a single piece of text. For example:

        id: 26ef701a952fe3d641a69bf859db71c2 scale: 7 precision: 3 name: Patrick GoldGrams

  • Tabs in folder interface now show as "Wallet," "Contacts," and "Assets" to reflect simplified terminology.
  • Each tab in folder interface now has a very thoroughly written context-sensitive Help link. Be sure to click Help as you run through the various tabs.
  • No more green dots. If you want more detail on something, click it. To avoid visual clutter, we often use links that don't appear as links until you hover over them.
  • When you disable history, the entire history display now disappears. Formerly it would still display your history without recording any new transactions until you enabled it again. We like the ability to hide the history altogether, cutting down on distractions and page load time when you really just want to move things around fast.
  • Lots of silky smooth user interface features and refinements.
  • A new feature in the Archive API, and consequently in the Content Management System, to guard against overlapping writes. Now if two people are editing text at a single location, or even uploading files to a single location, the system will detect if anything changed "under their feet" and not clobber the other user's changes. The system also gives a helpful message describing a simple recovery mechanism for integrating the overlapping changes.
  • Although the Vending Machine API is not yet implemented, the new feature of claiming an asset with a single click is the perfect lead-in to how vending machines will operate inside folders. Soon, two-way trades will be utterly simple and rock-solid in all respects.

Add comment Edit post Add post


Submitted by Bill St. Clair on Mon, 04 Feb 2008 11:10:50 GMT  <== Loom ==> 

I've decided to create a GUI application for accessing Loom. I'm calling it Loomsheet. It will be written in Python, using wxPython for the GUI widgets. It will basically be a fancy spreadsheet, with live tables that can import and export their contents across the net. Most of the engine will not be Loom specific, but my use of it will be. So far, I've only reserved the domain, and started on the design. I'll post another notice when there's something runnable. And, if you want to know details, you can follow the Atom feed for puts to the Git repository.

1 comment Edit post Add post

A PHP Script for Viewing Text Files

Submitted by Bill St. Clair on Mon, 04 Feb 2008 02:12:19 GMT  <== Loom ==> 

I've been writing PHP scripts recently to interact with the anonymous electronic vault and trading system. I've wanted to be able to show off my code, and my emacs design text files, without requiring the download of a source TAR file. So I wrote a little script that displays a text file, with a fixed width font and word wrap, and, optionally, searching for a phrase and/or displaying line numbers.

Go to to direct the script to view itself.

You can add line numbers by adding "&numbers=yes" to that URL.

You can search for a phrase, e.g. "replace", by adding "&search=replace" to the URL. Each instance of the search string becomes a link that you can click on to move to the next one.

Finally, such file viewers are security risks if you're not careful. But I was. Only files explicitly named in "viewtext.txt" may be viewed. That list is displayed if you leave off the "file": This makes it easy to drop a copy of viewtext.php in a directory on your web site, and enter the names of the files you want to show in viewtext.txt in that directory.

Go wild!

Add comment Edit post Add post

Live Compression of a GDBM Database

Submitted by Bill St. Clair on Mon, 04 Feb 2008 02:02:10 GMT  <== Loom ==> 

A GDBM database file is an easy way to persistently store key/value pairs. Loom uses one for its backing store. One problem with these databases is that they become fragmented over time, with lots of unfilled empty space: holes. They need to be periodically compressed. Patrick Chkeroff and I came up with a neat mechanism to do live compression. He has seen the Loom database file get 20 times bigger than it needed to be. He plans to integrate something similar to this mechanism into the Loom code.

The basic idea mirrors Lisp two-space incremental garbage collectors, but is a little simpler. Call the original GDBM database the "old" database. We're going to open a second database, called the "new" database. And change the database access code so that it will over time copy the old database to the new one, leaving the new one with a compressed version of the data in the old one, plus any changes the user code has made during the copy operation.

There's a working example in GDBM.php, in my Loom folder. You can copy and paste from that page or download it and my other Loom related code from

The idea is simple. There are three operations on a database, read, write, and delete (implemented in the code by get() and put() functions, where put() of a blank value means delete).


  1. If $key has a value in the new database, return it.

  2. If $key has a value in the old database, return it.

  3. Otherwise, return false, not in the database.

write($key, $value):

  1. Write the value to the new database.

  2. Delete the key from the old database.


  1. Delete the key from the old database.

  2. Delete the key from the new database.

To each of the operations, I also add a call to the copysome() function, which copies some values from the old database to the new one. After all values have been copied, we close both databases, delete the old one, which is now empty, rename new to old, and reopen the new old database. When the user requests another copy, we open another new database and start again.


  1. Fetch the first key/value pair in the old database

  2. If the key does not yet have a value in the new database, insert the key/value pair there.

  3. Delete the key from the old database.
  4. Repeat for a configurable number of copies, or until the old database is empty

At no time is it necessary to close the database for off-line compression. All you need is enough disk space to store two copies of the data, and a slight slow-down in access speed during the copy.

1 comment Edit post Add post


Submitted by Bill St. Clair on Mon, 28 Jan 2008 19:14:54 GMT  <== Loom ==> 

GoldNow sells lots of different electronic currencies: c-gold, e-Bullion Gold, e-Bullion e-Currency, e-gold, GoldNowBanc GoldGrams, GoldNowBanc USD, Liberty Reserve USD, Loom Tokens, Pecunix. GoldNowBanc GoldGrams and GoldNowBanc USD are stored in Loom. Loom Tokens can be used to buy loom storage.

Their registration page sends you a sponsor link for a new Loom folder with 198 tokens. That's enough for most people's uses. Your cost for the "free" tokens is your contact information: snail mail, telephone, and email.

The e-currencies sell for spot price at transaction time plus 5%, and it costs an additional 5 to 10% for payment in money order or fund transfer. Details of which e-currencies and payment methods are available vary depending on your location (country).

Loom tokens cost $1/100.

I mentioned GoldNow in my first Loom article, but since then they've made it very easy to get a Loom folder, and to fund it with gold.

Add comment Edit post Add post

Loom iPhone Client

Submitted by Bill St. Clair on Sun, 27 Jan 2008 14:32:50 GMT  <== Loom ==> is a Loom client sized for the iPhone screen. Works on my iPhone. And in Firefox on my desktop machine. Make yourself a "Mobile" folder and give it a try.

Loom for iPhone

Add comment Edit post Add post


Submitted by Bill St. Clair on Sun, 20 Jan 2008 01:46:19 GMT  <== Loom ==> is on-line. It's a wiki covering "Everything Loom." Not a lot there yet, and I have yet to receive my registration email containing my password, but I'm sure that will be ironed out soon, and then we who like Loom can fill it up with useful information. I added its feed to my news aggregator pages.

Add comment Edit post Add post