iOS 17 und iPadOS 17: Immer mehr Nutzer scheuen das frühe Softwareupdate

heise online Newsticker - 6. Februar 2024 - 14:26

Nutzer von iPhones und iPads widerstehen immer häufiger den vom Gerät angezeigten Ermunterungen zur Softwareaktualisierung. Apple liefert jetzt aktuelle Zahlen.

FAQ: Digital Services Act

heise online Newsticker - 6. Februar 2024 - 13:48

Mitte Februar wird das EU-Plattformgesetz voll wirksam. Es bedeutet neue Vorschriften für digitalen Dienste und verschafft Verbrauchern mehr Rechte.

Preisgeld vergeben: Dank KI ganze Absätze in verkohlten Papyrusrollen entziffert

heise online Newsticker - 6. Februar 2024 - 13:44

Drei Studenten bekommen 700.000 US-Dollar für KI-Modelle, die verkohlte Papyrusrollen wieder lesbar gemacht haben. Die Erwartungen an die Technik sind riesig.

Linux-Distribution KaOS 2024.01 setzt auf Plasma-6-Desktop

heise online Newsticker - 6. Februar 2024 - 13:36

Die Linux-Distribution KaOS-2024.01 bringt bereits Plasma 6 als Desktop mit. Das Basissystem ist ebenfalls auf aktuellem Stand.

US-Regierung: Mit Visa-Beschränkungen gegen Spyware-Firmen und ihre Geldgeber

heise online Newsticker - 6. Februar 2024 - 13:08

Die US-Regierung will noch schärfer gegen Entwickler von Spyware vorgehen. Künftig könnte ihnen die Einreise verwehrt werden, kündigte der Außenminister an.

Tesla Grünheide: IG Metall will Betriebsratswahl verzögern

heise online Newsticker - 6. Februar 2024 - 13:01

Zum zweiten Mal soll im Teslawerk Grünheide ein Betriebsrat gewählt werden. Die IG Metall unterstützt die Wahl, will den angesetzten Termin aber verhindern.

heise-Angebot: c’t-Webinar-Reihe für Mediziner: Datenschutz in Arztpraxen

heise online Newsticker - 6. Februar 2024 - 13:00

In drei Webinaren erfahren Ärzte, Praxismitarbeiter und IT-Dienstleister, wie sie Risiken erkennen, sensible Daten schützen und Haftungsfälle sicher vermeiden.

Interop Initiative: Google fördert Rust Foundation mit einer Million US-Dollar

heise online Newsticker - 6. Februar 2024 - 12:55

Die Förderungssumme von Google soll die Rust Foundation dabei unterstützen, die Interoperabilität von Rust-Code mit C++-Code zu erhöhen.

Sicherheitslücken: Update schützt Server-Monitoringtool Nagios XI vor Attacken

heise online Newsticker - 6. Februar 2024 - 12:44

Unter bestimmten Bedingungen können Angreifer Schadcode auf Server mit Nagios XI laden. Ein Sicherheitsupdate schließt diese und weitere Schwachstellen.

Vision Pro: Besonderes Band für Entwickler – Probleme bei vergessener Geräte-PIN

heise online Newsticker - 6. Februar 2024 - 12:30

Apple liefert ein Geheimzubehör für Vision-Pro-Besitzer aus, die entwickeln wollen. Unterdessen mehren sich Berichte über ein PIN-Problem.

Deutsche Bahn testet Technik für besseren Mobilfunk im Zug

heise online Newsticker - 6. Februar 2024 - 12:15

Im Zug unterbrechungsfrei telefonieren, mit 5 Gbit/s online gehen – das testen nun die Bahn, Ericsson, Telefónica und Vantage Towers.

Rückruf: Bambu Lab A1 mit potentiellem Risiko von Kurzschlüssen und Fehldrucken

heise online Newsticker - 6. Februar 2024 - 11:59

Aufgrund vermehrter Berichte über Probleme mit dem Heizbettkabel ruft Bambu Lab seine A1-Drucker zurück. Der beliebte A1 Mini ist nicht betroffen.

Heads-on: Apple Vision Pro im ersten Test | TNBT-Podcast

heise online Newsticker - 6. Februar 2024 - 11:53

48 Stunden Vision Pro: Wir sprechen über unsere Erfahrungen mit dem Apple-Headset – was begeistert, was okay ist und was irritiert.

Specbee: Style Made Simple with Acquia Site Studio’s Style Guide Manager

Planet Drupal - 6. Februar 2024 - 9:41
Ever wished you could tweak your web page’s header font or switch up your CTA color, but skipped it to save your developer from the hassle? With Acquia Site Studio’s Style Guide Manager, you don’t have to! Non-technical content marketers now have the power to make styling tweaks to their Drupal site theme via an intuitive interface. Are you interested in learning more? Come on in! What is Site Studio Style Guide Manager Previously Acquia Cohesion, Site Studio is a composable, low-code digital experience tool by Acquia that enables users to build and assemble pages with less to no code. Check out our previously written article about how to build component-based websites on Drupal using Site Studio.   Style Guide Manager is an optional module that you can enable within Site Studio. It centralizes the design elements like colors, typography, and components in one place, making it easier to maintain a cohesive look and feel throughout your site. It provides a set of style guides that are theme-specific. You can create style guide(s) to manage Site Studio styles within your Drupal theme settings. You can even override your theme styles using the Style guides. Advantages: Change the appearance of your Drupal website based on the active theme. Apply global styles and change the appearance with a simple-to-use interface. Create design systems for multi-brand and multi-sites. Style guide manager has two interfaces: Style guide builder Style guide Style Guide Builder The Style Guide Builder is a tool within Acquia Site Studio that allows you to actively create and manage the Style Guide. It streamlines the process of updating and maintaining the design standards. Changes made here are automatically applied throughout the site. Style guide The output of a Style Guide Builder - a set of design guidelines, is the Style Guide. The Style Guide is a collection of design rules, standards, and components that define the visual appearance of your website. Creating a Style Guide First, make sure you have installed Acquia Site Studio.  Navigate to /admin/cohesion/style_guides  Click on Add Style guide Add the Title Click the + button below the Style Guide form to add the form fields. Add the fields such as Font picker, Color picker, etc. with the combination of form layout fields such as Group accordion, and Tabs as per your requirement. Give a meaningful name for the Field Label so it will generate a meaningful token. This is how your Style Guide creation page will look like: You can also see the preview below of your Style Guide form builder and how it looks on the theme settings. Click on Save and Continue Managing your Styles Now that you have successfully created a Style Guide, let's see where and how you can manage your styles. Navigate to your theme appearance settings (here mine is: /admin/appearance/settings/techx) Add your values such as fonts, colors, etc., and save the configuration. This is how your style guide will look like after successfully saving the configuration. Now, you need to use the Style Guide tokens in the styles to see your styles on the front end as per the Style Guide values. Tokens are predefined variables or placeholders representing design elements such as colors, typography, spacing, and other visual properties. This is not just restricted to styles, you can use these tokens throughout your Site Studio like templates, or components as per your requirements. For example: Make sure you enable the token variable mode and then add your tokens. Implementing the Style Guide With Site Studio’s Style Guide Manager, you can create multiple style guides as per your requirements. You can see all of them in your theme settings as shown below This is what my front end looks like. You can change the values in the Style Guide per your requirements and verify the page/site accordingly. Final Thoughts Site Guide Manager is a very useful tool for non-technical users like content editors and marketers to see all the styles in one place with an easy-to-use user interface and modify them according to their choice. All of this without depending on a developer.        Are you looking to build highly engaging, omnichannel, and result-driven solutions with Acquia and Drupal? We are Acquia partners and we know what it takes to get you there. Talk to us today to find out more.        

Web Wash: Getting Started with Webform in Drupal (2024)

Planet Drupal - 6. Februar 2024 - 3:00

Webform is a Drupal module that allows you to create forms directly in Drupal without using a 3rd party service.

It can be used to create basic “Contact Us” and complex application forms with custom field logic and integration.

In this getting started guide you’ll learn how to:

  1. Create a form
  2. Add elements to form
  3. Customize form with conditional logic
  4. Embed the form
  5. Send submissions to Google Sheets

This tutorial accompanies the video above.

Factorial.io: A weekend dedicated to Drupal CMS

Planet Drupal - 6. Februar 2024 - 2:00

For years, the last weekend in January has been a special one for the worldwide community behind the CMS system Drupal: The Global Contribution Weekend. Factorial has been a major contributor to the Drupal community for many years, so we hosted our own hybrid Global Contribution Weekend event.

DrupalEasy: DrupalEasy Podcast S16E4 - Kevin Quillen - Drupal 10 Development Cookbook

Planet Drupal - 5. Februar 2024 - 22:29

We talk with Kevin Quillen, author of Drupal 10 Development Cookbook, published in February, 2023 by Packt Publishing. 

URLs mentionedDrupalEasy News

Professional module development - 15 weeks, 90 hours, live, online course.  
Drupal Career Online - 12 weeks, 77 hours, live online, beginner-focused course.

Audio transcript 

We're using the machine-driven Amazon Transcribe service to provide an audio transcript of this episode.

Subscribe

Subscribe to our podcast on iTunes, Google Play, iHeart, Amazon, YouTube, or Spotify.

If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page.

Credits

Podcast edited by Amelia Anello.
 

DrupalEasy: Debugging all the things with Xdebug, DDEV, PhpStorm, PhpUnit

Planet Drupal - 5. Februar 2024 - 22:29

Over the past few years, we've published a couple of blog posts about setting up Xdebug for Drupal module development. But, like all things in tech, there's always more to learn as tools and technology evolve.

The setup

I was recently working with one of our Professional (Drupal) Module Development students trying to determine why she wasn't able to use Xdebug to debug a PhpUnit-based functional test. To be clear, the breakpoint wasn't set in the actual test class, the breakpoint was set in some custom module code that was called by the test class.

In functional tests, Guzzle is used by PhpUnit to make calls like:

$this->drupalGet('')

So, in a way, there isn't a direct PHP connection between test class and the code under test. It is in this circumstance that the breakpoint wasn't working.

Xdebug was working fine for this student to debug other aspects of the same project - it just wasn't hitting breakpoints during functional tests.

The solution

This was one of those instances that I had seen (and solved) previously, but to be honest, PhpStorm/Xdebug solutions have often involved numerous trips into the (extensive) PhpStorm settings area. By the time the problem is fixed, I was never 100% sure exactly which change I made had actually solved the problem. But, this time, I was more careful…

Obviously, Xdebug must be enabled in DDEV, and PhpStorm's almost-magical auto-configuration for Xdebug needs to have configured a new "Server" with proper path mappings (especially for the project root).

The PhpStorm configuration settings related to Xdebug that I now recommend are:

  • Set the "Max connections" value to 20 in the "PHP | Debug" configuration area (see image above).
  • Uncheck the “Force break at the first line when no path mapping is specified,” "Force break at first line when a script is outside the project" and "Ignore external connections through unregistered server configurations" checkboxes in the "PHP | Debug" configuration area (see image above.)
  • Set "Host" and "Name" in the "PHP | Servers" configuration are the same (and of the form name.ddev.site, where name is your site's DDEV machine name) (see image below.)
  • When running functional tests, PhpStorm may request to see up a new server connection in "PHP | Servers" with the name "localhost." Allow it and ensure the path mapping is correct.

With these settings, functional PhpUnit tests can be effectively debugged. 

PreviousNext: Automatic message scheduling and replacing hook_cron

Planet Drupal - 5. Februar 2024 - 21:43

Symfony Scheduler provides a viable replacement to hook_cron wherein messages can be scheduled for dispatch at a predefined interval. Messages are dispatched the moment they are scheduled, and there is no message duplication, making tasks more reliable and efficient.

by daniel.phin / 6 February 2024

This post is part 4 in a series about Symfony Messenger.

  1. Introducing Symfony Messenger integrations with Drupal
  2. Symfony Messenger’ message and message handlers, and comparison with @QueueWorker
  3. Real-time: Symfony Messenger’ Consume command and prioritised messages
  4. Automatic message scheduling and replacing hook_cron
  5. Adding real-time processing to QueueWorker plugins
  6. Making Symfony Mailer asynchronous: integration with Symfony Messenger
  7. Displaying notifications when Symfony Messenger messages are processed
  8. Future of Symfony Messenger in Drupal

With this, the sm worker provided by the SM project, the Symfony Messenger integration with Drupal, can be solely relied on. Rather than legacy runners such as Drupal web cron, request termination cron (automated_cron.module), Drush cron, and Ultimate Cron.

Scheduler functionality is implemented by the Symfony Scheduler component. The Drupal integration is provided by the SM Scheduler module

Schedule provider

Create a message and message handler as usual, then create a Schedule Provider:

<?php declare(strict_types = 1); namespace Drupal\my_module\Messenger; use Symfony\Component\Scheduler\Attribute\AsSchedule; use Symfony\Component\Scheduler\RecurringMessage; use Symfony\Component\Scheduler\Schedule; use Symfony\Component\Scheduler\ScheduleProviderInterface; #[AsSchedule('my_scheduler_name')] final class MyScheduleProvider implements ScheduleProviderInterface { /** * {@inheritdoc} */ public function getSchedule(): Schedule { return (new Schedule())->add( RecurringMessage::every('5 minutes', new MyMessage()), ); } }

A schedule provider is:

  • a class at the Messenger\ namespace
  • with a #[AsScheduler] class attribute
  • implementing \Symfony\Component\Scheduler\ScheduleProviderInterface
  • implements an getSchedule method. This method returns a message instance and the schedule frequency.

For dependency injection, schedule providers have autowiring enabled.

What would normally be the contents of a hook_cron hook would instead be added to the message handler. The message itself does not need to store any meaningful data.

Instead of intervals via RecurringMessage::every(...), crontab syntax can be used:

\Symfony\Component\Scheduler\RecurringMessage::cron('*/5 * * * *', new MyMessage());Running the worker

Lastly, schedulers must be run via the consume command with a dedicated transport. The transport name is the schedule ID prefixed by scheduler_. For example, given the scheduler ID my_scheduler_name from above, the transport name will be scheduler_my_scheduler_name.

The command finally becomes: sm messenger:consume scheduler_my_scheduler_name .

Timing

Messages will be dispatched the moment their interval arrives. Normally intervals begin when the worker is initiated, however you can set a point in time to begin interval computation using the \Symfony\Component\Scheduler\RecurringMessage::every   $from parameter.

The worker must be running at the time when a message is scheduled to be sent. The transport won't retroactively catch-up with messages not dispatched during the time it wasn't running.

The next post outlines how to intercept legacy Drupal @QueueWorker items and insert them into the message bus.

Tagged Symfony, Symfony Messenger, Symfony Scheduler, Cron

Talking Drupal: Talking Drupal #436 - Drupal & AI

Planet Drupal - 5. Februar 2024 - 21:00

Today we are talking about AI within Drupal, How AI can help, and Modules to use with guest Martin Anderson-Clutz. We’ll also cover Augmentor AI as our module of the week.

For show notes visit: www.talkingDrupal.com/436

Topics
  • Terminology
  • IMF analysis
  • Prompt engineering
  • AI in Drupal
  • Best way to try modules
  • Best use of AI
  • Other ways of integrating
Resources
  • Augmentor AI
  • Open AI
  • Prompt Engineering: Get the Most From Your Drupal Site's AI Integration
  • Terminology
    • NLP - work with text provided in a conversational format, understand the intended meaning, and provide a relevant response
    • AI - A subset of CS that aims to develop systems that can mimic human response, or automating sophisticated behavior
    • ML - subset of AI that aims to act without explicit guidance, by extrapolating from known data
    • Deep learning - a subset of ML which uses artificial neural networks with representational learning to develop and leverage their own means of classification and other feature detection
    • LLM - an AI algorithm that uses Deep Learning techniques to accomplish NLP tasks such as responding to unstructured user prompts. LLMs are trained on massive data sets, often gathered from the internet, but sometimes using more specialized data
    • Typically the AI interfaces our listeners are already using are based on an LLM, but the nature and recency of the data they’ve been trained on can vary widely. Recently Mike Miles created Drupal Droid, a GPT model specifically trained for Drupal developers, and you can find a demo of that in our YouTube channel
  • Mike Miles Drupal Droid
  • AI module list
  • OpenAI Image
  • Search API Pinecone
  • TMGMT Translator OpenAI
Guests

Martin Anderson-Clutz - mandclu

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi

MOTW Correspondent

Martin Anderson-Clutz - mandclu Augmentor AI

  • Brief description:
    • Have you ever wanted a highly configurable way to integrate multiple AI services with your Drupal site? There’s a module for that.
  • Brief history
    • How old: created in Oct 2022 by murrayw of Morpht, though recent releases are by elonel
    • Versions available: 1.1.2 which works with Drupal 9.5 and 10
  • Maintainership
    • Actively maintained, most recent release was earlier this month
    • Documentation available
    • Number of open issues: 11, 3 of which are bugs
  • Usage stats:
    • 82 sites
  • Module features and usage
    • To use Augmentor AI, you need to define one or more “augmentor” configuration entities. An augmenter entity implements an augmentor type, which determines what AI service it can use, what configuration options it will have available, and so on.
    • The augmentor will define one or more “messages” that provide structure to the prompt that will be passed to the AI model in order to generate a response. It can also be configured in a variety of ways, such as how much randomness to use, a maximum response length, and more.
    • You can expose your augmentor(s) to content creators by adding a CKEditor button, or by adding fields to your site’s entity forms. For each field use can choose the widget to use, and how it should interact with any existing data in the field you want to target.
    • For example, you could have it generate a summary from your body field and have it automatically populate the summary field. Or, you can have it suggest tags, but the specialized widget renders each suggestion as a clickable element that will add the tag to a core tag field.
    • There are currently modules available to integrate Augmentor AI with ChatGPT, Google Cloud Vision, AWS AI, and more.