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.
Public domain day and award ceremony Wiki Loves Heritage Did you know that all creations no longer subject to exclusive intellectual property rights are part…
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.
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
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
Hi, I’m Tapan. As the leader of Firefox’s Search and AI efforts, my mission is to help users find what they are looking for on the web and stay focused on what truly matters. Outside of work, I indulge my geek side by building giant Star Wars Lego sets and sharing weekly leadership insights through […]
GNU Parallel – For people who live life in the parallel lane.
If you like GNU Parallel record a video testimonial: Say who you are, what you use GNU Parallel for, how it helps you, and what you like most about it. Include a command that uses GNU Parallel if you feel like it.
About GNU Parallel
GNU Parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU Parallel can then split the input and pipe it into commands in parallel.
If you use xargs and tee today you will find GNU Parallel very easy to use as GNU Parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU Parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel. GNU Parallel can even replace nested loops.
GNU Parallel makes sure output from the commands is the same output as you would get had you run the commands sequentially. This makes it possible to use output from GNU Parallel as input for other programs.
For example you can run this to convert all jpeg files into png and gif files and have a progress bar:
GNU sql aims to give a simple, unified interface for accessing databases through all the different databases’ command line clients. So far the focus has been on giving a common way to specify login information (protocol, username, password, hostname, and port number), size (database and table size), and running queries.
The database is addressed using a DBURL. If commands are left out you will get that database’s interactive shell.
When using GNU SQL for a publication please cite:
O. Tange (2011): GNU SQL – A Command Line Tool for Accessing Different Databases Using DBURLs, ;login: The USENIX Magazine, April 2011:29-32.
About GNU Niceload
GNU niceload slows down a program when the computer load average (or other system activity) is above a certain limit. When the limit is reached the program will be suspended for some time. If the limit is a soft limit the program will be allowed to run for short amounts of time before being suspended again. If the limit is a hard limit the program will only be allowed to run when the system is below the limit.
A MERN Stack Development course typically covers the following key topics and concepts:
1. Introduction to MERN Stack MERN stands for MongoDB,React, and Node.js. Technology and how they work together to build modern web applications. Setting up the development environment for a MERN stack project. 2. MongoDB Introduction to NoSQL databases and why MongoDB is used. Understanding collections, documents, and how data is stored in MongoDB. CRUD operations (Create, Read, Update, Delete) in MongoDB. Using MongoDB Atlas for cloud databases. Integrating MongoDB with Node.js applications using Mongoose. 3. Node.js and Express.js Node.js: Introduction to JavaScript runtime environment for building server-side applications. Express.js: A lightweight web framework for Node.js to handle HTTP requests, routing, and middleware. Building a RESTful API with Node.js and Express. Handling HTTP methods like GET, POST, PUT, DELETE. Using middleware for authentication, error handling, and validation. 4. React.js Introduction to React: A JavaScript library for building user interfaces. Understanding React components, JSX, props, and state. Building functional components and class components. Component lifecycle methods. Managing state using React hooks (useState, useEffect, etc.). Routing in React with React Router. Fetching data from the backend (API calls). Managing global state using Redux or Context API (optional depending on the course). 5. Building the Full-Stack Application Setting up the frontend (React) and backend (Node.js/Express) to work together. Building the client-server architecture and making requests from React to Express. Handling authentication using JWT (JSON Web Tokens) or OAuth. Connecting the backend with MongoDB for persistent data storage. Sending and receiving data between the client and server using RESTful API. 6. Advanced Topics Error handling and validation in Express. File uploading (e.g., images, documents). Security practices (e.g., CORS, Helmet for Express, and bcrypt for password hashing). Deployment of MERN apps (e.g., using Heroku, AWS, or DigitalOcean). Optimizing the application for performance and scalability. 7. Project Work Building a real-world application such as a task manager, e-commerce platform, blog, or social media app. Implementing features like user authentication, CRUD operations, and database interaction. Working with Git for version control and collaborating using GitHub. https://futureittechnology.com/
Esta semana, Cauê Campos fala sobre seu amadurecimento nas novelas, Aline e Vinicius se estranham com Edi e Raissa no BBB 25, e Ana Paula Siebert celebra o aniversário da mãe.
In Empires of the Undergrowth übernimmst du den Basenbau und die Strategie diverser Ameisen-Stämme. Führe deine Kolonie zum Erfolg und verteidige sie gegen Bedrohungen! Baue Nester, ersinne Taktiken und entwickle deine Ameisen.
Genre: Strategy Entwickler: Slug Disco Publisher: Hooded Horse, Slug Disco Veröffentlichung: 07.06.2024 Offizielle Seite: https://eotugame.com/
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.