<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>pyk</title><description>Security Researcher</description><link>https://pyk.sh/</link><language>en-us</language><item><title>Dream (2014)</title><link>https://pyk.sh/posts/2014-01-13-dream-2014/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-01-13-dream-2014/</guid><description>if you want people know about who you are, at least you must have a blog and tell the world what you have done, what you have archived and what you have invented. social network is your best engine to share your blog post.</description><pubDate>Mon, 13 Jan 2014 00:00:00 GMT</pubDate></item><item><title>Target on my first long holiday</title><link>https://pyk.sh/posts/2014-01-15-target-on-my-first-long-holiday/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-01-15-target-on-my-first-long-holiday/</guid><description>in this 2 month, free time, what&apos;s mission i must accomplish? what&apos;s stuff
should i create? whats&apos;s project should i finish before epic moment gone?
</description><pubDate>Wed, 15 Jan 2014 00:00:00 GMT</pubDate></item><item><title>Weekend wrap-up</title><link>https://pyk.sh/posts/2014-01-18-weekend-wrap-up/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-01-18-weekend-wrap-up/</guid><description>Lesson learned from stuff that i read or watch in this weekend
</description><pubDate>Sat, 18 Jan 2014 00:00:00 GMT</pubDate></item><item><title>My first angular app</title><link>https://pyk.sh/posts/2014-01-26-my-first-angular-app/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-01-26-my-first-angular-app/</guid><description>I built an age-in-weeks calculator for my first AngularJS project. This is the story of how shipping a messy version led to community feedback and new features.</description><pubDate>Sun, 26 Jan 2014 00:00:00 GMT</pubDate></item><item><title>Weekend wrap-up</title><link>https://pyk.sh/posts/2014-01-25-weekend-wrap-up/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-01-25-weekend-wrap-up/</guid><description>Lesson learned from stuff that i read or watch in this weekend
</description><pubDate>Sat, 25 Jan 2014 00:00:00 GMT</pubDate></item><item><title>decoding old software</title><link>https://pyk.sh/posts/2014-01-31-decoding-old-software/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-01-31-decoding-old-software/</guid><description>I&apos;m digging into &apos;Rametook&apos;, an old Ruby project from 2007. My goal is to decode its source to learn how it sends SMS messages over a serial port.</description><pubDate>Fri, 31 Jan 2014 00:00:00 GMT</pubDate></item><item><title>Weekend wrap-up</title><link>https://pyk.sh/posts/2014-02-01-weekend-wrap-up/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-02-01-weekend-wrap-up/</guid><description>Lesson learned from stuff that i read or watch in this weekend</description><pubDate>Sat, 01 Feb 2014 00:00:00 GMT</pubDate></item><item><title>Validation Helper</title><link>https://pyk.sh/posts/2014-02-11-validation-helper/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-02-11-validation-helper/</guid><description>Kept getting a &quot;must be accepted&quot; error in Rails. Here&apos;s my quick fix for using the acceptance validator when you have an actual boolean DB column.</description><pubDate>Tue, 11 Feb 2014 00:00:00 GMT</pubDate></item><item><title>Byten Go</title><link>https://pyk.sh/posts/2014-08-30-byten-go/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-08-30-byten-go/</guid><pubDate>Sat, 30 Aug 2014 00:00:00 GMT</pubDate></item><item><title>Master Procrastination</title><link>https://pyk.sh/posts/2014-08-31-master-procrastination/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-08-31-master-procrastination/</guid><description>A post from when my procrastination was at its worst. I was even writing a new Go package just to avoid a more important project. This was my decision to fix it.</description><pubDate>Sun, 31 Aug 2014 00:00:00 GMT</pubDate></item><item><title>Wacanesia</title><link>https://pyk.sh/posts/2014-09-14-wacanesia/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-09-14-wacanesia/</guid><pubDate>Sun, 14 Sep 2014 00:00:00 GMT</pubDate></item><item><title>Pola Berpikir</title><link>https://pyk.sh/posts/2014-10-12-pola-berpikir/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-10-12-pola-berpikir/</guid><pubDate>Sun, 12 Oct 2014 00:00:00 GMT</pubDate></item><item><title>Mengenal CoreOS</title><link>https://pyk.sh/posts/2014-10-11-mengenal-core-os/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-10-11-mengenal-core-os/</guid><pubDate>Sat, 11 Oct 2014 00:00:00 GMT</pubDate></item><item><title>Gak Bisa Bangun Startup</title><link>https://pyk.sh/posts/2014-11-05-gak-bisa-bangun-startup/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-11-05-gak-bisa-bangun-startup/</guid><pubDate>Wed, 05 Nov 2014 00:00:00 GMT</pubDate></item><item><title>Docker Adalah Solusi</title><link>https://pyk.sh/posts/2014-11-22-docker-adalah-solusi/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-11-22-docker-adalah-solusi/</guid><pubDate>Sat, 22 Nov 2014 00:00:00 GMT</pubDate></item><item><title>Automata</title><link>https://pyk.sh/posts/2014-11-23-automata/</link><guid isPermaLink="true">https://pyk.sh/posts/2014-11-23-automata/</guid><pubDate>Sun, 23 Nov 2014 00:00:00 GMT</pubDate></item><item><title>Kita Bisa Memilih</title><link>https://pyk.sh/posts/2015-01-19-kita-bisa-memilih/</link><guid isPermaLink="true">https://pyk.sh/posts/2015-01-19-kita-bisa-memilih/</guid><pubDate>Mon, 19 Jan 2015 00:00:00 GMT</pubDate></item><item><title>An AI-powered curator</title><link>https://pyk.sh/posts/2015-04-24-an-ai-powered-curator/</link><guid isPermaLink="true">https://pyk.sh/posts/2015-04-24-an-ai-powered-curator/</guid><description>My initial notes on an AI-powered curator to automate newsletters. It&apos;s a look at the early concept, the planned phases, and the first technical challenge.</description><pubDate>Fri, 24 Apr 2015 00:00:00 GMT</pubDate></item><item><title>A definitions of Machine Learning</title><link>https://pyk.sh/posts/2015-04-26-a-definitions-of-machine-learning/</link><guid isPermaLink="true">https://pyk.sh/posts/2015-04-26-a-definitions-of-machine-learning/</guid><description>I was trying to get a clear definition of Machine Learning. This post covers the two that stuck with me, Arthur Samuel&apos;s and Tom Mitchell&apos;s model.</description><pubDate>Sun, 26 Apr 2015 00:00:00 GMT</pubDate></item><item><title>The Rules of Buffer In C</title><link>https://pyk.sh/posts/2015-12-14-the-rules-of-buffer-in-c/</link><guid isPermaLink="true">https://pyk.sh/posts/2015-12-14-the-rules-of-buffer-in-c/</guid><description>C&apos;s strcpy and strcat are risky. Here&apos;s my cheat sheet for using their &apos;n&apos; versions safely to prevent buffer overflows and corrupting memory.</description><pubDate>Mon, 14 Dec 2015 00:00:00 GMT</pubDate></item><item><title>My indent(1) Profile</title><link>https://pyk.sh/posts/2015-12-15-my-indent-1-profile/</link><guid isPermaLink="true">https://pyk.sh/posts/2015-12-15-my-indent-1-profile/</guid><description>To keep my C code style consistent, I rely on indent(1). This post just contains a link to my personal configuration profile for the tool.</description><pubDate>Tue, 15 Dec 2015 00:00:00 GMT</pubDate></item><item><title>Casting Allocation In C</title><link>https://pyk.sh/posts/2015-12-18-casting-allocation-in-c/</link><guid isPermaLink="true">https://pyk.sh/posts/2015-12-18-casting-allocation-in-c/</guid><description>I always used to cast the result of malloc in C. After digging in, I realized it&apos;s not just unneeded, but it can hide serious bugs. Now I do it differently.</description><pubDate>Fri, 18 Dec 2015 00:00:00 GMT</pubDate></item><item><title>This year, I should be better at X</title><link>https://pyk.sh/posts/2016-01-01-this-year-i-should-be-better-at-x/</link><guid isPermaLink="true">https://pyk.sh/posts/2016-01-01-this-year-i-should-be-better-at-x/</guid><pubDate>Fri, 01 Jan 2016 00:00:00 GMT</pubDate></item><item><title>Exit Status In POSIX-compliant Systems</title><link>https://pyk.sh/posts/2016-01-14-exit-status-in-posix-compliant-systems/</link><guid isPermaLink="true">https://pyk.sh/posts/2016-01-14-exit-status-in-posix-compliant-systems/</guid><description>Thinking about how I handle exit statuses in C. On POSIX systems, 0 is success and 1 is failure, so I just use the numbers directly.</description><pubDate>Thu, 14 Jan 2016 00:00:00 GMT</pubDate></item><item><title>Multiple lines string in C</title><link>https://pyk.sh/posts/2016-01-15-multiple-lines-string-in-c/</link><guid isPermaLink="true">https://pyk.sh/posts/2016-01-15-multiple-lines-string-in-c/</guid><description>A quick C tip I learned for cleaner code. Adjacent string literals are automatically joined by the compiler, which is great for multi-line text.</description><pubDate>Fri, 15 Jan 2016 00:00:00 GMT</pubDate></item><item><title>Consistent Build in C</title><link>https://pyk.sh/posts/2016-01-19-consistent-build-in-c/</link><guid isPermaLink="true">https://pyk.sh/posts/2016-01-19-consistent-build-in-c/</guid><description>I wanted a consistent C build, but `-std=c99` was hiding POSIX functions. Here&apos;s a quick look at using `_POSIX_C_SOURCE` to solve that.</description><pubDate>Tue, 19 Jan 2016 00:00:00 GMT</pubDate></item><item><title>Supreme C</title><link>https://pyk.sh/posts/2016-01-22-supreme-c/</link><guid isPermaLink="true">https://pyk.sh/posts/2016-01-22-supreme-c/</guid><description>I&apos;ve been thinking about what C would be like with a Go-style API. This is my early concept for &quot;Supreme C&quot;, a library for high-level, safe I/O.</description><pubDate>Fri, 22 Jan 2016 00:00:00 GMT</pubDate></item><item><title>Jr. Data Scientist</title><link>https://pyk.sh/posts/2016-01-26-jr-data-scientist/</link><guid isPermaLink="true">https://pyk.sh/posts/2016-01-26-jr-data-scientist/</guid><pubDate>Tue, 26 Jan 2016 00:00:00 GMT</pubDate></item><item><title>Debug Trait in Rust</title><link>https://pyk.sh/posts/2016-02-08-debug-trait-in-rust/</link><guid isPermaLink="true">https://pyk.sh/posts/2016-02-08-debug-trait-in-rust/</guid><description>A quick reference for making structs printable in Rust. It shows how to use the Debug trait with the derive macro and how to implement it manually.</description><pubDate>Mon, 08 Feb 2016 00:00:00 GMT</pubDate></item><item><title>Scala on Debian</title><link>https://pyk.sh/posts/2016-04-09-scala-on-debian/</link><guid isPermaLink="true">https://pyk.sh/posts/2016-04-09-scala-on-debian/</guid><description>I started digging into Scala and needed to set up my environment. This is my quick cheat sheet for downloading and installing Scala 2.12 on Debian via the command line.</description><pubDate>Sat, 09 Apr 2016 00:00:00 GMT</pubDate></item><item><title>Work School Life Balance</title><link>https://pyk.sh/posts/2016-04-12-work-school-life-balance/</link><guid isPermaLink="true">https://pyk.sh/posts/2016-04-12-work-school-life-balance/</guid><description>My experiment with a simple time management strategy. Just logging my thoughts on how planning and breaking down tasks is helping me find some balance.</description><pubDate>Tue, 12 Apr 2016 00:00:00 GMT</pubDate></item><item><title>Anonymous Function in Scala</title><link>https://pyk.sh/posts/2016-05-06-anonymous-function-in-scala/</link><guid isPermaLink="true">https://pyk.sh/posts/2016-05-06-anonymous-function-in-scala/</guid><description>A note on a Scala concept that confused me at first. This is my quick breakdown of anonymous functions and how they&apos;re used in Apache Spark.</description><pubDate>Fri, 06 May 2016 00:00:00 GMT</pubDate></item><item><title>printf in C</title><link>https://pyk.sh/posts/2016-06-05-printf-in-c/</link><guid isPermaLink="true">https://pyk.sh/posts/2016-06-05-printf-in-c/</guid><description>My personal log on a classic C vulnerability. This post is a quick cheat sheet on using printf safely to avoid format string exploits.</description><pubDate>Sun, 05 Jun 2016 00:00:00 GMT</pubDate></item><item><title>Hand Signals Recognition using Convolutional Neural Network</title><link>https://pyk.sh/posts/2017-01-08-hand-signals-recognition-using-convolutional-neural-network/</link><guid isPermaLink="true">https://pyk.sh/posts/2017-01-08-hand-signals-recognition-using-convolutional-neural-network/</guid><description>My experiment with building a hand signal recognizer using a CNN. This is my log on collecting data with a webcam and implementing a LeNet-5-style model in TensorFlow.</description><pubDate>Sun, 08 Jan 2017 00:00:00 GMT</pubDate></item><item><title>Whitespace Tokenizer in Rust</title><link>https://pyk.sh/posts/2016-12-26-whitespace-tokenizer-in-rust/</link><guid isPermaLink="true">https://pyk.sh/posts/2016-12-26-whitespace-tokenizer-in-rust/</guid><description>My note-to-self for writing a UTF-8 tokenizer in Rust. The trick is reading byte-by-byte and only checking for whitespace on single-byte chars.</description><pubDate>Mon, 26 Dec 2016 00:00:00 GMT</pubDate></item><item><title>Instrument Sanic Application</title><link>https://pyk.sh/posts/2018-04-02-instrument-sanic-application/</link><guid isPermaLink="true">https://pyk.sh/posts/2018-04-02-instrument-sanic-application/</guid><description>Setting up a monitoring stack for Sanic. This is my quick reference for hooking up a Prometheus Counter via middleware to track all incoming requests.</description><pubDate>Mon, 02 Apr 2018 00:00:00 GMT</pubDate></item><item><title>6 months working at kumparan</title><link>https://pyk.sh/posts/2018-07-26-6-months-working-at-kumparan/</link><guid isPermaLink="true">https://pyk.sh/posts/2018-07-26-6-months-working-at-kumparan/</guid><pubDate>Thu, 26 Jul 2018 00:00:00 GMT</pubDate></item><item><title>Asynchronous Python at Kumparan</title><link>https://pyk.sh/posts/2018-11-05-asynchronous-python-at-kumparan/</link><guid isPermaLink="true">https://pyk.sh/posts/2018-11-05-asynchronous-python-at-kumparan/</guid><pubDate>Mon, 05 Nov 2018 00:00:00 GMT</pubDate></item><item><title>Hot Reload in AWS Lambda</title><link>https://pyk.sh/posts/2020-04-26-hot-reload-in-aws-lambda/</link><guid isPermaLink="true">https://pyk.sh/posts/2020-04-26-hot-reload-in-aws-lambda/</guid><description>My sam local `start-api` wasn&apos;t hot reloading. This is my quick note on using `-t template.yaml` to fix it and `--skip-pull-image` to make it faster.</description><pubDate>Sun, 26 Apr 2020 00:00:00 GMT</pubDate></item><item><title>Evaluasi Team Lead</title><link>https://pyk.sh/posts/2021-01-14-evaluasi-team-lead/</link><guid isPermaLink="true">https://pyk.sh/posts/2021-01-14-evaluasi-team-lead/</guid><pubDate>Thu, 14 Jan 2021 00:00:00 GMT</pubDate></item><item><title>dapptools on macOS M1</title><link>https://pyk.sh/posts/2022-03-19-dapptools-on-mac-os-m1/</link><guid isPermaLink="true">https://pyk.sh/posts/2022-03-19-dapptools-on-mac-os-m1/</guid><description>My notes on installing the dapptools on M1 Mac. The process involved running under Rosetta and using a specific version of Nix.</description><pubDate>Sat, 19 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Vanity address on macOS M1</title><link>https://pyk.sh/posts/2022-04-12-vanity-address-on-mac-os-m1/</link><guid isPermaLink="true">https://pyk.sh/posts/2022-04-12-vanity-address-on-mac-os-m1/</guid><description>My personal reference for building the profanity tool from source on an M1 Mac. A security note, it&apos;s broken, so please don&apos;t use it for wallets.</description><pubDate>Tue, 12 Apr 2022 00:00:00 GMT</pubDate></item><item><title>Same address deployments with Foundry</title><link>https://pyk.sh/posts/2022-04-13-same-address-deployments-with-foundry/</link><guid isPermaLink="true">https://pyk.sh/posts/2022-04-13-same-address-deployments-with-foundry/</guid><description>My notes on how to deploy a contract to the same address on multiple chains. The trick is just to use a fresh wallet with the same nonce (0) everywhere.</description><pubDate>Wed, 13 Apr 2022 00:00:00 GMT</pubDate></item><item><title>Fix Cannot Redefine Property &apos;x&apos; TypeError in Jest</title><link>https://pyk.sh/posts/2022-06-22-fix-cannot-redefine-property-x-type-error-in-jest/</link><guid isPermaLink="true">https://pyk.sh/posts/2022-06-22-fix-cannot-redefine-property-x-type-error-in-jest/</guid><description>Ran into the &quot;Cannot redefine property&quot; `TypeError` in Jest. This is my log on fixing it with `jest.mock` or a local barrel file for `spyOn`.</description><pubDate>Wed, 22 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Coverage Report</title><link>https://pyk.sh/posts/2022-09-17-coverage-report/</link><guid isPermaLink="true">https://pyk.sh/posts/2022-09-17-coverage-report/</guid><description>Codecov felt slow for my monorepo, so I built my own coverage report site. This is my log on using a simple Node script to collect Jest&apos;s HTML reports.</description><pubDate>Sat, 17 Sep 2022 00:00:00 GMT</pubDate></item><item><title>Shareable Prettier Configuration</title><link>https://pyk.sh/posts/2022-09-26-shareable-prettier-configuration/</link><guid isPermaLink="true">https://pyk.sh/posts/2022-09-26-shareable-prettier-configuration/</guid><description>A quick reference for creating a shareable Prettier config. Just a simple NPM package with an index.js that exports all my formatting options.</description><pubDate>Mon, 26 Sep 2022 00:00:00 GMT</pubDate></item><item><title>Article Schema Markup for Eleventy</title><link>https://pyk.sh/posts/2022-09-28-article-schema-markup-for-eleventy/</link><guid isPermaLink="true">https://pyk.sh/posts/2022-09-28-article-schema-markup-for-eleventy/</guid><description>This is how I added the JSON-LD Article Schema to my Eleventy blog. My notes on installing and configuring the eleventy-plugin-schema.</description><pubDate>Wed, 28 Sep 2022 00:00:00 GMT</pubDate></item><item><title>ECMAScript and CommonJS Libraries</title><link>https://pyk.sh/posts/2022-10-02-ecma-script-and-common-js-libraries/</link><guid isPermaLink="true">https://pyk.sh/posts/2022-10-02-ecma-script-and-common-js-libraries/</guid><description>A quick reference for building a single TypeScript library for both ESM and CJS. Here&apos;s the `package.json` exports and tsconfig setup I use.</description><pubDate>Sun, 02 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Shareable TypeScript Configuration</title><link>https://pyk.sh/posts/2022-10-03-shareable-type-script-configuration/</link><guid isPermaLink="true">https://pyk.sh/posts/2022-10-03-shareable-type-script-configuration/</guid><description>My personal notes on creating a reusable tsconfig for my TypeScript projects. The trick is to publish the base config files as a simple NPM package.</description><pubDate>Mon, 03 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Get ETH Balance using Ethers.js</title><link>https://pyk.sh/posts/2022-10-18-get-eth-balance-using-ethers-js/</link><guid isPermaLink="true">https://pyk.sh/posts/2022-10-18-get-eth-balance-using-ethers-js/</guid><description>My quick reference for fetching an ETH balance using Ethers.js. It&apos;s way easier than calling the `eth_getBalance` RPC and converting the hex value.</description><pubDate>Tue, 18 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Multichain Testing with Foundry</title><link>https://pyk.sh/posts/2023-09-14-multichain-testing-with-foundry/</link><guid isPermaLink="true">https://pyk.sh/posts/2023-09-14-multichain-testing-with-foundry/</guid><description>Figuring out how to test on multiple chains with Foundry. My notes on using vm.createFork to set up different network forks inside my test files.</description><pubDate>Thu, 14 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Transparent vs UUPS Proxies</title><link>https://pyk.sh/posts/2023-09-23-transparent-vs-uups-proxies/</link><guid isPermaLink="true">https://pyk.sh/posts/2023-09-23-transparent-vs-uups-proxies/</guid><description>A quick reference for Solidity proxy patterns. This is my breakdown of Transparent vs. UUPS, comparing gas overhead and the location of the upgrade logic.</description><pubDate>Sat, 23 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Size of Solidity Variables</title><link>https://pyk.sh/posts/2023-09-28-size-of-solidity-variables/</link><guid isPermaLink="true">https://pyk.sh/posts/2023-09-28-size-of-solidity-variables/</guid><description>Just a simple note to myself on the size of common Solidity types. A quick reference table for when I&apos;m writing or auditing smart contracts.</description><pubDate>Thu, 28 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Rust SeaORM Tables</title><link>https://pyk.sh/posts/2024-01-04-rust-sea-orm-tables/</link><guid isPermaLink="true">https://pyk.sh/posts/2024-01-04-rust-sea-orm-tables/</guid><description>I needed a way to manage database tables in Rust. These are my notes on using sea-orm-cli to set up and run my first migration with SeaORM.</description><pubDate>Thu, 04 Jan 2024 00:00:00 GMT</pubDate></item><item><title>“?” Operator in Rust</title><link>https://pyk.sh/posts/2024-01-03-operator-in-rust/</link><guid isPermaLink="true">https://pyk.sh/posts/2024-01-03-operator-in-rust/</guid><description>A quick note to myself on Rust&apos;s `?` operator. It&apos;s a cleaner way to handle Result types by propagating errors instead of using a match block.</description><pubDate>Wed, 03 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Rust SeaORM Actions</title><link>https://pyk.sh/posts/2024-01-05-rust-sea-orm-actions/</link><guid isPermaLink="true">https://pyk.sh/posts/2024-01-05-rust-sea-orm-actions/</guid><description>My personal cheat sheet for basic SeaORM operations. It&apos;s my reference for how to insert, select, update, and delete a simple row in Rust.</description><pubDate>Fri, 05 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Fix Deserialize in Rust</title><link>https://pyk.sh/posts/2024-01-06-fix-deserialize-in-rust/</link><guid isPermaLink="true">https://pyk.sh/posts/2024-01-06-fix-deserialize-in-rust/</guid><description>Fixing the &quot;cannot find derive macro Deserialize&quot; error with serde in Rust. A quick note that the derive feature needs to be enabled in Cargo.toml.</description><pubDate>Sat, 06 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Load .env in Rust</title><link>https://pyk.sh/posts/2024-01-07-load-env-in-rust/</link><guid isPermaLink="true">https://pyk.sh/posts/2024-01-07-load-env-in-rust/</guid><description>My personal log on loading .env files in Rust. I use the envy crate to parse variables into a struct, which makes handling config much easier.</description><pubDate>Sun, 07 Jan 2024 00:00:00 GMT</pubDate></item><item><title>VSCode for Foundry</title><link>https://pyk.sh/posts/2024-01-08-vs-code-for-foundry/</link><guid isPermaLink="true">https://pyk.sh/posts/2024-01-08-vs-code-for-foundry/</guid><description>Setting up VSCode for a new Foundry project. This is my quick reference for getting remappings, the forge formatter, and the solc compiler version right.</description><pubDate>Mon, 08 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Fix &quot;driver: bad connection&quot; in golang-migrate ClickHouse</title><link>https://pyk.sh/posts/2024-02-15-fix-driver-bad-connection-in-golang-migrate-click-house/</link><guid isPermaLink="true">https://pyk.sh/posts/2024-02-15-fix-driver-bad-connection-in-golang-migrate-click-house/</guid><description>Spent a bit debugging a `bad connection` error with golang-migrate and ClickHouse. This is my note to self, always check for `secure=true` with cloud DBs.</description><pubDate>Thu, 15 Feb 2024 00:00:00 GMT</pubDate></item><item><title>Fix &quot;inflate failed&quot; in ClickHouse JS</title><link>https://pyk.sh/posts/2024-02-19-fix-inflate-failed-in-click-house-js/</link><guid isPermaLink="true">https://pyk.sh/posts/2024-02-19-fix-inflate-failed-in-click-house-js/</guid><description>I ran into a &quot;inflate failed buffer error&quot; with ClickHouse.js. The fix was easy, check if my data arrays have items before trying to insert them.</description><pubDate>Mon, 19 Feb 2024 00:00:00 GMT</pubDate></item><item><title>Remix SWR</title><link>https://pyk.sh/posts/2024-05-03-remix-swr/</link><guid isPermaLink="true">https://pyk.sh/posts/2024-05-03-remix-swr/</guid><description>Figuring out caching mechanism for my Remix app. This post is my personal cheat sheet for setting SWR headers for real-time, daily, and static data.</description><pubDate>Fri, 03 May 2024 00:00:00 GMT</pubDate></item><item><title>Ammalgam Fuzzing Campaign</title><link>https://pyk.sh/posts/2025-07-10-ammalgam-fuzzing-campaign/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-07-10-ammalgam-fuzzing-campaign/</guid><pubDate>Thu, 10 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Solidity Parser</title><link>https://pyk.sh/posts/2025-07-11-solidity-parser/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-07-11-solidity-parser/</guid><description>My notes on solidity parser</description><pubDate>Fri, 11 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Cap Fuzzing Campaign</title><link>https://pyk.sh/posts/2025-07-12-cap-fuzzing-campaign/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-07-12-cap-fuzzing-campaign/</guid><description>My notes when fuzzing the Cap protocol</description><pubDate>Sat, 12 Jul 2025 00:00:00 GMT</pubDate></item><item><title>xdgdir v0.8.0</title><link>https://pyk.sh/posts/2025-09-15-xdgdir-v0-8-0/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-09-15-xdgdir-v0-8-0/</guid><description>I got sidetracked building a tool and ended up writing a tiny Rust crate to find XDG paths. These are my notes on how I built xdgdir.</description><pubDate>Mon, 15 Sep 2025 00:00:00 GMT</pubDate></item><item><title>envfmt v0.1.0</title><link>https://pyk.sh/posts/2025-09-14-envfmt-v0-1-0/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-09-14-envfmt-v0-1-0/</guid><description>I needed to expand environment variables for another project, so I built my first Rust crate. This is my log on envfmt and using traits for testing.</description><pubDate>Sun, 14 Sep 2025 00:00:00 GMT</pubDate></item><item><title>git-gen Dev Log #1</title><link>https://pyk.sh/posts/2025-09-22-git-gen-dev-log-1/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-09-22-git-gen-dev-log-1/</guid><description>I&apos;m building a CLI to write better git commits. This is my dev log on getting the first messy, working version up and running with Gemini.</description><pubDate>Mon, 22 Sep 2025 09:15:45 GMT</pubDate></item><item><title>Site Cleanup</title><link>https://pyk.sh/posts/2025-09-22-site-cleanup/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-09-22-site-cleanup/</guid><description>Decided to get back to basics with this site. I removed a bunch of old sections and code, and now it&apos;s just plain HTML/CSS with system fonts.</description><pubDate>Mon, 22 Sep 2025 00:00:00 GMT</pubDate></item><item><title>My Custom Code Block Setup in Astro</title><link>https://pyk.sh/posts/2025-09-30-my-custom-code-block-setup-in-astro/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-09-30-my-custom-code-block-setup-in-astro/</guid><description>My notes on extending Astro&apos;s code blocks. I wrote a Shiki transformer to read metadata from the code fence and a rehype plugin to add the UI.</description><pubDate>Tue, 30 Sep 2025 13:46:00 GMT</pubDate></item><item><title>Why Fonts Look Crispier on iOS</title><link>https://pyk.sh/posts/2025-09-30-why-fonts-look-crispier-on-i-os/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-09-30-why-fonts-look-crispier-on-i-os/</guid><description>I was annoyed that my site&apos;s font looked different on my iPhone and Mac. The fix was one simple Tailwind class antialiased. Here&apos;s why it works.</description><pubDate>Tue, 30 Sep 2025 03:00:00 GMT</pubDate></item><item><title>Intersection Observer over Scroll Listener</title><link>https://pyk.sh/posts/2025-10-01-intersection-observer-over-scroll-listener/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-10-01-intersection-observer-over-scroll-listener/</guid><description>My site&apos;s navbar felt janky with a scroll listener. I fixed it with the Intersection Observer API. Here&apos;s how I used it for a smoother scroll effect.</description><pubDate>Wed, 01 Oct 2025 05:04:14 GMT</pubDate></item><item><title>envfmt v1.0.0</title><link>https://pyk.sh/posts/2025-10-08-envfmt-v1-0-0/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-10-08-envfmt-v1-0-0/</guid><description>I just released envfmt v1.0.0. The big change was removing all dependencies to make it a tiny, stable lib. Here are my notes on the update.</description><pubDate>Wed, 08 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Tracking Pagefind Search with Umami</title><link>https://pyk.sh/posts/2025-10-15-tracking-pagefind-search-with-umami/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-10-15-tracking-pagefind-search-with-umami/</guid><description>I wanted to see what people search for on my site. Here&apos;s how I connected Pagefind to Umami with a simple `MutationObserver` trick.</description><pubDate>Wed, 15 Oct 2025 09:17:20 GMT</pubDate></item><item><title>A Plan Is Not a Strategy</title><link>https://pyk.sh/posts/2025-10-16-a-plan-is-not-a-strategy/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-10-16-a-plan-is-not-a-strategy/</guid><description>My takeaways from a Roger Martin HBR video on plan vs. strategy. It showed me I was making to-do lists instead of figuring out how to win.</description><pubDate>Thu, 16 Oct 2025 01:56:37 GMT</pubDate></item><item><title>My Strategy for Winning</title><link>https://pyk.sh/posts/2025-10-20-my-strategy-for-winning/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-10-20-my-strategy-for-winning/</guid><description>I&apos;m building a custom security research env in VS Code to find more bugs, integrating Foundry and Medusa to make my workflow faster.</description><pubDate>Mon, 20 Oct 2025 03:15:08 GMT</pubDate></item><item><title>Fixing Astro&apos;s &apos;Import Declaration Conflicts&apos; Error</title><link>https://pyk.sh/posts/2025-10-21-astro-import-conflict/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-10-21-astro-import-conflict/</guid><description>I hit an &apos;Import declaration conflicts&apos; error in Astro. My page and a component had the same name. Here&apos;s how I fixed it with an import alias.</description><pubDate>Mon, 20 Oct 2025 21:44:12 GMT</pubDate></item><item><title>Fixing the Unresolved Dynamic Import in Astro</title><link>https://pyk.sh/posts/2025-10-21-vite-dynamic-import-trick/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-10-21-vite-dynamic-import-trick/</guid><description>Vite&apos;s bundler was too smart for its own good and kept failing my dynamic import in Astro. This is the one-line trick I used to outsmart it.</description><pubDate>Mon, 20 Oct 2025 23:44:12 GMT</pubDate></item><item><title>Building VS Code Extensions with Bun and Mise</title><link>https://pyk.sh/posts/2025-10-23-building-vscode-extension-with-bun-and-mise/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-10-23-building-vscode-extension-with-bun-and-mise/</guid><description>My notes on building a VS Code extension using Bun and Mise. Covers build scripts, tasks, and a macOS fix for zsh `PATH` issues.</description><pubDate>Thu, 23 Oct 2025 09:08:57 GMT</pubDate></item><item><title>cmdtest v0.2.0</title><link>https://pyk.sh/posts/2025-11-07-cmdtest-v0-2-0/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-11-07-cmdtest-v0-2-0/</guid><description>I&apos;m sharing my experience building `cmdtest`, a Zig package for testing CLI apps. This post covers Zig I/O, comptime vs runtime, and `build.zig` import quirks.</description><pubDate>Fri, 07 Nov 2025 05:18:23 GMT</pubDate></item><item><title>Brainstorming &quot;Zig Object Validator&quot; API</title><link>https://pyk.sh/posts/2025-11-08-brainstorming-zov-api/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-11-08-brainstorming-zov-api/</guid><description>My journey designing a Zod-like validation library in Zig. A dive into `comptime`, type generation, and the trade-offs for good tooling support.</description><pubDate>Sat, 08 Nov 2025 09:18:24 GMT</pubDate></item><item><title>Memory Allocation in Zig: Reading `stdout`</title><link>https://pyk.sh/posts/2025-11-17-memory-allocation-zig-reading-stdout/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-11-17-memory-allocation-zig-reading-stdout/</guid><description>Working on `cmdtest`, my Zig CLI testing tool, I ran into the problem of reading `stdio` from long-lived processes. This is my dive into why memory allocation is key for handling program output.</description><pubDate>Mon, 17 Nov 2025 02:53:54 GMT</pubDate></item><item><title>I Accidentally Kept a Pointer to the Stack in Zig</title><link>https://pyk.sh/posts/2025-11-18-story-time-i-accidentally-kept-a-pointer-to-the-stack-in-zig/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-11-18-story-time-i-accidentally-kept-a-pointer-to-the-stack-in-zig/</guid><description>A classic stack-use-after-return bug I ran into with Zig. I was trying to be clever and pass a reader by reference, but ended up with a dangling pointer.</description><pubDate>Tue, 18 Nov 2025 05:25:21 GMT</pubDate></item><item><title>Fixing Zig Microbenchmark Accuracy</title><link>https://pyk.sh/posts/2025-12-07-bench-fixing-microbenchmark-accuracy-in-zig/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-12-07-bench-fixing-microbenchmark-accuracy-in-zig/</guid><description>Measuring execution time under `1ns` is hard. This post covers how I fixed accuracy issues in my Zig tool by running the function in batches.</description><pubDate>Sun, 07 Dec 2025 22:10:54 GMT</pubDate></item><item><title>Fixing Zig benchmark where `std.mem.doNotOptimizeAway` was ignored</title><link>https://pyk.sh/posts/2025-12-08-bench-fixing-constant-folding/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-12-08-bench-fixing-constant-folding/</guid><description>I spent a while debugging a benchmark that was impossibly fast. Turns out LLVM is too smart. I fixed it by forcing runtime reads with volatile.</description><pubDate>Mon, 08 Dec 2025 10:17:36 GMT</pubDate></item><item><title>Writing a Type-Safe Linux Perf Interface in Zig</title><link>https://pyk.sh/posts/2025-12-11-type-safe-linux-perf-event-open-in-zig/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-12-11-type-safe-linux-perf-event-open-in-zig/</guid><description>I&apos;m building a benchmarking tool for Zig and needed CPU counters. This is how I wrapped Linux&apos;s `perf_event_open` to be type-safe with comptime.</description><pubDate>Thu, 11 Dec 2025 02:51:44 GMT</pubDate></item><item><title>Trying Out SIMD &amp; SWAR in Zig</title><link>https://pyk.sh/posts/2025-12-14-trying-out-simd-swar-in-zig/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-12-14-trying-out-simd-swar-in-zig/</guid><description>Experimenting with low-level optimizations in Zig. I wrote a benchmark to race SIMD vectors against bit-twiddling hacks for skipping JSON whitespace.</description><pubDate>Sun, 14 Dec 2025 10:19:25 GMT</pubDate></item><item><title>Writing a mockable Filesystem trait in Rust without RefCell</title><link>https://pyk.sh/posts/2025-12-15-writing-mockable-fs-in-rust-without-refcell/</link><guid isPermaLink="true">https://pyk.sh/posts/2025-12-15-writing-mockable-fs-in-rust-without-refcell/</guid><description>I needed to test my CLI tool without writing to disk. I started with a messy `RefCell` setup but refactored it to use proper Rust borrowing instead.</description><pubDate>Mon, 15 Dec 2025 10:40:56 GMT</pubDate></item><item><title>Security Audit Review: A Reward Accounting Bug in Stakehouse</title><link>https://pyk.sh/posts/2026-03-04-reward-accounting-bug-in-stakehouse/</link><guid isPermaLink="true">https://pyk.sh/posts/2026-03-04-reward-accounting-bug-in-stakehouse/</guid><description>I&apos;m reviewing past audit findings to build a personal checklist for future audits. This post analyzes a reward accounting bug in Stakehouse where old stakers could steal new deposits.</description><pubDate>Wed, 04 Mar 2026 06:14:07 GMT</pubDate></item><item><title>About</title><link>https://pyk.sh/posts/about/</link><guid isPermaLink="true">https://pyk.sh/posts/about/</guid><description>Security Researcher</description><pubDate>Wed, 09 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Welcome to my website</title><link>https://pyk.sh/posts/home/</link><guid isPermaLink="true">https://pyk.sh/posts/home/</guid><description>Security Researcher</description><pubDate>Wed, 09 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Projects</title><link>https://pyk.sh/posts/projects/</link><guid isPermaLink="true">https://pyk.sh/posts/projects/</guid><description>Security Researcher</description><pubDate>Wed, 09 Jul 2025 00:00:00 GMT</pubDate></item></channel></rss>