<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>sings.dev</title><description>Notes on backend architecture, MPC systems, and infrastructure routing.</description><link>https://sings.dev/</link><language>en</language><item><title>Purpose-Driven Systems (feat. superpowers)</title><link>https://sings.dev/en/posts/purpose-driven-systems/</link><guid isPermaLink="true">https://sings.dev/en/posts/purpose-driven-systems/</guid><description>A simple cycle for systems that last, and how superpowers turns that cycle into a tool.</description><pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate></item><item><title>Why macOS Terminals Mangle Korean: NFC vs NFD (1/2): NFC vs NFD</title><link>https://sings.dev/en/posts/macos-terminal-hangul-1/</link><guid isPermaLink="true">https://sings.dev/en/posts/macos-terminal-hangul-1/</guid><description>Why Korean text and sorting look broken on some macOS terminals — the root cause is NFC vs NFD.</description><pubDate>Tue, 09 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Generating Safe Random Numbers (2/2): TRNG and CSPRNG</title><link>https://sings.dev/en/posts/safe-random-types/</link><guid isPermaLink="true">https://sings.dev/en/posts/safe-random-types/</guid><description>How TRNGs and CSPRNGs produce safe random numbers, and how to use them across operating systems and programming languages.</description><pubDate>Tue, 02 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Generating Safe Random Numbers (1/2): Why it matters</title><link>https://sings.dev/en/posts/safe-random-history/</link><guid isPermaLink="true">https://sings.dev/en/posts/safe-random-history/</guid><description>From coin tosses and dice to a computer&apos;s pseudo-random output — why we need random numbers and why naive randomness isn&apos;t enough.</description><pubDate>Mon, 01 May 2023 00:00:00 GMT</pubDate></item><item><title>Ethereum vs EOS: Who Wins?</title><link>https://sings.dev/en/posts/ethereum-vs-eos-winner/</link><guid isPermaLink="true">https://sings.dev/en/posts/ethereum-vs-eos-winner/</guid><description>A side-by-side look at Ethereum (gen 2) and EOS (gen 3) across usability, fees, and dApp adoption — and a guess at which platform might lead next.</description><pubDate>Thu, 06 Dec 2018 00:00:00 GMT</pubDate></item><item><title>Building EOS Web Apps with Scatter (2/2): Transactions and sign-out</title><link>https://sings.dev/en/posts/scatter-transactions/</link><guid isPermaLink="true">https://sings.dev/en/posts/scatter-transactions/</guid><description>Use a Scatter-bound EOS account to send coins, transfer custom tokens, vote for block producers, and sign out — without ever embedding a private key in your code.</description><pubDate>Wed, 14 Nov 2018 00:00:00 GMT</pubDate></item><item><title>Building EOS Web Apps with Scatter (1/2): Account binding</title><link>https://sings.dev/en/posts/scatter-account-binding/</link><guid isPermaLink="true">https://sings.dev/en/posts/scatter-account-binding/</guid><description>Use Scatter, a Chrome-extension key manager, to bind an EOS account to a web service without ever exposing the private key in the browser.</description><pubDate>Fri, 19 Oct 2018 00:00:00 GMT</pubDate></item><item><title>Sending EOS and Tokens with eosjs (2/2): Token transfer</title><link>https://sings.dev/en/posts/eosjs-token-transfer/</link><guid isPermaLink="true">https://sings.dev/en/posts/eosjs-token-transfer/</guid><description>Use the eosjs transaction method to send tokens that live in custom contracts on EOS.</description><pubDate>Thu, 04 Oct 2018 00:00:00 GMT</pubDate></item><item><title>Sending EOS and Tokens with eosjs (1/2): EOS coin transfer</title><link>https://sings.dev/en/posts/eosjs-coin-transfer/</link><guid isPermaLink="true">https://sings.dev/en/posts/eosjs-coin-transfer/</guid><description>Install and configure eosjs, then use the transfer method to send EOS coins.</description><pubDate>Thu, 27 Sep 2018 00:00:00 GMT</pubDate></item><item><title>Building and running an EOS Dawn v4.0 node (2/2): Architecture and configuration</title><link>https://sings.dev/en/posts/eos-dawn-architecture/</link><guid isPermaLink="true">https://sings.dev/en/posts/eos-dawn-architecture/</guid><description>How EOS&apos;s nodeos, cleos, and keosd fit together — plus the configuration and start/stop scripts that make running a node painless.</description><pubDate>Sun, 20 May 2018 00:00:00 GMT</pubDate></item><item><title>Building and running an EOS Dawn v4.0 node (1/2): Install and first run</title><link>https://sings.dev/en/posts/eos-dawn-installation/</link><guid isPermaLink="true">https://sings.dev/en/posts/eos-dawn-installation/</guid><description>Building EOS, then running nodeos and cleos.</description><pubDate>Thu, 17 May 2018 00:00:00 GMT</pubDate></item><item><title>Inside the Ethereum KeyStore File (2/2): Decryption and follow-ups</title><link>https://sings.dev/en/posts/ethereum-keystore-decryption/</link><guid isPermaLink="true">https://sings.dev/en/posts/ethereum-keystore-decryption/</guid><description>How a private key is recovered from an Ethereum KeyStore file — password verification, mac comparison, AES decryption — plus follow-up questions on the design.</description><pubDate>Tue, 08 May 2018 00:00:00 GMT</pubDate></item><item><title>Inside the Ethereum KeyStore File (1/2): Generation and encryption</title><link>https://sings.dev/en/posts/ethereum-keystore-encryption/</link><guid isPermaLink="true">https://sings.dev/en/posts/ethereum-keystore-encryption/</guid><description>How an Ethereum KeyStore file holds and encrypts a private key, walked through step by step — ECDSA, Scrypt, AES, and SHA3-256.</description><pubDate>Sun, 25 Mar 2018 00:00:00 GMT</pubDate></item></channel></rss>