<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>hsb.horse | ブログ</title><description>技術メモや開発の知見をまとめた記事一覧です。</description><link>https://hsb.horse/</link><item><title>Grundlegende Richtlinie bei der Implementierung eines API-Servers mit Golang</title><link>https://hsb.horse/de/blog/golang-api-server-implementation-guidelines/</link><guid isPermaLink="true">https://hsb.horse/de/blog/golang-api-server-implementation-guidelines/</guid><description>Beim Schreiben eines API-Servers in Go habe ich meine eigenen grundlegenden Richtlinien organisiert, einschließlich Single Binary + Cobra, Operationsfokus, HTTP/CLI-Trennung, sichere Fehlerbehandlung und ordnungsgemäßes Herunterfahren.</description><pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate><category>golang</category><category>api</category><category>architecture</category><category>http</category><category>graceful-shutdown</category></item><item><title>Basic policy when implementing an API server with Golang</title><link>https://hsb.horse/en/blog/golang-api-server-implementation-guidelines/</link><guid isPermaLink="true">https://hsb.horse/en/blog/golang-api-server-implementation-guidelines/</guid><description>I have organized my own basic policies when writing an API server in Go, including single binary + cobra, operation focus, HTTP/CLI separation, secure error handling, and graceful shutdown.</description><pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate><category>golang</category><category>api</category><category>architecture</category><category>http</category><category>graceful-shutdown</category></item><item><title>Politique de base lors de la mise en œuvre d&apos;un serveur API avec Golang</title><link>https://hsb.horse/fr/blog/golang-api-server-implementation-guidelines/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/golang-api-server-implementation-guidelines/</guid><description>J&apos;ai organisé mes propres politiques de base lors de l&apos;écriture d&apos;un serveur API dans Go, y compris un binaire unique + cobra, la concentration sur les opérations, la séparation HTTP/CLI, la gestion sécurisée des erreurs et l&apos;arrêt progressif.</description><pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate><category>golang</category><category>api</category><category>architecture</category><category>http</category><category>graceful-shutdown</category></item><item><title>GolangでAPIサーバを実装するときの基本方針</title><link>https://hsb.horse/blog/golang-api-server-implementation-guidelines/</link><guid isPermaLink="true">https://hsb.horse/blog/golang-api-server-implementation-guidelines/</guid><description>単一バイナリ + cobra、Operation中心、HTTP/CLI分離、secure error handling、graceful shutdown まで、GoでAPIサーバを書くときの自分用の基本方針を整理した。</description><pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate><category>golang</category><category>api</category><category>architecture</category><category>http</category><category>graceful-shutdown</category></item><item><title>Golang에서 API 서버를 구현할 때의 기본 정책</title><link>https://hsb.horse/ko/blog/golang-api-server-implementation-guidelines/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/golang-api-server-implementation-guidelines/</guid><description>단일 바이너리 + cobra, Operation 중심, HTTP/CLI 분리, secure error handling, graceful shutdown까지 Go로 API 서버를 쓸 때 자신의 기본 방침을 정리했다.</description><pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate><category>golang</category><category>api</category><category>architecture</category><category>http</category><category>graceful-shutdown</category></item><item><title>Política básica ao implementar um servidor API com Golang</title><link>https://hsb.horse/pt/blog/golang-api-server-implementation-guidelines/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/golang-api-server-implementation-guidelines/</guid><description>Organizei minhas próprias políticas básicas ao escrever um servidor API em Go, incluindo binário único + cobra, foco na operação, separação HTTP/CLI, tratamento seguro de erros e desligamento normal.</description><pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate><category>golang</category><category>api</category><category>architecture</category><category>http</category><category>graceful-shutdown</category></item><item><title>Ein Designleitfaden zum Bau einer iOS-Self-Control-App mit der Screen-Time-API</title><link>https://hsb.horse/de/blog/ios-screen-time-api-self-control-app-guide/</link><guid isPermaLink="true">https://hsb.horse/de/blog/ios-screen-time-api-self-control-app-guide/</guid><description>Von der Sackgasse mit NEDNSProxyProvider über ein FamilyControls- + ManagedSettings-Design bis zu zwei Shield Extensions, dem Unlock-Handoff per App Group und den Grenzen eines Personal Teams. Dieser Artikel fasst das Gesamtbild einer iOS-Blockier-App mit der Screen-Time-API zusammen.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>Screen Time API</category><category>FamilyControls</category><category>ManagedSettings</category></item><item><title>A Design Guide to Building an iOS Self-Control App with the Screen Time API</title><link>https://hsb.horse/en/blog/ios-screen-time-api-self-control-app-guide/</link><guid isPermaLink="true">https://hsb.horse/en/blog/ios-screen-time-api-self-control-app-guide/</guid><description>From the NEDNSProxyProvider dead end to a FamilyControls + ManagedSettings design, the two Shield Extensions, App Group unlock handoff, and Personal Team limitations. This article summarizes the full picture of building an iOS blocking app with the Screen Time API.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>Screen Time API</category><category>FamilyControls</category><category>ManagedSettings</category></item><item><title>Guide de conception pour créer une application iOS d’autocontrôle avec l’API Screen Time</title><link>https://hsb.horse/fr/blog/ios-screen-time-api-self-control-app-guide/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/ios-screen-time-api-self-control-app-guide/</guid><description>Des pièges de NEDNSProxyProvider à l’architecture FamilyControls + ManagedSettings, aux deux Shield Extensions, au handoff de déverrouillage via App Group et aux limites du Personal Team. Voici une vue d’ensemble de la création d’une app iOS de blocage avec l’API Screen Time.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>Screen Time API</category><category>FamilyControls</category><category>ManagedSettings</category></item><item><title>iOS セルフコントロールアプリを Screen Time API で作るための設計ガイド</title><link>https://hsb.horse/blog/ios-screen-time-api-self-control-app-guide/</link><guid isPermaLink="true">https://hsb.horse/blog/ios-screen-time-api-self-control-app-guide/</guid><description>NEDNSProxyProviderの落とし穴からFamilyControls+ManagedSettingsの設計、Shield Extension 2本構成、App Groupアンロックハンドオフ、Personal Team制限まで。Screen Time APIを使ったiOSブロックアプリ開発の全体像をまとめた。</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>Screen Time API</category><category>FamilyControls</category><category>ManagedSettings</category></item><item><title>Screen Time API로 iOS 셀프 컨트롤 앱을 만들기 위한 설계 가이드</title><link>https://hsb.horse/ko/blog/ios-screen-time-api-self-control-app-guide/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/ios-screen-time-api-self-control-app-guide/</guid><description>NEDNSProxyProvider의 함정부터 FamilyControls + ManagedSettings 설계, 두 개의 Shield Extension, App Group 기반 언락 handoff, Personal Team 제약까지. Screen Time API로 iOS 차단 앱을 만드는 전체 그림을 정리했다.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>Screen Time API</category><category>FamilyControls</category><category>ManagedSettings</category></item><item><title>Guia de arquitetura para criar um app de autocontrole no iOS com a Screen Time API</title><link>https://hsb.horse/pt/blog/ios-screen-time-api-self-control-app-guide/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/ios-screen-time-api-self-control-app-guide/</guid><description>Das armadilhas do NEDNSProxyProvider ao design com FamilyControls + ManagedSettings, passando pelas duas Shield Extensions, pelo handoff de desbloqueio com App Group e pelas limitações do Personal Team. Este artigo resume a visão completa de um app iOS de bloqueio usando a Screen Time API.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>Screen Time API</category><category>FamilyControls</category><category>ManagedSettings</category></item><item><title>K-POP-Songs, die IT-Engineers hören sollten</title><link>https://hsb.horse/de/blog/kpop-for-it-engineers/</link><guid isPermaLink="true">https://hsb.horse/de/blog/kpop-for-it-engineers/</guid><description>5 empfehlenswerte K-POP-Tracks mit IT-Begriffen und Cyber-Konzepten. Darunter aespas Metaverse, NCT DREAMs Glitch und STAYCs „GPT&quot; – Musik, bei der man Technologie durch Visuals und Sound spürt.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>K-POP</category></item><item><title>K-POP Songs IT Engineers Should Listen To</title><link>https://hsb.horse/en/blog/kpop-for-it-engineers/</link><guid isPermaLink="true">https://hsb.horse/en/blog/kpop-for-it-engineers/</guid><description>5 recommended K-POP tracks featuring IT terms and cyber concepts. Picks include aespa&apos;s metaverse, NCT DREAM&apos;s glitch, and STAYC&apos;s &quot;GPT&quot; — music where you can feel technology through visuals and sound.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>K-POP</category></item><item><title>Morceaux K-POP que les ingénieurs IT devraient écouter</title><link>https://hsb.horse/fr/blog/kpop-for-it-engineers/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/kpop-for-it-engineers/</guid><description>5 titres K-POP à découvrir avec des termes informatiques et des concepts cyber. Le métaverse d&apos;aespa, le glitch de NCT DREAM, le « GPT » de STAYC — de la musique où la technologie se ressent visuellement et soniquement.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>K-POP</category></item><item><title>ITエンジニアが聞くべきK-POP楽曲</title><link>https://hsb.horse/blog/kpop-for-it-engineers/</link><guid isPermaLink="true">https://hsb.horse/blog/kpop-for-it-engineers/</guid><description>IT用語やサイバーコンセプトを取り入れたおすすめK-POP5選。aespaのメタバース、NCT DREAMのグリッチ、STAYCの「GPT」など、視覚とサウンドでテクノロジーを感じる楽曲をピックアップ。</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>K-POP</category></item><item><title>IT 엔지니어가 들어야 할 K-POP 곡</title><link>https://hsb.horse/ko/blog/kpop-for-it-engineers/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/kpop-for-it-engineers/</guid><description>IT 용어와 사이버 컨셉이 담긴 추천 K-POP 5선. aespa의 메타버스, NCT DREAM의 글리치, STAYC의 &apos;GPT&apos; 등 시각과 사운드로 테크놀로지를 느낄 수 있는 곡들을 소개합니다.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>K-POP</category></item><item><title>Músicas K-POP que engenheiros de TI devem ouvir</title><link>https://hsb.horse/pt/blog/kpop-for-it-engineers/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/kpop-for-it-engineers/</guid><description>5 faixas K-POP recomendadas com termos de TI e conceitos cibernéticos. O metaverso da aespa, o glitch do NCT DREAM, o &quot;GPT&quot; do STAYC e mais — música onde você sente a tecnologia através dos visuais e do som.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>K-POP</category></item><item><title>TypeScript Monorepo Organisieren der optimalen Lösung, Ausgabe 2026</title><link>https://hsb.horse/de/blog/typescript-monorepo-best-practice-2026/</link><guid isPermaLink="true">https://hsb.horse/de/blog/typescript-monorepo-best-practice-2026/</guid><description>Wir haben die Rollen von pnpm workspace, Turborepo, TypeScript Project References, Biome und WXT organisiert und die allgemeine einfache Lösung und die praktische Lösung mit einer 4-Paket-Struktur zusammengefasst.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>Monorepo</category><category>pnpm</category><category>Turborepo</category><category>Biome</category><category>WXT</category></item><item><title>TypeScript Monorepo Best Practices for 2026</title><link>https://hsb.horse/en/blog/typescript-monorepo-best-practice-2026/</link><guid isPermaLink="true">https://hsb.horse/en/blog/typescript-monorepo-best-practice-2026/</guid><description>A practical TypeScript monorepo guide for 2026. Compare pnpm + Turborepo vs pnpm + Biome, when to use Project References, and when each setup makes sense.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>Monorepo</category><category>pnpm</category><category>Turborepo</category><category>Biome</category><category>WXT</category></item><item><title>TypeScript Monorepo Organiser la solution optimale édition 2026</title><link>https://hsb.horse/fr/blog/typescript-monorepo-best-practice-2026/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/typescript-monorepo-best-practice-2026/</guid><description>Nous avons organisé les rôles de l&apos;espace de travail pnpm, Turborepo, TypeScript Project References, Biome et WXT, et avons résumé la solution simple à usage général et la solution pratique avec une structure en 4 packages.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>Monorepo</category><category>pnpm</category><category>Turborepo</category><category>Biome</category><category>WXT</category></item><item><title>TypeScript Monorepo 最適解を整理する 2026年版</title><link>https://hsb.horse/blog/typescript-monorepo-best-practice-2026/</link><guid isPermaLink="true">https://hsb.horse/blog/typescript-monorepo-best-practice-2026/</guid><description>pnpm workspace、Turborepo、TypeScript Project References、Biome、WXT の役割を整理し、汎用の無難解と 4 パッケージ構成での実務解を分けてまとめた。</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>Monorepo</category><category>pnpm</category><category>Turborepo</category><category>Biome</category><category>WXT</category></item><item><title>TypeScript Monorepo 최적해를 정리하는 2026년판</title><link>https://hsb.horse/ko/blog/typescript-monorepo-best-practice-2026/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/typescript-monorepo-best-practice-2026/</guid><description>pnpm workspace, Turborepo, TypeScript Project References, Biome, WXT의 역할을 정리해, 범용의 무난해와 4 패키지 구성으로의 실무해를 나누어 정리했다.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>Monorepo</category><category>pnpm</category><category>Turborepo</category><category>Biome</category><category>WXT</category></item><item><title>TypeScript Monorepo Organizando a solução ideal edição 2026</title><link>https://hsb.horse/pt/blog/typescript-monorepo-best-practice-2026/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/typescript-monorepo-best-practice-2026/</guid><description>Organizamos as funções do espaço de trabalho pnpm, Turborepo, TypeScript Project References, Biome e WXT e resumimos a solução simples de uso geral e a solução prática com uma estrutura de 4 pacotes.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>Monorepo</category><category>pnpm</category><category>Turborepo</category><category>Biome</category><category>WXT</category></item><item><title>Unlock-Handoff von der Shield Extension zur Haupt-App über App Group implementieren</title><link>https://hsb.horse/de/blog/app-group-unlock-handoff/</link><guid isPermaLink="true">https://hsb.horse/de/blog/app-group-unlock-handoff/</guid><description>Die Haupt-App kann nicht direkt aus ShieldActionDelegate gestartet werden. Dieser Artikel beschreibt ein Handoff-Muster, bei dem die Extension eine Unlock-Anfrage im geteilten App-Group-Speicher ablegt und die App sie später ausliest.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>ManagedSettings</category><category>ShieldActionDelegate</category><category>App Group</category></item><item><title>Implement Unlock Handoff from Shield Extension to the Main App via App Group</title><link>https://hsb.horse/en/blog/app-group-unlock-handoff/</link><guid isPermaLink="true">https://hsb.horse/en/blog/app-group-unlock-handoff/</guid><description>You cannot launch the main app directly from ShieldActionDelegate. This explains a handoff pattern where the extension writes an unlock request into App Group shared storage and the app reads it later.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>ManagedSettings</category><category>ShieldActionDelegate</category><category>App Group</category></item><item><title>Implémenter le déverrouillage depuis Shield Extension vers l’app principale via App Group</title><link>https://hsb.horse/fr/blog/app-group-unlock-handoff/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/app-group-unlock-handoff/</guid><description>Il est impossible de lancer directement l’app principale depuis ShieldActionDelegate. Voici un modèle de handoff où l’extension écrit une demande de déverrouillage dans le stockage partagé App Group et où l’app la lit ensuite.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>ManagedSettings</category><category>ShieldActionDelegate</category><category>App Group</category></item><item><title>Shield ExtensionからメインアプリへのアンロックをApp Group経由で実装する</title><link>https://hsb.horse/blog/app-group-unlock-handoff/</link><guid isPermaLink="true">https://hsb.horse/blog/app-group-unlock-handoff/</guid><description>ShieldActionDelegateからメインアプリを直接起動することはできない。App Groupの共有ストレージに「アンロック要求」を書き込み、アプリ側で読み取るハンドオフパターンの設計を整理した。</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>ManagedSettings</category><category>ShieldActionDelegate</category><category>App Group</category></item><item><title>Shield Extension에서 메인 앱으로의 언락을 App Group 경유로 구현하기</title><link>https://hsb.horse/ko/blog/app-group-unlock-handoff/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/app-group-unlock-handoff/</guid><description>ShieldActionDelegate에서 메인 앱을 직접 실행할 수는 없다. App Group 공유 스토리지에 언락 요청을 기록하고 앱 쪽에서 읽어 가는 handoff 패턴을 정리했다.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>ManagedSettings</category><category>ShieldActionDelegate</category><category>App Group</category></item><item><title>Implementar o handoff de desbloqueio da Shield Extension para o app principal via App Group</title><link>https://hsb.horse/pt/blog/app-group-unlock-handoff/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/app-group-unlock-handoff/</guid><description>Não é possível iniciar o app principal diretamente a partir de ShieldActionDelegate. Este texto organiza um padrão de handoff em que a extensão grava um pedido de desbloqueio no armazenamento compartilhado do App Group e o app lê depois.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>ManagedSettings</category><category>ShieldActionDelegate</category><category>App Group</category></item><item><title>Entwerfen Sie selbstlimitierende Blöcke für iOS mit FamilyControls + ManagedSettings</title><link>https://hsb.horse/de/blog/family-controls-managed-settings-basics/</link><guid isPermaLink="true">https://hsb.horse/de/blog/family-controls-managed-settings-basics/</guid><description>Wie die drei Elemente AuthorizationCenter, FamilyActivityPicker und ManagedSettings kombiniert werden. Wir haben die Gründe, warum ein tokenbasiertes Design anstelle der Freitext-Domain-Eingabe verwendet werden sollte, und den Rahmen seiner Implementierung zusammengestellt.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>FamilyControls</category><category>ManagedSettings</category><category>Screen Time API</category></item><item><title>Design self-limiting blocks for iOS with FamilyControls + ManagedSettings</title><link>https://hsb.horse/en/blog/family-controls-managed-settings-basics/</link><guid isPermaLink="true">https://hsb.horse/en/blog/family-controls-managed-settings-basics/</guid><description>How the three elements of AuthorizationCenter, FamilyActivityPicker, and ManagedSettings are combined. We have organized the reasons why a token-based design should be used instead of free text domain input and the framework of its implementation.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>FamilyControls</category><category>ManagedSettings</category><category>Screen Time API</category></item><item><title>Concevez des blocs auto-limitants pour iOS avec FamilyControls + ManagedSettings</title><link>https://hsb.horse/fr/blog/family-controls-managed-settings-basics/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/family-controls-managed-settings-basics/</guid><description>Comment les trois éléments AuthorizationCenter, FamilyActivityPicker et ManagedSettings sont combinés. Nous avons organisé les raisons pour lesquelles une conception basée sur des jetons devrait être utilisée à la place d&apos;une saisie de domaine en texte libre et le cadre de sa mise en œuvre.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>FamilyControls</category><category>ManagedSettings</category><category>Screen Time API</category></item><item><title>FamilyControls + ManagedSettings で iOS の自己制限ブロックを設計する</title><link>https://hsb.horse/blog/family-controls-managed-settings-basics/</link><guid isPermaLink="true">https://hsb.horse/blog/family-controls-managed-settings-basics/</guid><description>AuthorizationCenter、FamilyActivityPicker、ManagedSettingsの3要素がどう組み合わさるか。フリーテキストのドメイン入力ではなくトークンベース設計にすべき理由と、その実装の骨格を整理した。</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>FamilyControls</category><category>ManagedSettings</category><category>Screen Time API</category></item><item><title>FamilyControls + ManagedSettings로 iOS 자체 제한 블록 설계</title><link>https://hsb.horse/ko/blog/family-controls-managed-settings-basics/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/family-controls-managed-settings-basics/</guid><description>AuthorizationCenter, FamilyActivityPicker, ManagedSettings의 세 가지 요소가 어떻게 결합됩니까? 프리텍스트의 도메인 입력이 아닌 토큰 기반 설계로 해야 하는 이유와 그 구현의 골격을 정리했다.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>FamilyControls</category><category>ManagedSettings</category><category>Screen Time API</category></item><item><title>Projete blocos autolimitantes para iOS com FamilyControls + ManagedSettings</title><link>https://hsb.horse/pt/blog/family-controls-managed-settings-basics/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/family-controls-managed-settings-basics/</guid><description>Como os três elementos AuthorizationCenter, FamilyActivityPicker e ManagedSettings são combinados. Organizamos as razões pelas quais um design baseado em token deve ser usado em vez da entrada de domínio de texto livre e a estrutura de sua implementação.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>FamilyControls</category><category>ManagedSettings</category><category>Screen Time API</category></item><item><title>Wählen Sie NEDNSProxyProvider nicht aus, wenn Sie einen Site-Block unter iOS erstellen</title><link>https://hsb.horse/de/blog/nednsproxyprovider-wrong-choice-for-app-store/</link><guid isPermaLink="true">https://hsb.horse/de/blog/nednsproxyprovider-wrong-choice-for-app-store/</guid><description>Wir haben eine Untersuchung der technischen und politischen Probleme bei der Verwendung von NEDNSProxyProvider in im App Store vertriebenen iOS-Apps zur Selbstkontrolle aufgezeichnet, die zu der Entscheidung führten, auf die Screen Time API zu migrieren.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>NetworkExtension</category><category>NEDNSProxyProvider</category><category>Screen Time API</category></item><item><title>Do not select NEDNSProxyProvider when creating a site block on iOS</title><link>https://hsb.horse/en/blog/nednsproxyprovider-wrong-choice-for-app-store/</link><guid isPermaLink="true">https://hsb.horse/en/blog/nednsproxyprovider-wrong-choice-for-app-store/</guid><description>We recorded an investigation into the technical and policy problems of using NEDNSProxyProvider in self-control iOS apps distributed on the App Store, leading up to the decision to migrate to the Screen Time API.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>NetworkExtension</category><category>NEDNSProxyProvider</category><category>Screen Time API</category></item><item><title>Ne sélectionnez pas NEDNSProxyProvider lors de la création d&apos;un bloc de site sur iOS</title><link>https://hsb.horse/fr/blog/nednsproxyprovider-wrong-choice-for-app-store/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/nednsproxyprovider-wrong-choice-for-app-store/</guid><description>Nous avons enregistré une enquête sur les problèmes techniques et politiques liés à l&apos;utilisation de NEDNSProxyProvider dans les applications iOS d&apos;autocontrôle distribuées sur l&apos;App Store, ce qui a conduit à la décision de migrer vers l&apos;API Screen Time.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>NetworkExtension</category><category>NEDNSProxyProvider</category><category>Screen Time API</category></item><item><title>iOSでサイトブロックを作るとき、NEDNSProxyProviderを選んではいけない</title><link>https://hsb.horse/blog/nednsproxyprovider-wrong-choice-for-app-store/</link><guid isPermaLink="true">https://hsb.horse/blog/nednsproxyprovider-wrong-choice-for-app-store/</guid><description>App Store配布のセルフコントロール系iOSアプリでNEDNSProxyProviderを使うことが技術的・ポリシー的にどう問題なのか、Screen Time APIへの移行判断に至るまでの調査を記録した。</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>NetworkExtension</category><category>NEDNSProxyProvider</category><category>Screen Time API</category></item><item><title>iOS에서 사이트 블록을 만들 때 NEDNSProxyProvider를 선택하지 마십시오.</title><link>https://hsb.horse/ko/blog/nednsproxyprovider-wrong-choice-for-app-store/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/nednsproxyprovider-wrong-choice-for-app-store/</guid><description>App Store 배포의 셀프 컨트롤 계 iOS 앱에서 NEDNSProxyProvider를 사용하는 것이 기술적·정책적으로 어떻게 문제인가, Screen Time API로의 이행 판단에 이르기까지의 조사를 기록했다.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>NetworkExtension</category><category>NEDNSProxyProvider</category><category>Screen Time API</category></item><item><title>Não selecione NEDNSProxyProvider ao criar um bloco de site no iOS</title><link>https://hsb.horse/pt/blog/nednsproxyprovider-wrong-choice-for-app-store/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/nednsproxyprovider-wrong-choice-for-app-store/</guid><description>Registramos uma investigação sobre os problemas técnicos e políticos do uso do NEDNSProxyProvider em aplicativos iOS de autocontrole distribuídos na App Store, levando à decisão de migrar para a API Screen Time.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>NetworkExtension</category><category>NEDNSProxyProvider</category><category>Screen Time API</category></item><item><title>Mit Personal Team kann Family Controls nicht auf echten Geräten getestet werden</title><link>https://hsb.horse/de/blog/personal-team-family-controls-limitation/</link><guid isPermaLink="true">https://hsb.horse/de/blog/personal-team-family-controls-limitation/</guid><description>Ein kostenloses Personal-Team-Konto kann die Family Controls Development Entitlement nicht erhalten. Das erklärt, warum die Apple Developer Program Mitgliedschaft Voraussetzung für Tests auf echten Geräten wird und was sonst betroffen ist.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Xcode</category><category>FamilyControls</category><category>Apple Developer Program</category><category>コード署名</category></item><item><title>You Cannot Run Family Controls on a Real Device with a Personal Team</title><link>https://hsb.horse/en/blog/personal-team-family-controls-limitation/</link><guid isPermaLink="true">https://hsb.horse/en/blog/personal-team-family-controls-limitation/</guid><description>A free Personal Team account cannot obtain the Family Controls Development entitlement. This explains why joining the Apple Developer Program becomes a prerequisite for real-device testing and what else is affected.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Xcode</category><category>FamilyControls</category><category>Apple Developer Program</category><category>コード署名</category></item><item><title>Avec Personal Team, il est impossible de tester Family Controls sur un vrai appareil</title><link>https://hsb.horse/fr/blog/personal-team-family-controls-limitation/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/personal-team-family-controls-limitation/</guid><description>Un compte Personal Team gratuit ne peut pas obtenir l’entitlement Family Controls Development. Voici pourquoi l’adhésion à l’Apple Developer Program devient une condition pour tester sur appareil réel et ce qui est concerné.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Xcode</category><category>FamilyControls</category><category>Apple Developer Program</category><category>コード署名</category></item><item><title>Personal Team では Family Controls の実機テストができない</title><link>https://hsb.horse/blog/personal-team-family-controls-limitation/</link><guid isPermaLink="true">https://hsb.horse/blog/personal-team-family-controls-limitation/</guid><description>無償のPersonal TeamアカウントではFamily Controls Developmentエンタイトルメントを取得できない。Apple Developer Programへの加入が実機テストの前提条件になる理由と影響範囲を整理した。</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Xcode</category><category>FamilyControls</category><category>Apple Developer Program</category><category>コード署名</category></item><item><title>Personal Team에서는 Family Controls를 실기기에서 테스트할 수 없다</title><link>https://hsb.horse/ko/blog/personal-team-family-controls-limitation/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/personal-team-family-controls-limitation/</guid><description>무료 Personal Team 계정으로는 Family Controls Development entitlement를 받을 수 없다. 왜 Apple Developer Program 가입이 실기기 테스트의 전제가 되는지와 영향 범위를 정리했다.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Xcode</category><category>FamilyControls</category><category>Apple Developer Program</category><category>コード署名</category></item><item><title>Com Personal Team, não dá para testar Family Controls em dispositivo real</title><link>https://hsb.horse/pt/blog/personal-team-family-controls-limitation/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/personal-team-family-controls-limitation/</guid><description>Uma conta gratuita de Personal Team não consegue obter a entitlement Family Controls Development. Este texto organiza por que a adesão ao Apple Developer Program vira pré-requisito para testes em dispositivo real e o que mais é afetado.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Xcode</category><category>FamilyControls</category><category>Apple Developer Program</category><category>コード署名</category></item><item><title>Eine iOS-Shield-Oberfläche braucht zwei Extensions, nicht eine</title><link>https://hsb.horse/de/blog/shield-extension-two-targets/</link><guid isPermaLink="true">https://hsb.horse/de/blog/shield-extension-two-targets/</guid><description>Der von ManagedSettings angezeigte Shield-Bildschirm besteht aus zwei separaten Targets: einer Action Extension und einer Configuration Extension. Hier sind die richtigen NSExtensionPointIdentifier und Principal Classes.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>ManagedSettings</category><category>ManagedSettingsUI</category><category>ShieldActionDelegate</category><category>ShieldConfigurationDataSource</category></item><item><title>An iOS Shield UI Needs Two Extensions, Not One</title><link>https://hsb.horse/en/blog/shield-extension-two-targets/</link><guid isPermaLink="true">https://hsb.horse/en/blog/shield-extension-two-targets/</guid><description>The shield UI shown by ManagedSettings is made up of two separate targets: an Action Extension and a Configuration Extension. This article organizes the correct NSExtensionPointIdentifier values and principal classes.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>ManagedSettings</category><category>ManagedSettingsUI</category><category>ShieldActionDelegate</category><category>ShieldConfigurationDataSource</category></item><item><title>L’interface Shield iOS nécessite deux extensions, pas une</title><link>https://hsb.horse/fr/blog/shield-extension-two-targets/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/shield-extension-two-targets/</guid><description>L’écran Shield affiché par ManagedSettings repose sur deux cibles distinctes : une Action Extension et une Configuration Extension. Voici les bons NSExtensionPointIdentifier et les classes principales à utiliser.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>ManagedSettings</category><category>ManagedSettingsUI</category><category>ShieldActionDelegate</category><category>ShieldConfigurationDataSource</category></item><item><title>iOS Shield Extension は1本ではなく2本必要という話</title><link>https://hsb.horse/blog/shield-extension-two-targets/</link><guid isPermaLink="true">https://hsb.horse/blog/shield-extension-two-targets/</guid><description>ManagedSettingsでブロックを設定したとき表示されるシールド画面は、Action ExtensionとConfiguration Extensionの2つの別ターゲットで成り立っている。正しいNSExtensionPointIdentifierとプリンシパルクラスを整理した。</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>ManagedSettings</category><category>ManagedSettingsUI</category><category>ShieldActionDelegate</category><category>ShieldConfigurationDataSource</category></item><item><title>iOS Shield UI에는 확장 하나가 아니라 둘이 필요하다</title><link>https://hsb.horse/ko/blog/shield-extension-two-targets/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/shield-extension-two-targets/</guid><description>ManagedSettings로 차단을 설정했을 때 표시되는 shield 화면은 Action Extension과 Configuration Extension이라는 두 개의 별도 타깃으로 구성된다. 올바른 NSExtensionPointIdentifier와 principal class를 정리했다.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>ManagedSettings</category><category>ManagedSettingsUI</category><category>ShieldActionDelegate</category><category>ShieldConfigurationDataSource</category></item><item><title>A interface Shield no iOS precisa de duas extensions, não de uma</title><link>https://hsb.horse/pt/blog/shield-extension-two-targets/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/shield-extension-two-targets/</guid><description>A tela Shield exibida pelo ManagedSettings é composta por dois targets separados: uma Action Extension e uma Configuration Extension. Este artigo organiza os NSExtensionPointIdentifier corretos e as principal classes.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>ManagedSettings</category><category>ManagedSettingsUI</category><category>ShieldActionDelegate</category><category>ShieldConfigurationDataSource</category></item><item><title>Best Practices für SolidJS als Skill auf skills.sh veröffentlicht</title><link>https://hsb.horse/de/blog/solidjs-best-practices-skill-on-skills-sh/</link><guid isPermaLink="true">https://hsb.horse/de/blog/solidjs-best-practices-skill-on-skills-sh/</guid><description>Aufzeichnung darüber, wie ich mit der Skill-Funktion von Claude Code Best Practices für SolidJS auf skills.sh veröffentlicht habe. Darüber, dass die Genauigkeit der description die Trigger-Genauigkeit bestimmt, und über den Prozess, Unterschiede mit with/without-Tests zu überprüfen.</description><pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate><category>claude</category><category>ai</category><category>solidjs</category><category>skills-sh</category></item><item><title>Published SolidJS Best Practices as a Skill on skills.sh</title><link>https://hsb.horse/en/blog/solidjs-best-practices-skill-on-skills-sh/</link><guid isPermaLink="true">https://hsb.horse/en/blog/solidjs-best-practices-skill-on-skills-sh/</guid><description>A record of publishing SolidJS best practices on skills.sh using Claude Code&apos;s skill feature. Covers how description precision determines trigger accuracy, and the process of verifying differences through with/without testing.</description><pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate><category>claude</category><category>ai</category><category>solidjs</category><category>skills-sh</category></item><item><title>J&apos;ai publié les bonnes pratiques SolidJS en tant que skill sur skills.sh</title><link>https://hsb.horse/fr/blog/solidjs-best-practices-skill-on-skills-sh/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/solidjs-best-practices-skill-on-skills-sh/</guid><description>Un compte-rendu de la publication des bonnes pratiques SolidJS sur skills.sh en utilisant la fonctionnalité skill de Claude Code. J&apos;y aborde comment la précision de la description détermine la précision du déclenchement, et le processus de vérification des différences par des tests with/without.</description><pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate><category>claude</category><category>ai</category><category>solidjs</category><category>skills-sh</category></item><item><title>SolidJSのベストプラクティスをskills.shでスキルとして公開した</title><link>https://hsb.horse/blog/solidjs-best-practices-skill-on-skills-sh/</link><guid isPermaLink="true">https://hsb.horse/blog/solidjs-best-practices-skill-on-skills-sh/</guid><description>Claude Codeのスキル機能を使い、SolidJSのベストプラクティスをskills.shで公開した記録。descriptionの精度がトリガー精度を決めること、with/withoutテストで差分を確認するプロセスについて書いた。</description><pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate><category>claude</category><category>ai</category><category>solidjs</category><category>skills-sh</category></item><item><title>SolidJS 베스트 프랙티스를 skills.sh에서 스킬로 공개했다</title><link>https://hsb.horse/ko/blog/solidjs-best-practices-skill-on-skills-sh/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/solidjs-best-practices-skill-on-skills-sh/</guid><description>Claude Code의 스킬 기능을 활용해 SolidJS 베스트 프랙티스를 skills.sh에 공개한 기록. description의 정확도가 트리거 정확도를 결정한다는 점, with/without 테스트로 차이를 확인하는 프로세스에 대해 썼다.</description><pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate><category>claude</category><category>ai</category><category>solidjs</category><category>skills-sh</category></item><item><title>Publiquei as boas práticas de SolidJS como skill no skills.sh</title><link>https://hsb.horse/pt/blog/solidjs-best-practices-skill-on-skills-sh/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/solidjs-best-practices-skill-on-skills-sh/</guid><description>Registro de como usei a funcionalidade de skills do Claude Code para publicar boas práticas de SolidJS no skills.sh. Escrevi sobre como a precisão da description determina a precisão do trigger e sobre o processo de verificar diferenças com testes with/without.</description><pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate><category>claude</category><category>ai</category><category>solidjs</category><category>skills-sh</category></item><item><title>M4 Mac mini Setup</title><link>https://hsb.horse/de/blog/2026-02-21-mac-mini-setup/</link><guid isPermaLink="true">https://hsb.horse/de/blog/2026-02-21-mac-mini-setup/</guid><description>Bei einer merkwürdigen Amazon-Aktion war der M4 Mac mini deutlich günstiger, und mit gesammelten Punkten wurde er noch billiger. Hier halte ich meine Setup-Arbeit fest, auch mit Blick auf eine spätere NixOS-basierte Verwaltung.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>mac</category><category>setup</category></item><item><title>M4 Mac mini Setup</title><link>https://hsb.horse/en/blog/2026-02-21-mac-mini-setup/</link><guid isPermaLink="true">https://hsb.horse/en/blog/2026-02-21-mac-mini-setup/</guid><description>I found an M4 Mac mini heavily discounted in a strange Amazon sale, used up some saved points, and bought it. This is a record of the setup work I did while keeping future NixOS-based management in mind.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>mac</category><category>setup</category></item><item><title>Configuration du M4 Mac mini</title><link>https://hsb.horse/fr/blog/2026-02-21-mac-mini-setup/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/2026-02-21-mac-mini-setup/</guid><description>J&apos;ai fini par acheter un M4 Mac mini trouvé à prix cassé lors d&apos;une étrange promo Amazon, avec encore plus de réduction grâce à mes points. Voici mes notes de configuration, en gardant en tête une future gestion basée sur NixOS.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>mac</category><category>setup</category></item><item><title>M4 Mac Miniセットアップ</title><link>https://hsb.horse/blog/2026-02-21-mac-mini-setup/</link><guid isPermaLink="true">https://hsb.horse/blog/2026-02-21-mac-mini-setup/</guid><description>Amazonの謎セールでM4 Mac miniが安くなっていたので貯まっていたポイントも使ってさらに値引きして買ってしまった。NixOSベースの管理も見据えて色々作業した記録をここに残す。</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>mac</category><category>setup</category></item><item><title>M4 Mac mini 셋업</title><link>https://hsb.horse/ko/blog/2026-02-21-mac-mini-setup/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/2026-02-21-mac-mini-setup/</guid><description>Amazon의 이상한 세일에서 M4 Mac mini가 싸게 나와서 모아 둔 포인트까지 써서 사 버렸다. 이후 NixOS 기반 관리까지 염두에 두고 진행한 셋업 작업 기록을 남긴다.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>mac</category><category>setup</category></item><item><title>Setup do M4 Mac mini</title><link>https://hsb.horse/pt/blog/2026-02-21-mac-mini-setup/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/2026-02-21-mac-mini-setup/</guid><description>Encontrei um M4 Mac mini bem mais barato em uma promoção estranha da Amazon, usei meus pontos acumulados para reduzir ainda mais o preço e acabei comprando. Este é o registro da configuração, já pensando em uma futura gestão baseada em NixOS.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>mac</category><category>setup</category></item><item><title>Alles, woran ich beim Veröffentlichen von @hsblabs/web-stream-extras auf npm gescheitert bin</title><link>https://hsb.horse/de/blog/npm-publish-web-stream-extras/</link><guid isPermaLink="true">https://hsb.horse/de/blog/npm-publish-web-stream-extras/</guid><description>Eine chronologische Aufzeichnung der Fehler beim Wechsel von manueller Veröffentlichung zu GitHub Actions + npm Trusted Publisher. Provenance-422, Tag-Reihenfolge und Pre-Publish-Validierung.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>npm</category><category>GitHub Actions</category><category>OSS</category><category>CI/CD</category></item><item><title>Everything That Went Wrong Publishing @hsblabs/web-stream-extras to npm</title><link>https://hsb.horse/en/blog/npm-publish-web-stream-extras/</link><guid isPermaLink="true">https://hsb.horse/en/blog/npm-publish-web-stream-extras/</guid><description>A chronological account of failures when moving from manual publish to GitHub Actions + npm Trusted Publisher. Covers the provenance 422, tag and version ordering, and pre-publish validation.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>npm</category><category>GitHub Actions</category><category>OSS</category><category>CI/CD</category></item><item><title>Tout ce qui a bloqué lors de la publication de @hsblabs/web-stream-extras sur npm</title><link>https://hsb.horse/fr/blog/npm-publish-web-stream-extras/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/npm-publish-web-stream-extras/</guid><description>Récit chronologique des erreurs rencontrées en passant d&apos;une publication manuelle à GitHub Actions + npm Trusted Publisher. Le 422 de provenance, l&apos;ordre des tags et la validation avant publication.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>npm</category><category>GitHub Actions</category><category>OSS</category><category>CI/CD</category></item><item><title>@hsblabs/web-stream-extras を npm publish するまでに詰まったところ全部</title><link>https://hsb.horse/blog/npm-publish-web-stream-extras/</link><guid isPermaLink="true">https://hsb.horse/blog/npm-publish-web-stream-extras/</guid><description>手動 publish から GitHub Actions + npm Trusted Publisher への移行で実際に踏んだ失敗を時系列でまとめた。provenance の 422、tag と version の順序、publish 前検証の整備まで。</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>npm</category><category>GitHub Actions</category><category>OSS</category><category>CI/CD</category></item><item><title>@hsblabs/web-stream-extras를 npm에 publish하면서 막혔던 것들 전부</title><link>https://hsb.horse/ko/blog/npm-publish-web-stream-extras/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/npm-publish-web-stream-extras/</guid><description>수동 publish에서 GitHub Actions + npm Trusted Publisher로 이전할 때 실제로 겪은 실패를 시간 순서대로 정리했다. provenance 422, 태그와 버전 순서, publish 전 검증까지.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>npm</category><category>GitHub Actions</category><category>OSS</category><category>CI/CD</category></item><item><title>Tudo que bloqueou ao publicar @hsblabs/web-stream-extras no npm</title><link>https://hsb.horse/pt/blog/npm-publish-web-stream-extras/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/npm-publish-web-stream-extras/</guid><description>Um relato cronológico das falhas ao migrar de publicação manual para GitHub Actions + npm Trusted Publisher. O 422 de provenance, ordem de tags e versões, e validação antes da publicação.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>npm</category><category>GitHub Actions</category><category>OSS</category><category>CI/CD</category></item><item><title>@hsblabs/web-stream-extras veröffentlicht</title><link>https://hsb.horse/de/blog/web-stream-extras/</link><guid isPermaLink="true">https://hsb.horse/de/blog/web-stream-extras/</guid><description>Eine kleine TypeScript-Utility-Bibliothek für ReadableStream&lt;Uint8Array&gt; in Browsern und Node.js — mit Byte-Konvertierungshelfern, Transform Streams und Stream-Verschlüsselung via Web Crypto API.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>npm</category><category>TypeScript</category><category>OSS</category><category>WebStreams</category><category>WebCrypto</category></item><item><title>Releasing @hsblabs/web-stream-extras</title><link>https://hsb.horse/en/blog/web-stream-extras/</link><guid isPermaLink="true">https://hsb.horse/en/blog/web-stream-extras/</guid><description>A small TypeScript utility library for working with ReadableStream&lt;Uint8Array&gt; in browsers and Node.js — covering byte conversion helpers, transform streams, and stream encryption via the Web Crypto API.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>npm</category><category>TypeScript</category><category>OSS</category><category>WebStreams</category><category>WebCrypto</category></item><item><title>Publication de @hsblabs/web-stream-extras</title><link>https://hsb.horse/fr/blog/web-stream-extras/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/web-stream-extras/</guid><description>Une petite bibliothèque utilitaire TypeScript pour manipuler ReadableStream&lt;Uint8Array&gt; dans le navigateur et dans Node.js, avec helpers de conversion d&apos;octets, transform streams et chiffrement de flux via Web Crypto API.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>npm</category><category>TypeScript</category><category>OSS</category><category>WebStreams</category><category>WebCrypto</category></item><item><title>@hsblabs/web-stream-extras をリリースした</title><link>https://hsb.horse/blog/web-stream-extras/</link><guid isPermaLink="true">https://hsb.horse/blog/web-stream-extras/</guid><description>ブラウザと Node.js で ReadableStream&lt;Uint8Array&gt; を扱うための小さな TypeScript ユーティリティライブラリ。バイト変換ヘルパー、トランスフォームストリーム、Web Crypto API を使ったストリーム暗号化まで。</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>npm</category><category>TypeScript</category><category>OSS</category><category>WebStreams</category><category>WebCrypto</category></item><item><title>@hsblabs/web-stream-extras를 출시했다</title><link>https://hsb.horse/ko/blog/web-stream-extras/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/web-stream-extras/</guid><description>브라우저와 Node.js에서 ReadableStream&lt;Uint8Array&gt; 를 다루기 위한 작은 TypeScript 유틸리티 라이브러리. 바이트 변환 헬퍼, 트랜스폼 스트림, Web Crypto API 기반 스트림 암호화까지 포함한다.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>npm</category><category>TypeScript</category><category>OSS</category><category>WebStreams</category><category>WebCrypto</category></item><item><title>Lançando @hsblabs/web-stream-extras</title><link>https://hsb.horse/pt/blog/web-stream-extras/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/web-stream-extras/</guid><description>Uma pequena biblioteca utilitária em TypeScript para trabalhar com ReadableStream&lt;Uint8Array&gt; no navegador e no Node.js, cobrindo helpers de conversão de bytes, transform streams e criptografia de streams com a Web Crypto API.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>npm</category><category>TypeScript</category><category>OSS</category><category>WebStreams</category><category>WebCrypto</category></item><item><title>Byte-Streams im Browser mit Web Crypto verschlüsseln</title><link>https://hsb.horse/de/blog/web-stream-extras-encryption/</link><guid isPermaLink="true">https://hsb.horse/de/blog/web-stream-extras-encryption/</guid><description>Web Crypto bietet starke kryptografische Primitive, aber kein Stream-Interface. So verschlüsseln Sie ein ReadableStream&lt;Uint8Array&gt; mit dem encryption-Subpath von @hsblabs/web-stream-extras — inklusive Dateiverschlüsselung, streambezogenem Schlüsselmanagement und Pipeline-Komposition.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>WebStreams</category><category>WebCrypto</category><category>Security</category><category>OSS</category></item><item><title>Encrypting a Byte Stream in the Browser with Web Crypto</title><link>https://hsb.horse/en/blog/web-stream-extras-encryption/</link><guid isPermaLink="true">https://hsb.horse/en/blog/web-stream-extras-encryption/</guid><description>Web Crypto gives you strong primitives but no stream interface. This post shows how to encrypt ReadableStream&lt;Uint8Array&gt; using the encryption subpath of @hsblabs/web-stream-extras — covering file encryption, per-stream key management, and pipeline composition.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>WebStreams</category><category>WebCrypto</category><category>Security</category><category>OSS</category></item><item><title>Chiffrer des flux d&apos;octets dans le navigateur avec Web Crypto</title><link>https://hsb.horse/fr/blog/web-stream-extras-encryption/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/web-stream-extras-encryption/</guid><description>Web Crypto fournit de puissantes primitives de chiffrement, mais pas d&apos;interface orientée flux. Voici comment chiffrer un ReadableStream&lt;Uint8Array&gt; avec le sous-chemin encryption de @hsblabs/web-stream-extras — chiffrement de fichiers, gestion de clés par flux et composition dans des pipelines.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>WebStreams</category><category>WebCrypto</category><category>Security</category><category>OSS</category></item><item><title>Web Crypto でバイトストリームをブラウザ上で暗号化する</title><link>https://hsb.horse/blog/web-stream-extras-encryption/</link><guid isPermaLink="true">https://hsb.horse/blog/web-stream-extras-encryption/</guid><description>Web Crypto は強力な暗号プリミティブを提供するが、ストリーム向けのインターフェースはない。@hsblabs/web-stream-extras の encryption サブパスを使って ReadableStream&lt;Uint8Array&gt; を暗号化する方法 — ファイル暗号化、ストリームごとの鍵管理、パイプライン合成まで。</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>WebStreams</category><category>WebCrypto</category><category>Security</category><category>OSS</category></item><item><title>Web Crypto로 브라우저에서 바이트 스트림 암호화하기</title><link>https://hsb.horse/ko/blog/web-stream-extras-encryption/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/web-stream-extras-encryption/</guid><description>Web Crypto는 강력한 암호 프리미티브를 제공하지만 스트림용 인터페이스는 없다. @hsblabs/web-stream-extras 의 encryption 서브패스로 ReadableStream&lt;Uint8Array&gt; 를 암호화하는 방법, 파일 암호화, 스트림별 키 관리, 파이프라인 합성까지 정리한다.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>WebStreams</category><category>WebCrypto</category><category>Security</category><category>OSS</category></item><item><title>Criptografando byte streams no navegador com Web Crypto</title><link>https://hsb.horse/pt/blog/web-stream-extras-encryption/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/web-stream-extras-encryption/</guid><description>A Web Crypto oferece primitivas criptográficas fortes, mas não uma interface orientada a streams. Veja como criptografar um ReadableStream&lt;Uint8Array&gt; com o subcaminho encryption de @hsblabs/web-stream-extras — incluindo criptografia de arquivos, gestão de chaves por stream e composição em pipelines.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>WebStreams</category><category>WebCrypto</category><category>Security</category><category>OSS</category></item><item><title>Ich hatte es satt, denselben Web-Streams-Boilerplate immer wieder zu schreiben</title><link>https://hsb.horse/de/blog/web-stream-extras-why/</link><guid isPermaLink="true">https://hsb.horse/de/blog/web-stream-extras-why/</guid><description>Warum ich wiederkehrende ReadableStream&lt;Uint8Array&gt;-Utilities in @hsblabs/web-stream-extras gebündelt habe. Die drei Muster, die ständig wiederkamen, die ByteTransformStream-Basisklasse und Stream-Verschlüsselung mit Web Crypto.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>WebStreams</category><category>WebCrypto</category><category>OSS</category></item><item><title>I Got Tired of Rewriting the Same Web Streams Boilerplate</title><link>https://hsb.horse/en/blog/web-stream-extras-why/</link><guid isPermaLink="true">https://hsb.horse/en/blog/web-stream-extras-why/</guid><description>Why I packaged my recurring ReadableStream&lt;Uint8Array&gt; utilities into @hsblabs/web-stream-extras — covering the three patterns I kept rewriting, the ByteTransformStream base, and stream encryption via Web Crypto.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>WebStreams</category><category>WebCrypto</category><category>OSS</category></item><item><title>J&apos;en avais assez de réécrire le même boilerplate Web Streams</title><link>https://hsb.horse/fr/blog/web-stream-extras-why/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/web-stream-extras-why/</guid><description>Pourquoi j&apos;ai fini par regrouper des utilitaires ReadableStream&lt;Uint8Array&gt; dans @hsblabs/web-stream-extras. Les trois motifs qui revenaient sans cesse, la classe de base ByteTransformStream et le chiffrement de flux avec Web Crypto.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>WebStreams</category><category>WebCrypto</category><category>OSS</category></item><item><title>同じ Web Streams のボイラープレートを書き続けるのに飽きた</title><link>https://hsb.horse/blog/web-stream-extras-why/</link><guid isPermaLink="true">https://hsb.horse/blog/web-stream-extras-why/</guid><description>何度も書き直していた ReadableStream&lt;Uint8Array&gt; のユーティリティを @hsblabs/web-stream-extras にまとめた理由。繰り返し書いていた3つのパターン、ByteTransformStream 基底クラス、Web Crypto を使ったストリーム暗号化まで。</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>WebStreams</category><category>WebCrypto</category><category>OSS</category></item><item><title>같은 Web Streams 보일러플레이트를 계속 쓰는 데 지쳤다</title><link>https://hsb.horse/ko/blog/web-stream-extras-why/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/web-stream-extras-why/</guid><description>ReadableStream&lt;Uint8Array&gt; 유틸리티를 반복해서 다시 작성하다가 @hsblabs/web-stream-extras로 묶게 된 이유. 계속 반복되던 세 가지 패턴, ByteTransformStream 기반 클래스, Web Crypto 기반 스트림 암호화까지 정리한다.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>WebStreams</category><category>WebCrypto</category><category>OSS</category></item><item><title>Cansei de continuar escrevendo o mesmo boilerplate de Web Streams</title><link>https://hsb.horse/pt/blog/web-stream-extras-why/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/web-stream-extras-why/</guid><description>Por que reuni utilitários recorrentes de ReadableStream&lt;Uint8Array&gt; em @hsblabs/web-stream-extras. Os três padrões que eu repetia sempre, a classe base ByteTransformStream e a criptografia de stream com Web Crypto.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>TypeScript</category><category>WebStreams</category><category>WebCrypto</category><category>OSS</category></item><item><title>AWS Cross-Region VPC Peering Fehlschlag</title><link>https://hsb.horse/de/blog/aws-cross-region-vpc-peering-peer-region-trap/</link><guid isPermaLink="true">https://hsb.horse/de/blog/aws-cross-region-vpc-peering-peer-region-trap/</guid><description>Hängen geblieben beim Einrichten des VPC Peerings zwischen Osaka und Tokio. --peer-region vergessen, failed-Status, konnte nicht löschen.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><category>aws</category><category>vpc-peering</category><category>cross-region</category><category>troubleshooting</category></item><item><title>AWS Cross-Region VPC Peering Failure Log</title><link>https://hsb.horse/en/blog/aws-cross-region-vpc-peering-peer-region-trap/</link><guid isPermaLink="true">https://hsb.horse/en/blog/aws-cross-region-vpc-peering-peer-region-trap/</guid><description>Got stuck setting up VPC peering between Osaka and Tokyo. Forgot --peer-region, ended up in failed state, couldn&apos;t delete it.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><category>aws</category><category>vpc-peering</category><category>cross-region</category><category>troubleshooting</category></item><item><title>Échec du VPC Peering AWS Cross-Région</title><link>https://hsb.horse/fr/blog/aws-cross-region-vpc-peering-peer-region-trap/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/aws-cross-region-vpc-peering-peer-region-trap/</guid><description>Bloqué lors de la configuration du VPC peering entre Osaka et Tokyo. Oubli de --peer-region, état failed, impossible à supprimer.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><category>aws</category><category>vpc-peering</category><category>cross-region</category><category>troubleshooting</category></item><item><title>AWSクロスリージョンVPCピアリング 失敗ログ</title><link>https://hsb.horse/blog/aws-cross-region-vpc-peering-peer-region-trap/</link><guid isPermaLink="true">https://hsb.horse/blog/aws-cross-region-vpc-peering-peer-region-trap/</guid><description>大阪-東京間のVPCピアリング設定でハマった。--peer-region忘れでfailed状態になり、削除もできなくなった件。</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><category>aws</category><category>vpc-peering</category><category>cross-region</category><category>troubleshooting</category></item><item><title>AWS Cross-Region VPC Peering 失敗ログ</title><link>https://hsb.horse/ko/blog/aws-cross-region-vpc-peering-peer-region-trap/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/aws-cross-region-vpc-peering-peer-region-trap/</guid><description>大阪と東京のVPCピアリング設定でハマった。--peer-region忘れでfailed状態になり、削除もできなくなった件。</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><category>aws</category><category>vpc-peering</category><category>cross-region</category><category>troubleshooting</category></item><item><title>Falha no VPC Peering AWS Cross-Region</title><link>https://hsb.horse/pt/blog/aws-cross-region-vpc-peering-peer-region-trap/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/aws-cross-region-vpc-peering-peer-region-trap/</guid><description>Travado configurando VPC peering entre Osaka e Tóquio. Esqueci o --peer-region, ficou em estado failed, não consegui deletar.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><category>aws</category><category>vpc-peering</category><category>cross-region</category><category>troubleshooting</category></item><item><title>Meine Notizen zu `Cache-Control: max-age=3, must-revalidate`</title><link>https://hsb.horse/de/blog/cache-control-micro-caching-strategy/</link><guid isPermaLink="true">https://hsb.horse/de/blog/cache-control-micro-caching-strategy/</guid><description>Eine Einordnung des Verhaltens hinter einer sogenannten Micro-Caching-Konfiguration mit Cache-Control. Dieser Artikel erklärt, was `max-age=3` zusammen mit `must-revalidate` praktisch bewirkt, wie sich das zeitlich verhält und wo es sinnvoll ist.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><category>http</category><category>cache</category><category>performance</category></item><item><title>My Notes on `Cache-Control: max-age=3, must-revalidate`</title><link>https://hsb.horse/en/blog/cache-control-micro-caching-strategy/</link><guid isPermaLink="true">https://hsb.horse/en/blog/cache-control-micro-caching-strategy/</guid><description>A breakdown of the behavior behind a micro-caching Cache-Control setting. This article covers what `max-age=3` plus `must-revalidate` actually does, a timeline of how it behaves, and concrete use cases.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><category>http</category><category>cache</category><category>performance</category></item><item><title>Mes notes sur `Cache-Control: max-age=3, must-revalidate`</title><link>https://hsb.horse/fr/blog/cache-control-micro-caching-strategy/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/cache-control-micro-caching-strategy/</guid><description>Une mise au clair du comportement d’une configuration Cache-Control dite de micro-caching. Cet article explique ce que produit réellement la combinaison `max-age=3` + `must-revalidate`, son déroulé dans le temps et des cas d’usage concrets.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><category>http</category><category>cache</category><category>performance</category></item><item><title>Cache-Control: max-age=3, must-revalidateを自分なりに整理する</title><link>https://hsb.horse/blog/cache-control-micro-caching-strategy/</link><guid isPermaLink="true">https://hsb.horse/blog/cache-control-micro-caching-strategy/</guid><description>マイクロキャッシングと呼ばれるCache-Control設定の挙動を整理。max-age=3とmust-revalidateの組み合わせがもたらす効果、時系列での動作フロー、具体的なユースケースをまとめる。</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><category>http</category><category>cache</category><category>performance</category></item><item><title>`Cache-Control: max-age=3, must-revalidate`를 내 방식대로 정리해 보기</title><link>https://hsb.horse/ko/blog/cache-control-micro-caching-strategy/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/cache-control-micro-caching-strategy/</guid><description>마이크로 캐싱이라고 불리는 Cache-Control 설정의 동작을 정리했다. `max-age=3`와 `must-revalidate` 조합이 실제로 무엇을 의미하는지, 시간 순서에 따른 동작 흐름과 구체적인 활용 사례를 다룬다.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><category>http</category><category>cache</category><category>performance</category></item><item><title>Minhas notas sobre `Cache-Control: max-age=3, must-revalidate`</title><link>https://hsb.horse/pt/blog/cache-control-micro-caching-strategy/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/cache-control-micro-caching-strategy/</guid><description>Uma organização do comportamento por trás de uma configuração de Cache-Control conhecida como micro-caching. Este artigo explica o que a combinação `max-age=3` com `must-revalidate` faz na prática, sua linha do tempo de funcionamento e casos de uso concretos.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><category>http</category><category>cache</category><category>performance</category></item><item><title>Implementierung eines nur für Entwicklung vorgesehenen Live-Editors in Astro-Projekten</title><link>https://hsb.horse/de/blog/astro-live-editor-implementation/</link><guid isPermaLink="true">https://hsb.horse/de/blog/astro-live-editor-implementation/</guid><description>So implementieren Sie einen browserbasierten Editor, der nur im Entwicklungsmodus in Astro funktioniert. Verwenden Sie Vite-Middleware und React, um das Content-Management während der Entwicklung komfortabel zu gestalten, ohne die Produktions-Builds zu beeinflussen.</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><category>astro</category><category>react</category><category>typescript</category><category>vite</category></item><item><title>Implementing a Development-Only Live Editor in Astro Projects</title><link>https://hsb.horse/en/blog/astro-live-editor-implementation/</link><guid isPermaLink="true">https://hsb.horse/en/blog/astro-live-editor-implementation/</guid><description>How to implement a browser-based editor limited to development mode in Astro. Using Vite middleware and React to make development content management comfortable without affecting production builds at all.</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><category>astro</category><category>react</category><category>typescript</category><category>vite</category></item><item><title>Implémenter un éditeur Live réservé au développement dans les projets Astro</title><link>https://hsb.horse/fr/blog/astro-live-editor-implementation/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/astro-live-editor-implementation/</guid><description>Comment implémenter un éditeur basé sur navigateur limité au mode développement dans Astro. Utiliser le middleware Vite et React pour rendre la gestion de contenu en développement confortable sans affecter les builds de production.</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><category>astro</category><category>react</category><category>typescript</category><category>vite</category></item><item><title>Astroプロジェクトに開発専用Liveエディタを実装する</title><link>https://hsb.horse/blog/astro-live-editor-implementation/</link><guid isPermaLink="true">https://hsb.horse/blog/astro-live-editor-implementation/</guid><description>Astroで開発モード限定のブラウザエディタを実装する方法。ViteミドルウェアとReactで、本番ビルドに一切影響を及ぼさずに、開発中のコンテンツ管理を快適にする手順を整理。</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><category>astro</category><category>react</category><category>typescript</category><category>vite</category></item><item><title>Astro 프로젝트에 개발 전용 Live 에디터 구현하기</title><link>https://hsb.horse/ko/blog/astro-live-editor-implementation/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/astro-live-editor-implementation/</guid><description>Astro에서 개발 모드 전용 브라우저 에디터를 구현하는 방법. Vite 미들웨어와 React를 사용하여 프로덕션 빌드에 전혀 영향을 주지 않으면서 개발 중 콘텐츠 관리를 편리하게 만드는 절차를 정리.</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><category>astro</category><category>react</category><category>typescript</category><category>vite</category></item><item><title>Implementando um Editor Live Exclusivo para Desenvolvimento em Projetos Astro</title><link>https://hsb.horse/pt/blog/astro-live-editor-implementation/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/astro-live-editor-implementation/</guid><description>Como implementar um editor baseado em navegador limitado ao modo de desenvolvimento no Astro. Usando middleware Vite e React para tornar o gerenciamento de conteúdo durante o desenvolvimento confortável sem afetar os builds de produção.</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><category>astro</category><category>react</category><category>typescript</category><category>vite</category></item><item><title>Mobile App-Konfiguration aus Sicht eines Web-Engineers: Ansatz zum Abrufen von Metadaten beim Start</title><link>https://hsb.horse/de/blog/mobile-app-metadata-config-approach/</link><guid isPermaLink="true">https://hsb.horse/de/blog/mobile-app-metadata-config-approach/</guid><description>Organisation der Herausforderungen bei der Domänenverwaltung und Versionskontrolle mobiler Apps aus der Perspektive von Web-Frontend- und Infrastrukturerfahrung. Vorschlag eines Ansatzes zum Abrufen von Metadaten beim Start mittels CloudFront und S3, mit Vergleichen zu bestehenden Lösungen wie Firebase Remote Config.</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><category>mobile</category><category>infrastructure</category><category>aws</category><category>architecture</category><category>app-configuration</category></item><item><title>Mobile App Configuration from a Web Engineer&apos;s Perspective: Startup-Time Metadata Retrieval Approach</title><link>https://hsb.horse/en/blog/mobile-app-metadata-config-approach/</link><guid isPermaLink="true">https://hsb.horse/en/blog/mobile-app-metadata-config-approach/</guid><description>Organizing challenges in mobile app domain management and versioning from the perspective of web frontend and infrastructure experience. Proposing a startup-time metadata retrieval approach using CloudFront and S3, with comparisons to existing solutions like Firebase Remote Config.</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><category>mobile</category><category>infrastructure</category><category>aws</category><category>architecture</category><category>app-configuration</category></item><item><title>Configuration d&apos;applications mobiles du point de vue d&apos;un ingénieur web : approche de récupération des métadonnées au démarrage</title><link>https://hsb.horse/fr/blog/mobile-app-metadata-config-approach/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/mobile-app-metadata-config-approach/</guid><description>Organisation des défis de gestion de domaine et de versioning des applications mobiles à partir de l&apos;expérience du frontend web et de l&apos;infrastructure. Proposition d&apos;une approche de récupération des métadonnées au démarrage via CloudFront et S3, avec comparaisons avec les solutions existantes comme Firebase Remote Config.</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><category>mobile</category><category>infrastructure</category><category>aws</category><category>architecture</category><category>app-configuration</category></item><item><title>Webエンジニアが考えるモバイルアプリの設定管理：起動時メタデータ取得アプローチ</title><link>https://hsb.horse/blog/mobile-app-metadata-config-approach/</link><guid isPermaLink="true">https://hsb.horse/blog/mobile-app-metadata-config-approach/</guid><description>Webフロントエンドとインフラの経験から、モバイルアプリのドメイン管理やバージョニングの課題を整理。CloudFront+S3による起動時メタデータ取得方式を提案し、Firebase Remote Configなどの既存ソリューションとの比較も交えて考察する。</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><category>mobile</category><category>infrastructure</category><category>aws</category><category>architecture</category><category>app-configuration</category></item><item><title>웹 엔지니어가 생각하는 모바일 앱 설정 관리: 시작 시 메타데이터 가져오기 접근법</title><link>https://hsb.horse/ko/blog/mobile-app-metadata-config-approach/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/mobile-app-metadata-config-approach/</guid><description>웹 프론트엔드와 인프라 경험에서 모바일 앱 도메인 관리 및 버저닝 과제를 정리합니다. CloudFront+S3를 활용한 시작 시 메타데이터 가져오기 방식을 제안하고, Firebase Remote Config 등의 기존 솔루션과의 비교도 함께 살펴 봅니다.</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><category>mobile</category><category>infrastructure</category><category>aws</category><category>architecture</category><category>app-configuration</category></item><item><title>Configuração de aplicativos móveis do ponto de vista de um engenheiro web: abordagem de recuperação de metadados na inicialização</title><link>https://hsb.horse/pt/blog/mobile-app-metadata-config-approach/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/mobile-app-metadata-config-approach/</guid><description>Organização dos desafios de gerenciamento de domínio e versionamento de aplicativos móveis a partir da experiência de frontend web e infraestrutura. Proposta de uma abordagem de recuperação de metadados na inicialização usando CloudFront e S3, com comparações com soluções existentes como Firebase Remote Config.</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><category>mobile</category><category>infrastructure</category><category>aws</category><category>architecture</category><category>app-configuration</category></item><item><title>Ursache und Lösungsweg für ein /blog-404 unter Astro + bun dev</title><link>https://hsb.horse/de/blog/astro-dev-blog-404-directory-collision/</link><guid isPermaLink="true">https://hsb.horse/de/blog/astro-dev-blog-404-directory-collision/</guid><description>So lässt sich ein /blog-404 unter Astro + bun dev in der Reihenfolge Link-Prüfung, Routen-Generierung und Auslieferungspfad sauber eingrenzen. Enthält den Fix für die Verzeichnis-Kollision.</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><category>astro</category><category>bun</category><category>troubleshooting</category><category>routing</category><category>i18n</category></item><item><title>Why /blog Returns 404 in Astro + bun dev and How to Fix It</title><link>https://hsb.horse/en/blog/astro-dev-blog-404-directory-collision/</link><guid isPermaLink="true">https://hsb.horse/en/blog/astro-dev-blog-404-directory-collision/</guid><description>A practical troubleshooting flow for /blog 404 under Astro + bun dev, from link checks to route output and delivery path inspection. Includes the directory-name collision fix.</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><category>astro</category><category>bun</category><category>troubleshooting</category><category>routing</category><category>i18n</category></item><item><title>Cause et résolution d’un 404 sur /blog avec Astro + bun dev</title><link>https://hsb.horse/fr/blog/astro-dev-blog-404-directory-collision/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/astro-dev-blog-404-directory-collision/</guid><description>Comment isoler un 404 sur /blog avec Astro + bun dev en vérifiant les liens, la génération des routes puis le chemin de livraison. Inclut le correctif de collision de répertoire.</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><category>astro</category><category>bun</category><category>troubleshooting</category><category>routing</category><category>i18n</category></item><item><title>Astro + bun dev で /blog が 404 になる原因と解決手順</title><link>https://hsb.horse/blog/astro-dev-blog-404-directory-collision/</link><guid isPermaLink="true">https://hsb.horse/blog/astro-dev-blog-404-directory-collision/</guid><description>Astro + bun dev で /blog が 404 になる問題を、リンク確認・ルート生成・配信経路の順で切り分けて、ディレクトリ名衝突が原因であったことを突き止めるまで。</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><category>astro</category><category>bun</category><category>troubleshooting</category><category>routing</category><category>i18n</category></item><item><title>Astro + bun dev 환경에서 /blog 404의 원인과 해결 절차</title><link>https://hsb.horse/ko/blog/astro-dev-blog-404-directory-collision/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/astro-dev-blog-404-directory-collision/</guid><description>Astro + bun dev에서 /blog 404를 링크 확인, 라우트 생성, 전달 경로 순서로 분리해 진단하는 방법입니다. 디렉터리 충돌 수정 방법까지 포함합니다.</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><category>astro</category><category>bun</category><category>troubleshooting</category><category>routing</category><category>i18n</category></item><item><title>Por que /blog retorna 404 no Astro + bun dev e como corrigir</title><link>https://hsb.horse/pt/blog/astro-dev-blog-404-directory-collision/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/astro-dev-blog-404-directory-collision/</guid><description>Um fluxo prático de troubleshooting para 404 em /blog com Astro + bun dev, da verificação de links à inspeção de rotas e caminho de entrega. Inclui a correção de colisão de nome de diretório.</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><category>astro</category><category>bun</category><category>troubleshooting</category><category>routing</category><category>i18n</category></item><item><title>mise-Versionierung auf Codex Cloud reparieren, wenn sie nicht greift</title><link>https://hsb.horse/de/blog/codex-cloud-mise-bun-troubleshooting/</link><guid isPermaLink="true">https://hsb.horse/de/blog/codex-cloud-mise-bun-troubleshooting/</guid><description>mise install bun gelingt, doch bun liefert command not found. Ursache und Lösung mit setup.sh, mise use -g und mise activate.</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><category>codex</category><category>mise</category><category>bun</category><category>troubleshooting</category><category>devenv</category></item><item><title>How to Fix mise Version Pinning Not Working on Codex Cloud</title><link>https://hsb.horse/en/blog/codex-cloud-mise-bun-troubleshooting/</link><guid isPermaLink="true">https://hsb.horse/en/blog/codex-cloud-mise-bun-troubleshooting/</guid><description>mise install bun succeeds but bun returns command not found on Codex Cloud. Root cause and fix using setup.sh with mise use -g and mise activate.</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><category>codex</category><category>mise</category><category>bun</category><category>troubleshooting</category><category>devenv</category></item><item><title>Corriger le verrouillage de version mise qui ne fonctionne pas sur Codex Cloud</title><link>https://hsb.horse/fr/blog/codex-cloud-mise-bun-troubleshooting/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/codex-cloud-mise-bun-troubleshooting/</guid><description>mise install bun réussit mais bun renvoie command not found sur Codex Cloud. Cause et solution avec setup.sh, mise use -g et mise activate.</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><category>codex</category><category>mise</category><category>bun</category><category>troubleshooting</category><category>devenv</category></item><item><title>Codex Cloudでmiseのバージョン固定が効かない時の対処法</title><link>https://hsb.horse/blog/codex-cloud-mise-bun-troubleshooting/</link><guid isPermaLink="true">https://hsb.horse/blog/codex-cloud-mise-bun-troubleshooting/</guid><description>Codex Cloudでmise install bunが成功してもcommand not foundになる原因と、setup.shでmise use -gとmise activateを使って解決した手順の記録。</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><category>codex</category><category>mise</category><category>bun</category><category>troubleshooting</category><category>devenv</category></item><item><title>Codex Cloud에서 mise 버전 고정이 안 될 때 대처법</title><link>https://hsb.horse/ko/blog/codex-cloud-mise-bun-troubleshooting/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/codex-cloud-mise-bun-troubleshooting/</guid><description>Codex Cloud에서 mise install bun은 성공하는데 command not found가 나오는 원인과, setup.sh에서 mise use -g와 mise activate로 해결한 과정을 정리했다.</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><category>codex</category><category>mise</category><category>bun</category><category>troubleshooting</category><category>devenv</category></item><item><title>Como resolver quando o mise não fixa versões no Codex Cloud</title><link>https://hsb.horse/pt/blog/codex-cloud-mise-bun-troubleshooting/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/codex-cloud-mise-bun-troubleshooting/</guid><description>mise install bun funciona mas bun retorna command not found no Codex Cloud. Causa e solução usando setup.sh com mise use -g e mise activate.</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><category>codex</category><category>mise</category><category>bun</category><category>troubleshooting</category><category>devenv</category></item><item><title>lefthook-Einführungsablauf: Biome in pre-commit und pre-push automatisch ausführen</title><link>https://hsb.horse/de/blog/lefthook-introduction-procedure/</link><guid isPermaLink="true">https://hsb.horse/de/blog/lefthook-introduction-procedure/</guid><description>Konkreter Einführungsablauf für lefthook, um Biome-Formatierung und Linting bei Commit und Push automatisch auszuführen. Deckt ADR, Konfiguration, Installation und Verifikation in einem Ablauf ab.</description><pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate><category>lefthook</category><category>git-hook</category><category>biome</category><category>bun</category><category>quality</category></item><item><title>Lefthook Setup Procedure: Run Biome Automatically in pre-commit and pre-push</title><link>https://hsb.horse/en/blog/lefthook-introduction-procedure/</link><guid isPermaLink="true">https://hsb.horse/en/blog/lefthook-introduction-procedure/</guid><description>A practical Lefthook setup procedure to run Biome formatting and linting automatically at commit and push time. Covers the full flow from ADR documentation to configuration, installation, and verification.</description><pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate><category>lefthook</category><category>git-hook</category><category>biome</category><category>bun</category><category>quality</category></item><item><title>Procédure d&apos;adoption de lefthook: exécuter Biome automatiquement en pre-commit et pre-push</title><link>https://hsb.horse/fr/blog/lefthook-introduction-procedure/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/lefthook-introduction-procedure/</guid><description>Procédure concrète pour configurer lefthook et exécuter automatiquement le formatage et le lint Biome au commit et au push. Le guide couvre l&apos;ADR, la configuration, l&apos;installation et la vérification.</description><pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate><category>lefthook</category><category>git-hook</category><category>biome</category><category>bun</category><category>quality</category></item><item><title>lefthook導入手順: pre-commitとpre-pushでBiomeを自動実行する</title><link>https://hsb.horse/blog/lefthook-introduction-procedure/</link><guid isPermaLink="true">https://hsb.horse/blog/lefthook-introduction-procedure/</guid><description>lefthook を使って、コミット時とPush時に Biome のフォーマットとリントを自動実行する導入手順を整理。ADR作成から設定、インストール、動作確認までの流れを1本で追える。</description><pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate><category>lefthook</category><category>git-hook</category><category>biome</category><category>bun</category><category>quality</category></item><item><title>lefthook 도입 절차: pre-commit과 pre-push에서 Biome 자동 실행하기</title><link>https://hsb.horse/ko/blog/lefthook-introduction-procedure/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/lefthook-introduction-procedure/</guid><description>lefthook으로 커밋 시점과 푸시 시점에 Biome 포맷팅과 린트를 자동 실행하는 도입 절차를 정리했습니다. ADR 작성부터 설정, 설치, 동작 확인까지 한 번에 따라갈 수 있습니다.</description><pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate><category>lefthook</category><category>git-hook</category><category>biome</category><category>bun</category><category>quality</category></item><item><title>Procedimento de adoção do lefthook: executar Biome automaticamente em pre-commit e pre-push</title><link>https://hsb.horse/pt/blog/lefthook-introduction-procedure/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/lefthook-introduction-procedure/</guid><description>Procedimento prático para configurar lefthook e automatizar formatação e lint do Biome no commit e no push. O fluxo cobre ADR, configuração, instalação e validação.</description><pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate><category>lefthook</category><category>git-hook</category><category>biome</category><category>bun</category><category>quality</category></item><item><title>Abhängigkeiten in Build-Artefakten analysieren</title><link>https://hsb.horse/de/blog/golang-analyze-deps-included-build-artifacts/</link><guid isPermaLink="true">https://hsb.horse/de/blog/golang-analyze-deps-included-build-artifacts/</guid><description>In mit Go gebauten Binärdateien sind Informationen zu verwendeten Abhängigkeiten und Build-Einstellungen eingebettet.</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate><category>golang</category></item><item><title>Analyze Dependencies Included in Build Artifacts</title><link>https://hsb.horse/en/blog/golang-analyze-deps-included-build-artifacts/</link><guid isPermaLink="true">https://hsb.horse/en/blog/golang-analyze-deps-included-build-artifacts/</guid><description>Binaries built with Go embed metadata about dependencies and build settings.</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate><category>golang</category></item><item><title>Analyser les dépendances incluses dans un artefact de build</title><link>https://hsb.horse/fr/blog/golang-analyze-deps-included-build-artifacts/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/golang-analyze-deps-included-build-artifacts/</guid><description>Les binaires compilés avec Go embarquent des informations sur les dépendances utilisées et les paramètres de build.</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate><category>golang</category></item><item><title>ビルド成果物に含まれる依存関係を調べる</title><link>https://hsb.horse/blog/golang-analyze-deps-included-build-artifacts/</link><guid isPermaLink="true">https://hsb.horse/blog/golang-analyze-deps-included-build-artifacts/</guid><description>Goでビルドされたバイナリには、使用された依存関係やビルド設定の情報が埋め込まれている。</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate><category>golang</category></item><item><title>빌드 산출물에 포함된 의존성 분석하기</title><link>https://hsb.horse/ko/blog/golang-analyze-deps-included-build-artifacts/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/golang-analyze-deps-included-build-artifacts/</guid><description>Go로 빌드한 바이너리에는 사용된 의존성과 빌드 설정 정보가 내장됩니다.</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate><category>golang</category></item><item><title>Analisar dependências incluídas em artefatos de build</title><link>https://hsb.horse/pt/blog/golang-analyze-deps-included-build-artifacts/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/golang-analyze-deps-included-build-artifacts/</guid><description>Binários compilados com Go incorporam metadados sobre dependências e configurações de build.</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate><category>golang</category></item><item><title>Ich habe personality-analyzer gebaut, ein Personality-Analysis-Skill für Claude</title><link>https://hsb.horse/de/blog/personality-analyzer-skill-for-claude/</link><guid isPermaLink="true">https://hsb.horse/de/blog/personality-analyzer-skill-for-claude/</guid><description>Ein Entwicklungsprotokoll zu einem Skill, der aus Gesprächen mit Claude HEXACO- und MBTI-Scores im YAML-Format ausgibt. Ein Versuch, Persönlichkeitsmerkmale aus KI-Chats zu quantifizieren.</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate><category>claude</category><category>ai</category><category>personality-analysis</category><category>hexaco</category><category>mbti</category></item><item><title>I Built personality-analyzer, a Personality Analysis Skill for Claude</title><link>https://hsb.horse/en/blog/personality-analyzer-skill-for-claude/</link><guid isPermaLink="true">https://hsb.horse/en/blog/personality-analyzer-skill-for-claude/</guid><description>A development note on a skill that outputs HEXACO and MBTI scores in YAML format from conversations with Claude. An attempt to quantify personality traits from AI chat logs.</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate><category>claude</category><category>ai</category><category>personality-analysis</category><category>hexaco</category><category>mbti</category></item><item><title>J’ai créé personality-analyzer, un skill d’analyse de personnalité pour Claude</title><link>https://hsb.horse/fr/blog/personality-analyzer-skill-for-claude/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/personality-analyzer-skill-for-claude/</guid><description>Journal de développement d’un skill qui produit des scores HEXACO et MBTI au format YAML à partir des échanges avec Claude. Une tentative de quantifier les traits de personnalité depuis des conversations avec une IA.</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate><category>claude</category><category>ai</category><category>personality-analysis</category><category>hexaco</category><category>mbti</category></item><item><title>Claude用性格分析スキルpersonality-analyzerを作った話</title><link>https://hsb.horse/blog/personality-analyzer-skill-for-claude/</link><guid isPermaLink="true">https://hsb.horse/blog/personality-analyzer-skill-for-claude/</guid><description>Claudeとのチャット内容からHEXACO・MBTIスコアをYAML形式で出力するスキルの開発記録。AIとの会話から性格特性を定量化する試み。</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate><category>claude</category><category>ai</category><category>personality-analysis</category><category>hexaco</category><category>mbti</category></item><item><title>Claude용 성격 분석 스킬 personality-analyzer를 만든 이야기</title><link>https://hsb.horse/ko/blog/personality-analyzer-skill-for-claude/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/personality-analyzer-skill-for-claude/</guid><description>Claude와의 대화 내용에서 HEXACO와 MBTI 점수를 YAML 형식으로 출력하는 스킬 개발 기록. AI와의 대화에서 성격 특성을 정량화해 보려는 시도.</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate><category>claude</category><category>ai</category><category>personality-analysis</category><category>hexaco</category><category>mbti</category></item><item><title>Criei o personality-analyzer, um skill de análise de personalidade para Claude</title><link>https://hsb.horse/pt/blog/personality-analyzer-skill-for-claude/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/personality-analyzer-skill-for-claude/</guid><description>Registro de desenvolvimento de um skill que produz pontuações HEXACO e MBTI em YAML a partir de conversas com Claude. Uma tentativa de quantificar traços de personalidade a partir de chats com IA.</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate><category>claude</category><category>ai</category><category>personality-analysis</category><category>hexaco</category><category>mbti</category></item><item><title>Verschlüsselte Verzeichnis-Backups mit age und tar automatisieren</title><link>https://hsb.horse/de/blog/age-tar-encrypted-backup/</link><guid isPermaLink="true">https://hsb.horse/de/blog/age-tar-encrypted-backup/</guid><description>Ein Shell-Skript, das age und tar kombiniert, um für jedes Unterverzeichnis verschlüsselte Archive zu erzeugen. Auch bei japanischen Verzeichnisnamen bleiben die Dateinamen CLI-freundlich.</description><pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate><category>shell</category><category>age</category><category>encryption</category><category>backup</category><category>cli</category></item><item><title>Automating Encrypted Directory Backups with age and tar</title><link>https://hsb.horse/en/blog/age-tar-encrypted-backup/</link><guid isPermaLink="true">https://hsb.horse/en/blog/age-tar-encrypted-backup/</guid><description>A shell script that combines age and tar to create encrypted archives for each subdirectory. It keeps CLI-friendly file names even when directory names contain Japanese characters.</description><pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate><category>shell</category><category>age</category><category>encryption</category><category>backup</category><category>cli</category></item><item><title>Automatiser des sauvegardes chiffrées par répertoire avec age et tar</title><link>https://hsb.horse/fr/blog/age-tar-encrypted-backup/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/age-tar-encrypted-backup/</guid><description>Un script shell qui combine age et tar pour créer une archive chiffrée pour chaque sous-répertoire. Il conserve des noms de fichiers compatibles CLI, même avec des dossiers en japonais.</description><pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate><category>shell</category><category>age</category><category>encryption</category><category>backup</category><category>cli</category></item><item><title>age-tarでディレクトリ単位の暗号化バックアップを自動化する</title><link>https://hsb.horse/blog/age-tar-encrypted-backup/</link><guid isPermaLink="true">https://hsb.horse/blog/age-tar-encrypted-backup/</guid><description>ageとtarを組み合わせて、サブディレクトリごとに暗号化アーカイブを作るシェルスクリプト。日本語ディレクトリ名を含む運用でもCLI互換性を保てる。</description><pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate><category>shell</category><category>age</category><category>encryption</category><category>backup</category><category>cli</category></item><item><title>age-tar로 디렉터리 단위 암호화 백업 자동화하기</title><link>https://hsb.horse/ko/blog/age-tar-encrypted-backup/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/age-tar-encrypted-backup/</guid><description>age와 tar를 조합해 하위 디렉터리마다 암호화 아카이브를 만드는 셸 스크립트. 일본어 디렉터리명을 포함한 운영에서도 CLI 호환성을 유지할 수 있다.</description><pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate><category>shell</category><category>age</category><category>encryption</category><category>backup</category><category>cli</category></item><item><title>Automatizando backups criptografados por diretório com age e tar</title><link>https://hsb.horse/pt/blog/age-tar-encrypted-backup/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/age-tar-encrypted-backup/</guid><description>Um script shell que combina age e tar para criar arquivos criptografados por subdiretório. Ele mantém compatibilidade com CLI mesmo quando há nomes de diretório em japonês.</description><pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate><category>shell</category><category>age</category><category>encryption</category><category>backup</category><category>cli</category></item><item><title>UUID v7-Implementierungsleitfaden: Erstellen mit JavaScript, Go und Shell</title><link>https://hsb.horse/de/blog/uuid-v7/</link><guid isPermaLink="true">https://hsb.horse/de/blog/uuid-v7/</guid><description>Die Bitstruktur von UUID v7, Biteinstellungen von Version/Variante, Mindestimplementierung in JavaScript, Go und Shell, Prüfelemente während der Implementierung und RFC-Referenzen sind auf einer Seite organisiert. Ein praktischer Leitfaden, der die zu überprüfenden Punkte in der Generierungslogik für Entwickler zusammenfasst, die IDs sicher einführen möchten, die sich einfach in Zeitreihen sortieren lassen. Es kann zur Bestätigung vor der Implementierung verwendet werden.</description><pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate><category>uuid</category><category>javascript</category><category>golang</category><category>shell</category><category>cli</category></item><item><title>UUID v7 implementation guide: Create with JavaScript, Go, and Shell</title><link>https://hsb.horse/en/blog/uuid-v7/</link><guid isPermaLink="true">https://hsb.horse/en/blog/uuid-v7/</guid><description>The bit structure of UUID v7, bit settings of version/variant, minimum implementation in JavaScript, Go, and Shell, check items during implementation, and RFC references are organized on one page. A practical guide that summarizes the points to check in the generation logic for developers who want to safely introduce IDs that are easy to sort in time series. It can be used for confirmation before implementation.</description><pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate><category>uuid</category><category>javascript</category><category>golang</category><category>shell</category><category>cli</category></item><item><title>Guide d&apos;implémentation de l&apos;UUID v7 : Créer avec JavaScript, Go et Shell</title><link>https://hsb.horse/fr/blog/uuid-v7/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/uuid-v7/</guid><description>La structure binaire de l&apos;UUID v7, les paramètres binaires de la version/variante, l&apos;implémentation minimale dans JavaScript, Go et Shell, les éléments de vérification lors de l&apos;implémentation et les références RFC sont organisés sur une seule page. Un guide pratique qui résume les points à vérifier dans la logique de génération pour les développeurs qui souhaitent introduire en toute sécurité des identifiants faciles à trier en séries temporelles. Il peut être utilisé pour confirmation avant la mise en œuvre.</description><pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate><category>uuid</category><category>javascript</category><category>golang</category><category>shell</category><category>cli</category></item><item><title>UUID v7 実装ガイド: JavaScript・Go・Shellで作る</title><link>https://hsb.horse/blog/uuid-v7/</link><guid isPermaLink="true">https://hsb.horse/blog/uuid-v7/</guid><description>UUID v7 のビット構造、version/variant のビット設定、JavaScript・Go・Shellでの最小実装、実装時のチェック項目、RFCの参照先を1ページで整理。時系列ソートしやすいIDを安全に導入したい開発者向けに、生成ロジックの確認ポイントをまとめた実践ガイド。実装前の確認に使える。</description><pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate><category>uuid</category><category>javascript</category><category>golang</category><category>shell</category><category>cli</category></item><item><title>UUID v7 구현 가이드 : JavaScript, Go, Shell로 만들기</title><link>https://hsb.horse/ko/blog/uuid-v7/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/uuid-v7/</guid><description>UUID v7의 비트 구조, version/variant의 비트 설정, JavaScript·Go·Shell에서의 최소 구현, 구현시의 체크 항목, RFC의 참조처를 1페이지로 정리. 시계열 정렬하기 쉬운 ID를 안전하게 도입하고 싶은 개발자용으로 생성 로직의 확인 포인트를 정리한 실천 가이드. 구현 전의 확인에 사용할 수 있다.</description><pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate><category>uuid</category><category>javascript</category><category>golang</category><category>shell</category><category>cli</category></item><item><title>Guia de implementação UUID v7: Crie com JavaScript, Go e Shell</title><link>https://hsb.horse/pt/blog/uuid-v7/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/uuid-v7/</guid><description>A estrutura de bits do UUID v7, configurações de bits de versão/variante, implementação mínima em JavaScript, Go e Shell, itens de verificação durante a implementação e referências RFC são organizadas em uma página. Um guia prático que resume os pontos a serem verificados na lógica de geração para desenvolvedores que desejam introduzir IDs com segurança e fáceis de classificar em séries temporais. Pode ser usado para confirmação antes da implementação.</description><pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate><category>uuid</category><category>javascript</category><category>golang</category><category>shell</category><category>cli</category></item><item><title>Den Unterschied zwischen Glossary und Dictionary ordnen</title><link>https://hsb.horse/de/blog/glossary-vs-dictionary/</link><guid isPermaLink="true">https://hsb.horse/de/blog/glossary-vs-dictionary/</guid><description>Ein Vergleich von Glossary und Dictionary nach Umfang, Zweck, enthaltenen Begriffen und Autorenschaft.</description><pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate><category>terminology</category><category>documentation</category></item><item><title>Understanding the Difference Between a Glossary and a Dictionary</title><link>https://hsb.horse/en/blog/glossary-vs-dictionary/</link><guid isPermaLink="true">https://hsb.horse/en/blog/glossary-vs-dictionary/</guid><description>A comparison of Glossary and Dictionary from the viewpoints of scope, purpose, included terms, and authorship.</description><pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate><category>terminology</category><category>documentation</category></item><item><title>Clarifier la différence entre Glossary et Dictionary</title><link>https://hsb.horse/fr/blog/glossary-vs-dictionary/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/glossary-vs-dictionary/</guid><description>Comparaison entre Glossary et Dictionary du point de vue du périmètre, de l’objectif, des mots inclus et de l’auteur.</description><pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate><category>terminology</category><category>documentation</category></item><item><title>GlossaryとDictionaryの違いを整理する</title><link>https://hsb.horse/blog/glossary-vs-dictionary/</link><guid isPermaLink="true">https://hsb.horse/blog/glossary-vs-dictionary/</guid><description>Glossary(用語集)とDictionary(辞書)の違いを、対象範囲、目的、掲載される言葉、作成者の観点から比較整理。</description><pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate><category>terminology</category><category>documentation</category></item><item><title>Glossary와 Dictionary의 차이를 정리하기</title><link>https://hsb.horse/ko/blog/glossary-vs-dictionary/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/glossary-vs-dictionary/</guid><description>Glossary(용어집)와 Dictionary(사전)의 차이를 범위, 목적, 수록 단어, 작성자 관점에서 비교 정리했다.</description><pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate><category>terminology</category><category>documentation</category></item><item><title>Organizando a diferença entre Glossary e Dictionary</title><link>https://hsb.horse/pt/blog/glossary-vs-dictionary/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/glossary-vs-dictionary/</guid><description>Uma comparação entre Glossary e Dictionary do ponto de vista de escopo, objetivo, termos incluídos e autoria.</description><pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate><category>terminology</category><category>documentation</category></item><item><title>Lizenzkommentare mit esbuild/Vite aus gebündeltem JS entfernen</title><link>https://hsb.horse/de/blog/esbuild-vite-remove-license-comments/</link><guid isPermaLink="true">https://hsb.horse/de/blog/esbuild-vite-remove-license-comments/</guid><description>So verringern Sie die Bundle-Größe leicht, indem Sie Lizenzkommentare aus den Ausgabedateien von esbuild oder Vite entfernen.</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>esbuild</category><category>vite</category><category>optimization</category></item><item><title>Remove License Comments from Bundled JS with esbuild/Vite</title><link>https://hsb.horse/en/blog/esbuild-vite-remove-license-comments/</link><guid isPermaLink="true">https://hsb.horse/en/blog/esbuild-vite-remove-license-comments/</guid><description>How to shrink bundle size slightly by removing license comments from output files when building with esbuild or Vite.</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>esbuild</category><category>vite</category><category>optimization</category></item><item><title>Supprimer les commentaires de licence du JS bundle avec esbuild/Vite</title><link>https://hsb.horse/fr/blog/esbuild-vite-remove-license-comments/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/esbuild-vite-remove-license-comments/</guid><description>Réduire légèrement la taille du bundle en supprimant les commentaires de licence des fichiers générés par esbuild ou Vite.</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>esbuild</category><category>vite</category><category>optimization</category></item><item><title>esbuild/ViteでライセンスコメントをバンドルJSから削除する</title><link>https://hsb.horse/blog/esbuild-vite-remove-license-comments/</link><guid isPermaLink="true">https://hsb.horse/blog/esbuild-vite-remove-license-comments/</guid><description>esbuildやViteでビルドするとき、バンドルファイルに含まれるライセンスコメントを削除してファイルサイズを削減する方法。</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>esbuild</category><category>vite</category><category>optimization</category></item><item><title>esbuild/Vite 번들 JS에서 라이선스 주석 제거하기</title><link>https://hsb.horse/ko/blog/esbuild-vite-remove-license-comments/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/esbuild-vite-remove-license-comments/</guid><description>esbuild나 Vite로 빌드할 때 출력 파일의 라이선스 주석을 제거해 번들 크기를 조금 줄이는 방법.</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>esbuild</category><category>vite</category><category>optimization</category></item><item><title>Remover comentários de licença do JS gerado com esbuild/Vite</title><link>https://hsb.horse/pt/blog/esbuild-vite-remove-license-comments/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/esbuild-vite-remove-license-comments/</guid><description>Como reduzir um pouco o tamanho do bundle removendo comentários de licença dos arquivos gerados por esbuild ou Vite.</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>esbuild</category><category>vite</category><category>optimization</category></item><item><title>React Compiler in WXT aktivieren</title><link>https://hsb.horse/de/blog/wxt-enable-react-compiler/</link><guid isPermaLink="true">https://hsb.horse/de/blog/wxt-enable-react-compiler/</guid><description>Konfigurationsschritte zum Aktivieren von React Compiler im WXT-Framework. Beinhaltet Installation und Einbindung von babel-plugin-react-compiler.</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>react</category><category>wxt</category><category>optimization</category></item><item><title>How to Enable React Compiler in WXT</title><link>https://hsb.horse/en/blog/wxt-enable-react-compiler/</link><guid isPermaLink="true">https://hsb.horse/en/blog/wxt-enable-react-compiler/</guid><description>Configuration steps for enabling React Compiler in the WXT framework. Covers installing babel-plugin-react-compiler and wiring it into the config.</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>react</category><category>wxt</category><category>optimization</category></item><item><title>Activer React Compiler dans WXT</title><link>https://hsb.horse/fr/blog/wxt-enable-react-compiler/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/wxt-enable-react-compiler/</guid><description>Les étapes de configuration pour activer React Compiler dans WXT. Inclut l&apos;installation de babel-plugin-react-compiler et son ajout à la config.</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>react</category><category>wxt</category><category>optimization</category></item><item><title>WXTでReact Compilerを有効化する設定手順</title><link>https://hsb.horse/blog/wxt-enable-react-compiler/</link><guid isPermaLink="true">https://hsb.horse/blog/wxt-enable-react-compiler/</guid><description>WXTフレームワークでReact Compilerを有効化し、自動最適化を行う設定方法。babel-plugin-react-compilerのインストールと設定を整理。</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>react</category><category>wxt</category><category>optimization</category></item><item><title>WXT에서 React Compiler를 활성화하는 설정 방법</title><link>https://hsb.horse/ko/blog/wxt-enable-react-compiler/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/wxt-enable-react-compiler/</guid><description>WXT 프레임워크에서 React Compiler를 활성화하는 방법. babel-plugin-react-compiler 설치와 설정 연결을 정리한다.</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>react</category><category>wxt</category><category>optimization</category></item><item><title>Como ativar o React Compiler no WXT</title><link>https://hsb.horse/pt/blog/wxt-enable-react-compiler/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/wxt-enable-react-compiler/</guid><description>Passo a passo para ativar o React Compiler no framework WXT. Inclui a instalação do babel-plugin-react-compiler e sua configuração.</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>react</category><category>wxt</category><category>optimization</category></item><item><title>So konfigurieren Sie das Routing von Unterverzeichnissen mit Cloudflare Workers</title><link>https://hsb.horse/de/blog/cloudflare-workers-subdirectory-routing/</link><guid isPermaLink="true">https://hsb.horse/de/blog/cloudflare-workers-subdirectory-routing/</guid><description>Konfigurationsschritte für die Bereitstellung eines Astro-Projekts in einem Unterverzeichnis mit Cloudflare Workers. Organisiert, wie wrangler.json und astro.config angepasst werden.</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><category>cloudflare</category><category>astro</category><category>deployment</category></item><item><title>How to configure subdirectory routing with Cloudflare Workers</title><link>https://hsb.horse/en/blog/cloudflare-workers-subdirectory-routing/</link><guid isPermaLink="true">https://hsb.horse/en/blog/cloudflare-workers-subdirectory-routing/</guid><description>Configuration steps for deploying an Astro project under a subdirectory with Cloudflare Workers. Organized how to adjust wrangler.json and astro.config.</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><category>cloudflare</category><category>astro</category><category>deployment</category></item><item><title>Comment configurer le routage des sous-répertoires avec Cloudflare Workers</title><link>https://hsb.horse/fr/blog/cloudflare-workers-subdirectory-routing/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/cloudflare-workers-subdirectory-routing/</guid><description>Étapes de configuration pour déployer un projet Astro sous un sous-répertoire avec Cloudflare Workers. Organisé comment ajuster wrangler.json et astro.config.</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><category>cloudflare</category><category>astro</category><category>deployment</category></item><item><title>Cloudflare Workersでサブディレクトリをルーティングする設定方法</title><link>https://hsb.horse/blog/cloudflare-workers-subdirectory-routing/</link><guid isPermaLink="true">https://hsb.horse/blog/cloudflare-workers-subdirectory-routing/</guid><description>Cloudflare Workersでサブディレクトリ配下にAstroプロジェクトをデプロイする際の設定手順。wrangler.jsonとastro.configの調整方法を整理。</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><category>cloudflare</category><category>astro</category><category>deployment</category></item><item><title>Cloudflare Workers에서 하위 디렉토리를 라우팅하는 설정 방법</title><link>https://hsb.horse/ko/blog/cloudflare-workers-subdirectory-routing/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/cloudflare-workers-subdirectory-routing/</guid><description>Cloudflare Workers에서 하위 디렉터리 아래에 Astro 프로젝트를 배포할 때의 구성 단계입니다. wrangler.json과 astro.config를 조정하는 방법을 정리.</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><category>cloudflare</category><category>astro</category><category>deployment</category></item><item><title>Como configurar o roteamento de subdiretórios com Cloudflare Workers</title><link>https://hsb.horse/pt/blog/cloudflare-workers-subdirectory-routing/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/cloudflare-workers-subdirectory-routing/</guid><description>Etapas de configuração para implantar um projeto Astro em um subdiretório com Cloudflare Workers. Organizado como ajustar wrangler.json e astro.config.</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><category>cloudflare</category><category>astro</category><category>deployment</category></item><item><title>Verhalten von sh -c und Regeln zum Lesen von zsh-Konfigurationsdateien</title><link>https://hsb.horse/de/blog/sh-c-behavior-and-zsh-config-loading/</link><guid isPermaLink="true">https://hsb.horse/de/blog/sh-c-behavior-and-zsh-config-loading/</guid><description>Organisiert das Verhalten des Befehls sh -c, die Vererbungsregeln von Umgebungsvariablen, die Gültigkeit von Shebang und wie zsh-Konfigurationsdateien (.zshrc, .zshenv usw.) gelesen werden, wenn Skripte ausgeführt werden.</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><category>shell</category><category>zsh</category><category>unix</category></item><item><title>Behavior of sh -c and rules for reading zsh configuration files</title><link>https://hsb.horse/en/blog/sh-c-behavior-and-zsh-config-loading/</link><guid isPermaLink="true">https://hsb.horse/en/blog/sh-c-behavior-and-zsh-config-loading/</guid><description>Organized the behavior of the sh -c command, the inheritance rules of environment variables, the validity of shebang, and how zsh configuration files (.zshrc, .zshenv, etc.) are read when scripts are executed.</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><category>shell</category><category>zsh</category><category>unix</category></item><item><title>Comportement de sh -c et règles de lecture des fichiers de configuration zsh</title><link>https://hsb.horse/fr/blog/sh-c-behavior-and-zsh-config-loading/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/sh-c-behavior-and-zsh-config-loading/</guid><description>Organisé le comportement de la commande sh -c, les règles d&apos;héritage des variables d&apos;environnement, la validité de shebang et la manière dont les fichiers de configuration zsh (.zshrc, .zshenv, etc.) sont lus lors de l&apos;exécution des scripts.</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><category>shell</category><category>zsh</category><category>unix</category></item><item><title>sh -cの挙動とzsh設定ファイルの読み込みルール</title><link>https://hsb.horse/blog/sh-c-behavior-and-zsh-config-loading/</link><guid isPermaLink="true">https://hsb.horse/blog/sh-c-behavior-and-zsh-config-loading/</guid><description>sh -cコマンドの挙動、環境変数の継承ルール、shebangの有効性、zsh設定ファイル(.zshrc, .zshenv等)がスクリプト実行時にどう読み込まれるかを整理。</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><category>shell</category><category>zsh</category><category>unix</category></item><item><title>sh -c 거동 및 zsh 구성 파일 읽기 규칙</title><link>https://hsb.horse/ko/blog/sh-c-behavior-and-zsh-config-loading/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/sh-c-behavior-and-zsh-config-loading/</guid><description>sh -c 명령의 거동, 환경 변수의 상속 룰, shebang의 유효성, zsh 설정 파일(.zshrc, .zshenv등)이 스크립트 실행시에 어떻게 읽혀지는지를 정리.</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><category>shell</category><category>zsh</category><category>unix</category></item><item><title>Comportamento de sh -c e regras para leitura de arquivos de configuração zsh</title><link>https://hsb.horse/pt/blog/sh-c-behavior-and-zsh-config-loading/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/sh-c-behavior-and-zsh-config-loading/</guid><description>Organizou o comportamento do comando sh -c, as regras de herança de variáveis ​​de ambiente, a validade do shebang e como os arquivos de configuração zsh (.zshrc, .zshenv, etc.) são lidos quando os scripts são executados.</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><category>shell</category><category>zsh</category><category>unix</category></item><item><title>Implementierung von CRC32-Hashing in TypeScript</title><link>https://hsb.horse/de/blog/typescript-crc32-implementation/</link><guid isPermaLink="true">https://hsb.horse/de/blog/typescript-crc32-implementation/</guid><description>Schritte zum Implementieren des CRC32-Hashing-Algorithmus in TypeScript. Organisiert Beschleunigungstechniken mithilfe von Nachschlagetabellen und tatsächlichen Anwendungsbeispielen.</description><pubDate>Sun, 23 Nov 2025 00:00:00 GMT</pubDate><category>typescript</category><category>algorithm</category><category>hash</category></item><item><title>Implementing CRC32 hashing in TypeScript</title><link>https://hsb.horse/en/blog/typescript-crc32-implementation/</link><guid isPermaLink="true">https://hsb.horse/en/blog/typescript-crc32-implementation/</guid><description>Steps to implement the CRC32 hashing algorithm in TypeScript. Organizes speed-up techniques using lookup tables and actual usage examples.</description><pubDate>Sun, 23 Nov 2025 00:00:00 GMT</pubDate><category>typescript</category><category>algorithm</category><category>hash</category></item><item><title>Implémentation du hachage CRC32 dans TypeScript</title><link>https://hsb.horse/fr/blog/typescript-crc32-implementation/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/typescript-crc32-implementation/</guid><description>Étapes pour implémenter l&apos;algorithme de hachage CRC32 dans TypeScript. Organise les techniques d&apos;accélération à l&apos;aide de tables de recherche et d&apos;exemples d&apos;utilisation réelle.</description><pubDate>Sun, 23 Nov 2025 00:00:00 GMT</pubDate><category>typescript</category><category>algorithm</category><category>hash</category></item><item><title>TypeScriptでCRC32ハッシュを実装する</title><link>https://hsb.horse/blog/typescript-crc32-implementation/</link><guid isPermaLink="true">https://hsb.horse/blog/typescript-crc32-implementation/</guid><description>CRC32ハッシュアルゴリズムをTypeScriptで実装する手順。ルックアップテーブルを使った高速化手法と、実際の使用例を整理。</description><pubDate>Sun, 23 Nov 2025 00:00:00 GMT</pubDate><category>typescript</category><category>algorithm</category><category>hash</category></item><item><title>TypeScript에서 CRC32 해시 구현</title><link>https://hsb.horse/ko/blog/typescript-crc32-implementation/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/typescript-crc32-implementation/</guid><description>CRC32 해시 알고리즘을 TypeScript로 구현하는 순서. 룩업 테이블을 사용한 고속화 기법과 실제 사용 예를 정리.</description><pubDate>Sun, 23 Nov 2025 00:00:00 GMT</pubDate><category>typescript</category><category>algorithm</category><category>hash</category></item><item><title>Implementando hash CRC32 em TypeScript</title><link>https://hsb.horse/pt/blog/typescript-crc32-implementation/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/typescript-crc32-implementation/</guid><description>Etapas para implementar o algoritmo de hash CRC32 em TypeScript. Organiza técnicas de aceleração usando tabelas de pesquisa e exemplos reais de uso.</description><pubDate>Sun, 23 Nov 2025 00:00:00 GMT</pubDate><category>typescript</category><category>algorithm</category><category>hash</category></item><item><title>Biome-Warnungen für ungenutzte Variablen in Astro/Vue/Svelte-Dateien deaktivieren</title><link>https://hsb.horse/de/blog/biome-disable-unused-warnings-for-frameworks/</link><guid isPermaLink="true">https://hsb.horse/de/blog/biome-disable-unused-warnings-for-frameworks/</guid><description>So deaktiviert man Biome-Warnungen für ungenutzte Importe und Variablen in Astro-, Vue- und Svelte-Dateien per overrides-Konfiguration.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>biome</category><category>astro</category><category>vue</category><category>svelte</category></item><item><title>Disable Biome Unused Variable Warnings in Astro/Vue/Svelte Files</title><link>https://hsb.horse/en/blog/biome-disable-unused-warnings-for-frameworks/</link><guid isPermaLink="true">https://hsb.horse/en/blog/biome-disable-unused-warnings-for-frameworks/</guid><description>How to disable Biome warnings for unused imports and variables in Astro, Vue, and Svelte files by using overrides.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>biome</category><category>astro</category><category>vue</category><category>svelte</category></item><item><title>Désactiver les avertissements Biome sur les variables inutilisées dans les fichiers Astro/Vue/Svelte</title><link>https://hsb.horse/fr/blog/biome-disable-unused-warnings-for-frameworks/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/biome-disable-unused-warnings-for-frameworks/</guid><description>Comment désactiver les avertissements Biome sur les imports et variables inutilisés dans les fichiers Astro, Vue et Svelte avec la configuration overrides.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>biome</category><category>astro</category><category>vue</category><category>svelte</category></item><item><title>Biomeの未使用変数警告をAstro/Vue/Svelteファイルで無効化する</title><link>https://hsb.horse/blog/biome-disable-unused-warnings-for-frameworks/</link><guid isPermaLink="true">https://hsb.horse/blog/biome-disable-unused-warnings-for-frameworks/</guid><description>AstroやVue、Svelteファイルで発生するBiomeの未使用インポート・変数警告を、overrides設定で無効化する方法。</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>biome</category><category>astro</category><category>vue</category><category>svelte</category></item><item><title>Astro/Vue/Svelte 파일에서 Biome 미사용 경고 끄기</title><link>https://hsb.horse/ko/blog/biome-disable-unused-warnings-for-frameworks/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/biome-disable-unused-warnings-for-frameworks/</guid><description>Astro, Vue, Svelte 파일에서 발생하는 Biome의 미사용 import/변수 경고를 overrides 설정으로 비활성화하는 방법.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>biome</category><category>astro</category><category>vue</category><category>svelte</category></item><item><title>Desativar avisos de variáveis não usadas do Biome em arquivos Astro/Vue/Svelte</title><link>https://hsb.horse/pt/blog/biome-disable-unused-warnings-for-frameworks/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/biome-disable-unused-warnings-for-frameworks/</guid><description>Como desativar os avisos do Biome para imports e variáveis não usados em arquivos Astro, Vue e Svelte usando overrides.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>biome</category><category>astro</category><category>vue</category><category>svelte</category></item><item><title>Go-Setup-Notizen: Web-Framework und Dev Tools</title><link>https://hsb.horse/de/blog/golang-web-framework-and-tools/</link><guid isPermaLink="true">https://hsb.horse/de/blog/golang-web-framework-and-tools/</guid><description>Notizen zu Web-Framework und Entwicklungstools, die ich beim Einrichten einer Go-Umgebung geprüft habe. Eine kurze Zusammenfassung von Echo und Air.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>golang</category><category>echo</category><category>air</category></item><item><title>Go Setup Notes: Web Framework and Dev Tools</title><link>https://hsb.horse/en/blog/golang-web-framework-and-tools/</link><guid isPermaLink="true">https://hsb.horse/en/blog/golang-web-framework-and-tools/</guid><description>Notes on the web framework and development tools I looked at while setting up a Go environment. A quick summary of Echo and Air for live reload.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>golang</category><category>echo</category><category>air</category></item><item><title>Notes de configuration Go : framework web et outils de développement</title><link>https://hsb.horse/fr/blog/golang-web-framework-and-tools/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/golang-web-framework-and-tools/</guid><description>Notes sur le framework web et les outils de développement étudiés lors de la mise en place d’un environnement Go. Résumé rapide de Echo et Air.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>golang</category><category>echo</category><category>air</category></item><item><title>Goの環境構築メモ: WebフレームワークとDev Tools</title><link>https://hsb.horse/blog/golang-web-framework-and-tools/</link><guid isPermaLink="true">https://hsb.horse/blog/golang-web-framework-and-tools/</guid><description>Goの開発環境構築時に調べたWebフレームワークと開発ツールのメモ。EchoフレームワークとAir(Live Reload)について整理。</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>golang</category><category>echo</category><category>air</category></item><item><title>Go 환경 구성 메모: Web 프레임워크와 개발 도구</title><link>https://hsb.horse/ko/blog/golang-web-framework-and-tools/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/golang-web-framework-and-tools/</guid><description>Go 개발 환경을 구성하면서 찾아본 Web 프레임워크와 개발 도구 메모. Echo 프레임워크와 Air 라이브 리로드 도구를 간단히 정리했다.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>golang</category><category>echo</category><category>air</category></item><item><title>Notas de configuração de Go: framework web e ferramentas de desenvolvimento</title><link>https://hsb.horse/pt/blog/golang-web-framework-and-tools/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/golang-web-framework-and-tools/</guid><description>Notas sobre framework web e ferramentas de desenvolvimento que pesquisei ao montar um ambiente Go. Um resumo rápido de Echo e Air.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>golang</category><category>echo</category><category>air</category></item><item><title>Bilder mit libavif in AVIF umwandeln</title><link>https://hsb.horse/de/blog/libavif-image-conversion/</link><guid isPermaLink="true">https://hsb.horse/de/blog/libavif-image-conversion/</guid><description>libavif mit Homebrew installieren und JPEG/PNG in AVIF konvertieren. Geeignet für Einzeldateien und Batch-Verarbeitung.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>avif</category><category>image</category><category>macos</category></item><item><title>Converting Images to AVIF Format with libavif</title><link>https://hsb.horse/en/blog/libavif-image-conversion/</link><guid isPermaLink="true">https://hsb.horse/en/blog/libavif-image-conversion/</guid><description>How to install libavif via Homebrew and convert JPEG/PNG to AVIF format. Supports single conversion and batch processing.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>avif</category><category>image</category><category>macos</category></item><item><title>Convertir des images en AVIF avec libavif</title><link>https://hsb.horse/fr/blog/libavif-image-conversion/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/libavif-image-conversion/</guid><description>Installer libavif avec Homebrew puis convertir des JPEG/PNG en AVIF. Fonctionne pour une conversion unitaire comme pour un traitement par lot.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>avif</category><category>image</category><category>macos</category></item><item><title>libavifで画像をAVIF形式に変換する</title><link>https://hsb.horse/blog/libavif-image-conversion/</link><guid isPermaLink="true">https://hsb.horse/blog/libavif-image-conversion/</guid><description>HomebrewでlibavifをインストールしてJPEG/PNGをAVIF形式に変換する方法。シングル変換とバッチ処理に対応。</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>avif</category><category>image</category><category>macos</category></item><item><title>libavif로 이미지를 AVIF 형식으로 변환하기</title><link>https://hsb.horse/ko/blog/libavif-image-conversion/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/libavif-image-conversion/</guid><description>Homebrew로 libavif를 설치하고 JPEG/PNG를 AVIF로 변환하는 방법. 단일 변환과 배치 처리 모두 대응.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>avif</category><category>image</category><category>macos</category></item><item><title>Converter imagens para AVIF com libavif</title><link>https://hsb.horse/pt/blog/libavif-image-conversion/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/libavif-image-conversion/</guid><description>Como instalar o libavif com Homebrew e converter JPEG/PNG para AVIF. Serve tanto para conversão única quanto para processamento em lote.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>avif</category><category>image</category><category>macos</category></item><item><title>Führen Sie mit macOS Launchd ein regelmäßiges Ausführungsskript aus</title><link>https://hsb.horse/de/blog/macos-launchd-cron-like/</link><guid isPermaLink="true">https://hsb.horse/de/blog/macos-launchd-cron-like/</guid><description>So erstellen Sie ein Skript, das wie Cron unter macOS Launchd jede Minute ausgeführt wird. Setup-Anweisungen, die Probleme mit Umgebungsvariablen vermeiden und die Protokollverwaltung umfassen.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>macos</category><category>launchd</category><category>automation</category><category>shell</category></item><item><title>Running Periodic Scripts with macOS Launchd</title><link>https://hsb.horse/en/blog/macos-launchd-cron-like/</link><guid isPermaLink="true">https://hsb.horse/en/blog/macos-launchd-cron-like/</guid><description>How to build Cron-like periodic execution scripts using macOS Launchd. Avoiding environment variable issues with setup including log management.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>macos</category><category>launchd</category><category>automation</category><category>shell</category></item><item><title>Exécutez un script d&apos;exécution périodique avec macOS Launchd</title><link>https://hsb.horse/fr/blog/macos-launchd-cron-like/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/macos-launchd-cron-like/</guid><description>Comment créer un script qui s&apos;exécute toutes les minutes comme Cron sur macOS Launchd. Instructions de configuration qui évitent les problèmes de variables d&apos;environnement et incluent la gestion des journaux.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>macos</category><category>launchd</category><category>automation</category><category>shell</category></item><item><title>macOS Launchdで定期実行スクリプトを動かす</title><link>https://hsb.horse/blog/macos-launchd-cron-like/</link><guid isPermaLink="true">https://hsb.horse/blog/macos-launchd-cron-like/</guid><description>macOS LaunchdでCronのように毎分実行するスクリプトを構築する方法。環境変数の問題を回避し、ログ管理も含めたセットアップ手順。</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>macos</category><category>launchd</category><category>automation</category><category>shell</category></item><item><title>macOS Launchd에서 정기 실행 스크립트 이동</title><link>https://hsb.horse/ko/blog/macos-launchd-cron-like/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/macos-launchd-cron-like/</guid><description>macOS Launchd에서 Cron처럼 매분 실행하는 스크립트를 빌드하는 방법. 환경 변수 문제를 피하고 로그 관리를 포함한 설정 절차.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>macos</category><category>launchd</category><category>automation</category><category>shell</category></item><item><title>Execute um script de execução periódica com macOS Launchd</title><link>https://hsb.horse/pt/blog/macos-launchd-cron-like/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/macos-launchd-cron-like/</guid><description>Como construir um script que seja executado a cada minuto como o Cron no macOS Launchd. Instruções de configuração que evitam problemas de variáveis ​​de ambiente e incluem gerenciamento de logs.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>macos</category><category>launchd</category><category>automation</category><category>shell</category></item><item><title>Shell-Abkürzungserweiterung mit zabrze: Eine einfachere Alternative zu zsh-abbr</title><link>https://hsb.horse/de/blog/zabrze-shell-abbreviation-introduction/</link><guid isPermaLink="true">https://hsb.horse/de/blog/zabrze-shell-abbreviation-introduction/</guid><description>Einführung und Nutzung des Shell-Abkürzungstools zabrze. Eine einfachere Alternative zu zsh-abbr für effizientere Befehlseingabe mit weniger Konfiguration.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>cli</category><category>zsh</category><category>productivity</category></item><item><title>Getting Started with zabrze Shell Abbreviation Expansion: A Simpler Alternative to zsh-abbr</title><link>https://hsb.horse/en/blog/zabrze-shell-abbreviation-introduction/</link><guid isPermaLink="true">https://hsb.horse/en/blog/zabrze-shell-abbreviation-introduction/</guid><description>How to install and use the shell abbreviation tool zabrze. A simpler alternative to zsh-abbr for faster command entry with less setup.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>cli</category><category>zsh</category><category>productivity</category></item><item><title>Commencer l’expansion d’abréviations shell avec zabrze : une alternative plus simple à zsh-abbr</title><link>https://hsb.horse/fr/blog/zabrze-shell-abbreviation-introduction/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/zabrze-shell-abbreviation-introduction/</guid><description>Installation et utilisation de zabrze, un outil d’expansion d’abréviations shell. Une alternative plus simple à zsh-abbr pour saisir les commandes plus efficacement.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>cli</category><category>zsh</category><category>productivity</category></item><item><title>zabrzeで始めるシェル略語展開: zsh-abbrよりシンプルな選択肢</title><link>https://hsb.horse/blog/zabrze-shell-abbreviation-introduction/</link><guid isPermaLink="true">https://hsb.horse/blog/zabrze-shell-abbreviation-introduction/</guid><description>シェルの略語展開ツールzabrzeの導入手順と使い方。zsh-abbrの代替として、よりシンプルな設定で効率的なコマンド入力を実現する方法を紹介。</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>cli</category><category>zsh</category><category>productivity</category></item><item><title>zabrze로 시작하는 셸 약어 확장: zsh-abbr보다 단순한 선택지</title><link>https://hsb.horse/ko/blog/zabrze-shell-abbreviation-introduction/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/zabrze-shell-abbreviation-introduction/</guid><description>셸 약어 확장 도구 zabrze의 설치와 사용법. zsh-abbr의 대안으로 더 단순한 설정으로 효율적인 명령 입력을 만드는 방법을 정리했다.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>cli</category><category>zsh</category><category>productivity</category></item><item><title>Começando com expansão de abreviações no shell usando zabrze: uma alternativa mais simples ao zsh-abbr</title><link>https://hsb.horse/pt/blog/zabrze-shell-abbreviation-introduction/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/zabrze-shell-abbreviation-introduction/</guid><description>Instalação e uso do zabrze, ferramenta de expansão de abreviações no shell. Uma alternativa mais simples ao zsh-abbr para digitar comandos com mais eficiência.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate><category>cli</category><category>zsh</category><category>productivity</category></item><item><title>Zeilenweises Aufteilen von Text mit TransformStream: LineSplitTransform</title><link>https://hsb.horse/de/blog/line-split-transform-stream/</link><guid isPermaLink="true">https://hsb.horse/de/blog/line-split-transform-stream/</guid><description>Eine TransformStream-Implementierung, die binäre Stream-Daten in Zeilen aufteilt. Nützlich für die schrittweise Verarbeitung von Log- und Textdateien.</description><pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate><category>typescript</category><category>streams</category><category>text-processing</category></item><item><title>Line-Oriented Text Splitting with TransformStream: LineSplitTransform</title><link>https://hsb.horse/en/blog/line-split-transform-stream/</link><guid isPermaLink="true">https://hsb.horse/en/blog/line-split-transform-stream/</guid><description>A TransformStream implementation that splits binary stream data into lines. Useful for incremental processing of log files and text streams.</description><pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate><category>typescript</category><category>streams</category><category>text-processing</category></item><item><title>Implémenter un découpage de texte ligne par ligne avec TransformStream : LineSplitTransform</title><link>https://hsb.horse/fr/blog/line-split-transform-stream/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/line-split-transform-stream/</guid><description>Une implémentation TransformStream qui découpe les données binaires d&apos;un flux en lignes. Pratique pour traiter progressivement des logs et des flux texte.</description><pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate><category>typescript</category><category>streams</category><category>text-processing</category></item><item><title>TransformStreamで行単位のテキスト分割を実装: LineSplitTransform</title><link>https://hsb.horse/blog/line-split-transform-stream/</link><guid isPermaLink="true">https://hsb.horse/blog/line-split-transform-stream/</guid><description>ストリームから受け取ったバイナリデータを行単位に分割するTransformStream実装。ログファイルやテキストファイルの逐次処理に活用できる手法を整理。</description><pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate><category>typescript</category><category>streams</category><category>text-processing</category></item><item><title>TransformStream으로 줄 단위 텍스트 분할 구현하기: LineSplitTransform</title><link>https://hsb.horse/ko/blog/line-split-transform-stream/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/line-split-transform-stream/</guid><description>스트림에서 받은 바이너리 데이터를 줄 단위로 분할하는 TransformStream 구현. 로그 파일과 텍스트 스트림의 점진 처리에 유용하다.</description><pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate><category>typescript</category><category>streams</category><category>text-processing</category></item><item><title>Implementando divisão de texto por linha com TransformStream: LineSplitTransform</title><link>https://hsb.horse/pt/blog/line-split-transform-stream/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/line-split-transform-stream/</guid><description>Uma implementação de TransformStream que divide dados binários recebidos de um fluxo em linhas. Útil para processamento incremental de logs e arquivos de texto.</description><pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate><category>typescript</category><category>streams</category><category>text-processing</category></item><item><title>Bildverarbeitung mit OffscreenCanvas und Web Worker umsetzen</title><link>https://hsb.horse/de/blog/offscreencanvas-web-worker-image-processing/</link><guid isPermaLink="true">https://hsb.horse/de/blog/offscreencanvas-web-worker-image-processing/</guid><description>Wie man mit Web Worker und OffscreenCanvas Bildverarbeitung umsetzt, ohne den Main Thread zu blockieren. Der Artikel fasst ein konkretes Beispiel für eine WebP-Konvertierung zusammen.</description><pubDate>Sat, 18 Jan 2025 00:00:00 GMT</pubDate><category>webworker</category><category>canvas</category><category>image-processing</category></item><item><title>Implementing Image Processing with OffscreenCanvas and Web Workers</title><link>https://hsb.horse/en/blog/offscreencanvas-web-worker-image-processing/</link><guid isPermaLink="true">https://hsb.horse/en/blog/offscreencanvas-web-worker-image-processing/</guid><description>How to process images with Web Workers and OffscreenCanvas without blocking the main thread. This article organizes a concrete WebP conversion example.</description><pubDate>Sat, 18 Jan 2025 00:00:00 GMT</pubDate><category>webworker</category><category>canvas</category><category>image-processing</category></item><item><title>Mettre en place un traitement d’image avec OffscreenCanvas et Web Worker</title><link>https://hsb.horse/fr/blog/offscreencanvas-web-worker-image-processing/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/offscreencanvas-web-worker-image-processing/</guid><description>Comment traiter des images avec Web Worker et OffscreenCanvas sans bloquer le thread principal. L’article s’appuie sur un exemple concret de conversion en WebP.</description><pubDate>Sat, 18 Jan 2025 00:00:00 GMT</pubDate><category>webworker</category><category>canvas</category><category>image-processing</category></item><item><title>OffscreenCanvasとWeb Workerで画像処理を実装する</title><link>https://hsb.horse/blog/offscreencanvas-web-worker-image-processing/</link><guid isPermaLink="true">https://hsb.horse/blog/offscreencanvas-web-worker-image-processing/</guid><description>Web Workerとoffscreen Canvasを使って、メインスレッドをブロックせずに画像処理を行う実装方法。WebP変換の実例を整理。</description><pubDate>Sat, 18 Jan 2025 00:00:00 GMT</pubDate><category>webworker</category><category>canvas</category><category>image-processing</category></item><item><title>OffscreenCanvas와 Web Worker로 이미지 처리를 구현하기</title><link>https://hsb.horse/ko/blog/offscreencanvas-web-worker-image-processing/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/offscreencanvas-web-worker-image-processing/</guid><description>Web Worker와 OffscreenCanvas를 사용해 메인 스레드를 막지 않고 이미지 처리를 수행하는 방법. WebP 변환 예제를 중심으로 정리했다.</description><pubDate>Sat, 18 Jan 2025 00:00:00 GMT</pubDate><category>webworker</category><category>canvas</category><category>image-processing</category></item><item><title>Implementando processamento de imagem com OffscreenCanvas e Web Worker</title><link>https://hsb.horse/pt/blog/offscreencanvas-web-worker-image-processing/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/offscreencanvas-web-worker-image-processing/</guid><description>Como processar imagens com Web Worker e OffscreenCanvas sem bloquear a thread principal. Este artigo organiza um exemplo concreto de conversão para WebP.</description><pubDate>Sat, 18 Jan 2025 00:00:00 GMT</pubDate><category>webworker</category><category>canvas</category><category>image-processing</category></item><item><title>Eine TypeScript-Utility-Funktion zum Konvertieren von Werten in ReadableStream</title><link>https://hsb.horse/de/blog/to-readablestream-utility-typescript/</link><guid isPermaLink="true">https://hsb.horse/de/blog/to-readablestream-utility-typescript/</guid><description>Eine Utility-Funktion, die Strings, Objekte und andere Werte in ReadableStream umwandelt. Streams mit beliebigen Typen, ohne erst über Blob zu gehen.</description><pubDate>Sat, 21 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>streams</category><category>utility</category></item><item><title>A TypeScript Utility Function to Convert Values into ReadableStream</title><link>https://hsb.horse/en/blog/to-readablestream-utility-typescript/</link><guid isPermaLink="true">https://hsb.horse/en/blog/to-readablestream-utility-typescript/</guid><description>A utility function that converts strings, objects, and more into ReadableStream. A way to handle streams as arbitrary types without going through Blob.</description><pubDate>Sat, 21 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>streams</category><category>utility</category></item><item><title>Une fonction utilitaire TypeScript pour convertir des valeurs en ReadableStream</title><link>https://hsb.horse/fr/blog/to-readablestream-utility-typescript/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/to-readablestream-utility-typescript/</guid><description>Une fonction utilitaire qui convertit des chaînes, objets et autres valeurs en ReadableStream. Une façon de manipuler des flux typés sans passer par Blob.</description><pubDate>Sat, 21 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>streams</category><category>utility</category></item><item><title>値をReadableStreamに変換するTypeScriptユーティリティ関数</title><link>https://hsb.horse/blog/to-readablestream-utility-typescript/</link><guid isPermaLink="true">https://hsb.horse/blog/to-readablestream-utility-typescript/</guid><description>StringやオブジェクトなどをReadableStreamに変換するユーティリティ関数。Blob経由ではなく任意の型でストリームを扱う実装を整理。</description><pubDate>Sat, 21 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>streams</category><category>utility</category></item><item><title>값을 ReadableStream으로 변환하는 TypeScript 유틸리티 함수</title><link>https://hsb.horse/ko/blog/to-readablestream-utility-typescript/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/to-readablestream-utility-typescript/</guid><description>String이나 객체 등을 ReadableStream으로 변환하는 유틸리티 함수. Blob을 거치지 않고 임의 타입으로 스트림을 다루는 구현을 정리했다.</description><pubDate>Sat, 21 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>streams</category><category>utility</category></item><item><title>Função utilitária em TypeScript para converter valores em ReadableStream</title><link>https://hsb.horse/pt/blog/to-readablestream-utility-typescript/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/to-readablestream-utility-typescript/</guid><description>Uma função utilitária que converte strings, objetos e outros valores em ReadableStream. Uma forma de lidar com streams tipados sem passar por Blob.</description><pubDate>Sat, 21 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>streams</category><category>utility</category></item><item><title>Implementierung der CIDR-Bereichs-IP-Adressbestimmung mit TypeScript</title><link>https://hsb.horse/de/blog/typescript-cidr-ip-address-validation/</link><guid isPermaLink="true">https://hsb.horse/de/blog/typescript-cidr-ip-address-validation/</guid><description>Für Umgebungen, in denen externe Module wie CloudFront Function nicht verwendet werden können, haben wir unsere eigene IP-Adressermittlung innerhalb des CIDR-Bereichs implementiert. Organisierte die Implementierung der Klassensyntax mithilfe bitweiser Operationen.</description><pubDate>Wed, 11 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>networking</category><category>cloudfront</category></item><item><title>Implementing CIDR range IP address determination with TypeScript</title><link>https://hsb.horse/en/blog/typescript-cidr-ip-address-validation/</link><guid isPermaLink="true">https://hsb.horse/en/blog/typescript-cidr-ip-address-validation/</guid><description>For environments where external modules such as CloudFront Function cannot be used, we have implemented our own IP address determination within the CIDR range. Organized the implementation of class syntax using bitwise operations.</description><pubDate>Wed, 11 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>networking</category><category>cloudfront</category></item><item><title>Implémentation de la détermination de l&apos;adresse IP de la plage CIDR avec TypeScript</title><link>https://hsb.horse/fr/blog/typescript-cidr-ip-address-validation/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/typescript-cidr-ip-address-validation/</guid><description>Pour les environnements dans lesquels des modules externes tels que CloudFront Function ne peuvent pas être utilisés, nous avons implémenté notre propre détermination d&apos;adresse IP dans la plage CIDR. Organisé l&apos;implémentation de la syntaxe de classe à l&apos;aide d&apos;opérations au niveau du bit.</description><pubDate>Wed, 11 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>networking</category><category>cloudfront</category></item><item><title>TypeScriptでCIDR範囲のIPアドレス判定を実装する</title><link>https://hsb.horse/blog/typescript-cidr-ip-address-validation/</link><guid isPermaLink="true">https://hsb.horse/blog/typescript-cidr-ip-address-validation/</guid><description>CloudFront Functionなど外部モジュールが使えない環境向けに、CIDR範囲内のIPアドレス判定を自前実装。ビット演算を使ったクラス構文の実装を整理。</description><pubDate>Wed, 11 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>networking</category><category>cloudfront</category></item><item><title>TypeScript에서 CIDR 범위의 IP 주소 결정 구현</title><link>https://hsb.horse/ko/blog/typescript-cidr-ip-address-validation/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/typescript-cidr-ip-address-validation/</guid><description>CloudFront Function 등 외부 모듈을 사용할 수 없는 환경용으로 CIDR 범위 내의 IP 주소 판정을 자체 구현. 비트 연산을 사용한 클래스 구문의 구현을 정리.</description><pubDate>Wed, 11 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>networking</category><category>cloudfront</category></item><item><title>Implementando a determinação de endereços IP do intervalo CIDR com TypeScript</title><link>https://hsb.horse/pt/blog/typescript-cidr-ip-address-validation/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/typescript-cidr-ip-address-validation/</guid><description>Para ambientes onde módulos externos, como o CloudFront Function, não podem ser usados, implementamos nossa própria determinação de endereço IP dentro do intervalo CIDR. Organizou a implementação da sintaxe da classe usando operações bit a bit.</description><pubDate>Wed, 11 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>networking</category><category>cloudfront</category></item><item><title>So führen Sie einen mit Bun+Hono erstellten API-Server auf AWS Lambda aus</title><link>https://hsb.horse/de/blog/bun-hono-api-on-aws-lambda/</link><guid isPermaLink="true">https://hsb.horse/de/blog/bun-hono-api-on-aws-lambda/</guid><description>Schritte zum Ausführen des Hono-API-Servers auf AWS Lambda mit Bun-Laufzeit. Erläutert die Konfiguration zum Kompilieren als Single File Executable und zum Ausführen mit Lambda Web Adaptor.</description><pubDate>Sun, 08 Sep 2024 00:00:00 GMT</pubDate><category>bun</category><category>hono</category><category>aws</category><category>lambda</category></item><item><title>How to run an API server built with Bun+Hono on AWS Lambda</title><link>https://hsb.horse/en/blog/bun-hono-api-on-aws-lambda/</link><guid isPermaLink="true">https://hsb.horse/en/blog/bun-hono-api-on-aws-lambda/</guid><description>Steps to run Hono API server on AWS Lambda with Bun runtime. Explains the configuration to compile as Single File Executable and run it with Lambda Web Adapter.</description><pubDate>Sun, 08 Sep 2024 00:00:00 GMT</pubDate><category>bun</category><category>hono</category><category>aws</category><category>lambda</category></item><item><title>Comment exécuter un serveur API construit avec Bun+Hono sur AWS Lambda</title><link>https://hsb.horse/fr/blog/bun-hono-api-on-aws-lambda/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/bun-hono-api-on-aws-lambda/</guid><description>Étapes pour exécuter le serveur API Hono sur AWS Lambda avec le runtime Bun. Explique la configuration pour compiler en tant qu&apos;exécutable à fichier unique et l&apos;exécuter avec Lambda Web Adapter.</description><pubDate>Sun, 08 Sep 2024 00:00:00 GMT</pubDate><category>bun</category><category>hono</category><category>aws</category><category>lambda</category></item><item><title>Bun+HonoでビルドしたAPIサーバをAWS Lambdaで動かす方法</title><link>https://hsb.horse/blog/bun-hono-api-on-aws-lambda/</link><guid isPermaLink="true">https://hsb.horse/blog/bun-hono-api-on-aws-lambda/</guid><description>BunランタイムでHono APIサーバをAWS Lambda上で動作させる手順。Single File Executableとしてコンパイルし、Lambda Web Adapterで動かす構成を解説。</description><pubDate>Sun, 08 Sep 2024 00:00:00 GMT</pubDate><category>bun</category><category>hono</category><category>aws</category><category>lambda</category></item><item><title>Bun+Hono로 빌드된 API 서버를 AWS Lambda에서 실행하는 방법</title><link>https://hsb.horse/ko/blog/bun-hono-api-on-aws-lambda/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/bun-hono-api-on-aws-lambda/</guid><description>Bun 런타임에서 Hono API 서버를 AWS Lambda에서 실행하는 단계. Single File Executable로 컴파일하고, Lambda Web Adapter로 움직이는 구성을 해설.</description><pubDate>Sun, 08 Sep 2024 00:00:00 GMT</pubDate><category>bun</category><category>hono</category><category>aws</category><category>lambda</category></item><item><title>Como executar um servidor API construído com Bun+Hono no AWS Lambda</title><link>https://hsb.horse/pt/blog/bun-hono-api-on-aws-lambda/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/bun-hono-api-on-aws-lambda/</guid><description>Etapas para executar o servidor Hono API no AWS Lambda com tempo de execução Bun. Explica a configuração para compilar como executável de arquivo único e executá-lo com o Lambda Web Adaptor.</description><pubDate>Sun, 08 Sep 2024 00:00:00 GMT</pubDate><category>bun</category><category>hono</category><category>aws</category><category>lambda</category></item><item><title>generate-project-summary.py mit Bun + TypeScript neu umgesetzt</title><link>https://hsb.horse/de/blog/generate-project-summary-bun-typescript/</link><guid isPermaLink="true">https://hsb.horse/de/blog/generate-project-summary-bun-typescript/</guid><description>Eine Neuimplementierung eines Python-Skripts zur Projektzusammenfassung in Bun + TypeScript. Warum ich dafür ein portables Binary für LLM-Kontext gebaut habe.</description><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>bun</category><category>llm</category><category>cli</category></item><item><title>Reimplementing generate-project-summary.py with Bun + TypeScript</title><link>https://hsb.horse/en/blog/generate-project-summary-bun-typescript/</link><guid isPermaLink="true">https://hsb.horse/en/blog/generate-project-summary-bun-typescript/</guid><description>A Bun + TypeScript rewrite of a Python project-summary script. Covers the path to a portable executable for feeding whole repositories into an LLM.</description><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>bun</category><category>llm</category><category>cli</category></item><item><title>Réécrire generate-project-summary.py avec Bun + TypeScript</title><link>https://hsb.horse/fr/blog/generate-project-summary-bun-typescript/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/generate-project-summary-bun-typescript/</guid><description>Réimplémentation en Bun + TypeScript d&apos;un script Python de résumé de projet. Retour sur la création d&apos;un binaire portable pour faire lire un dépôt entier à un LLM.</description><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>bun</category><category>llm</category><category>cli</category></item><item><title>generate-project-summary.pyをBun+TypeScriptで再実装した話</title><link>https://hsb.horse/blog/generate-project-summary-bun-typescript/</link><guid isPermaLink="true">https://hsb.horse/blog/generate-project-summary-bun-typescript/</guid><description>Pythonで書かれたプロジェクト構造要約スクリプトを、Bun+TypeScriptで再実装。LLMにリポジトリ全体を読ませるための実行可能バイナリ作成の経緯と実装を紹介。</description><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>bun</category><category>llm</category><category>cli</category></item><item><title>generate-project-summary.py를 Bun + TypeScript로 다시 구현한 이야기</title><link>https://hsb.horse/ko/blog/generate-project-summary-bun-typescript/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/generate-project-summary-bun-typescript/</guid><description>Python으로 작성된 프로젝트 구조 요약 스크립트를 Bun + TypeScript로 다시 구현했다. 저장소 전체를 LLM에 읽히기 위한 실행 파일 설계와 구현을 정리한다.</description><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>bun</category><category>llm</category><category>cli</category></item><item><title>Reimplementando generate-project-summary.py com Bun + TypeScript</title><link>https://hsb.horse/pt/blog/generate-project-summary-bun-typescript/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/generate-project-summary-bun-typescript/</guid><description>Uma reimplementação em Bun + TypeScript de um script Python para resumir projetos. O texto cobre a motivação e a implementação de um binário portátil para dar um repositório inteiro a um LLM.</description><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>bun</category><category>llm</category><category>cli</category></item><item><title>TypeScript-Implementierung zum Sortieren von Mediendateien nach Auflösung</title><link>https://hsb.horse/de/blog/sort-media-by-resolution-typescript/</link><guid isPermaLink="true">https://hsb.horse/de/blog/sort-media-by-resolution-typescript/</guid><description>Eine kompakte TypeScript-Implementierung, um Videos oder Bilder nach Auflösung (Breite × Höhe) zu sortieren. Praktisch für Twitter-Medienvarianten.</description><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>media</category><category>sorting</category></item><item><title>TypeScript Implementation for Sorting Media Files by Resolution</title><link>https://hsb.horse/en/blog/sort-media-by-resolution-typescript/</link><guid isPermaLink="true">https://hsb.horse/en/blog/sort-media-by-resolution-typescript/</guid><description>A concise TypeScript implementation for sorting videos or images by resolution (width × height). Useful for ordering Twitter media variants.</description><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>media</category><category>sorting</category></item><item><title>Implémentation TypeScript pour trier des fichiers média par résolution</title><link>https://hsb.horse/fr/blog/sort-media-by-resolution-typescript/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/sort-media-by-resolution-typescript/</guid><description>Une implémentation TypeScript concise pour trier vidéos ou images par résolution (largeur × hauteur). Utile pour ordonner des médias Twitter.</description><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>media</category><category>sorting</category></item><item><title>メディアファイルを解像度でソートするTypeScript実装</title><link>https://hsb.horse/blog/sort-media-by-resolution-typescript/</link><guid isPermaLink="true">https://hsb.horse/blog/sort-media-by-resolution-typescript/</guid><description>動画や画像の解像度(幅×高さ)でソートする簡潔なTypeScript実装。Twitter動画メディアのソート処理に活用。</description><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>media</category><category>sorting</category></item><item><title>해상도로 미디어 파일을 정렬하는 TypeScript 구현</title><link>https://hsb.horse/ko/blog/sort-media-by-resolution-typescript/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/sort-media-by-resolution-typescript/</guid><description>영상이나 이미지를 해상도(너비 × 높이) 기준으로 정렬하는 간결한 TypeScript 구현. Twitter 미디어 정렬에 활용할 수 있다.</description><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>media</category><category>sorting</category></item><item><title>Implementação em TypeScript para ordenar arquivos de mídia por resolução</title><link>https://hsb.horse/pt/blog/sort-media-by-resolution-typescript/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/sort-media-by-resolution-typescript/</guid><description>Uma implementação TypeScript enxuta para ordenar vídeos ou imagens por resolução (largura × altura). Útil para variantes de mídia do Twitter.</description><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>typescript</category><category>media</category><category>sorting</category></item><item><title>Ein Deployment-Skript für eine SPA mit CloudFront + S3</title><link>https://hsb.horse/de/blog/cloudfront-s3-spa-deployment-script/</link><guid isPermaLink="true">https://hsb.horse/de/blog/cloudfront-s3-spa-deployment-script/</guid><description>Ein praxistaugliches Deployment-Skript für eine SPA, die aus S3 hinter CloudFront ausgeliefert wird. Dieser Artikel fasst Cache-Control-Einstellungen, eine Blue-Green-ähnliche Deployment-Struktur und den Rollback-Ablauf zusammen.</description><pubDate>Tue, 03 Sep 2024 00:00:00 GMT</pubDate><category>aws</category><category>cloudfront</category><category>s3</category><category>deployment</category></item><item><title>A Deployment Script for Serving an SPA with CloudFront + S3</title><link>https://hsb.horse/en/blog/cloudfront-s3-spa-deployment-script/</link><guid isPermaLink="true">https://hsb.horse/en/blog/cloudfront-s3-spa-deployment-script/</guid><description>A practical deployment script for serving an SPA from S3 behind CloudFront. This article organizes cache-control settings, a blue-green style deployment layout, and rollback steps.</description><pubDate>Tue, 03 Sep 2024 00:00:00 GMT</pubDate><category>aws</category><category>cloudfront</category><category>s3</category><category>deployment</category></item><item><title>Un script de déploiement pour servir une SPA avec CloudFront + S3</title><link>https://hsb.horse/fr/blog/cloudfront-s3-spa-deployment-script/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/cloudfront-s3-spa-deployment-script/</guid><description>Un script de déploiement concret pour servir une SPA hébergée sur S3 derrière CloudFront. Cet article récapitule les réglages de cache-control, une structure de déploiement de type blue-green et la procédure de rollback.</description><pubDate>Tue, 03 Sep 2024 00:00:00 GMT</pubDate><category>aws</category><category>cloudfront</category><category>s3</category><category>deployment</category></item><item><title>CloudFront + S3でSPAを配信するデプロイスクリプト</title><link>https://hsb.horse/blog/cloudfront-s3-spa-deployment-script/</link><guid isPermaLink="true">https://hsb.horse/blog/cloudfront-s3-spa-deployment-script/</guid><description>CloudFront経由でS3にホストしたSPAを配信する際のデプロイスクリプト。キャッシュコントロール設定、ブルーグリーンデプロイ、切り戻し手順を整理。</description><pubDate>Tue, 03 Sep 2024 00:00:00 GMT</pubDate><category>aws</category><category>cloudfront</category><category>s3</category><category>deployment</category></item><item><title>CloudFront + S3로 SPA를 배포하는 배포 스크립트</title><link>https://hsb.horse/ko/blog/cloudfront-s3-spa-deployment-script/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/cloudfront-s3-spa-deployment-script/</guid><description>CloudFront 뒤의 S3에서 SPA를 제공할 때 쓸 수 있는 실전형 배포 스크립트. Cache-Control 설정, 블루그린 스타일 배포 구조, 롤백 절차를 정리했다.</description><pubDate>Tue, 03 Sep 2024 00:00:00 GMT</pubDate><category>aws</category><category>cloudfront</category><category>s3</category><category>deployment</category></item><item><title>Um script de deploy para servir uma SPA com CloudFront + S3</title><link>https://hsb.horse/pt/blog/cloudfront-s3-spa-deployment-script/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/cloudfront-s3-spa-deployment-script/</guid><description>Um script de deploy prático para servir uma SPA hospedada em S3 atrás do CloudFront. Este artigo organiza as configurações de cache-control, uma estrutura de deploy no estilo blue-green e o procedimento de rollback.</description><pubDate>Tue, 03 Sep 2024 00:00:00 GMT</pubDate><category>aws</category><category>cloudfront</category><category>s3</category><category>deployment</category></item><item><title>So löscht man eine nicht leere Datenbank in AWS Athena</title><link>https://hsb.horse/de/blog/athena-drop-database-cascade/</link><guid isPermaLink="true">https://hsb.horse/de/blog/athena-drop-database-cascade/</guid><description>Was zu tun ist, wenn das Löschen einer nicht leeren Datenbank in AWS Athena fehlschlägt. Eine kurze Notiz zur Verwendung von DROP DATABASE CASCADE.</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>aws</category><category>athena</category><category>sql</category></item><item><title>How to Delete a Non-Empty Database in AWS Athena</title><link>https://hsb.horse/en/blog/athena-drop-database-cascade/</link><guid isPermaLink="true">https://hsb.horse/en/blog/athena-drop-database-cascade/</guid><description>What to do when deleting a non-empty database in AWS Athena fails. A quick note on using DROP DATABASE CASCADE.</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>aws</category><category>athena</category><category>sql</category></item><item><title>Supprimer une base de données non vide dans AWS Athena</title><link>https://hsb.horse/fr/blog/athena-drop-database-cascade/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/athena-drop-database-cascade/</guid><description>Que faire lorsqu’une tentative de suppression d’une base non vide dans AWS Athena échoue. Une note rapide sur l’utilisation de DROP DATABASE CASCADE.</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>aws</category><category>athena</category><category>sql</category></item><item><title>AWS Athenaで空でないデータベースを削除する方法</title><link>https://hsb.horse/blog/athena-drop-database-cascade/</link><guid isPermaLink="true">https://hsb.horse/blog/athena-drop-database-cascade/</guid><description>AWS Athenaで空でないデータベースを削除しようとしてエラーになったときの対処法。DROP DATABASE CASCADEコマンドの使い方。</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>aws</category><category>athena</category><category>sql</category></item><item><title>AWS Athena에서 비어 있지 않은 데이터베이스를 삭제하는 방법</title><link>https://hsb.horse/ko/blog/athena-drop-database-cascade/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/athena-drop-database-cascade/</guid><description>AWS Athena에서 비어 있지 않은 데이터베이스를 삭제하려고 할 때 발생하는 오류의 해결 방법. DROP DATABASE CASCADE 사용법을 정리했다.</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>aws</category><category>athena</category><category>sql</category></item><item><title>Como excluir um banco de dados não vazio no AWS Athena</title><link>https://hsb.horse/pt/blog/athena-drop-database-cascade/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/athena-drop-database-cascade/</guid><description>O que fazer quando a exclusão de um banco de dados não vazio no AWS Athena falha. Uma nota rápida sobre o uso de DROP DATABASE CASCADE.</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>aws</category><category>athena</category><category>sql</category></item><item><title>Lotto-6- und Lotto-7-Zahlen in TypeScript erzeugen</title><link>https://hsb.horse/de/blog/typescript-lotto-number-generator/</link><guid isPermaLink="true">https://hsb.horse/de/blog/typescript-lotto-number-generator/</guid><description>Eine TypeScript-Implementierung, die mit dem Mersenne Twister Lotto-6- und Lotto-7-Zahlen erzeugt. Ein praktisches Beispiel für einen Pseudozufallszahlengenerator.</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>algorithm</category><category>random</category></item><item><title>Generate Lotto 6 and Lotto 7 Numbers in TypeScript</title><link>https://hsb.horse/en/blog/typescript-lotto-number-generator/</link><guid isPermaLink="true">https://hsb.horse/en/blog/typescript-lotto-number-generator/</guid><description>A TypeScript implementation that generates Lotto 6 and Lotto 7 numbers with the Mersenne Twister. A practical example of a pseudorandom number generator.</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>algorithm</category><category>random</category></item><item><title>Générer des numéros de Lotto 6 et Lotto 7 en TypeScript</title><link>https://hsb.horse/fr/blog/typescript-lotto-number-generator/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/typescript-lotto-number-generator/</guid><description>Une implémentation TypeScript qui génère des numéros de Lotto 6 et Lotto 7 avec le Mersenne Twister. Un exemple pratique de générateur pseudo-aléatoire.</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>algorithm</category><category>random</category></item><item><title>TypeScriptでロト6・ロト7の抽選数字を生成する</title><link>https://hsb.horse/blog/typescript-lotto-number-generator/</link><guid isPermaLink="true">https://hsb.horse/blog/typescript-lotto-number-generator/</guid><description>メルセンヌ・ツイスターを使ってロト6・ロト7の抽選番号を生成するTypeScript実装。疑似乱数生成器の実践例。</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>algorithm</category><category>random</category></item><item><title>TypeScript로 로토6·로토7 추첨 숫자 생성하기</title><link>https://hsb.horse/ko/blog/typescript-lotto-number-generator/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/typescript-lotto-number-generator/</guid><description>메르센 트위스터를 사용해 로토6·로토7 번호를 생성하는 TypeScript 구현. 의사난수 생성기의 실전 예시.</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>algorithm</category><category>random</category></item><item><title>Gerar números da Lotto 6 e Lotto 7 em TypeScript</title><link>https://hsb.horse/pt/blog/typescript-lotto-number-generator/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/typescript-lotto-number-generator/</guid><description>Uma implementação em TypeScript que gera números da Lotto 6 e Lotto 7 usando o Mersenne Twister. Um exemplo prático de gerador pseudoaleatório.</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>algorithm</category><category>random</category></item><item><title>Mit TypeScript eine Anfrage an ein IAM-geschütztes API Gateway senden</title><link>https://hsb.horse/de/blog/api-gateway-iam-auth-typescript-request/</link><guid isPermaLink="true">https://hsb.horse/de/blog/api-gateway-iam-auth-typescript-request/</guid><description>So senden Sie aus einer lokalen TypeScript-Umgebung mit SigV4 aus dem AWS SDK für JavaScript Anfragen an ein API Gateway mit IAM-Authentifizierung.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>aws</category><category>typescript</category><category>api-gateway</category></item><item><title>Requesting an IAM-Protected API Gateway from TypeScript</title><link>https://hsb.horse/en/blog/api-gateway-iam-auth-typescript-request/</link><guid isPermaLink="true">https://hsb.horse/en/blog/api-gateway-iam-auth-typescript-request/</guid><description>How to send a TypeScript request from local development to an API Gateway protected by IAM authentication using SigV4 from the AWS SDK for JavaScript.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>aws</category><category>typescript</category><category>api-gateway</category></item><item><title>Envoyer une requête TypeScript vers un API Gateway protégé par IAM</title><link>https://hsb.horse/fr/blog/api-gateway-iam-auth-typescript-request/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/api-gateway-iam-auth-typescript-request/</guid><description>Implémentation TypeScript pour appeler depuis un environnement local un API Gateway protégé par IAM en utilisant SigV4 du SDK AWS pour JavaScript.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>aws</category><category>typescript</category><category>api-gateway</category></item><item><title>IAM認証有効なAPI GatewayにTypeScriptでリクエストする実装</title><link>https://hsb.horse/blog/api-gateway-iam-auth-typescript-request/</link><guid isPermaLink="true">https://hsb.horse/blog/api-gateway-iam-auth-typescript-request/</guid><description>AWS SDK for JavaScriptのSigV4を使って、IAM認証が有効なAPI Gatewayにローカル環境からTypeScriptでリクエストする実装手順。</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>aws</category><category>typescript</category><category>api-gateway</category></item><item><title>IAM 인증이 켜진 API Gateway에 TypeScript로 요청하기</title><link>https://hsb.horse/ko/blog/api-gateway-iam-auth-typescript-request/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/api-gateway-iam-auth-typescript-request/</guid><description>AWS SDK for JavaScript의 SigV4를 사용해 로컬 환경의 TypeScript 코드에서 IAM 인증이 적용된 API Gateway로 요청을 보내는 구현 방법.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>aws</category><category>typescript</category><category>api-gateway</category></item><item><title>Implementação em TypeScript para chamar um API Gateway protegido por IAM</title><link>https://hsb.horse/pt/blog/api-gateway-iam-auth-typescript-request/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/api-gateway-iam-auth-typescript-request/</guid><description>Passo a passo para enviar, a partir do ambiente local, uma requisição em TypeScript para um API Gateway com autenticação IAM usando SigV4 do AWS SDK para JavaScript.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>aws</category><category>typescript</category><category>api-gateway</category></item><item><title>Markdown mit markdown-confluence CLI nach Confluence synchronisieren</title><link>https://hsb.horse/de/blog/markdown-confluence-cli-sync/</link><guid isPermaLink="true">https://hsb.horse/de/blog/markdown-confluence-cli-sync/</guid><description>Wie man `@markdown-confluence/cli` einführt und betreibt, um Markdown-Dokumente aus einem Git-Repository nach Confluence zu synchronisieren. Der Artikel fasst einen Workflow zum Teilen von ADRs und anderen Dokumenten über Confluence zusammen.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>confluence</category><category>markdown</category><category>documentation</category></item><item><title>Using markdown-confluence CLI to Sync Markdown into Confluence</title><link>https://hsb.horse/en/blog/markdown-confluence-cli-sync/</link><guid isPermaLink="true">https://hsb.horse/en/blog/markdown-confluence-cli-sync/</guid><description>How to introduce and operate `@markdown-confluence/cli` to sync Markdown documents in a Git repository into Confluence. This article organizes a workflow for sharing ADRs and other docs through Confluence.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>confluence</category><category>markdown</category><category>documentation</category></item><item><title>Synchroniser du Markdown vers Confluence avec markdown-confluence CLI</title><link>https://hsb.horse/fr/blog/markdown-confluence-cli-sync/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/markdown-confluence-cli-sync/</guid><description>Comment introduire et exploiter `@markdown-confluence/cli` pour synchroniser des documents Markdown stockés dans un dépôt Git vers Confluence. Cet article organise un flux de partage pour des ADR et d’autres documents.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>confluence</category><category>markdown</category><category>documentation</category></item><item><title>markdown-confluence CLIでMarkdownをConfluenceに同期する運用</title><link>https://hsb.horse/blog/markdown-confluence-cli-sync/</link><guid isPermaLink="true">https://hsb.horse/blog/markdown-confluence-cli-sync/</guid><description>Gitリポジトリ内のMarkdownドキュメントをConfluenceに同期する@markdown-confluence/cliの導入と運用方法。ADRやドキュメントをConfluenceで共有する手順を整理。</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>confluence</category><category>markdown</category><category>documentation</category></item><item><title>markdown-confluence CLI로 Markdown을 Confluence에 동기화하는 운영</title><link>https://hsb.horse/ko/blog/markdown-confluence-cli-sync/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/markdown-confluence-cli-sync/</guid><description>Git 저장소 안의 Markdown 문서를 Confluence로 동기화하기 위한 `@markdown-confluence/cli` 도입과 운영 방법. ADR과 각종 문서를 Confluence로 공유하는 흐름을 정리했다.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>confluence</category><category>markdown</category><category>documentation</category></item><item><title>Sincronizando Markdown com o Confluence usando markdown-confluence CLI</title><link>https://hsb.horse/pt/blog/markdown-confluence-cli-sync/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/markdown-confluence-cli-sync/</guid><description>Como adotar e operar o `@markdown-confluence/cli` para sincronizar documentos Markdown de um repositório Git com o Confluence. Este artigo organiza um fluxo para compartilhar ADRs e outros documentos pelo Confluence.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>confluence</category><category>markdown</category><category>documentation</category></item><item><title>Vue Composable zur Verwaltung des globalen Status ohne Pinia</title><link>https://hsb.horse/de/blog/vue-global-state-without-pinia/</link><guid isPermaLink="true">https://hsb.horse/de/blog/vue-global-state-without-pinia/</guid><description>Eine einfache Implementierungsmethode, um eine globale Zustandsverwaltung mithilfe von Vues reaktiven und toRefs ohne Verwendung von Pinia zu erreichen.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>vue</category><category>composable</category><category>state-management</category></item><item><title>Vue Composable to manage global state without Pinia</title><link>https://hsb.horse/en/blog/vue-global-state-without-pinia/</link><guid isPermaLink="true">https://hsb.horse/en/blog/vue-global-state-without-pinia/</guid><description>A lightweight implementation method to achieve global state management using Vue&apos;s reactive and toRefs without using Pinia.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>vue</category><category>composable</category><category>state-management</category></item><item><title>Vue Composable pour gérer l&apos;état global sans Pinia</title><link>https://hsb.horse/fr/blog/vue-global-state-without-pinia/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/vue-global-state-without-pinia/</guid><description>Une méthode d&apos;implémentation légère pour réaliser une gestion globale de l&apos;état à l&apos;aide des réactifs et toRefs de Vue sans utiliser Pinia.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>vue</category><category>composable</category><category>state-management</category></item><item><title>Piniaなしでグローバルステートを管理するVue Composable</title><link>https://hsb.horse/blog/vue-global-state-without-pinia/</link><guid isPermaLink="true">https://hsb.horse/blog/vue-global-state-without-pinia/</guid><description>Piniaを使わずにVueのreactiveとtoRefsでグローバルステート管理を実現する軽量な実装方法。</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>vue</category><category>composable</category><category>state-management</category></item><item><title>Pinia 없이 글로벌 상태 관리Vue Composable</title><link>https://hsb.horse/ko/blog/vue-global-state-without-pinia/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/vue-global-state-without-pinia/</guid><description>Pinia를 사용하지 않고 Vue의 reactive와 toRefs로 글로벌 스테이트 관리를 실현하는 경량의 구현 방법.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>vue</category><category>composable</category><category>state-management</category></item><item><title>Vue Composable para gerenciar o estado global sem Pinia</title><link>https://hsb.horse/pt/blog/vue-global-state-without-pinia/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/vue-global-state-without-pinia/</guid><description>Um método de implementação leve para obter gerenciamento de estado global usando reativo e toRefs do Vue sem usar Pinia.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>vue</category><category>composable</category><category>state-management</category></item><item><title>Berücksichtigen Sie Strategiemuster, wenn V-IF-Zweige in Vue zunehmen</title><link>https://hsb.horse/de/blog/vue-strategy-pattern-dynamic-component/</link><guid isPermaLink="true">https://hsb.horse/de/blog/vue-strategy-pattern-dynamic-component/</guid><description>Wenn es drei oder mehr Muster bedingter Verzweigungen mit v-if gibt, sollten Sie die Implementierung eines Strategiemusters zum dynamischen Wechseln von Komponenten in Betracht ziehen. Verbesserte Lesbarkeit und Wartbarkeit.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>vue</category><category>design-pattern</category><category>best-practice</category></item><item><title>Consider strategy patterns when v-if branches increase in Vue</title><link>https://hsb.horse/en/blog/vue-strategy-pattern-dynamic-component/</link><guid isPermaLink="true">https://hsb.horse/en/blog/vue-strategy-pattern-dynamic-component/</guid><description>When there are three or more patterns of conditional branching using v-if, consider implementing a strategy pattern to dynamically switch components. Improved readability and maintainability.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>vue</category><category>design-pattern</category><category>best-practice</category></item><item><title>Considérez les modèles de stratégie lorsque les branches v-if augmentent dans Vue</title><link>https://hsb.horse/fr/blog/vue-strategy-pattern-dynamic-component/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/vue-strategy-pattern-dynamic-component/</guid><description>Lorsqu&apos;il existe au moins trois modèles de branchement conditionnel utilisant v-if, envisagez de mettre en œuvre un modèle de stratégie pour changer dynamiquement de composants. Lisibilité et maintenabilité améliorées.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>vue</category><category>design-pattern</category><category>best-practice</category></item><item><title>Vueでv-ifの分岐が増えたらストラテジーパターンを検討する</title><link>https://hsb.horse/blog/vue-strategy-pattern-dynamic-component/</link><guid isPermaLink="true">https://hsb.horse/blog/vue-strategy-pattern-dynamic-component/</guid><description>v-ifによる条件分岐が3パターン以上になったら、ストラテジーパターンでコンポーネントを動的に切り替える実装を検討。可読性とメンテナンス性の向上。</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>vue</category><category>design-pattern</category><category>best-practice</category></item><item><title>Vue에서 v-if의 분기가 증가하면 전략 패턴을 고려하십시오.</title><link>https://hsb.horse/ko/blog/vue-strategy-pattern-dynamic-component/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/vue-strategy-pattern-dynamic-component/</guid><description>v-if에 의한 조건 분기가 3 패턴 이상이 되면, 전략 패턴으로 컴퍼넌트를 동적으로 전환하는 구현을 검토. 가독성과 유지 보수성 향상.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>vue</category><category>design-pattern</category><category>best-practice</category></item><item><title>Considere padrões de estratégia quando as ramificações v-if aumentam no Vue</title><link>https://hsb.horse/pt/blog/vue-strategy-pattern-dynamic-component/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/vue-strategy-pattern-dynamic-component/</guid><description>Quando houver três ou mais padrões de ramificação condicional usando v-if, considere implementar um padrão de estratégia para alternar componentes dinamicamente. Melhor legibilidade e capacidade de manutenção.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>vue</category><category>design-pattern</category><category>best-practice</category></item><item><title>TypeScript-Implementierung zum Generieren von Bildern aus HTMLVideoElement</title><link>https://hsb.horse/de/blog/generate-image-from-html-video-element/</link><guid isPermaLink="true">https://hsb.horse/de/blog/generate-image-from-html-video-element/</guid><description>Eine TypeScript-Implementierung, die Canvas und VideoElement verwendet, um den aktuellen Frame eines Videos als Bild zu extrahieren. Organisierte die Methode zur Generierung von Blobs basierend auf Versprechen.</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>canvas</category><category>video</category></item><item><title>TypeScript implementation to generate images from HTMLVideoElement</title><link>https://hsb.horse/en/blog/generate-image-from-html-video-element/</link><guid isPermaLink="true">https://hsb.horse/en/blog/generate-image-from-html-video-element/</guid><description>A TypeScript implementation that uses Canvas and VideoElement to extract the current frame of a video as an image. Organized the method of generating blobs based on promises.</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>canvas</category><category>video</category></item><item><title>Implémentation de TypeScript pour générer des images à partir de HTMLVideoElement</title><link>https://hsb.horse/fr/blog/generate-image-from-html-video-element/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/generate-image-from-html-video-element/</guid><description>Une implémentation TypeScript qui utilise Canvas et VideoElement pour extraire l&apos;image actuelle d&apos;une vidéo sous forme d&apos;image. Organisé la méthode de génération de blobs basée sur des promesses.</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>canvas</category><category>video</category></item><item><title>HTMLVideoElementから画像を生成するTypeScript実装</title><link>https://hsb.horse/blog/generate-image-from-html-video-element/</link><guid isPermaLink="true">https://hsb.horse/blog/generate-image-from-html-video-element/</guid><description>CanvasとVideoElementを使って、動画の現在フレームを画像として抽出するTypeScript実装。Promiseベースでblob生成する方法を整理。</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>canvas</category><category>video</category></item><item><title>HTMLVideoElement에서 이미지를 생성하는 TypeScript 구현</title><link>https://hsb.horse/ko/blog/generate-image-from-html-video-element/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/generate-image-from-html-video-element/</guid><description>Canvas와 VideoElement를 사용하여 동영상의 현재 프레임을 이미지로 추출하는 TypeScript 구현. Promise 기반으로 blob 생성하는 방법을 정리.</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>canvas</category><category>video</category></item><item><title>Implementação TypeScript para gerar imagens de HTMLVideoElement</title><link>https://hsb.horse/pt/blog/generate-image-from-html-video-element/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/generate-image-from-html-video-element/</guid><description>Uma implementação TypeScript que usa Canvas e VideoElement para extrair o quadro atual de um vídeo como uma imagem. Organizou o método de geração de blobs baseado em promessas.</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>canvas</category><category>video</category></item><item><title>Cron-Jobs mit PM2 erstellen: als Alternative zu launchd</title><link>https://hsb.horse/de/blog/pm2-cron-job-setup/</link><guid isPermaLink="true">https://hsb.horse/de/blog/pm2-cron-job-setup/</guid><description>Wie man unter macOS mit PM2 statt launchd Cron-artige Jobs erstellt. Eine kurze Zusammenfassung von Konfigurationsdatei und einem periodischen Beispiel mit Bun.</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>pm2</category><category>cron</category><category>nodejs</category><category>bun</category></item><item><title>Create Cron Jobs with PM2: As an Alternative to launchd</title><link>https://hsb.horse/en/blog/pm2-cron-job-setup/</link><guid isPermaLink="true">https://hsb.horse/en/blog/pm2-cron-job-setup/</guid><description>How to create cron-style jobs with PM2 on macOS instead of launchd. A quick summary of the config file and a scheduled task example using Bun.</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>pm2</category><category>cron</category><category>nodejs</category><category>bun</category></item><item><title>Créer un job Cron avec PM2 : comme alternative à launchd</title><link>https://hsb.horse/fr/blog/pm2-cron-job-setup/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/pm2-cron-job-setup/</guid><description>Comment créer un job planifié avec PM2 sur macOS au lieu de launchd. Résumé du fichier de configuration et exemple d’exécution périodique avec Bun.</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>pm2</category><category>cron</category><category>nodejs</category><category>bun</category></item><item><title>PM2でCronジョブを作成する: launchdの代替として</title><link>https://hsb.horse/blog/pm2-cron-job-setup/</link><guid isPermaLink="true">https://hsb.horse/blog/pm2-cron-job-setup/</guid><description>macOSでlaunchdの代わりにPM2を使ってCronジョブを作成する方法。設定ファイルとBunを使った定期実行の実装例を整理。</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>pm2</category><category>cron</category><category>nodejs</category><category>bun</category></item><item><title>PM2로 Cron 작업 만들기: launchd의 대안으로</title><link>https://hsb.horse/ko/blog/pm2-cron-job-setup/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/pm2-cron-job-setup/</guid><description>macOS에서 launchd 대신 PM2를 사용해 Cron 작업을 만드는 방법. 설정 파일과 Bun을 사용한 주기 실행 예시를 정리했다.</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>pm2</category><category>cron</category><category>nodejs</category><category>bun</category></item><item><title>Criar jobs Cron com PM2: como alternativa ao launchd</title><link>https://hsb.horse/pt/blog/pm2-cron-job-setup/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/pm2-cron-job-setup/</guid><description>Como criar jobs periódicos com PM2 no macOS em vez de launchd. Um resumo do arquivo de configuração e de um exemplo de execução agendada com Bun.</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>pm2</category><category>cron</category><category>nodejs</category><category>bun</category></item><item><title>Meine erste Vite-Plugin-Implementierung: Build-Metadaten automatisch erzeugen</title><link>https://hsb.horse/de/blog/my-first-vite-plugin-implementation/</link><guid isPermaLink="true">https://hsb.horse/de/blog/my-first-vite-plugin-implementation/</guid><description>Wie man mit der Vite Plugin API eigene Logik in den Build-Lebenszyklus einhängt. Ein Beispiel mit einem Plugin, das zeitbasierte semantische Versionsmetadaten erzeugt.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>vite</category><category>typescript</category><category>build-tool</category></item><item><title>My First Vite Plugin Implementation: Automatically Generate Build Metadata</title><link>https://hsb.horse/en/blog/my-first-vite-plugin-implementation/</link><guid isPermaLink="true">https://hsb.horse/en/blog/my-first-vite-plugin-implementation/</guid><description>How to plug custom logic into the Vite build lifecycle with the Vite Plugin API. Learn through a plugin that generates time-based semantic version metadata.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>vite</category><category>typescript</category><category>build-tool</category></item><item><title>Ma première implémentation de plugin Vite : générer automatiquement des métadonnées de build</title><link>https://hsb.horse/fr/blog/my-first-vite-plugin-implementation/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/my-first-vite-plugin-implementation/</guid><description>Comment brancher un traitement personnalisé dans le cycle de build de Vite avec l’API de plugin. Un exemple à partir d’un plugin qui génère une version sémantique basée sur le temps.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>vite</category><category>typescript</category><category>build-tool</category></item><item><title>初めてのViteプラグイン実装: ビルドメタデータを自動生成する</title><link>https://hsb.horse/blog/my-first-vite-plugin-implementation/</link><guid isPermaLink="true">https://hsb.horse/blog/my-first-vite-plugin-implementation/</guid><description>Vite Plugin APIを使ってビルドライフサイクルに独自処理を組み込む方法。時刻ベースのセマンティックバージョンを生成するプラグイン実装を通じて学ぶ。</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>vite</category><category>typescript</category><category>build-tool</category></item><item><title>처음 만드는 Vite 플러그인 구현: 빌드 메타데이터 자동 생성</title><link>https://hsb.horse/ko/blog/my-first-vite-plugin-implementation/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/my-first-vite-plugin-implementation/</guid><description>Vite Plugin API를 사용해 Vite 빌드 라이프사이클에 커스텀 처리를 끼워 넣는 방법. 시간 기반 시맨틱 버전을 생성하는 플러그인 구현으로 정리했다.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>vite</category><category>typescript</category><category>build-tool</category></item><item><title>Minha primeira implementação de plugin Vite: gerar metadados de build automaticamente</title><link>https://hsb.horse/pt/blog/my-first-vite-plugin-implementation/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/my-first-vite-plugin-implementation/</guid><description>Como encaixar lógica personalizada no ciclo de build do Vite com a Plugin API. Um exemplo usando um plugin que gera versão semântica baseada em tempo.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>vite</category><category>typescript</category><category>build-tool</category></item><item><title>Ändern Sie das Vault-Kopierziel mit dem Starlight-Obsidian-Plugin in Root</title><link>https://hsb.horse/de/blog/starlight-obsidian-vault-root-directory/</link><guid isPermaLink="true">https://hsb.horse/de/blog/starlight-obsidian-vault-root-directory/</guid><description>So ändern Sie das Standardverhalten des Starlight-Obsidian-Plugins und kopieren Obsidian Vault direkt unter src/content/docs. Organisierte Implementierung zur Lösung von Unterschieden in der Hierarchiestruktur der Seitenleiste.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>astro</category><category>starlight</category><category>obsidian</category></item><item><title>Change Vault copy destination to root with starlight-obsidian plugin</title><link>https://hsb.horse/en/blog/starlight-obsidian-vault-root-directory/</link><guid isPermaLink="true">https://hsb.horse/en/blog/starlight-obsidian-vault-root-directory/</guid><description>How to change the default behavior of starlight-obsidian plugin and copy Obsidian Vault directly under src/content/docs. Organized implementation to resolve differences in sidebar hierarchy structure.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>astro</category><category>starlight</category><category>obsidian</category></item><item><title>Changez la destination de la copie Vault en racine avec le plugin starlight-obsidian</title><link>https://hsb.horse/fr/blog/starlight-obsidian-vault-root-directory/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/starlight-obsidian-vault-root-directory/</guid><description>Comment changer le comportement par défaut du plugin starlight-obsidian et copier Obsidian Vault directement sous src/content/docs. Implémentation organisée pour résoudre les différences dans la structure hiérarchique de la barre latérale.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>astro</category><category>starlight</category><category>obsidian</category></item><item><title>starlight-obsidianプラグインでVaultのコピー先をルートに変更する</title><link>https://hsb.horse/blog/starlight-obsidian-vault-root-directory/</link><guid isPermaLink="true">https://hsb.horse/blog/starlight-obsidian-vault-root-directory/</guid><description>starlight-obsidianプラグインのデフォルト動作を変更し、Obsidian Vaultをsrc/content/docs直下にコピーする方法。サイドバー階層構造の差異を解消する実装を整理。</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>astro</category><category>starlight</category><category>obsidian</category></item><item><title>starlight-obsidian 플러그인에서 Vault 대상을 루트로 변경</title><link>https://hsb.horse/ko/blog/starlight-obsidian-vault-root-directory/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/starlight-obsidian-vault-root-directory/</guid><description>starlight-obsidian 플러그인의 기본 동작을 변경하고 Obsidian Vault를 src/content/docs 바로 아래에 복사하는 방법. 사이드 바 계층 구조의 차이를 해소하는 구현을 정리.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>astro</category><category>starlight</category><category>obsidian</category></item><item><title>Altere o destino da cópia do Vault para root com o plugin starlight-obsidian</title><link>https://hsb.horse/pt/blog/starlight-obsidian-vault-root-directory/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/starlight-obsidian-vault-root-directory/</guid><description>Como alterar o comportamento padrão do plugin starlight-obsidian e copiar o Obsidian Vault diretamente em src/content/docs. Implementação organizada para resolver diferenças na estrutura hierárquica da barra lateral.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>astro</category><category>starlight</category><category>obsidian</category></item><item><title>TypeScript-Implementierung der Steganographie mithilfe von Variantenselektoren</title><link>https://hsb.horse/de/blog/variation-selectors-steganography-typescript/</link><guid isPermaLink="true">https://hsb.horse/de/blog/variation-selectors-steganography-typescript/</guid><description>Eine TypeScript-Implementierung einer Steganographie-Methode, die den Variantenselektor von Unicode nutzt, um versteckte, unsichtbare Zeichenfolgen in Text einzubetten.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>unicode</category><category>steganography</category></item><item><title>TypeScript implementation of steganography using variant selectors</title><link>https://hsb.horse/en/blog/variation-selectors-steganography-typescript/</link><guid isPermaLink="true">https://hsb.horse/en/blog/variation-selectors-steganography-typescript/</guid><description>A TypeScript implementation of a steganography method that leverages Unicode&apos;s variant selector to embed hidden, invisible strings into text.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>unicode</category><category>steganography</category></item><item><title>Implémentation TypeScript de la stéganographie à l&apos;aide de sélecteurs de variantes</title><link>https://hsb.horse/fr/blog/variation-selectors-steganography-typescript/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/variation-selectors-steganography-typescript/</guid><description>Une implémentation TypeScript d&apos;une méthode de stéganographie qui exploite le sélecteur de variantes d&apos;Unicode pour intégrer des chaînes cachées et invisibles dans le texte.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>unicode</category><category>steganography</category></item><item><title>異体字セレクターを使ったステガノグラフィのTypeScript実装</title><link>https://hsb.horse/blog/variation-selectors-steganography-typescript/</link><guid isPermaLink="true">https://hsb.horse/blog/variation-selectors-steganography-typescript/</guid><description>Unicodeの異体字セレクターを活用して、見た目には見えない秘密の文字列をテキストに埋め込むステガノグラフィ手法のTypeScript実装。</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>unicode</category><category>steganography</category></item><item><title>이체 문자 선택기를 사용한 Steganography의 TypeScript 구현</title><link>https://hsb.horse/ko/blog/variation-selectors-steganography-typescript/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/variation-selectors-steganography-typescript/</guid><description>Unicode의 이체자 셀렉터를 활용해, 외형에는 보이지 않는 비밀의 캐릭터 라인을 텍스트에 임베드하는 스테가노그래피 기법의 TypeScript 구현.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>unicode</category><category>steganography</category></item><item><title>Implementação TypeScript de esteganografia usando seletores de variantes</title><link>https://hsb.horse/pt/blog/variation-selectors-steganography-typescript/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/variation-selectors-steganography-typescript/</guid><description>Uma implementação TypeScript de um método de esteganografia que aproveita o seletor de variantes do Unicode para incorporar strings ocultas e invisíveis no texto.</description><pubDate>Mon, 19 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>unicode</category><category>steganography</category></item><item><title>TypeScript-Implementierung zum Extrahieren von Größeninformationen aus Twitter-Video-URLs</title><link>https://hsb.horse/de/blog/extract-video-size-from-twitter-url/</link><guid isPermaLink="true">https://hsb.horse/de/blog/extract-video-size-from-twitter-url/</guid><description>Eine TypeScript-Implementierung, die Auflösungsinformationen aus Twitter-(X)-Video-URLs per regulärem Ausdruck extrahiert. Eine kurze Zusammenfassung von URL-Muster und Größenextraktion.</description><pubDate>Sat, 17 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>regex</category><category>twitter</category></item><item><title>TypeScript Implementation to Extract Size Information from Twitter Video URLs</title><link>https://hsb.horse/en/blog/extract-video-size-from-twitter-url/</link><guid isPermaLink="true">https://hsb.horse/en/blog/extract-video-size-from-twitter-url/</guid><description>A TypeScript implementation that extracts resolution information from Twitter (X) video URLs with a regular expression. A quick summary of the URL pattern and how to read the size.</description><pubDate>Sat, 17 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>regex</category><category>twitter</category></item><item><title>Implémentation TypeScript pour extraire la taille depuis une URL vidéo Twitter</title><link>https://hsb.horse/fr/blog/extract-video-size-from-twitter-url/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/extract-video-size-from-twitter-url/</guid><description>Une implémentation TypeScript qui extrait la résolution contenue dans une URL vidéo Twitter (X) avec une expression régulière. Résumé du motif d’URL et de la méthode.</description><pubDate>Sat, 17 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>regex</category><category>twitter</category></item><item><title>Twitter動画URLからサイズ情報を抽出するTypeScript実装</title><link>https://hsb.horse/blog/extract-video-size-from-twitter-url/</link><guid isPermaLink="true">https://hsb.horse/blog/extract-video-size-from-twitter-url/</guid><description>Twitter(X)の動画URLに含まれる解像度情報を正規表現で抽出するTypeScript実装。URLパターンの解析とサイズ取得方法を整理。</description><pubDate>Sat, 17 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>regex</category><category>twitter</category></item><item><title>Twitter 동영상 URL에서 크기 정보를 추출하는 TypeScript 구현</title><link>https://hsb.horse/ko/blog/extract-video-size-from-twitter-url/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/extract-video-size-from-twitter-url/</guid><description>Twitter(X) 동영상 URL에 포함된 해상도 정보를 정규표현식으로 추출하는 TypeScript 구현. URL 패턴과 크기 추출 방법을 정리했다.</description><pubDate>Sat, 17 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>regex</category><category>twitter</category></item><item><title>Implementação em TypeScript para extrair tamanho de URLs de vídeo do Twitter</title><link>https://hsb.horse/pt/blog/extract-video-size-from-twitter-url/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/extract-video-size-from-twitter-url/</guid><description>Uma implementação em TypeScript que extrai a resolução presente em URLs de vídeo do Twitter (X) com expressão regular. Resumo do padrão da URL e da forma de obter o tamanho.</description><pubDate>Sat, 17 Aug 2024 00:00:00 GMT</pubDate><category>typescript</category><category>regex</category><category>twitter</category></item><item><title>Hinweise zu fehlgeschlagenen Versuchen, WOFF-Dateien von Google Fonts im Browser abzurufen</title><link>https://hsb.horse/de/blog/fetch-google-fonts-in-browser-failed/</link><guid isPermaLink="true">https://hsb.horse/de/blog/fetch-google-fonts-in-browser-failed/</guid><description>Eine Aufzeichnung von Versuchen und Irrtümern, ttf/otf/woff-Dateien von Google Fonts auf der Clientseite abzurufen und sie mit @vercel/satori zu verwenden. Einschränkungen des User-Agent-Headers und Probleme mit der Nichtkompatibilität von Woff2 wurden behoben.</description><pubDate>Sat, 27 Jan 2024 00:00:00 GMT</pubDate><category>google-fonts</category><category>satori</category><category>browser</category></item><item><title>Notes on failed attempts to retrieve WOFF files from Google Fonts in browser</title><link>https://hsb.horse/en/blog/fetch-google-fonts-in-browser-failed/</link><guid isPermaLink="true">https://hsb.horse/en/blog/fetch-google-fonts-in-browser-failed/</guid><description>A record of trial and error trying to obtain ttf/otf/woff files from Google Fonts on the client side and use them with @vercel/satori. Sorted out User-Agent header limitations and woff2 non-compatibility issues.</description><pubDate>Sat, 27 Jan 2024 00:00:00 GMT</pubDate><category>google-fonts</category><category>satori</category><category>browser</category></item><item><title>Notes sur les tentatives infructueuses de récupération de fichiers WOFF à partir de Google Fonts dans le navigateur</title><link>https://hsb.horse/fr/blog/fetch-google-fonts-in-browser-failed/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/fetch-google-fonts-in-browser-failed/</guid><description>Un enregistrement d&apos;essais et d&apos;erreurs essayant d&apos;obtenir des fichiers ttf/otf/woff de Google Fonts côté client et de les utiliser avec @vercel/satori. Correction des limitations de l&apos;en-tête User-Agent et des problèmes de non-compatibilité woff2.</description><pubDate>Sat, 27 Jan 2024 00:00:00 GMT</pubDate><category>google-fonts</category><category>satori</category><category>browser</category></item><item><title>ブラウザでGoogle FontsからWOFFファイルを取得しようとして失敗した備忘録</title><link>https://hsb.horse/blog/fetch-google-fonts-in-browser-failed/</link><guid isPermaLink="true">https://hsb.horse/blog/fetch-google-fonts-in-browser-failed/</guid><description>クライアントサイドでGoogle Fontsからttf/otf/woffファイルを取得して@vercel/satoriで使おうとした試行錯誤の記録。User-Agentヘッダー制限とwoff2非対応問題について整理。</description><pubDate>Sat, 27 Jan 2024 00:00:00 GMT</pubDate><category>google-fonts</category><category>satori</category><category>browser</category></item><item><title>브라우저에서 Google Fonts에서 WOFF 파일을 가져 오는 데 실패한 비망록</title><link>https://hsb.horse/ko/blog/fetch-google-fonts-in-browser-failed/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/fetch-google-fonts-in-browser-failed/</guid><description>클라이언트 측에서 Google Fonts에서 ttf/otf/woff 파일을 가져와 @vercel/satori에서 사용하려고 시도한 시행 착오 기록. User-Agent 헤더 제한 및 woff2 비대응 문제에 대한 정리.</description><pubDate>Sat, 27 Jan 2024 00:00:00 GMT</pubDate><category>google-fonts</category><category>satori</category><category>browser</category></item><item><title>Notas sobre tentativas fracassadas de recuperar arquivos WOFF do Google Fonts no navegador</title><link>https://hsb.horse/pt/blog/fetch-google-fonts-in-browser-failed/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/fetch-google-fonts-in-browser-failed/</guid><description>Um registro de tentativa e erro ao tentar obter arquivos ttf/otf/woff do Google Fonts no lado do cliente e usá-los com @vercel/satori. Resolvemos as limitações do cabeçalho do User-Agent e os problemas de incompatibilidade do woff2.</description><pubDate>Sat, 27 Jan 2024 00:00:00 GMT</pubDate><category>google-fonts</category><category>satori</category><category>browser</category></item><item><title>Konfiguration für Yarn v4 (PnP-Modus) in Bitbucket Pipelines</title><link>https://hsb.horse/de/blog/bitbucket-pipelines-yarn-v4-pnp/</link><guid isPermaLink="true">https://hsb.horse/de/blog/bitbucket-pipelines-yarn-v4-pnp/</guid><description>Wie man ein Projekt mit Yarn v4 im PnP-Modus in Bitbucket Pipelines baut. Eine kurze Zusammenfassung von Cache-Einstellungen und der Aktivierung von corepack.</description><pubDate>Sun, 21 Jan 2024 00:00:00 GMT</pubDate><category>bitbucket</category><category>yarn</category><category>ci-cd</category></item><item><title>Settings to Run Yarn v4 (PnP Mode) in Bitbucket Pipelines</title><link>https://hsb.horse/en/blog/bitbucket-pipelines-yarn-v4-pnp/</link><guid isPermaLink="true">https://hsb.horse/en/blog/bitbucket-pipelines-yarn-v4-pnp/</guid><description>How to build a project that uses Yarn v4 in PnP mode on Bitbucket Pipelines. A quick summary of cache settings and how to enable corepack.</description><pubDate>Sun, 21 Jan 2024 00:00:00 GMT</pubDate><category>bitbucket</category><category>yarn</category><category>ci-cd</category></item><item><title>Configuration pour exécuter Yarn v4 (mode PnP) dans Bitbucket Pipelines</title><link>https://hsb.horse/fr/blog/bitbucket-pipelines-yarn-v4-pnp/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/bitbucket-pipelines-yarn-v4-pnp/</guid><description>Comment construire un projet utilisant Yarn v4 en mode PnP dans Bitbucket Pipelines. Résumé de la configuration du cache et de l’activation de corepack.</description><pubDate>Sun, 21 Jan 2024 00:00:00 GMT</pubDate><category>bitbucket</category><category>yarn</category><category>ci-cd</category></item><item><title>Bitbucket PipelinesでYarn v4 (PnPモード)を動かす設定</title><link>https://hsb.horse/blog/bitbucket-pipelines-yarn-v4-pnp/</link><guid isPermaLink="true">https://hsb.horse/blog/bitbucket-pipelines-yarn-v4-pnp/</guid><description>Bitbucket PipelinesでYarn v4のPnPモードを使ったプロジェクトをビルドする設定方法。キャッシュ設定とcorepackの有効化手順を整理。</description><pubDate>Sun, 21 Jan 2024 00:00:00 GMT</pubDate><category>bitbucket</category><category>yarn</category><category>ci-cd</category></item><item><title>Bitbucket Pipelines에서 Yarn v4 (PnP 모드)를 돌리는 설정</title><link>https://hsb.horse/ko/blog/bitbucket-pipelines-yarn-v4-pnp/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/bitbucket-pipelines-yarn-v4-pnp/</guid><description>Bitbucket Pipelines에서 Yarn v4의 PnP 모드를 쓰는 프로젝트를 빌드하는 설정 방법. 캐시 설정과 corepack 활성화 절차를 정리했다.</description><pubDate>Sun, 21 Jan 2024 00:00:00 GMT</pubDate><category>bitbucket</category><category>yarn</category><category>ci-cd</category></item><item><title>Configuração para rodar Yarn v4 (modo PnP) no Bitbucket Pipelines</title><link>https://hsb.horse/pt/blog/bitbucket-pipelines-yarn-v4-pnp/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/bitbucket-pipelines-yarn-v4-pnp/</guid><description>Como fazer build de um projeto que usa Yarn v4 em modo PnP no Bitbucket Pipelines. Um resumo da configuração de cache e da ativação do corepack.</description><pubDate>Sun, 21 Jan 2024 00:00:00 GMT</pubDate><category>bitbucket</category><category>yarn</category><category>ci-cd</category></item><item><title>Warum die Pagefind-Suche auf Cloudflare Pages ausfiel: Rocket Loader war die Ursache</title><link>https://hsb.horse/de/blog/pagefind-cloudflare-pages-rocket-loader-issue/</link><guid isPermaLink="true">https://hsb.horse/de/blog/pagefind-cloudflare-pages-rocket-loader-issue/</guid><description>Ursache und Lösung für eine Astro + Pagefind-Suche, die lokal funktionierte, nach dem Deployment auf Cloudflare Pages aber ausfiel.</description><pubDate>Wed, 15 Nov 2023 00:00:00 GMT</pubDate><category>pagefind</category><category>cloudflare</category><category>astro</category><category>troubleshooting</category></item><item><title>Why Pagefind Search Broke on Cloudflare Pages: Rocket Loader Was the Cause</title><link>https://hsb.horse/en/blog/pagefind-cloudflare-pages-rocket-loader-issue/</link><guid isPermaLink="true">https://hsb.horse/en/blog/pagefind-cloudflare-pages-rocket-loader-issue/</guid><description>Root cause and fix for a search UI that worked locally with Astro + Pagefind but failed after deployment to Cloudflare Pages.</description><pubDate>Wed, 15 Nov 2023 00:00:00 GMT</pubDate><category>pagefind</category><category>cloudflare</category><category>astro</category><category>troubleshooting</category></item><item><title>Pourquoi la recherche Pagefind ne fonctionnait plus sur Cloudflare Pages : Rocket Loader était en cause</title><link>https://hsb.horse/fr/blog/pagefind-cloudflare-pages-rocket-loader-issue/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/pagefind-cloudflare-pages-rocket-loader-issue/</guid><description>Cause racine et solution pour une recherche Astro + Pagefind qui marchait en local mais tombait en panne après déploiement sur Cloudflare Pages.</description><pubDate>Wed, 15 Nov 2023 00:00:00 GMT</pubDate><category>pagefind</category><category>cloudflare</category><category>astro</category><category>troubleshooting</category></item><item><title>Pagefind検索がCloudflare Pagesで動かない問題: Rocket Loaderが原因だった</title><link>https://hsb.horse/blog/pagefind-cloudflare-pages-rocket-loader-issue/</link><guid isPermaLink="true">https://hsb.horse/blog/pagefind-cloudflare-pages-rocket-loader-issue/</guid><description>Astro+PagefindをCloudflare Pagesにデプロイした際に検索機能が動作しない問題の原因と解決策。Rocket Loader設定の影響について整理。</description><pubDate>Wed, 15 Nov 2023 00:00:00 GMT</pubDate><category>pagefind</category><category>cloudflare</category><category>astro</category><category>troubleshooting</category></item><item><title>Cloudflare Pages에서 Pagefind 검색이 동작하지 않았던 이유: 원인은 Rocket Loader였다</title><link>https://hsb.horse/ko/blog/pagefind-cloudflare-pages-rocket-loader-issue/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/pagefind-cloudflare-pages-rocket-loader-issue/</guid><description>Astro + Pagefind 조합이 로컬에서는 정상인데 Cloudflare Pages 배포 후 검색이 동작하지 않았던 문제의 원인과 해결 방법.</description><pubDate>Wed, 15 Nov 2023 00:00:00 GMT</pubDate><category>pagefind</category><category>cloudflare</category><category>astro</category><category>troubleshooting</category></item><item><title>Por que a busca com Pagefind quebrou no Cloudflare Pages: o culpado era o Rocket Loader</title><link>https://hsb.horse/pt/blog/pagefind-cloudflare-pages-rocket-loader-issue/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/pagefind-cloudflare-pages-rocket-loader-issue/</guid><description>Causa raiz e solução para uma busca com Astro + Pagefind que funcionava localmente, mas falhava depois do deploy no Cloudflare Pages.</description><pubDate>Wed, 15 Nov 2023 00:00:00 GMT</pubDate><category>pagefind</category><category>cloudflare</category><category>astro</category><category>troubleshooting</category></item><item><title>Was ich nach dem Kauf der Bildverwaltungs-App Eagle empfunden habe</title><link>https://hsb.horse/de/blog/eagle-app-review-and-purchase-reasons/</link><guid isPermaLink="true">https://hsb.horse/de/blog/eagle-app-review-and-purchase-reasons/</guid><description>Gründe für den Kauf von Eagle, einer einmaligen Bildverwaltungs-App, und Rezensionen. Einführung in die Mac/Win-Kompatibilität, Bibliotheksverwaltung und Benutzerfreundlichkeit von Browsererweiterungen.</description><pubDate>Sun, 26 Feb 2023 00:00:00 GMT</pubDate><category>eagle</category><category>productivity</category><category>tool-review</category></item><item><title>What I felt after purchasing the image management app Eagle</title><link>https://hsb.horse/en/blog/eagle-app-review-and-purchase-reasons/</link><guid isPermaLink="true">https://hsb.horse/en/blog/eagle-app-review-and-purchase-reasons/</guid><description>Reasons for purchasing Eagle, a one-time image management app, and reviews. Introducing Mac/Win compatibility, library management, and usability of browser extensions.</description><pubDate>Sun, 26 Feb 2023 00:00:00 GMT</pubDate><category>eagle</category><category>productivity</category><category>tool-review</category></item><item><title>Ce que j&apos;ai ressenti après avoir acheté l&apos;application de gestion d&apos;images Eagle</title><link>https://hsb.horse/fr/blog/eagle-app-review-and-purchase-reasons/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/eagle-app-review-and-purchase-reasons/</guid><description>Raisons de l’achat d’Eagle, une application unique de gestion d’images, et avis. Présentation de la compatibilité Mac/Win, de la gestion des bibliothèques et de la convivialité des extensions de navigateur.</description><pubDate>Sun, 26 Feb 2023 00:00:00 GMT</pubDate><category>eagle</category><category>productivity</category><category>tool-review</category></item><item><title>画像管理アプリEagleを購入して感じたこと</title><link>https://hsb.horse/blog/eagle-app-review-and-purchase-reasons/</link><guid isPermaLink="true">https://hsb.horse/blog/eagle-app-review-and-purchase-reasons/</guid><description>買い切り型の画像管理アプリEagleを購入した理由とレビュー。Mac/Win両対応、ライブラリ管理、ブラウザ拡張機能の使い勝手を紹介。</description><pubDate>Sun, 26 Feb 2023 00:00:00 GMT</pubDate><category>eagle</category><category>productivity</category><category>tool-review</category></item><item><title>이미지 관리 앱 Eagle을 구입하고 느낀 것</title><link>https://hsb.horse/ko/blog/eagle-app-review-and-purchase-reasons/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/eagle-app-review-and-purchase-reasons/</guid><description>구매한 이미지 관리 앱 Eagle을 구입한 이유와 리뷰. Mac/Win 양대응, 라이브러리 관리, 브라우저 확장 기능의 편리함을 소개.</description><pubDate>Sun, 26 Feb 2023 00:00:00 GMT</pubDate><category>eagle</category><category>productivity</category><category>tool-review</category></item><item><title>O que senti após adquirir o aplicativo de gerenciamento de imagens Eagle</title><link>https://hsb.horse/pt/blog/eagle-app-review-and-purchase-reasons/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/eagle-app-review-and-purchase-reasons/</guid><description>Razões para adquirir o Eagle, um aplicativo único de gerenciamento de imagens e avaliações. Apresentando compatibilidade Mac/Win, gerenciamento de biblioteca e usabilidade de extensões de navegador.</description><pubDate>Sun, 26 Feb 2023 00:00:00 GMT</pubDate><category>eagle</category><category>productivity</category><category>tool-review</category></item><item><title>Mit Svelte eine leistungsfähige Google-Apps-Script-Web-App bauen</title><link>https://hsb.horse/de/blog/svelte-spa-on-gas-webapp/</link><guid isPermaLink="true">https://hsb.horse/de/blog/svelte-spa-on-gas-webapp/</guid><description>Wie man die Veröffentlichungsfunktion von Google Apps Script mit Svelte kombiniert, um eine funktionsreiche SPA zu bauen, die eine Tabellenkalkulation als Datenbank nutzt.</description><pubDate>Mon, 26 Dec 2022 00:00:00 GMT</pubDate><category>google-apps-script</category><category>svelte</category><category>vite</category></item><item><title>Building a Full-Featured Google Apps Script Web App with Svelte</title><link>https://hsb.horse/en/blog/svelte-spa-on-gas-webapp/</link><guid isPermaLink="true">https://hsb.horse/en/blog/svelte-spa-on-gas-webapp/</guid><description>How to combine Google Apps Script web app publishing with Svelte to build a feature-rich SPA that uses a spreadsheet as its database.</description><pubDate>Mon, 26 Dec 2022 00:00:00 GMT</pubDate><category>google-apps-script</category><category>svelte</category><category>vite</category></item><item><title>Créer une web app Google Apps Script riche avec Svelte</title><link>https://hsb.horse/fr/blog/svelte-spa-on-gas-webapp/</link><guid isPermaLink="true">https://hsb.horse/fr/blog/svelte-spa-on-gas-webapp/</guid><description>Comment combiner la publication d’une web app Google Apps Script avec Svelte pour construire une SPA riche dont la base de données est une feuille de calcul.</description><pubDate>Mon, 26 Dec 2022 00:00:00 GMT</pubDate><category>google-apps-script</category><category>svelte</category><category>vite</category></item><item><title>SvelteでGoogle Apps Scriptの高機能Webアプリを作る</title><link>https://hsb.horse/blog/svelte-spa-on-gas-webapp/</link><guid isPermaLink="true">https://hsb.horse/blog/svelte-spa-on-gas-webapp/</guid><description>Google Apps ScriptのWebアプリ公開機能とSvelteを組み合わせて、スプレッドシートをデータベースとする高機能SPAを構築する方法。</description><pubDate>Mon, 26 Dec 2022 00:00:00 GMT</pubDate><category>google-apps-script</category><category>svelte</category><category>vite</category></item><item><title>Svelte로 Google Apps Script 기반 고기능 웹앱 만들기</title><link>https://hsb.horse/ko/blog/svelte-spa-on-gas-webapp/</link><guid isPermaLink="true">https://hsb.horse/ko/blog/svelte-spa-on-gas-webapp/</guid><description>Google Apps Script의 웹앱 공개 기능과 Svelte를 조합해, 스프레드시트를 데이터베이스처럼 사용하는 고기능 SPA를 만드는 방법.</description><pubDate>Mon, 26 Dec 2022 00:00:00 GMT</pubDate><category>google-apps-script</category><category>svelte</category><category>vite</category></item><item><title>Criando uma web app avançada no Google Apps Script com Svelte</title><link>https://hsb.horse/pt/blog/svelte-spa-on-gas-webapp/</link><guid isPermaLink="true">https://hsb.horse/pt/blog/svelte-spa-on-gas-webapp/</guid><description>Como combinar a publicação de web apps do Google Apps Script com Svelte para construir uma SPA rica usando uma planilha como banco de dados.</description><pubDate>Mon, 26 Dec 2022 00:00:00 GMT</pubDate><category>google-apps-script</category><category>svelte</category><category>vite</category></item></channel></rss>