<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: roggenbuck</title><link>https://news.ycombinator.com/user?id=roggenbuck</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 13 May 2026 16:21:52 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=roggenbuck" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by roggenbuck in "Show HN: Needle: We Distilled Gemini Tool Calling into a 26M Model"]]></title><description><![CDATA[
<p>This is some excellent work Henry! Very excited to try it out.</p>
]]></description><pubDate>Tue, 12 May 2026 22:17:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48115334</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=48115334</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48115334</guid></item><item><title><![CDATA[Hello, World (2006)]]></title><description><![CDATA[
<p>Article URL: <a href="https://berndhopfengaertner.net/projects/hello-world/index.html">https://berndhopfengaertner.net/projects/hello-world/index.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47916296">https://news.ycombinator.com/item?id=47916296</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 27 Apr 2026 00:16:47 +0000</pubDate><link>https://berndhopfengaertner.net/projects/hello-world/index.html</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=47916296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47916296</guid></item><item><title><![CDATA[New comment by roggenbuck in "Flameshot"]]></title><description><![CDATA[
<p>Flameshot is excellent! I’ve been happily using it for years.</p>
]]></description><pubDate>Fri, 30 Jan 2026 03:35:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=46820251</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=46820251</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46820251</guid></item><item><title><![CDATA[New comment by roggenbuck in "Ask HN: Share your personal website"]]></title><description><![CDATA[
<p><a href="https://jr0.org" rel="nofollow">https://jr0.org</a></p>
]]></description><pubDate>Thu, 15 Jan 2026 01:48:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46626877</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=46626877</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46626877</guid></item><item><title><![CDATA[New comment by roggenbuck in "Road Diet"]]></title><description><![CDATA[
<p>The roads in Davis are great! Super easy to bike and drive. Except for Mace Blvd.</p>
]]></description><pubDate>Sun, 04 Jan 2026 20:18:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=46491767</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=46491767</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46491767</guid></item><item><title><![CDATA[New comment by roggenbuck in "Show HN: Superset – Terminal to run 10 parallel coding agents"]]></title><description><![CDATA[
<p>I’ve used superset at work this last week, and it’s great! Excited to see what’s next!</p>
]]></description><pubDate>Mon, 29 Dec 2025 19:42:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=46424603</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=46424603</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46424603</guid></item><item><title><![CDATA[Incident with Actions]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.githubstatus.com/incidents/zs5ccnvqv64m">https://www.githubstatus.com/incidents/zs5ccnvqv64m</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45982511">https://news.ycombinator.com/item?id=45982511</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 19 Nov 2025 17:52:03 +0000</pubDate><link>https://www.githubstatus.com/incidents/zs5ccnvqv64m</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=45982511</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45982511</guid></item><item><title><![CDATA[New comment by roggenbuck in "Ask HN: What Are You Working On? (Nov 2025)"]]></title><description><![CDATA[
<p>I’m working on a performance capture library for Python because I often need to know the performance of backend systems I maintain. I frequently build tooling to capture performance and save it for later analysis. I/O operations get costly when writing lots of data to disk and creating good real-time analytics tools takes a lot of my time. I wanted a library that captures real-time performance analytics from Python backends.<p><a href="https://github.com/jakeroggenbuck/kronicler" rel="nofollow">https://github.com/jakeroggenbuck/kronicler</a><p>This is why I wrote kronicler to record performance metrics while being fast and simple to implement. I built my own columnar database in Rust to capture and analyze these logs.<p>To capture logs, `import kronicler` and add `@kronicler.capture` as a decorator to functions in Python. It will then start saving performance metrics to the custom database on disk. You can also use the middleware for FastAPI.<p>You can then view these performance metrics by adding a route to your server called `/logs` where you return `DB.logs()`. You can paste your hosted URL into the settings of usekronicler.com (the online dashboard) and view your data with a couple charts. View the readme or the website for more details for how to do this.<p>I'm still working on features like concurrency and other overall improvements. I've added a lot since the last time I shared on HN. I would love some feedback to help shape this product into something useful for you all.<p>Thanks! - Jake</p>
]]></description><pubDate>Sun, 09 Nov 2025 23:00:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=45870113</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=45870113</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45870113</guid></item><item><title><![CDATA[New comment by roggenbuck in "Ask HN: What are you working on? (October 2025)"]]></title><description><![CDATA[
<p>I’m working on a performance capture library for Python because I often need to know the performance of backend systems I maintain. I frequently build tooling to capture performance and save it for later analysis. I/O operations get costly when writing lots of data to disk and creating good real-time analytics tools takes a lot of my time. I wanted a library that captures real-time performance analytics from Python backends.<p><a href="https://github.com/jakeroggenbuck/kronicler" rel="nofollow">https://github.com/jakeroggenbuck/kronicler</a><p>This is why I wrote kronicler to record performance metrics while being fast and simple to implement. I built my own columnar database in Rust to capture and analyze these logs.<p>To capture logs, `import kronicler` and add `@kronicler.capture` as a decorator to functions in Python. It will then start saving performance metrics to the custom database on disk.<p>You can then view these performance metrics by adding a route to your server called `/logs` where you return `DB.logs()`. You can paste your hosted URL into the settings of usekronicler.com (the online dashboard) and view your data with a couple charts. View the readme or the website for more details for how to do this.<p>I'm still working on features like concurrency and other overall improvements. I would love some feedback to help shape this product into something useful for you all.<p>Thanks! - Jake</p>
]]></description><pubDate>Sun, 12 Oct 2025 21:56:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=45562327</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=45562327</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45562327</guid></item><item><title><![CDATA[Show HN: Kronicler – capture performance analytics with custom rust database]]></title><description><![CDATA[
<p>Hey HN!<p>My name is Jake and I often need to know the performance of backend systems I maintain. I frequently build tooling to capture performance and save it for later analysis. I/O operations get costly when writing lots of data to disk and creating good real-time analytics tools takes a lot of my time. I wanted a library that captures real-time performance analytics from Python backends.<p>This is why I wrote kronicler to record performance metrics while being fast and simple to implement. I built my own columnar database in Rust to capture and analyze these logs.<p>To capture logs, `import kronicler` and add `@kronicler.capture` as a decorator to functions in Python. It will then start saving performance metrics to the custom database on disk.<p>You can then view these performance metrics by adding a route to your server called `/logs` where you return `DB.logs()`. You can paste your hosted URL into the settings of usekronicler.com (the online dashboard) and view your data with a couple charts. View the readme or the website for more details for how to do this.<p>I'm still working on features like concurrency and other overall improvements. I would love some feedback to help shape this product into something useful for you all.<p>- Jake</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45560326">https://news.ycombinator.com/item?id=45560326</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 12 Oct 2025 18:04:30 +0000</pubDate><link>https://github.com/JakeRoggenbuck/kronicler</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=45560326</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45560326</guid></item><item><title><![CDATA[New comment by roggenbuck in "Compiling a Forth"]]></title><description><![CDATA[
<p>This was a well written post! It makes me want to create my own forth-like language</p>
]]></description><pubDate>Tue, 07 Oct 2025 05:52:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=45499774</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=45499774</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45499774</guid></item><item><title><![CDATA[New comment by roggenbuck in "Play snake in the URL address bar"]]></title><description><![CDATA[
<p>This is really creative! Very well done. Surprisingly fast too.</p>
]]></description><pubDate>Sun, 28 Sep 2025 22:21:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=45408619</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=45408619</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45408619</guid></item><item><title><![CDATA[New comment by roggenbuck in "Show HN: I'm a dermatologist and I vibe coded a skin cancer learning app"]]></title><description><![CDATA[
<p>This is great!</p>
]]></description><pubDate>Sun, 07 Sep 2025 20:18:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=45161761</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=45161761</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45161761</guid></item><item><title><![CDATA[New comment by roggenbuck in "Morse Code Translator"]]></title><description><![CDATA[
<p>Yea, it's fun to know and it can be useful from time to time. I know the alphabet but cannot copy very fast at all.</p>
]]></description><pubDate>Fri, 05 Sep 2025 17:47:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=45141396</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=45141396</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45141396</guid></item><item><title><![CDATA[New comment by roggenbuck in "Launch HN: Datafruit (YC S25) – AI for DevOps"]]></title><description><![CDATA[
<p>Really great stuff! Congrats on the launch!</p>
]]></description><pubDate>Tue, 02 Sep 2025 20:47:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=45108823</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=45108823</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45108823</guid></item><item><title><![CDATA[New comment by roggenbuck in "Show HN: Regolith – Regex library that prevents ReDoS CVEs in TypeScript"]]></title><description><![CDATA[
<p>Yea, I can expand the description to include other features that may cause issues. Here is an example of how counting can cause latency too: <a href="https://www.usenix.org/system/files/sec22fall_turonova.pdf" rel="nofollow">https://www.usenix.org/system/files/sec22fall_turonova.pdf</a></p>
]]></description><pubDate>Wed, 27 Aug 2025 03:57:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45035309</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=45035309</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45035309</guid></item><item><title><![CDATA[New comment by roggenbuck in "Show HN: Regolith – Regex library that prevents ReDoS CVEs in TypeScript"]]></title><description><![CDATA[
<p>> and it would have been great if the default had been safe.<p>I totally agree here. Safety can and should be from the language itself.</p>
]]></description><pubDate>Wed, 27 Aug 2025 03:50:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=45035281</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=45035281</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45035281</guid></item><item><title><![CDATA[New comment by roggenbuck in "Show HN: Regolith – Regex library that prevents ReDoS CVEs in TypeScript"]]></title><description><![CDATA[
<p>Thanks for the feedback! Yea, you're totally right. I'll update the docs to reflect this.<p>> why not just wrap vanilla JS regex, rejecting patterns including them?<p>Yea! I was thinking about this too actually. And this would solve the problem of being server side only. I'm thinking about making a new version to do just this.<p>For a pattern rejecting wrapper, how would you want it to communicate that an unsafe pattern has been created.</p>
]]></description><pubDate>Wed, 27 Aug 2025 03:48:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45035264</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=45035264</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45035264</guid></item><item><title><![CDATA[Show HN: Regolith – Regex library that prevents ReDoS CVEs in TypeScript]]></title><description><![CDATA[
<p>I wanted a safer alternative to RegExp for TypeScript that uses a linear-time engine, so I built Regolith.<p>Why:
Many CVEs happen because TypeScript libraries are vulnerable to Regular Expression Denial of Service attacks. I learned about this problem while doing undergraduate research and found that languages like Rust have built-in protection but languages like JavaScript, TypeScript, and Python do not. This library attempts to mitigate these vulnerabilities for TypeScript and JavaScript.<p>How:
Regolith uses Rust's Regex library under the hood to prevent ReDoS attacks. The Rust Regex library implements a linear-time Regex engine that guarantees linear complexity for execution. A ReDoS attack occurs when a malicious input is provided that causes a normal Regex engine to check for a matching string in too many overlapping configurations. This causes the engine to take an extremely long time to compute the Regex, which could cause latency or downtime for a service. By designing the engine to take at most a linear amount of time, we can prevent these attacks at the library level and have software inherit these safety properties.<p>I'm really fascinated by making programming languages safer and I would love to hear any feedback on how to improve this project. I'll try to answer all questions posted in the comments.<p>Thanks!
- Jake Roggenbuck</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45034957">https://news.ycombinator.com/item?id=45034957</a></p>
<p>Points: 27</p>
<p># Comments: 25</p>
]]></description><pubDate>Wed, 27 Aug 2025 02:54:07 +0000</pubDate><link>https://github.com/JakeRoggenbuck/regolith</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=45034957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45034957</guid></item><item><title><![CDATA[Show HN: Regolith – Regex library for TypeScript made to prevent ReDoS attacks]]></title><description><![CDATA[
<p>I made TypeScript bindings for the Rust Regex library to prevent Regular Expression Denial of Service attacks. Rust's Regex uses a linear-time guaranteed Regex engine (which prevents these attacks) and I wanted to bring this functionality to TypeScript as a drop-in replacement for RegExp. Many CVEs happen because TypeScript libraries are vulnerable to these types of attacks. This library attempts to mitigate these vulnerabilities for TypeScript and JavaScript.<p>I'm really fascinated by making programming languages safer and I would love to hear any feedback on how to improve this project. I'll try to answer all questions posted in the comments.<p>Thanks!
- Jake</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44840052">https://news.ycombinator.com/item?id=44840052</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 08 Aug 2025 18:22:31 +0000</pubDate><link>https://github.com/JakeRoggenbuck/regolith</link><dc:creator>roggenbuck</dc:creator><comments>https://news.ycombinator.com/item?id=44840052</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44840052</guid></item></channel></rss>