# error

Published articles for error.

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

## A Simple MVI Architecture Approach Using LiveData

DevFeed: [A Simple MVI Architecture Approach Using LiveData](<https://devfeed.tech/articles/simple-mvi-32343.md>)

Original publisher: [Read original article](<https://dustn.dev/page/presentations/2019-08-14-simple-mvi/>)

Author: dustin@dustn.dev (Dustin Summers)

Published: 2026-09-17T04:13:15.404035Z

Content type: opinion

Language: en

Sources: [Dustin Summers](<https://devfeed.tech/sources/dustin-summers.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Dagger](<https://devfeed.tech/topics/dagger.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [architecture-pattern](<https://devfeed.tech/tags/architecture-pattern.md>), [error](<https://devfeed.tech/tags/error.md>), [livedata](<https://devfeed.tech/tags/livedata.md>), [loading](<https://devfeed.tech/tags/loading.md>), [mvi](<https://devfeed.tech/tags/mvi.md>)

### AI overview

A talk from Android Summit 2019 discusses a simple implementation of the MVI architecture pattern using LiveData and the Loading, Content, Error pattern.

### Source excerpt

This was a talk provided by myself and Dan Lowe at Android Summit, 2019. In this we discuss a simple approach to the MVI (Model, View, Intent) Architecture Pattern using LiveData and the common Loading, Content, Error Pattern. Link to Dan's blog post is here which is what our talk was based around.

## \[$\] Stabilizing Rust's never type

DevFeed: [\[$\] Stabilizing Rust's never type](<https://devfeed.tech/articles/stabilizing-rust-s-never-type-8491.md>)

Original publisher: [Read original article](<https://lwn.net/Articles/1091015/>)

Author: daroc

Published: 2026-09-08T13:34:38Z

Content type: article

Language: en

Sources: [LWN.net](<https://devfeed.tech/sources/lwn-net.md>)

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Code](<https://devfeed.tech/topics/code.md>), [function](<https://devfeed.tech/topics/function.md>)

Tags: [change](<https://devfeed.tech/tags/change.md>), [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [error](<https://devfeed.tech/tags/error.md>), [function](<https://devfeed.tech/tags/function.md>), [maintainers](<https://devfeed.tech/tags/maintainers.md>), [optimize](<https://devfeed.tech/tags/optimize.md>), [rust](<https://devfeed.tech/tags/rust.md>)

### AI overview

The article explains Rust's never type, denoted by "!", and reports that it was stabilized after more than two years of work. It discusses the feature's practical benefits for optimizing generic code and its role in type inference, while noting a small breaking change to previous Rust editions.

### Source excerpt

A function's return type is supposed to indicate the kind of data that it produces. Rust's "never" type, which is denoted by an exclamation mark ("!"), is the type the language uses to mark a function that never returns and other places where a value can never occur. For a long time, the never type was used internally by the compiler, but was considered an unstable feature. On August 24, after more than two years of work, Rust-compiler-contributor "waffle" finally managed to stabilize the type. It took so long, in part, because it involved a small breaking change to previous Rust editions, which the compiler maintainers needed to ensure did not impact much real code.

## Keep business processes moving by recovering failed steps without restarting

DevFeed: [Keep business processes moving by recovering failed steps without restarting](<https://devfeed.tech/articles/keep-business-processes-moving-by-recovering-failed-steps-without-restarting-35901.md>)

Original publisher: [Read original article](<https://temporal.io/blog/keep-business-processes-moving>)

Author: Tao Guo

Published: 2026-05-11T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [retry](<https://devfeed.tech/topics/retry.md>)

Tags: [data](<https://devfeed.tech/tags/data.md>), [error](<https://devfeed.tech/tags/error.md>), [execution](<https://devfeed.tech/tags/execution.md>), [state](<https://devfeed.tech/tags/state.md>), [temporal-concepts](<https://devfeed.tech/tags/temporal-concepts.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

The article explains how to recover failed steps in durable business processes without restarting completed work. It presents a Temporal pattern in which workflows pause on permanent failures, accept corrections from humans or automated agents, and resume from the point of failure.

### Source excerpt

Stop restarting broken business processes. See how Temporal Workflows pause on bad data, accept fixes via Signals, and resume without losing progress.

## Why your platform control plane belongs on Temporal

DevFeed: [Why your platform control plane belongs on Temporal](<https://devfeed.tech/articles/why-your-platform-control-plane-belongs-on-temporal-36113.md>)

Original publisher: [Read original article](<https://temporal.io/blog/why-your-platform-control-plane-belongs-on-temporal>)

Author: Joshua Smith

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

Content type: opinion

Language: en

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

Topics: [control-plane](<https://devfeed.tech/topics/control-plane.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [Terraform](<https://devfeed.tech/topics/terraform.md>)

Tags: [automation](<https://devfeed.tech/tags/automation.md>), [control-plane](<https://devfeed.tech/tags/control-plane.md>), [error](<https://devfeed.tech/tags/error.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [platform](<https://devfeed.tech/tags/platform.md>), [platform-teams](<https://devfeed.tech/tags/platform-teams.md>), [provisioning](<https://devfeed.tech/tags/provisioning.md>), [scripts](<https://devfeed.tech/tags/scripts.md>), [self-service](<https://devfeed.tech/tags/self-service.md>), [temporal-voices](<https://devfeed.tech/tags/temporal-voices.md>)

### AI overview

This article argues that Temporal can serve as a durable backbone for platform teams building internal control planes. It describes the difficulty of managing infrastructure across creation, monitoring, upgrades, configuration changes, and decommissioning, and contrasts Temporal's orchestration model with Terraform's declarative provisioning and reconciliation focus.

### Source excerpt

Discover why platform teams use Temporal to build resilient internal control planes. Learn how Durable Execution solves brittle infrastructure automation.

## How to fix osm2pgrouting error 'relation "\_\_waysXXXX" does not exist' and speed up the import

DevFeed: [How to fix osm2pgrouting error 'relation "\_\_waysXXXX" does not exist' and speed up the import](<https://devfeed.tech/articles/how-to-fix-osm2pgrouting-error-relation-waysxxxx-does-not-exist-and-speed-up-the-import-35593.md>)

Original publisher: [Read original article](<https://blog.rtwilson.com/how-to-fix-osm2pgrouting-error-relation-__waysxxxx-does-not-exist-and-speed-up-the-import/>)

Author: Robin Wilson

Published: 2026-01-31T10:33:00Z

Content type: tutorial

Language: en

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

Topics: [import](<https://devfeed.tech/topics/import.md>), [Database](<https://devfeed.tech/topics/database.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>)

Tags: [cloud](<https://devfeed.tech/tags/cloud.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [database](<https://devfeed.tech/tags/database.md>), [error](<https://devfeed.tech/tags/error.md>), [gis](<https://devfeed.tech/tags/gis.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [import](<https://devfeed.tech/tags/import.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [speed](<https://devfeed.tech/tags/speed.md>)

### AI overview

A practical guide to fixing an osm2pgrouting error involving a missing __waysXXXX relation while importing OpenStreetMap data into PostGIS. It explains that increasing the command's chunk-size parameter can prevent crashes and reduce the import time to about 45 minutes, while requiring substantial RAM.

### Source excerpt

I don't seem to have time or energy for long posts these days, but here's another quick post which might save you some time and frustration. Recently, I've been trying to import OpenStreetMap data into a PostGIS database to use with pgRouting. I wanted to import data for the whole of England - which has [...]

## Configurar Fail2Ban para proteger servicios

DevFeed: [Configurar Fail2Ban para proteger servicios](<https://devfeed.tech/articles/configurar-fail2ban-para-proteger-servicios-34051.md>)

Original publisher: [Read original article](<https://tengoping.com/blog/configurar-fail2ban-proteger-servicios/>)

Author: Antonio Pérez

Published: 2026-01-28T00:00:00Z

Content type: tutorial

Language: es

Sources: [tengoping.com](<https://devfeed.tech/sources/tengoping-com.md>)

Topics: [Fail2ban](<https://devfeed.tech/topics/fail2ban.md>), [OpenSSH](<https://devfeed.tech/topics/openssh.md>), [nginx](<https://devfeed.tech/topics/nginx.md>), [Debian](<https://devfeed.tech/topics/debian.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>), [rhel 9](<https://devfeed.tech/topics/rhel-9.md>)

Tags: [debian](<https://devfeed.tech/tags/debian.md>), [error](<https://devfeed.tech/tags/error.md>), [fail2ban](<https://devfeed.tech/tags/fail2ban.md>), [internet](<https://devfeed.tech/tags/internet.md>), [ip](<https://devfeed.tech/tags/ip.md>), [login](<https://devfeed.tech/tags/login.md>), [logs](<https://devfeed.tech/tags/logs.md>), [nginx](<https://devfeed.tech/tags/nginx.md>), [rhel](<https://devfeed.tech/tags/rhel.md>), [rhel-9](<https://devfeed.tech/tags/rhel-9.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>)

### AI overview

A practical guide to installing and configuring Fail2Ban to protect SSH, Nginx, and other services from brute-force attacks. It covers jail configuration, custom Nginx filters, nftables and iptables actions, status checks, and manually unbanning IP addresses.

### Source excerpt

Guía práctica para instalar y configurar Fail2Ban: protege SSH, Nginx y otros servicios contra ataques de fuerza bruta.

## Fix "This video format is not supported" on YouTube TV

DevFeed: [Fix "This video format is not supported" on YouTube TV](<https://devfeed.tech/articles/fix-this-video-format-is-not-supported-on-youtube-tv-37481.md>)

Original publisher: [Read original article](<https://davidwalsh.name/fix-this-video-format-is-not-supported-on-youtube-tv>)

Author: David Walsh

Published: 2025-11-17T23:47:34Z

Content type: tutorial

Language: en

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

Topics: [browser](<https://devfeed.tech/topics/browser.md>), [web browser](<https://devfeed.tech/topics/web-browser.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [drm](<https://devfeed.tech/tags/drm.md>), [error](<https://devfeed.tech/tags/error.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>)

### AI overview

A troubleshooting guide explains how to resolve YouTube TV's "This video format is not supported" error by enabling Widevine DRM in the browser settings and restarting the browser.

### Source excerpt

Setting up a new computer is bliss -- no old, unused apps and the machine performs much better than the previous. Unfortunately, you may encounter new problems based on the new hardware. One such issue I encountered with my new MacBook was a "This video format is not supported" message when I went to YouTube [...] The post Fix "This video format is not supported" on YouTube TV appeared first on David Walsh Blog.

## Announcing a new operation: Workflow Update

DevFeed: [Announcing a new operation: Workflow Update](<https://devfeed.tech/articles/announcing-a-new-operation-workflow-update-35710.md>)

Original publisher: [Read original article](<https://temporal.io/blog/announcing-a-new-operation-workflow-update>)

Author: Dan Davison

Published: 2025-01-14T00:00:00Z

Content type: release

Language: en

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

Topics: [async](<https://devfeed.tech/topics/async.md>), [reliability](<https://devfeed.tech/topics/reliability.md>), [Low Latency](<https://devfeed.tech/topics/low-latency.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [async](<https://devfeed.tech/tags/async.md>), [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [blog](<https://devfeed.tech/tags/blog.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [design-patterns](<https://devfeed.tech/tags/design-patterns.md>), [error](<https://devfeed.tech/tags/error.md>), [product-news](<https://devfeed.tech/tags/product-news.md>), [reliability](<https://devfeed.tech/tags/reliability.md>), [update](<https://devfeed.tech/tags/update.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

Temporal announces that Workflow Update is generally available. The operation lets clients send a message to a Workflow, wait for handling to complete, and receive a result or error. The article explains how Update differs from Queries and Signals, demonstrates executing Activities, and discusses validators and design patterns.

### Source excerpt

Discover the latest workflow update designed to simplify operations and boost reliability in Temporal.

## How do I unzip multiple / many files under Linux?

DevFeed: [How do I unzip multiple / many files under Linux?](<https://devfeed.tech/articles/how-do-i-unzip-multiple-many-files-under-linux-41941.md>)

Original publisher: [Read original article](<https://www.cyberciti.biz/faq/linux-unix-shell-unzipping-many-zip-files/>)

Author: Vivek Gite

Published: 2024-09-27T19:56:29Z

Content type: tutorial

Language: en

Sources: [nixCraft: Linux Tips, Hacks, Tutorials, And Ideas In Blog Format (RSS/FEED)](<https://devfeed.tech/sources/nixcraft-linux-tips-hacks-tutorials-and-ideas-in-blog-format-rss-feed.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [Zip](<https://devfeed.tech/topics/zip.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Scripting, bash](<https://devfeed.tech/topics/scripting-bash.md>), [Shell](<https://devfeed.tech/topics/shell.md>), [file](<https://devfeed.tech/topics/file.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [easy](<https://devfeed.tech/tags/easy.md>), [error](<https://devfeed.tech/tags/error.md>), [files](<https://devfeed.tech/tags/files.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [images-directory](<https://devfeed.tech/tags/images-directory.md>), [linux](<https://devfeed.tech/tags/linux.md>), [shell](<https://devfeed.tech/tags/shell.md>), [suse](<https://devfeed.tech/tags/suse.md>), [unix](<https://devfeed.tech/tags/unix.md>), [wild](<https://devfeed.tech/tags/wild.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

A tutorial explains how to extract multiple ZIP archives on Linux and Unix-like systems. It covers why `unzip *.zip` can fail when the shell expands the wildcard, quoting or escaping the wildcard, Bash loops, and a `find`-based method for filenames containing spaces or unusual characters.

### Source excerpt

I have lots of files in a directory called /disk2/images/. All files are in zip file format, so I am using the following command to extract zip files: unzip *.zip The command result into an error which read as follows: caution: filename not matched How do I unzip multiple or many zip files under a Linux/Unix-like system? Love this? sudo share_on: Twitter - Facebook - LinkedIn - Whatsapp - Reddit The post How do I unzip multiple / many files under Linux? appeared first on nixCraft.

## Fixing Git's "Cannot rebase onto multiple branches" error

DevFeed: [Fixing Git's "Cannot rebase onto multiple branches" error](<https://devfeed.tech/articles/fix-cannot-rebase-onto-multiple-branches-error-once-and-for-all-27712.md>)

Original publisher: [Read original article](<https://gagor.pro/2024/05/fix-cannot-rebase-onto-multiple-branches-error-once-and-for-all/>)

Author: Tom

Published: 2024-05-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Git](<https://devfeed.tech/topics/git.md>), [Code review](<https://devfeed.tech/topics/code-review.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [devops](<https://devfeed.tech/tags/devops.md>), [error](<https://devfeed.tech/tags/error.md>), [git](<https://devfeed.tech/tags/git.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [review](<https://devfeed.tech/tags/review.md>)

### AI overview

A tutorial on resolving Git's "Cannot rebase onto multiple branches" error when using git pull --rebase. It explains the error as Git being unable to determine which branch to rebase onto and recommends configuring a specific default branch.

### Source excerpt

A Guide to using git pull --rebase effectively Using git pull --rebase as your default merge strategy offers several benefits, particularly in maintaining a clean and linear commit history, which can simplify collaboration and code review. However, you may occasionally encounter the error "Cannot rebase onto multiple branches". This article explains why this happens and provides a solution to make git pull --rebase work seamlessly. Benefits of git pull --rebase Linear History: Rebasing applies your local commits on top of the upstream changes, creating a straight line of commits without unnecessary merge commits. This makes the project history easier to read and understand.

## The repository 'http://deb.debian.org/debian buster-backports Release' no longer has a Release file.

DevFeed: [The repository 'http://deb.debian.org/debian buster-backports Release' no longer has a Release file.](<https://devfeed.tech/articles/the-repository-http-deb-debian-org-debian-buster-backports-release-no-longer-has-a-release-file-41953.md>)

Original publisher: [Read original article](<https://www.cyberciti.biz/faq/the-repository-http-deb-debian-org-debian-buster-backports-release-no-longer-has-a-release-file/>)

Author: Vivek Gite

Published: 2024-04-14T20:42:01Z

Content type: tutorial

Language: en

Sources: [nixCraft: Linux Tips, Hacks, Tutorials, And Ideas In Blog Format (RSS/FEED)](<https://devfeed.tech/sources/nixcraft-linux-tips-hacks-tutorials-and-ideas-in-blog-format-rss-feed.md>)

Topics: [apt](<https://devfeed.tech/topics/apt.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [apt](<https://devfeed.tech/tags/apt.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [debian](<https://devfeed.tech/tags/debian.md>), [debian-linux](<https://devfeed.tech/tags/debian-linux.md>), [easy](<https://devfeed.tech/tags/easy.md>), [error](<https://devfeed.tech/tags/error.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [linux](<https://devfeed.tech/tags/linux.md>), [repository](<https://devfeed.tech/tags/repository.md>), [security](<https://devfeed.tech/tags/security.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

A Debian troubleshooting guide explains why apt reports that the buster-backports repository no longer has a Release file. It identifies outdated or incorrect repository entries and recommends switching the source from deb.debian.org to archive.debian.org, while warning that archived packages may no longer receive security updates.

### Source excerpt

When you run the sudo apt update, you may see the following message or error on a Debian Linux: Err:5 http://deb.debian.org/debian buster-backports Release 404 Not Found [IP: 146.75.34.132 80] Reading package lists... Done E: The repository 'http://deb.debian.org/debian buster-backports Release' no longer has a Release file. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details. Here is how to fix this issue. Love this? sudo share_on: Twitter - Facebook - LinkedIn - Whatsapp - Reddit The post The repository 'http://deb.debian.org/debian buster-backports Release' no longer has a Release file. appeared first on nixCraft.

## Fixing APK Analyzer terminal errors by selecting a compatible Java version

DevFeed: [Fixing APK Analyzer terminal errors by selecting a compatible Java version](<https://devfeed.tech/articles/apkanalyzer-error-32349.md>)

Original publisher: [Read original article](<https://dustn.dev/post/2021-12-12-issues-with-apkanalyzer/>)

Author: dustin@dustn.dev (Dustin Summers)

Published: 2021-12-12T10:26:38Z

Content type: tutorial

Language: en

Sources: [Dustin Summers](<https://devfeed.tech/sources/dustin-summers.md>)

Topics: [APK](<https://devfeed.tech/topics/apk.md>), [Java](<https://devfeed.tech/topics/java.md>), [CI/CD Pipeline](<https://devfeed.tech/topics/ci-cd-pipeline.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [android-studio](<https://devfeed.tech/tags/android-studio.md>), [android-xmlschema-error-apkanalyzer-troubleshooting](<https://devfeed.tech/tags/android-xmlschema-error-apkanalyzer-troubleshooting.md>), [apk](<https://devfeed.tech/tags/apk.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [error](<https://devfeed.tech/tags/error.md>), [java](<https://devfeed.tech/tags/java.md>), [jdk](<https://devfeed.tech/tags/jdk.md>)

### AI overview

This tutorial addresses an APK Analyzer error encountered when running the tool from a terminal, including in a CI/CD workflow. It explains that Android Studio's bundled JDK may be incompatible and describes selecting another installed Java version, with guidance for making the change permanent.

### Source excerpt

Recently, I was tasked with using Google provided tools to decompile an APK in a CI/CD pipeline. This is great, because Google provides a tool called APK Analyzer, and provide tools both within the IDE itself and options to run it via the Command Line. I can talk more about the actual task later. For now, I want to discuss the issue that I first ran into when attempting to run apkanalyzer from the terminal.

## Kotlin Coroutines and Swift, revisited - Russell Wolf

DevFeed: [Kotlin Coroutines and Swift, revisited - Russell Wolf](<https://devfeed.tech/articles/kotlin-coroutines-and-swift-revisited-russell-wolf-38261.md>)

Original publisher: [Read original article](<https://touchlab.co/kotlin-coroutines-swift-revisited>)

Published: 2021-05-28T18:42:45Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [article](<https://devfeed.tech/tags/article.md>), [class](<https://devfeed.tech/tags/class.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code-generation](<https://devfeed.tech/tags/code-generation.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [error](<https://devfeed.tech/tags/error.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [internals](<https://devfeed.tech/tags/internals.md>), [interop](<https://devfeed.tech/tags/interop.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [reactive](<https://devfeed.tech/tags/reactive.md>), [stream](<https://devfeed.tech/tags/stream.md>), [suspend](<https://devfeed.tech/tags/suspend.md>), [swift](<https://devfeed.tech/tags/swift.md>)

### AI overview

Russell Wolf revisits patterns for exposing Kotlin coroutine-based repository code to iOS. The article recommends managing coroutine scope in Kotlin, adding a Swift wrapper to hide Kotlin implementation details, and adapting callback events for RxSwift and Combine.

### Source excerpt

An update on patterns for interop between Kotlin coroutines and RxSwift from Russell Wolf, engineer at Touchlab (Kotlin Multipaltform Mobile experts).

## Issues and hurdles when performing the initial upgrade

DevFeed: [Issues and hurdles when performing the initial upgrade](<https://devfeed.tech/articles/issues-and-hurdles-when-performing-the-initial-upgrade-34215.md>)

Original publisher: [Read original article](<https://blog.mobian.org/posts/2021/02/09/pam_issue/>)

Author: Mobian team

Published: 2021-02-09T12:53:19Z

Content type: tutorial

Language: en

Sources: [Mobian's Blog](<https://devfeed.tech/sources/mobian-s-blog.md>)

Topics: [upgrade](<https://devfeed.tech/topics/upgrade.md>), [apt](<https://devfeed.tech/topics/apt.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>), [Debian](<https://devfeed.tech/topics/debian.md>), [screen](<https://devfeed.tech/topics/screen.md>)

Tags: [apt](<https://devfeed.tech/tags/apt.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [changes](<https://devfeed.tech/tags/changes.md>), [debian](<https://devfeed.tech/tags/debian.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [error](<https://devfeed.tech/tags/error.md>), [installation](<https://devfeed.tech/tags/installation.md>), [pitfalls](<https://devfeed.tech/tags/pitfalls.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>)

### AI overview

This Mobian post explains pitfalls during the initial upgrade of a PinePhone. It describes a PAM issue that can temporarily prevent PIN unlocking before rebooting and recommends rebooting after the upgrade. It also recommends using a manual terminal update with Debian's apt package manager because the graphical Software application may fail with unmet-dependency errors during the initial update.

### Source excerpt

Dear Mobian CE owners, congratulations on receiving your mobile phone. We hope you will like Mobian and we hope that you will be helping us to make it even better. We are writing this post as the initial upgrade is rather tricky and there are a few pitfalls when performing it. We do know that real men and women don't read manuals, but please read this post carefully in order to not lock yourself permanently out of your phone (just an example of what can happen if you don't read this...). Most importantly, we want to inform you, that there is a minor issue with PAM (pluggable authentication module) when upgrading the preflashed image. It was upgraded in an incompatible manner, and when the lockscreen of your phone is invoked after upgrading but before rebooting, it will not accept your PIN anymore (fortunately in most cases, a simple reboot makes it work again). So do not worry, your installation is not broken! Therefore: After upgrading your pinephone for the first time it is highly recommended to reboot the device after the upgrade has finished. And keeping the screen unlocked during the initial upgrade by: touching the screen frequently (get used to the feeling :-)) or temporarily disabling the automatic lockscreen in the settings. Otherwise you run the risk of not being able to unlock your device once the screen has been locked. The second major issue during the initial upgrade is related to the graphical software updater, called "Software". The Software application can usually keep the software on your pinephone up-to-date and will prompt you to reboot after an update. On the initial update with currently more than 600 package changes compared to the factory image, it chokes and struggles, though. You will get some mysterious "Cannot update due to unmet dependencies" error in the software app if you try. So for the initial update, we recommend performing a manual update in the terminal (a great way to familiarize yourself with the terminal and Debian's package man

## Dealing with failure

DevFeed: [Dealing with failure](<https://devfeed.tech/articles/dealing-with-failure-35764.md>)

Original publisher: [Read original article](<https://temporal.io/blog/dealing-with-failure>)

Author: Sergey Bykov

Published: 2021-01-21T04:00:00Z

Content type: opinion

Language: en

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

Topics: [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>), [retry](<https://devfeed.tech/topics/retry.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [client](<https://devfeed.tech/topics/client.md>), [servers](<https://devfeed.tech/topics/servers.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [conference](<https://devfeed.tech/tags/conference.md>), [distributed-system](<https://devfeed.tech/tags/distributed-system.md>), [error](<https://devfeed.tech/tags/error.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [http](<https://devfeed.tech/tags/http.md>), [opinion](<https://devfeed.tech/tags/opinion.md>), [retry](<https://devfeed.tech/tags/retry.md>), [rpc](<https://devfeed.tech/tags/rpc.md>)

### AI overview

The article examines how to handle failures in cloud and distributed systems, focusing on request-reply or RPC, persistent queues, and workflows. It explains the simplicity and limitations of RPC, including timeouts, ambiguous outcomes, retries, unavailable systems, and partial failures.

### Source excerpt

I recently gave a talk at the CodeMesh conference, and I spent half of it reflecting on the seemingly boring topic of dealing with failures.

## Collect and handle multiple errors in Go

DevFeed: [Collect and handle multiple errors in Go](<https://devfeed.tech/articles/collect-and-handle-multiple-errors-in-go-35381.md>)

Original publisher: [Read original article](<https://darkcoding.net/software/collect-and-handle-multiple-errors-in-go/>)

Author: Graham King

Published: 2020-05-22T17:33:53Z

Content type: tutorial

Language: en

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

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Error Handling](<https://devfeed.tech/topics/error-handling.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [error](<https://devfeed.tech/tags/error.md>), [error-handling](<https://devfeed.tech/tags/error-handling.md>), [go](<https://devfeed.tech/tags/go.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

A tutorial on collecting errors from multiple operations in Go and returning them together. It also explains checking whether any collected error matches a given error and discusses minimizing dependencies.

### Source excerpt

In Go, how do you run several operations that might return an error, and return those errors at the end? Here's how I do it.

## MacOS Catalina, ruby bad interpreter error

DevFeed: [MacOS Catalina, ruby bad interpreter error](<https://devfeed.tech/articles/macos-catalina-ruby-bad-interpreter-error-37308.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/macos-catalina-ruby-bad-interpreter-error/>)

Author: Stanko

Published: 2019-12-11T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [macOS](<https://devfeed.tech/topics/macos.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Homebrew](<https://devfeed.tech/topics/homebrew.md>), [Jekyll](<https://devfeed.tech/topics/jekyll.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [error](<https://devfeed.tech/tags/error.md>), [homebrew](<https://devfeed.tech/tags/homebrew.md>), [issue](<https://devfeed.tech/tags/issue.md>), [jekyll](<https://devfeed.tech/tags/jekyll.md>), [macos](<https://devfeed.tech/tags/macos.md>), [rbenv](<https://devfeed.tech/tags/rbenv.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

This troubleshooting article explains a Ruby "bad interpreter" error that prevented Jekyll from running after upgrading macOS to Catalina. The author found that Ruby gems were installed with the Homebrew Ruby, but the executable binaries were not linked correctly, and resolved the issue by adding the gems/bin directory to PATH. After a later Big Sur update, the author switched to rbenv because the same fix did not work.

### Source excerpt

Another Catalina rant, this time about Ruby. As far as I know, on MacOS, it is advisable to leave system Ruby version to the OSFor example users don't have write permission on the system's gems folder. , and install a separate version for development. I had one installed via Homebrew, and never had any issues with it. But after Catalina upgrade, I couldn't run Jekyll. Every time it would fail with the following error: $ jekyll -bash: /usr/local/bin/jekyll: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory I checked my bash profile and run which ruby to make sure I'm using the one installed by brew, and everything seemed to be in order. # .bash_profile export PATH="/usr/local/opt/ruby/bin:$PATH" # bash $ which ruby /usr/local/opt/ruby/bin/ruby After quick internet search I learned a lot of people are having similar problems after system upgrade, but I couldn't find the solution. I've tried reinstalling ruby, setting GEM_HOME, altering PATH in /etc/profile and /etc/bashrc, removing and reinstalling gems, but nothing worked. Then I tried to see which Jekyll binary is used and realized - for some reason gems were installed using the correct ruby version, but binaries weren't linked properly. So the solution was pretty easy at the end, all I had to do is to find gems/bin folder and add it to my path. # Use ruby installed by brew export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/2.6.0/bin/:$PATH" It looks like a common sense, but it took me a couple of hours to figure it out. Hopefully this will save time people facing the same issue. Big Sur update (December 2020) # I got the same error after updating to Big Sur, but this time I couldn't solve it. I still don't know what I was doing wrong. In the end I started using rbenv to manage ruby installations, and it works flawlessly.

## Encapsulating View State

DevFeed: [Encapsulating View State](<https://devfeed.tech/articles/encapsulating-view-state-30593.md>)

Original publisher: [Read original article](<https://ryanharter.com/blog/2019/07/encapsulating-view-state/>)

Published: 2019-07-19T16:00:00Z

Content type: tutorial

Language: en

Sources: [Blogs on Ryan Harter](<https://devfeed.tech/sources/blogs-on-ryan-harter.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [business logic](<https://devfeed.tech/topics/business-logic.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [App](<https://devfeed.tech/topics/app.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [app-architecture](<https://devfeed.tech/tags/app-architecture.md>), [business-logic](<https://devfeed.tech/tags/business-logic.md>), [code](<https://devfeed.tech/tags/code.md>), [error](<https://devfeed.tech/tags/error.md>), [livedata](<https://devfeed.tech/tags/livedata.md>), [messages](<https://devfeed.tech/tags/messages.md>), [testing](<https://devfeed.tech/tags/testing.md>), [viewmodel](<https://devfeed.tech/tags/viewmodel.md>)

### AI overview

This article presents an approach to encapsulating view state in Android applications with AndroidX ViewModel. It explains how putting business logic and decision-making code in ViewModels can simplify Activities and Fragments and make the valuable code easier to test.

### Source excerpt

The AndroidX ViewModel has become a central component in many modern Android apps. They offer a relatively simple abstraction to encapsulate business logic and decision making code which separates it from the platform frameworks, which are often difficult to test. Since ViewModels are easier to test than Framework classes like Activity and Fragment due to their simple lifecycles and lack of external dependencies, it makes sense to try to put as much logic, the complex decision-making code that should be tested, in ViewModels as possible. Ideally we'll be left with a view layer, either Activities, Fragments, or something else, which is so simple that it's not worth testing.

## The "Bug-O" Notation

DevFeed: [The "Bug-O" Notation](<https://devfeed.tech/articles/the-bug-o-notation-36197.md>)

Original publisher: [Read original article](<https://overreacted.io/the-bug-o-notation/>)

Published: 2019-01-25T00:00:00Z

Content type: opinion

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Code](<https://devfeed.tech/topics/code.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [code](<https://devfeed.tech/tags/code.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [error](<https://devfeed.tech/tags/error.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

The article introduces "Bug-O notation," a way to think about how an API can slow developers down as a codebase grows. It argues that API and language design influence debugging difficulty, using imperative DOM updates and many possible operation orderings as an example.

### Source excerpt

What is the 🐞(n) of your API?

## Handling Errors Gracefully in Craft CMS

DevFeed: [Handling Errors Gracefully in Craft CMS](<https://devfeed.tech/articles/handling-errors-gracefully-in-craft-cms-31268.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/handling-errors-gracefully-in-craft-cms>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2017-10-12T22:10: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: [Error Handling](<https://devfeed.tech/topics/error-handling.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>), [Website](<https://devfeed.tech/topics/website.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [cms](<https://devfeed.tech/tags/cms.md>), [craft](<https://devfeed.tech/tags/craft.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [error](<https://devfeed.tech/tags/error.md>), [error-handling](<https://devfeed.tech/tags/error-handling.md>), [errors](<https://devfeed.tech/tags/errors.md>), [guide](<https://devfeed.tech/tags/guide.md>), [handle](<https://devfeed.tech/tags/handle.md>), [handling](<https://devfeed.tech/tags/handling.md>), [here-s](<https://devfeed.tech/tags/here-s.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [insights](<https://devfeed.tech/tags/insights.md>), [it-s](<https://devfeed.tech/tags/it-s.md>), [matters](<https://devfeed.tech/tags/matters.md>), [practical](<https://devfeed.tech/tags/practical.md>), [website](<https://devfeed.tech/tags/website.md>)

### AI overview

A practical guide to handling unexpected errors in Craft CMS websites through defensive programming, explicit error checks, null checks, user-friendly error handling, coding standards, and local devMode use.

### Source excerpt

Every website can have errors, it's how you handle them that matters. Here's a practical error handling guide for Craft CMS.

## localStorage and sessionStorage in Safari's private mode

DevFeed: [localStorage and sessionStorage in Safari's private mode](<https://devfeed.tech/articles/localstorage-and-sessionstorage-in-safari-s-private-mode-37306.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/localstorage-and-sessionstorage-in-safaris-private-mode/>)

Author: Stanko

Published: 2017-08-09T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [LocalStorage](<https://devfeed.tech/topics/localstorage.md>), [Code](<https://devfeed.tech/topics/code.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [error](<https://devfeed.tech/tags/error.md>), [export](<https://devfeed.tech/tags/export.md>), [ls](<https://devfeed.tech/tags/ls.md>), [null](<https://devfeed.tech/tags/null.md>), [object](<https://devfeed.tech/tags/object.md>), [qa](<https://devfeed.tech/tags/qa.md>), [quota](<https://devfeed.tech/tags/quota.md>), [return](<https://devfeed.tech/tags/return.md>), [safari](<https://devfeed.tech/tags/safari.md>), [storage](<https://devfeed.tech/tags/storage.md>), [test](<https://devfeed.tech/tags/test.md>), [value](<https://devfeed.tech/tags/value.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

This article explains that Safari private mode sets localStorage and sessionStorage limits to zero, preventing writes. It presents a localStorage facade that silently ignores storage operations when storage is unavailable, avoiding application errors.

### Source excerpt

If you didn't know, in Safari's private mode both localStorage and sessionStorage are not working. To be exact, Safari sets storage's limit to 0, so you can't write anything to it. I keep forgetting this, until QA people report it at some point. So I quickly wrote a small facade for it, which fails silently in this case. That means it still doesn't work but it won't throw an error and break your application. This is the version for localStorage, just replace it with sessionStorage if you need it. const LS_TEST_KEY = 'ls-test'; let isLocalStorageSupported = typeof localStorage === 'object'; // Try to try { localStorage.setItem(LS_TEST_KEY, 'test'); localStorage.removeItem(LS_TEST_KEY); } catch (e) { isLocalStorageSupported = false; // If we get error that we exceeded storage's quota // but storage is still empty we are in private mode if (e.code === DOMException.QUOTA_EXCEEDED_ERR && localStorage.length === 0) { // Private mode } else { throw e; } } const LocalStorage = { getItem: (key) => { if (isLocalStorageSupported) { return localStorage.getItem(key); } return null; }, setItem: (key, value) => { if (isLocalStorageSupported) { localStorage.setItem(key, value); } }, removeItem: (key) => { if (isLocalStorageSupported) { localStorage.removeItem(key); } }, }; export default LocalStorage;

## Friday Q&A 2017-07-14: Swift.Codable

DevFeed: [Friday Q&A 2017-07-14: Swift.Codable](<https://devfeed.tech/articles/friday-q-a-2017-07-14-swift-codable-30618.md>)

Original publisher: [Read original article](<http://www.mikeash.com/pyblog/friday-qa-2017-07-14-swiftcodable.html>)

Author: Mike Ash

Published: 2017-07-14T13:57:00Z

Content type: article

Language: en

Sources: [Mike Ash](<https://devfeed.tech/sources/mike-ash.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Boilerplate](<https://devfeed.tech/topics/boilerplate.md>), [Objective-C](<https://devfeed.tech/topics/objective-c.md>), [data](<https://devfeed.tech/topics/data.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Network](<https://devfeed.tech/topics/network.md>)

Tags: [2017](<https://devfeed.tech/tags/2017.md>), [apis](<https://devfeed.tech/tags/apis.md>), [apple](<https://devfeed.tech/tags/apple.md>), [apps](<https://devfeed.tech/tags/apps.md>), [automatically](<https://devfeed.tech/tags/automatically.md>), [build](<https://devfeed.tech/tags/build.md>), [c](<https://devfeed.tech/tags/c.md>), [code](<https://devfeed.tech/tags/code.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [data](<https://devfeed.tech/tags/data.md>), [error](<https://devfeed.tech/tags/error.md>), [format](<https://devfeed.tech/tags/format.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [json](<https://devfeed.tech/tags/json.md>), [make](<https://devfeed.tech/tags/make.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-apps](<https://devfeed.tech/tags/mobile-apps.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [q-a](<https://devfeed.tech/tags/q-a.md>), [swift](<https://devfeed.tech/tags/swift.md>)

### AI overview

This article explains Swift 4's Codable protocol and its serialization machinery. It describes serialization of values for storage or network transmission, contrasts Codable with earlier Apple ecosystem approaches, and discusses reducing repetitive encoding and decoding code.

### Source excerpt

One of the interesting additions to Swift 4 is the Codable protocol and the machinery around it. This is a subject near and dear to my heart, and I want to discuss what it is and how it works today. (Read More)

## Word 2010 support - Weekly report - Part 2: Installation (cont.)

DevFeed: [Word 2010 support - Weekly report - Part 2: Installation (cont.)](<https://devfeed.tech/articles/word-2010-support-weekly-report-part-2-installation-cont-33055.md>)

Original publisher: [Read original article](<https://reactos.org/blogs/word-2010-support-weekly-report-part2-installation-cont/>)

Published: 2016-11-20T00: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>), [Environment Variables](<https://devfeed.tech/topics/environment-variables.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Software](<https://devfeed.tech/topics/software.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [environment](<https://devfeed.tech/tags/environment.md>), [environment-variables](<https://devfeed.tech/tags/environment-variables.md>), [error](<https://devfeed.tech/tags/error.md>), [failed](<https://devfeed.tech/tags/failed.md>), [framework](<https://devfeed.tech/tags/framework.md>), [free](<https://devfeed.tech/tags/free.md>), [function](<https://devfeed.tech/tags/function.md>), [installation](<https://devfeed.tech/tags/installation.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>), [report](<https://devfeed.tech/tags/report.md>), [software](<https://devfeed.tech/tags/software.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

This second weekly report examines Word 2010 installation on ReactOS. It describes missing environment variables affecting the OSPPSVC service, a failed MSI action with error 1603, and a workaround that allowed installation to finish while leaving the underlying failure unresolved.

### Source excerpt

In this second report I continue my investigations on the Word 2010 installation. Last time we saw that our services (and in particular the "Office Software Protection Platform" OSPPSVC service) were started without a complete environment block, and as a result some needed environment variables were missing, causing e.g. OSPPSVC to fail opening some of its files. We now analyse what happens after my local fix (NOTE: I have not committed the fix yet, as I validate it in my local installation first).

## The Boosting Margin, or Why Boosting Doesn't Overfit

DevFeed: [The Boosting Margin, or Why Boosting Doesn't Overfit](<https://devfeed.tech/articles/the-boosting-margin-or-why-boosting-doesn-t-overfit-40388.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2015/09/21/the-boosting-margin-or-why-boosting-doesnt-overfit/>)

Published: 2015-09-21T11:33:00Z

Content type: article

Language: en

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

Topics: [machine learning overfitting](<https://devfeed.tech/topics/machine-learning-overfitting.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [generalization in machine learning](<https://devfeed.tech/topics/generalization-in-machine-learning.md>), [Occam's razor machine learning](<https://devfeed.tech/topics/occam-s-razor-machine-learning.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [boosting](<https://devfeed.tech/tags/boosting.md>), [chernoff-bound](<https://devfeed.tech/tags/chernoff-bound.md>), [classficiation](<https://devfeed.tech/tags/classficiation.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [conditional-probability](<https://devfeed.tech/tags/conditional-probability.md>), [error](<https://devfeed.tech/tags/error.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [margins](<https://devfeed.tech/tags/margins.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [model](<https://devfeed.tech/tags/model.md>), [occam-s-razor](<https://devfeed.tech/tags/occam-s-razor.md>), [overfitting](<https://devfeed.tech/tags/overfitting.md>), [training-data](<https://devfeed.tech/tags/training-data.md>), [vc-dimension](<https://devfeed.tech/tags/vc-dimension.md>)

### AI overview

This article explains why boosting can continue improving generalization after reaching zero training error. It introduces the margin-based theoretical explanation for this behavior and defines the confidence and margin of AdaBoost classifiers.

### Source excerpt

There's a well-understood phenomenon in machine learning called overfitting. The idea is best shown by a graph: overfitting Let me explain. The vertical axis represents the error of a hypothesis. The horizontal axis represents the complexity of the hypothesis. The blue curve represents the error of a machine learning algorithm's output on its training data, and the red curve represents the generalization of that hypothesis to the real world. The overfitting phenomenon is marker in the middle of the graph, before which the training error and generalization error both go down, but after which the training error continues to fall while the generalization error rises.

[Next page](<https://devfeed.tech/tags/error.md?cursor=WyIyMDE1LTA5LTIxVDExOjMzOjAwKzAwOjAwIiwgIjNhMDM4OTdmLWVmZTctNDNkZS05OWZhLTYzZDY0ZjdlNjgzZCJd>)