# input

Published articles for input.

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

## Mir/Wayland-Powered Miracle-WM 0.11 Released With New Overview Mode, Window Urgency

DevFeed: [Mir/Wayland-Powered Miracle-WM 0.11 Released With New Overview Mode, Window Urgency](<https://devfeed.tech/articles/mir-wayland-powered-miracle-wm-0-11-released-with-new-overview-mode-window-urgency-34947.md>)

Original publisher: [Read original article](<https://www.phoronix.com/news/Miracle-WM-0.11>)

Author: Michael Larabel

Published: 2026-09-17T00:58:42Z

Content type: release

Language: en

Sources: [Phoronix](<https://devfeed.tech/sources/phoronix.md>)

Topics: [Wayland](<https://devfeed.tech/topics/wayland.md>), [Library](<https://devfeed.tech/topics/library.md>), [canonical](<https://devfeed.tech/topics/canonical.md>)

Tags: [commands](<https://devfeed.tech/tags/commands.md>), [data](<https://devfeed.tech/tags/data.md>), [desktop-linux](<https://devfeed.tech/tags/desktop-linux.md>), [events](<https://devfeed.tech/tags/events.md>), [github](<https://devfeed.tech/tags/github.md>), [image](<https://devfeed.tech/tags/image.md>), [input](<https://devfeed.tech/tags/input.md>), [ipc](<https://devfeed.tech/tags/ipc.md>), [library](<https://devfeed.tech/tags/library.md>), [linux-benchmarking](<https://devfeed.tech/tags/linux-benchmarking.md>), [linux-hardware-benchmarks](<https://devfeed.tech/tags/linux-hardware-benchmarks.md>), [linux-hardware-reviews](<https://devfeed.tech/tags/linux-hardware-reviews.md>), [linux-how-to](<https://devfeed.tech/tags/linux-how-to.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [linux-server-benchmarks](<https://devfeed.tech/tags/linux-server-benchmarks.md>), [open-source-graphics](<https://devfeed.tech/tags/open-source-graphics.md>), [overview](<https://devfeed.tech/tags/overview.md>), [phoronix](<https://devfeed.tech/tags/phoronix.md>), [phoronix-test-suite](<https://devfeed.tech/tags/phoronix-test-suite.md>), [plugins](<https://devfeed.tech/tags/plugins.md>), [release](<https://devfeed.tech/tags/release.md>), [ubuntu-benchmarks](<https://devfeed.tech/tags/ubuntu-benchmarks.md>), [ubuntu-hardware](<https://devfeed.tech/tags/ubuntu-hardware.md>), [update](<https://devfeed.tech/tags/update.md>), [wayland](<https://devfeed.tech/tags/wayland.md>), [window](<https://devfeed.tech/tags/window.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

Miracle-WM 0.11, a Wayland compositor built on the Mir library, adds an overview mode, window urgency support, plugin IPC events and commands, and support for newer Mir protocols. The release is built on Mir 2.29.

### Source excerpt

Canonical engineer Matthew Kosarek rolled out Miracle-WM 0.11 today as an end-of-summer update to this Wayland compositor built atop the Mir library...

## GSoC 2026 Final Report | Modernizing Haiku's Bluetooth Stack: HID Profile Implementation

DevFeed: [GSoC 2026 Final Report | Modernizing Haiku's Bluetooth Stack: HID Profile Implementation](<https://devfeed.tech/articles/gsoc-2026-final-report-modernizing-haiku-s-bluetooth-stack-hid-profile-implementation-34781.md>)

Original publisher: [Read original article](<https://www.haiku-os.org/blog/mohammedrattia/2026-09-01_gsoc_2026_final_report/>)

Author: mohammedrattia

Published: 2026-09-06T12:00:24Z

Content type: article

Language: en

Sources: [Haiku Project](<https://devfeed.tech/sources/haiku-project.md>)

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

Tags: [bluetooth](<https://devfeed.tech/tags/bluetooth.md>), [drivers](<https://devfeed.tech/tags/drivers.md>), [gsoc](<https://devfeed.tech/tags/gsoc.md>), [gsoc2026](<https://devfeed.tech/tags/gsoc2026.md>), [haiku](<https://devfeed.tech/tags/haiku.md>), [hid](<https://devfeed.tech/tags/hid.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [input](<https://devfeed.tech/tags/input.md>), [report](<https://devfeed.tech/tags/report.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

This final GSoC 2026 report describes work to improve Haiku's Bluetooth stack and implement the HID profile. It reports that Bluetooth mice and keyboards are functioning and that the core stack is ready for additional profiles, while noting that Low Energy Bluetooth remains unimplemented and further work is needed.

### Source excerpt

Hello! Finally, GSoC is done for me. This is the final report for my project. The project was focused on improving the Bluetooth stack and making it useful. Hopefully, the Bluetooth stack is now in a much better state than before GSoC 2026. It still needs much work to be fully developed. However, currently Bluetooth mice and keyboards are functioning. In addition, the core of the stack is ready for implementing other profiles. This report will include the following: Project Overview What I Did Future Work Conclusion Project Overview The State of Bluetooth on Haiku Before GSoC 2026 Although the Bluetooth stack was outdated (based on version 2.0 and 2.1 of Bluetooth) before GSoC, it contained many core components that helped us focus less on starting from scratch and more on making the already built stack useful. However, that's true only for BR/EDR (Basic Rate / Enhanced Data Rate) Bluetooth, not Low Energy Bluetooth, which isn't implemented yet in Haiku. The BR/EDR Bluetooth core stack is divided into several core modules that provide services for the Bluetooth profiles, which in turn provide services to users like human interface devices, audio, file transfer, etc. Some of those core modules and their state in Haiku are: L2CAP: Functional, but needed some fixes. HCI (Host Controller Interface): Functional, but on an old Bluetooth version, as stated above. Transfer Layer (h2generic): Functional, but required further extension to cover vendor-specific devices. Preferences Application: Functional, but it lacked some features, such as changing the Bluetooth friendly name, canceling inquiry and pairing, and adding devices to a block list. Security Manager: Not complete; it's blended into the Bluetooth Server, and most of its functions were missing. Service Discovery Protocol (SDP): Not implemented. The state mentioned above meant the Bluetooth stack couldn't yet offer much practical functionality to users, because none of the Bluetooth profiles were implemented. In addi

## Mikrotik Winbox 4.3 is out

DevFeed: [Mikrotik Winbox 4.3 is out](<https://devfeed.tech/articles/mikrotik-winbox-4-3-is-out-40185.md>)

Original publisher: [Read original article](<https://blog.j2sw.com/resources/mikrotik-winbox-4-3-is-out/>)

Author: j2sw

Published: 2026-07-29T14:38:07Z

Content type: release

Language: en

Sources: [Justin Wilson (j2sw)](<https://devfeed.tech/sources/justin-wilson-j2sw.md>)

Topics: [MikroTik](<https://devfeed.tech/topics/mikrotik.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Zip](<https://devfeed.tech/topics/zip.md>), [GUI](<https://devfeed.tech/topics/gui.md>), [layout](<https://devfeed.tech/topics/layout.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [feature](<https://devfeed.tech/tags/feature.md>), [file](<https://devfeed.tech/tags/file.md>), [form](<https://devfeed.tech/tags/form.md>), [input](<https://devfeed.tech/tags/input.md>), [layout](<https://devfeed.tech/tags/layout.md>), [mikrotik](<https://devfeed.tech/tags/mikrotik.md>), [network-engineering-resources](<https://devfeed.tech/tags/network-engineering-resources.md>), [performance](<https://devfeed.tech/tags/performance.md>), [redesign](<https://devfeed.tech/tags/redesign.md>), [render](<https://devfeed.tech/tags/render.md>), [right](<https://devfeed.tech/tags/right.md>), [sorting](<https://devfeed.tech/tags/sorting.md>), [table](<https://devfeed.tech/tags/table.md>), [toolbar](<https://devfeed.tech/tags/toolbar.md>), [ui](<https://devfeed.tech/tags/ui.md>), [v3](<https://devfeed.tech/tags/v3.md>), [version](<https://devfeed.tech/tags/version.md>), [widget](<https://devfeed.tech/tags/widget.md>), [winbox](<https://devfeed.tech/tags/winbox.md>), [windows](<https://devfeed.tech/tags/windows.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

MikroTik WinBox 4.3 is a release update that adds a Windows ARM64 package and introduces or improves table, form, toolbar, settings, font, login, window-selection, layout, and scrolling behavior.

### Source excerpt

What's new in 4.3 (2026-Jul-20 10:14): *) app: add Windows for arm64 version in file WinBox_Windows_arm64.zip;*) form: make multiline input field height logic as in WinBox v3;*) table: add quick comment feature (allow multi-row commenting);*) table: allow opening "Table settings" also via right mouse click;*) table: calculate implicit height to fit 16 regular rows including ... Read more The post Mikrotik Winbox 4.3 is out appeared first on Justin Wilson (j2sw).

## 重新思考 Go：Channel 不是「消息队列」

DevFeed: [重新思考 Go：Channel 不是「消息队列」](<https://devfeed.tech/articles/go-channel-40987.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/golang-rethink-channel/>)

Author: Joway

Published: 2024-03-31T00:00:00Z

Content type: opinion

Language: zh

Sources: [Random Thoughts](<https://devfeed.tech/sources/random-thoughts.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [cpu](<https://devfeed.tech/tags/cpu.md>), [csp](<https://devfeed.tech/tags/csp.md>), [go](<https://devfeed.tech/tags/go.md>), [input](<https://devfeed.tech/tags/input.md>), [make](<https://devfeed.tech/tags/make.md>), [process](<https://devfeed.tech/tags/process.md>), [queue](<https://devfeed.tech/tags/queue.md>), [tech](<https://devfeed.tech/tags/tech.md>)

### AI overview

This article argues that Go channels are designed primarily for communication and blocking coordination between goroutines, not as robust in-process message queues. It examines blocking when channels are full, uncontrolled consumer throughput, and the resulting pressure on core processing paths. The author concludes that using channels as queues can be a questionable technology choice and suggests a more complete standard-library queue implementation.

### Source excerpt

重新思考 Go 系列：这个系列希望结合工作中在 Go 编程与性能优化中遇到过的问题，探讨 Go 在语言哲学、底层实现和现实需求三者之间关系与矛盾。 Go 语言是一门为实现 CSP 并发模型而设计的语言，这也是它区别于其他语言最大的特色。而为了实现这一点，Go 在语法上就内置了 chan 的数据结构来作为不同协程间通信的载体。

## Extract a Number from a String with JavaScript

DevFeed: [Extract a Number from a String with JavaScript](<https://devfeed.tech/articles/extract-a-number-from-a-string-with-javascript-37487.md>)

Original publisher: [Read original article](<https://davidwalsh.name/javascript-extract-string>)

Author: David Walsh

Published: 2024-01-16T11:48:41Z

Content type: tutorial

Language: en

Sources: [David Walsh](<https://devfeed.tech/sources/david-walsh.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [HTML](<https://devfeed.tech/topics/html.md>)

Tags: [html](<https://devfeed.tech/tags/html.md>), [input](<https://devfeed.tech/tags/input.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [javascript-quick-tips](<https://devfeed.tech/tags/javascript-quick-tips.md>), [numbers](<https://devfeed.tech/tags/numbers.md>), [quick-tips](<https://devfeed.tech/tags/quick-tips.md>), [regular-expressions](<https://devfeed.tech/tags/regular-expressions.md>), [string](<https://devfeed.tech/tags/string.md>)

### AI overview

This tutorial explains how to extract numbers from strings in JavaScript, particularly user input from HTML form fields, using regular expressions.

### Source excerpt

User input from HTML form fields is generally provided to JavaScript as a string. We've lived with that fact for decades but sometimes developers need to extract numbers from that string. There are multiple ways to get those numbers but let's rely on regular expressions to extract those numbers! To employ a regular expression to [...] The post Extract a Number from a String with JavaScript appeared first on David Walsh Blog.

## CSS only floating labels

DevFeed: [CSS only floating labels](<https://devfeed.tech/articles/css-only-floating-labels-37257.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/css-only-floating-input-labels/>)

Author: Stanko

Published: 2023-07-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [CSS](<https://devfeed.tech/topics/css.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Code](<https://devfeed.tech/topics/code.md>), [Demo](<https://devfeed.tech/topics/demo.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [css](<https://devfeed.tech/tags/css.md>), [demo](<https://devfeed.tech/tags/demo.md>), [focus](<https://devfeed.tech/tags/focus.md>), [html](<https://devfeed.tech/tags/html.md>), [input](<https://devfeed.tech/tags/input.md>), [safari](<https://devfeed.tech/tags/safari.md>), [state](<https://devfeed.tech/tags/state.md>)

### AI overview

This tutorial explains how to use the CSS :placeholder-shown pseudo-class and :not() to detect whether an input is empty or has a value without JavaScript. It demonstrates floating labels and conditionally displayed clear buttons, and notes a Safari requirement for the placeholder attribute.

### Source excerpt

I recently learned about the pseudo CSS class :placeholder-shown. Obviously, it is a class that is added only when input placeholder is shown. But what that also means is that the input is empty: /* Input is empty */ input:placeholder-shown By negating it with :not() we can detect if the input has value: /* Input has value */ input:not(:placeholder-shown) I created a demo that uses these two CSS snippets to highlight input's current state. There is no JavaScript involved. Input has value Input is empty Focused Real world use cases # I recently used this to conditionally display a clear button next to an input. But it can also be used to create floating labels. However, it's important to note that anything you want to style based on the input's state needs to be positioned after the input element. Floating labels # For a floating label, the HTML structure should look something like this: <input /> <label>Floating label</label> The floating label needs to be repositioned in two scenarios: when the input is focused and when it has a value. /* Input has value */ input:focus + label, input:not(:placeholder-shown) + label { /* Move the label above the button and scale it down */ transform: translateY(-100%) scale(0.75); } Clear button # Similarly, we'll put the clear button after the input: <input /> <button>Clear</button> and hide it when input is empty: /* Input is empty */ input:placeholder-shown + button { /* Hide the clear button */ display: none; } Demo # Focus an input to make its label float, and type something to make the clear button appear. Name Email You can also play with the code on CodePen. Safari gotcha # Be aware that in Safari the :placeholder-shown pseudo class will only be added if the input has the placeholder attribute explicitly defined. Which means that we have to define it, but if we don't need the placeholder, we can easily hide it using CSS: input::placeholder { color: transparent; }

## Writing a Debugger From Scratch - DbgRs Part 2 - Register State and Stepping

DevFeed: [Writing a Debugger From Scratch - DbgRs Part 2 - Register State and Stepping](<https://devfeed.tech/articles/writing-a-debugger-from-scratch-dbgrs-part-2-register-state-and-stepping-39734.md>)

Original publisher: [Read original article](<https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-2/>)

Author: Tim Misiak

Published: 2023-03-06T16:44:39Z

Content type: tutorial

Language: en

Sources: [TimDbg](<https://devfeed.tech/sources/timdbg.md>)

Topics: [debug](<https://devfeed.tech/topics/debug.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Code](<https://devfeed.tech/topics/code.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [commands](<https://devfeed.tech/tags/commands.md>), [console](<https://devfeed.tech/tags/console.md>), [context](<https://devfeed.tech/tags/context.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [error-handling](<https://devfeed.tech/tags/error-handling.md>), [execution](<https://devfeed.tech/tags/execution.md>), [github](<https://devfeed.tech/tags/github.md>), [input](<https://devfeed.tech/tags/input.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [state](<https://devfeed.tech/tags/state.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

Part 2 of a tutorial on building a debugger from scratch in Rust for Windows. It adds a console command interface, input parsing, register-state reading through GetThreadContext, and basic execution control such as stepping and continuing.

### Source excerpt

When we left off last time, we had a basic "debugger" that could launch a Windows process and monitor events that occur in that process, but it's not yet something that you would really call a debugger. Two things that are missing are the ability to examine the state of the process and to control its execution. So that's what we're going to build next. The code for this part is on GitHub as the part2 branch.

## Results of Quick Testing of Documentation Tools' Accessibility

DevFeed: [Results of Quick Testing of Documentation Tools' Accessibility](<https://devfeed.tech/articles/results-of-quick-testing-of-documentation-tools-accessibility-38449.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2022-08-11/results-of-quick-testing-of-documentation-tools-accessibility/>)

Author: Eevis Panula

Published: 2023-01-03T08:57:41.997000Z

Content type: article

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>), [Browser Extension](<https://devfeed.tech/topics/browser-extension.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [automated](<https://devfeed.tech/tags/automated.md>), [color](<https://devfeed.tech/tags/color.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [input](<https://devfeed.tech/tags/input.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [openapi-specification](<https://devfeed.tech/tags/openapi-specification.md>), [screen](<https://devfeed.tech/tags/screen.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This article reports quick accessibility testing of Swagger, Read the Docs, Docusaurus, and GitBook using the Axe browser extension, DOM inspection, and keyboard testing. The testing was not exhaustive because it did not include screen readers, narrower viewports, or zooming. For Swagger UI, Axe identified 64 issues, including color-contrast problems, form inputs without programmatically associated labels, and missing landmark regions.

### Source excerpt

When writing my blog post about what backend devs can do for accessibility, I did some quick accessibility tests for different documentation tools. Initially, I thought I'd write about the results in that blog post, but there was just too much to report. So, I ended up writing this blog post. I chose four tools that I know many projects are using. These tools are: Swagger Read the Docs Docusaurus GitBook First, I ran an automated test with the aXe browser extension and dug deeper into the DOM based on the test results. After that, I tested the site with a keyboard. In this blog post, I'll share the test results and some thoughts about them. As you can see from the steps described above, the testing was not exhaustive. I just wanted to get an overview of the issues. I did not, for example, test with a screen reader or with narrower viewports (or zooming). This was a conscious decision, partly because I didn't have time and partly because this blog post would've been super long. And I think this already provides some overview of the state of accessibility of these tools. Let's get started. Swagger URL used for testing: https://petstore3.swagger.io/ Swagger is a set of tools used for API documentation. The Swagger API project started in 2011. Initially, it was a specification, but it was later named OpenAPI Specification. So it has a long history, and many projects use it. One of its tools is Swagger UI, a user interface for browsing the API endpoints. That's the one I'm testing for this blog post. Testing Swagger UI with Axe Runnin Axe-browser extension showed 64 issues, two of which are critical, 35 serious, 18 moderate, and 7 minor. Most of the issues (37) were related to color contrast issues. The contrast ratio for the problematic color combinations ranged between 2.03 and 3.75. Another problem was form input without programmatically associated labels. Some of them were flagged, but when I started digging deeper into the site's code, I noticed that not every insta

## My Advice to a Developer New to Accessibility

DevFeed: [My Advice to a Developer New to Accessibility](<https://devfeed.tech/articles/my-advice-to-a-developer-new-to-accessibility-38446.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2022-07-22/my-advice-to-a-developer-new-to-accessibility/>)

Author: Eevis Panula

Published: 2023-01-03T08:57:33.125000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [HTML](<https://devfeed.tech/topics/html.md>), [keyboard](<https://devfeed.tech/topics/keyboard.md>), [markup](<https://devfeed.tech/topics/markup.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [advice](<https://devfeed.tech/tags/advice.md>), [developer](<https://devfeed.tech/tags/developer.md>), [development](<https://devfeed.tech/tags/development.md>), [element](<https://devfeed.tech/tags/element.md>), [elements](<https://devfeed.tech/tags/elements.md>), [focus](<https://devfeed.tech/tags/focus.md>), [html](<https://devfeed.tech/tags/html.md>), [html-elements](<https://devfeed.tech/tags/html-elements.md>), [input](<https://devfeed.tech/tags/input.md>), [interaction](<https://devfeed.tech/tags/interaction.md>), [interactive](<https://devfeed.tech/tags/interactive.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [learning](<https://devfeed.tech/tags/learning.md>), [markup](<https://devfeed.tech/tags/markup.md>)

### AI overview

This beginner-oriented accessibility article recommends focusing on progress rather than perfection and introduces semantic HTML, keyboard navigation, and listening to people with disabilities. It explains that semantic elements communicate meaning to browsers and developers and support appropriate interaction, while a div styled as a button may work only for mouse users and may not be focusable or keyboard-accessible.

### Source excerpt

Learning about accessibility for the first time can feel overwhelming. You start reading, and at some point, it hits you: There is so much to learn! And if you're like me and feel that it's your responsibility to make the things you create accessible, that might even make you feel anxious. And yes, there is a lot to learn regarding accessibility. But you don't need to know everything at once. As Meryl Evans reminds us in her tweet (and a blog post the tweet links to), it's about progress over perfection: https://twitter.com/merylkevans/status/1547635550466674692 So, here are some things I wish I had known when I first started learning accessibility. Heck, I wish I had known these things when I started learning web development! I'll share semantic HTML, keyboard navigation, and listening to people with disabilities. Learn Semantic HTML and Use It So, first thing: Learn semantic HTML. But what does it mean? Semantic HTML, or semantic markup, describes its meaning to the browser and developer in a human- and machine-readable way. So, with semantic elements, a human will know what the HTML element is about, and the browser knows what it should render and how it should behave when a user interacts with it. Here's an example: <button onClick={...}>I'm an honest button</button> That button uses a semantic button-element. When it does so, the browser knows what it should do when the user either clicks or activates it with a keyboard or other input device. Here's an example of a non-semantic "button": <div className="button" onClick={...}> I look like a button </div> So, this "button" made out of div looks like a button and even has the onClick-handler. So, wouldn't a human recognize it as a button? Well, yes and no. It depends on the human. You see, this "button" works only for mouse users. As div is not an interactive element by nature, it doesn't handle interaction the same way as, for example, a button-element. When using a semantic button-element, that onClick-event pro

## Functional Lifestyles Training

DevFeed: [Functional Lifestyles Training](<https://devfeed.tech/articles/functional-lifestyles-training-40598.md>)

Original publisher: [Read original article](<https://medium.com/@peternorvig/functional-lifestyles-training-47984a3cd2ba>)

Author: Peter Norvig

Published: 2023-04-03T23:19:47.031000Z

Content type: opinion

Language: en

Sources: [Peter Norvig](<https://devfeed.tech/sources/peter-norvig.md>)

Topics: [functions](<https://devfeed.tech/topics/functions.md>), [exceptions](<https://devfeed.tech/topics/exceptions.md>), [Haskell](<https://devfeed.tech/topics/haskell.md>)

Tags: [concurrent](<https://devfeed.tech/tags/concurrent.md>), [exceptions](<https://devfeed.tech/tags/exceptions.md>), [functional](<https://devfeed.tech/tags/functional.md>), [imperative](<https://devfeed.tech/tags/imperative.md>), [input](<https://devfeed.tech/tags/input.md>), [lambda](<https://devfeed.tech/tags/lambda.md>), [lazy](<https://devfeed.tech/tags/lazy.md>), [mapping](<https://devfeed.tech/tags/mapping.md>), [state](<https://devfeed.tech/tags/state.md>)

### AI overview

A humorous interview presents functional programming concepts as a gym's personalized fitness program. It uses puns involving folds, lambda lifting, free variables, evaluation strategies, data structures, monads, input/output, exceptions, immutability, and functions.

### Source excerpt

Some heavy lambda lifting could get you in better functional shape.

## Setting up psql, the PostgreSQL CLI

DevFeed: [Setting up psql, the PostgreSQL CLI](<https://devfeed.tech/articles/setting-up-psql-the-postgresql-cli-34576.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2017/12/setting-up-psql-the-postgresql-cli/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2017-12-22T14:23:43Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [console](<https://devfeed.tech/topics/console.md>), [Scripting](<https://devfeed.tech/topics/scripting.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Environment Variables](<https://devfeed.tech/topics/environment-variables.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [console](<https://devfeed.tech/tags/console.md>), [environment-variables](<https://devfeed.tech/tags/environment-variables.md>), [history](<https://devfeed.tech/tags/history.md>), [input](<https://devfeed.tech/tags/input.md>), [interactive](<https://devfeed.tech/tags/interactive.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [less](<https://devfeed.tech/tags/less.md>), [pager](<https://devfeed.tech/tags/pager.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [psql](<https://devfeed.tech/tags/psql.md>), [redirection](<https://devfeed.tech/tags/redirection.md>), [repl](<https://devfeed.tech/tags/repl.md>), [scripting](<https://devfeed.tech/tags/scripting.md>), [setup](<https://devfeed.tech/tags/setup.md>)

### AI overview

A tutorial on setting up and using psql, PostgreSQL's command-line console. It explains interactive and scripting features, the REPL workflow, and configuration through the psqlrc file and environment variables.

### Source excerpt

PostgreSQL ships with an interactive console with the command line tool named psql. It can be used both for scripting and interactive usage and is moreover quite a powerful tool. Interactive features includes autocompletion, readline support (history searches, modern keyboard movements, etc), input and output redirection, formatted output, and more.

## Plain JavaScript animated window scroll function

DevFeed: [Plain JavaScript animated window scroll function](<https://devfeed.tech/articles/plain-javascript-animated-window-scroll-function-37237.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/animate-window-scroll-to/>)

Author: Stanko

Published: 2016-09-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Vanilla JavaScript](<https://devfeed.tech/topics/vanilla-js.md>), [npm](<https://devfeed.tech/topics/npm.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [element](<https://devfeed.tech/tags/element.md>), [import](<https://devfeed.tech/tags/import.md>), [input](<https://devfeed.tech/tags/input.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [npm](<https://devfeed.tech/tags/npm.md>), [object](<https://devfeed.tech/tags/object.md>)

### AI overview

A tutorial presenting a plain JavaScript function for smoothly animating window scrolling without requiring jQuery. It documents the animated-scroll-to npm package, including installation, usage, duration settings, the scroll element, and cancellation on user input.

### Source excerpt

Before modern frameworks, I always used jQuery's scrollTo method. At some point, not every project included jQuery, so I wrote simple function to animate window scroll. I have kept copying that function from project to project. Finally I took some time, cleaned it up and published it on the npm (this is the first npm package I published). Check the demo and read documentation of Github. Find it on Github and npm Installation # npm install animated-scroll-to Usage # import animateScrollTo from 'animated-scroll-to'; // desiredOffset - page offset to scroll // options - object with options // default options const options = { // duration of the scroll per 1000px, default 500 speed: 500, // minimum duration of the scroll minDuration: 250, // maximum duration of the scroll maxDuration: 1500, // DOM element to scroll, default window // Pass a reference to a DOM object // Example: document.querySelector('#element-to-scroll'), element: window, // should animated scroll be canceled on user scroll/keypress // if set to "false" user input will be disabled until animated scroll is complete cancelOnUserAction: true }; const desiredOffset = 1000; animateScrollTo(desiredOffset, options);

## Styling the Shadow DOM: Encapsulation, Host Styling, and Style Boundaries

DevFeed: [Styling the Shadow DOM: Encapsulation, Host Styling, and Style Boundaries](<https://devfeed.tech/articles/styling-the-shadow-dom-or-a-metaphor-gone-too-far-35546.md>)

Original publisher: [Read original article](<https://meowni.ca/posts/styling-the-dome/>)

Author: Monica Dinculescu

Published: 2015-09-29T00:00:00Z

Content type: opinion

Language: en

Sources: [Monica Dinculescu](<https://devfeed.tech/sources/monica-dinculescu.md>)

Topics: [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>), [CSS](<https://devfeed.tech/topics/css.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [background](<https://devfeed.tech/tags/background.md>), [change](<https://devfeed.tech/tags/change.md>), [color](<https://devfeed.tech/tags/color.md>), [css](<https://devfeed.tech/tags/css.md>), [input](<https://devfeed.tech/tags/input.md>)

### AI overview

This article explains how the Shadow DOM encapsulates the implementation and styles of custom elements, preventing styles from leaking in or out. It also describes styling the host element while keeping the element's internal implementation isolated.

### Source excerpt

One of the beefs (and there aren't many) that I have with CSS is that it has a very weak opinion about style encapsulation. That opinion is basically "well, name your classes well" or else bad things happen. Know this: I come from C++, land of rules and disappointed compilers; this hand waviness drives me crazy. This matters because now you have to trust the people that write your css libraries to have common sense. If my website needs two kinds of fancy buttons, which live in shiny-button.css and bouncy-button.css, which are both libraries written by silly people who want me to use the .button class to get their style, I'm hosed. Enter the Shadow DOM The Shadow DOM fixes this problem by building a little castle (a dome, get it?) around each custom element, locking in its implementation and styles. This is a proper castle, with a proper moat, so now styles can't get in and out of it. This means that if <shiny-button> was a custom element instead of a pile of CSS, its .button class was scoped to the element itself, and wouldn't stomp over <bouncy-button>'s similarly creatively named .button class. This shouldn't surprise you too much, as native elements have been doing this in secret for yeaaaaars. <input type=date> styles the date picker somehow, but you've never worried what class names it might use to do so. You know why? Because you can't get to its castle, that's why. The struggle is real So what happens if you do want to style <shiny-button>? What if it's a perfectly respectable button, but it uses Helvetica as its font and you really need it to be Comic Sans because Helvetica is so 2014? You can always style the host of the element. Think of the host as the castle walls; it's the thing that holds all the actual contents of the custom element. It still plays by CSS rules, so some of the styles you set on the host could actually trickle down to some child elements. For example: shiny-button { color: white; background-color: tomato; border-radius: 3px; width: 400

## The Halting Problem

DevFeed: [The Halting Problem](<https://devfeed.tech/articles/the-halting-problem-40751.md>)

Original publisher: [Read original article](<https://radek.io/posts/the-halting-problem/>)

Published: 2014-07-27T00:00:00Z

Content type: article

Language: en

Sources: [Radek Pazdera](<https://devfeed.tech/sources/radek-pazdera.md>)

Topics: [Computer science](<https://devfeed.tech/topics/computer-science.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Math and Logic](<https://devfeed.tech/topics/math-and-logic.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [computer-science](<https://devfeed.tech/tags/computer-science.md>), [computers](<https://devfeed.tech/tags/computers.md>), [halting-problem](<https://devfeed.tech/tags/halting-problem.md>), [infinite](<https://devfeed.tech/tags/infinite.md>), [input](<https://devfeed.tech/tags/input.md>), [logic](<https://devfeed.tech/tags/logic.md>), [loops](<https://devfeed.tech/tags/loops.md>), [program](<https://devfeed.tech/tags/program.md>), [reduction](<https://devfeed.tech/tags/reduction.md>)

### AI overview

The article explains Alan Turing's halting problem: no general method can always determine whether an arbitrary program will halt or run forever. It describes the problem's connection to undecidability, diagonalization, and reductions, and briefly discusses Turing's work with Alonzo Church.

### Source excerpt

And other things computers cannot solve

## Terminal colours made simple

DevFeed: [Terminal colours made simple](<https://devfeed.tech/articles/terminal-colours-made-simple-40748.md>)

Original publisher: [Read original article](<https://radek.io/posts/tco/>)

Published: 2014-03-30T00:00:00Z

Content type: release

Language: en

Sources: [Radek Pazdera](<https://devfeed.tech/sources/radek-pazdera.md>)

Topics: [Terminal](<https://devfeed.tech/topics/terminal.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Library](<https://devfeed.tech/topics/library.md>), [Streams](<https://devfeed.tech/topics/streams.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [example](<https://devfeed.tech/tags/example.md>), [input](<https://devfeed.tech/tags/input.md>), [library](<https://devfeed.tech/tags/library.md>), [release](<https://devfeed.tech/tags/release.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [terminal](<https://devfeed.tech/tags/terminal.md>)

### AI overview

The article announces the first release of the Ruby tco gem, which simplifies terminal colour handling by accepting RGB values. It provides both a library for Ruby gems and apps and a standalone command-line tool, with configurable colours, styles, and templates.

### Source excerpt

The first release of tco

## Streaming Median

DevFeed: [Streaming Median](<https://devfeed.tech/articles/streaming-median-40277.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2012/06/14/streaming-median/>)

Published: 2012-06-14T22:03:55Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Streaming](<https://devfeed.tech/topics/streaming.md>), [Python](<https://devfeed.tech/topics/python.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [generators](<https://devfeed.tech/topics/generators.md>), [iteration](<https://devfeed.tech/topics/iteration.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [approximation](<https://devfeed.tech/tags/approximation.md>), [big-data](<https://devfeed.tech/tags/big-data.md>), [data-analysis](<https://devfeed.tech/tags/data-analysis.md>), [element](<https://devfeed.tech/tags/element.md>), [generators](<https://devfeed.tech/tags/generators.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [infinite](<https://devfeed.tech/tags/infinite.md>), [input](<https://devfeed.tech/tags/input.md>), [iteration](<https://devfeed.tech/tags/iteration.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [median](<https://devfeed.tech/tags/median.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>), [sequence](<https://devfeed.tech/tags/sequence.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [streaming-data](<https://devfeed.tech/tags/streaming-data.md>), [yield](<https://devfeed.tech/tags/yield.md>)

### AI overview

This tutorial presents a Python generator that approximates the median of a potentially infinite integer sequence using constant space. The algorithm adjusts its current estimate by one for each input value that is above or below the estimate, and the article discusses how changing stream distributions affect the result.

### Source excerpt

Problem: Compute a reasonable approximation to a "streaming median" of a potentially infinite sequence of integers. Solution: (in Python) def streamingMedian(seq): seq = iter(seq) m = 0 for nextElt in seq: if m > nextElt: m -= 1 elif m < nextElt: m += 1 yield m Discussion: Before we discuss the details of the Python implementation above, we should note a few things. First, because the input sequence is potentially infinite, we can't store any amount of information that is increasing in the length of the sequence.

## P vs. NP, A Primer (And a Proof Written in Racket)

DevFeed: [P vs. NP, A Primer (And a Proof Written in Racket)](<https://devfeed.tech/articles/p-vs-np-a-primer-and-a-proof-written-in-racket-40263.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2012/02/23/p-vs-np-a-primer-and-a-proof-written-in-racket/>)

Published: 2012-02-23T19:57:35Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Computing](<https://devfeed.tech/topics/computing.md>), [Algorithms, Complexity](<https://devfeed.tech/topics/algorithms-complexity.md>), [Racket](<https://devfeed.tech/topics/racket.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [algorithms](<https://devfeed.tech/tags/algorithms.md>), [analysis](<https://devfeed.tech/tags/analysis.md>), [big-o-notation](<https://devfeed.tech/tags/big-o-notation.md>), [class](<https://devfeed.tech/tags/class.md>), [computational-complexity](<https://devfeed.tech/tags/computational-complexity.md>), [computing](<https://devfeed.tech/tags/computing.md>), [decidability](<https://devfeed.tech/tags/decidability.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [fast](<https://devfeed.tech/tags/fast.md>), [halting-problem](<https://devfeed.tech/tags/halting-problem.md>), [input](<https://devfeed.tech/tags/input.md>), [language](<https://devfeed.tech/tags/language.md>), [machine](<https://devfeed.tech/tags/machine.md>), [np-completeness](<https://devfeed.tech/tags/np-completeness.md>), [p-versus-np](<https://devfeed.tech/tags/p-versus-np.md>), [primer](<https://devfeed.tech/tags/primer.md>), [racket](<https://devfeed.tech/tags/racket.md>), [solve](<https://devfeed.tech/tags/solve.md>), [theory](<https://devfeed.tech/tags/theory.md>), [turing-machine](<https://devfeed.tech/tags/turing-machine.md>), [turing-machines](<https://devfeed.tech/tags/turing-machines.md>)

### AI overview

A primer on the distinction between decidability and computational efficiency, introducing the complexity class P and its definition in terms of polynomial-time decision by a Turing machine. It also discusses efficient algorithms and gives a card-sorting example.

### Source excerpt

Decidability Versus Efficiency In the early days of computing theory, the important questions were primarily about decidability. What sorts of problems are beyond the power of a Turing machine to solve? As we saw in our last primer on Turing machines, the halting problem is such an example: it can never be solved a finite amount of time by a Turing machine. However, more recently (in the past half-century) the focus of computing theory has shifted away from possibility in favor of determining feasibility.

## Turing Machines--A Primer

DevFeed: [Turing Machines--A Primer](<https://devfeed.tech/articles/turing-machines-a-primer-40218.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2011/07/04/turing-machines-a-primer/>)

Published: 2011-07-04T16:35:44Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Automaton](<https://devfeed.tech/topics/automaton.md>), [function](<https://devfeed.tech/topics/function.md>)

Tags: [acceptance](<https://devfeed.tech/tags/acceptance.md>), [computability-theory](<https://devfeed.tech/tags/computability-theory.md>), [computers](<https://devfeed.tech/tags/computers.md>), [concepts](<https://devfeed.tech/tags/concepts.md>), [decidability](<https://devfeed.tech/tags/decidability.md>), [halting-problem](<https://devfeed.tech/tags/halting-problem.md>), [input](<https://devfeed.tech/tags/input.md>), [machine](<https://devfeed.tech/tags/machine.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [primer](<https://devfeed.tech/tags/primer.md>), [process](<https://devfeed.tech/tags/process.md>), [pushdown-automata](<https://devfeed.tech/tags/pushdown-automata.md>), [state](<https://devfeed.tech/tags/state.md>), [symbols](<https://devfeed.tech/tags/symbols.md>), [turing-machines](<https://devfeed.tech/tags/turing-machines.md>)

### AI overview

This tutorial introduces Turing machines as a model of computation. It defines their states, tape symbols, input symbols, initial state, accepting and rejecting states, and transition function, then explains how the tape, read-write head, state transitions, and halting behavior work.

### Source excerpt

We assume the reader is familiar with the concepts of determinism and finite automata, or has read the corresponding primer on this blog. The Mother of All Computers Last time we saw some models for computation, and saw in turn how limited they were. Now, we open Pandrora's hard drive: Definition: A Turing machine is a tuple $ (S, \Gamma, \Sigma, s_0, F, \tau)$, where $ S$ is a set of states, $ \Gamma$ is a set of tape symbols, including a special blank symbol $ b$, $ \Sigma \subset \Gamma$ is a set of input symbols, not including $ b$, $ s_0$ is the initial state, $ A \subset S$ is a set of accepting states, $ R \subset S$ is a set of rejecting states, $ \tau: S - (A \cup R) \times \Gamma \to S \times \Gamma \times \left \{ L, R \right \}$ is a partial function called the transition function, where $ L, R$ correspond to "left shift" and "right shift," respectively.

## Determinism and Finite Automata--A Primer

DevFeed: [Determinism and Finite Automata--A Primer](<https://devfeed.tech/articles/determinism-and-finite-automata-a-primer-40217.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2011/07/02/determinism-and-finite-automata-a-primer/>)

Published: 2011-07-02T23:41:30Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Automaton](<https://devfeed.tech/topics/automaton.md>), [function](<https://devfeed.tech/topics/function.md>)

Tags: [computability-theory](<https://devfeed.tech/tags/computability-theory.md>), [computing](<https://devfeed.tech/tags/computing.md>), [context-free-languages](<https://devfeed.tech/tags/context-free-languages.md>), [deterministic-finite-automata](<https://devfeed.tech/tags/deterministic-finite-automata.md>), [finite-state-machines](<https://devfeed.tech/tags/finite-state-machines.md>), [function](<https://devfeed.tech/tags/function.md>), [input](<https://devfeed.tech/tags/input.md>), [language](<https://devfeed.tech/tags/language.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [nondeterministic-finite-automata](<https://devfeed.tech/tags/nondeterministic-finite-automata.md>), [primer](<https://devfeed.tech/tags/primer.md>), [pushdown-automata](<https://devfeed.tech/tags/pushdown-automata.md>), [regular-languages](<https://devfeed.tech/tags/regular-languages.md>), [string](<https://devfeed.tech/tags/string.md>), [turing-machines](<https://devfeed.tech/tags/turing-machines.md>)

### AI overview

This primer introduces computation as a function that maps input to output, then develops a more rigorous model based on finite alphabets and strings. It explains how a computational model recognizes a language by accepting or rejecting strings.

### Source excerpt

The first step in studying the sorts of possible computations (and more interestingly, those things which cannot be computed) is to define exactly what we mean by a "computation." At a high level, this is easy: a computation is simply a function. Given some input, produce the appropriate output. Unfortunately this is much too general. For instance, we could define almost anything we want in terms of functions. Let $ f$ be the function which accepts as input the date of California Super Lotto drawings, and returns the set of winning numbers for that date.

## Non blocking console input in Python and Java

DevFeed: [Non blocking console input in Python and Java](<https://devfeed.tech/articles/non-blocking-console-input-in-python-and-java-35437.md>)

Original publisher: [Read original article](<https://darkcoding.net/software/non-blocking-console-io-is-not-possible/>)

Author: Graham King

Published: 2007-12-18T20:42:31Z

Content type: tutorial

Language: en

Sources: [Graham King](<https://devfeed.tech/sources/graham-king.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Java](<https://devfeed.tech/topics/java.md>), [console](<https://devfeed.tech/topics/console.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [blocking](<https://devfeed.tech/tags/blocking.md>), [console](<https://devfeed.tech/tags/console.md>), [input](<https://devfeed.tech/tags/input.md>), [java](<https://devfeed.tech/tags/java.md>), [platforms](<https://devfeed.tech/tags/platforms.md>), [python](<https://devfeed.tech/tags/python.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

A programming tutorial explores non-blocking console input in Python and Java. It explains that console input is buffered by default, compares windowing-toolkit approaches with console-based solutions, and notes that terminal character-mode handling is not portable across operating systems.

### Source excerpt

Mastering the console: Unlocking non-blocking input across platforms.