SearchLog

The Searchlog Searchable Weblog

What is SearchLog? At its simplest, it is a searchable weblog with a lot of features. But if you're only looking at SearchLog "at its simplest", you're missing a lot.

View project on GitHub.

SearchLog is a Swiss Army Lightsaber. Where a common Swiss Army Knife has useful tools that include scissors, blades, screwdrivers, and a can opener, SearchLog is a multipurpose tool for dealing with information and ideas. Its "blades" include:

  • Something that can be as public as a weblog or as private as a diary.
  • A functional search engine over everything in the log.
  • Personal information management:
    • Address book information.
    • A task manager.
  • An interactive document repository.
  • A search engine that will highlight what you're looking for.
  • A place to keep track of ideas.
    • A tool to search through ideas and see what's related to what.
  • A flexible tool that lets you edit information while keeping an archive.
  • Wiki-style groupware.
  • A tool to help keep an office in touch.
  • A portal that provides an excellent starting point for the Web.

As well as these "blades", it is designed to be "expert-friendly." It uses usability principles to try to give the serious user maximum power for minimum effort and keep mousework to a minimum.

If you're not sure which version to download, I suggest the highest-numbered version.

License: This project is free software, available under your choice of the Artistic, GPL, and MIT licenses. If you like this software, you are invited to consider linking to CJSHayward.com.

 

Version RedHat RPM Unix/Linux tar.gz Unix/Linux tar.bz2
1.1, development searchlog-1.0-1.i386.rpm searchlog1_1.tar.gz searchlog1_1.tar.bz2
1.0.2, development searchlog-1.0.2-1.i386.rpm searchlog1_0_2.tar.gz searchlog1_0_2.tar.bz2
1.0.1, stable searchlog-1.0.1-1.i386.rpm searchlog1_0_1.tar.gz searchlog1_0_1.tar.bz2
1.0, development searchlog-1.0-1.i386.rpm searchlog1_0.tar.gz searchlog1_0.tar.bz2
1.0 beta, development searchlog-1.0b-1.i386.rpm searchlog1_0b.tar.gz searchlog1_0b.tar.bz2

Quizmaster

Quizmaster screenshot

Quizmaster is a tool to let people design, publish, and use fun quizzes.

View project on GitHub.

License: This project is free software, available under your choice of the Artistic, GPL, and MIT licenses. If you like this software, you are invited to consider linking to CJSHayward.com.

Version RedHat RPM Unix/Linux .tar.bz2 Unix/Linux .tar.gz
0.0, development quizmaster-0.0b-1.i386.rpm quizmaster0_0b.tar.bz2 quizmaster0_0b.tar.gz

The Powered Access Bible

The Powered Access Bible is a tool to allow free and effective access to the Bible. The Powered Access Bible is especially good at finding which verses contain a given word, and then easily reading those verses in their full context. (The Powered Access Bible is a tool to find what the Bible says about something, and read it in context.) This includes Old Testament, New Testament, and Apocrypha/Deuterocanonical books.

A view of the Powered Access Bible

Read the Powered Access Bible online!

There is also a package available for download and use on Unix-like servers:

If you're not sure which version to download, I suggest the highest-numbered version.

View project on GitHub.

License: Everything but the Bible versions is available to you under hour choice of the Artistic, GPL, and MIT licenses; the Bible translations are licensed as documented in the distribution. If you like this software, you are invited to consider linking toCJSHayward.com.

 

Version Unix/Linux tar.bz2 Unix/Linux tar.gz RedHat RPM
2.1, Development   powerbible2_1.tgz
2.0, Development   powerbible2_0.tgz
1.2, Development powerbible1_2.tar.bz2 powerbible1_2.tar.gz
1.1.1, Stable powerbible1_1_1.tar.bz2 powerbible1_1_1.tar.gz
1.1, Development powerbible1_1.tar.bz2 powerbible1_1.tar.gz
1.0.2, Development powerbible1_0_2.tar.bz2 powerbible1_0_2.tar.gz powerbible-1.0.2-1.i386.rpm
1.0.1, stable powerbible1_0_1.tar.bz2 powerbible1_0_1.tar.gz powerbible-1.0.1-1.i386.rpm
1.0, development powerbible1_0.tar.bz2 powerbible1_0.tar.gz powerbible-1.0-1.i386.rpm

Mobile Web Proxy

When I began using my cell phone's web browser, it displayed error pages for quite a lot of stuff on the web. Browsing the web from my cell phone was a lot like trying to read a book or a magazine with large chunks simply ripped out. And when I tried troubleshooting, I might have missed something, but it seemed like a big problem without an easily available solution.

So I tried to provide my own solution. I made a free mobile proxy server that would present webpages for the mobile web so that they would display in a way that would work for my cell phone's web browser and let me access pages I couldn't access before.

If you would like to download the Mobile Web Proxy server, you are invited to do so. I suggest the most recent-numbered version marked "stable".

View project on GitHub.License: This mobile web proxy server is free software, available under your choice of the Artistic, GPL, and MIT licenses. If you like this software, you are invited to consider linking to CJSHayward.com.

 

Version Unix/Linux tar.gz Unix/Linux tar.bz2
1.2, stable mobile1_2.tar.gz mobile1_2.tar.bz2
1.1, development mobile1_1.tar.gz mobile1_1.tar.bz2
1.0, stable mobile1_0.tar.gz mobile1_0.tar.bz2
1.0b, development mobile1_0b.tar.gz mobile1_0b.tar.bz2

The Magic Notebook

The Magic Notebook lets you keep and organize notes. These notes can be almost anything—projects, contact information, to do lists, books to read, and assorted other things—and are available to you anywhere there's a networked computer. If you use the Magic Notebook, you may find other uses as well.
If you would like to use it, the Magic Notebook is available here.

If you would like to install the Magic Notebook on a Unix-like web server, the software to run it is available for download. (If you're not sure which version of the Magic Notebook to use, I suggest the highest numbered release that is stable instead of development.)

View project on GitHub.

License: This project is free software, available under your choice of the Artistic, GPL, and MIT licenses. If you like this software, you are invited to consider linking to CJSHayward.com.

 

Version Unix/Linux Tarball RedHat RPM
1.4.1, stable. MagicNotebook1_4_1.tar.gz MagicNotebook1.4.1-2.i386.rpm
1.4, development. MagicNotebook1_4.tar.gz MagicNotebook1.4-1.i386.rpm
1.3.3, stable. MagicNotebook1_3_3.tar.gz MagicNotebook1.3.3-1.i386.rpm
1.3.2, stable. MagicNotebook1_3_2.tar.gz MagicNotebook1.3.2-1.i386.rpm
1.3.1, stable. MagicNotebook1_3_1.tar.gz MagicNotebook1.3.1-1.i386.rpm
1.3, development. MagicNotebook1_3.tar.gz MagicNotebook1.3-1.i386.rpm
1.2.1, development. MagicNotebook1_2_1.tar.gz MagicNotebook-1.2.1-1.i386.rpm
1.2, stable. MagicNotebook1_2.tar.gz MagicNotebook-1.2-1.i386.rpm
1.1b, development MagicNotebook1_1b.tar.gz MagicNotebook-1.1b-2.i386.rpm
1.0b, development MagicNotebook1_0b.tar.gz MagicNotebook-1.0b-1.i386.rpm

 

Hayward's Free Intranet Employee Photo Directory

Hayward's Free Intranet Employee Photo Directory is the world's first open source employee photo directory, and is free software, made available to you under your choice of the MIT and GPLv2/v3 licenses. It is an Ajax application powered by Django on the backend and jQuery on the front.

View on GitHub.

A screenshot of Hayward\s free intranet employee photo directoryIt includes:

  • Ajax design intended to crowdsource information from within your employees.
  • Search by name, skill, department, title, and tagging.
  • Status updates.
  • Local time clock for people and organizations who are not in the visitor's time zone.
  • A simple, powerful, usable, unobtrusive user interface and a good user experience.

You are invited to download the Django project:

Version tar.gz tar.bz2 zip
1.1 directory1.1.tar.gz directory1.1.tar.bz2 directory1.1.zip
1.0 directory1.0.tar.gz directory1.0.tar.bz2 directory1.0.zip
1.0b2 directory1.0b2.tar.gz directory1.0b2.tar.bz2 directory1.0b2.zip
1.0b directory1.0b.tar.gz directory1.0b.tar.bz2 directory1.0b.zip

The Data Mine

Famous Software Download

The Data Mine is a search engine designed to give users an unusually powerful interface. It is designed around human-computer intelligent interaction (making the computer a tool so humans can use their intelligence). It divides the screen into two halves: one lets you find all the instances of your query's keywords, and the other lets you look through a highlighted version of the results you choose.

The Data Mine
If you're not sure which version to download, I suggest version 2.0.

View project on GitHub.

License: This project is free software, available under your choice of the Artistic, GPL, and MIT licenses. If you like this software, you are invited to consider linking to CJSHayward.com.

 

Version RedHat RPM Unix/Linux tar.gz Unix/Linux tar.bz2
2.0, development datamine2_0.tar.gz datamine2_0.tar.bz2
1.0, development datamine-1.0-1.i386.rpm datamine1_0.tar.gz datamine1_0.tar.bz2
0.0, stable datamine-0.0-1.i386.rpm datamine0_0.tar.gz datamine0_0.tar.bz2
0.0 beta, development datamine-0.0b-1.i386.rpm datamine0_0b.tar.gz datamine0_0b.tar.bz2

 

CJSH: A Python 3 Based Experimental, Programmable Linux / Unix / Mac Shell

TL;DR

curl http://CJSHayward.com/wp-content/cgi/download-cjsh.cgi > ~/bin/cjsh && chmod 0755 !#:3

What is cjsh/CJSH?

View on Github

cjsh, developed by CJSH (Christos Jonathan Seth Hayward) is an experimental Unix/Linux command-line shell, designed to search for files for the user instead of making the user search through directory heirarchies manually, and allow much of the power of Python as its command-line scripting language.

It can be downloaded, as in the TL;DR section above, and can be initialized (this takes some time, but it pays off in usage), by running:

dev ~/directory $ cjsh --update
Creating image of file heirarchy; please wait.
This may take some time; it may be worth the wait (but sorry...)
Note that the following works well in nightly crontab:

    cjsh --update --silent

The image is complete. You are free to use cjsh.
dev ~/directory $ cjsh
One moment, please; trying to load data...
Loaded.
Welcome to cjsh. Please visit CJSHayward.com! Hit '?' for help.
--
user @ dev.localdomain - Tue Oct  2 17:00:43 2012
/Users/user
cjsh> [TAB] for index in range(10):
----> echo %(index)d
----> 
0
1
2
3
4
5
6
7
8
9
user @ dev.localdomain - Tue Oct  2 17:02:24 2012
/Users/user
cjsh> 

Those echo statements are not built into the (cjsh) shell. They come from an os.system() statement, and it is possible in this way to interleave shell commands and Python, with Python variables accessible to the shell commands, at least at a basic level.

What are you waiting for? Try it!

License: This project is free software, available under your choice of the MIT and GPLv2 licenses. If you like this software, you are invited to consider linking to CJSHayward.com.

CFL: A Truly Unique Distributed Version Control System

Own C.J.S. Hayward's complete works in paper!

TL;DR

curl https://CJSHayward.com/wp-content/cgi/download-cfl.cgi > ~/bin/cfl && chmod 0755 !#:3

What is CFL?

You've tried CVS, SVN (Subversion), Git, Mercurial, and others. Isn't it time to try a little more green of a distributed version control system?

View project on GitHub.

CFL is the first green distributed version control system (DVCS). Inspired by "twisted but brilliant" compact fluorescent lights, CFL offers full DVCS services at a download weight of a very green file size of just under 8k.

Download it now!

CFL in action

dev ~/directory $ cfl commit

CFL can be turned off for efficiency purposes, and comes turned off by
default.

Right now CFL is turned off.

To turn it on, type:

cfl on

Thank you for using CFL!

dev ~/directory $ cfl on

You have turned CFL on. Please remember to turn it off when you have finished
using it.

Thank you for using CFL!

dev ~/directory $ cfl commit

CFL needs some time too warm up after you have turned it on. Please try again
in a few seconds.

Thank you for using CFL!

dev ~/directory $ cfl commit

CFL needs some time too warm up after you have turned it on. Please try again
in a few seconds.

Thank you for using CFL!

dev ~/directory $ sleep 5; cfl commit

To encourage efficient use of resources and a green footprint in terms of bytes
taken by commits, CFL has disabled editor-based commit messages in favor of
command-line inline commit messages, e.g.

cfl commit -m 'Last commit before adding experimental feature.'

Please try again using an inline commit message.

Thank you for using CFL!

dev ~/directory $ 

Testimonials

"Whoa, CVS is so much better than CFL it's not even funny." -Jane Q. Hacker

"Every programmer needs time to percolate, and slow down enough to be productive. That is why I consider CFL an essential programmer productivity tool." -John Q. Hacker

"Every so often you run across a tool that changes the way you think about technology. CFL is that tool." -A former environmental activist

"How did you get in here? Who let you past security? Guard!" -A Fortune 500 CTO

The Blacksmith's Forge: An Extension of Euclidean Geometric Construction as a Model of Computation

Own C.J.S. Hayward's complete works in paper!

Models of Computation: The Church-Turing Thesis and Geometric Construction

The Church-Turing Thesis posits that the equivalence class that includes the Turing machine, and is also the basis for modern digital computing, is the most powerful model of computation. And it hasn't been proven, but when people have checked out other models of computation, every one has turned out to either be equivalent to the Turing machine, or become lesser.

Quite probably it may be impossible to construct some useful computer by this model; quite possibly for that matter its greatest usefulness may come through simulations by digital computer, in which case its simulations will automatically not exceed Turing machines or digital computer by its power. However, even if is a failure at scaling some of the highest peaks, it seems an interesting and provoking possibility to explore.

Standard Euclidean geometric construction is a model of computation. It is not usually presented as such, but you start with a diagram and all that may be inferred from it, and you have two tools, a compass and straightedge, as well as a pen or other implement to draw with. And the solution to a construction is to come back with an algorithm that will go through computational steps that start with its initial state represented in a diagram, and use your three tools to create the desired end result.

Both models figure into the model of computation discussed here, but the model of computation is different.

The model of computation described here is like a blacksmith's forge. I have read that one of the first things a blacksmith makes, is a pair of real tongs. And a blacksmith is not just turning out nails and other things for other people, but tools used in the forge. The core insight here is that a blacksmith can create tools, much as a computer programmer may make customized tools for their own work. This is at its core a geometric model of computation, with a more obvious debt to geometry, although the tools should be sufficient to implement a Turing machine. One person made the interesting suggestion that it is applying recursion to geometric construction.

The blacksmith's forge

The main tools the blacksmith's forge works with are as follows; the first three are taken from geometric computation:

  1. A compass, that can be used to draw circles.
  2. A straightedge.
  3. A marking implement.
  4. A jigsaw. The geometric plane is conceived not to be one point thin, but a uniform distance thick. When the blacksmith's forge has constructed the closed outline of the shape, the shape can be cut out.
  5. Pins, equal in length to two or more (whole) times the thickness of the plane. If one pin goes between two shapes one on top of the other, and the shapes are not otherwise constrained, they will be able to pivot around the pin with respect to each other. If two or more pins go through, then the two positions will be rigid in how they are joined.
  6. Pieces cut out with the jigsaw, possibly joined by pins.

Idealized Physics in the Blacksmith's Forge

The blacksmith's forge has an idealized physics. The pin and jigsaw are parts of this idealized physics, but another part of the physics is that pieces do not tip over: any number of stackings that would immediately fall over in the real world are assumed to simply stand upright, the pieces resting on top of any other piece immediately beneath them for some positive areas. There is friction, and pieces pushed to where one entity crosses another, for instance, will immediately stop moving if they are no longer being pushed. Items touching each other can be pushed past each other, but only so far as they are pushed. This does not exhaust the physics, but if you think of the physics of ordinary geometric construction, you should be close to the mark.

Three Classic Problems

Trisecting an Angle

Consider the following diagram:

That is half of it. Take another one, rotate it by one notch and pin it to the bottom one, and you have forced equality for the angles between adjacent arms:

Take this constructed device, rotate it so point A is at an angle's vertex, B is in the angle's clockwise side, and expand or contract the accordion-like device so that C is at the angle's other side. Angle DAB is now one-third of the (trisected) original angle.

Doubling the Cube

Consider the following modification of the previous diagram:

Take a circle, and draw a concentric circle at twice the radius. Then place the constructive device so point A is at the center, and expand out or collapse in so that B is on the initial circle. Then collapse or expand the device so that it is on the the new "double radius" circle. Point E will have a distance to the center equal to the original radius times the cube root of two.

Squaring the Circle

Cut out two circles, and a tall, thin rectangle. Put the circles snugly and squarely so that the line between them and the rectangles is perpendicular to the rectangles' long dimension. Put pegs through the circles' centers through the perpendicular rectangle, and mark (A) both the first circle and the rectangle where they meet. While holding the first circle squarely, push on the outer circle until it wraps the long rectangle around the first circle, and mark on the tall rectangle where it touched the circle's mark.

You now have a distance marked out on the tall rectangle that is 2π times the radius of your circle. Getting the square root of π is not terribly difficult; you can draw two subsegments of a line segment, one equal to the original circle's diameter in length and one equal to circle's circumference, and then draw a long line segment perpendicular to the first segment starting where the two meet. Take one of the corner-like squares above, place it so that it touches both endpoints of the line segment, and while continuing to hold it tight to the ends of the segment, move it so its inner corner lies on the perpendicular line segment. The distance from that point along the line segment to the center is equal to the square root of π times the length of the original circle's diameter:

(And though this would be laborious, I see no reason why such calculations could not emulate a Turing Machine.)

Foul!
You're Using Extra Privilege!

I am indeed using extra privilege, but may I point something out?

There is a bit of a historical difference between now and ancient Greece. We now have a number of branches of mathematics, and though there may be likes and dislikes, it is something of an outsider's question to ask, "Which is right: real analysis or modern algebra?" There is a general sense that as with board games, if you want to play chess you play by the rules of chess and if you want to play go you play by the rules of go.

The three questions neatly and easily answered are the standard three famous problems which it was subsequently proven to be impossible to construct with Euclidean geometry. And these were not simply mathematical chess problems; I don't know the stories for all of them, but legend has it that there was a plague killing many people and an oracle stated that the plague would be stopped if a cubic altar were built that was twice the volume of an original cubic altar. This was not one where people only used Euclidean construction because they decided they could only play by the rules of Euclidean geometry. This was a "by any means necessary" matter, and it should be understood as much. The attitude of "This is the set of rules for this particular game" is anachronous; people would be very glad to have an extension to Euclidean construction that would allow solution of at least one of these problems.

And it is not clear to me whether this is any sense of useful model of computation. (I personally think, out of my second master's thesis, that the human brain can do things no Turing-approximant style of computers can do. Some people have said, "A year spent in artificial vision is enough to make one believe in God," and there are some basic things, like making sense of an I can read book, that most humans do well but are so far insurmountable to computers; one writer wrote of an embodied AI robot "Cog," "The weakness of Cog at present seems to be that it cannot actually do very much. Even its insect-like computer forebears do not seem to have had the intelligence of insects, and Cog is clearly nowhere near having human intelligence."

But I think this model of computation is interesting, whether or not it proves useful.