Tuesday, March 30, 2010

An investigation

Recently, I was lamenting that Hyatt's development had fallen to the wayside.  Part of the problem was the question of the data format; no matter how many times I reinvented the wheel, it seemed to end up unacceptably square.  In the end, I decided to see what specific standards and formats had come before.  So I googled "tabular data format".  Imagine my surprise when I found that the top result* was a recently-expired patent.  As someone who's recently realized just how bullshit patents have gotten (Hi, Apple!) (note to self: record the patent song), I figured it would be nice to test to what extent the patent in question is valid.  There can be no question as to the utility or novelty of tabular computing, but I'm curious about how the PHOSITA test works out.  (With the caveat that I am both a novice, and working with much nicer languages than were around two decades ago.  So, you know, it's a bit all over the map.  However, I want Hyatt, so at least I probably shouldn't be intentionally sabotaging myself.)

*Due to Google's all-seeing eye** personalizing the search results, this was actually my second result, but viewing the results with no personalization had it as the top result.

**I mean no disrespect, o great and terrible overlord!

Wednesday, January 13, 2010

I've got what I think is a neat idea...

I'm going to sit on it until I get my first paycheck of the year, and work on stuff behind the scenes, like.

I'm not sure how that was supposed to be punctuated.  But things will be happening, oh yes.

Sunday, January 10, 2010

Some hyatt revelations

Functions should be handled by the output domain.  This is because function execution should, in essence, propagate inward: one function has other functions as arguments, and each of those arguments is typed, so that domain is queried if the argument is the result of a function evaluation.

EDIT: actually, that might be the opposite of how I wanted to do it.  I'll need some hypothetical situations to buffer up my position (the issue is overloading).  Either way, good on me for remembering about the existence of vector domains, which make this whole setup much more sensible.

EDITx2: Functions are identified by signature, which means that they should be stored by parameter domain and name.  To determine functions higher up, first find the output domain, and feed that to the function in question.

Saturday, January 9, 2010

To-Do for Hyatt, at the moment

Transition code outside of domain.py to use the new "terquid" class. EDIT: maybe done.  To the extent that it's not done, related tasks not detailed here have a higher priority.
Change the serialization and deserialization methods to support empty terquids.  EDIT: done.
Give terquids exceptional support, or vice-versa.  EDIT: exceptionals are now a subclass of terquid (but see below)
Think of a better name than "terquid".  EDIT: terquid is now "mem"

Friday, January 8, 2010

Yay! Progress!

Work continues apace on Hyatt, the RDBMS for elitists.  The constraint model has been cleaned up.  It now features fewer irrelevant functions and a robust logical model that will give most of the people who attempt to use it fits.  Next, I need to do some work to get vector domains into a sensible place, and to overhaul the function specification system for domains.

Current idea for that last one: function specs consist of a tuple of the function itself, and the domain of any arguments beyond the first one.  The first one must be of the defined domain.  To allow binary functions such as addition, there'll be a dummy object that gets replaced with the domain in question during class creation.  Ugh... something is fishy with all that...

Idea: domains are created solely as specifications of permissible data, using several validation functions, with default constraint objects.  (In other words, they have a default coercer, which can be overridden in specific instances.)  Functions register themselves with domains after those domains exist.

Monday, December 7, 2009

Hi All (So, just Jon)

I've decided that my blogs are too diffuse.  Anybody who's looked at my profile is probably going "No... really?  You think so?".  I've decided to repurpose my "progress" blog into a sort of personal hub.  My current plan is to abandon most of my blogs.  Either they've served their purpose (the whole vampire thing doesn't really need updates), or I think I can realistically aggregate them here.  (First Circle was a failed experiment, with its spiritual successor at the GDL forums—go there, by the way—and well, politics is personal.  The way things work out, I really love that "almost genocide" crack, but it only works on a political blog, and I don't do enough politics posts to justify making Le Blog Pour Le Blog my main blog.  So, writing goes over at Pepto-Bismol, everything else goes here, more or less.)

I'd better update the other blogs with this information.

Monday, November 30, 2009

This is my most 'me'-y blog, so this post goes here

I am extremely honest. This has gotten me in trouble in the past. I wish I meant that I exposed some wrongdoing and got unjustly punished for it, or something heroic like that. No. I have a psychological aversion to lying. It screwed me up on a writing assignment in elementary school, and it's screwing me up now.

Then, I had to pretend that I saw some meaning in a novella about the Iditarod, or something. I didn't see the meaning, so I talked to the teacher about it. She told me what meaning I was supposed to see. Knowing that, I could write up the one-page-or-so assignment on the novella. I could not, however, refrain from pointing out that I still didn't see the alleged meaning. I don't actually know if it wasn't there, in retrospect. Point is, blunt honesty. Not endearing.

Now, I have to write a cover letter for a professional seminar. This requires a level of interest that I reserve for [REDACTED]. A level of interest that I feel totally unqualified to fake. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA