fub: (Readman)

So, I have been reading again. But I have had to adapt my book selection strategy quite a bit, and I have adapted my tech accordingly.

When I was a wee lad, living in a village with a decent-sized library in the 1980’s, I’d simply roamed the bookcases in the public library (mainly those with fantasy and SF) and selected the books that interested me. My choices were constrained by what was available, but because so much was available, it was not a problem to just keep reading interesting books. Then I moved to Nijmegen, and I got a library membership there. As you’d expect, the library there is much bigger and therefore there was much more choice. Again, I restricted my choices by what was available, but that was not a problem because there was so much. And inter-library loans are possible, but cost money and I didn’t care to pay for that.

And when I started working and I got more disposable income, I bought more and more books (infinite choice when ordering from the internet!) and I stopped going to the library — I’m pretty sure I hadn’t set foot in a public library in 25 years. And somewhere in the past 10 years, I kind of… stopped reading books (with the notable exception of RPG books).


I’ve written about it before, but after the move to the Tiniest Village, I had enough mind space to pick up a book again, and I re-discovered my love of sitting down with a book and just… read. I decided to become a member of the ‘local’ public library. There’s no library in the Tiniest Village, but there is one in the next village, the Slightly Less Tiny Village. But I had to change my approach to selecting books to read.

You see, the closest library is small. The collection is not that large, so simply wandering in and finding something, while possible, is also not viable in the long term. But there is a library system that it is a part of: equally small libraries in villages all around, and slightly larger libraries in slightly larger towns. And you become a member of this system, not the individual library. And request a book to be brought from one library to another within the system is free! So even though the individual library is small, you have access to the whole collection. That’s a good deal, but it does mean that the online catalogue is much more important. And because there is almost no serendipitous selecting a book, I turned to recommendation lists to find interesting books.

There’s blogs with lists of “the best YA fantasy” etc, but I’ve also started using Storygraph (like GoodReads but not owned by a fascist) to get recommendations based on my preferences and the books I have read. I’d still have to look in the catalogue of the library system if that particular book was available — and since this is a Dutch library with books in Dutch, that also involved finding out if there is a translation available. So I had been copy/pasting author names back and forth a lot.


But I noticed that a query in the library catalogue is done through a GET request, with the query as a parameter. And that means that, given the name of an author or book title, it is possible to construct a direct URL to the catalogue for that information. So I have installed the extension Selection Search and configured the catalogue search in there. So if I see a book title or author name, I select the text, click on it and select the configured search; and then a new tab opens with that query. (I tend to use author names because recommendations are mostly for English books but of course the titles are often different in their Dutch translation!)

If the book is available in ‘my’ library system, I favourite them so I have a convenient way to request a reservation when I get to that book. I also add the book to my Storygraph “to read” pile. Sometimes the book is not available in my library system, but there is an ebook that I can loan from the “online library”. In that case, I put the book in Storygraph as well.


I built up quite the list of books to read, and that pleases me.


Crossposted from my blog. Comment here or at the original post.
fub: A blue LED glowing up and fading (Glowing LED)

In the house in Nijmegen, we had a sensor that monitored air quality (CO2 concentration, humidity and temperature) that could open the roof hatch for ventilation if any of those parameters go outside of established limits (and it’s not too cold outside and it’s not raining…) It’s amazing how air quality (especially CO2 concentration) affects your mood and energy levels, so we were very pleased with it. (Especially because we got it for free…)

Of course, since that was part of the home installation in Nijmegen, it was left behind for the new owners to figure out. But I wanted to get a similar monitor set up in the “new” house too. Just monitoring initially, but by hooking it up to Home Assistant, we could add some automations in the future. I decided on this home-made sensor because it’s much cheaper than the alternatives. And while it’s possible to run it stand-alone (it even comes with a built-in webserver which shows a dashboard!), I did configure it to send data to Home Assistant.


So in Home Assistant I have three entities added: one each for CO2 concentration, humidity and temperature. I added those three to the bespoke dashboard I created for use with the mobile app. And I thought it would be fun to add “conditional formatting” like in Excel: if the CO2 concentration is below a certain threshold, the text is green, between two values it’s orange and above a certain limit it’s red — making it easy to gauge air quality a a glance.

Various online posts assured me that this was possible, but I could not find a clear-cut how-to. I had to piece things together from multiple forum posts that each provided a piece of the puzzle. (I do not rule out that I am bad at searching and/or interpreting these posts, though.) So for everyone wanting to know how to do this, I provide this small how-to.


First, you need to install the card-mod extension. I think I used the HACS installation mode, that worked fine. Now you can add extra CSS styling in the YAML definition of any card.

So go ahead and add your card — because I want to display the values I added an Entities Card and added the three Entities I wanted to track. You can do this all in the visual editor.

To add the additional styling, switch to the Code Editor with the link ‘Show Code Editor’ at the lower left of the visual editor. You now see the YAML definition of the card. After each entity node, you can now add a card-mod node to add your custom styling. For example:


type: entities
entities:
  - entity: sensor.moresense_ms05_hetadres_co2
    card_mod:
      style: >
        :host { color: {% set ppm =
        states('sensor.moresense_ms05_hetadres_co2')|int %}
                    {% if ppm < 1000 %}
                    green
                    {% elif ppm < 1200 %}
                    orange
                    {% else %}
                    red
                    {% endif %}
                    ; }
  - entity: sensor.moresense_ms05_hetadres_humidity
    card_mod:
      style: >
        :host { color: {% set rh =
        states('sensor.moresense_ms05_hetadres_humidity')|int %} {% if rh < 25
        %} orange {% elif rh < 75 %} green {% else %} red {% endif %} ; }
  - sensor.moresense_ms05_hetadres_temperature

With the card_mod and style sub-node we define the CSS style to add. I did not know the :host selector, but it points to the container that the style is included in -- so basically the container for the entity display. Everything between {% and %} is code. With the set command I set the current value in a variable, which I can then compare to the limits I have set in a series of if / elif / else statements. (I don't have conditional formatting on temperature, because that's kept constant by the thermostat, it's not really that interesting.)


I have not had reason to work with string values yet, but it will follow a similar pattern.


Crossposted from my blog. Comment here or at the original post.
fub: A slotmachine with three reels, that ends up on 'F U B' (slotmachine)

My father worked for Philips almost his entire working life. Back then (in the 1970’s) Philips was a super-large company (in Dutch terms) with factories and offices around the country, but concentrated around Eindhoven. We lived in a village next to the city, and “everyone” worked at Philips. It was subtle, but the parents of my primary school friends treated each other according to their position in the Philips hierarchy.

My father had various jobs at Philips, always working hard — this was the time when life-time employment was still A Thing. When I was (very) young he traveled all over Europe to help save money on energy costs, saving Philips 250 million guilders (278 million euros in today’s money!). At one time they sent him to factories in Germany, and he lived part-time in an apartment in Germany. And then, early in the 1990’s, Philips started a big reorg, and he was laid off. There is a photo of him arriving at Eindhoven station with the last things from his (now former) apartment, having traveled by train because he also had to leave his lease car behind too. It deeply affected him: he felt discarded, which he basically was. At almost 50, he had to start a whole new career.


After that, he started his own management consultancy company. But he also managed to secure the rights to an experimental piece of PC equipment that never really got marketed by Philips: the Speye006 video digitiser.

An ISA expansion card with DIP chips and three 'tulip' connectorsPhilips did a test production run of a video digitiser as part of a program on how people would work with computers and together — kind of visionary as they predicted video calling and remote meetings. They designed some hardware that would support that kind of thing, and after a test production run, the whole project was canned, leaving Philips with a whole stack of things they were never going to sell. My father got wind of this through a contact (if you work all over the place, you end up with a wide network!) and he acquired the rights to market and sell this thing. Later, he would buy their whole stock.

The Speye006 (kind of a joke name) had three composite video inputs and used the CPU to create images from the video feed in greyscale with 64 different hues. With a 386 CPU, you’d get about 20 fps. And they had also made a control to use the card with Visual Basic.

I started working for his company, building solutions in Visual Basic with the card. I paid my way through university with programming, especially when we got into contact with the Rijksvoorlichtingsdienst (“RVD”, the Netherlands Government Information Office).


The RVD provides spokespersons for the government and the royal family, but also provided generic government advice about things like insulating your house and “your car can go without you for a day”. (More of these here.) These subjects were usually accompanied by a pamphlet which you could get sent to you by writing to “Postbus 51” (P.O. Box 51). (Yes, there was a time when people did not have internet at home and you’d have to do these kinds of things through postal mail.)

The RVD ran the “winkel van postbus 51” (“the store of P.O. Box 51”) in The Hague, a few doors down from the royal palace. Being the spokespeople for the royal family, they also owned and managed an extensive collection of photographs of the royals. As they retained the copyright to these photos, they could control who got to use an official portrait in their publications, an important part of the royals’ public relations. And the fees for the publication rights were what kept the whole operation going.

But while the royals’ portraits were the main business, it was not the only business they had. They had gotten a collection of glass plate negatives from Willem van de Poll who had worked with the royal family for quite some time in the 1950’s. The thing with glass plate negatives is twofold: you can’t really handle them without the acid from your fingerprints ruining the silver emulsion on the plate; and it’s hard to see what a photo is about just by looking at the negative. With the legacy came some money to preserve the collection and to keep it intact — the publication fees would have to cover the rest. But that would only work if the RVD would be able to make the photos available for searching and inspection. So they needed a solution to show a positive of the negative, describe what was on the photo, and put that in a database for queries.


That’s what we built. I re-created the paper ‘description card’ that was used for describing photos with things like ‘geographical descriptions’ if the location was known, but also names of the people photographed (if any) and a free-text description of the photo. The negative was put on a light box with a video camera on a holder above it. That camera fed into the Speye006 and the (Windows 3.11) application showed the semi-live video feed. When the documentalist was satisfied with the position, they’d press a button, the feed would be frozen and the image turned positive (we used an external component for this). And then they’d go through the card (I got many detailed instructions on tab order so they didn’t have to switch from keyboard to mouse and back again!) and described the photo. At the end: press a button, and the image and the description would be saved on a removable harddisk. The Centrale Archief Selectiedienst (“CAS”, “Central Archive Selection Service”) did this work for the RVD.


When the harddisk was full, it was sent to my father’s office. He would process the images and put the data in an MS Access database — once I had found a way to make it possible to query a read-only database, we were able to give every CD-ROM it’s own query interface. The data also went into the large RVD photo archive database for queries, but that was managed by themselves.

My father had (one of) the first CD-ROM writers, a Plextor if I’m not mistaken. Single speed, SCSI interface (at a time when PCs all had IDE) and the discs themselves were expensive — especially because they needed to be ‘archive quality’. He’d defragment the disk, set everything ready, reboot, make sure that nothing else was running, start the process and basically leave the room — the thing didn’t have a buffer memory so if anything happened (bumping into the table on which the burner sat, for instance) the burning process would fail. We treated it as if it was some kind of unknowable religious instrument, and we were the priests that deferentially administered the rites. After 74 minutes we’d come back, and if the tray was open, the burning was a success! These discs were then mailed to the RVD and the harddisks were sent back to the CAS to be re-used for another batch.

I think this really kept him going. He felt busy and needed again, he was making deals and doing things that only he could. He was very proud of the result, and I think that pride was justified. Working with him was not always easy, but we managed well enough. And it was fun to play around with a video digitiser at a time when making a digital photo meant taking a photo on film, getting that processed and printed, and then finding a scanner and scanning it.


I don’t know whose idea it was, but it was decided that there would be an “event” to show to the world what the system was — and to make others aware that this photo collection was available! The event was held at the store of P.O. Box 51, and I recall someone remarking that they didn’t want it on a Friday — on Fridays there’s the council of ministers, and it would mean the event would have to be catered by the same caterer as attended to the cabinet ministers, to save money. Apparently, they were not a fan of that particular caterer, so it was held on a different day so they could select their own preferred caterer! June 9th 1995 was the day. We went there by car, because we had computers to take with us. We had to park behind the store, and I remember seeing a marechaussee (military police) standing guard at a gate at the end of the alley, because that gave access to the palace gardens.


We found these photos, going through my father’s papers:

People in business suits sitting in a conference room. The men all wear tiesThese were different times: people in suits, wearing ties. I do not know who these people were: probably RVD people who were happy to have some time away from their desks?

Me standing in the background, while my father is giving a demo of the systemThat’s me, looking over my father’s shoulder while he is giving a demo of the system. Note the massive CRT monitor. You can also see the lightbox with the camera above it on the left. I can’t believe how much my outfit clashed with that of the others, and that my father let me get away with it (though at the time I didn’t own a suit, so there was no real alternative…)

A high-up person from the RVD pouring champagne over a CD-ROMIn Dutch, you’d say you “baptise” something when you use it for the first time. For this event, they took it literally and poured champagne over a CD-ROM — we had enough failed ones to use for this anyway! This is the director of the RVD that commissioned the project, I think.

My father looking into the camera with a smirk, holding a bottle of champagneMy father got to do the thing too. I love this photo of him: his smirk shows that he was really enjoying himself. All his work culminated into this public celebration of the result. He was wearing one of his ties with Heer Bommel embroidered on it — he was a big fan.

People standing around talking amongst the chairs. One woman looks directly into the camera, holding a (lit) cigaretteThis must have been the reception afterwards. You see my father on the back. Different times: smoking indoors during an event was completely accepted.

Dessert is being served after a fancy dinner. My father is laughing: in front of him is a big plate of sweets, with a CD-ROM in the middle and a sparkler put through the centerAfterwards, there was a fancy dinner, I think my father arranged and paid for it. I remember him ordering a fancy wine and asking the owner to taste it — they agreed that the wine was good, but not as good as you’d expect from the wine and the price. He got a stiff discount on it.

This photo was taken when dessert was served. I think the people from the RVD arranged for a special ‘grand dessert’ to be served with a sparkler and a CD-ROM (again, so many failed discs…)


Here’s the letter the RVD sent to my father along with these photos. (Click on these to get full-size versions!)

A letter on RVD letterhead, addressed to my father. It reads:Geachte heer Ragas,Bijgaand zenden wij u de foto's die van de presentatie en van het etentje erna zijn gemaakt.Verder zenden wij u de brief, zoals deze tezamen met het persbericht is verzonden naar de redacties van:- Adformatie te Amsterdam- Nieuws van Archieven te Den Haag- Bibliotheek en Samenleving te Den Haag- Vereniging Geschiedenis Beeld en Geluid te Amsterdam- Tijdschrift voor Bibliothecarissen OPEN te Amsterdam- Overheids Documentatie OD te Den HaagWij hopen u hiermede voldoende van dienst te zijn geweest.The letter is signed by J.A.F.M. van Mierlo, Hoofd afdeling Publieksvoorlichting.

And here is the letter and the press release they sent to these publications:

A letter to Adformatie on RVD letterhead. It reads:Geachte redactie,Op 9 juni lj. hielden wij de eerste CD-Rom te doop, waarop 5.000 archieffoto's en beschrijvingen staan geregistreerd.Wij hadden uw redactie uitgenodigd, omdat wij in de verwachting verkeerden, dat de gehanteerde methodiek van fotoarchivering nieuws was, tegen de achtergrond van de benodigde investeringen.Bijgaand zenden wij u een tekst en een foto over de presentatie van deze CD-Rom, in de hoop dat u publicatie in uw blad bij nader inzien interessant vindt.

A press release from the RVD. It reads:Persbericht 15 juni 1995Rijksvoorlichtingsdienst doopt eerste CD ROM met 5000 foto'sDe eerste CD ROM met 5000 foto's van het Fotoarchief van de Rijksvoorlichtingsdienst werd 9 juni j.l. ten doop gehouden bij de afdeling Publieksvoorlichting van de RVD in de Winkel van Postbus 51.Deze Foto - CD ROM is de eerste uit een te produceren serie van meer dan 100 stuks.Meer dan een half miljoen foto's worden op deze wijze digitaal opgeslagen, toegankelijk gemaakt en aan het publiek ter beschikking gesteld.Met dit systeem kan de RVD in de toekomst veel sneller reageren op aanvragen.Voorts wordt verwacht dat deze foor het Fotoarchief van de RVD geintroduceerde methode een belangrijke invloed zal hebben op de samenwerking met andere audiovisuele- en foto-archieven in Nederland.Foto-aanvragers: redacteuren, auteurs, historici etc., maar ook particulieren kunnen dan direct de foto's met de beschrijving op het computerscherm zien, zonder dat men in het magazijn het authentieke, kostbare fotomateriaal behoeft te hanteren.Een snelle zoekmethode op elke combinatie tussen trefwoord, naam, plaatsnaam, jaartal of fotograaf, maakt het eenvoudig om direct de gezochte foto te vinden en op een printer af te drukken.Voor de toekomst wordt overwogen om ook via aanraakschermen het publiek in staat te stellen rond te kijken in de RVD collectie. Op deze wijze hoopt men de fotocollectie ook voor het grote publiek te ontsluiten.Het zal volgens de heer Van Mierlo, hoofd van de afdeling, niet meer lang duren voordat men met dit systeem dat een unieke collectie historisch fotomateriaal ontsluit de digitale snelweg op kan gaan.Het digitaliseren en beschrijven van een half miljoen foto's wordt uitgevoerd door de Centrale Archief Selectiedienst (CAS) te Winschoten, die daarnaast ook zorgdraagt voor een volledige herinrichting van het opslagmagazijn van de RVD in Den Haag.De firma Cauda BV uit Eindhoven ontwikkelde de software voor het digitaliseren en opvragen. Zij zijn tevens de producent van de CD ROM's.Tijdens de bijeenkomst werd gesproken van "een zeer geslaagd voorbeeld van Public-Private partnership".


I think this might have been my father’s “finest hour”. Discarded by the employer he worked for almost all his life, but able to make a success of something all by himself, with the result (and him!) being celebrated.


Crossposted from my blog. Comment here or at the original post.
fub: A photo of an ADM3A terminal (ADM3A)

As you know, this blog is hosted on my own domain and cross-posted to Dreamwidth. And, this being WordPress, there is also an RSS feed that you can use to keep up with the blog.

But these are not the only game in town these days, and the surge in popularity of Mastodon and other federated social media (collectively called ‘the fediverse’) is another way to distribute your content. The underlying protocol is ActivityPub, and there is an official plugin for WordPress to connect your blog to the fediverse. That means that users of Mastodon or other ActivityPub-enabled software can subscribe to your blog and get the articles (or links) in their feed.

So of course I installed it. The main part is the ‘webfinger’ script that connects someone searching the fediverse for a specific account to the actual account. Searches are conducted on the root of the webserver, but since I have my blog in a subfolder, I had to wriggle some things to forward a search to the plugin. Luckily I already had something in place for that — a little trick that means that if you search for an account with my email address, you end up on my actual Mastodon account. I extended this script to forward any queries about the blog to the plugin.

The name used for the account is [username]@[domain]. I didn’t like the username it used by default, so I created a new user so that the username to search for is ‘[profile] fublog@ragas.nl’ and you should end up on the blog.

This is the first post with that configuration all set, so if it works correctly, this will end up in my Mastodon feed too.


Crossposted from my blog. Comment here or at the original post.
fub: (Default)
This post was inserted through the post-by-email feature of Dreamwidth. Not through code (yet) but if it appears then I have set up things correctly on the Dreamwidth side.

Profile

fub: (Default)
fub

March 2025

S M T W T F S
       1
2345678
91011 12131415
16171819202122
23242526272829
3031     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 24th, 2025 09:40 am
Powered by Dreamwidth Studios