# required

Published articles for required.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Supporting Wayland's XDG activation protocol with Gtk/Glib

DevFeed: [Supporting Wayland's XDG activation protocol with Gtk/Glib](<https://devfeed.tech/articles/supporting-wayland-s-xdg-activation-protocol-with-gtk-glib-36631.md>)

Original publisher: [Read original article](<https://palant.info/2026/02/03/supporting-waylands-xdg-activation-protocol-with-gtk/glib/>)

Author: Wladimir Palant

Published: 2026-02-03T10:55:20Z

Content type: tutorial

Language: en

Sources: [Almost Secure](<https://devfeed.tech/sources/almost-secure.md>)

Topics: [Wayland](<https://devfeed.tech/topics/wayland.md>), [GTK](<https://devfeed.tech/topics/gtk.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [application](<https://devfeed.tech/tags/application.md>), [browser](<https://devfeed.tech/tags/browser.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [required](<https://devfeed.tech/tags/required.md>), [using](<https://devfeed.tech/tags/using.md>), [wayland](<https://devfeed.tech/tags/wayland.md>)

### AI overview

This tutorial explains how Wayland's XDG activation protocol transfers focus between applications with consent, and documents its implementation in Gtk/Glib. It covers activation tokens, Gio.AppInfo launch contexts, StartupNotify, and manual environment-variable handling.

### Source excerpt

One of the biggest sore points with Wayland is its focus stealing protection. The idea is good: an application should not be able to bring itself into focus at an unexpected time, only when the currently active application allows it. Support is still lacking however, which might also be due to Gtk/Glib implementing the required XDG activation protocol but not really documenting it. It took me a bit of time to figure this out without any public information, this article will hopefully make things easier for other people. Contents How the XDG activation protocol works State of implementation in Gtk/Glib Starting applications via Gio.AppInfo Starting applications by other means How the XDG activation protocol works The main idea behind the XDG activation protocol is that focus transfer from one application to another requires consent. With X11 a file manager could just launch the browser for an HTML file and the browser would immediately take focus, even if that browser was already running. With Wayland the file manager has to indicate that the browser is allowed to take focus. It does that by giving the browser its XDG activation token, typically via XDG_ACTIVATION_TOKEN environment variable. The browser can then use that activation token to prove consent and take focus. For this to work the protocol has to be supported on both ends: the file manager must know how to retrieve an activation token and pass it on via XDG_ACTIVATION_TOKEN environment variable, and the browser has to know how to use that token. State of implementation in Gtk/Glib The receiving side has been implemented in Gtk with merge request 7118 and is available starting with Gtk 4.14.6 and 4.15.1. This is the unproblematic part: it is handled automatically and doesn't require the application developer to change anything. The sending side has been implemented in Gtk with merge request 3502 and Glib with merge request 3090, so it is available starting with Gtk 4.10.0 and Glib 2.75.1. This is the part wh

## Stack walking: space and time trade-offs

DevFeed: [Stack walking: space and time trade-offs](<https://devfeed.tech/articles/stack-walking-space-and-time-trade-offs-31136.md>)

Original publisher: [Read original article](<https://maskray.me/blog/stack-walking-space-and-time-trade-offs>)

Published: 2025-10-26T07:00:00Z

Content type: article

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [linux](<https://devfeed.tech/tags/linux.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [performance-analysis](<https://devfeed.tech/tags/performance-analysis.md>), [platforms](<https://devfeed.tech/tags/platforms.md>), [required](<https://devfeed.tech/tags/required.md>), [sframe](<https://devfeed.tech/tags/sframe.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

This article examines space and time trade-offs among stack-walking mechanisms on Linux, including DWARF, frame pointers, SFrame, LLVM's Compact Unwinding Format, Last Branch Record, and CET Shadow Stack. It analyzes the size overhead of enabling non-DWARF mechanisms when building LLVM executables; runtime performance analysis is deferred to a future update.

### Source excerpt

On most Linux platforms (except AArch32, which uses .ARM.exidx), DWARF .eh_frame is required for C++ exception handling and stack unwinding to restore callee-saved registers. While .eh_frame can be used for call trace recording, it is often criticized for its runtime overhead. As an alternative, developers can enable frame pointers, or adopt SFrame, a newer format designed specifically for profiling. This article examines the size overhead of enabling non-DWARF stack walking mechanisms when building several LLVM executables. Runtime performance analysis will be added in a future update.

## Advanced String Manipulation in Twig with Craft CMS

DevFeed: [Advanced String Manipulation in Twig with Craft CMS](<https://devfeed.tech/articles/advanced-string-manipulation-in-twig-with-craft-cms-31304.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/string-manipulation-in-twig-with-craft-cms>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2024-05-01T17:39:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [PHP](<https://devfeed.tech/topics/php.md>), [Library](<https://devfeed.tech/topics/library.md>), [Code](<https://devfeed.tech/topics/code.md>), [phpstorm](<https://devfeed.tech/topics/phpstorm.md>)

Tags: [advanced](<https://devfeed.tech/tags/advanced.md>), [craft](<https://devfeed.tech/tags/craft.md>), [hidden](<https://devfeed.tech/tags/hidden.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [insights](<https://devfeed.tech/tags/insights.md>), [learn](<https://devfeed.tech/tags/learn.md>), [manipulation](<https://devfeed.tech/tags/manipulation.md>), [plugins](<https://devfeed.tech/tags/plugins.md>), [powers](<https://devfeed.tech/tags/powers.md>), [required](<https://devfeed.tech/tags/required.md>), [string](<https://devfeed.tech/tags/string.md>), [twig](<https://devfeed.tech/tags/twig.md>), [unleash](<https://devfeed.tech/tags/unleash.md>)

### AI overview

This tutorial explains how to perform advanced string manipulation in Twig with Craft CMS without additional plugins. It shows how to access the bundled Stringy PHP library through Twig's create() function and demonstrates several Stringy functions.

### Source excerpt

Learn how to unleash hidden string manipulation powers in Twig with Craft CMS 5, no plugins required!

## SATA AHCI Driver GSoC - Week 2 Update

DevFeed: [SATA AHCI Driver GSoC - Week 2 Update](<https://devfeed.tech/articles/sata-ahci-driver-gsoc-week-2-update-33014.md>)

Original publisher: [Read original article](<https://reactos.org/blogs/sata-ahci-driver-gsoc-week-2-update/>)

Published: 2016-06-07T00:00:00Z

Content type: article

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [coding](<https://devfeed.tech/topics/coding.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [coding](<https://devfeed.tech/tags/coding.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [driver](<https://devfeed.tech/tags/driver.md>), [free](<https://devfeed.tech/tags/free.md>), [gsoc](<https://devfeed.tech/tags/gsoc.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [required](<https://devfeed.tech/tags/required.md>), [standard](<https://devfeed.tech/tags/standard.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

A week-two GSoC update describes early implementation of a SATA AHCI driver for ReactOS. The work covers registering the driver, configuring required Storport routines, initializing adapter information and port resources, and addressing memory-allocation limitations with a temporary allocation approach.

### Source excerpt

In the first week I gained enough knowledge to kick start the coding part. I started implementation with minimal featured design idea i.e. started implementation of non-optional routines first and in order they are being called by Storport/OS. Listed below DriverEntry: Registered the driver with very standard configurations (that I learned by WDK samples) and with non-optional (required entrypoint for Storport) Hw Routines. Standard configuration includes NeedPhysicalAddresses (TRUE) TaggedQueuing (TRUE) MultipleRequestPerLu (TRUE)

## The Refresh Test

DevFeed: [The Refresh Test](<https://devfeed.tech/articles/the-refresh-test-40626.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2014-04-10-the-refresh-test/>)

Published: 2014-04-10T00:00:00Z

Content type: opinion

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [Ember](<https://devfeed.tech/topics/ember.md>), [Website](<https://devfeed.tech/topics/website.md>), [browser](<https://devfeed.tech/topics/browser.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [browser](<https://devfeed.tech/tags/browser.md>), [ember](<https://devfeed.tech/tags/ember.md>), [fields](<https://devfeed.tech/tags/fields.md>), [form](<https://devfeed.tech/tags/form.md>), [make](<https://devfeed.tech/tags/make.md>), [reload](<https://devfeed.tech/tags/reload.md>), [required](<https://devfeed.tech/tags/required.md>)

### AI overview

The article argues that web applications should preserve form data and tolerate page refreshes. It uses frustrating account-creation and online checkout experiences to illustrate the problem, then discusses how Ember App Kit's live reloading encouraged the author to make an application refresh-resistant.

### Source excerpt

How many times has the following happened to you? You go to a web site and it asks you to create an account. You fill out a form with all the obvious fields and hit submit. The page refreshes and shows you the form again. Phone Number is required Well, that's annoying. There was no indication that the site needed your phone number. You prefer not to give out your phone number to every web site, but this one is run by a company you trust, so you scroll down and fill it out. You submit the form again.

## August 2012 Meeting Minutes

DevFeed: [August 2012 Meeting Minutes](<https://devfeed.tech/articles/august-2012-meeting-minutes-33088.md>)

Original publisher: [Read original article](<https://reactos.org/project-news/august-2012-meeting-minutes/>)

Published: 2012-09-03T00:00:00Z

Content type: article

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [ReactOS](<https://devfeed.tech/topics/reactos.md>), [jira](<https://devfeed.tech/topics/jira.md>), [LDAP](<https://devfeed.tech/topics/ldap.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Oracle-VM-VirtualBox](<https://devfeed.tech/topics/vm-box.md>)

Tags: [free](<https://devfeed.tech/tags/free.md>), [jira](<https://devfeed.tech/tags/jira.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [release](<https://devfeed.tech/tags/release.md>), [required](<https://devfeed.tech/tags/required.md>), [testing](<https://devfeed.tech/tags/testing.md>), [virtualbox](<https://devfeed.tech/tags/virtualbox.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

Meeting minutes covering ReactOS website transition issues, Jira integration, LDAP-based authentication, VirtualBox registry corruption affecting testing, MSVC build work, developer contracts, and release feasibility.

### Source excerpt

2012-08-30 19:00 UTC dev.reactos.org, #meeting Proceedings Meeting started at 19:13 by Aleksey Bragin Point 0: Website status Point 1: ROS Testing and Bugs Point 2: Developer Contracts Point 3: State of Trunk and Release Feasibility Point 0 Ziliang Guo had earlier reported that Atlassian's documentation was misleading with respect to Jira integration and did not actually permit what the team was trying to achieve. This was only discovered after Ziliang submitted a support request to Atlassian.

## The Race to Performant Application: Designing Time and Flow

DevFeed: [The Race to Performant Application: Designing Time and Flow](<https://devfeed.tech/articles/the-race-to-performant-application-designing-time-and-flow-30426.md>)

Original publisher: [Read original article](<https://www.mdubakov.com/posts/time-flow/>)

Published: 2009-05-26T15:41:57Z

Content type: opinion

Language: en

Sources: [Blog by Michael Dubakov](<https://devfeed.tech/sources/blog-by-michael-dubakov.md>)

Topics: [Software](<https://devfeed.tech/topics/software.md>), [Usability](<https://devfeed.tech/topics/usability.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [Agile](<https://devfeed.tech/topics/agile.md>)

Tags: [agile](<https://devfeed.tech/tags/agile.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [required](<https://devfeed.tech/tags/required.md>), [software](<https://devfeed.tech/tags/software.md>), [ui](<https://devfeed.tech/tags/ui.md>), [usability](<https://devfeed.tech/tags/usability.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

### AI overview

The article argues that software products should prioritize simplicity, performance, and usability instead of continually adding features, functions, and settings. Drawing on Steven C. Seow's book, it discusses Hick-Hyman Law, perceptible performance improvements, and the importance of preserving user flow.

### Source excerpt

Fact: Complexity causes 50% of product returns Fast and easy-to-use applications are quite rare. Simplicity and Performance are two major properties of any killer software product. We, as software developers, should pay attention to these properties as non-functional requirements, but in real life we often tend to implement more features, more functions, more settings, more, more, more... The race is hard to win with this strategy along the whole way. I must confess we've done almost the same to TargetProcess. We went on with providing more and more features and options. Definitely we tried to keep the application simple and fast, but these goals were secondary. We've stopped. And changed. Now we are focusing on better performance and usability. We think that TargetProcess is a quite feature-rich application that fulfills most needs in agile project management. It is time to stop and find answers to the questions: "Where do people get stuck with our software?", "What is complex and how it can be simplified?", "How to make TargetProcess enjoyable to use?", "How to make TargetProcess the most performant software in our niche?". The questions are hard to answer and address quickly, but we are looking for the answers. Steven C. Seow wrote an excellent book about principles that should be taken into consideration for any "performant" application Designing and Engineering Time: The Psychology of Time Perception in Software. I read it and want to share some interesting observations. Hick-Hyman Law describes the time it takes for a person to make a decision as a result of the possible choices he or she has. Simply speaking, less functions -- simpler and faster choice. It leads to several conclusions what we should do as software developers: Minimize options. Obviously, if you have 50 elements on the screen, it takes time to choose which action is required. If you have 20, the UI is faster to work with. Keep it simple. Well, it is a general principle for all the facets of agile