<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>nhancv. — Garden</title><description>Notes, experiments, and useful details from a little corner of the internet.</description><link>https://nhancv.com/</link><item><title>Testing ERC-4337 in a local environment</title><link>https://nhancv.com/garden/erc-4337-local-environment/</link><guid isPermaLink="true">https://nhancv.com/garden/erc-4337-local-environment/</guid><description>A small account-abstraction experiment: a local chain, a bundler, a mock paymaster, and a Safe smart account.</description><pubDate>Sat, 31 May 2025 04:18:38 GMT</pubDate></item><item><title>Understanding contract addresses: CREATE and CREATE2</title><link>https://nhancv.com/garden/create-and-create2/</link><guid isPermaLink="true">https://nhancv.com/garden/create-and-create2/</guid><description>Creation bytecode, constructor arguments, and the difference between a sender nonce and a deterministic deployment salt.</description><pubDate>Sat, 31 May 2025 02:57:53 GMT</pubDate></item><item><title>A Dogecoin testnet wallet and transaction notebook</title><link>https://nhancv.com/garden/send-dogecoin-testnet-transaction/</link><guid isPermaLink="true">https://nhancv.com/garden/send-dogecoin-testnet-transaction/</guid><description>An older TypeScript PSBT experiment with derivation, P2PKH inputs, fee estimates, and broadcast handling.</description><pubDate>Tue, 20 May 2025 03:52:57 GMT</pubDate></item><item><title>An Evmos-based local chain notebook</title><link>https://nhancv.com/garden/setup-cometbft-pos-ethereum-private-chain-with-evmos-on-docker/</link><guid isPermaLink="true">https://nhancv.com/garden/setup-cometbft-pos-ethereum-private-chain-with-evmos-on-docker/</guid><description>A historical Evmos CLI 20.0.0 experiment with single-node, multi-node, explorer, and monitoring roles.</description><pubDate>Tue, 29 Oct 2024 11:22:35 GMT</pubDate></item><item><title>A private Besu network is more than a block counter</title><link>https://nhancv.com/garden/setup-ibft-2-0-poa-ethereum-private-chain-with-besu-on-aws-cloud-via-terraform/</link><guid isPermaLink="true">https://nhancv.com/garden/setup-ibft-2-0-poa-ethereum-private-chain-with-besu-on-aws-cloud-via-terraform/</guid><description>An older IBFT 2.0 infrastructure notebook, with genesis identity, validator health, and storage estimates separated.</description><pubDate>Sun, 27 Oct 2024 08:55:38 GMT</pubDate></item><item><title>Dynamic imports at a CommonJS and ESM boundary</title><link>https://nhancv.com/garden/libp2p-error-error-err-package-path-not-exported-no-exports-main-defined-in/</link><guid isPermaLink="true">https://nhancv.com/garden/libp2p-error-error-err-package-path-not-exported-no-exports-main-defined-in/</guid><description>An older libp2p loading workaround, with export maps, runtime evaluation, and stream lifetime kept distinct.</description><pubDate>Sun, 27 Oct 2024 05:49:43 GMT</pubDate></item><item><title>ERC165 capability detection is not caller authorization</title><link>https://nhancv.com/garden/ensuring-contract-callers-implement-a-custom-interface-in-solidity-using-erc165-without-openzeppelin/</link><guid isPermaLink="true">https://nhancv.com/garden/ensuring-contract-callers-implement-a-custom-interface-in-solidity-using-erc165-without-openzeppelin/</guid><description>Why a contract claiming an interface cannot prove that it is the caller your target intended to trust.</description><pubDate>Sun, 27 Oct 2024 05:07:20 GMT</pubDate></item><item><title>PoA and PoS describe validator authority, not every consensus property</title><link>https://nhancv.com/garden/proof-of-authority-poa-and-proof-of-stake-pos/</link><guid isPermaLink="true">https://nhancv.com/garden/proof-of-authority-poa-and-proof-of-stake-pos/</guid><description>Compare membership, economic weight, governance, and finality without inferring them from a label alone.</description><pubDate>Sun, 27 Oct 2024 03:11:40 GMT</pubDate></item><item><title>IBFT and IBFT 2.0: compare safety and liveness precisely</title><link>https://nhancv.com/garden/ibft-ibft2-0-poa/</link><guid isPermaLink="true">https://nhancv.com/garden/ibft-ibft2-0-poa/</guid><description>Correcting an earlier comparison that incorrectly described original IBFT as having no rounds or leader changes.</description><pubDate>Sun, 27 Oct 2024 03:01:46 GMT</pubDate></item><item><title>Building Bitcoin transactions with PSBTs and custom UTXOs</title><link>https://nhancv.com/garden/bitcoin-psbt-custom-utxos/</link><guid isPermaLink="true">https://nhancv.com/garden/bitcoin-psbt-custom-utxos/</guid><description>A historical BitcoinJS experiment covering four address families, fee estimation, and explicit input selection.</description><pubDate>Thu, 04 Jan 2024 06:41:25 GMT</pubDate></item><item><title>Build a Bitcoin PSBT from discovered UTXOs</title><link>https://nhancv.com/garden/send-a-btc-bitcoin-transaction-with-bitcoinjs-psbt/</link><guid isPermaLink="true">https://nhancv.com/garden/send-a-btc-bitcoin-transaction-with-bitcoinjs-psbt/</guid><description>An older four-address-type sender, with input data, fee estimation, address validation, and broadcast limits explicit.</description><pubDate>Thu, 04 Jan 2024 06:39:16 GMT</pubDate></item><item><title>A historical BlockCypher transaction-signing client</title><link>https://nhancv.com/garden/send-a-btc-bitcoin-transaction-from-both-a-legacy-p2pkh-address-and-a-native-segwit-p2wpkh-address-using-blockcypher/</link><guid isPermaLink="true">https://nhancv.com/garden/send-a-btc-bitcoin-transaction-from-both-a-legacy-p2pkh-address-and-a-native-segwit-p2wpkh-address-using-blockcypher/</guid><description>Transaction proposal, local signing, and broadcast are separate trust boundaries in this older Bitcoin example.</description><pubDate>Wed, 03 Jan 2024 07:39:38 GMT</pubDate></item><item><title>Derive four Bitcoin address forms from one key</title><link>https://nhancv.com/garden/bitcoin-extract-wallet-address-from-a-wif-private-key/</link><guid isPermaLink="true">https://nhancv.com/garden/bitcoin-extract-wallet-address-from-a-wif-private-key/</guid><description>A bitcoinjs-lib 6.1.5-era example for P2PKH, nested SegWit, native SegWit, and Taproot.</description><pubDate>Wed, 03 Jan 2024 07:34:57 GMT</pubDate></item><item><title>An archived early-access campaign and its withdrawal condition</title><link>https://nhancv.com/garden/blast-l2-airdrop-early-access/</link><guid isPermaLink="true">https://nhancv.com/garden/blast-l2-airdrop-early-access/</guid><description>Keeping the context of an old Blast promotion without carrying forward referral codes or deposit instructions.</description><pubDate>Sat, 25 Nov 2023 03:27:13 GMT</pubDate></item><item><title>When a dependency&apos;s syntax outruns the Webpack parser</title><link>https://nhancv.com/garden/webpack-build-babel-loader-error-parsing-some-typescript-es-lib-module-parse-failed-unexpected-token/</link><guid isPermaLink="true">https://nhancv.com/garden/webpack-build-babel-loader-error-parsing-some-typescript-es-lib-module-parse-failed-unexpected-token/</guid><description>An older WalletConnect build failure around optional chaining and a narrowly scoped esbuild-loader rule.</description><pubDate>Fri, 21 Jul 2023 07:01:45 GMT</pubDate></item><item><title>Point a short hostname at a canonical destination</title><link>https://nhancv.com/garden/nginx-redirect-domain-config/</link><guid isPermaLink="true">https://nhancv.com/garden/nginx-redirect-domain-config/</guid><description>An older Nginx redirect fragment, with DNS, redirect response, and HTTPS validation separated.</description><pubDate>Fri, 21 Jul 2023 06:52:52 GMT</pubDate></item><item><title>A historical note on Base and L2 comparisons</title><link>https://nhancv.com/garden/coinbase-base-network-vs-arbitrum/</link><guid isPermaLink="true">https://nhancv.com/garden/coinbase-base-network-vs-arbitrum/</guid><description>Keep architecture, transaction cost, inclusion latency, and finality as separate comparison questions.</description><pubDate>Fri, 21 Jul 2023 05:14:00 GMT</pubDate></item><item><title>An Arbitrum Goerli exchange deployment record</title><link>https://nhancv.com/garden/pancakeswap-uniswapv2-arbitrum-goerli-nitro-rollup-testnet/</link><guid isPermaLink="true">https://nhancv.com/garden/pancakeswap-uniswapv2-arbitrum-goerli-nitro-rollup-testnet/</guid><description>A historical Uniswap V2-style experiment, with chain identity and deployment constants kept together.</description><pubDate>Fri, 24 Feb 2023 06:31:17 GMT</pubDate></item><item><title>Pass RPC authentication through an older Web3 provider</title><link>https://nhancv.com/garden/custom-truffle-web3-provider-to-support-infura-authentication/</link><guid isPermaLink="true">https://nhancv.com/garden/custom-truffle-web3-provider-to-support-infura-authentication/</guid><description>Historical Web3 1.7.4 HTTP/WebSocket and Truffle fragments, with credential and provider-shape defects explicit.</description><pubDate>Wed, 19 Oct 2022 06:39:17 GMT</pubDate></item><item><title>Separate public RPC access from server credentials</title><link>https://nhancv.com/garden/secure-infura-project-key/</link><guid isPermaLink="true">https://nhancv.com/garden/secure-infura-project-key/</guid><description>A historical Infura authentication note covering Basic auth, JWT claims, and where signing material belongs.</description><pubDate>Wed, 19 Oct 2022 06:29:12 GMT</pubDate></item><item><title>Read and append Google Sheets values from Node</title><link>https://nhancv.com/garden/google-sheets-api/</link><guid isPermaLink="true">https://nhancv.com/garden/google-sheets-api/</guid><description>An older service-account example with document sharing, range semantics, and error propagation made explicit.</description><pubDate>Tue, 18 Oct 2022 05:37:12 GMT</pubDate></item><item><title>Study cloud architecture through practice and review</title><link>https://nhancv.com/garden/how-fast-to-take-aws-certificates/</link><guid isPermaLink="true">https://nhancv.com/garden/how-fast-to-take-aws-certificates/</guid><description>A learning sequence from an older certification note, without credential profiles or speed-to-pass claims.</description><pubDate>Tue, 19 Apr 2022 15:11:02 GMT</pubDate></item><item><title>A Solidity convention notebook, with rules kept in context</title><link>https://nhancv.com/garden/solidity-smart-contract-convention-x/</link><guid isPermaLink="true">https://nhancv.com/garden/solidity-smart-contract-convention-x/</guid><description>An older repository layout and formatting workflow, separated from compiler behavior and security guarantees.</description><pubDate>Mon, 14 Mar 2022 15:17:17 GMT</pubDate></item><item><title>A three-tier web architecture on AWS</title><link>https://nhancv.com/garden/three-tier-aws-architecture/</link><guid isPermaLink="true">https://nhancv.com/garden/three-tier-aws-architecture/</guid><description>An older Terraform experiment in separating frontend, backend, and data access across two Availability Zones.</description><pubDate>Sat, 08 Jan 2022 08:20:13 GMT</pubDate></item><item><title>Redirect a root domain through S3 and CloudFront</title><link>https://nhancv.com/garden/how-to-config-redirect-root-naked-route53-domain-http-to-www-https-using-s3-and-cloudfront-with-route53/</link><guid isPermaLink="true">https://nhancv.com/garden/how-to-config-redirect-root-naked-route53-domain-http-to-www-https-using-s3-and-cloudfront-with-route53/</guid><description>Separate the redirect origin, viewer certificate, and DNS alias in an older AWS setup.</description><pubDate>Mon, 13 Dec 2021 07:41:50 GMT</pubDate></item><item><title>An early Solana toolchain experiment on Apple Silicon</title><link>https://nhancv.com/garden/solana-network-programming/</link><guid isPermaLink="true">https://nhancv.com/garden/solana-network-programming/</guid><description>A Solana 1.9 and Anchor 0.19 notebook about architecture mismatches and a local validator failure.</description><pubDate>Sat, 11 Dec 2021 15:00:16 GMT</pubDate></item><item><title>Batch contract reads with a multicall watcher</title><link>https://nhancv.com/garden/multicall-smartcontract-js-client/</link><guid isPermaLink="true">https://nhancv.com/garden/multicall-smartcontract-js-client/</guid><description>Two older JavaScript watcher examples, with block consistency, polling lifetime, and numeric precision in view.</description><pubDate>Fri, 10 Dec 2021 06:57:02 GMT</pubDate></item><item><title>An EIP712 multisignature request experiment</title><link>https://nhancv.com/garden/verify-smart-contract-request-with-multi-signature-approach/</link><guid isPermaLink="true">https://nhancv.com/garden/verify-smart-contract-request-with-multi-signature-approach/</guid><description>Typed request fields and domain separation, with the historical quorum and replay defects left explicit.</description><pubDate>Fri, 15 Oct 2021 09:20:40 GMT</pubDate></item><item><title>What an ERC165 interface ID actually identifies</title><link>https://nhancv.com/garden/solidity-get-interface-id-and-erc165/</link><guid isPermaLink="true">https://nhancv.com/garden/solidity-get-interface-id-and-erc165/</guid><description>Function selectors, interface discovery, and why a support response is a capability claim rather than proof.</description><pubDate>Wed, 15 Sep 2021 09:16:41 GMT</pubDate></item><item><title>Separate token storage from transfer policy</title><link>https://nhancv.com/garden/about-smart-contract/</link><guid isPermaLink="true">https://nhancv.com/garden/about-smart-contract/</guid><description>An older presenter-contract experiment and the authority, state, and migration boundaries it introduces.</description><pubDate>Sun, 22 Aug 2021 05:33:58 GMT</pubDate></item><item><title>Dividend accounting and the gas budget for distribution</title><link>https://nhancv.com/garden/about-dividend-token/</link><guid isPermaLink="true">https://nhancv.com/garden/about-dividend-token/</guid><description>An older reflection-token note, separated into accrual, conversion, and bounded distribution work.</description><pubDate>Sun, 22 Aug 2021 04:09:27 GMT</pubDate></item><item><title>A historical PancakeSwap testnet deployment notebook</title><link>https://nhancv.com/garden/host-your-own-pancakeswap-testnet/</link><guid isPermaLink="true">https://nhancv.com/garden/host-your-own-pancakeswap-testnet/</guid><description>Keep the factory, router, pair bytecode hash, SDK, and frontend on the same deployment record.</description><pubDate>Sat, 17 Jul 2021 14:00:35 GMT</pubDate></item><item><title>Zabbix server, frontend, and agent are separate checks</title><link>https://nhancv.com/garden/install-zabbix-server-monitor/</link><guid isPermaLink="true">https://nhancv.com/garden/install-zabbix-server-monitor/</guid><description>A historical Zabbix 5.4 and Ubuntu 20.04 setup, organized around the roles of each component.</description><pubDate>Tue, 06 Jul 2021 08:09:12 GMT</pubDate></item><item><title>Paginate contract reads before the collection grows</title><link>https://nhancv.com/garden/smart-contract-pagination-for-list/</link><guid isPermaLink="true">https://nhancv.com/garden/smart-contract-pagination-for-list/</guid><description>A Solidity 0.8.3 experiment showing why a view call can still exceed execution or response limits.</description><pubDate>Mon, 28 Jun 2021 07:50:45 GMT</pubDate></item><item><title>MongoDB replica sets: members, authentication, and discovery</title><link>https://nhancv.com/garden/mongodb-replica-setup/</link><guid isPermaLink="true">https://nhancv.com/garden/mongodb-replica-setup/</guid><description>Reworking a MongoDB 4.4 notebook around topology, reachable member names, and connection discovery.</description><pubDate>Mon, 28 Jun 2021 06:40:32 GMT</pubDate></item><item><title>PM2 cluster mode and the state between workers</title><link>https://nhancv.com/garden/node-app-with-pm2-cluster/</link><guid isPermaLink="true">https://nhancv.com/garden/node-app-with-pm2-cluster/</guid><description>An older ecosystem configuration for two Node workers, with readiness, shutdown, and shared-state assumptions.</description><pubDate>Mon, 28 Jun 2021 06:18:15 GMT</pubDate></item><item><title>A small Nginx upstream load balancer</title><link>https://nhancv.com/garden/nginx-http-load-balancer/</link><guid isPermaLink="true">https://nhancv.com/garden/nginx-http-load-balancer/</guid><description>Two local backends, weighted routing, and the boundaries around proxy headers and health checks.</description><pubDate>Mon, 28 Jun 2021 06:10:03 GMT</pubDate></item><item><title>Build a JMeter plan, then run it without the GUI</title><link>https://nhancv.com/garden/web-stress-test-with-jmeter/</link><guid isPermaLink="true">https://nhancv.com/garden/web-stress-test-with-jmeter/</guid><description>A historical JMeter 5.4.1 plan with thread settings, response assertions, and separate result artifacts.</description><pubDate>Mon, 28 Jun 2021 05:43:00 GMT</pubDate></item><item><title>Uplifting: an earlier timed-routine app note</title><link>https://nhancv.com/garden/flutter-uplifting-daily-routines-rituals-self-control/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-uplifting-daily-routines-rituals-self-control/</guid><description>A historical product interaction centered on task lists, reminders, and per-step timers.</description><pubDate>Mon, 28 Jun 2021 05:06:46 GMT</pubDate></item><item><title>A historical time-windowed token crowdsale</title><link>https://nhancv.com/garden/smartcontract-ico-crowdsale-simple/</link><guid isPermaLink="true">https://nhancv.com/garden/smartcontract-ico-crowdsale-simple/</guid><description>An old Solidity experiment that changes a token conversion rate across a fixed sale window.</description><pubDate>Wed, 05 May 2021 02:59:56 GMT</pubDate></item><item><title>An older contract-voting application&apos;s signing boundaries</title><link>https://nhancv.com/garden/voting-application-using-smart-contract/</link><guid isPermaLink="true">https://nhancv.com/garden/voting-application-using-smart-contract/</guid><description>A Solidity 0.4.21 demo and three ways to connect a UI, signer, and event listener.</description><pubDate>Wed, 05 May 2021 02:59:06 GMT</pubDate></item><item><title>A historical Solidity 0.4.21 ERC20 token experiment</title><link>https://nhancv.com/garden/issue-your-erc20-token-with-solidity-on-ethereum-blockchain/</link><guid isPermaLink="true">https://nhancv.com/garden/issue-your-erc20-token-with-solidity-on-ethereum-blockchain/</guid><description>Contract compilation, wallet deployment, source verification, and explorer indexing from an older testnet walkthrough.</description><pubDate>Wed, 05 May 2021 02:50:28 GMT</pubDate></item><item><title>Reading an older MongoDB dump-and-restore upgrade notebook</title><link>https://nhancv.com/garden/upgrade-mongodb-from-3-6-3-to-4-4-4/</link><guid isPermaLink="true">https://nhancv.com/garden/upgrade-mongodb-from-3-6-3-to-4-4-4/</guid><description>Backup, installation, restore, and application verification are separate recovery steps.</description><pubDate>Wed, 07 Apr 2021 04:16:43 GMT</pubDate></item><item><title>Defining fairness in a staking-reward proposal</title><link>https://nhancv.com/garden/stacking-strategy-with-a-fair-reward-distribution/</link><guid isPermaLink="true">https://nhancv.com/garden/stacking-strategy-with-a-fair-reward-distribution/</guid><description>Three design objectives from an earlier fixed-pool staking idea, without treating them as proven guarantees.</description><pubDate>Sun, 04 Apr 2021 13:38:33 GMT</pubDate></item><item><title>A pending transaction is not the same as a canceled transaction</title><link>https://nhancv.com/garden/cryptocurrencies-deal-with-a-pending-transaction/</link><guid isPermaLink="true">https://nhancv.com/garden/cryptocurrencies-deal-with-a-pending-transaction/</guid><description>Correcting an older Bitcoin/Ethereum troubleshooting note around node visibility, nonce replacement, and confirmation.</description><pubDate>Tue, 02 Mar 2021 01:35:33 GMT</pubDate></item><item><title>A small observer pattern in Flutter</title><link>https://nhancv.com/garden/flutter-observer-pattern/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-observer-pattern/</guid><description>A shared subject and provider-scoped access, with subscription lifetime visible in the widget.</description><pubDate>Wed, 24 Feb 2021 16:50:31 GMT</pubDate></item><item><title>An older Flutter RTMP publishing and HLS playback experiment</title><link>https://nhancv.com/garden/flutter-mux-live-stream-rtmp-hls-m3u8/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-mux-live-stream-rtmp-hls-m3u8/</guid><description>Separate stream publication, playlist delivery, player initialization, and controls.</description><pubDate>Tue, 23 Feb 2021 07:04:03 GMT</pubDate></item><item><title>A historical password-CSV import route into Keychain</title><link>https://nhancv.com/garden/import-lastpass-csv-format-to-keychain/</link><guid isPermaLink="true">https://nhancv.com/garden/import-lastpass-csv-format-to-keychain/</guid><description>An earlier browser-mediated import sequence, with the plaintext export boundary kept explicit.</description><pubDate>Tue, 23 Feb 2021 04:39:46 GMT</pubDate></item><item><title>An older Flutter fullscreen lifecycle snippet</title><link>https://nhancv.com/garden/flutter-fullscreen-mode/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-fullscreen-mode/</guid><description>Hiding system overlays on entry and restoring a state on disposal in an earlier API.</description><pubDate>Mon, 22 Feb 2021 08:05:13 GMT</pubDate></item><item><title>A recorded iOS and Android lifecycle sequence</title><link>https://nhancv.com/garden/flutter-app-lifecycle-note/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-app-lifecycle-note/</guid><description>An earlier observation of inactive, paused, and resumed transitions.</description><pubDate>Mon, 22 Feb 2021 08:04:34 GMT</pubDate></item><item><title>An earlier Flutter CI workflow on Bitrise</title><link>https://nhancv.com/garden/flutter-ci-with-bitrise/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-ci-with-bitrise/</guid><description>Separate build steps, signing, distribution, and notifications in a historical Android/iOS pipeline.</description><pubDate>Sat, 06 Feb 2021 15:35:11 GMT</pubDate></item><item><title>Painting a rounded Flutter panel with an arrow</title><link>https://nhancv.com/garden/flutter-custom-painter-rounded-rect-and-arrow/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-custom-painter-rounded-rect-and-arrow/</guid><description>A small CustomPainter experiment that joins a rounded rectangle and a triangular pointer.</description><pubDate>Thu, 28 Jan 2021 09:27:27 GMT</pubDate></item><item><title>Highlighting search matches in a Flutter list</title><link>https://nhancv.com/garden/flutter-search-highlight-text-widget/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-search-highlight-text-widget/</guid><description>An older RichText example that separates filtering records from marking matching spans.</description><pubDate>Wed, 27 Jan 2021 05:51:53 GMT</pubDate></item><item><title>A January 2021 Apple Silicon compatibility note</title><link>https://nhancv.com/garden/macbook-m1-ntfs-photoshop/</link><guid isPermaLink="true">https://nhancv.com/garden/macbook-m1-ntfs-photoshop/</guid><description>A small historical record that should not be mistaken for a current software or pricing recommendation.</description><pubDate>Tue, 26 Jan 2021 07:41:51 GMT</pubDate></item><item><title>Early Flutter troubleshooting on Apple Silicon</title><link>https://nhancv.com/garden/macbook-m1-flutter-error/</link><guid isPermaLink="true">https://nhancv.com/garden/macbook-m1-flutter-error/</guid><description>Several historical M1 failures involving filtering software, IDE discovery, native Ruby extensions, and debugger logs.</description><pubDate>Tue, 26 Jan 2021 07:29:34 GMT</pubDate></item><item><title>A Homebrew architecture mismatch on early Apple Silicon</title><link>https://nhancv.com/garden/macbook-pro-m1-homebrew-install-error/</link><guid isPermaLink="true">https://nhancv.com/garden/macbook-pro-m1-homebrew-install-error/</guid><description>The difference between a Rosetta process and an ARM Homebrew prefix in an older M1 setup.</description><pubDate>Tue, 26 Jan 2021 07:20:37 GMT</pubDate></item><item><title>Hiding a Flutter widget while the keyboard is visible</title><link>https://nhancv.com/garden/flutter-hide-widget-when-keyboard-opened/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-hide-widget-when-keyboard-opened/</guid><description>An older wrapper that separates invisible-but-laid-out content from a removed subtree.</description><pubDate>Fri, 15 Jan 2021 11:24:39 GMT</pubDate></item><item><title>An older npusher event and presence integration</title><link>https://nhancv.com/garden/flutter-pusher-with-npusher/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-pusher-with-npusher/</guid><description>A historical Flutter example for Echo-style events, authorization headers, and periodic presence updates.</description><pubDate>Fri, 15 Jan 2021 03:29:02 GMT</pubDate></item><item><title>A draggable circular-crop experiment in Flutter</title><link>https://nhancv.com/garden/flutter-circle-image-cropping-draggable/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-circle-image-cropping-draggable/</guid><description>An older overlay and capture implementation with distinct display, geometry, and output-file boundaries.</description><pubDate>Thu, 14 Jan 2021 17:26:50 GMT</pubDate></item><item><title>Inserting text at a Flutter cursor position</title><link>https://nhancv.com/garden/flutter-insert-text-to-textfield/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-insert-text-to-textfield/</guid><description>A small historical TextEditingController update and the selection cases it does not cover.</description><pubDate>Fri, 08 Jan 2021 15:36:48 GMT</pubDate></item><item><title>An older sqflite repository and migration design</title><link>https://nhancv.com/garden/flutter-sqflite-persist-data-with-sqlite/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-sqflite-persist-data-with-sqlite/</guid><description>Versioned schema changes, repositories, database lifetime, and local-store access from an earlier Flutter example.</description><pubDate>Fri, 08 Jan 2021 15:26:14 GMT</pubDate></item><item><title>Custom icon fonts and styled text in Flutter</title><link>https://nhancv.com/garden/flutter-custom-icon-fonts/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-custom-icon-fonts/</guid><description>An earlier SVG-to-font workflow and three small text/controller experiments.</description><pubDate>Fri, 08 Jan 2021 15:23:54 GMT</pubDate></item><item><title>Reading an older Laravel Echo and Pusher integration</title><link>https://nhancv.com/garden/flutter-pusher-with-laravel-echo/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-pusher-with-laravel-echo/</guid><description>Connection state, event namespaces, and authorization roles in a historical Flutter example.</description><pubDate>Fri, 08 Jan 2021 15:20:36 GMT</pubDate></item><item><title>An older Dio cookie-persistence and XSRF example</title><link>https://nhancv.com/garden/flutter-api-persists-the-cookies-in-files-custom-x-csrf-token-csrf-cookie-xsrf-token/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-api-persists-the-cookies-in-files-custom-x-csrf-token-csrf-cookie-xsrf-token/</guid><description>The relationship between a stored session cookie, an XSRF header, and asynchronous client initialization.</description><pubDate>Fri, 08 Jan 2021 13:20:03 GMT</pubDate></item><item><title>An older Flutter image-picker interaction</title><link>https://nhancv.com/garden/flutter-image-picker/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-image-picker/</guid><description>Permission descriptions, source selection, cancellation, and the application&apos;s avatar-upload boundary.</description><pubDate>Sun, 13 Dec 2020 04:19:09 GMT</pubDate></item><item><title>An earlier Flutter Firebase service collection</title><link>https://nhancv.com/garden/flutter-firebase-service/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-firebase-service/</guid><description>A historical collection spanning native setup, authentication, storage, functions, messaging, local notifications, and telemetry.</description><pubDate>Sun, 13 Dec 2020 04:14:14 GMT</pubDate></item><item><title>Opening a small URL set in Chrome on macOS</title><link>https://nhancv.com/garden/open-multi-urls-in-chrome-macos/</link><guid isPermaLink="true">https://nhancv.com/garden/open-multi-urls-in-chrome-macos/</guid><description>An earlier shell loop for launching several known destinations through the application launcher.</description><pubDate>Sun, 13 Dec 2020 03:40:10 GMT</pubDate></item><item><title>An earlier Flutter subscription-testing notebook</title><link>https://nhancv.com/garden/flutter-iap-subscription-config/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-iap-subscription-config/</guid><description>Product identity, native billing configuration, and sandbox evidence from a historical purchase integration.</description><pubDate>Sun, 13 Dec 2020 03:28:24 GMT</pubDate></item><item><title>An earlier Android and iOS launch-image setup</title><link>https://nhancv.com/garden/android/</link><guid isPermaLink="true">https://nhancv.com/garden/android/</guid><description>Native launch resources from an older Flutter host project, without importing archive attachments.</description><pubDate>Sun, 13 Dec 2020 03:08:11 GMT</pubDate></item><item><title>Reading an older Dart date-formatting helper</title><link>https://nhancv.com/garden/flutter-datetime-format/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-datetime-format/</guid><description>Formatting examples and the calendar assumptions hidden in today, yesterday, week, and elapsed-time checks.</description><pubDate>Sun, 13 Dec 2020 02:59:39 GMT</pubDate></item><item><title>An older Express and Multer upload example</title><link>https://nhancv.com/garden/upload-file-with-expressjs-and-multer-javascript/</link><guid isPermaLink="true">https://nhancv.com/garden/upload-file-with-expressjs-and-multer-javascript/</guid><description>Disk storage, one-file and named-field uploads, and the validation missing from a small demonstration.</description><pubDate>Sun, 13 Dec 2020 02:56:13 GMT</pubDate></item><item><title>Time-boxed habit stacks as an interaction pattern</title><link>https://nhancv.com/garden/habitapp-habit-trackertimer/</link><guid isPermaLink="true">https://nhancv.com/garden/habitapp-habit-trackertimer/</guid><description>A historical product note about grouping routine steps and giving each step a visible timer.</description><pubDate>Fri, 25 Sep 2020 03:58:14 GMT</pubDate></item><item><title>Tracking route visibility in a Flutter application</title><link>https://nhancv.com/garden/flutter-current-route-active-tracking-debug/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-current-route-active-tracking-debug/</guid><description>A RouteObserver-based mixin that separates screen activation from application lifecycle events.</description><pubDate>Wed, 09 Sep 2020 17:29:05 GMT</pubDate></item><item><title>Observing Flutter application lifecycle changes</title><link>https://nhancv.com/garden/flutter-track-applifecyclestate-debug/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-track-applifecyclestate-debug/</guid><description>An older WidgetsBindingObserver example and the distinction between app visibility and route visibility.</description><pubDate>Wed, 09 Sep 2020 17:10:31 GMT</pubDate></item><item><title>Observing Flutter widget updates in lifecycle logs</title><link>https://nhancv.com/garden/flutter-widget-life-cycle-debug/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-widget-life-cycle-debug/</guid><description>An earlier parent-property experiment around initState, didUpdateWidget, build, and disposal.</description><pubDate>Wed, 09 Sep 2020 16:51:23 GMT</pubDate></item><item><title>Android signing fingerprints and Facebook key hashes</title><link>https://nhancv.com/garden/integrate-facebook-google-firebase-keyhash/</link><guid isPermaLink="true">https://nhancv.com/garden/integrate-facebook-google-firebase-keyhash/</guid><description>Distinguish local/upload certificates from the certificate that signs the application delivered by Play.</description><pubDate>Wed, 29 Jul 2020 15:52:18 GMT</pubDate></item><item><title>A Guava ListenableFuture duplicate-class error</title><link>https://nhancv.com/garden/flutter-java-lang-runtimeexception-java-lang-runtimeexception-duplicate-class/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-java-lang-runtimeexception-java-lang-runtimeexception-duplicate-class/</guid><description>An older Android dependency conflict between Guava and the standalone listenablefuture artifact.</description><pubDate>Wed, 29 Jul 2020 15:48:23 GMT</pubDate></item><item><title>A historical Flutter WebRTC release-only class lookup failure</title><link>https://nhancv.com/garden/flutter-webrtc-build-android-release-error/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-webrtc-build-android-release-error/</guid><description>The JNI class-lookup error and keep rules recorded around an older Android shrinking configuration.</description><pubDate>Wed, 29 Jul 2020 15:45:33 GMT</pubDate></item><item><title>Preconfiguring simulator permissions for Flutter tests</title><link>https://nhancv.com/garden/flutter-ios-by-pass-permission-pop-up-on-emulator-integration-testing/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-ios-by-pass-permission-pop-up-on-emulator-integration-testing/</guid><description>An earlier AppleSimulatorUtils script that creates a dedicated simulator and sets test permissions.</description><pubDate>Fri, 17 Jul 2020 10:51:26 GMT</pubDate></item><item><title>Comparing Flutter microtasks and post-frame callbacks</title><link>https://nhancv.com/garden/flutter-run-task-after-widget-render/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-run-task-after-widget-render/</guid><description>A small recorded lifecycle trace that distinguishes two scheduling boundaries.</description><pubDate>Thu, 16 Jul 2020 10:25:35 GMT</pubDate></item><item><title>A release-only iOS architecture mismatch in Flutter</title><link>https://nhancv.com/garden/flutter-ios-release-build-error/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-ios-release-build-error/</guid><description>An older armv7-versus-arm64 linker report and the need to align the application target with its libraries.</description><pubDate>Wed, 01 Jul 2020 15:17:14 GMT</pubDate></item><item><title>An earlier Flutter Crashlytics error pipeline</title><link>https://nhancv.com/garden/flutter-crashlytics-integration/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-crashlytics-integration/</guid><description>Native build hooks and separate framework, isolate, and zoned-error paths in a historical integration.</description><pubDate>Sat, 27 Jun 2020 17:11:32 GMT</pubDate></item><item><title>An earlier Firebase Analytics integration in Flutter</title><link>https://nhancv.com/garden/flutter-analytics-integration/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-analytics-integration/</guid><description>A shared analytics object, route observer, and event example from older FlutterFire packages.</description><pubDate>Sat, 27 Jun 2020 16:29:34 GMT</pubDate></item><item><title>An earlier Firebase registration flow for Flutter</title><link>https://nhancv.com/garden/flutter-create-a-firebase-project/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-create-a-firebase-project/</guid><description>Project registration and native configuration files for Android and iOS, kept separate from runtime initialization.</description><pubDate>Sat, 27 Jun 2020 15:57:14 GMT</pubDate></item><item><title>Building a slide-up Flutter panel in stages</title><link>https://nhancv.com/garden/simple-slide-up-widget-animation/</link><guid isPermaLink="true">https://nhancv.com/garden/simple-slide-up-widget-animation/</guid><description>Separate the panel&apos;s static layout, visibility state, controller, and animation.</description><pubDate>Sat, 27 Jun 2020 13:24:26 GMT</pubDate></item><item><title>A historical Flutter starter-template checklist</title><link>https://nhancv.com/garden/flutter-boilerplate-for-newbie/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-boilerplate-for-newbie/</guid><description>An earlier template&apos;s structure, localization, environment entry points, tests, and release preparation.</description><pubDate>Sat, 27 Jun 2020 09:59:02 GMT</pubDate></item><item><title>A small historical Flutter Socket.IO wrapper</title><link>https://nhancv.com/garden/flutter-socket-io/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-socket-io/</guid><description>Connection callbacks, a named event, and the assumptions hidden behind a simple socket interface.</description><pubDate>Sat, 27 Jun 2020 06:57:25 GMT</pubDate></item><item><title>An early Flutter web responsiveness experiment</title><link>https://nhancv.com/garden/flutter-web-experiment/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-web-experiment/</guid><description>A LayoutBuilder-based sign-up screen and the limits of treating compiled output as a security boundary.</description><pubDate>Thu, 23 Apr 2020 10:23:05 GMT</pubDate></item><item><title>An older Flutter iOS framework-target mismatch</title><link>https://nhancv.com/garden/flutter-ios-build-error-diagnose/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-ios-build-error-diagnose/</guid><description>A recorded simulator build failure and why dependency regeneration is different from changing an application&apos;s source.</description><pubDate>Thu, 16 Apr 2020 11:16:56 GMT</pubDate></item><item><title>Choosing Git identity by repository directory</title><link>https://nhancv.com/garden/multiple-git-config/</link><guid isPermaLink="true">https://nhancv.com/garden/multiple-git-config/</guid><description>Conditional Git configuration without publishing real names, email addresses, or workstation paths.</description><pubDate>Tue, 14 Apr 2020 09:41:38 GMT</pubDate></item><item><title>An earlier Janus WebRTC server build on Ubuntu</title><link>https://nhancv.com/garden/install-janus-webrtc-ubuntu-server-18-04-4/</link><guid isPermaLink="true">https://nhancv.com/garden/install-janus-webrtc-ubuntu-server-18-04-4/</guid><description>Dependencies, transports, local certificates, and demo boundaries from a historical Janus setup.</description><pubDate>Thu, 09 Apr 2020 03:42:16 GMT</pubDate></item><item><title>An earlier Flutter OneSignal platform setup</title><link>https://nhancv.com/garden/flutter-integrate-onesignale-push-notification/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-integrate-onesignale-push-notification/</guid><description>Android, iOS, and Dart configuration roles in a historical OneSignal 2.3.4 integration.</description><pubDate>Wed, 25 Mar 2020 12:19:25 GMT</pubDate></item><item><title>An older Express-on-Netlify build layout</title><link>https://nhancv.com/garden/expressjs-on-netlify/</link><guid isPermaLink="true">https://nhancv.com/garden/expressjs-on-netlify/</guid><description>Two netlify-lambda directory arrangements and the difference between function output and a site&apos;s publish directory.</description><pubDate>Wed, 18 Mar 2020 14:10:18 GMT</pubDate></item><item><title>CloudFront private content has two access boundaries</title><link>https://nhancv.com/garden/protect-private-content-s3-using-aws-cloudfront/</link><guid isPermaLink="true">https://nhancv.com/garden/protect-private-content-s3-using-aws-cloudfront/</guid><description>An older signed-URL and signed-cookie experiment, rewritten around origin protection and viewer authorization.</description><pubDate>Sat, 14 Mar 2020 14:31:58 GMT</pubDate></item><item><title>An older NestJS service around Amazon S3</title><link>https://nhancv.com/garden/aws-s3-with-nodejs-practice/</link><guid isPermaLink="true">https://nhancv.com/garden/aws-s3-with-nodejs-practice/</guid><description>The distinction between storage operations, credentials, and public object access in an earlier SDK example.</description><pubDate>Wed, 11 Mar 2020 07:33:35 GMT</pubDate></item><item><title>Cloud architecture terms worth separating</title><link>https://nhancv.com/garden/aws-sa-fundamentals/</link><guid isPermaLink="true">https://nhancv.com/garden/aws-sa-fundamentals/</guid><description>Shared responsibility, availability, recovery objectives, scaling, and infrastructure boundaries from an earlier AWS notebook.</description><pubDate>Wed, 11 Mar 2020 05:20:58 GMT</pubDate></item><item><title>Converting a PuTTY key for an OpenSSH client</title><link>https://nhancv.com/garden/tech-convert-ppk-file-to-pem-for-ssh-to-ec2/</link><guid isPermaLink="true">https://nhancv.com/garden/tech-convert-ppk-file-to-pem-for-ssh-to-ec2/</guid><description>Historical Linux and macOS commands for changing a private key&apos;s file format without changing its purpose.</description><pubDate>Tue, 03 Mar 2020 07:06:04 GMT</pubDate></item><item><title>An earlier TRC20 deployment and client experiment</title><link>https://nhancv.com/garden/create-trc20-token-on-tron-network-with-nodejs/</link><guid isPermaLink="true">https://nhancv.com/garden/create-trc20-token-on-tron-network-with-nodejs/</guid><description>Deployment, explorer registration, and token transfers are separate stages of this historical TronWeb example.</description><pubDate>Tue, 21 Jan 2020 05:48:47 GMT</pubDate></item><item><title>An earlier TRC10 token-creation example</title><link>https://nhancv.com/garden/create-trc10-token-on-tron-network-with-nodejs/</link><guid isPermaLink="true">https://nhancv.com/garden/create-trc10-token-on-tron-network-with-nodejs/</guid><description>The transaction-building, signing, and broadcast stages of a historical TronWeb experiment.</description><pubDate>Tue, 21 Jan 2020 04:41:07 GMT</pubDate></item><item><title>Linux service state and boot-time enablement</title><link>https://nhancv.com/garden/ubuntu-enable-disable-service/</link><guid isPermaLink="true">https://nhancv.com/garden/ubuntu-enable-disable-service/</guid><description>A short reference separating running a service now from configuring whether it starts on boot.</description><pubDate>Tue, 24 Dec 2019 04:59:25 GMT</pubDate></item><item><title>An older Homebrew removal notebook</title><link>https://nhancv.com/garden/homebrew-reset-clean-remove-all-packages/</link><guid isPermaLink="true">https://nhancv.com/garden/homebrew-reset-clean-remove-all-packages/</guid><description>Three commands with different effects: removing installed packages, cleaning archives, and the earlier Cask syntax.</description><pubDate>Wed, 18 Dec 2019 07:39:05 GMT</pubDate></item><item><title>A Windows startup-folder shortcut</title><link>https://nhancv.com/garden/windows-7-startup-program/</link><guid isPermaLink="true">https://nhancv.com/garden/windows-7-startup-program/</guid><description>The older per-user Startup-folder workflow for launching an application after sign-in.</description><pubDate>Wed, 18 Dec 2019 07:37:34 GMT</pubDate></item><item><title>An earlier reusable Winston logger module</title><link>https://nhancv.com/garden/nodejs-logging/</link><guid isPermaLink="true">https://nhancv.com/garden/nodejs-logging/</guid><description>A shared logger import with rotating files, an environment label, and fixed-offset timestamps.</description><pubDate>Wed, 18 Dec 2019 07:36:50 GMT</pubDate></item><item><title>A stable Flutter background during iOS keyboard transitions</title><link>https://nhancv.com/garden/flutter-transparent-ios-background-keyboard-when-it-open/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-transparent-ios-background-keyboard-when-it-open/</guid><description>An older Stack-based layout that kept a background behind a transparent Scaffold.</description><pubDate>Wed, 18 Dec 2019 04:51:50 GMT</pubDate></item><item><title>Separating API response envelopes from Dart models</title><link>https://nhancv.com/garden/flutter-base-model-approach/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-base-model-approach/</guid><description>A historical model-design note about shared error fields, typed data, and responses with different shapes.</description><pubDate>Fri, 06 Dec 2019 10:29:55 GMT</pubDate></item><item><title>Flutter foundations: practical application boundaries</title><link>https://nhancv.com/garden/newbie-chapter-5-basic-tickets/</link><guid isPermaLink="true">https://nhancv.com/garden/newbie-chapter-5-basic-tickets/</guid><description>The fifth beginner chapter covers localization, data, navigation, versioning, testing, and profiling.</description><pubDate>Mon, 02 Dec 2019 05:12:58 GMT</pubDate></item><item><title>Observing memory pressure in Flutter</title><link>https://nhancv.com/garden/flutter-detect-memory-pressure/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-detect-memory-pressure/</guid><description>An older binding observer and cache-clearing experiment, with its limits distinguished from an OOM diagnosis.</description><pubDate>Mon, 02 Dec 2019 04:32:29 GMT</pubDate></item><item><title>Keeping WordPress changes in a child theme</title><link>https://nhancv.com/garden/create-a-wordpress-child-theme/</link><guid isPermaLink="true">https://nhancv.com/garden/create-a-wordpress-child-theme/</guid><description>An earlier child-theme setup and the need for the directory, parent template, and styles to agree.</description><pubDate>Tue, 26 Nov 2019 10:39:30 GMT</pubDate></item><item><title>An earlier face-recognition web-service experiment</title><link>https://nhancv.com/garden/setup-a-simple-face-recognition/</link><guid isPermaLink="true">https://nhancv.com/garden/setup-a-simple-face-recognition/</guid><description>An Ubuntu/Python environment and a small Flask upload service, preserved with its deployment limits.</description><pubDate>Tue, 26 Nov 2019 08:34:07 GMT</pubDate></item><item><title>An earlier Zeebe Docker Compose experiment</title><link>https://nhancv.com/garden/install-zeebe/</link><guid isPermaLink="true">https://nhancv.com/garden/install-zeebe/</guid><description>Broker, workflow execution, and monitoring roles from an older local orchestration example.</description><pubDate>Tue, 26 Nov 2019 08:10:23 GMT</pubDate></item><item><title>Keeping terminal work in tmux sessions</title><link>https://nhancv.com/garden/linux-multi-terminal/</link><guid isPermaLink="true">https://nhancv.com/garden/linux-multi-terminal/</guid><description>A small session, window, and pane reference for an older Linux terminal workflow.</description><pubDate>Tue, 26 Nov 2019 07:51:36 GMT</pubDate></item><item><title>An older Docker-on-Ubuntu installation notebook</title><link>https://nhancv.com/garden/install-docker-on-ubuntu-18-10/</link><guid isPermaLink="true">https://nhancv.com/garden/install-docker-on-ubuntu-18-10/</guid><description>Repository codenames, container inspection, and the destructive cleanup commands in a historical setup.</description><pubDate>Tue, 26 Nov 2019 07:48:54 GMT</pubDate></item><item><title>Named regex groups in a Vietnamese text message</title><link>https://nhancv.com/garden/javascript-extract-info-from-regex/</link><guid isPermaLink="true">https://nhancv.com/garden/javascript-extract-info-from-regex/</guid><description>Extracting an amount and timestamp from a fixed four-line message format.</description><pubDate>Mon, 25 Nov 2019 16:22:35 GMT</pubDate></item><item><title>An older BitcoinJS wallet-generation experiment</title><link>https://nhancv.com/garden/generate-new-bitcoin-wallet-using-bitcoinjs/</link><guid isPermaLink="true">https://nhancv.com/garden/generate-new-bitcoin-wallet-using-bitcoinjs/</guid><description>Key generation, two address forms, and explorer lookups from an earlier testnet example.</description><pubDate>Sun, 24 Nov 2019 02:42:34 GMT</pubDate></item><item><title>Deriving legacy and wrapped-SegWit addresses from WIF</title><link>https://nhancv.com/garden/get-wallet-address-from-wif-with-bitcoinjs/</link><guid isPermaLink="true">https://nhancv.com/garden/get-wallet-address-from-wif-with-bitcoinjs/</guid><description>An older BitcoinJS example that chooses a network and constructs P2PKH and P2SH-P2WPKH payments.</description><pubDate>Sat, 23 Nov 2019 18:37:37 GMT</pubDate></item><item><title>What Bitcoin WIF encodes</title><link>https://nhancv.com/garden/bitcoin-convert-private-key-to-wif/</link><guid isPermaLink="true">https://nhancv.com/garden/bitcoin-convert-private-key-to-wif/</guid><description>An older private-key encoding example, with network and compressed-public-key context.</description><pubDate>Sat, 23 Nov 2019 18:33:29 GMT</pubDate></item><item><title>Making a Dart singleton visible at the call site</title><link>https://nhancv.com/garden/flutter-singleton-separate-approach/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-singleton-separate-approach/</guid><description>A small comparison between explicit instance access, ordinary construction, and a factory constructor.</description><pubDate>Thu, 21 Nov 2019 11:00:04 GMT</pubDate></item><item><title>When Jenkins cannot find a command on an agent</title><link>https://nhancv.com/garden/jenkins-fix-command-not-found/</link><guid isPermaLink="true">https://nhancv.com/garden/jenkins-fix-command-not-found/</guid><description>Inspect the execution environment rather than assuming the interactive shell and build share a PATH.</description><pubDate>Thu, 21 Nov 2019 09:26:46 GMT</pubDate></item><item><title>An older Flutter OneSignal notification example</title><link>https://nhancv.com/garden/flutter-onesignal-example-snipcode/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-onesignal-example-snipcode/</guid><description>Historical receive/open callbacks and player-ID access from the shared-instance API.</description><pubDate>Fri, 15 Nov 2019 07:32:59 GMT</pubDate></item><item><title>Flutter foundations: state ownership and lifecycle</title><link>https://nhancv.com/garden/newbie-chapter-4-widgets-state/</link><guid isPermaLink="true">https://nhancv.com/garden/newbie-chapter-4-widgets-state/</guid><description>The fourth beginner chapter separates widget configuration, State lifetime, app lifecycle, and stream-based updates.</description><pubDate>Tue, 12 Nov 2019 02:32:35 GMT</pubDate></item><item><title>Flutter foundations: an earlier App Center and launch setup</title><link>https://nhancv.com/garden/newbie-chapter-3-flutter-initial-setup/</link><guid isPermaLink="true">https://nhancv.com/garden/newbie-chapter-3-flutter-initial-setup/</guid><description>A historical third chapter covering telemetry integration, CI, signing, launcher icons, and native splash resources.</description><pubDate>Mon, 11 Nov 2019 08:07:49 GMT</pubDate></item><item><title>Flutter foundations: installation and project conventions</title><link>https://nhancv.com/garden/newbie-chapter-2-flutter-getting-started/</link><guid isPermaLink="true">https://nhancv.com/garden/newbie-chapter-2-flutter-getting-started/</guid><description>The second beginner chapter connects toolchain checks, a first application, and consistent source organization.</description><pubDate>Sun, 10 Nov 2019 09:56:24 GMT</pubDate></item><item><title>Flutter foundations: widgets, composition, and Dart</title><link>https://nhancv.com/garden/newbie-chapter-1-flutter-overview/</link><guid isPermaLink="true">https://nhancv.com/garden/newbie-chapter-1-flutter-overview/</guid><description>The first chapter of an earlier beginner series, rewritten around its core UI model.</description><pubDate>Sat, 09 Nov 2019 11:42:11 GMT</pubDate></item><item><title>Reviewing a small Nginx proxy configuration</title><link>https://nhancv.com/garden/nginx-proxy-pass-config/</link><guid isPermaLink="true">https://nhancv.com/garden/nginx-proxy-pass-config/</guid><description>A reverse-proxy example whose invalid upstream address and mismatched enable path need correction before reuse.</description><pubDate>Sat, 09 Nov 2019 06:09:14 GMT</pubDate></item><item><title>How an older WordPress VPS was put together</title><link>https://nhancv.com/garden/setup-wordpress-on-vps-php-nginx/</link><guid isPermaLink="true">https://nhancv.com/garden/setup-wordpress-on-vps-php-nginx/</guid><description>A retrospective on Nginx, PHP-FPM, MySQL, file ownership, backups, and certificate boundaries.</description><pubDate>Sat, 09 Nov 2019 05:55:22 GMT</pubDate></item><item><title>An older Nginx and Certbot certificate setup</title><link>https://nhancv.com/garden/ssl-free-with-certbot-and-nginx/</link><guid isPermaLink="true">https://nhancv.com/garden/ssl-free-with-certbot-and-nginx/</guid><description>The HTTP virtual-host and certificate workflow from an earlier Ubuntu deployment.</description><pubDate>Sat, 09 Nov 2019 05:31:57 GMT</pubDate></item><item><title>An older WordPress image-rotation dependency error</title><link>https://nhancv.com/garden/wordpress-image-rotation-is-not-supported-by-your-web-host/</link><guid isPermaLink="true">https://nhancv.com/garden/wordpress-image-rotation-is-not-supported-by-your-web-host/</guid><description>The PHP GD package and PHP-FPM restart recorded for a previous host.</description><pubDate>Fri, 08 Nov 2019 17:24:08 GMT</pubDate></item><item><title>An older Android ProGuard and Gson configuration</title><link>https://nhancv.com/garden/android-obfuscate-code-with-proguard/</link><guid isPermaLink="true">https://nhancv.com/garden/android-obfuscate-code-with-proguard/</guid><description>Release minification, reflection metadata, and the dependency versions behind a historical setup.</description><pubDate>Thu, 07 Nov 2019 08:53:08 GMT</pubDate></item><item><title>Observing Flutter rebuilds with setState</title><link>https://nhancv.com/garden/flutter-setstate/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-setstate/</guid><description>A nested-widget experiment that records build and lifecycle calls around several buttons.</description><pubDate>Thu, 07 Nov 2019 04:44:00 GMT</pubDate></item><item><title>Flutter receipt printing and an ESC/POS cash drawer</title><link>https://nhancv.com/garden/flutter-printer-and-cashdrawer/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-printer-and-cashdrawer/</guid><description>An older network-printer example, raw drawer commands, and a small printer-library extension.</description><pubDate>Thu, 07 Nov 2019 01:30:49 GMT</pubDate></item><item><title>A stream-based BLoC search screen in Flutter</title><link>https://nhancv.com/garden/flutter-state-management-with-bloc-simple-approach/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-state-management-with-bloc-simple-approach/</guid><description>An older separation of input, loading, results, and asynchronous search logic.</description><pubDate>Tue, 05 Nov 2019 08:10:08 GMT</pubDate></item><item><title>Reading a JavaScript regex capture group</title><link>https://nhancv.com/garden/extract-data-by-regex-in-javascript/</link><guid isPermaLink="true">https://nhancv.com/garden/extract-data-by-regex-in-javascript/</guid><description>The difference between a full match and the substring captured between two delimiters.</description><pubDate>Tue, 05 Nov 2019 07:37:37 GMT</pubDate></item><item><title>Finding virtualization support in firmware settings</title><link>https://nhancv.com/garden/enable-virtualization-technology-in-bios/</link><guid isPermaLink="true">https://nhancv.com/garden/enable-virtualization-technology-in-bios/</guid><description>A short historical note on the firmware toggle behind hardware-assisted virtualization.</description><pubDate>Tue, 05 Nov 2019 07:37:10 GMT</pubDate></item><item><title>What an HTTP proxy changes on macOS</title><link>https://nhancv.com/garden/hide-ip-with-proxy-on-macos/</link><guid isPermaLink="true">https://nhancv.com/garden/hide-ip-with-proxy-on-macos/</guid><description>An earlier proxy-settings experiment and the limits of checking only the visible public IP.</description><pubDate>Tue, 05 Nov 2019 07:36:31 GMT</pubDate></item><item><title>Inspecting an older CentOS network configuration</title><link>https://nhancv.com/garden/the-diagnostic-centos-ip-address/</link><guid isPermaLink="true">https://nhancv.com/garden/the-diagnostic-centos-ip-address/</guid><description>Interface inspection, network-scripts files, and the effect of restarting the network service.</description><pubDate>Tue, 05 Nov 2019 07:33:22 GMT</pubDate></item><item><title>Reading an older PostgreSQL pgbench experiment</title><link>https://nhancv.com/garden/postgresql-benchmark/</link><guid isPermaLink="true">https://nhancv.com/garden/postgresql-benchmark/</guid><description>Initialization, concurrent clients, and why two different benchmark workloads cannot be compared directly.</description><pubDate>Tue, 05 Nov 2019 07:26:09 GMT</pubDate></item><item><title>Dismissing the keyboard in a Flutter search screen</title><link>https://nhancv.com/garden/flutter-hide-keyboard/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-hide-keyboard/</guid><description>An older focus-node and BLoC example for explicit keyboard dismissal around search and navigation.</description><pubDate>Tue, 05 Nov 2019 07:20:58 GMT</pubDate></item><item><title>A Flutter focus request that fought the keyboard</title><link>https://nhancv.com/garden/flutter-can-not-focus-on-the-textfield-after-navigation/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-can-not-focus-on-the-textfield-after-navigation/</guid><description>Why dismissing focus inside build can repeatedly undo a user&apos;s text-field interaction.</description><pubDate>Tue, 05 Nov 2019 07:16:16 GMT</pubDate></item><item><title>Combining cached and network data in Flutter</title><link>https://nhancv.com/garden/flutter-offline-caching/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-offline-caching/</guid><description>An older stream-based cache pattern that distinguishes local display data from network results.</description><pubDate>Tue, 05 Nov 2019 07:14:07 GMT</pubDate></item><item><title>A recorded HP Z420 memory-training error</title><link>https://nhancv.com/garden/hpz420-workstation-memory-training-error/</link><guid isPermaLink="true">https://nhancv.com/garden/hpz420-workstation-memory-training-error/</guid><description>A workstation boot error and the power-management settings recorded during the earlier investigation.</description><pubDate>Tue, 05 Nov 2019 07:06:37 GMT</pubDate></item><item><title>A rounded TextField in Flutter</title><link>https://nhancv.com/garden/rounded-textfield-flutter/</link><guid isPermaLink="true">https://nhancv.com/garden/rounded-textfield-flutter/</guid><description>A compact styling note on filled inputs, border radii, padding, and focus states.</description><pubDate>Tue, 05 Nov 2019 07:02:58 GMT</pubDate></item><item><title>Renaming Dart asset files and scale variants</title><link>https://nhancv.com/garden/rename-file-in-dart/</link><guid isPermaLink="true">https://nhancv.com/garden/rename-file-in-dart/</guid><description>An older filesystem script that normalizes PNG names and moves @2x/@3x assets into scale directories.</description><pubDate>Tue, 05 Nov 2019 07:00:14 GMT</pubDate></item><item><title>When an invisible Flutter container misses taps</title><link>https://nhancv.com/garden/flutter-gesturedetector-tapping-is-not-working-in-containter/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-gesturedetector-tapping-is-not-working-in-containter/</guid><description>A small historical hit-testing fix, with the widget-tree assumptions kept visible.</description><pubDate>Tue, 05 Nov 2019 06:59:13 GMT</pubDate></item><item><title>An older native splash screen for Flutter</title><link>https://nhancv.com/garden/flutter-splash-screen/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-splash-screen/</guid><description>Android launch resources and first-layout cleanup from the original Flutter embedding.</description><pubDate>Tue, 05 Nov 2019 06:58:06 GMT</pubDate></item><item><title>Loading a .env file in Node.js</title><link>https://nhancv.com/garden/nodejs-dot-env/</link><guid isPermaLink="true">https://nhancv.com/garden/nodejs-dot-env/</guid><description>A small CommonJS example showing why configuration must load before it is read.</description><pubDate>Tue, 05 Nov 2019 06:55:04 GMT</pubDate></item><item><title>Setting environment variables on Heroku</title><link>https://nhancv.com/garden/heroku-deal-with-env/</link><guid isPermaLink="true">https://nhancv.com/garden/heroku-deal-with-env/</guid><description>A short note on separating application configuration from its source files.</description><pubDate>Tue, 05 Nov 2019 06:53:11 GMT</pubDate></item><item><title>A Flutter form that scrolls around the keyboard</title><link>https://nhancv.com/garden/flutter-textfield-keyboard-sample/</link><guid isPermaLink="true">https://nhancv.com/garden/flutter-textfield-keyboard-sample/</guid><description>An older Scaffold and Android launch-theme example for a screen with several text fields.</description><pubDate>Tue, 05 Nov 2019 06:51:01 GMT</pubDate></item><item><title>Proxying an application port through Nginx</title><link>https://nhancv.com/garden/nginx-proxy-pass/</link><guid isPermaLink="true">https://nhancv.com/garden/nginx-proxy-pass/</guid><description>A small historical reverse-proxy example with forwarding and WebSocket-upgrade headers.</description><pubDate>Tue, 05 Nov 2019 03:53:53 GMT</pubDate></item><item><title>NScancode: a compact barcode-scanning experiment</title><link>https://nhancv.com/garden/nscancode/</link><guid isPermaLink="true">https://nhancv.com/garden/nscancode/</guid><description>A historical Android utility for QR codes and several one- and two-dimensional barcode formats.</description><pubDate>Mon, 04 Nov 2019 18:29:02 GMT</pubDate></item><item><title>An older MongoDB Node.js connection example</title><link>https://nhancv.com/garden/mongodb-v4-2-0-nodejs-get-started/</link><guid isPermaLink="true">https://nhancv.com/garden/mongodb-v4-2-0-nodejs-get-started/</guid><description>A callback-style connection snippet from a MongoDB 4.2-era note.</description><pubDate>Mon, 04 Nov 2019 18:23:33 GMT</pubDate></item><item><title>Rotating Winston logs with a fixed UTC offset</title><link>https://nhancv.com/garden/nodejs-logging-with-winston-rotation-file-and-specific-timezone/</link><guid isPermaLink="true">https://nhancv.com/garden/nodejs-logging-with-winston-rotation-file-and-specific-timezone/</guid><description>An earlier logging configuration combining hourly filenames, retention limits, and formatted timestamps.</description><pubDate>Mon, 04 Nov 2019 18:21:50 GMT</pubDate></item><item><title>Gzip files with Java streams</title><link>https://nhancv.com/garden/android-support-gzip-file/</link><guid isPermaLink="true">https://nhancv.com/garden/android-support-gzip-file/</guid><description>An older file-compression helper and the resource-handling limits of its happy-path cleanup.</description><pubDate>Mon, 04 Nov 2019 18:19:56 GMT</pubDate></item><item><title>Java primitives and byte-array boundaries</title><link>https://nhancv.com/garden/android-working-with-byte/</link><guid isPermaLink="true">https://nhancv.com/garden/android-working-with-byte/</guid><description>An older conversion helper for numbers, offsets, and array slices.</description><pubDate>Mon, 04 Nov 2019 18:18:14 GMT</pubDate></item><item><title>MD5 digests and keyed SHA-256 in Node.js</title><link>https://nhancv.com/garden/native-md5-nodejs/</link><guid isPermaLink="true">https://nhancv.com/garden/native-md5-nodejs/</guid><description>Two small crypto examples that perform different operations: an MD5 digest and an HMAC.</description><pubDate>Mon, 04 Nov 2019 18:16:59 GMT</pubDate></item><item><title>Reading an older Firestore export and copy script</title><link>https://nhancv.com/garden/export-firestore-database/</link><guid isPermaLink="true">https://nhancv.com/garden/export-firestore-database/</guid><description>Schema-directed collection traversal, with the original script&apos;s naming and export-shape limitations made visible.</description><pubDate>Mon, 04 Nov 2019 18:15:25 GMT</pubDate></item><item><title>Investigating Android Socket.IO polling timeouts</title><link>https://nhancv.com/garden/android-socket-io-client-v1-0-0-engineioexception-xhr-poll-error/</link><guid isPermaLink="true">https://nhancv.com/garden/android-socket-io-client-v1-0-0-engineioexception-xhr-poll-error/</guid><description>Separate transport timeouts, reverse-proxy upgrades, and certificate validation when diagnosing an old client.</description><pubDate>Mon, 04 Nov 2019 18:10:49 GMT</pubDate></item><item><title>Android JNI and NDK working notes</title><link>https://nhancv.com/garden/android-some-notes-for-android-java-jni-c-ndk/</link><guid isPermaLink="true">https://nhancv.com/garden/android-some-notes-for-android-java-jni-c-ndk/</guid><description>An older collection of CMake, native logging, bitmap, and Java-array boundary examples.</description><pubDate>Mon, 04 Nov 2019 18:07:28 GMT</pubDate></item><item><title>Rotating a flat YUV420 byte buffer</title><link>https://nhancv.com/garden/android-rotate-yuv420-byte-data/</link><guid isPermaLink="true">https://nhancv.com/garden/android-rotate-yuv420-byte-data/</guid><description>Historical Java routines for 90-, 180-, and 270-degree rotation of a packed camera buffer.</description><pubDate>Mon, 04 Nov 2019 18:02:44 GMT</pubDate></item><item><title>Removing Retrolambda from an older Android build</title><link>https://nhancv.com/garden/android-gradle-dsl-method-not-found-deleteallactions-anotation/</link><guid isPermaLink="true">https://nhancv.com/garden/android-gradle-dsl-method-not-found-deleteallactions-anotation/</guid><description>A short record of a Gradle upgrade conflict caused by an obsolete lambda backport plugin.</description><pubDate>Mon, 04 Nov 2019 17:59:57 GMT</pubDate></item><item><title>Kotlin nullable access and the non-null assertion</title><link>https://nhancv.com/garden/what-difference-between-and-in-kotlin-see-below-table/</link><guid isPermaLink="true">https://nhancv.com/garden/what-difference-between-and-in-kotlin-see-below-table/</guid><description>A small comparison of direct access, safe calls, and the !! operator.</description><pubDate>Mon, 04 Nov 2019 17:58:03 GMT</pubDate></item><item><title>Reading a Wi-Fi QR payload with a Kotlin regex</title><link>https://nhancv.com/garden/detect-wifi-format-with-regex-in-kotlin/</link><guid isPermaLink="true">https://nhancv.com/garden/detect-wifi-format-with-regex-in-kotlin/</guid><description>A restricted WIFI payload parser and the capture groups used to read its fields.</description><pubDate>Mon, 04 Nov 2019 17:55:31 GMT</pubDate></item><item><title>An old Android annotation-processor Gradle migration</title><link>https://nhancv.com/garden/android-could-not-find-method-annotationprocessor-for-arguments/</link><guid isPermaLink="true">https://nhancv.com/garden/android-could-not-find-method-annotationprocessor-for-arguments/</guid><description>A recorded workaround for a build-script failure around the Android Gradle plugin 3 transition.</description><pubDate>Mon, 04 Nov 2019 17:54:41 GMT</pubDate></item><item><title>Setting up a Telegram bot and reading chat IDs</title><link>https://nhancv.com/garden/telegram-bot/</link><guid isPermaLink="true">https://nhancv.com/garden/telegram-bot/</guid><description>The BotFather command sequence, group visibility, and the distinction between chat and sender identifiers.</description><pubDate>Mon, 04 Nov 2019 17:20:17 GMT</pubDate></item><item><title>Keeping a JavaScript receiver with bind</title><link>https://nhancv.com/garden/why-use-bind-in-javascript/</link><guid isPermaLink="true">https://nhancv.com/garden/why-use-bind-in-javascript/</guid><description>Why extracting a method changes its receiver, and how bind preserves the intended object.</description><pubDate>Mon, 04 Nov 2019 17:16:39 GMT</pubDate></item><item><title>Encoding Wi-Fi details in a QR code</title><link>https://nhancv.com/garden/wifi-qr-code-generator/</link><guid isPermaLink="true">https://nhancv.com/garden/wifi-qr-code-generator/</guid><description>A compact note on the WIFI payload and the network credentials it contains.</description><pubDate>Mon, 04 Nov 2019 17:12:15 GMT</pubDate></item><item><title>Tracing duplicate Android dependencies</title><link>https://nhancv.com/garden/android-build-duplicate-libraries/</link><guid isPermaLink="true">https://nhancv.com/garden/android-build-duplicate-libraries/</guid><description>Use the Gradle dependency graph to locate duplicate classes before applying a narrow exclusion.</description><pubDate>Mon, 04 Nov 2019 17:09:57 GMT</pubDate></item><item><title>Rounded corners on an Android modal bottom sheet</title><link>https://nhancv.com/garden/android-modal-bottom-sheet-dialog/</link><guid isPermaLink="true">https://nhancv.com/garden/android-modal-bottom-sheet-dialog/</guid><description>An older Material bottom-sheet treatment using a drawable, dimensions, and dialog themes.</description><pubDate>Mon, 04 Nov 2019 17:06:24 GMT</pubDate></item><item><title>A small Android screen-touch tester</title><link>https://nhancv.com/garden/android-screen-touch-test/</link><guid isPermaLink="true">https://nhancv.com/garden/android-screen-touch-test/</guid><description>An earlier utility that marks touch positions and uses the Back button to clear or exit.</description><pubDate>Mon, 04 Nov 2019 17:00:01 GMT</pubDate></item><item><title>Working with Android runtime permissions</title><link>https://nhancv.com/garden/android-runtime-permissions/</link><guid isPermaLink="true">https://nhancv.com/garden/android-runtime-permissions/</guid><description>A historical permission-controller example, with explicit requests, result callbacks, and the limits of an all-permissions approach.</description><pubDate>Mon, 04 Nov 2019 16:53:57 GMT</pubDate></item><item><title>Deploying a contract with Truffle</title><link>https://nhancv.com/garden/deploy-smart-contract-with-truffle/</link><guid isPermaLink="true">https://nhancv.com/garden/deploy-smart-contract-with-truffle/</guid><description>A historical walkthrough of Ganache, environment-based wallet configuration, and Truffle migrations.</description><pubDate>Mon, 04 Nov 2019 16:31:42 GMT</pubDate></item></channel></rss>