Ugarit archive mode progress (by )

Ugarit's archive mode is getting along nicely. I now have importing from a manifest file that specifies properties for the import as a whole, and a list of files to import with their own properties, and basic browsing of the audit trail of an archive in the virtual file system. That includes access to the properties of an import via the virtual "properties.sexpr" file. Note also that lots of import and file properties are automatically added, such as the hostname we import from, the input path for each file, a MIME type deduced from the extension, and so on.

Below the fold is a transcript of it in use, which probably won't mean much to many people...

Read more »

Dads & Lads (by )

popped up in my local news today: Lads and Dads Club to strengthen family unit.

"That sounds a bit... 'last century'", thought I. What activities might require male-only participation? Getting women pregnant probably isn't a task that fathers and sons would traditionally share, so it pretty much had to either be mustache/beard management or targetted urination, right?

But, no, it's a club for doing outdoorsy/adventurous activities. Exactly the kinds of things my wife and eldest daughter enjoy doing, as it happens (our youngest daughter, on the other hand, is scared of mud and trees). So, why the "father/son" branding?

Well, what I suspect they're trying to do is to give fathers motivation and opportunities to spend more time with their children. With the kinds of careers that make the money required to raise a family still much more accessible to men than women, a lot of kids are largely being raised by their mothers, which will indeed give kids a skewed view of the world. For a start, it'll tell them that parenting and domestic chores are for women while going afar and earning money is for men, which sucks. And it'll tell young boys that their destiny is to grow up to be a distant wage-earner, while girls are told that their destiny is to be a carer who's always hanging around the home and spending somebody else's money.

Yep... That sucks. Fathers spending more time with their kids is a good thing, and help in doing that - in telling them that they should, and that it's an OK thing for a man to do, and in giving them ready-made group activities to turn up so they don't need to organise stuff themselves, and to get them in with other similarly-minded people to exchange tips and make friends - sounds awesome to me.

However, I think it's been unfortunately tainted with gender stereotyping. That it's sons that need more time with their fathers, but daughters don't. There's an assumption that the boys need to learn MAN THINGS from their MAN DADS, while the girls are fine learning woman things from their woman mums.

But kids don't have these gender stereotypes as to what activities they should do, unless we force them onto them. And forcing gender roles onto people causes misery.

The Lads and Dads club have a rather defensive-sounding statement on their site saying that mothers and daughters are welcome too, but the rest of the site is full of statements like:

Lads and Dads Club is about creating fun and inspiring male environments. We’ve got great events for grown-up sons and their fathers, from hill walking to sky diving and weekends away. And because not all sons have a dad around, and not all dads have sons, mums and daughters are welcome too.

Boys need to be boys ... At the core of the Lads and Dads Club we are all about supporting fathers in their efforts help their children to grow and develop and have lots of fun along the way. This necessarily means that we are creating a very male oriented environment and we think that this is a good and necessary thing for Fathers, their Sons and often their Daughters too. (and, at least when I fetched it, the bottom of that page had a big ad for "ItsNotForGirls.com: Men's fashion at its finest")

So they've clearly given some thought to gender issues, but seem a bit confused, as no attempt is made to reconcile "Mums and daughters are welcome" with all the hyping of "male environments".

What's going on here? Did somebody complain about the sexism, maybe citing "discrimination", and they felt compelled to quickly wedge in the statements about accepting girls to avoid "trouble"?

You see, I think that organising outdoorsy/adventure activities for kids is great. And encouraging fathers to take a more active role in raising their children is great and particularly needed, because sexist stereotyping tells men they're supposed to be distant and leave the parenting to the mothers. But restricting this parenting to sons, and using it to reinforce the very gender role assumptions that are the root cause of the problem, isn't exactly the best way of dealing with it.

I'm worried that this thing will succeed, and in doing so reinforce the "men work all day, then go to the pub with their mates to avoid going home to their families, and then hide in their sheds all weekend" stereotypes.

And I'm worried that it'll become the target of feminist anger and be destroyed, leaving all the people behind it feeling angry that women came and destroyed their attempts to build a male-only space, leading them to become men's rights activists and try to fight the feminazi conspiracy, rather than trying to help fathers to do cool stuff with their kids (of all genders).

What would be AWESOME is if they realised that the problem they're seeing (fathers aren't getting to do much parenting, at the cost of both themselves and their kids) is a symptom of false traditional ideas of what gender means, and work to solve the problem in ways that break down those gender models, rather than reinforcing them. Now, to market it to fathers who, themselves, will have been brought up with those kinds of gender stereotypes, they'll need to be careful to make it look acceptably "manly" so that the fathers aren't turned away from it; there's a very fine line between "not offending gender stereotypes" and "promoting gender stereotypes", but it can be walked. The organisation's current description of themselves (starting with the unfortunate name...), however, is nowhere near that line. There's no reason to actually use the word "father", rather than "parent"; if the content is all written without touching on gender stereotypes of any kind, it can be "not unfatherly" without being "exclusively fatherly" (and, therefore, "not unmotherly" without being "exclusively motherly" either!).

The United Kingdom is full of "mother and toddler" groups. Even if they're called "parent and toddler" instead, they're invariably female-dominated, which reinforces itself as fathers are left feeling quite out of place at them. It would be great to fix that, and a logical place to start is by making "father and child" groups for various age groups of child, so fathers at least have a comfortable place to share fatherhood with each other. Given a chance to build their confidence in that role, we would be able to break down the barriers and migrate towards everything truly being "parent and toddler"; but as with whenever we apply "positive discrimination" to try and encourage people to do something society historically tells them they shouldn't, this needs to be handled with utmost care and sensitivity, lest it becoming divisive and discriminatory in its own right.

This can happen alongside "adventure activities for kids" groups that encourage mothers and fathers to go and do fun stuff with their sons and daughters - which would start off being dominated by fathers and sons, because of our social expectations; but there's no reason to give into that and assume it's the natural state of affairs.

We're all suffering because of gender stereotyping. There's no reason to force that onto another generation.

Recent Ugarit progress (by )

I had some time to work on Ugarit yesterday, which I made good use of.

I really should have worked on raw byte-stream-level performance issues - I did a large extract recently, and it took a whole week - but, having a restricted time window, I caved in and did something fun instead; I started work on archival mode. As a pre-requisite for this, I added the facility to give tags a "type" so we can distinguish archive tags from snapshot tags - thereby preventing embarrassing accidents that end up with a tag pointing to a mixture of snapshot and archive-import objects...

(Not that I didn't think about the performance issues. I have a plan in mind to rearrange the basic bulk-block-shovelling logic to avoid any allocation whatsoever by using a small number of reusable buffers, which should also avoid the copying required when talking to compression/encryption engines written in C.)

Read more »

A user interface design for a scrolling log viewer with varying levels of importance (by )

Like many people involved with computer programming and systems administration, I spend a lot of time looking at rapidly scrolling logs.

These logs tend to have lines of varying importance in them. This can fall into two kinds, that I see - one is where the lines have a "severity" (ranging from fatal errors down to debugging information). Another is where there's an explicit structure, with headings and subheadings.

Both suffer from a shared problem: important events or top-level headings whoosh past amidst a stream of minutae, and can be missed. A fatal error message can be obscured by thousands of routine notifications.

What I think might help is a tool that can be shoved in a pipe when viewing such a log, that uses some means (regexps, etc) to classify log lines with a numerical "importance" as appropriate, and then relaying them to the output.

However, it will use terminal control sequences to:

  1. Colour the lines according to their importance
  2. Ensure that the most recent entry at each level of importance remains onscreen, unless superceded by a later entry with a higher importance.

The latter deserves some explanation.

To start with, if we just have two levels of importance - ERROR and WARNING, for instance - it means that in a stream of output, as an ERROR scrolls up the screen, when it gets to the top it will "stick" and not scroll off, even while WARNINGs scroll by beneath it.

If a new ERROR appears at the bottom of the screen, it supercedes the old one, which can now disappear - letting the new ERROR scroll up until it hits the top and sticks.

Likewise, if you have three levels - ERROR, WARNING and INFO - then the most recent ERROR and WARNING will be stuck at the top of the screen (the WARNING below the ERROR) while INFOs scroll by. If a new WARNING appears, then the old one will unstick and scroll away until the new WARNING hits the top. If a new ERROR appears, then the old ERROR and WARNING at the top will become unstuck and scroll away until the new ERROR reaches the top.

So the screen is divided into two areas; the stuck things at the top, and the scrolling area at the bottom. Messages always scroll up through the scrolling area as they come, but any message that scrolls off the top will stick in the stuck things area unless there's another message at the same or higher level further down the scrolling area. And the emergence of a message into the bottom of the scrolling area automatically unsticks any message at that, or a less important, level from the stuck area.

That way, you can quickly look at the screen and see a scrolling status display, as well as (for activity logs from servers) the most recent FATAL, ERROR, WARNING, etc. message; or for the kinds of logs generated by long-running batch jobs, which tend to have lots of headings and subheadings, you'll always instantly see the headings/subheadings in effect for the log items you're reading.

This is related somewhat to the idea of having ERRORs and WARNINGs be situations with a beginning and an end (rather than just logged when they arise), such as "being low on disk space"; such a "situation alert" (rather than an event alert, as a single log message is) should linger on-screen somewhere until it's cancelled by the software that raised it emitting a corresponding "situation is over" event. Also related is the idea that event alerts above a certain severity should cause some kind of beeping/flashing to happen, which persists until manually stopped by pushing a button to acknowledge all current alerts. Such facilities can be integrated into the system.

This is relevant for a HYDROGEN console UI and pertinent to my previous thoughts on user interfaces for streams of events and programming interfaces to logging systems.

The joys of compressed air (by )

I've always had a hankering for pneumatic tools. The idea is that compressed air is used as a power source for hand tool, rather than an electric motor. This has various advantages - the tool is lighter (motors are heavy), it's safer (electric motors, when stalled, produce a sharp increase in torque that can make the thing break your wrist if you're not lucky, and the motor can then burn out), and it's cheaper (air drive thingies are cheaper than motors) and simpler. This makes a wider range of tools practical and affordable, from drills and power screwdrivers to stranger things like pneumatic files and caulking guns. And compressed air has some unique uses, too - tyre inflaters, blowers for clearing dust away, and spraying liquids for painting or cleaning.

The downside, however, is that you need a source of compressed air. Thankfully, these have been getting more popular in the hobbyist market, and therefore cheaper, and got a bonus from work, and I've wanted one for years, and so, POW! I now own an air compressor!

It's only a small one. I spent just over a hundred pounds, which is more than I've spent on something purely for fun (it's a tool, but not one I need) in ages. I picked up a set of basic air tools with it - a tyre inflater, a blower, a paint sprayer, and a wash sprayer. Sarah's keen on using it to paint things, so once she's had a go with the spray gun, I'm planning on getting her a more artist-grade air brush with fine controls, and she's getting me a pneumatic ratchet (that can do and undo screws and bolts) as a first "proper" tool.

I'm very tempted by a pneumatic nail gun, because they can drive a nail into wood in a single "phut" compared to having to hammer one into place (and the ever-present risk of it going wonky halfway through), which is a huge labour saver - but I don't actually use nails all that often. Perhaps in the next round of workshop roof fixing...

I thought it was broken when I first unpacked it; the manual had a series of steps to follow when first setting it up, and when switching it on (check the crankcase oil level, set the valves to a safe position, etc) - I followed them all and turned the power on, and the motor started roaring away and the tank pressure rising. But the pressure wouldn't go above two bar, and when I turned the motor off, all the air hissed out again. It was getting late so I got ready to go to bed rather than playing more, but while flicking through the manual's troubleshooting section (it looked like a failure of the non-return valve or the safety valve, and I resolved to check both in the morning), I noticed that the instructions for AFTER you've used the compressor included opening a cylinder drain valve to let out any condensation... I felt underneath and, sure enough, the drain valve was wide open! Checking that's closed should be part of the starting process, but wasn't in the instructions...

In the meantime, I've been having fun with the kids making balls levitate in the air stream from the blower 🙂 We can float a ball-pond ball a good twenty to thirty centimetres above the blower nozzle, at an angle of up to forty-five degrees. and 1.5bar; when I have a face shield on and no children crowding around I might try cranking the output pressure up to the full 6-8bar the machine can produce and see if I can float balls at steeper angles, or heavier objects...

WordPress Themes

Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales
Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales