The Elm language is often cited as an up-and-comer for web front end development. I was attracted to it largely because of the compiler’s friendly and extremely helpful error messages. It’s really attractive in many ways. But when I started looking at examples, I often found myself thinking things like “Why is this so inconsistent?” or “Why is this syntax so complicated?”. And it finally occurred to me that I’ve been ruined by the way Clojure/ClojureScript/Lisp/Scheme do things.
For a little while now, I’ve been working on an application that manages a list of documents, providing multiple views that the user can edit.
The application looks something like this:
The user selects the document they wish to view or edit by selecting it from the large
TableView in the middle of the window. The area on the right provides controls to view and edit details. (The area on the left is for filtering the documents displayed in the central table.)
Based on some early advice, I had watchers on the focus property of the fields that could be edited. When a control lost focus, any changes were written to the database. The user didn’t have to do anything to save their work. It just happened.
This worked with Java 7 and JavaFX 2. After the switch to Java 8 and JavaFX 8, things were not quite the same. If a user was making a change somewhere and then selected another document without moving to another editing view, the data was lost. The focus change notification did not arrive before the new document was selected in the table (repopulating the editing control before the data was saved.)
This probably has no interest to anyone but me, but you may notice a change in the blog theme today. I’ve been dissatisfied with the typography of the blog for quite some time. Today I set out to try to find a theme that had better typography. Man, what a mess! There are a zillion WordPress themes out there. Some awful, but many quite good. However, finding a minimalist theme intended for writing and reading is surprisingly difficult.
Many of the programs I write need a way to enter and edit a two-dimensional grid of data in the user interface. Such a grid doesn’t need to be a full-fledged spreadsheet, just provide flexible data entry and editing. Alas, there doesn’t seem to be such a thing and I haven’t created one that I’m satisfied with.
Not a very inviting byline, I admit. People have asked what it means. It’s a joke of course. It’s a constant reminder not to fall prey to something I’ve seen block people from getting things done and out there time and time again. People (myself included) are afraid to put something in front of their peers or the public because it isn’t quite perfect yet. There’s just a little more fiddling needed to get it just right.