To Type, Shoot Straight, and Speak the Truth...

A man of the cloth and the steel he wields

Nothing good is ever easy: Timelines and TWDB Part 2

Well, after 3 tries at finding a visualization library capable of timeline display that is both simple and flexible, it ended up being kind of a Goldilocks situation – Google’s libraries were too dependent on off-site resources and couldn’t do point data display (like a single date such as “company formed” or “merged with so-and-so”), and my second try was using the boated, outdated and super-buggy MIT visualization libraries (broken, broken, broken abandonware from ’09, which you wouldn’t know unless you started diving into the bug reports), I finally settled on vis.js, which is lightweight, flexible, resizes well, does point data and runs from the local server. Vis.js was “just right”.

Vis.js looks good, resizes well for mobile and is dead-simple to populate with data.

Vis.js looks good, resizes well for mobile and is dead-simple to populate with data.

That much done, I moved onto finishing a semi-functional mockup of what the TWDB Delta “brand” pages might look like. The above screenshot is the first bit. Then of course comes the list of models, and that’s where I ran into the first of the half-million little *gotchas* I’ll prolly run into while doing this.

The problem is, for LC Smith in particular, and certainly other manufacturers, the fact that the LC Smith brand label continued to be applied to machines that were absolutely “Smith-Coronas”, long after LC Smith was merged with Corona. This means there are a few models labelled “LC Smith” that aren’t LC Smiths at all and don’t follow LC Smith’s serial numbering.

Here’s what I mean. When it came down to building queries to pull out the LC Smith model names from the Galleries, I found all those “LC Smith Portables” and “LC Smith Super-Speeds” that aren’t actually LC Smiths. For the Super-Speeds, I *could* just re-file them as Smith-Coronas so they link to the right serial number page (Smith-Corona Super-Speed), but the Portables? Take a look:

lcsmithport1I started re-filing the “LC Smith Portables” as “Smith-Coronas” and quickly realized that wasn’t going to do any good. In the screenie above, note that there are two “LC Smith Portables”, and neither one is either an LC Smith, nor (in terms of model naming normalizations) a “portable”. Instead, you have a “Smith-Corona Silent” and a “Smith-Corona Standard”, both labeled as “LC Smith Portable”.

Thus, in order to set these guys up so they link to the proper serial numbers and are fit into the proper place in the manufacturer’s history, I’d basically have to file them as something completely different than what the labeling says. So, I’m having a bit of a problem figuring out what to do. I suppose I could create specific model designations and serial number pages for these fringe cases, but I’m not entirely sure that’s the best way to handle it. Fringe cases are always bad when you’re talking about relational data handling, and things could get very fragmented and hypercomplex very quickly (and I’m trying hard not to think too much about what a hellspawn that “Brother” will be to shoehorn into this data format).

I’m sort of feeling that the nature of the data, with all of the blending of brands, outsourcing after 1950, and just plain goofy labeling and incestuous relationships between companies might just make the idea of truly rendering the TWDB data in a relational, tightly structured format just plain impossible, and that’s frustrating because it’s for stupid reasons.

In the end, if I do end up doing timelines, they’ll probably be hand-built and riddled with special case provisos, just like the serial number pages themselves (yeah, they’re still flat text/html files just like in Alpha, and when I make changes, I open the file up in a text editor and edit the HTML tables by hand, just like it was 1994). I doubt there’s gonna be any way to auto-generate them with any accuracy that matches up with the serial numbers and labeling on the machines themselves. *sigh*

and I’d gotten so far with the visualizations too…


Updated: July 31, 2015 — 2:25 pm


Add a Comment
  1. Looks great. Fantastic work and it will be a great asset to the Typosphere. I’ll be cheering from the sidelines for you that you will find success.

  2. “Everything good has to be done over again forever,” as a sampler in my father-in-law’s house says.

    I think this is very promising. Of course there’s no master scheme for typewriters, only a patchwork of partial schemes, so I can imagine the difficulty. Whatever you manage to achieve will be well appreciated by many, I’m sure.

  3. Absolutely amazing, how much work and dedication you put into the typewriter database. The Typosphere would not be the same without it. Thank you!

  4. What a task – too bad the data doesn’t fall into neat little piles. I was lurking in the Antique Typewriter Collectors Facebook page and saw a fun “fringe” case – a Smith Premier branded Remington – I *think* that’s what it is.

    1. yep, a lot of those. Smith-Premier continued on as a brand of Remington after they were bought out, as did “Monarch” and a few others, if I remember. Remington was pretty voracious.

      so the initial impulse to split out manufacturers from their holistic relationships is prolly just another one of those weird poisonous ideas designed to frustrate me that have been cropping up the past 3 days. Some devil is throwing stuff at me, but I’m at least aware that it’s happening. Gonna have to load up the 12-gauge with salt in case it shows itself, pesky bugger.

      1. Blug. I am out of my depth here and this may be a nonsense suggestion, but how about instead of splitting manufacturers, you retain the parent manufacturer and add a new field “Labeled as” or “Branded as”? Would that keep your serial numbers orderly?

        1. Hmmn, it kind of already is that way, but in the sense of some brands being “children” or “known as” of parent brands. It doesn’t help in the specific case of things being labelled as one thing when they are another because they have to be one thing *and* another thing that isn’t at all obvious to the person making the entry.

          nope, I’ll back-burner this awhile, but I think in the end, it’ll have to be hand-built and flat-file in order to cover the fringes properly. Strictly relational data systems are bad at that sort of thing since databases lack inductive reasoning capabilities. Gotta use the meat computer for that.

  5. Hi Munk!
    Been thinking for a while about what you mentioned here, as there is a ton of potential for visualization/infographics with the serial number db.. I was wondering how hard would it be to retabulate those serial number tables so that models show up in a different column than serial numbers for better data ingestion (basically a model column). I’ve been trying to run a simple attempt like a streamgraph that could depict not only model timings but also production volumes over time …(which at least you could potentially get an idea from serial #s, except those with new serial blocks). Also, I was wondering if a non-relational db would work here in maintaining those more complex links? Finally, thanks for all the hard work you’ve put into TWDB, it’s an invaluable resource!! Ever thought about doing the same with adders and mechanical calculators?? Lots of info missing there!!:)

    1. The main issue is that every manufacturer had a slightly different way of doing things that makes it hard to standardize on any specific method of data visualization. It’s basically why I have to hand-write all the pages. I can come up with methods that work well for some manufacturers, but don’t work at all for others.

      Re: adders- I have a load of info on adders/calcs, as you would expect when mining office equipment dealer data, so if such a thing were to happen, we’ve got some data. I’m just not seeing a great deal of interest in it presently, though.

Leave a Reply

Your email address will not be published. Required fields are marked *

To Type, Shoot Straight, and Speak the Truth... © 2015 Frontier Theme