DayFlo
From AboveTheGarage
DayFlo was a semi-structured text database based on hyper text research. It was a commercial product in the days when Oracle was still just vaporware. The best modern expression of it (I think) is Media Wiki.
The DayFlo front-end was based on a text editor I wrote called F. My version of F was written first in Pascal and then in C and derived from Dr. James Meehan's version of F for the PDP-10. Later Eric Olsen, Steve Whitehill, and others improved the C language version of F. The editor was basically open source ... but not actually! Technically it would have been owned by the Regents of the University of California. Unbeknown to me someone from the Gilchrist Research Corporation had obtained a copy and used it as the front-end to the DayFlo database.
One day I was approached to do some contracting for a 'Christian Database Company'. I thought that was a bit strange and interesting. I thought it was some kind of database of Christian things but actually what the person meant was the company was generally founded by Christians. I don't know any more than that - perhaps it was just a bunch of people who met through church and decided to start a company. Gilchrist, the founder, eventually raised $10 million dollars for the company making it the largest start-up company in Orange County up to that time.
In modern times, I now know that between myself and the Regents of the UC that we probably technically owned 1/2 of that company because of the 'borrowed' F editor source code. But in 1984 it was all quite innocent.
I interviewed to help them with their program and they showed me the database front-end and I thought ... I know this!
It was while working at DayFlo I met my wife-to-be.
Here's an Infoworld Review I found.
The person who had adapted most of the F code into DayFlo didn't quite understand how the dual-stack editing system worked. Basically, there were two stacks; the stack "to the left" had all of the text to the left of the cursor, back to the beginning of the document, while the stack "to the right" contained all the text to the right of the cursor. Typing new characters just pushed them onto the left stack. Moving forward a word meant moving it to the left stack, a character at a time. It was brilliantly simple. But somehow he didn't understand that and he kept these structures around that tried to remember bookmarks in the text based on the number of the character. As you typed, he updated these. In fact, all you needed to keep track of was the distance from the base of the left or right stack, and only update when the position moved stacks, which was a trivial adjustment.
I realized I needed to rewrite all of the positioning code but of course DayFlo didn't want me to do something as risky as that. So I did it in secret. It was the only way to fix all the positioning bugs. That was a lot of fun. My wife said, "You can do that? Change the architecture of the code without telling anyone?" Yup. You can. Of course, you better not fail, or your ass is grass. I did it while I kept the whole thing running each day; it was done incrementally, which was probably quite innovative in 1984.
So, yay, the product shipped with no positioning bugs. w00t.
-30-
