Archive for software

Distributed ESON

I’ve been reading through the Telehash spec and the updated spec. I’ve been contemplating a similar network built on KadOH.

One of the first things I’m changing is that instead of JSON the values returned from hash values are ESON. An ESON object is returned by the function:

return eval( "( function() { return " + eson + " } )()" )

JSON is a subset of ESON. One thing that ESON will allow us to do is give literals valid positions in the distributed object.

Imagine, there is a DHT in place such that an ESON object can be retrieved with a key.

Read the rest of this entry »

Leave a Comment

EBook Weirdness

Something strange with Google ebooks: when I search for The Year’s Best SF 13, it doesn’t show up.

From the publisher’s purchasing page, I end up at EBooks Inc. which has a Google ebooks link.

It turns out I do get a result if I search by the ISBN.


Year's Best SF 13

Unfortunately, before I discovered this, I bought the Nook version. Before I can get it on my Kindle, I need to remove the DRM.

The PC-based reader has been updated since the extraction was written. I’m working to update them hindered only by no experience debugging crypto.

Leave a Comment

SFTP from Nautilus

I just accidentally discovered Nautilus has fuse SFTP integration.

File ⇊ Connect to Serverdenture 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”/>

Read the rest of this entry »

Leave a Comment

Adding Runlevel 3 to Karmic Koala

I’ve got a brand spanking new install on an Ubuntu machine that I would like to use as a home media server. Because it is ancient, I’d like to run it without windows. Theoretically, because Ubuntu is a Linux distribution and Linux is a Unix clone and the core of Unix was laid out in SysV, I ought to be able to use runlevel 3.

# network multiuser GUI servers
1 ✘ ✘ ✘ ✘
2 ✔ ✔ ✘ ✘
3 ✔ ✔ ✘ ✔
4 ✔ ✔ ✔ ✘
5 ✔ ✔ ✔ ✔
6 reboot

Read the rest of this entry »

Leave a Comment

Google Feedback

The direct click path from ?couchdb tutorial is:

  1. Google Search
  2. Tutorialized: Exploring CouchDB
  3. Tutorialized: View: Exploring CouchDB

Which is the page:

This is half a screen of non-scrolling adverizing covering a page from IBM. This is indisputably a lower quality result than sending me to the IBM page directly.

Read the rest of this entry »

Leave a Comment

Valid JSON

FYI, for the geeks out there, even though:

{ foo: 'bar' }

Is a valid way to initialize a javascript object, it is not valid JSON. In JSON, the key and string values have to be double quoted:

{ "foo": "bar" }

This matters because jQuery 1.4 uses native parsing and the getJSON method will silently fail on malformed files.

Yuck

Leave a Comment

Versioning Basics

Versioining systems are pieces of software that track changes in files. They exist in a variey of forms, and one of the more popular currently is git which was designed for maintaining the Linux kernel.

The basic building blocks of a git repository are “blobs.” In git, a blob is simply a file:

Read the rest of this entry »

Leave a Comment

Templating Basics

We’ll start with the natural building block of any digital system: the bit. A bit is just a binary digit, a one or a zero. Bits are used to encode information. For example, imagine I have a bunch of red cards and a bunch of green cards. I give a red card to everyone in the country except for the President to whom I give a green one. Since the cards only have two possible states, they are a form of bit. The information associated with that bit, however, is highly complex.

Bits are combined into series to represent larger sets of possibilities. Whereas the President bit could only represent two possibilities: someone is the President (red card) or not the President (green card), a string of n bits can represent 2n possibilities. Almost all digital information in the world today is stored as groups of eight bits called “bytes.”

Read the rest of this entry »

Leave a Comment

Stupid Find

This command should work, imho:

$file = ~/personal/private/.htaccess;
find ~/ -name .htaccess -type f -exec diff $file {}
              || ( echo 'Replacing: ' {} && rm {} && ln -s $file {} );

It should hunt down all the copies of my .htaccess files that are only there to password protect a directory and make them symlinks to an authoritative version.

There are many ways to accomplish the task and ⟰ is apparently not one of them. ☺

Leave a Comment

A Project Root

In the last post I mentioned the idea of adding a user root special directory at ‘…’. My other new directory is the repository (or project) root.

For example, I designed the site mr.pcvs.org for the volunteers in Mauritania. Part of the site is a cookbook, both of those sites though are a part of my web repository.

Couscous

Read the rest of this entry »

Leave a Comment

Older Posts »