Tennis – Australian Open 2025 – Lorenzo Sonego : “Ben Shelton has changed a lot in these two years”

Lorenzo Sonego s’est battu jusqu’au bout dans cet Open d’Australie. Surprenant quart de finaliste, l’Italien a été vaillant contre Ben Shelton mais n’a pas pu empêcher l’Américain de triompher, 6-4, 7-5, 6-4, 7-6(4). Offensif, Sonego a claqué 63 coups gagnants et est monté 90 fois au filet. Un panache qui n’a pas suffi mais qui est à saluer. De plus, avant ce tournoi, le 55e mondial n’avait atteint qu’une seule fois le troisième tour d’un tournoi du Grand Chelem sur dur. La performance reste donc très satisfaisante.

Please join us (in French/ en français) for the Moodle Academy webinar ‘La gestion des rôles dans Moodle’ on 5 February, 13:00 UTC

Please join us (in French/ en français) for the Moodle Academy webinar ‘La gestion des rôles dans Moodle’ on 5 February, 13:00 UTC
by Sandra Matz.  

We invite you to join us for our next Moodle Academy webinar, which is free to attend. Please note: This webinar will be in French.

Webinaire: La gestion des rôles dans Moodle
5 février, 13:00-14:00 UTC
Inscrivez-vous!

Les rôles de Moodle sont une des clefs de la flexibilité de son utilisation. Cependant, la gestion de ces rôles est complexe et assez difficile d’accès. Ce webinaire, destiné avant tout aux administrateurs et administratrices de Moodle, mais aussi à toute personne curieuse du fonctionnement interne de Moodle, se donne comme objectif d’améliorer la compréhension de l’architecture des rôles de Moodle et, à l’aide d’exemples, de trucs et d’astuces, de rendre plus digeste l’administration de ces rôles. Des bonnes pratiques de gestion des rôles dans Moodle seront également présentées.

Ce webinaire fait partie du cours ‘Moodle Academy webinars‘. Il faut vous inscrire au cours pour participer au webinaire.

Inscrivez-vous à Moodle Academy!

Webinaire 'La gestion des rôles dans Moodle', 5 février, 13:00-14:00 UTC. Inscrivez-vous à Moodle Academy.

Dries Buytaert: I gave an AI agent edit access to my website

Dries Buytaert: I gave an AI agent edit access to my website
Dries Buytaert: I gave an AI agent edit access to my website

I’m often asked, Will AI agents replace digital marketers and site builders?. The answer is yes, at least for certain kinds of tasks.

To explore this idea, I prototyped two AI agents to automate marketing tasks on my personal website. They update meta descriptions to improve SEO and optimize tags to improve content discovery.

Watching the AI agents in action is incredible. In the video below, you’ll see them effortlessly navigate my Drupal site — logging in, finding posts, and editing content. It’s a glimpse into how AI could transform the role of digital marketers.

The experiment

I built two AI agents to help optimize my blog posts. Here is how they work together:

  • Agent 1: Content analysis: This agent finds a blog post, reviews its content, and suggests improved summaries and tags to enhance SEO and increase discoverability.
  • Agent 2: Applying updates: After manual approval, this agent logs into the site and updates the summary and tags suggested by the first agent.

All of this could be done in one step, or with a single agent, but keeping a ‘human-in-the-loop’ is good for quality assurance.

This was achieved with just 120 lines of Python code and a few hours of trial and error. As the video demonstrates, the code is approachable for developers with basic programming skills.

The secret ingredient is the browser_use framework, which acts as a bridge between various LLMs and Playwright, a framework for browser automation and testing.

The magic and the reality check

What makes this exciting is the agent’s ability to problem-solve. It’s almost human-like.

Watching the AI agents operate my site, I noticed they often face the same UX challenges as humans. It likely means that the more we simplify a CMS like Drupal for human users, the more accessible it becomes for AI agents. I find this link between human and AI usability both striking and thought-provoking.

In the first part of the video, the agent was tasked with finding my DrupalCon Lille 2023 keynote. When scrolling through the blog section failed, it adapted by using Google search instead.

In the second part of the video, it navigated Drupal’s more complex UI elements, like auto-complete taxonomy fields, though it required one trial-and-error attempt.

The results are incredible, but not flawless. I ran the agents multiple times, and while they performed well most of the time, they aren’t reliable enough for production use. However, this field is evolving quickly, and agents like this could become highly reliable within a year or two.

Native agents versus explorer agents

In my mind, agents can be categorized as “explorer agents” or “native agents”. I haven’t seen these terms used before, so here is how I define them:

  • Explorer agents: These agents operate across multiple websites. For example, an agent might use Google to search for a product, compare prices on different sites, and order the cheapest option.
  • Native agents: These agents work within a specific site, directly integrating with the CMS to leverage its APIs and built-in features.

The browser_use framework, in my view, is best suited for explorer agents. While it can be applied to a single website, as shown in my demo, it’s not the most efficient approach.

Native agents that directly interact with the CMS’s APIs should be more effective. Rather than imitating human behavior to “search” for content, the agent could retrieve it directly through a single API call. It could then programmatically propose changes within a CMS-supported content editing workflow, complete with role-based permissions and moderation states

I can also imagine a future where native agents and explorer agents work together (hybrid agents), combining the strengths of both approaches to unlock even greater opportunities.

Next steps

A next step for me is to build a similar solution using Drupal’s AI agent capabilities. Drupal’s native AI agents should make finding and updating content more efficiently.

Of course, other digital marketing use cases might benefit from explorer agents. I’d be happy to explore these possibilities as well. Let me know if you have ideas.

Conclusions

Building an AI assistant to handle digital marketing tasks is no longer science fiction. It’s clear that, soon, AI agents will be working alongside digital marketers and site builders.

These tools are advancing rapidly and are surprisingly easy to create, even though they’re not yet perfect. Their potential disruption is both exciting and hard to fully understand.

As Drupal, we need to stay ahead by asking questions like: are we fully imagining the disruption AI could bring? The future is ours to shape, but we need to rise to the challenge.

JRuby 9.4.10.0 Released

The JRuby community is pleased to announce the release of JRuby 9.4.10.0.

JRuby 9.4.x targets Ruby 3.1 compatibility.

Thank you to our contributors this release, you help keep JRuby moving forward!

Ruby Compatibility

  • Fixed a NegativeArraySizeException crash parsing heredocs. #8355, #8557
  • Users can now opt into Ruby 3.3 behavior for NoMethodError and NameError that no longer inspects the target object. This inspect frequently led to memory issues. Specify JRuby flag -XnameError.inspect.object=false or JVM property jruby.nameError.inspect.object=false to disable the inspect call. #216, #8384, #8538
  • Implemented the missing Process.argv0 method, used by recent Bundler releases. #8568, #8570

Standard Library

  • The jar-dependencies gem, responsible for fetching jar file dependencies of Ruby gems, can now be updated independently of JRuby. #7262, #8488, #8502
  • An upcoming release of jar-dependencies, will fix issues sourcing jar dependencies in container deployments (partially fixed previously by an updated ruby-maven-libs gem). #7059, #8366
  • The psych gem is updated to version 5.2.3, including a fix for YAML aliases from SnakeYAML-Engine version 2.9. #8352, #8575
  • The reline gem is updated to 0.5.12. #8481

Java Integration

  • Only JVM classes imported from the same classloader hierarchy as JRuby will be bound to constants in JRuby’s package hierarchy. #8156
  • Implementing a Java interface no longer leads to constant redefinition warnings. #8349, #8503
  • Precompiled Ruby scripts now properly prepare optimized homogeneous case/when statements. Previously they would deserialize incorrectly and garble the branches. #8421, #8424

Performance and Usability

  • Additional runtime data structures are eagerly cleared when tearing down a JRuby runtime, aiding GC. #8343, #8566
  • The JRuby shell-based launcher script now properly handles JRuby installed in a path with spaces. #8441, #8442
  • The Class#subclasses method has been optimized to eliminate it as a bottleneck in complex ActiveRecord STI queries. #8457, #8462
  • Integer multiplication operations that overflow outside of int64 range have been optimized to eliminate heavy exception raises. #8516, #8523

Issues and PRs resolved for 9.4.10.0