<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: Snawoot</title><link>https://news.ycombinator.com/user?id=Snawoot</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 26 Sep 2026 05:27:10 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Snawoot" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Tlscookie – hidden cookies in TLS tickets]]></title><description><![CDATA[
<p>Article URL: <a href="https://tlscookie.xx.kg/">https://tlscookie.xx.kg/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48480918">https://news.ycombinator.com/item?id=48480918</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 10 Jun 2026 18:49:29 +0000</pubDate><link>https://tlscookie.xx.kg/</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=48480918</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48480918</guid></item><item><title><![CDATA[New comment by Snawoot in "Ask HN: Who wants to be hired? (June 2026)"]]></title><description><![CDATA[
<p>Location: Ukraine<p>Remote: yes<p>Willing to relocate: no<p>Technologies: Go, Python, JS, C, PostgreSQL, MySQL, MongoDB, Redis, Linux, Docker, kubernetes, ...<p>Résumé/CV: <a href="https://www.linkedin.com/in/vladislav-yarmak/" rel="nofollow">https://www.linkedin.com/in/vladislav-yarmak/</a><p>Email: vladislav-ex-hncv@vm-0.com<p>Software engineer with about 15 years of experience, former CTO, VPE, Systems Architect. My key skills are in backend development, infrastructure, computer networks.</p>
]]></description><pubDate>Tue, 02 Jun 2026 13:45:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48370209</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=48370209</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48370209</guid></item><item><title><![CDATA[Show HN: Weakmap – weak map for Go without use of finalizers]]></title><description><![CDATA[
<p>Article URL: <a href="https://codeberg.org/yarmak/weakmap">https://codeberg.org/yarmak/weakmap</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47643474">https://news.ycombinator.com/item?id=47643474</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 04 Apr 2026 21:16:24 +0000</pubDate><link>https://codeberg.org/yarmak/weakmap</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=47643474</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47643474</guid></item><item><title><![CDATA[New comment by Snawoot in "Ask HN: Who wants to be hired? (April 2026)"]]></title><description><![CDATA[
<p><p><pre><code>  Location: Ukraine
  Remote: yes
  Willing to relocate: no
  Technologies: Go, Python, JS, C, PostgreSQL, MySQL, MongoDB, Redis, Linux, Docker, kubernetes, ...
  Résumé/CV: https://www.linkedin.com/in/vladislav-yarmak/
  Email: vladislav-ex-hncv@vm-0.com
</code></pre>
Software engineer with about 15 years of experience, former CTO, VPE, Systems Architect. My key skills are in backend development, infrastructure, computer networks.</p>
]]></description><pubDate>Fri, 03 Apr 2026 14:26:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47627029</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=47627029</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47627029</guid></item><item><title><![CDATA[Making Services with Go Right Way]]></title><description><![CDATA[
<p>Article URL: <a href="https://snawoot.github.io/go_web_right_way.html">https://snawoot.github.io/go_web_right_way.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47594518">https://news.ycombinator.com/item?id=47594518</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 31 Mar 2026 22:51:20 +0000</pubDate><link>https://snawoot.github.io/go_web_right_way.html</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=47594518</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47594518</guid></item><item><title><![CDATA[New comment by Snawoot in "Slovenia becomes first EU country to introduce fuel rationing"]]></title><description><![CDATA[
<p>Hexane is directly used as a solvent for edible cooking oil refining.</p>
]]></description><pubDate>Sat, 28 Mar 2026 02:10:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47550834</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=47550834</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47550834</guid></item><item><title><![CDATA[New comment by Snawoot in "Dumbproxy 1.42.0 released with TrustTunnel support"]]></title><description><![CDATA[
<p>TrustTunnel - <a href="https://trusttunnel.org/" rel="nofollow">https://trusttunnel.org/</a></p>
]]></description><pubDate>Mon, 09 Feb 2026 14:50:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46945826</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=46945826</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46945826</guid></item><item><title><![CDATA[Dumbproxy 1.42.0 released with TrustTunnel support]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/SenseUnit/dumbproxy/releases/tag/v1.42.0">https://github.com/SenseUnit/dumbproxy/releases/tag/v1.42.0</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46945825">https://news.ycombinator.com/item?id=46945825</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Mon, 09 Feb 2026 14:50:18 +0000</pubDate><link>https://github.com/SenseUnit/dumbproxy/releases/tag/v1.42.0</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=46945825</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46945825</guid></item><item><title><![CDATA[HTTP-over-TLS proxy in a single command]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/Snawoot/easy-dp">https://github.com/Snawoot/easy-dp</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46482510">https://news.ycombinator.com/item?id=46482510</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 03 Jan 2026 22:46:52 +0000</pubDate><link>https://github.com/Snawoot/easy-dp</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=46482510</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46482510</guid></item><item><title><![CDATA[New comment by Snawoot in "Ask HN: Who wants to be hired? (January 2026)"]]></title><description><![CDATA[
<p><p><pre><code>  Location: Ukraine
  Remote: yes
  Willing to relocate: no
  Technologies: Go, Python, JS, C, PostgreSQL, MySQL, MongoDB, Redis, Linux, Docker, kubernetes, ...
  Résumé/CV: linked here https://snawoot.github.io/
  Email: specified here https://snawoot.github.io/
</code></pre>
Most recent job was CTO at crypto/VPN startup and I was working on network and security stuff in general for about last 10 years. I'm open to other fields and roles, though.</p>
]]></description><pubDate>Sat, 03 Jan 2026 16:59:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46478874</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=46478874</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46478874</guid></item><item><title><![CDATA[Show HN: Secache – Sampling Eviction Cache]]></title><description><![CDATA[
<p>I'd like to share a curious cache implementation I recently came up with: <a href="https://pkg.go.dev/github.com/Snawoot/secache" rel="nofollow">https://pkg.go.dev/github.com/Snawoot/secache</a><p>It's a small (<200 LOC) simple cache implementation. What makes it curious is how it approaches item expiration. Usually in-memory cache libraries either scan entire key space from time to time or maintain priority queue to kick out oldest items. This library handles item expiration differently: on each new item addition it performs fixed small number of eviction attempts against keys selected randomly. This way it is able to maintain stable high ratio of valid elements in cache.<p>What's more important is that validity of item is decided by user-provided function. That allows to bring in your own notion of item validity: item age, frequency of the item use, internal state of shared object and so on. E.g. I use it, among other things, to evict per-user instances of "golang.com/x/time/rate".Limiter as soon as token bucket recovered to initial state and limiter has no shared lock being held on it.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46180662">https://news.ycombinator.com/item?id=46180662</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 07 Dec 2025 10:22:22 +0000</pubDate><link>https://pkg.go.dev/github.com/Snawoot/secache</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=46180662</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46180662</guid></item><item><title><![CDATA[PPP-over-HTTP/2: Having Fun with dumbproxy and pppd]]></title><description><![CDATA[
<p>Article URL: <a href="https://snawoot.github.io/ppp-over-http2/">https://snawoot.github.io/ppp-over-http2/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45961165">https://news.ycombinator.com/item?id=45961165</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 18 Nov 2025 03:44:43 +0000</pubDate><link>https://snawoot.github.io/ppp-over-http2/</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=45961165</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45961165</guid></item><item><title><![CDATA[New comment by Snawoot in "Consistent hashing"]]></title><description><![CDATA[
<p>I also double that rendezvous hashing suggestion. Article mentions that it has O(n) time where n is number of nodes. I made a library[1] which makes rendezvous hashing more practical for a larger number of nodes (or weight shares), making it O(1) amortized running time with a bit of tradeoff: distributed elements are pre-aggregated into clusters (slots) before passing them through HRW.<p>[1]: <a href="https://pkg.go.dev/github.com/SenseUnit/ahrw" rel="nofollow">https://pkg.go.dev/github.com/SenseUnit/ahrw</a></p>
]]></description><pubDate>Fri, 03 Oct 2025 13:44:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=45462953</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=45462953</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45462953</guid></item><item><title><![CDATA[New comment by Snawoot in "Ask HN: What is nowadays (opensource) way of converting HTML to PDF?"]]></title><description><![CDATA[
<p>chrome --headless --disable-gpu --print-to-pdf <a href="https://example.com" rel="nofollow">https://example.com</a></p>
]]></description><pubDate>Wed, 01 Oct 2025 15:39:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=45439054</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=45439054</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45439054</guid></item><item><title><![CDATA[New comment by Snawoot in "Requiem for a Hash Function, or: How I learned to love package maphash"]]></title><description><![CDATA[
<p>I've made a couple of modules which allow canonicalize maps and slices of comparable elements, making their canonical handles also comparable:<p>* <a href="https://github.com/Snawoot/uniqueslice" rel="nofollow">https://github.com/Snawoot/uniqueslice</a><p>* <a href="https://github.com/Snawoot/uniquemap" rel="nofollow">https://github.com/Snawoot/uniquemap</a></p>
]]></description><pubDate>Sat, 27 Sep 2025 19:52:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=45398825</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=45398825</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45398825</guid></item><item><title><![CDATA[Dumbproxy just got SOCKS5 support]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/SenseUnit/dumbproxy/releases/tag/v1.31.0">https://github.com/SenseUnit/dumbproxy/releases/tag/v1.31.0</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45398420">https://news.ycombinator.com/item?id=45398420</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 27 Sep 2025 18:49:34 +0000</pubDate><link>https://github.com/SenseUnit/dumbproxy/releases/tag/v1.31.0</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=45398420</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45398420</guid></item><item><title><![CDATA[New comment by Snawoot in "I was surprised by how simple an allocator is"]]></title><description><![CDATA[
<p>I think I found some solution for arenas in Go: <a href="https://pkg.go.dev/github.com/Snawoot/freelist" rel="nofollow">https://pkg.go.dev/github.com/Snawoot/freelist</a><p>Has some shortcomings, but I think it should work.</p>
]]></description><pubDate>Sun, 22 Jun 2025 21:50:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=44350599</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=44350599</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44350599</guid></item><item><title><![CDATA[New comment by Snawoot in "Show HN: Unregistry – “docker push” directly to servers without a registry"]]></title><description><![CDATA[
<p>How do docker contexts help with the transfer of image between hosts?</p>
]]></description><pubDate>Thu, 19 Jun 2025 00:14:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=44314359</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=44314359</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44314359</guid></item><item><title><![CDATA[New comment by Snawoot in "O(n) vs. O(n^2) Startups"]]></title><description><![CDATA[
<p>> What ever happened to providing a good service?<p>I'm getting an impression it's just not profitable enough. For many years I get a feeling that business is considered sound only if it is superprofitable (not exactly the right term, but still) in order to cover all losses.<p>Probably it's because of market competition required to be at least noticed. Some companies' spendings for marketing are greater than for R&D, production and operations combined. Maybe we got ourselves into a situation where everywhere competing for low-hanging fruits or trying to make customer believe it's the service they need while all of it doesn't really overlap with real society needs.</p>
]]></description><pubDate>Sun, 18 May 2025 20:25:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=44024072</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=44024072</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44024072</guid></item><item><title><![CDATA[New comment by Snawoot in "Leeks and Leaks – Daniel.haxx.se"]]></title><description><![CDATA[
<p>Side note: redirection of .onion domain to Tor proxy is how proxy routing with JS script illustrated by example in dumbproxy docs: <a href="https://github.com/SenseUnit/dumbproxy?tab=readme-ov-file#upstream-proxy-selection-by-js-script">https://github.com/SenseUnit/dumbproxy?tab=readme-ov-file#up...</a></p>
]]></description><pubDate>Fri, 16 May 2025 11:39:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=44004154</link><dc:creator>Snawoot</dc:creator><comments>https://news.ycombinator.com/item?id=44004154</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44004154</guid></item></channel></rss>