Coronavirus thoughts. 2. Personal.

So, leaving aside the more minor tribulations of shopping, checking I have some paracetamol, etc. I’m going to have a bit of spare time on my hands.

Since I’ve recently open sourced some code….  Do I?

  1.  Continue on my current “on the side” software project – work on twitter importers and further analytics.
  2.  Document how the existing software works, with some diagrams, and explanation of the underlying subsystems.
  3. Upload some more example software to the repo (Fractal renderer).
  4. Dig out my 2000 vintage raytracing software (distributed raytracer), bring that up to date, and upload it.

Not do software and find something else apart from scratching my arse to do instead.

Coronavirus thoughts 1. General.

So – this is going to test us all a bit. Some thoughts.

  • After 30 years of EU integration, we can start closing borders and implementing travel restrictions in about one week.
  • If elderly people end up getting ill because socialising youngsters spread the virus, I will be sickened.
  • We really don’t know how good we’ve had it. There was the black death, leprosy, cholera, smallpox, polio …. Natural selection and random mutation in viruses means that it’s really just a matter of when … and (although I’m no epidemiologist) the “when” is very roughly determined by:
  • For “human only” viruses, some fixed mutation rate multiplied by the number of humans.
  • For zoonotic viruses, the number of animals, multiplied by the number of human-animal contact. Zoonotic viruses can also be very nasty because other species can exert different selection pressures on the virii, making them more lethal.
  • So – yes. Did we ever get round to eradicating Polio? Compared to what we’re facing now, given that we already have polio vaccines – that looks like a piece of cake.

Second and further order effects:

  • Sequestering entire populations which have previously been free tends to produce pretty major economic and political change. I have a suspicion that once we’re done with the epidemic, there will be changes.
  • There’s nothing like the fear of death to get people to do shit.




Work and project news.

So, I’m now working for Citrix, which, so far, is excellent. Unfortunately, that means I don’t have so long to work on my wonderful on the side project.

I’ve mooted putting the source code online, but as it doesn’t quite meet the security and authentication requirements for all the social networks it logs on to, there’s no way I’m gonna make it public in its current form. However, it’s on the TODO list, and I’ll get round to it in good time.

Database engine it runs on is not bad, and I’ve made some good speed improvements. Now I have an SSD, I’m also considering ways to put most of the data and indexing info on disk, at which point it’ll run pretty much like most other NoSQL database engines. Open sourcing *just* the DB engine code is another possibility, but I’ll await requests on that front.

What’s changed…. people wise.

So – colleagues are good. Better than many other places. V. Happy about work.

Cambridge was different a few years back. Had more friends, used to enjoy social do’s more. Had fun on summer evenings lazing on parkers piece. It was a very convivial, friendly town.

London was OK I guess – Did a lot of concerts. Both the choirs I was in took tours, and I missed every damn one. Real shame – didn’t get to know the people as well as I wanted. Didn’t even get invited to a dinner party.

So, for the moment, it’s brave the cold January nights and roll on spring. Also need to start an exercise regime, which for me, starts next weekend. Suggestions welcome.

Some more social thoughts.

So, time for a few quick social thoughts before I retire for the evening. This is half negative, half positive:

People definitely change. A lot of the people I was delighted to hang out with in my 20’s I now feel are really not my type. They get disqualified on the grounds of:

  • Being too groupy / laddish / ladettish.
  • Being controlling or playing games.
  • Being unaccepting of who I am.
  • Trying to get something for nothing.
  • Being overly critical. (Software developers fall into this category regularly – it works well for the job, not for social things).
  • Flipping their lid when they didn’t get the desired outcome having not explained what it was they expected to happen in the first place.
  • Relying on hearsay and groupthink rather than forming their own judgements and making their own decisions.

On the flip side, I have also been somewhat inspired by a few members of the public (and not so public) who have done really good things:

  • Offered advice.
  • Or encouragement.
  • Or kept silent when further volume did not seem to change things.
  • Or indicated assent or provided help when I wasn’t sure.
  • Or provided wisdom and research on possible next steps and options.

Interestingly, most of them feel it’s a touch to early to do much in the way of consolation….

Not to raise class issues too much, but there are some aspiring working class people (I am thinking gym instructors, and a few local business managers), who have been absolutely excellent in that respect, and mostly uncomplaining of the trials that life throws them.

I still go out to the pub occasionally, and probably shouldn’t: It’s loneliness.

So, anyway, I have started online dating (again), and yes, it is very hit and miss. I’ve met a few people, some of which are looking for prince charming, and perhaps not being so realistic, and some which seem not to get the principle of reciprocity (you scratch my back …, and additionally, we’ll share 50% of the time / cost / burden / travel). And yes, in your 40’s it definitely gets harder. Looking back at the 20’s and 30’s – I should have been less shy, and making more friends would have been a piece of cake.

I’m still having a little difficulty working out why I didn’t get what I wanted in my 30’s. I definitely got run around more than I should have been, and some people I met were definitely a touch vindictive. I should probably have been more assertive. I didn’t get a single thing I wanted in my 30’s, and am back where I was then with somewhat less time to run in life.

Anything else: I’m taking a fair bit of criticism on the chin at the moment, and less than ideal attitudes. Most events that have transpired have not been under my control. I guess I will just have to roll with it. I don’t think I’m going to get the standard of life I originally expected, but things are definitely improvable.

PS. If you think I’m just fab, but should lose a couple of pounds, do please politely remind me to do more exercise (in a positive and encouraging fashion). My scales tell me I’m about five or six kilos above my ideal weight. I’m not surprised – I have been sitting on my arse a bit.

How do I make this quicker?

I should probably start referring to database textbooks at this point. Lookups and indexing:

  • Hashing is almost definitely quicker, given a decent hash bucket size…
  • .. but doesn’t allow next/previous operations very well.
  • The hash vales can be easily stored to disk, so it’s not like having to build or rebuild indices.
  • Tree structures can also be stored to disk, but you need to distinguish between whether you’re storing a disk tree (pointers are blocks / offsets / etc), or storing a memory tree with has been indirected / translated to a stream datastructure.
  • Unfortunately, if doing the latter, where the offsets are an indirection of some sort, if you’re not careful, reading the tree off disk can be more time consuming than building it from scratch: you need another datastructure to store the translation from disk blocks / offsets to memory addresses, which has a similar set of costs to a tree (unless you use another hash table).
  • I suppose I could increase the branching factor, but even if you do, you still have the same set of costs to build the tree.

So, as you might guess, the datastructures I’ve got have good amortized cost, but there’s a still a startup cost to be minimised. I also have other techniques to help minimise the startup costs (background loading). This is not critical, and an optimisation to be made after completing basic functionality. Answers on a postcard please.