We are thrilled to announce that Keycloak will be at KubeCon Salt Lake City, Utah in Nov 2024. There are several Keycloak specific sessions lined up during this conference, and we will be hosting a Kiosk at the Project Pavilion at KubeCon.
What is KubeCon?
Keycloak’s presence in the previous KubeCons was a huge success,
and we continue to have a lot of fun interacting with Keycloak enthusiasts, users, newcomers alike.
KubeCon is a fast-growing Cloud Native tech conference expected to have up to 8,000 developers,
architects, and technical leaders onsite as well as thousands of participants virtually.
KubeCon Salt Lake City will be held from Nov. 12th, 2024 through Nov. 15th, 2024, with many of the co-located events happening on Tuesday, Nov 12th, 2024.
Keycloak community Meet & Greet at the Project Pavilion
Yoshiyuki Tabata from Hitachi, Ryan Emerson, Martin Bartos, Kamesh Akella from Red Hat and other contributors will be at the Keycloak kiosk at the Project Pavilion. This is a great chance to meet people who use Keycloak, contribute to Keycloak, take our survey about new Keycloak features, and get some cool swag!
Keycloak Kiosk opening hours:
Wednesday, November 13: 3:15pm-8:00pm
Thursday, November 14: 1:45pm–5:00pm
Friday, November 15: 12:30pm-2:30pm
OpenShift Commons Gathering
The OpenShift Commons Gathering happens on Tuesday (Nov. 12th, 2024) and builds connections and collaboration across OpenShift communities, projects and stakeholders. Some maintainers from the Keycloak development team will be here during the afternoon. This gives a chance for more community Keycloak maintainers, contributors, and users to meet and share their ideas or just hang out. Access to the OpenShift Commons event is free and does not require a paid KubeCon ticket, still you’ll need to register on their website in advance.
Keycloak specific events at KubeCon
Below is the Keycloak specific event that the attendees both in-person and virtually can plan to attend and learn more about a Highly Available Keycloak deployed in a Multi-Site environment.
With four major releases of Keycloak every year it can be a daunting task to keep deployments up to date. Especially,
since the number of breaking changes have drastically increased the last couple years.
Combine this with the importance of patching deployments quickly for vulnerabilities, this can leave many deployments
open to known vulnerabilities as the time and effort required to update to the latest release is too costly.
Additionally, currently Keycloak client libraries are released together with the server, resulting in new major versions
of a client library, where in fact there can be no changes at all, or perhaps only a bug fix or two.
For these reasons, after Keycloak 26.0 is released there will be some changes to how Keycloak is being released:
Keycloak server will have 4 minor releases every year, and a major release every 2-3 years
Keycloak client libraries will be released separately. The latest client library release will support all currently supported Keycloak server releases
We will continue to bring new features and enhancements to Keycloak in each release, and we are committed to doing so
in a backwards compatible way, making it seamless and easy to upgrade.
When a minor comes with breaking changes, such changes will be opt-in. This will be driven through versioning
where the currently default version for a Feature or an API can not change in a minor release, and there will be a new
version that can be explicitly enabled. The current version of a Feature or API can be deprecated in a minor, but will
not be removed until the next major version. This will allow you to gradually roll-out new Feature or API versions separately
from upgrading. You can choose to get ready for the next major release early, or wait and do it in one
go.
Backwards compatibility guarantees will only be given to Features and APIs that are fully supported. Preview features or preview APIs,
as well as non-public APIs may change at any time.
It has been some weeks since One Touch Switching was fully live.
TOTSCO say over 100,000 switch orders now, so it is making good progress, well, in principle.
In practice a lot is working, and in terms of volume, with the key players, as well as the likes of A&A, all working reasonably well now, switches are happening, both ways. We are seeing things working both ways and correct billing as well, which is good.
But there are still some challenges.
Whilst I cannot go in to details, even the big players are still facing some issues, mostly small issues but some bigger, and some with workarounds for now, and for which they are rolling out as updates. Daily calls continue with industry (yes, some I have taken from the pub).
A lot of smaller players are catching up, but many face the challenges of the huge holes in the specifications. These are still frozen and so grey areas, errors, and contradictions abound. Only once they are live with other ISPs are the issues apparent. In at least one case we have to ask how a CP managed to be live as they had some fundamental errors (like SOR not being a UUID) that should not have passed even the very poor testing TOTSCO claim to do. Even larger CPs are not entirely agreed on some field specifications because of poor wording in one of the better parts of the spec, but are working on it. The daily calls help, but only happen with the early/bigger CPs.
There is now a formal process for inter-CP communications to resolve such issues, but not everyone is on it yet. There is a fallback process as well. So things are happening, and some of these issues with smaller CPs are being fixed as well.
But even now, even this weekend, I have seen incorrect messages and errors. I have reported, of course, and it may be these end up as defects on the daily calls, we will see.
I worry what will happen when the daily calls stop - reporting an issue to a CP may mean they ignore it rather than spend resource investigating, fixing, and deploying. At present CPs have that resource assigned, but they will not forever.
What next? Well we keep at it.
The next big step I can only hope for is an unfrozen spec and a lot of clarifications and updates. It will be interesting to see how that process happens, and how we can be involved. I have a lot to say on clarifying the specifications and I hope I can be involved in making it happen. But every change will need a lot of agreement, and even some changes by all CPs in some cases. For now, there are some silly compromises like all strings max 256 characters (which resulted from a global update to a Swagger definition system, rather than any informed debate or formal specification change, and is annoying as tinytext in mariadb is 255 characters not 256). Even so, some agreement on even the vague magnitude of things like correlationID is a good start. I suspect, in practice, that one may get defined as smaller, like 64 characters. In hindsight it should have been a UUID, unique per message, but too late to do that now. The problem is the smaller/newer CPs are not in on that discussion, so don't know. Big CPs guessed at 36 characters (UUID size), 56 characters, 64 characters, and so on, as there simply was nothing in the spec, but most had to set something in their code. We changed our handling within the first few days as we understood how broken the spec was, and now handle any size (well, megabytes) but other CPs don't, and we have limits on a load of other strings anyway.
For now, I have every message we receive, and every message we send, run through my NOTSCO checker and reported to me. I feel it is only fair to test us as well. Over time it will only be problem messages that I need to monitor. It has actually highlighted some issues in what we were sending (where customers manually type an address, mainly - I have added more checks now). But monitoring real life message has also meant updates to our checking in the live system, and updates to my NOTSCO tools.
My latest changes include actually using the longer agreed size of correlationID to ensure we tag the message type as a (small) suffix on a UUID, so that we can quickly (pre-database connect/check) validate messages we get back are sensible and reject them. Why? Well one small CP is sending nonsensical replies to replies, or reusing correlationIDs from previous messages with different messages, both of which we can now pick up in milliseconds, and cleanly reject. It looks like they are working on it, but no actual communications back to us, which is a shame - we're happy to help and advise if only they would talk to us.
Overall - OTS is happening and mostly working, so do try it when you want to switch telco.
Ok, the scenery here is amazing, but the real story is data breach victim notification. Charlotte and I wanted to do this one together today and chat about some of the things we'd been hearing from government and law enforcement on our travels, and the victim notification angle
Starting with Keycloak 26, the Organizations feature is fully supported.
Client libraries updates
Dedicated release cycle for the client libraries
From this release, some of the Keycloak client libraries will have release cycle independent of the Keycloak server release cycle. The 26.0.0 release may be the last one
when the client libraries are released together with the Keycloak server. But from now on, the client libraries may be released at a different time than the Keycloak server.
It is possible that in the future, some more libraries will be included.
The client libraries are supported with Java 8, so it is possible to use them with the client applications deployed on the older application servers.
Compatibility of the client libraries with the server
Beginning with this release, we are testing and supporting client libraries with the same server version and a few previous major server versions.
For details about supported versions of client libraries with server versions, see the Upgrading Guide.
User sessions persisted by default
Keycloak 25 introduced the feature persistent-user-sessions. With this feature enabled all user sessions are persisted in the database as opposed to the previous behavior where only offline sessions were persisted.
In Keycloak 26, this feature is enabled by default. This means that all user sessions are persisted in the database by default.
It is possible to revert this behavior to the previous state by disabling the feature. Follow the Volatile user sessions section in Configuring distributed caches guide for more details.
There is now a new version (v2) of the keycloak login theme, which provides an improved look and feel, including support for switching automatically to a dark theme based on user preferences.
The previous version (v1) is now deprecated, and will be removed in a future release.
For all new realms, keycloak.v2 will be the default login theme. Also, any existing realm that never explicitly set a login theme will be switched to keycloak.v2.
Highly available multi-site deployments
Keycloak 26 introduces significant improvements to the recommended HA multi-site architecture, most notably:
Keycloak deployments are now able to handle user requests simultaneously in both sites.
Active monitoring of the connectivity between the sites is now required to update the replication between the sites in case of a failure.
The loadbalancer blueprint has been updated to use the AWS Global Accelerator as this avoids prolonged fail-over times caused by DNS caching by clients.
Persistent user sessions are now a requirement of the architecture. Consequently, user sessions will be kept
on Keycloak or Infinispan upgrades.
In the past, regaining access to a Keycloak instance when all admin users were locked out was a challenging and complex process. Recognizing these challenges and aiming to significantly enhance the user experience, Keycloak now offers several straightforward methods to bootstrap a temporary admin account and recover lost admin access.
It is now possible to run the start or start-dev commands with specific options to create a temporary admin account. Additionally, a new dedicated command has been introduced, which allows users to regain admin access without hassle.
The underlying Quarkus support for OpenTelemetry Tracing has been exposed to Keycloak and allows obtaining application traces for better observability.
It helps to find performance bottlenecks, determine the cause of application failures, trace a request through the distributed system, and much more.
The support is in preview mode, and we would be happy to obtain any feedback.
The OpenID for Verifiable Credential Issuance (OID4VCI) is still an experimental feature in Keycloak, but it was greatly improved in this release. You will find significant development and discussions
in the Keycloak OAuth SIG. Anyone from the Keycloak community is welcome to join.
The DPoP (OAuth 2.0 Demonstrating Proof-of-Possession) preview feature has improvements. The DPoP is now supported for all grant types.
With previous releases, this feature was supported only for the authorization_code grant type. Support also exists for the DPoP token type on the UserInfo endpoint.
GELF support has been deprecated for a while now, and with this release it has been finally removed from Keycloak.
Other log handlers are available and fully supported to be used as a replacement of GELF, for example Syslog. For details
see the Logging guide.
Lightweight access tokens for Admin REST API
Lightweight access tokens can now be used on the admin REST API. The security-admin-console and admin-cli clients are now using lightweight access tokens by default, so “Always Use Lightweight Access Token” and “Full Scope Allowed” are now enabled on these two clients. However, the behavior in the admin console should effectively remain the same. Be cautious if you have made changes to these two clients and if you are using them for other purposes.
Keycloak JavaScript adapter now standalone
Keycloak JavaScript adapter is now a standalone library and is therefore no longer served statically from the Keycloak server. The goal is to de-couple the library from the Keycloak server, so that it can be refactored independently, simplifying the code and making it easier to maintain in the future. Additionally, the library is now free of third-party dependencies, which makes it more lightweight and easier to use in different environments.
For a complete breakdown of the changes consult the Upgrading Guide.
Hostname v1 feature removed
The deprecated hostname v1 feature was removed. This feature was deprecated in Keycloak 25 and replaced by hostname v2. If you are still using this feature, you must migrate to hostname v2. For more details, see the Configuring the hostname (v2) and the initial migration guide.
Automatic redirect from root to relative path
User is automatically redirected to the path where Keycloak is hosted when the http-relative-path property is specified.
It means when the relative path is set to /auth, and the user access localhost:8080/, the page is redirected to localhost:8080/auth.
The same applies to the management interface when the http-management-relative-path or http-relative-path property is specified.
It improves user experience as users no longer need to set the relative path to the URL explicitly.
Persisting revoked access tokens across restarts
In this release, revoked access tokens are written to the database and reloaded when the cluster is restarted by default when using the embedded caches.
The condition based on the client-attribute was added into Client Policies. You can use condition to specify for the clients
with the specified client attribute having a specified value. It is possible to use either an AND or OR condition when evaluating this condition as mentioned in the documentation
for client policies.
It is possible to specify log levels for all available log handlers, such as console, file, or syslog.
The more fine-grained approach provides the ability to control logging over the whole application and be tailored to your needs.
The deprecated proxy option was removed. This option was deprecated in Keycloak 24 and replaced by the proxy-headers option in combination with hostname options as needed. For more details, see using a reverse proxy and the initial migration guide.
Option proxy-trusted-addresses added
The proxy-trusted-addresses can be used when the proxy-headers option is set to specify a allowlist of trusted proxy addresses. If the proxy address for a given request is not trusted, then the respective proxy header values will not be used.
Option proxy-protocol-enabled added
The proxy-protocol-enabled option controls whether the server should use the HA PROXY protocol when serving requests from behind a proxy. When set to true, the remote address returned will be the one from the actual connecting client.
Option to reload trust and key material added
The https-certificates-reload-period option can be set to define the reloading period of key store, trust store, and certificate files referenced by https-* options. Use -1 to disable reloading. Defaults to 1h (one hour).
Options to configure cache max-count added
The --cache-embedded-${CACHE_NAME}-max-count= can be set to define an upper bound on the number of cache entries in the specified cache.
The https-trust-store-* options have been undeprecated
Based on the community feedback, we decided to undeprecate https-trust-store-* options to allow better granularity in trusted certificates.
The java-keystore key provider supports more algorithms and vault secrets
The java-keystore key provider, which allows loading a realm key from an external java keystore file, has been modified to manage all Keycloak algorithms. Besides, the keystore and key secrets, needed to retrieve the actual key from the store, can be configured using the vault. Therefore a Keycloak realm can externalize any key to the encrypted file without sensitive data stored in the database.
Adding support for ECDH-ES encryption key management algorithms
Now Keycloak allows configuring ECDH-ES, ECDH-ES+A128KW, ECDH-ES+A192KW or ECDH-ES+A256KW as the encryption key management algorithm for clients. The Key Agreement with Elliptic Curve Diffie-Hellman Ephemeral Static (ECDH-ES) specification introduces three new header parameters for the JWT: epk, apu and apv. Currently Keycloak implementation only manages the compulsory epk while the other two (which are optional) are never added to the header. For more information about those algorithms please refer to the JSON Web Algorithms (JWA).
Also, a new key provider, ecdh-generated, is available to generate realm keys and support for ECDH algorithms is added into the Java KeyStore provider.
Support for multiple instances of a social broker in a realm
It is now possible to have multiple instances of the same social broker in a realm.
Most of the time a realm does not need multiple instances of the same social broker. But due to the introduction
of the organization feature, it should be possible to link different instances of the same social broker
to different organizations.
When creating a social broker, you should now provide an Alias and optionally a Display name just like any other
broker.
New generalized event types for credentials
There are now generalized events for updating (UPDATE_CREDENTIAL) and removing (REMOVE_CREDENTIAL) a credential. The credential type is described in the credential_type attribute of the events. The new event types are supported by the Email Event Listener.
The following event types are now deprecated and will be removed in a future version: UPDATE_PASSWORD, UPDATE_PASSWORD_ERROR, UPDATE_TOTP, UPDATE_TOTP_ERROR, REMOVE_TOTP, REMOVE_TOTP_ERROR
Customizable Footer in login Themes
The template.ftl file in the base/login and the keycloak.v2/login theme now allows to customize the footer
of the login box. This can be used to show common links or include custom scripts at the end of the page.
The new footer.ftl template provides a content macro that is rendered at the bottom of the "login box".
Keycloak CR supports standard scheduling options
The Keycloak CR now exposes first class properties for controlling the scheduling of your Keycloak Pods.
Infinispan marshalling changes to Infinispan Protostream
Marshalling is the process of converting Java objects into bytes to send them across the network between Keycloak servers.
With Keycloak 26, we changed the marshalling format from JBoss Marshalling to Infinispan Protostream.
Warning
JBoss Marshalling and Infinispan Protostream are not compatible with each other and incorrect usage may lead to data loss.
Consequently, all caches are cleared when upgrading to this version.
Infinispan Protostream is based on Protocol Buffers (proto 3), which has the advantage of backwards/forwards compatibility.
Removal of OSGi metadata
Since all of the Java adapters that used OSGi metadata have been removed we have stopped generating OSGi metadata for our jars.
Group-related events no longer fired when removing a realm
With the goal of improving the scalability of groups, they are now removed directly from the database when removing a realm.
As a consequence, group-related events like the GroupRemovedEvent are no longer fired when removing a realm.
Identity Providers no longer available from the realm representation
As part of the improvements around the scalability of realms and organizations when they have many identity providers, the realm representation
no longer holds the list of identity providers. However, they are still available from the realm representation
when exporting a realm.
Securing Applications documentation converted into the guide format
The Securing Applications and Services documentation was converted into the new format similar to the Server Installation and Configuration documentation converted in the previous releases.
The documentation is now available under Keycloak Guides.
Removal of legacy cookies
Keycloak no longer sends _LEGACY cookies, which where introduced as a work-around to older browsers not supporting
the SameSite flag on cookies.
The _LEGACY cookies also served another purpose, which was to allow login from an insecure context. Although, this is
not recommended at all in production deployments of Keycloak, it is fairly frequent to access Keycloak over http outside
of localhost. As an alternative to the _LEGACY cookies Keycloak now doesn’t set the secure flag and sets SameSite=Lax
instead of SameSite=None when it detects an insecure context is used.
Property origin in the UserRepresentation is deprecated
The origin property in the UserRepresentation is deprecated and planned to be removed in future releases.
Instead, prefer using the federationLink property to obtain the provider to which a user is linked with.
Upgrading
Before upgrading refer to the migration guide for a complete list of changes.
All resolved issues
Deprecated features
#600 De-couple quickstarts from statically served Keycloak JS quickstarts
New features
#20342 Duplicate groups in the admin console of Keycloak admin/ui
#26178 Support dark mode, at least for the login pages login/ui
#29324 Bootstrapping an admin user using a dedicated command dist/quarkus
#29755 Support AES and HMAC Key-Imports for the JavaKeystoreKeyProvider
#30002 Bootstrapping an admin service account using a dedicated command dist/quarkus
#30009 Warnings for temporary admin user and service account core
#30011 Document admin bootstrapping and recovery docs
#30682 Group assignment: Display disabled information from user admin/ui
#30795 Initiate create events if ClientScopes are created
#31421 Add Events for Organization Creation and Member Assignment organizations
#31642 Include organization attributes and information in ID and access tokens organizations
#31643 Implement invitation-only self-registration for realm users organizations
#32030 Retry remote cache operations with back off
#32135 Option to specify trusted proxies dist/quarkus
#32553 Expose Password Policies in FreeMarker Context for Login Themes
Enhancements
#583 Update dependency on keycloak-client in main branch to 999.0.0-SNAPSHOT quickstarts
#10114 Specific events for webauthn register authentication/webauthn
#30346 Enhance masking around config-keystore dist/quarkus
#30419 Credential Issuer Metadata: Support Optional ```claims``` Object in ```credential_configurations_supported``` in ```openid-credential-issuer``` endpoint oid4vc
#26435 NullPointerException when using client scope policy for token-exchange token-exchange
#26794 MULTIVALUED_LIST_TYPE not working for client mappers admin/ui
#27506 Readable realm name no longer visible in logs, but realm id is used instead core
#27536 "User Profile" attributes not available for Users Attribute search and Attribute selection, if no view or manage realm realm-management role added account/ui
#27677 Translations missing for user events in admin ui translations
#27941 Entry 999.0.0 in MIGRATION_MODEL prevents future migrations of the database core
#28020 Firefox Webauthn Registration "SecurityError: The operation is insecure." authentication/webauthn
#28418 SSO Session Idle: session is still active after session idle time expired oidc
#29486 Default theme logs font related console errors on firefox login/ui
#29542 The EmailEventListenerProvider throws an exception on brute force lockout events authentication
#29566 User Profile attributes/groups in Admin UI are not translated using Localization for non-master realm when signed in the master realm account/ui
#29615 Get effective roles for user needs more privileges than expected admin/api
#29761 bug: disabling all default features no longer works core
#29784 Exception while trying to run a LDAP sync with a group importer and a batch size less then the actual number of groups ldap
#29866 Missing Cache-Control header when "response_type" parameter is missing in login request authentication
#29878 Updating a client protocol mappers through Admi CLI (kcadm) resets the client service account roles admin/cli
#30614 token exchange: exchange-sequence fails with Client session for client 'client-exchanger' not present in user session token-exchange
#30641 Flaky test: org.keycloak.testsuite.broker.KcSamlBrokerTest#testPostBrokerLoginFlowWithOTP_bruteForceEnabled ci
#30652 Default server port is used instead of the management interface port in the guide about running Keycloak in a container
#30662 User policy -> select user shows user id instead of user name. admin/ui
#30663 A theme called `custom` is displayed as `Custom Attribute...` in the admin console admin/ui
#30677 LDAP connection pool params(maxsize, initsize, prefsize) picked up from backend ComponentModel and are not visible in Keycloak admin console ldap
#30678 Require SSL mode "External requests" does not work with IPv6 local addresses dist/quarkus
#30683 Infinite loader on the admin console for non-admin users admin/ui
#30703 Recovery codes missing from account console docs
#30705 Full details of errors not shown in admin and account console account/ui
#30706 Internal error occurs for the removed flow which override by the client authentication
#30712 Remove of Multivalued Attribute due to - Adding translations when a new attribute is created admin/ui
#32830 Login v2 theme: Auto-focus on input fields no longer working and autocomplete changed login/ui
#32833 TOTP QR codes broken when realm display name contains colon character core
#32834 Admin UI does not display admin events expiration admin/ui
#32860 Database index creation isn’t skipped on large data sets in Keycloak 24 storage
#32870 Increased DB activity due to changes in LDAPStorageManager.searchForUserByUserAttributeStream ldap
#32880 Flaky test: org.keycloak.testsuite.forms.RegisterTest#registerExistingEmailAllowed ci
#32881 Flaky test: org.keycloak.testsuite.forms.RegisterTest#registerUserNotContainsUsernamePasswordPolicy ci
#32891 Exceptions on X509 authentication are logged without a stack trace core
#32892 [Store Model Test] Failed test org.keycloak.testsuite.model.session.UserSessionPersisterProviderTest#testOnRealmRemoved ci
#32896 Inconsistency of the access token iat after setting the time offset in the test suite authentication
#32915 Administrator username changed in master realm after configuring email address for SMTP connection test for another realm with "Email as username" enabled admin/ui
#32916 Device activity client name translations account/ui
#32923 Flaky test: org.keycloak.testsuite.webauthn.WebAuthnTransportsTest#usbTransport ci
#32930 Flaky test: org.keycloak.testsuite.forms.RegisterWithUserProfileTest#testAttributeInputTypes ci
#32939 Flaky test: org.keycloak.testsuite.webauthn.WebAuthnIdlessTest#testWebAuthnIDLessWithNonResidentCredentialLogin ci
#32942 Flaky test: org.keycloak.testsuite.broker.KcOidcBrokerTest#testPostBrokerLoginFlowWithOTP_bruteForceEnabled ci
#32984 Application names are not taking realm overrides into account account/ui
#33011 Admin bootstrap client should not have standard flow enabled dist/quarkus
#33023 Documentation CI is failing on broken links docs
#33037 Flaky test: org.keycloak.testsuite.webauthn.registration.UserVerificationRegisterTest#discouraged ci
#33044 Next page not working for "Localization --> Realm overrides" admin/ui
#33054 Identity-first login screen has broken IDP icons admin/ui
#33058 Clusterless feature is not tested in Model tests testsuite
#33060 Tests are showing exception while trying to import admin user after organizations were enabled by default testsuite
#33064 Action expired error occurs when accessing regular registration page with Organizations enabled organizations
#33095 The "Valid redirect URIs" field is not displayed when the "Standard flow" is unchecked admin/ui
#33109 Infinite loop when accessing account management console account/ui
#33115 CVE-2024-8883 Vulnerable Redirect URI Validation Results in Open Redirect
#33116 CVE-2024-8698 Improper Verification of SAML Responses Leading to Privilege Escalation in Keycloak
#33156 CVE-2024-7254 - Stack-based Buffer Overflow in com.google.protobuf:protobuf-java dist/quarkus
#33172 Deprecation of https-trust-store-* weakens X509 browser authentication authentication
#33207 [Organizations] Preserve org id in exported realms core
#33224 [Keycloak CI] - Quarkus IT - StartCommandDistTest.testStartUsingAutoBuild ci
#33231 [Keycloak CI] - User Federation Tests - LDAPSamlIdPInitiatedVaryingLetterCaseTest ci
#33246 Unable to start Keycloak when metrics are enabled dist/quarkus
#33296 Migrating to a FIPS environment disallows all users from logging in authentication
#33300 Organization UI is overriding the alias with the org name when user navigates to another tab admin/ui
#33307 XA Transaction recovery support is enabled even thoug transaction-xa-enabled is false dist/quarkus
#33330 "somethingWentWrong" when opening Keycloak URL in unsecure context login/ui
#33331 Performance drop in cpuUsageForLoginsTest since 19.09.2024
#33336 Changing locale on passwordless or custom login flow does not work login/ui
#33342 Duplicate entry "duplicate" in Admin UI message properties admin/ui
#33347 Hostname v2 should enforce hostname is a full url if hostname-admin is used dist/quarkus
#33351 Wrong release notes for Login v1 theme deprecation login/ui
#33353 Performance regression when Organisations feature is enabled
#33355 ID token from refresh_token flow does not contain nonce even when using Nonce backwards compatible mapper oidc
#33362 Flaky test: org.keycloak.testsuite.webauthn.registration.UserVerificationRegisterTest#preferredVerificationWrong ci
#33517 Issue when running tests from IDE on embedded undertow ( org.jboss.threads.EnhancedQueueExecutor$Builder.setKeepAliveTime(java.time.Duration) ) testsuite
We will be updating our Managed A-Z Termination rates and codes on October 7th 2024. As usual, these changes are colour coded in our full rate files available through the portal as below. Where your account has custom rates, these…
Hey, it’s Parns from the Colouring-in Department! After a whirlwind month across two continents, I am back in Simwood HQ, fully recharged and buzzing with stories to share. First, let me give you the lowdown on what’s been happening. I…
You’ll have read about the brilliant work of Charles (our CTO) and his team around porting, and separately about our BYoC capability on both Carrier Services and Hosted. Have you ever considered how together these could bring you massive strategic…
Having recently updated to iOS 18, there are a couple of features that I've immediately enabled now that they're available! I'm going to share with you what those features are, and, a security tip that has been available prior to the release of iOS
I have a few more thoughts on the whole topic of colocation. First of
all, Joel wrote in with a couple of tips beyond the basic "screwdriver
and flashlight" that I mentioned. He says you should bring hearing
protection, a step-stool or small ladder, and a jacket if you get cold.
I like this thinking, and figured I'd expand on this for the benefit
of those wondering what this all means.
First up, these places are LOUD. Everything you can imagine has fans on
it. Obviously there are massive air handlers in the suites, but the
(proper server class) computers and switches and everything else are
also rocking a ton of fans. Some of them throttle back when the CPU
load isn't too high, but a fair number of these things actually have
rather high CPU load and so they never throttle back.
I mean, it's 2024, and people are writing CPU-bound computational stuff
in languages that are interpreted, single-threaded, and slow as shit.
OF COURSE they're running their CPUs as hard as they possibly can. But
I digress.
So yes, it's loud as hell, and you could benefit from some kind of
active protection. Just don't do what I did one time by cranking up the
music in regular earbuds to cover the noise. Yeah, you might be able to
hear your tunes, but you won't be hearing much else afterward. Stupid
move, I know... now.
The step-stool or small ladder is not always a given. My particular
cabinet isn't super tall and I'm able to reach all of it, but this
might not apply for everyone else. Alternatively, you might need
to use it to support something from below while doing an install,
especially if you're flying solo.
The jacket is another one of those things that you might not appreciate
until you've been on the inside. It's not like the 90s when everyone
just had a giant room and did their very best to cool the entire thing
down as far as possible. These days, there are "hot aisles" and "cold
aisles": two rows of machines face each other across a walkway, and cold
air is blown into there. Then the air goes through the machines thanks
to all of those fans and ends up on the back side where it joins with
hot air from yet another row that's also backed up to it. Finally,
it's drawn into a chiller to start the process over again.
If it's a solid concrete floor type of setup, then the air will have to
come from above, but if you're on a raised floor, it'll probably just
emerge from beneath. If you're in that kind of setup, make note of
what you wear before making a trip lest you turn into Marilyn Monroe.
(Yeah, I just gave some advice that only applies to a subset of the
people who will ever read this and need it. Yep. That happened.)
The nature of things is that you will inevitably need to access your
rack from both sides to reach certain parts of the equipment, so it will
be really hot sometimes, and it'll be really cold other times. This is
why I will amend that advice to "bring a jacket that zips".
Now, if you're in the Bay Area like me, you have hopefully long ago
internalized the wisdom that "you will never be far from a light
sweater", and so you *already* have one of those that goes everywhere
with you. If so, you're set. Be ready to adjust it as appropriate.
Other stuff? Once you're past the "drop a Raspberry Pi in there"
stage, you should not just jump on ebay and buy the first rack mounted
server that looks like it'll work because you hate hardware and want it
over with. This is because not all racks and not all servers are
created equal, and you might find out the hard way that it won't work.
I came super close to screwing up *hard* due to this.
I would recommend first going in with a tape measure to figure out
exactly what you're working with. What are the posts like in the rack?
Are they fixed in place or can they be adjusted? Are they round holes
or square holes? How long can a server be while still fitting into the
rack? Will the door(s) still be able to close and latch?
Bear in mind that it's not just the length of the machine, but you also
have to include the loops of cables which emerge from it: power and
Ethernet at the very least. You really don't want to force a regular
power or network cable into a "hard 90" type of situation to make it
all fit into the space. With a little research, you can get power
cords which have their own built-in 90 degree turn on the end where it
plugs into the machine that will let you claw back a bit of space, and
likewise for the network stuff.
Or, you know, you can just buy a shorter machine and use normal cables.
Measure twice, buy once.
Another complication: if your provider gives you power by way of a "zero
U" PDU (basically a big power strip that stands up vertically), that's
both a plus and a minus. It's a plus in that you're not burning any
rack units by definition: it's "zero U". But, it can be a problem
because it still takes up space, and if you have anything really long
in there, it'll probably bump into it. This constrains you to only
using spots in the rack which are not blocked by the sneaky little PDU.
It's just another 3-D Tetris problem for you to solve.
I was successfully nerd-sniped a few days ago and figured I'd share my
proposed solution with everyone just in case they could benefit from it.
I've added a few of my own constraints based on expectations for how
things could go wrong. So, if this seems familiar, maybe it is, but
I've made it a little more complicated.
The situation is basically this: there's a large space with a bunch of
dumb Linux boxes which are attached to displays of some sort. Different
things are displayed depending on where it is in the space. This means
the Linux boxes need some sense of identity to be able to tell the
server "I need this particular set of stuff". They're "hands off" -
nobody wants to log in to them to manage them.
So now let me present some of the issues:
Problem: relying on IP assignments is no good, since the DHCP
mechanisms for that network can't be trusted. Things are sufficiently
flaky to where you can't rely on it, and part of this is from the next
item.
Problem: the hardware is wonky enough to where it gets replaced
sometimes, so the MAC addresses also end up changing. This means any
other on-board identifier (board id, cpuid, whatever) would also change.
It would be nice if someone didn't have to keep updating mappings on the
server every time the hardware got shuffled around.
Problem: it's a PITA to stamp out unique images for these things. The
goal is to be able to stamp out a single image that's identical for all
of them, and then have them all boot from that and figure out their
identities some other way. (The same goes for netbooting, if you're
thinking of that already.)
Problem: any other "ID marker" type solution that involves twiddling the
set of installed hardware somehow means that you have to be sure each
one ends up in a specific spot. If you have relatively unskilled people
running around installing these things, this might not be what you want.
It's easier to just say "make sure there's one plugged in at every
space on this list" without worrying about matching specific units to
specific spots, in other words.
Wouldn't it be cool if you could just grab a box, plug it in a given
spot, and it would somehow start displaying the right set of media?
That's what I was thinking when I came up with this idea.
So, how do you do it? My "solution" (which has its own caveats) comes
in the form of
LLDP.
For those who haven't encountered it yet, here's the scoop: certain
higher-end Ethernet switches have the potential to _multi_cast
identifying frames every so often. Any given station on such a switch
might get a LLDP frame from it a couple of times per minute.
In that frame, you can see interesting things, like the MAC address(es)
of the switch, its name, what OS it might be running (!), the management
IP addresses (!!), and, finally, what the name of YOUR PORT is.
Yep, that's right, if you're on such a switch, you might well have
something arriving on your interface every so often that says "oh by the
way, you are connected to me on my Gi1/0/24". Another device on that
same switch would get nearly the same announcement, but it might say
"Gi1/0/48" or whatever else.
The point is: if you're that derpy little display machine, you now have
a way to tell yourself apart from your "coworkers". You could build a
tuple of (switch name, switch port) and kick that at the display server,
and let it figure out what set of images/videos you're supposed to run.
Now, there's always a catch, and here it is: this assumes that you're
not changing the mapping between ports on the switch and the actual
RJ45s in the space. I'm assuming that port 23 on your switch will
always be over there by the front door, port 24 will always be next to
the bathrooms, and 25 will be by the patio door. You get the idea.
If those change, then yeah, you get to reconfigure everything, but at
least it's still only on the server, and you don't have to deal with the
dumb little display machines.
How do you see this? Well, tcpdump would be a start. A filter of
"ether proto 0x88cc" will do the job, but make sure you stick a -v on
there to make it actually expand the details (or it'll be pretty dull).
Some other things: a relatively low-end switch won't do anything in this
space. It won't generate it, and it won't "absorb" it from other
sources. So, if your listening post running tcpdump is plugged into
such a beast, it might hear LLDP stuff coming from multiple other
sources but it won't see anything from the switch itself. Yep, it's
more than switches which potentially send these out. "Server class"
systems with their own little management device ("BMC") glued onto them
tend to do this, too.
Normally, such traffic would not cross the switch, but that requires a
switch that actually "gets" it and knows to not forward it. Ordinary
dumb switches will treat it just like any other bit of traffic and will
send it on down the line.
I should also note that other protocols exist which serve similar
purposes and it depends a lot on which switch vendor you've chosen.
It might not be LLDP but it might be something else which ends in "DP".
We're sure colleagues will find your lookalike, soundalike avatar's missive very warm and human
Zoom Video Communications intends to offer office workers the ability to communicate with colleagues using an AI lookalike that speaks from a script using a lip-synced, cloned voice.…
Roadside assistance biz praised for deploying security monitoring software and reporting workers to cops
Two former workers at roadside assistance provider RAC were this week given suspended sentences after illegally copying and selling tens of thousands of lines of personal data on people involved in accidents.…
Following the recent Mohamed Al-Fayed allegations, and the Jimmy Savile horror show why do they have to be dead before the truth comes out? Why don't you hear about at least some of the allegations before they died?
So, I go to a pole dance studio in a small town. Very recently, they decided to make most of the classes co-ed, meaning men are allowed to join. I don’t think anybody has an issue with this, many of us are there working out in our underwear but it’s no different than the beach. Until Kevin gets to class. He wears these short baggy shorts with no underwear on, and his genitals are frequently fully visible. He even jokes about it like “sorry in advance for anything you might see, ladies.” The apology shows he knows his balls are out, and he just doesn’t care. He seems to think it’s fine to flash his entire nutsack to a room full of unconsenting women. I’m all for sharing our space with men, but none of the women are exposing their genitalia like that. It’s just not done in our dance studio. If you did that at a gym they would tell you to cover up and leave. I’m thinking about sending an email to complain about it. It’s even worse because he’s one of the instructors husbands. Am I overreacting or is this just wildly inappropriate? We’ve only been coed for like 2 months and I’m already having to look at men’s ballsacks. Should I complain or would that make me an asshole? I really don’t want to have to look at this man’s nutsack again in what used to be a safe space for women
Blake Watson's brand new HTML tutorial, presented as a free online book (CC BY-NC-SA 4.0, on GitHub). This seems very modern and well thought-out to me. It focuses exclusively on HTML, skipping JavaScript entirely and teaching with Simple.css to avoid needing to dig into CSS while still producing sites that are pleasing to look at. It even touches on Web Components (described as Custom HTML tags) towards the end.
Providing validation, strength, and stability to people who feel gaslit and dismissed and forgotten can help them feel stronger and surer in their decisions. These pieces made me understand that journalism can be a caretaking profession, even if it is never really thought about in those terms. It is often framed in terms of antagonism. Speaking truth to power turns into being hard-nosed and removed from our subject matter, which so easily turns into be an asshole and do whatever you like.
This is a viewpoint that I reject. My pillars are empathy, curiosity, and kindness. And much else flows from that. For people who feel lost and alone, we get to say through our work, you are not. For people who feel like society has abandoned them and their lives do not matter, we get to say, actually, they fucking do. We are one of the only professions that can do that through our work and that can do that at scale.
Most text embeddings models suffer from a "language gap", where phrases in different languages with the same semantic meaning end up with embedding vectors that aren't clustered together.
Jina claim their new jina-embeddings-v3 (CC BY-NC 4.0, which means you need to license it for commercial use if you're not using their API) is much better on this front, thanks to a training technique called "contrastive learning".
There are 30 languages represented in our contrastive learning dataset, but 97% of pairs and triplets are in just one language, with only 3% involving cross-language pairs or triplets. But this 3% is enough to produce a dramatic result: Embeddings show very little language clustering and semantically similar texts produce close embeddings regardless of their language
The big focus of Deno 2 is compatibility with the existing Node.js and npm ecosystem:
Deno 2 takes all of the features developers love about Deno 1.x — zero-config, all-in-one toolchain for JavaScript and TypeScript development, web standard API support, secure by default — and makes it fully backwards compatible with Node and npm (in ESM).
And when you run it Deno will automatically fetch and cache the required dependencies:
deno run main.js
Another new feature that caught my eye was this:
deno jupyter now supports outputting images, graphs, and HTML
Deno has apparently shipped with a Jupyter notebook kernel for a while, and it's had a major upgrade in this release.
Here's Ryan Dahl's demo of the new notebook support in his Deno 2 release video.
I tried this out myself, and it's really neat. First you need to install the kernel:
deno juptyer --install
I was curious to find out what this actually did, so I dug around in the code and then further in the Rust runtimed dependency. It turns out installing Jupyter kernels, at least on macOS, involves creating a directory in ~/Library/Jupyter/kernels/deno and writing a kernel.json file containing the following:
When I want information, like the real stuff, I go to forums. Over the years, forums did not really get smaller, so much as the rest of the internet just got bigger. Reddit, Discord and Facebook groups have filled a lot of that space, but there is just certain information that requires the dedication of adults who have specifically signed up to be in one kind of community.
This is a very comprehensive directory of active forums.
Jamie Chang expanded my free-threaded Python experiment from a few months ago to explore the interaction between Python's asyncio and the new GIL-free build of Python 3.13.
The results look really promising. Jamie says:
Generally when it comes to Asyncio, the discussion around it is always about the performance or lack there of. Whilst peroformance is certain important, the ability to reason about concurrency is the biggest benefit. [...]
Depending on your familiarity with AsyncIO, it might actually be the simplest way to start a thread.
This code for running a Python function in a thread really is very pleasant to look at:
result = await asyncio.to_thread(some_function, *args, **kwargs)
Jamie also demonstrates asyncio.TaskGroup, which makes it easy to execute a whole bunch of threads and wait for them all to finish:
async with TaskGroup() as tg:
for _ in range(args.tasks):
tg.create_task(to_thread(cpu_bound_task, args.size))
Fail Source (fair.io) is the new-ish initiative from Chad Whitacre and Sentry aimed at providing an alternative licensing philosophy that provides additional protection for the business models of companies that release their code.
I like that they're establishing a new brand for this and making it clear that it's a separate concept from Open Source. Here's their definition:
Fair Source is an alternative to closed source, allowing you to safely share access to your core products. Fair Source Software (FSS):
is publicly available to read;
allows use, modification, and redistribution with minimal restrictions to protect the producer’s business model; and
The most interesting background I could find on Fair Source was this GitHub issues thread, started in May, where Chad and other contributors fleshed out the initial launch plan over the course of several months.
It's been a while since I've seen a new-ish Wiki implementation, and this one by Ralph Thesen is really nice. It's written in Python (Flask + SQLAlchemy + mistune for Markdown + GitPython) and keeps all of the actual wiki content as Markdown files in a local Git repository.
The installation instructions are a little in-depth as they assume a production installation with Docker or systemd - I figured out this recipe for trying it locally using uv:
I got this OpenAI demo repository working today - it's an extremely easy way to get started playing around with the new Realtime voice API they announced at DevDay last week:
cd /tmp
git clone https://github.com/openai/openai-realtime-console
cd openai-realtime-console
npm i
npm start
That starts a localhost:3000 server running the demo React application. It asks for an API key, you paste one in and you can start talking to the web page.
The demo handles voice input, voice output and basic tool support - it has a tool that can show you the weather anywhere in the world, including panning a map to that location. I tried adding a show_map() tool so I could pan to a location just by saying "Show me a map of the capital of Morocco" - all it took was editing the src/pages/ConsolePage.tsx file and hitting save, then refreshing the page in my browser to pick up the new function.
Be warned, it can be quite expensive to play around with. I was testing the application intermittently for only about 15 minutes and racked up $3.87 in API charges.
Jacob Kaplan-Moss gave my favorite talk at DjangoCon this year, imagining what the Django Software Foundation could do if it quadrupled its annual income to $1 million and laying out a realistic path for getting there. Jacob suggests leaning more into large donors than increasing our small donor base:
It’s far easier for me to picture convincing eight or ten or fifteen large companies to make large donations than it is to picture increasing our small donor base tenfold. So I think a major donor strategy is probably the most realistic one for us.
So when I talk about major donors, who am I talking about? I’m talking about four major categories: large corporations, high net worth individuals (very wealthy people), grants from governments (e.g. the Sovereign Tech Fund run out of Germany), and private foundations (e.g. the Chan Zuckerberg Initiative, who’s given grants to the PSF in the past).
Also included: a TIL on Turning a conference talk into an annotated presentation. Jacob used my annotated presentation tool to OCR text from images of keynote slides, extracted a Whisper transcript from the YouTube livestream audio and then cleaned that up a little with LLM and Claude 3.5 Sonnet ("Split the content of this transcript up into paragraphs with logical breaks. Add newlines between each paragraph.") before editing and re-writing it all into the final post.
Anthropic now have a batch mode, allowing you to send prompts to Claude in batches which will be processed within 24 hours (though probably much faster than that) and come at a 50% price discount.
This matches the batch models offered by OpenAI and by Google Gemini, both of which also provide a 50% discount.
Django Commons is a really promising initiative started by Tim Schilling, aimed at the problem of keeping key Django community projects responsibly maintained on a long-term basis.
Django Commons is an organization dedicated to supporting the community's efforts to maintain packages. It seeks to improve the maintenance experience for all contributors; reducing the barrier to entry for new contributors and reducing overhead for existing maintainers.
I’ve stated recently that I’d love to see the Django Software Foundation take on this role - adopting projects and ensuring they are maintained long-term. Django Commons looks like it solves that exact problem, assuring the future of key projects beyond their initial creators.
Here’s Tim introducing the project back in May. Thoughtful governance has been baked in from the start:
Having multiple administrators makes the role more sustainable, lessens the impact of a person stepping away, and shortens response time for administrator requests. It’s important to me that the organization starts with multiple administrators so that collaboration and documentation are at the forefront of all decisions.
Will Vincent, Django Software Foundation treasurer from 2020-2022, explains what’s involved in the non-profit role with the highest level of responsibility and trust.
It's Python 3.13 release day today. The big signature features are a better REPL with improved error messages, an option to run Python without the GIL and the beginnings of the new JIT. Here are some of the smaller highlights I spotted while perusing the release notes.
iOS and Android are both now Tier 3 supported platforms, thanks to the efforts of Russell Keith-Magee and the Beeware project. Tier 3 means "must have a reliable buildbot" but "failures on these platforms do not block a release". This is still a really big deal for Python as a mobile development platform.
There's a whole bunch of smaller stuff relevant to SQLite.
Python's dbm module has long provided a disk-backed key-value store against multiple different backends. 3.13 introduces a new backend based on SQLite, and makes it the default.
The "c" option means "Open database for reading and writing, creating it if it doesn’t exist".
After running the above, /tmp/hi was a SQLite database containing the following data:
sqlite3 /tmp/hi .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE Dict (
key BLOB UNIQUE NOT NULL,
value BLOB NOT NULL
);
INSERT INTO Dict VALUES(X'6869',X'31');
COMMIT;
The dbm.open() function can detect which type of storage is being referenced. I found the implementation for that in the whichdb(filename) function.
I was hopeful that this change would mean Python 3.13 deployments would be guaranteed to ship with a more recent SQLite... but it turns out 3.15.2 is from November 2016 so still quite old:
SQLite 3.15.2 or newer is required to build the sqlite3 extension module. (Contributed by Erlend Aasland in gh-105875.)
The conn.iterdump() SQLite method now accepts an optional filter= keyword argument taking a LIKE pattern for the tables that you want to dump. I found the implementation for that here.
And one last change which caught my eye because I could imagine having code that might need to be updated to reflect the new behaviour:
pathlib.Path.glob() and rglob() now return both files and directories if a pattern that ends with "**" is given, rather than directories only. Add a trailing slash to keep the previous behavior and only match directories.
If you're still a user of Python 3.8, I don't blame you, it's a lovely version. But it's time to move on to newer, greater things. Whether it's typing generics in built-in collections, pattern matching, except*, low-impact monitoring, or a new pink REPL, I'm sure you'll find your favorite new feature in one of the versions we still support. So upgrade today!
Rails 8 takes SQLite from a lightweight development tool to a reliable choice for production use, thanks to extensive work on the SQLite adapter and Ruby driver.
With the introduction of the solid adapters discussed above, SQLite now has the capability to power Action Cable, Rails.cache, and Active Job effectively, expanding its role beyond just prototyping or testing environments. [...]
Transactions default to IMMEDIATE mode to improve concurrency.
Also included in Rails 8: Kamal, a new automated deployment system by 37signals for self-hosting web applications on hardware or virtual servers:
Kamal basically is Capistrano for Containers, without the need to carefully prepare servers in advance. No need to ensure that the servers have just the right version of Ruby or other dependencies you need. That all lives in the Docker image now. You can boot a brand new Ubuntu (or whatever) server, add it to the list of servers in Kamal, and it’ll be auto-provisioned with Docker, and run right away.
At 37signals, we're building a growing suite of apps that use SQLite in production with ONCE. There are now thousands of installations of both Campfire and Writebook running in the wild that all run SQLite. This has meant a lot of real-world pressure on ensuring that Rails (and Ruby) is working that wonderful file-based database as well as it can be. Through proper defaults like WAL and IMMEDIATE mode. Special thanks to Stephen Margheim for a slew of such improvements and Mike Dalessio for solving a last-minute SQLite file corruption issue in the Ruby driver.
I've just returned from a fourteen-day trip spent building, running and tearing down EMF, and as I sit on the plane writing this, as well as physical exhaustion, I am experiencing a whole host of emotions - happiness, wonder, determination, and also a strange sense of loss.
It is impossible to describe EMF to anyone who has not attended; while initially you might want to compare it to a normal festival, or something like Burning Man, it is fundamentally unlike almost any other event on Earth. The Dutch and German camps maybe come close, but even those have their own somewhat different vibe.
Over the course of my time heading up the logistics team over the last two weeks, I have done and seen such a wild variety of things that I'm never quite sure what was real. Among others, I watched a man play the US National Anthem on a tesla coil using a theremin; climbed up into a DJ booth in a solarpunk-themed Null Sector and pressed the "!! FIRE !!" button to light up the night sky with pillars of burning alcohol; exited the shower to hear HACK THE PLANET echo out over the field from the stage a quarter of a mile away; saw an inflatable t-rex driving a miniature Jurassic Park jeep, played games on a hillside using lasers, and refilled the duck flume several times (shortly after exclaiming "We have a duck flume?").
I've had many different development platforms over the years - from Notepad++
on library computers in my youth, to Gentoo and then Ubuntu installed on a
series of carefully-chosen laptops with working drivers, and then for the last
five years or so on Surface devices via the rather wonderful Windows Subsystem
for Linux (WSL).
Of course, in the WSL era I am still just running Ubuntu, but inside the
pseudo-VM that is the WSL subsystem of the Windows kernel. It's honestly pretty
great, and I regularly joke that I'm using Windows as the GUI layer to develop
on Linux.
Between the Steam Deck and WSL both being ascendant, maybe we finally got the
Year Of Linux On The Desktop, just not as we expected.
TLDR: I am looking for new developers and maintainers for Takahē who want to help in exchange for my mentorship, or I'll have to sunset the project.
I find it important to have hobbies that aren't the same as what I do for work, which is why an increasing number of them don't involve computers at all - I'm very happy building new things on my camper van, making weird geographic art, or hiking around bits of the Rockies.
However, I still love programming and systems work, and I'll always have at least one project going on the side that involves it - nothing beats the size and complexity of what you can create in just a few hours of coding. That said, I have two basic rules for my programming side projects:
There are many questionable things about American car culture, but the road
trip is not one of them. In a country as large and geographically varied as
the USA, road travel is not just a necessity, but it can also be the
attraction itself.
When I first moved to the USA, I had vague plans of doing some driving around
and enjoying the sheer alien-ness of tiny towns in the middle of nowhere, or
motels where you are somehow the only guest. Nine years in, I've done a decent
amount of that, but these days my attention is more focused around the
camper van that I spent half a year building.
I like to try and share a bit of the experience with those who want to see it,
and as well as posting pictures and videos, I've always liked the idea of
having a live map of where I am - even if it's just for friends and relatives
who are interested in my progress.
I had taken two months off from developing Takahē in the run up to PyCon US;
both due to pressures at work (and then, more recently, half the company being
laid off around me), as well as not quite being sure what I wanted to
build, exactly.
When I started the project, my main goal was to show that multi-domain support
for a single ActivityPub server was possible; once I had achieved that
relatively early on, I sort of fell down the default path of implementing a
lightweight clone of Mastodon/Twitter.
While this was good in terms of developing out the features we needed, it
always felt a bit like overhead I didn't really want; after all, if you're
implementing the Mastodon API like we do, all the dedicated apps for viewing
timelines and posting are always going to be better than what you ship with
a server.
Today is the 0.7 release of Takahē,
and things are really humming along now; this release marks the point where
we've built enough moderation and community features to make me happy that I
can open up takahe.social to registrations,
albeit with a user number cap.
We've also launched a Patreon for Takahē, in a
quest to make development and operation of Takahē more sustainable - and
work towards start paying some people to help out with the less exciting work
like triaging tickets, user support, and moderation of takahe.social. If you
want to volunteer directly, that's covered in our
Contributing docs.
There's some interesting technical topics I want to dig into today, though -
it's been a little while since my last blog post and ActivityPub and friends
continue to surprise.
Yesterday I pushed out the 0.5.0 release of Takahē,
and while there's plenty left to do, this release is somewhat of a milestone
in its own right, as it essentially marks the point where I've implemented
enough of ActivityPub to shift focus.
With the implementation of image posting in this release, there are now only
a few things left at a protocol level that I know I'm missing:
Custom emoji (these are custom per-server and a mapping of name-to-image
comes with each post)
So, after a few weeks of development, I'm happy enough with the state of
Takahē to issue its first official release - which I've chosen to number
0.3.0, because version numbers are made up and I can start where I want.
We're only releasing Docker images right now in order to try and keep the
support burden down (it removes having to worry about people's OS versions
and library environments), so you can find it on Docker Hub.
Twitter is - was - such a unique place. Somewhere where you can have the President
of the United States coexist with teenagers writing fan fiction; where
celebrities give personal insights into their lives while government
departments post memes about public safety;
the place that gave us @Horse_ebooks and @dril.
The "Fediverse", with Mastodon at its helm, is not this. It doesn't seem to want
to be, and I honestly think that's fine - as many thinkpieces have recently
said, the age of global social media might just be over. And given the effect
it's had on the world, maybe that's alright after all.
But there is still a void to fill, and as someone who enjoyed Twitter most
at its "medium" size, I think the ActivityPub ecosystem is well-placed to grow
into such a space. But first, I think there's some important things we have to
discuss about it.
When I decided to properly start using the Fediverse via
my own Mastodon server,
I knew it was probably inevitable that I would end up writing my own server -
and, well, here we are!
My new server is called Takahē, and
it's built in Django and also specifically with Python's async library
ecosystem - I'll explain more about why that matters later.
If you haven't been able to keep up with my blistering pace of one blog post per year, I don't blame you. There's a lot going on right now. It's a busy time. But let's pause and take a moment
With early computers, you didn't boot up to a fancy schmancy desktop, or a screen full of apps you could easily poke and prod with your finger. No, those computers booted up to the command
Hard to believe that I've had the same PC case since 2011, and my last serious upgrade was in 2015. I guess that's yet another sign that the PC is over, because PC upgrades have gotten really boring. It took 5 years for me to muster
In an electric car, the (enormous) battery is a major part of the price. If electric car prices are decreasing, battery costs must be decreasing, because it's not like the cost of fabricating rubber, aluminum, glass, and steel into car shapes can decline that much, right?
I've never thought of myself as a "car person". The last new car I bought (and in fact, now that I think about it, the first new car I ever bought) was the quirky 1998 Ford Contour SVT. Since then we bought a VW station wagon
When I wrote about App-pocalypse Now in 2014, I implied the future still belonged to the web. And it does. But it's also true that the web has changed a lot in the last 10 years, much less the last 20 or 30.
I didn't choose to be a programmer. Somehow, it seemed, the computers chose me. For a long time, that was fine, that was enough; that was all I needed. But along the way I never felt that being a programmer was this unambiguously great-for-everyone career field with zero
It's been a while since I wrote a blog post, I guess in general, but also a blog post about video games. Video games are probably the single thing most attributable to my career as a programmer, and everything else I've done professionally after that. I
We've read so many sad stories about communities that were fatally compromised or destroyed due to security exploits. We took that lesson to heart when we founded the Discourse project; we endeavor to build open source software that is secure and safe for communities by default, even if
When I wrote about The Golden Age of x86 Gaming, I implied that, in the future, it might be an interesting, albeit expensive, idea to upgrade your video card via an external Thunderbolt 3 enclosure.
Birthday time, and we have celebrated jointly with a 160th party (82+78, I am the baby) with friends locally, a very informal wine tasting from our varied collecton. A few photos...
It has rained (a rare event) so things are looking a bit greener but this is a dry corner of the Languedoc - only 35 mm on 5 September when the local average all around was nearer 50 - and another 37 yesterday. I do spend a lot of my time watering, recycling the copious condensation from our wine store cooling system. I shalll need to get the mower out soon...
After an anxious few days Edmond has rallied and is eating the posher kind of dog food that now tempts him. His heart is not strong, and the vet (who is kind and thoughtful) is on standby to pay us a visit when needed, but for the moment the dog is in good spirits.
Followign the outstanding success of the Paris Olympics, the Paralympics have come and gone. We made a determined effort to watch: The simple evidence of determination and overcoming difficulties is inspiring, and sports have been adapted, or invented, to facilitate people with disabilities of every kind to take their chance. Now we are obliged to watch French tv, but we also have podcasts in English. There is a splendid podcast - well worth listening to - which conveys the excellence of these athletes. Mary and I both spent a good part of our working lives with disabled people in the voluntery sector, so this inteterests us a lot. It seems to us that France has begun to catch up with the UK in social integration of disability
I have long been interested in road safety, and the consistently higher mortality here as compared th the UK. I have just read that the number of people killed or injured on Welsh roads has dropped significantly since most 30mph speed limits were reduced to 20mph. There were 377 casualties on 20mph and 30mph roads in the first quarter of 2024, down from 510 in the same period last year. The number of deaths dropped from 11 to five.
I have just come across this map of transatlantic cables which shows, along with the huge power-guzzling data centres all over the place, how very un-cloudlike the cloud is I read this in an article by Gillian Tett in the Guardian - "When we think of the internet, we tend to picture a disembodied thing out in the air somewhere. In reality, it’s rooted in physical infrastructure: 99% of global internet traffic travels through 1.4 million kilometres of undersea cables, and that includes “the $10trn in daily financial transactions … which drive global markets”. Any damage to these cables thus poses a major threat to Western economies. And the bad news is that the risks of such damage are escalating. The main threat used to be natural disasters or accidents with ship anchors: now, increasingly, it’s acts of sabotage by hostile states, such as Russia. The prime target used to be pipelines – in 2022, the Baltic Nord Stream gas pipeline was sabotaged – today it’s undersea data cables. Sweden reported such an attack last year; Estonia has accused China of cutting two of its cables. Western leaders are reluctant to spend billions on back-up cables, as internet engineers urge them to do, because, apart from the cost, they’ll likely face resistance from companies such as Google, which invest heavily in such cables. But if we fail to ready ourselves for the era of seabed warfare, the West’s financial architecture will be left in jeopardy.
We keep looking for the good news, but some of it has been really awful lately, what with riots in the UK, horrible stories of sexual violence everywhere, fake news, and political sleaze in the UK which seems not to have diseappeared with the change of government. The Olympics were dragged in: "Prosecutors are investigating death threats made against the artistic director of the Paris Olympic Games opening ceremony, Thomas Jolly. The ceremony, staged on monuments and boats along the River Seine, was deplored by some religious leaders and conservative politicians for one section in particular – a bacchanalian scene featuring drag artists, which they mistook for a parody of Leonardo’s The Last Supper. Jolly, a well-known theatre director, says he has been sent hate messages, some in the form of death threats, reviling his sexuality (he is openly gay) and his “wrongly assumed Israeli origins”. Several threats sent to Jolly quoted a verse from the Koran and threatened “Allah’s punishment”.
The Fête des Associations, an annual event in most French towns. The voluntary sector is central to public affairs at every level.
Those who know me also know I have a particular feeling of sympathy with refugees. I've written before about the book Bloody foreigners by Robert Winder, which is a classic view of l'étranger in Britain, something I return to read often. He has just written in the Guardian:
...there is a pattern stretching back to the 12th century.... Like everyone else, I gaped in dismay as rioting tore across the country... but as the reflexive search for the “root” or “underlying” cause gathered pace, I couldn’t help recalling the parable of the good sociologist. In this parody of the Bible, when the traveller on the road to Jericho is assaulted, the first sociologist crosses the road and passes by on the other side. The second does the same. But the good sociologist rushes to the scene, cradles the victim’s head and weeps: “Boy, the person who did this needs help.” The violence was the opposite of a laughing matter, but I groaned to see how swiftly it was taken to be symptomatic of a credible point of view. Almost everyone was calling the stone-throwers “far-right protesters” or “Islamophobic” – as though name-calling might be enough make them come to their senses. Surely this was giving them too much credit. It allowed them to style themselves as warriors for a cause instead of thugs. Worse, it walked into the Faragian trap of insisting that though the violence, yes, might be over the top, the grievances were understandable, and the conversation we really needed to have was about … immigration.
It wasn’t. The subject here was violence.This is not to say that immigration is trivial or a simple matter. It is neither. The Channel is being crossed by overcrowded boats. The government is having to spend up to £5bn a year on asylum seekers. That is inspiring enough culture-war friction to keep the thinktanks occupied for years. There are major policy discussions to be had in all these areas. But it pained me to see what was obviously a criminal uproar so swiftly becoming a “debate”. Surely, if there is one thing we could agree on, it was the fact that it is wrong for someone halfway through a six-pack to be setting fire to someone’s car, in a town (not their own) where children have just been murdered, because someone on the internet has said something angry about someone else whose name they couldn’t remember.
Part of my twinge was selfish, down to the fact that some years ago I wrote a book that presented the age-old saga of migration to Britain (since the ice melted) not as a sociopolitical nightmare but as a natural part of human life – which happened to have enriched Britain greatly. I was mindful of Tolstoy’s observation that in all literature there were really only two stories: someone leaves home, or a stranger arrives in town. But given that one of my hopes had been to pour oil on troubled waters, it looked as though I now had to admit – as flames lit up the night sky in Southport and Plymouth – that I had written the most unsuccessful book in the history of books.Except, perhaps, in one respect, because one of the main things I learned writing it was that angry summer uprisings against perceived outsiders are nothing new. Far from being a heated response to a modern problem, they are as entrenched a part of the English social scene as Ascot, Henley and the Lord’s Test.
Along with Robert Winder I have been reminded today of another favourite author, Lea Ypi, now a professor at the LSE but born in a dysfunctional Albania.
One cold, late evening in the winter of 1999, I was waiting for a train at Termini station in Rome when I noticed an old lady struggling with her suitcases and offered to help. “Signorina,” her voice trembled ever so slightly. “Fortunately there are still youngsters like you. I was very worried. This station is full of Albanian muggers. It’s an invasion.”
Back then I had no courage to tell her I was Albanian. One of the lucky ones – a student on a scholarship, unlike my fellow citizens who worked as cleaners, builders, carers and sex workers. ...taken literally, the only invasion in the history of the two nations went the other way round. It happened in 1939, when Mussolini’s troops ...annexed the Albanian kingdom to the kingdom of Italy.
Keir Starmer has reportedly declared that the UK government is interested in a migration pact like the Albanian one. ...all that Britain needs for an equivalent deal is a former colony with a government whose memory is sharp enough to remember the roads and buildings its master constructed in the past century but not the human beings it exploited in thepast few decades.... When the argument that we must “be pragmatic” is the first to be put on the table, principles – memory, responsibility, care for vulnerable people, you name it – have already been suspended.
How to oppose it, then? Perhaps by plain logic. Migration deals such as the one Labour is apparently studying are premised on various assumptions: that migration itself is a problem, that irregular migration is best fought with draconian border restrictions, that extraterritorial detention can act as a deterrent. There is ample research showing each premise to be dubious. But even assuming they are valid, there are three further issues any “pragmatic” politician ought to confront.
Politically, the Albania model is presented as a novelty in the management of migratory flows because it involves cooperation between an EU candidate and an EU member state. ... [but this] leaves to bilateral negotiations what ought to come about as a result of an EU-wide process.... it creates a dangerous precedent in which individual countries pursue their own deals to address their own migration “problem”, heading off chances of a truly coordinated process acrossEurope.
Second, the principle of non-refoulment enshrined in the 1951 UN convention relating to the status of refugees, prohibits the expulsion or return of people to countries deemed unsafe. Meloni insists Albania is safe, citing its EU candidate status. But if that is the case, why are pregnantwomen, children and other vulnerable categories exempted from the deal?
Third, there is the economic question. To comply with international law, deported migrants must remain Italy’s responsibility. According to the agreement between Italy and Albania, Italy is responsible for all the costs of construction and management of the two centres...An irregular migrant in Albania costs Italy the same or more than they would if they were processed in their own territory. The only benefit is that migrants become invisible – lontano dagli occhi, lontano dal cuore, as the Italian saying goes.
We are told that Starmer’s government is pragmatic and interested in what works. But how can a “solution” that makes no logical sense from a political, legal and economic point of view still be considered “pragmatic”?
Perhaps there is only one plausible answer: propaganda. Labour clearly thinks it can send a message to the most right-leaning voters in its coalition that it too is tough on migrants. In doing this, it takes its liberal and leftwing supporters for granted. They may suspend their principles and forgive the rhetoric for a time. But the political, legal and economic contradictions will remain.
After the total immersion of the Tour de France here in our household (bear in mind we were brushing up on our French comprehension as we watched with 100% French commentary for the first time, straining to hear snatches of English behind the interpreters' rapid translations of interview clips). On reflection one of our highlights was the overall success of small nations - Slovenia, Ecuador, Eritrea, Belgium on various podiums as well as the endless beauty of thr French (and initially Italian) countryside. I didn't think the Olympics would have the same fascination for us, but we have enjoyed some amazing moments, and continue to improve our comprehension of spoken French from the tv coverage. Simone Biles has been a revelation, recovering from disorientation 4 years ago to take triumphant gold medals. They keep evoking the days of Korbut and Comaneci, but the fitness and tranining have gone along with higher ages - the 27 year old Biles would apparently have been called granny by other gymnasts a generation ago.
The Olympic cycling road races took place at the weekend - Evenepoel was a worthy winner of the men's race, and the women's race past the same splendid Paris lanscape was a really tight affair where once again favourites were a bit too busy looking at one another and the American Kristen Faulkner simply rode away from them to win nicely. Elsewhere we learn more of the strange arts of hammer throwing and ping pong, and the always disappointing flops of the high jump, but celebrated the excellent win of Novak Djokovic, the last survivor of the old guard against the inevitable rise of the new generation in tennis - a first Thinese women champion and the impressive Alcaraz as the men's runner-up. In the Olympics we have enjoyed some good moments including a world record pole vault and an uexcpected Botswanan spring victory - the end of the track eveents this weekend will be followed by the Women's cycle Tour - we still have not worked out how to follow the Vuelta on tv.
Meanwhile in the real world I read: 'now should be the 'silly season', that goofy time of year when the news is usually filled with trivial stories because everyone's on vacation and there's not much serious stuff happening. But this year's silly season is insisting on being taken seriously, with a global market crash and the Middle East on the brink of war. In the UK, it's even grimmer, as racist attacks against asylum-seeker facilities have spread across cities, fuelled by online disinformation. "The worst wave of far-right violence in the UK post-war," wrote anti-extremism organisation HOPE not to hate.' We find ourselves in a quiet if hot corner of the south of France, but the turmoil is never far away.
This blog began years ago with bulletins on my health, starting with a knee replacement which seems to be holding up. The random pains I now have include arthritis (a bit in the othe rknee but I'll not have a further operation) tendinitis (which also bugs Mary at times) in one shoulder, muscular aches which the French oddly call courbature, otherwise raideur, and a bit of gout in foot joints, evident to my doctor who spots uric acid in the blood tests and counsels mildly against drinking too much. All this is more or less tolerable wiht regular paracetamol plus some codeine and occasional ibuprofen which has to be prescribed here but is freely available over pharmacy counters in the UK so brought by visitors when needed. All in all, with my daily exercise bike I cope well enough. I am often reminded of the Sackler scandal and the widespread dependence on opoids
As I write, I have just been to the dermatologist. A small spot on the top of one ear turned out to be pre-cancerous and is now being analysed - for the moment I have a dressing and stitches, and much less discomfort - I'll be able to sleep facing either way now. Dermato appointments here are like hen's teeth, and I had to write a letter in my best French to get an appointment before November, but it is done. Lab results in September when the holidays are over. Of course sod's law says that medical difficulties usually happen at weekends or during the summer holidays.
in Marc & Flo's garden in Congénies
Summer heat here. We keep daily temperature records, and are surprised to find that this year has been hotter than the last 2. It has also been humid - here we have a seesaw between drier, (slightly) cooler northerly winds - Mistral and Tramontane - and the entrées maritimes, southerly winds usually laden with moisture and sometimes with Sahara sand! Humidity obviously make it feel even more hotter, and our daytime maxima have been in the mid-30s since the middle of July while recent night temps have not been below 20° Our house is relatively cool and we stay indoors a lot. But the fires in the countryside have increased again, and sadly they are often caused by cigarette ends thrown from car windows
We have come to like the French postal services. Deliveries to the gate and its post box, not to the door, which avoids the dog bites post people in the UK suffer (not that we have biting dogs...). But as in the UK (years ago someone found sacks of undelivered letters to Jim'll Fixit in a bin in Hampstead, grim memories of J Savile but lots of disappointed kids hoping for replies to their dreams) a recent story tells of a French postman who took 13,000 letters home at the end of his shifts. The accused is set to appear in court in Vienne in January 2025, after the ‘mountain’ of undelivered post was discovered in his garage. The man now faces a fine of up to €45,000, and three years in jail.the accused had previously been a delivery driver for the Services-Courrier-Colis (parcel delivery) branch in the town of Bourgoin-Jallieu, Ironically this crime toook place not far from the Palais Idéal du Facteur Cheval, a 19th century postman who buuilt a fantastic palace from stones he collected on his rounds - it is one of our favourite places to visit, in the north of the Drôme département.
As previously noted, our dear dog Edmond is nearing the end of his long life - 15 now, which is good going for a small dog. He has been anaesthetised previously for removal of fluid because of oedoema caused umtimately by a weakening heart, but that makes further interventions unadvisable and we keep him cheerful with titbits fed by hand - we are in constant touch with the escellent vets here. The hot weather certainly does not help. But he finds cool spots on the front doorstep and still seems alert when he is not sleeping! As long as he is in good spirits and will eat something we shall continue to enjoy his company.
The 2 tortoises however are inn good health and eating lots of lettuce! Mary says the older one senses her arrival by vibrations in the ground and races over to get his latest meal!
The Tour de France is in its 3rd and final week - this year exceptionally (because of the Olympics) not finishing in Paris. We have followed the cyclists for years, and although we miss the British commentators we are enjoying the French ones - it is after all a French event. We are getting used to Tadej Pogacar outpacing his rivals up steep mountains - his current nearest rival, the Dane Jonas Vingegaard, is never far behind, but this year I don't thing he will get in front.
The scenery in these broadcasts is always magnificent - helicopters and now, I guess, drones, provide views of landscape which we'd never have seen in earlier days, and the broadcasters take pride in interspersing shots of countryside and buildings among the pictures of the race. Tuesday's stage from Gruissan to Nîmes was particularly enjoyable for us, including as it did shots of the Pic Saint Loup north of Montpellier and then the countryside from Montpellier through the Vaunage, all of which we knnow quite well. This website has many excellent photos of the Pic Saint Loup by Régis Domergue, a local photographer we admire.
Yesterday too the Tour back into the Alps,with magnificent landscapes and a very confused field of breakaway groups. These grand tour races can be confusing since overall winners are calculated by cumulative time, and those who are already well ahead as the race unfolds can ride in halfway down the day's arrivals but still be in the lead. Yesterday there were a number of group battles ahead of the leaders, and the day's stage was well won by the Ecuadorean Richard Carapaz, who has had a long career in the peleton and was with Geraint Thomas in his heyday a few years ago.
Today's stage
A good friend wondered recently why we chosse such a hot place to live. I think, despite sometimes high temperatures, what I really love is the light, and the skies. Since I'm often awake early I can experience light without too much heat. This summer, to be fair, is not nearly as hot as the past 2, though they say there will be afternoons in the mid-30s this week. We are fortunate in any case to have a house that keeps relatively cool even on hot days without the need to air conditioning, and the nights are pleasantly warm, not often stifling. The only really cool place in the house is the wine store, whose cooling is highly efficient (and produces quantities of mineral-free water excellent for plants and for the ironing!
We have just enjoyed a short visit from our son Ed, his partner Karen, our granddaughter Isla and her boyfriend Ben who coped splendidly with new people (he'd just met Ed and Karen for the first time as they travelled over). They were all pllunged in at the deep end with a wine tasting meal in Luc's lovely garden near Aigues Mortes, and a good time was had by all I think
This is election time - double whammy for us since we are still in a whirl from Thursday, and this weekend is the tense second round in the French partliamentary elections.
But I must start today by saying that I've just heard that my friend and ex-boss David Lawtey died this month. With no exaggeration, he was oneof the most important influences in my life, in my work in the Notts voluntary sector above all. He was one of the fairly few people in my life who was a confirmed Conservative - goodness knows what he made of the recent chaos in British political life - and he also helped me to understand the positive qualities of a political allegiance I mostly find it hard to sympathise with. His decency and uprightness were a huge support to me, especially at difficult moments at the end of my career.
The personal things I take away from the British election results include some astonishing results - Henley-on-Thames which I'd got to know as a teenager switching from Conservative for the first time since 1906! (my old home area of Chesham & Amersham had already caused a big ripple in a by-election); Rushcliffe (Kenneth Clarke's old constituency) in Notts, where I spent nearly 25 years at work falling to Labour. The horrible muddle in Ashfield (Lee Anderson changed parties 4 times I think, Labour via tory to the far right) caused Mary and I who had worked there to raise a lot of eyebrows. Nationally the early reports of ministerial appointments and cabinet strategy are encouraging - Rwanda is instantly abandoned the new PM is well-equipped to understand the crisis in the prison service. Above all I hope that the changes now will bring principle back into politics, and as an ardent champion of social justice and fairness I have hopes that the new regime will uphold these in redistributing resources to those who need them most. Early signs are encouraging.
The French situation is much less certain, though tactical withdrawals of candidates in triangular contests reduced the risks. As I write a heated discussion is happening on the tv following the announcement of the results, no clear majority for anyone but a 3-way split. Time will tell how this will play out but the right has been edged away from a parliamentary majority. We have no vote here, and the President will have to work with a parliament which is equally far from his position on left and right. I feel relief and a sense that the 2-round system and hastily formed alliances seem to have done their job. The best stimate of the final result is below.
Domestically things are fairly quiet for us. Edmond the dog is not very well, rather wheezy despite medication against fluid on the lungs and slow to show interest in food this weekend, but at 15 he is often lively and walks OK, snoozing a lot in between whiles. The weather is finally getting really warm but still not approaching the heatwaves of the last couple of years.
We have long been avid followers of the Tour de France, which is just entering its second week. Tadej Pogacar has shown his class in pushing to the top of the leader board and of the first serious mountain, and Mark Cavendish also shone with his record 35th stage win. The scenery in Italy (where the Tour began) was wonderful, and since then we have seen part of France we've got to know quite well around the Savoie area and in Burgundy. This Sunday has stretches of gravel along the route, complicating things for the leaders as well as everyone else. A black Eritrean cyclist, Biniam Girmay, is leading the points (sprint) competition by a distance, excellent for black sport.
Our French language groups continue to be important weekly markers in our lives, enhanced in summer by meeting outside in people's gardens.
Like other cars we have had our current Dacia Lodgy is rather dented from a collision with a long lorry on a roundabout - happily no serious damage.
As I started to write this Kiri te Kanawa, who is 80, was the guest on Tom Service's Saturday morning programme on Radio 3. Her Countess in Figaro was an all-time classic role - wonderful. To finish a few photos of Marc & Flo's garden and one of some musical fishknoves - they actually work for 4-part harmony!
Poor Edmond has had a rough time lately, and the other day the vet drained a litre of fluid from his chest - his liver has long been struggling. We'll keep going with and for him as long as we can, but he is not always interested in eating despite Mary's tempting food. He has had a good run, and at 15 has survived well, but we shall see if the aftermath of this latest operation works out. It seems possible that he will be our last dog - I would struggle with ayounger, more active animal though we never say never - and we are keen to make his life as comfortable as possible.
The glow of midsummer twilight, looking north from our house
These past few weeks have also been eventful in our garden, and in France with the continuing drift to the right across much of Europe and national elections here now imminent. An anxious wait to see if the French electoral system is shock-proof.
We have just lost another tree - a dead pine. Above is the garden a few years ago (Evie, our Norwich terrier, in shot), below M. Beaumann gradually demolishing the tree.
After the event - piles of wood neatly stacked up with more logs to follow when the trunks is split and sawn in a week or two. Plenty of light but lots of trees and bamboo still around for shade and interest, especially when the bamboo sways in the wind.
We have also had the pleasure of , a long weekend visit from Jeff and Fi - others of the family will follow over the summer.
The two tortoises seem to be in good shape and get through a lot of lettuce!
As summer warmth arrives, we look forward to family visits, and continue to read and listen to podcasts.
My love of reading goes way back - Just William and Arthur Ransome when young, phases of Victorian classics more recently, often linked to television adaptations. As time passes I often gravitate to stories linked to real events, for example Snow falling on cedars by David Guterson. Its background is the exclusion of Japanese Americans from the US in the fevered atmosphere following Pearl Harbour. Listening to a fascinating podcast series History's secret heroeson BBC Radio 4 brought this vividly back - the direct experience of families suffering such devastating treatment - displacement and internment in awful camps - was only partly mitigated by the later compensation and apologies of American administrations (a bit of a contrast, all the same, to the recent frequent and reluctant acknowledgement of maladministration and mistreatment of people in the UK).
On the similar theme, paraoia leading to unjust treatment of racial minorities in wartime, I've recently discovered Eva Ibbotson, whose novels (with admittedly romantic themes) strike chords for me with music, Austrian and Jewish threads. The last I read, twice now, is A song for summer in which among other things a man, an eminent musician called Marek, with Czech origins, ends up interned on the Isle of Man as some of my good friends were . An extraordinary collection of human beings - members of the Amadeus Quartet were among those rumoured to have met there, and the internment camps also featured on a podcast we've just listened to - so I think it's worth quoting at length from this well-written account:
The poor British, waiting for invasion, standing alone against Hitler, succumbed not to panic, for that was not in their nature, but to paranoia. Nazis disguised as parachuting nuns were reported daily; old ladies with a chink in their blackout curtains were taken away for questioning – and now, in an act of madness, they began to round up and imprison just those ‘enemy aliens’ who had the most to fear from Hitler and Mussolini, and who had been engaged in the fight against Fascism while high-ranking British diplomats were still taking tea with the Führer and admiring the fact that the trains ran on time. Austrian and German professors were hauled out of lecture rooms, doctors out of hospitals, students out of libraries, told they could pack one suitcase and taken away by the police. Italian shopkeepers, German bakers who had spent years in Britain, disappeared within an hour, weeping and bewildered. Spy mania was everywhere; even one traitor among the thousands of innocent refugees could not be tolerated. The camps they were taken to were not in fact concentration camps, the Tommies who guarded them were no Storm Troopers, but the bewilderment and anguish, particularly among older refugees, was appalling. Leon [another character in Ibbotson's book] happened to be at home when two policemen came for his father. He lied about his age... and was taken to an internment camp consisting of a large number of seaside boarding houses on the Isle of Man.
The views of the landladies evicted from their villas – from Bay View and Sunnydene and Resthaven – are not recorded. Forced to leave behind their garden gnomes, their monkey puzzles and brass plates offering Bed and Breakfast, they were replaced by rolls of barbed wire, observation towers and iron gates. Facing the sea but unable to reach it, cut off from all news of the outside world, the inmates wandered about, guarded by soldiers with fixed bayonets, trying to understand the nightmare that had enveloped them. Housed in villas stripped of everything except camp beds and a few cooking utensils, the men assembled each morning for roll call and the rations which they had no idea how to cook. And each day more confused ‘enemy aliens’ arrived – Nobel Laureates, old men with diabetes, social democrats who had been tortured in the prisons of the Reich and had come to Britain as to Mecca or Shangri La.
Although it was obvious to even the thickest British Tommy that Hitler, if he had been relying on these men for spies, would have little hope of winning the war, the net which produced such a strange catch did just occasionally dredge up a genuine Nazi. When this happened, the results were unfortunate. Immolated in boarding houses with at least a dozen Jews whose suffering at the hands of the Nazis had been unspeakable, a man polishing his boots and saying that Hitler would soon overrun Britain did not have a happy life. He was refused his rations, ostracised, the blankets stolen from his bed. Most of them capitulated and learnt to hold their tongues, but one of them, a handsome blond young man called Erich Unterhausen, continued each morning to polish his boots, give the Nazi salute and say, ‘Heil Hitler!’ At least he did until a rainy morning in late July when he flew suddenly out of the first-floor window of Mon Repos, bounced off a privet bush, and landed on a flower bed planted with crimson salvias and purple aubretia. He was not hurt, only bruised, which was a pity, but the news, spreading quickly through the camp, was regarded by the inmates as the first glimmer of light since the fall of France. Needless to say, the perpetrator of this brutality was immediately marched off to the camp commandant in his office, where he admitted his guilt and was entirely unrepentant. ‘If you don’t get rid of people like Unterhausen you’ll have a murder on your hands,' he said, confusing the commandant with his flawless English. ‘Rounding up accredited Nazis with these people is madness. You know perfectly well who the real Nazis are in this camp – I’ve only been here a day but I can tell you: Schweger in Sunnydene, Pischinger in that place with the blue pottery cat – and the chap I threw out of the window. He’s the only one who could possibly be a spy, and the sooner he’s in a proper prison the better – anyone worth their salt could signal from here. As for Schweger, he’s in with some hotheads from the Jewish Freedom Movement and they’re starving him to death.’
Thank you for telling me my business,’ said the commandant, and was disconcerted by an entirely friendly smile from the tall, broad-shouldered man with the scar on his forehead. He looked down at the papers that had come with the prisoner. ‘You say you’re a Czech.’ ‘I don’t say I am; I am,’ said the prisoner unruffledly. ‘So what are you doing here? The Czechs are our allies.’ Marek was silent. The Czechs might be allies now, but before, at Munich, they had been betrayed. ‘Your name is German.’ ‘Yes. I came over in a fishing boat; we were strafed and capsized outside Dover. I got concussion. Apparently I spoke German to the dogs.’ ‘The dogs?’ ‘There was a whole compound of stray dogs which the Tommies had smuggled out of France when they were taken off at Dunkirk – you’ve never heard such a racket. They put my stretcher down beside a big black and tan pointer. My father’s hunting dogs were always trained in German and when I came round –’ He shook his head. ‘It doesn’t matter about me; they’ll sort it out. I’m quite glad to be out of the way till the Czechoslovak Air Force reassembles. But Unterhausen must go, and the other Nazis – and old Professor Cohen must go to hospital – the one who stands by the barbed wire and gets his beard caught. He’s very eminent and very ill – if he dies there’ll be questions asked. They’re being asked already in Parliament and elsewhere.’
Is there anything else you’d like to tell us?’ sneered the second in command, a brash young lieutenant, but the commandant frowned him down. A humane man, he knew full well that he was caught up in one of those administrative muddles that happens in war and can claim lives. It was to him that Marek spoke. ‘Most of the people in here understand what has happened – that there was bound to be confusion after the French surrendered, that we’ve got mixed up with the parachuting nuns and that it won’t go on for ever. But not all of them. There have been two suicides in one of the other camps, as you no doubt know. This whole business – interning the people who have most of all to fear from Hitler – is going to be a pretty discreditable episode in retrospect. What’s more, if Hitler does invade, you’ve made it nice and easy for him, corralling all the Jews and the anti-Nazis together so he doesn’t have to go looking.’ ‘... the internees (from whom all news of the outside world was forbidden) ... [saved] the newspapers that came wrapped round their ration of kippers... [to] keep in touch with the stock exchange.
Other familiar faces now appeared in the throng: the erstwhile flautist of the Berlin Philharmonic; a copying clerk from the office of Universal Editions; Marek’s old tailor from the Kärntnerstrasse . . . and all the time more people appeared, overjoyed by the news of Unterhausen’s fate. But Marek did not intend to waste too much time on swapping stories – . ‘There’s a piano locked in the basement of the Palm Court Hotel,’ he said. ‘We can have it. It’ll have to be moved into some kind of hall or shed – anything. We’re going to give a concert.’ ‘Of what?'‘There’s only one answer to that, don’t you think?’ ‘Johann Sebastian Bach,’ said the flautist. Marek nodded. ‘Exactly so.’ For a moment he raised his eyes to heaven, seeking guidance not so much from God (whose musicality was not well documented) as from his erstwhile representative on earth, the Kapellmeister of Leipzig.
I have been musing why my sympathy and emotions are so strongly stirred by such injustice - after all, I have had a comfortable life in entirely British surroundings give or take a splash of Quakerism and some marvellous friends as role models, but that is how it is and I shall continue to be drawn by underdog tales.
This has turned out to be a single subject blog, but the accompanyjng pictures are the usual mixture from daily life!
Sometimes there are carpets of poppies everywhere, this year fewer but this field right next to our car servicing garage kept catching my eye and I caught it just in time while Mary booked the car in for its service. This post will be a bit of a roundup of things I have posted on Facebook.
A while back I wrote about the plight of migrants and someone thought I might have been referring to our situation. Of course not - we are incrdibly lucky to have landed on our feet after Brexit thanks to a very fair-minded French government and bureaucracy. But I am ever more angry and concerned about people who have gone through unimaginable hardships to reach France and the UK, and then find in the UK at least that they are vilified and stranded. I have been reading the various writings of Sathnam Sanghera whose disssection of Britains imperial past is trenchant.
His autobiographical The boy with the topknot is among other things a powerful reflection on mental illness in his family; our own experienceshave echos here, and among other things his description of the slow realisation that things are wrong, attempting to rationalise the painful, is something we have known. I have been fascinated also to see a bit from the inside the experiences of Sikh immigrants to Britain and their cultural context, including marriage exepctations and the complex place of women in his stories. His novel Marriage material is an excellent read.
Before I pass on to lighter topics, the ongoing inhumaanity of the various refugee themes in the news is not the only awful and distressing thing we hear of and read about daily - the plight of British subpost-people wrongly prosecuted by the Post Office because of long-denied computer problems, the infected blood scandal or the plight of carers forced to pay back benefit overpayments (this links closely to my lontime work with carers through Crossroads) and the ongoing inhumanity around post-war immigrants (from the Windrush etc.) are only somr examples of things which should havce been sorted out long ago but have been swept under bureauratic carpets again and again. I have often said that Dickens and his Circumlocution Office (in Little Dorrit) seem still alive and well. Apart from deliberate inhumanity, there are plenty of ways of mistreating people through shoulder-shrugging neglect - Dickens' "nobody knew" is classic now as then.
Our houshold chugs on, looking forward to a family visit here in a fortnight. We are daily grateful for Edmond's liveliness at the age of 15! After a thorough overhaulof the roof, more complex than we had expected, our friendly factotum M.Beaumann has continued his care of our premises with a splendid cleanup of yard and terrace and is now starting on a new front fence. IN the caourse of this he has discovered some very ancient (well, as old as the house, around 50 years) mains electrical wiring which is still all too live. A better casing and leaving well alone are the answers. And our lawnmower is finally going to be cordless!
Lots of my Facebook posts are links to photos published daily in the Guardian, plus th odd cartoon that takes my fancy. Also photos from French places we know well - the area around the Pic Saint Loup, other parts of our local Languedoc, and the Drôme where our old twin town Die is located, for example.
A night shot of the Pic Saint Loup with boar passing by by an excellent local photographer, Régis Domergue
Although we have limited opportunity to watch sport on tv (Mary andn I are both gravitating more to radio and podcasts these days - for her it makes knitting easier!) we follow football and cycling keenly at least by results and reports, and I am fascinated to see that Liverpool have appointed another monosyllabic manager, Mr Slot (Arne), to replace the excellent Klopp (Jürgen).
Our language groups (reading and speaking in French with some French people trying their English) continue twice a week, with often excellent shared lunches thrown in - as the weather warms up we can start to eat outside.
We read a lot - among authors we both enjoy are Eva Ibbotson, whose romantic novels with strong links to her Austrian background are beautifully written and full of well-observed characters; and an old favourite, Sara Paretsky whose V.I.Warshawski novels set in Chicago and around. Sara Paretsky is an avid campaigner for women, and her fearless public profile is simply admirable.
Sagas have been on my mind in several ways since Easter. But first, exciting times in the tortoise world. We were given a new (to us) young one a few weeks ago, and he had been living in a cage inside until the weather warmed. It has now done so and today the larger tortoise emerged from its hibernation in the enclosure in the garden. I thought its was a lump of mud at first bat, as you can see, it has scrubbed up nicely and the younger one has joined it in the paddock!
The first saga has been of the literary kind, the Forsytes which have occupied our dvd viewing and my re-reading for the first part of the year. My name, Jon, was chosen by my dad (who was emotionally attached to the books) because of the young man Jon, the youngest Jolyon of the family. I think my father was rather muddled because he also professed an admiration for the 'man of property' epitomised by Soames who was on the 'other side' of the family. Never mind, the story was worth reading again, and the two tv productions are both good in theier different ways. But the third part of the 9 volumes, going up almost to Galsworthy's death in the early 1930s, were never dramatised as far as I know and I like them even better than the Victorian and Edwardian ones - a much more nuanced examination of love and marriage, with a dramatic view of mental illness thrown in.
Two less welcome 'sagas' lately have been to do with roof and health, both happily resolved. You'll recall perhaps that the roof was repaired last year by a firm which promised excellence and, as we thought, delivered it. It turned out that what they did not do was the issue - first neglecting to tell us of very old insulation which we've now had replaced, and secondly failing to fix any but the end tile in a whole ridge. Of course we could have no idea that there were problems - in the second case the rattling of tiles in the wind (after a long period of fairly calm weather) told us sometehing was amiss; and luckily our regular house and garden person Monsieur Beaumann was able to sort both. It turns out that he has long been a roof specialist - if only we had known...
Our conversation groups still active, with new arrivals from Chicago
The health saga is not, for once, my various aches and pains but the long-running one of Mary's heart and blood (since a minor stroke in 2010), very well surveyed but needing careful supervision. Not for the first time we have been glad of the very local A&E hospital, all built since we came here. In the past week the care has involved feeet up and suppport stockings which are too hot for comfort when the weather warms up.
The warm srping is a lovely time for flowers, so here are a few more from our garden.
And finally a word of praise for one of the few bits of the British administration that actually seems to work. With luck and a following wind my new passport should arrive soon, and like Mary's it was efficiently and quickly dealt with despite Brexit horror stories elsewhere.
I have written before about the dry conditions here. But when it rains it really does. Last week we had 60 mm in a few hours, and another 40 at the weekend, but this morning we are back to bright sunshine and blue skies. The photo above was taken a few days ago, a pink evening sky which we see quite often.
We have been a bit concerned about Edmond, 14 years old and with dodgy kidneys. But we've just returned from the vet, and all seems to be fairly well after a blood test and with a bit more diuretic - desmite occasional wheezes, he is lively and has put on a bit of weight. We hope he will be with us for a little whhile yet.
After our trips to the UK we have mostly stayed home and slotted back into our regular activities. These photos of our regular Tuesday French conversation group were taken by someone elsse for once, so I'm in one or two!
After a good excursion on DVD into the works of Mrs Gaskell we have passed onto John Galsworthy, not just through 2 tv series of the Forsyte Saga but, for me, rereading the books. I started on the paper versions but have passed over to the Kindle (lighter to hold in bed). The Forsytes have a particular association for me because I was called after Jon, son of young Jolyon F. My father pretended to admire the 'Man of Propeerty' characterised by Soames but much about Dad seems to me to have been nearer the softer, more emotional other side of the family, the Jolyons and their ilk. Rereading for the 4th or 5th time I find much in the detail of the written version which can only be hinted at in a tv adaptation, and in the end it is the characters of Soames and his daughter Fleur which dominate the first 6 of the 9 books in the saga. Of the final 3, which are far less well-known, I may write more anon.
Since we returned from the UK for the second time this year, we had one very enjoyable outing to see our friend Barry who lives in these rural surroundings in the area called the Laurargais south-east of Toulouse. Barry is South African in origin but had long re-acclimatised to England where I met him in the Canonbury Chamber Choir in the 1970s. He and his partner Peter (now sadly no longer alive) moved to France with their interest in antiques, and the house is a living reminder of those interests.
A few garden pittures to end with. Spring is with us, and the clocks go forward this weekend.
It is lovely to be back in the bright, light Languedoc. Don't get me wrong, we had a very good trip (apart from the first few hours when the motorways here were closed by prefectoral decree, because of farmers' protests - 5 hours to get near Lyon then a speeding fine for going 8 km/hr too fast in our relief at escaping the jams). We spent excellent days with our family, saw interesting things and ate and drank well. Our return trip, despite threats of farmers' blockages) was calm and trouble-free. We have established a simple, untiring driving routine, turn and turn about at the wheel with short breaks for fuel and snacks, and the hotels we used were convenient and reasonably comfortable.
But on return our wifi was (literally) on the blink, and we waited 3 days for the engineer to arrive. The new world of telephones, internet, tv and radio has changed everyting. Like most people, a few years ago we had a fixed telephone line through which an adequate internet connection could be made. Then fibre arrived, and everything became much faster. Above all, the internet require more and more capacity to keeep up with graphics and so on. Now, everything comes in theory through the fibre-optic cable, much faster - if it works. If not, there is no longer a fixed phone line, no internet and only the old tv signals via the aerial (if they work at all - I have not checked). The tv satellite dish no longer works for British tv. I am a sad old geezer who has not taken on board the brave new world of mobile phones which our children and theirs swear by. For one thing the screens are too small - I love my iPad and computer whhich my old eyes can read. And of course, we pay for the service we are not getting.
Goodbye to Jeff and Fi at the end of a marvellous week together
Since I started to write this a very helpful man arrived, fixed up our internet and left before we had a chance to make sure our phone line was working. It was not and is not. So now we decide whether to abandon our 'landline' phones and tell everyone to call on our mobiles, or try to get things straight for the time being it's the mobiles or nowt. Watch this space, as they say. Above all, do not phone 04 67 85 52 12 - you may leave a message which is never heard.
Until we arrived home, the only shock of our return trip was seeing the appalling mess strewn across the roundabout as we left the A9 here for the main N113 road. At the risk of being a serial moaner, I was shocked by the piles of rubbish left behind by the protestors. I think we have always been in favour of fair prices for farmers - we enjoy good food and have the privilege to be able to pay for it. So I support the agriculteurs in their demands for better conditions, and for proper rewards for local produce rather than cheap imports. we love our local greengrocer who knows his local growers personally and guarantees freshness. I just cannot understand why protestors should not clear up their mess. We saw the final traces being bulldozed and shovelled away as we drove around yeterday, presumably a week or more since the first demos. A lot of work for people not at all involved in the original protests.
Anyway, this blog was among other things a way of sharing the odd notes I post on Facebook most days with you who do not use that dodgy medium. Here are a few recent ones. Letter
to the Guardian: “I am grateful to His Maj for his encouragement
to men to have the check (King Charles ‘doing well’ after prostate
treatment, 26 January). I visited my GP and was examined, blood-tested
and referred to my local NHS hospital in March 2022. I have now waited
22 months for an appointment. And waited etc. Of what exactly is he an
example? (John Dinning, Cardiff)”
Another letter
to the Guardian: ”Your article on a reproduction of the
Bayeux tapestry (29 January) should have mentioned the copy in Reading
Museum, sewn by 35 women from Leek in the 19th century. It’s beautifully
exhibited in the lovely town hall, with free entry. (Plus older
Londoners can travel there on their Freedom Pass on the Elizabeth line.)
A great day out. (Rosie Boughton, London)”
And part
of yet another letter to the Guardian, which rings strong bells: “…the
huge issue for me, and many other drivers according to recent RAC
research, is the dangerous dazzling effect of higher, brighter LED
lights. I am an older driver, and acknowledge this is likely to impact
on my night driving, but my optician has assured me that it’s not me,
it’s the cars. I find night-time driving, if there is a lot of oncoming
traffic, utterly terrifying, and feel trapped at home on winter
evenings. It’s time for a close analysis of accidents attributed to
dazzle, and legislation to ensure the safest possible headlight design
and position. (Sheila Hutchins,Tregony, Cornwall)”
This on my mind very often: the
face of local decline and fall. “Many councils are barely able to carry
out their statutory and growing responsibilities in adult and child
social care, let alone engage in the kind of “discretionary” spending
that enhances the life of their communities. Last week, facing a
rebellion by Conservative MPs fearful of further cuts in an election
year, Mr Gove made an extra £600m available to local authorities. Useful
but nowhere near enough.” The sign of timid, scared central government is to keep ever tighter central control over local spending.
Then, Jurgen Klopp is retiring as Liverpool manager - what a loss, but we all get older - he certainly deserves the rest of his life. And Nottingham is among many local councils nearing bankruptcy - how can this be alowed to happen?
We are in the UK for the second time since Christmas, this time visiting
Jeff and Fi in their new home in Uttoxeter. Like the first trip to Sam
and Sas in Wirksworth, over new year, we are driving which has all
sorts of advantages. However, this time things are complicated by the
French farmers' protests.
We set out from Lunel at 7.30 a.m. last Wednesday, but what should have
been a quick 2-3 hours' journey to Lyon turned into 9 hours, and we
eventually arived at our hotel in Cambrai around 9.30 in the evening
(original plan, before 5 and in daylight - we are frequently caught
driving after dark however much we try to plan to avoid it).
Most
of the motorway closures were officially organised by the Préfectures,
so we drove most of the way south of Lyon on routes nationales,
interesting but much slower. After that we just trundled on fairly
empty motorways, but continuing on Thursday we were held up again by
closures even on the short stretch to Calais and the tunnel. But there
was no major holdup and we arrived at our friends Elizabeth & Nigel
in good time, well tucked away in rural Surrey.
Despite the
tedium of the Wednesday morning journey we were glad to get a different
perspective and view of the northern Rhône vineyards around Crozes
Hermitage whhich we have known for many years on occasional visits.
Later on the town of Cambrai seemed interesting, with a splendid
redbrick railway station just opposite our hotel - we resolved to exlor
in the future when less pressed by travel unknowns. And the hotel
itself was, as we found out on our earlier visit, very comfortable and
friendly, with an excellent and welcome range of bar snacks to make up
for the lack of a full meal.
We have gravitated towards the Logis
de France chain over many years because it always welcomes pets, and
although we left our current dog Edmond in kennels on these trips the
familiar ambience still attracts us.
The farmers' protests look likely to continue, and we don't know if
we'll be delayed on the way home next weekend. But luckily we have
plenty of time.
Our
first day was delayed by official motorway closures, but more often the
hold-ups are caused by long slow queues of tractors, one of which we
saw heading south as we set out for Calais on Thursday. Shortly after
that the authorities closed the A26 motorway for a short stretch, but we
had a short journey and good alternative routes to the Tunnel. So
after out overnight with friends on Thursday we drove at a leisurely
pace to our home for the week in Uttoxeter, where we are very
comfortably housed by Jeff and Fi who find a bit of time for us despite
their busy working lives. We saw Sam, Sas and Ben for lunch on Sunday
and shall see other friends and visit Wirksworth again before we leave
for home at the end of the week.
We are in the UK for the second time since Christmas, this time visiting Jeff and Fi in their new home in Uttoxeter. Like the first trip to Sam and Sas in Wirksworth, over new year, we are driving which has all sorts of advantages. However, this time things are complicated by the French farmers' protests.
We set out from Lunel at 7.30 a.m. last Wednesday, but what should have been a quick 2-3 hours' journey to Lyon turned into 9 hours, and we eventually arived at our hotel in Cambrai around 9.30 in the evening (original plan, before 5 and in daylight - we are frequently caught driving after dark however much we try to plan to avoid it).
Most of the motorway closures were officially organised by the Préfectures, so we drove most of the way south of Lyon on routes nationales, interesting but much slower. After that we just trundled on fairly empty motorways, but continuing on Thursday we were held up again by closures even on the short stretch to Calais and the tunnel. But there was no major holdup and we arrived at our friends Elizabeth & Nigel in good time, well tucked away in rural Surrey.
Despite the tedium of the Wednesday morning journey we were glad to get a different perspective and view of the northern Rhône vineyards around Crozes Hermitage whhich we have known for many years on occasional visits. Later on the town of Cambrai seemed interesting, with a splendid redbrick railway station just opposite our hotel - we resolved to exlor in the future when less pressed by travel unknowns. And the hotel itself was, as we found out on our earlier visit, very comfortable and friendly, with an excellent and welcome range of bar snacks to make up for the lack of a full meal.
We have gravitated towards the Logis de France chain over many years because it always welcomes pets, and although we left our current dog Edmond in kennels on these trips the familiar ambience still attracts us.
The farmers' protests look likely to continue, and we don't know if we'll be delayed on the way home next weekend. But luckily we have plenty of time.
Our first day was delayed by official motorway closures, but more often the hold-ups are caused by long slow queues of tractors, one of which we saw heading south as we set out for Calais on Thursday. Shortly after that the authorities closed the A26 motorway for a short stretch, but we had a short journey and good alternative routes to the Tunnel. So after out overnight with friends on Thursday we drove at a leisurely pace to our home for the week in Uttoxeter, where we are very comfortably housed by Jeff and Fi who find a bit of time for us despite their busy working lives. We saw Sam, Sas and Ben for lunch on Sunday and shall see other friends and visit Wirksworth again before we leave for home at the end of the week.
Some of my friends are not really interested in wine and tend to skip these blog posts. So before you do that this time I will just add a note about the fascination for me apart from the stuff in the bottle or glass. As you can see from the photos, scenery is one of the many attractions.
Châtillon-en-Diois
Wine exploration has shaped our visits to France ever since we started regular trips here 30 years ago. If you look at the map of France, relatively small physical areas are taken up by vineyards, and you are much more likely to find yourself in logging forests or endless of cereals and grass, like the open horizons and rolling slopes of the northern plain we drove through on our way to England at the end of last year.
Beaujolais
But we hunt out the vineyards not just for nice wine but for the interesting people and scenery we discover, get to know and love. I think of the beautiful villages just near us in Lunel or north of Montpellier around the Pic Saint Loup; or of the vineyards of the Entre Deux Mers area south of Bordeaux - the two 'seas' here are the rivers Garonne and Dordogne as the flow northwards to join together as the Gironde at Bordeaux; or of the cossetted iconic hilly country of Beaujolais and the Côte d'Or in Burgundy and the breathtaking rocky beauty of the Rhône valley, whether near the great river at Condrieu and Crozes Hermitage just south of Lyon or, one of our favourite places, Beaumes de Venise tucked under the Dentelles de Montmirail, once best known for its fortified sweet muscat wines but now among the best red wine labels.
While I always liked wine, it was meeting people who were and are involved in making it that has captured our attention. Jean-Michel and Christine Jacob have just retired from their Hauts Côtes de Beaune vineyard and J-M will doubtless now have more time for his beautiful art/sculpture, two pieces of which adorn our hallway. Jean-Philippe Servières, our best local winemaker near Lunel, would probably like to retire, having had precious little chance of a holiday over the past 20 years; and Benoit Viot of the wonderfully-named Chemin des Rêves north of Montpellier has gone from small beginnings - we bought our first wines sitting in the kitchen in Grabels - to becoming president of the prestigious appellation Pic Saint Loup.
We have got to know many other landscapes in the Languedoc, Rhône valley, the Diois (where twinning opened our interest in the Rhône Valley and beyond), or the wide variety of landscapes we have explored across the south - the wild hillls of the Corbières, coastal étangs around the Mediterranean where Picpoul de Pinet is produced, or tiny appellations with unusual grapes like Fronton north of Toulouse. We discovered Seyssel in the far north of the Rhone valley towards Geneva thanks to musician friend and mentor Stéphane Fauth (and his wife Chantal whose cooking helped to 'oil' the many music courses we shared). And we have started to discover the Loire Valley, one of the longest river courses in France which always confused me because the river flows north a long way, just a short distance from the south-flowing Saone and Rhône, before turning left and west at Orleans towards the Atlantic; we got to know various bits of the river - Sancerre, the Touraine, a stretch towards Angers, on various drives south from different channel ports and thanks to good friends Sue and Ian who have a house south of Tours.
Our all-too-brief stay with Sam and family is over halfway through as I write - lovely and we shall miss them but the weather began - let's say - sub-optimal (grey and wet, though not cold). But new year's day dawned with blue sky and sunshine.
Before we left home we indulged in Dickens DVDs, 2 sets of Little Dorritt, one excellent, the older dismal (I once liked this version...), and then a surprisingly good Martin Chuzzlewit (Tom Wilkinson who played an excellent Pecksniff has just died). The casts of all three are mostly outstanding, but the earlier Little Dorritt despite iconic actors like Alec Guinness and Derek Jacobi seemed wooden and stilted. Not helped by a weird 2-part presentation which separated Amy's view from Arthur Clennam's. Claire Foy's heroine is heaps better than Sarah Pickering, who seems to have done nothing else in film - Dickens writes a low-key character but not that low key.
I was encouraged by an Eng Lit friend to read most of Dickens on train journeys commuting to London, and still love the books - Mary came to them after she met me, and I remember buying a job-lot on £1 paperback classics to round out our library. Thinking over the whole series, the theme of financial insecurity and ruin, together with the vital importance of inheritance, is a strong common thread. Dickens' father was in debt and spent months in the Marshalsea, so CD knew of what he wrote. Few punches pulled either - the suicide of Merdle with a penknife in Little Dorritt is memorable in book and on film. But other books like Great Expectations - the title gives the game away - Bleak House with its fog of law-courts, A Christmas Carol of course (we have just seen a DVD with the splendid Michael Hordern hamming it up), Our mutual friend with its heaps of valuable dust, all have money and greed at their centres.
In between whiles I have caught up with Ken Follett's latest Kingsbridge novel, this one skipping centuries forward to the Napoleonic era, and yet another fictional rerunning of the battle of Waterloo. The moments where a character tells another rather artificially the name of such and such a farmhouse or Quatrre Bras crossroads does jar slightly, but Follett like Bernard Cornwell has done his research, and Follett is respected enough to write about cathedral construction in the rebuilding of Notre Dame Paris just as Cornwell has written a decent factual account of Waterloo alongside the romantic version. In my more idiotic moments I wonder how Sharpe, and a Follett hero, acting as adcs to Wellington might have bumped into one another!
We are having a great, relaxed family time here, and trying to live day by day before we drive back. Having heard some of the awful horrors and knife-edge adventures of Sam & Sas's family holiday (they did ultimately have a good time with close friends) across the world we feel glad to have chosen more local, staid journeys, and in our own car. It does of course strike us that the distances and complexities of air travel are inevitable when people fall in love with others from New Zealand or have great friends in the USA. These things tend to conflict with environmental considerations. But good plans tend to involve meeting family and friends in France, in spacious well-equipped gîtes as we did with Judi last summer. Sam and I have been discussing areas of France to meet in, and in any case we plan to visit friends in Normandy in the summer.
This is to wish all our friends and family a hapy and healthy 2024.