# rotation

Published articles for rotation.

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

## Rotating Expiring X.509 Certificates in Percona Server for MongoDB with Minimal Service Interruption

DevFeed: [Rotating Expiring X.509 Certificates in Percona Server for MongoDB with Minimal Service Interruption](<https://devfeed.tech/articles/rotating-expiring-x-509-certificates-in-percona-server-for-mongodb-with-minimal-service-interruption-14114.md>)

Original publisher: [Read original article](<https://www.percona.com/blog/rotating-expiring-x-509-certificates-in-percona-server-for-mongodb-with-minimal-service-interruption/>)

Author: Ivan Groenewold

Published: 2026-08-31T11:48:11Z

Content type: tutorial

Language: en

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

Topics: [MongoDB](<https://devfeed.tech/topics/mongodb.md>), [TLS (Transport Layer Security)](<https://devfeed.tech/topics/tls.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [certificates](<https://devfeed.tech/tags/certificates.md>), [insight-for-dbas](<https://devfeed.tech/tags/insight-for-dbas.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [private-key](<https://devfeed.tech/tags/private-key.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [security](<https://devfeed.tech/tags/security.md>), [tls](<https://devfeed.tech/tags/tls.md>), [x509](<https://devfeed.tech/tags/x509.md>)

### AI overview

This tutorial explains how to renew same-CA X.509 certificates in Percona Server for MongoDB with minimal service interruption. It covers reloading TLS material with rotateCertificates, certificate and private-key configuration, limitations, validation, and cases where hot reload should not be used.

### Source excerpt

Expired TLS certificates can prevent new client connections and, when X.509 is used for Percona Server for MongoDB internal authentication, also prevent members of a replica set or sharded cluster from authenticating to one another. In this post we will discuss performing a same-CA renewal: replacement certificates for server, member, and client leaf are issued ... Continued The post Rotating Expiring X.509 Certificates in Percona Server for MongoDB with Minimal Service Interruption appeared first on Percona.

## Refresh token behavior across fourteen providers

DevFeed: [Refresh token behavior across fourteen providers](<https://devfeed.tech/articles/refresh-token-behavior-across-fourteen-providers-16049.md>)

Original publisher: [Read original article](<https://workos.com/blog/refresh-token-behavior-across-fourteen-providers>)

Author: WorkOS

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

Content type: article

Language: en

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

Topics: [OAuth](<https://devfeed.tech/topics/oauth.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [providers](<https://devfeed.tech/tags/providers.md>), [retry](<https://devfeed.tech/tags/retry.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [token](<https://devfeed.tech/tags/token.md>), [tokens](<https://devfeed.tech/tags/tokens.md>)

### AI overview

This article compares documented OAuth refresh-token behavior across fourteen providers, including token rotation, expiration reporting, grace periods, and revocation on reuse. It explains how rotation affects persistence and retry handling, with examples including Google, Box, Atlassian, Dropbox, Asana, GitHub, and Salesforce.

### Source excerpt

Which providers rotate refresh tokens, which return expires_in, which give you a grace period, and which revoke on reuse. One row per provider, verified against provider documentation in August 2026.

## This custom motorized turntable makes welding easier

DevFeed: [This custom motorized turntable makes welding easier](<https://devfeed.tech/articles/this-custom-motorized-turntable-makes-welding-easier-13647.md>)

Original publisher: [Read original article](<https://blog.arduino.cc/2026/08/28/this-custom-motorized-turntable-makes-welding-easier/>)

Author: Arduino Team

Published: 2026-08-28T12:14:44Z

Content type: article

Language: en

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

Topics: [Arduino](<https://devfeed.tech/topics/arduino.md>)

Tags: [arduino](<https://devfeed.tech/tags/arduino.md>), [electronics](<https://devfeed.tech/tags/electronics.md>), [motor](<https://devfeed.tech/tags/motor.md>), [motorized-turntable](<https://devfeed.tech/tags/motorized-turntable.md>), [rotary-table](<https://devfeed.tech/tags/rotary-table.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [speed](<https://devfeed.tech/tags/speed.md>), [uno](<https://devfeed.tech/tags/uno.md>), [welding](<https://devfeed.tech/tags/welding.md>), [welding-table](<https://devfeed.tech/tags/welding-table.md>)

### AI overview

Greenhill Forge built an Arduino-controlled rotary welding table to rotate round workpieces at an adjustable, consistent speed. The design uses an Arduino UNO Rev3, a stepper motor with a gear reducer, a rotary encoder, and an OLED screen, while a ground strap provides a current path that keeps welding current away from the electronics.

### Source excerpt

MIG welding isn't very difficult -- at least not until you need to weld something at a weird angle or over a long seam. Those situations will make your welds look like they were done by an inebriated amateur. The best way to handle that is by setting yourself up to maintain stability through the [...] The post This custom motorized turntable makes welding easier appeared first on Arduino Blog.

## Multi-tenant OAuth requires credential lifecycle management beyond token isolation

DevFeed: [Multi-tenant OAuth requires credential lifecycle management beyond token isolation](<https://devfeed.tech/articles/token-isolation-is-the-easy-half-of-multi-tenant-oauth-16033.md>)

Original publisher: [Read original article](<https://workos.com/blog/multi-tenant-oauth-beyond-token-isolation>)

Author: WorkOS

Published: 2026-08-27T00:00:00Z

Content type: opinion

Language: en

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

Topics: [OAuth](<https://devfeed.tech/topics/oauth.md>), [Encryption](<https://devfeed.tech/topics/encryption.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [iam](<https://devfeed.tech/tags/iam.md>), [lifecycle](<https://devfeed.tech/tags/lifecycle.md>), [oauth](<https://devfeed.tech/tags/oauth.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [storage](<https://devfeed.tech/tags/storage.md>), [vault](<https://devfeed.tech/tags/vault.md>)

### AI overview

The article argues that token isolation and storage architecture are only the starting point for multi-tenant OAuth. The harder, ongoing problems include refresh races, key rotation, provider-wide revocations, token expiration, and external revocations without webhooks. It also explains how envelope encryption and per-tenant key contexts can support bridge-style isolation.

### Source excerpt

Storage architecture is the half you can finish. The refresh loop, key rotation, and revocation are the half that never does.

## How to store and refresh session tokens correctly with the WorkOS iOS SDK

DevFeed: [How to store and refresh session tokens correctly with the WorkOS iOS SDK](<https://devfeed.tech/articles/how-to-store-and-refresh-session-tokens-correctly-with-the-workos-ios-sdk-16022.md>)

Original publisher: [Read original article](<https://workos.com/blog/ios-sdk-token-storage-refresh-guide>)

Author: WorkOS

Published: 2026-08-18T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [SDK](<https://devfeed.tech/topics/sdk.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [JSON Web Tokens](<https://devfeed.tech/topics/jwt.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [auth](<https://devfeed.tech/tags/auth.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ios](<https://devfeed.tech/tags/ios.md>), [jwt](<https://devfeed.tech/tags/jwt.md>), [native](<https://devfeed.tech/tags/native.md>), [plist](<https://devfeed.tech/tags/plist.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [storage](<https://devfeed.tech/tags/storage.md>), [tokens](<https://devfeed.tech/tags/tokens.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains how to store and refresh session tokens with the WorkOS iOS SDK. It recommends storing access and refresh tokens in the Keychain, persisting each rotated refresh token, and distinguishing terminal refresh failures from transient network or concurrency-related failures.

### Source excerpt

A practical guide to Keychain storage, refresh token rotation, and terminal vs. transient failures on iOS

## Give a scheduled agent access to a user's Google, Slack, and Jira with no signed-in session

DevFeed: [Give a scheduled agent access to a user's Google, Slack, and Jira with no signed-in session](<https://devfeed.tech/articles/give-a-scheduled-agent-access-to-a-user-s-google-slack-and-jira-with-no-signed-in-session-16005.md>)

Original publisher: [Read original article](<https://workos.com/blog/background-agent-third-party-access-no-session-pipes>)

Author: WorkOS

Published: 2026-08-12T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [API keys](<https://devfeed.tech/topics/api-keys.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [OAuth](<https://devfeed.tech/topics/oauth.md>), [Slack](<https://devfeed.tech/topics/slack.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [api](<https://devfeed.tech/tags/api.md>), [audit](<https://devfeed.tech/tags/audit.md>), [auth0](<https://devfeed.tech/tags/auth0.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [autonomous-agents](<https://devfeed.tech/tags/autonomous-agents.md>), [browser](<https://devfeed.tech/tags/browser.md>), [google](<https://devfeed.tech/tags/google.md>), [jira](<https://devfeed.tech/tags/jira.md>), [logging](<https://devfeed.tech/tags/logging.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [scheduled](<https://devfeed.tech/tags/scheduled.md>), [scopes](<https://devfeed.tech/tags/scopes.md>), [slack](<https://devfeed.tech/tags/slack.md>), [token](<https://devfeed.tech/tags/token.md>), [tokens](<https://devfeed.tech/tags/tokens.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A tutorial showing how to give scheduled workers access to a user's Google, Slack, and Jira through WorkOS Pipes without a signed-in session. It covers scoped credential retrieval, token relay, rotation, revocation, and audit logging.

### Source excerpt

A runnable tutorial for pulling per-connection third-party credentials from WorkOS Pipes with nobody logged in, plus relay, rotation, revocation, and audit logging.

## Why stateless JWT logout is not immediate and how to revoke access

DevFeed: [Why stateless JWT logout is not immediate and how to revoke access](<https://devfeed.tech/articles/stateless-jwts-have-a-logout-problem-and-enterprise-customers-will-find-it-16063.md>)

Original publisher: [Read original article](<https://workos.com/blog/stateless-jwt-logout-problem>)

Author: WorkOS

Published: 2026-08-06T01:36:54Z

Content type: article

Language: en

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

Topics: [JSON Web Tokens](<https://devfeed.tech/topics/jwt.md>), [Security](<https://devfeed.tech/topics/security.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>)

Tags: [jwt](<https://devfeed.tech/tags/jwt.md>), [public-key](<https://devfeed.tech/tags/public-key.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [security](<https://devfeed.tech/tags/security.md>), [stateless](<https://devfeed.tech/tags/stateless.md>), [token](<https://devfeed.tech/tags/token.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

The article explains that signed stateless JWTs remain valid until expiration, so logging out or deactivating a user cannot revoke an already-issued token immediately. It compares short-lived access tokens with refresh-token rotation against a server-side denylist as approaches to revocation.

### Source excerpt

Stateless JWTs stay valid until they expire, so logout isn't instant. Here's why enterprise SCIM makes that a compliance problem -- and how to really fix it.

## Managing Environment Variables and Secrets in DevOps

DevFeed: [Managing Environment Variables and Secrets in DevOps](<https://devfeed.tech/articles/managing-environment-variables-and-secrets-in-devops-17486.md>)

Original publisher: [Read original article](<https://kodekloud.com/blog/managing-environment-variables-and-secrets-devops/>)

Author: Pramodh Kumar M

Published: 2026-08-01T13:00:47Z

Content type: tutorial

Language: en

Sources: [Kubernetes - KodeKloud Blog | DevOps, Cloud, Kubernetes, AI Tutorials & More](<https://devfeed.tech/sources/kubernetes-kodekloud-blog-devops-cloud-kubernetes-ai-tutorials-more.md>)

Topics: [DevOps](<https://devfeed.tech/topics/devops.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [GitGuardian](<https://devfeed.tech/topics/gitguardian.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Terraform](<https://devfeed.tech/topics/terraform.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>)

Tags: [ci-cd-secrets-management](<https://devfeed.tech/tags/ci-cd-secrets-management.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [collaboration-tools](<https://devfeed.tech/tags/collaboration-tools.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [container](<https://devfeed.tech/tags/container.md>), [crash](<https://devfeed.tech/tags/crash.md>), [devops](<https://devfeed.tech/tags/devops.md>), [devsecops](<https://devfeed.tech/tags/devsecops.md>), [dynamic-secrets](<https://devfeed.tech/tags/dynamic-secrets.md>), [env-file-security](<https://devfeed.tech/tags/env-file-security.md>), [environment-variables](<https://devfeed.tech/tags/environment-variables.md>), [gitguardian](<https://devfeed.tech/tags/gitguardian.md>), [github](<https://devfeed.tech/tags/github.md>), [hardcoded-credentials](<https://devfeed.tech/tags/hardcoded-credentials.md>), [hashicorp-vault](<https://devfeed.tech/tags/hashicorp-vault.md>), [jira](<https://devfeed.tech/tags/jira.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [kubernetes-secrets](<https://devfeed.tech/tags/kubernetes-secrets.md>), [leak](<https://devfeed.tech/tags/leak.md>), [managing-environment-variables-and-secrets](<https://devfeed.tech/tags/managing-environment-variables-and-secrets.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [safety](<https://devfeed.tech/tags/safety.md>), [sealed-secrets](<https://devfeed.tech/tags/sealed-secrets.md>), [secret-rotation](<https://devfeed.tech/tags/secret-rotation.md>), [secret-scanning](<https://devfeed.tech/tags/secret-scanning.md>), [secrets](<https://devfeed.tech/tags/secrets.md>), [secrets-management-best-practices](<https://devfeed.tech/tags/secrets-management-best-practices.md>), [security](<https://devfeed.tech/tags/security.md>), [storage](<https://devfeed.tech/tags/storage.md>), [terraform](<https://devfeed.tech/tags/terraform.md>), [vault](<https://devfeed.tech/tags/vault.md>)

### AI overview

A guide to managing environment variables and secrets in DevOps. It explains how secrets escape through repositories, processes, crash reports, containers, collaboration tools, Kubernetes Secrets, and Terraform state, and discusses storage, access controls, lifecycles, and rotation.

### Source excerpt

Nearly 29 million secrets were pushed to public GitHub in a single year, and most teams still discover their own leaks by accident. Here is how environment variables actually escape, and what to use instead at each stage.

## Enforce Access Token Expiry Policies in Pulumi Cloud

DevFeed: [Enforce Access Token Expiry Policies in Pulumi Cloud](<https://devfeed.tech/articles/enforce-access-token-expiry-policies-in-pulumi-cloud-18985.md>)

Original publisher: [Read original article](<https://www.pulumi.com/blog/access-token-expiry-policy/>)

Author: Devon Grove

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

Content type: release

Language: en

Sources: [Pulumi](<https://devfeed.tech/sources/pulumi.md>)

Topics: [Cloud](<https://devfeed.tech/topics/cloud.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [features](<https://devfeed.tech/tags/features.md>), [organization](<https://devfeed.tech/tags/organization.md>), [policy](<https://devfeed.tech/tags/policy.md>), [product](<https://devfeed.tech/tags/product.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [security](<https://devfeed.tech/tags/security.md>), [tokens](<https://devfeed.tech/tags/tokens.md>)

### AI overview

Pulumi Cloud organizations can enforce maximum expiry periods for access tokens. Administrators set a cap, and tokens without an expiration or with too much remaining lifetime are rejected when used against the organization.

### Source excerpt

Pulumi Cloud organizations can now enforce a maximum expiry on the access tokens used against them. Organization admins can set a cap in days, and from that point on, personal, organization, and team tokens operating on resources in the org must carry an expiration within the cap for requests to succeed. Tokens that never expire, or that have too much lifetime remaining, get rejected with an error that tells the user exactly how to regain access. Why cap token lifetimes Many organizations already have a credential rotation policy that says tokens must expire, but until now, Pulumi Cloud could only recommend an expiry at creation time. Nothing stopped a member from creating a never-expiring personal token, and nothing aged out the long-lived tokens created before your policy existed. That gap matters because a leaked token is only as dangerous as its remaining lifetime. A token that never expires is a standing liability. By adding support for access token expiry policies, Pulumi Cloud now closes the gap at the platform level. Once you've set the cap, Pulumi Cloud enforces it immediately for your organization, including for tokens that already exist. How it works In your organization's settings, navigate to Settings > Access Management > Other and scroll to Access token expiry policy: You can also get there from the Access Tokens tab, where a banner shows whether a policy is in effect -- select Edit policy: The policy is a single number: the maximum expiry, in days, for tokens used against your organization. Compliance is checked on every request, and a token complies when both of these are true: It has an expiration date. Never-expiring tokens violate any policy. Its remaining lifetime -- the time between now and its expiration -- is within the cap. Because compliance is based on remaining lifetime rather than the expiry chosen at creation, the policy is pragmatic about existing credentials: a token created a year ago with a two-year expiry becomes compliant once it has

## The Aboulafia Graph Has Dihedral Symmetry

DevFeed: [The Aboulafia Graph Has Dihedral Symmetry](<https://devfeed.tech/articles/a-wheel-the-same-forwards-and-backwards-37562.md>)

Original publisher: [Read original article](<https://blog.klipse.tech/aboulafia/2026/07/06/a-wheel-the-same-forwards-and-backwards.html>)

Author: Yehonathan Sharvit

Published: 2026-07-06T10:00:00Z

Content type: article

Language: en

Sources: [Klipse](<https://devfeed.tech/sources/klipse.md>)

Topics: [Graphs](<https://devfeed.tech/topics/graphs.md>)

Tags: [aboulafia](<https://devfeed.tech/tags/aboulafia.md>), [graph](<https://devfeed.tech/tags/graph.md>), [math](<https://devfeed.tech/tags/math.md>), [mirror](<https://devfeed.tech/tags/mirror.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [series](<https://devfeed.tech/tags/series.md>), [symmetry](<https://devfeed.tech/tags/symmetry.md>)

### AI overview

The final article in a four-part series explains the dihedral symmetry of the Aboulafia graph. It connects the graph's recursive construction to a rotation and a reflection, and describes a proof that these are its only symmetries.

### Source excerpt

Aboulafia's Tserouf - Part 4 of 4 <- Previous: Too big to draw, but yet drawable

## Introducing ESC Secret Rotation Webhooks

DevFeed: [Introducing ESC Secret Rotation Webhooks](<https://devfeed.tech/articles/introducing-esc-secret-rotation-webhooks-19008.md>)

Original publisher: [Read original article](<https://www.pulumi.com/blog/introducing-esc-secret-rotation-webhooks/>)

Author: Sean Yeh

Published: 2026-06-26T00:00:00Z

Content type: release

Language: en

Sources: [Pulumi](<https://devfeed.tech/sources/pulumi.md>)

Topics: [pulumi-esc](<https://devfeed.tech/topics/pulumi-esc.md>), [secret rotation](<https://devfeed.tech/topics/secret-rotation.md>), [notifications](<https://devfeed.tech/topics/notifications.md>), [pulumi-cloud](<https://devfeed.tech/topics/pulumi-cloud.md>), [pulumi-cli](<https://devfeed.tech/topics/pulumi-cli.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [esc](<https://devfeed.tech/tags/esc.md>), [github](<https://devfeed.tech/tags/github.md>), [notifications](<https://devfeed.tech/tags/notifications.md>), [product](<https://devfeed.tech/tags/product.md>), [pulumi](<https://devfeed.tech/tags/pulumi.md>), [pulumi-cli](<https://devfeed.tech/tags/pulumi-cli.md>), [pulumi-cloud](<https://devfeed.tech/tags/pulumi-cloud.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [secret-rotation](<https://devfeed.tech/tags/secret-rotation.md>), [secrets](<https://devfeed.tech/tags/secrets.md>), [slack](<https://devfeed.tech/tags/slack.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [webhooks](<https://devfeed.tech/tags/webhooks.md>)

### AI overview

Pulumi introduces ESC secret rotation webhooks, which trigger on successful or failed environment secret rotations. They can notify teams in Slack, refresh services using old credentials, and help detect failed rotations before outages.

### Source excerpt

Pulumi ESC centralizes your secrets and configuration, and it can automatically rotate secrets on a schedule so credentials never go stale. But a rotation is only useful if the systems that depend on it know it happened. ESC secret rotation webhooks close that gap by notifying you the moment a secret rotates. Introducing secret rotation webhooks With ESC webhooks, you can react to rotations automatically. When ESC rotates an environment's secrets, a webhook can be configured to trigger on either success or failure. Use it to notify your team in Slack, refresh services that hold the old credential, or catch a failed rotation before it causes an outage. How to configure Pulumi Cloud Console Using the Pulumi Cloud Console, you can now configure webhooks for "Environment rotation succeeded" and "Environment rotation failed" in your ESC Environment's Settings page (under Settings -> Notifications). Pulumi Service Provider You can use the Pulumi Service Provider in your Pulumi program to configure webhooks. Here is an example in TypeScript: const environmentWebhook = new service.Webhook("env-webhook", { active: true, displayName: "env-webhook", organizationName: "my-org", projectName: environment.project, environmentName: environment.name, payloadUrl: "https://example.com", filters: [WebhookFilters.EnvironmentRotationSucceeded, WebhookFilters.EnvironmentRotationFailed], }) Pulumi CLI You can also use the Pulumi CLI to configure the webhook: pulumi env webhook new my-org/project/env env-webhook \ --url https://example.com \ --event environment_rotation_succeeded \ --event environment_rotation_failed Get started Secret rotation webhooks are available now for all Pulumi ESC environments. See the webhooks documentation to get started, and share your feedback on our GitHub repository.

## Seasons time-lapse - the video

DevFeed: [Seasons time-lapse - the video](<https://devfeed.tech/articles/seasons-time-lapse-the-video-18927.md>)

Original publisher: [Read original article](<https://blog.frankel.ch/seasons-time-lapse/3/>)

Author: Nicolas Fränkel

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

Content type: tutorial

Language: en

Sources: [Nicolas Fränkel](<https://devfeed.tech/sources/nicolas-frankel.md>)

Topics: [Image](<https://devfeed.tech/topics/image.md>), [Code](<https://devfeed.tech/topics/code.md>), [DateTime](<https://devfeed.tech/topics/datetime.md>)

Tags: [art](<https://devfeed.tech/tags/art.md>), [cameras](<https://devfeed.tech/tags/cameras.md>), [code](<https://devfeed.tech/tags/code.md>), [development](<https://devfeed.tech/tags/development.md>), [images](<https://devfeed.tech/tags/images.md>), [information](<https://devfeed.tech/tags/information.md>), [location](<https://devfeed.tech/tags/location.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [model](<https://devfeed.tech/tags/model.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [pixel](<https://devfeed.tech/tags/pixel.md>), [project](<https://devfeed.tech/tags/project.md>), [python](<https://devfeed.tech/tags/python.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [screen](<https://devfeed.tech/tags/screen.md>), [speed](<https://devfeed.tech/tags/speed.md>), [time-lapse](<https://devfeed.tech/tags/time-lapse.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

The third and final post in a series explains how the author creates a time-lapse video from photographs taken from the same position over multiple years. It discusses ordering images by day of year and time of day, using EXIF metadata, and practical observations about video generation.

### Source excerpt

In the first post of this series, I focused on the project foundations: what should I do to create a video from photos taken from the same position year after year? I dedicated the second part to aligning images. It wasn't as easy as I expected. I stumbled upon new concepts, such as ORB and RANSAC. In this third and final post, I want to tackle the video creation itself, explain some 'artistic' decisions, and leave the door open to future work.

## Made in Compose: Airbnb Month Picker Dial

DevFeed: [Made in Compose: Airbnb Month Picker Dial](<https://devfeed.tech/articles/made-in-compose-airbnb-month-picker-dial-25790.md>)

Original publisher: [Read original article](<https://www.sinasamaki.com/made-in-compose-airbnb-month-picker-dial/>)

Author: sinasamaki

Published: 2026-04-17T12:55:42Z

Content type: tutorial

Language: en

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

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Canvas](<https://devfeed.tech/topics/canvas.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [canvas](<https://devfeed.tech/tags/canvas.md>), [compose](<https://devfeed.tech/tags/compose.md>), [customization](<https://devfeed.tech/tags/customization.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [render](<https://devfeed.tech/tags/render.md>), [rotation](<https://devfeed.tech/tags/rotation.md>)

### AI overview

A tutorial on recreating Airbnb's month-duration dial picker in Jetpack Compose using the ChromaDial library. It covers configuring a 12-month range, mapping values around a 330-degree sweep, styling the thumb, rendering the inactive track with Canvas, and creating a rounded active arc track.

### Source excerpt

How to create a gorgeous Dial in Jetpack Compose

## Weak AVL Tree

DevFeed: [Weak AVL Tree](<https://devfeed.tech/articles/weak-avl-tree-31118.md>)

Original publisher: [Read original article](<https://maskray.me/blog/2025-12-14-weak-avl-tree>)

Published: 2025-12-14T08:00:00Z

Content type: tutorial

Language: en

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

Topics: [Data structures](<https://devfeed.tech/topics/data-structures.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [root](<https://devfeed.tech/tags/root.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [rules](<https://devfeed.tech/tags/rules.md>)

### AI overview

This article introduces weak AVL trees as a rank-based balanced binary search tree and compares their balancing behavior with AVL and red-black trees. It describes rank differences, insertion cases, rotation bounds, and an implementation detail for encoding ranks, while noting that deletion is not yet described.

### Source excerpt

tl;dr: Weak AVL trees are replacements for AVL trees and red-black trees. The 2014 paper

## Blog: GPG Key Rotation for Falco Packages (2026)

DevFeed: [Blog: GPG Key Rotation for Falco Packages (2026)](<https://devfeed.tech/articles/blog-gpg-key-rotation-for-falco-packages-2026-32517.md>)

Original publisher: [Read original article](<https://falco.org/blog/gpg-key-rotation-2026/>)

Published: 2025-12-12T00:00:00Z

Content type: release

Language: en

Sources: [Falco - Falco](<https://devfeed.tech/sources/falco-falco.md>), [Falco - The Falco blog](<https://devfeed.tech/sources/falco-the-falco-blog.md>)

Topics: [Falco](<https://devfeed.tech/topics/falco.md>), [Security](<https://devfeed.tech/topics/security.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>), [releases](<https://devfeed.tech/topics/releases.md>), [apt](<https://devfeed.tech/topics/apt.md>)

Tags: [announcements](<https://devfeed.tech/tags/announcements.md>), [apt](<https://devfeed.tech/tags/apt.md>), [falco](<https://devfeed.tech/tags/falco.md>), [import](<https://devfeed.tech/tags/import.md>), [installation](<https://devfeed.tech/tags/installation.md>), [releases](<https://devfeed.tech/tags/releases.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [rsa](<https://devfeed.tech/tags/rsa.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

Falco maintainers are rotating the 4096-bit RSA GPG key used to sign official RPM and DEB packages because the existing key expires on January 17, 2026. The transition uses a soft launch followed by a hard cut-over, and existing users should update their keyrings before January 12, 2026.

### Source excerpt

The GPG key used to sign official Falco packages (RPM and DEB) is set to expire on January 17, 2026. To ensure the security and continuity of our software distribution, the Falco maintainers will be rotating to a new 4096-bit RSA key. We have designed a two-phase "Soft Launch" strategy to make this transition as smooth as possible, providing a one-month transition window before the old key is retired. The Rotation Plan To avoid immediate disruption, we are rolling out the new key in two distinct phases. You can follow the detailed progress in our tracking issue #3750. Phase 1: Soft Launch (Dec 12, 2025) What happens: The new GPG key has been published and added to our repository configuration. Dev Builds: Will begin using the New Key immediately. Stable Builds: No stable releases are planned for this phase. If any hotfixes are released, they will be signed with New Key as well. Key Bundle: The official key URL has been updated to serve a bundle containing both the Old (valid) and New (valid) keys. Phase 2: Hard Cut-Over (Jan 12-17, 2026) What happens: This is the maintenance window where we fully switch to the new key. Mass Resign: All existing stable packages on download.falco.org will be resigned with the New Key. Revocation: The Old Key will be officially revoked and removed from the active bundle. Impact: If you have not updated your keyring by this date, your package manager (apt or yum) will reject updates with a signature verification error. Action Items for Users We strongly recommend all users update their GPG keyring before January 12, 2026 to avoid interruption. New Users If you are installing Falco for the first time following our Install on a host (DEB,RPM) instructions, no action is required. The installation process will guide you to fetch the new key bundle, ensuring you are ready for both phases. Existing Users If you have an existing Falco installation, you must manually import the new key. We have updated the key file at our standard URL to includ

## Create animated stripes in Jetpack Compose

DevFeed: [Create animated stripes in Jetpack Compose](<https://devfeed.tech/articles/create-animated-stripes-in-jetpack-compose-25770.md>)

Original publisher: [Read original article](<https://www.sinasamaki.com/create-animated-stripes-in-jetpack-compose/>)

Author: sinasamaki

Published: 2025-12-05T18:11:39Z

Content type: tutorial

Language: en

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

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [article](<https://devfeed.tech/tags/article.md>), [building](<https://devfeed.tech/tags/building.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [design](<https://devfeed.tech/tags/design.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [learn](<https://devfeed.tech/tags/learn.md>), [list](<https://devfeed.tech/tags/list.md>), [parameter](<https://devfeed.tech/tags/parameter.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [repeat](<https://devfeed.tech/tags/repeat.md>), [rotation](<https://devfeed.tech/tags/rotation.md>)

### AI overview

A tutorial on creating and animating repeating stripe patterns in Jetpack Compose using gradients, color stops, tiling, offsets, and a helper function based on weighted colors, repetition width, and angle.

### Source excerpt

Use default gradients to create mesmerizing patterns in your app

## Zero Standing Privileges vs Credential Vaulting

DevFeed: [Zero Standing Privileges vs Credential Vaulting](<https://devfeed.tech/articles/zero-standing-privileges-vs-credential-vaulting-29984.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/zero-standing-privileges-vs-credential-vaulting/>)

Author: jpitts@goteleport.com (Jack Pitts)

Published: 2025-10-28T00:00:00Z

Content type: article

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [Zero Trust](<https://devfeed.tech/topics/zero-trust.md>), [Security](<https://devfeed.tech/topics/security.md>), [legacy](<https://devfeed.tech/topics/legacy.md>), [passwords](<https://devfeed.tech/topics/passwords.md>), [ssh](<https://devfeed.tech/topics/ssh.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [password](<https://devfeed.tech/tags/password.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [secrets](<https://devfeed.tech/tags/secrets.md>), [security](<https://devfeed.tech/tags/security.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [vault](<https://devfeed.tech/tags/vault.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>), [zero-trust](<https://devfeed.tech/tags/zero-trust.md>)

### AI overview

This article compares credential vaulting with vault-free, just-in-time and identity-based approaches to privileged access management. It examines how stored and reusable credentials may preserve standing privileges and create operational and security challenges when organizations pursue Zero Standing Privileges.

### Source excerpt

Discover how Zero Standing Privileges (ZSP) compares to credential vaulting in privileged access management and why vault-free PAM is key to true ZSP.

## Introducing ESP\_NEW\_JPEG: An Efficient JPEG Encoder and Decoder

DevFeed: [Introducing ESP\_NEW\_JPEG: An Efficient JPEG Encoder and Decoder](<https://devfeed.tech/articles/introducing-esp-new-jpeg-an-efficient-jpeg-encoder-and-decoder-13720.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/09/esp-new-jpeg-introduction/>)

Author: John Lee

Published: 2025-09-17T00:00:00Z

Content type: article

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [Library](<https://devfeed.tech/topics/library.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [Image processing](<https://devfeed.tech/topics/image-processing.md>), [Espressif](<https://devfeed.tech/topics/espressif.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [camera](<https://devfeed.tech/tags/camera.md>), [compression](<https://devfeed.tech/tags/compression.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [developers](<https://devfeed.tech/tags/developers.md>), [embedded-devices](<https://devfeed.tech/tags/embedded-devices.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [esp32-s3](<https://devfeed.tech/tags/esp32-s3.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [image-processing](<https://devfeed.tech/tags/image-processing.md>), [jpeg](<https://devfeed.tech/tags/jpeg.md>), [multimedia](<https://devfeed.tech/tags/multimedia.md>), [rotation](<https://devfeed.tech/tags/rotation.md>)

### AI overview

Espressif's ESP_NEW_JPEG component provides an optimized software JPEG encoder and decoder for resource-constrained embedded devices. The article explains JPEG compression fundamentals, introduces features such as image rotation, clipping, scaling, and block mode, and offers usage guidance.

### Source excerpt

The ESP_NEW_JPEG library from Espressif enables efficient JPEG encoding and decoding on embedded devices. This article introduces the main features of ESP_NEW_JPEG - including image rotation, clipping, scaling, and block mode - and shares key usage tips for developers.

## ESP\_IMAGE\_EFFECTS v1.0.0 Release: Image Processing for Embedded Devices

DevFeed: [ESP\_IMAGE\_EFFECTS v1.0.0 Release: Image Processing for Embedded Devices](<https://devfeed.tech/articles/esp-image-effects-release-lightweight-powerful-and-made-for-a-colorful-world-13717.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/08/announcing_esp_image_effects/>)

Author: John Lee

Published: 2025-08-29T00:00:00Z

Content type: release

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [Image processing](<https://devfeed.tech/topics/image-processing.md>), [Library](<https://devfeed.tech/topics/library.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [Microcontroller](<https://devfeed.tech/topics/microcontroller.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [image-color-space](<https://devfeed.tech/tags/image-color-space.md>), [image-crop](<https://devfeed.tech/tags/image-crop.md>), [image-effects](<https://devfeed.tech/tags/image-effects.md>), [image-processing](<https://devfeed.tech/tags/image-processing.md>), [image-rotate](<https://devfeed.tech/tags/image-rotate.md>), [image-scale](<https://devfeed.tech/tags/image-scale.md>), [library](<https://devfeed.tech/tags/library.md>), [multimedia](<https://devfeed.tech/tags/multimedia.md>), [release](<https://devfeed.tech/tags/release.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [zero-copy](<https://devfeed.tech/tags/zero-copy.md>)

### AI overview

Espressif announces ESP_IMAGE_EFFECTS v1.0.0, an image processing library for embedded devices. The article describes its unified APIs, SIMD optimization, zero-copy memory design, and support for rotation, color space conversion, and image scaling.

### Source excerpt

Espressif's ESP_IMAGE_EFFECTS component is a powerful image processing library that can do common image processing operations such as scaling, rotation, cropping, and color space conversion. This article introduces the library, shows how to use it in processing images, and provides usage examples.

## Introducing JWT Signing Keys

DevFeed: [Introducing JWT Signing Keys](<https://devfeed.tech/articles/introducing-jwt-signing-keys-416.md>)

Original publisher: [Read original article](<https://supabase.com/blog/jwt-signing-keys>)

Author: Stojan Dimitrovski

Published: 2025-07-14T07:00:00Z

Content type: release

Language: en

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

Topics: [JSON Web Tokens](<https://devfeed.tech/topics/jwt.md>), [Security](<https://devfeed.tech/topics/security.md>), [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Supabase](<https://devfeed.tech/topics/supabase.md>), [API keys](<https://devfeed.tech/topics/api-keys.md>)

Tags: [api-keys](<https://devfeed.tech/tags/api-keys.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [jwt](<https://devfeed.tech/tags/jwt.md>), [latency](<https://devfeed.tech/tags/latency.md>), [public-key](<https://devfeed.tech/tags/public-key.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [rsa](<https://devfeed.tech/tags/rsa.md>), [security](<https://devfeed.tech/tags/security.md>), [soc2](<https://devfeed.tech/tags/soc2.md>)

### AI overview

Supabase introduces asymmetric JWT signing keys for Supabase Auth, along with new API keys to support migration and improve application security. The system uses a private key for signing and a public key for local token verification, reducing dependence on the Auth server, network latency, and shared-secret management. It supports RSA and elliptic-curve signing algorithms and safer key rotation.

### Source excerpt

A new JWT signing keys system based on public key cryptography to improve your project's security and performance.

## Brushed Metal UI in Jetpack Compose

DevFeed: [Brushed Metal UI in Jetpack Compose](<https://devfeed.tech/articles/brushed-metal-ui-in-jetpack-compose-25768.md>)

Original publisher: [Read original article](<https://www.sinasamaki.com/brushed-metal-ui-in-jetpack-compose/>)

Author: sinasamaki

Published: 2025-02-14T11:52:40Z

Content type: tutorial

Language: en

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

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Canvas](<https://devfeed.tech/topics/canvas.md>), [render](<https://devfeed.tech/topics/render.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [canvas](<https://devfeed.tech/tags/canvas.md>), [compose](<https://devfeed.tech/tags/compose.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [render](<https://devfeed.tech/tags/render.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

A tutorial on recreating and animating a brushed-metal skeuomorphic UI effect in Jetpack Compose. It explains how to layer radial gradients for circular ridges and sweep gradients for rotating highlights, with colors derived from a base color.

### Source excerpt

How to create this skeuomorphic metallic effect using gradients

## Android Dynamic Animated SVGs (with Lottie Dynamic Properties)

DevFeed: [Android Dynamic Animated SVGs (with Lottie Dynamic Properties)](<https://devfeed.tech/articles/android-dynamic-animated-svgs-with-lottie-dynamic-properties-24900.md>)

Original publisher: [Read original article](<https://blog.blundellapps.co.uk/android-dynamic-animated-svgs-with-lottie-dynamic-properties/>)

Author: blundell

Published: 2025-01-04T20:24:47Z

Content type: tutorial

Language: en

Sources: [Blundell](<https://devfeed.tech/sources/blundell.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [SVG](<https://devfeed.tech/topics/svg.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [animation](<https://devfeed.tech/tags/animation.md>), [compose](<https://devfeed.tech/tags/compose.md>), [demo](<https://devfeed.tech/tags/demo.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [intermediate](<https://devfeed.tech/tags/intermediate.md>), [intermediate-tutorial-android-androiddev-animation-compose-lottie-svg](<https://devfeed.tech/tags/intermediate-tutorial-android-androiddev-animation-compose-lottie-svg.md>), [lottie](<https://devfeed.tech/tags/lottie.md>), [project](<https://devfeed.tech/tags/project.md>), [reference](<https://devfeed.tech/tags/reference.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [scale](<https://devfeed.tech/tags/scale.md>), [svg](<https://devfeed.tech/tags/svg.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A tutorial on using Lottie Dynamic Properties in Android to control animation properties such as color, opacity, scale, and rotation at runtime. It explains how to identify Lottie KeyPaths from resolved in-memory code and apply dynamic property changes to Lottie images.

### Source excerpt

Learn how to have runtime control of all parts of an animation or image, the color, opacity, scale, rotation .. any property within your SVG animation using Lottie Dynamic Properties. This tutorial is going to explain Lottie Dynamic Properties. Dynamic Properties are a way of controlling at runtime, the different parts of your animation. You [...] The post Android Dynamic Animated SVGs (with Lottie Dynamic Properties) first appeared on Blundell.

## Replacing Long-Lived GitHub Personal Access Tokens with Short-Lived Credentials Using Octo STS

DevFeed: [Replacing Long-Lived GitHub Personal Access Tokens with Short-Lived Credentials Using Octo STS](<https://devfeed.tech/articles/the-end-of-github-pats-you-can-t-leak-what-you-don-t-have-13250.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/the-end-of-github-pats-you-cant-leak-what-you-dont-have>)

Published: 2024-04-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [GitHub](<https://devfeed.tech/topics/github.md>), [Security](<https://devfeed.tech/topics/security.md>), [octo sts](<https://devfeed.tech/topics/octo-sts.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>)

Tags: [ephemerality](<https://devfeed.tech/tags/ephemerality.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [github-credentials](<https://devfeed.tech/tags/github-credentials.md>), [github-pat](<https://devfeed.tech/tags/github-pat.md>), [github-personal-access-token](<https://devfeed.tech/tags/github-personal-access-token.md>), [least-privilege](<https://devfeed.tech/tags/least-privilege.md>), [minimalism](<https://devfeed.tech/tags/minimalism.md>), [octo-sts](<https://devfeed.tech/tags/octo-sts.md>), [personal-access-token](<https://devfeed.tech/tags/personal-access-token.md>), [principle-of-ephemerality](<https://devfeed.tech/tags/principle-of-ephemerality.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [secrets](<https://devfeed.tech/tags/secrets.md>), [security](<https://devfeed.tech/tags/security.md>), [security-token-service](<https://devfeed.tech/tags/security-token-service.md>)

### AI overview

This article explains how Chainguard replaced long-lived GitHub Personal Access Tokens and other credentials with short-lived credentials across several GitHub organizations. It introduces Octo STS as a Security Token Service for GitHub credentials and describes the automation use cases that built-in GitHub Actions tokens could not support.

### Source excerpt

Ditch GitHub PATs for better security. Learn how to replace long-lived tokens and reduce your risk of leaked credentials.

## MELON: Reconstructing 3D objects from images with unknown poses

DevFeed: [MELON: Reconstructing 3D objects from images with unknown poses](<https://devfeed.tech/articles/melon-reconstructing-3d-objects-from-images-with-unknown-poses-28561.md>)

Original publisher: [Read original article](<http://blog.research.google/2024/03/melon-reconstructing-3d-objects-from.html>)

Author: Google AI (noreply@blogger.com)

Published: 2024-03-18T18:41:00Z

Content type: article

Language: en

Sources: [Google Research](<https://devfeed.tech/sources/google-research.md>)

Topics: [3D](<https://devfeed.tech/topics/3d.md>), [Computer vision](<https://devfeed.tech/topics/computer-vision.md>), [Inference](<https://devfeed.tech/topics/inference.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [3d](<https://devfeed.tech/tags/3d.md>), [computer-vision](<https://devfeed.tech/tags/computer-vision.md>), [gans](<https://devfeed.tech/tags/gans.md>), [gaussian-splatting](<https://devfeed.tech/tags/gaussian-splatting.md>), [generative](<https://devfeed.tech/tags/generative.md>), [google](<https://devfeed.tech/tags/google.md>), [images](<https://devfeed.tech/tags/images.md>), [inference](<https://devfeed.tech/tags/inference.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [models](<https://devfeed.tech/tags/models.md>), [neural](<https://devfeed.tech/tags/neural.md>), [research](<https://devfeed.tech/tags/research.md>), [rgb](<https://devfeed.tech/tags/rgb.md>), [rotation](<https://devfeed.tech/tags/rotation.md>), [techniques](<https://devfeed.tech/tags/techniques.md>), [vision](<https://devfeed.tech/tags/vision.md>)

### AI overview

This Google Research article explains the challenge of reconstructing 3D objects from a small number of images when the camera poses are unknown. It covers pose inference, pseudo-symmetries, local-minimum failures, and prior approaches including NeRF, 3D Gaussian Splatting, GAN-based methods, BARF, SAMURAI, GNeRF, VMRF, SparsePose, and RUST.

### Source excerpt

Posted by Mark Matthews, Senior Software Engineer, and Dmitry Lagun, Research Scientist, Google Research A person's prior experience and understanding of the world generally enables them to easily infer what an object looks like in whole, even if only looking at a few 2D pictures of it. Yet the capacity for a computer to reconstruct the shape of an object in 3D given only a few images has remained a difficult algorithmic problem for years. This fundamental computer vision task has applications ranging from the creation of e-commerce 3D models to autonomous vehicle navigation. A key part of the problem is how to determine the exact positions from which images were taken, known as pose inference. If camera poses are known, a range of successful techniques -- such as neural radiance fields (NeRF) or 3D Gaussian Splatting -- can reconstruct an object in 3D. But if these poses are not available, then we face a difficult "chicken and egg" problem where we could determine the poses if we knew the 3D object, but we can't reconstruct the 3D object until we know the camera poses. The problem is made harder by pseudo-symmetries -- i.e., many objects look similar when viewed from different angles. For example, square objects like a chair tend to look similar every 90° rotation. Pseudo-symmetries of an object can be revealed by rendering it on a turntable from various angles and plotting its photometric self-similarity map. Self-Similarity map of a toy truck model. Left: The model is rendered on a turntable from various azimuthal angles, θ. Right: The average L2 RGB similarity of a rendering from θ with that of θ*. The pseudo-similarities are indicated by the dashed red lines. The diagram above only visualizes one dimension of rotation. It becomes even more complex (and difficult to visualize) when introducing more degrees of freedom. Pseudo-symmetries make the problem ill-posed, with naïve approaches often converging to local minima. In practice, such an approach might mistake the

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