<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: tashian</title><link>https://news.ycombinator.com/user?id=tashian</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 22 Apr 2026 09:39:57 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=tashian" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by tashian in "Who Owns, Operates, and Develops Your VPN Matters"]]></title><description><![CDATA[
<p>The notion of "zero trust" shouldn't just mean corporations not having to inherently trust users and networks. It should also mean users not having to inherently trust corporations.<p>VPN providers all run the same two or three VPN protocols, all with similar security guarantees and privacy limitations.<p>I've been playing with MASQUE relays over the last year. Apple's iCloud Private Relay is a MASQUE relay (two, actually). MASQUE can offer genuine privacy improvements via traffic separation, preventing any single party from correlating the traffic source and destination.<p>Some of the privacy concerns of VPN users can be mitigated with better technology. And relays are built into Apple operating systems today. I'm surprised that they aren't very widely deployed yet.</p>
]]></description><pubDate>Wed, 03 Sep 2025 17:56:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45118667</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=45118667</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45118667</guid></item><item><title><![CDATA[New comment by tashian in "Variable duty cycle square waves with the Web Audio API"]]></title><description><![CDATA[
<p>I did a little synth project recently that uses an AudioWorklet processor to morph between single-cycle waveforms, and it worked super well. When I tried to do this with the Web Audio API, the audio would stutter when I moved the controls. Switching to an AudioWorklet thread eliminated the stuttering issue. So, if you need real-time sound shaping controls, you may find that AudioWorklet is a better fit.<p><a href="https://waves.tashian.com" rel="nofollow">https://waves.tashian.com</a></p>
]]></description><pubDate>Mon, 07 Apr 2025 20:58:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=43615872</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=43615872</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43615872</guid></item><item><title><![CDATA[New comment by tashian in "Add "fucking" to your Google searches to neutralize AI summaries"]]></title><description><![CDATA[
<p>or to hide the AI content areas</p>
]]></description><pubDate>Sat, 01 Feb 2025 00:27:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=42894239</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=42894239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42894239</guid></item><item><title><![CDATA[New comment by tashian in "I trusted an LLM, now I'm on day 4 of an afternoon project"]]></title><description><![CDATA[
<p>Just copy/paste from the chat window. I kept running into token limits. I came away from it wanting a much better workflow.<p>That's the next step for me in learning AI... playing with different integrated editor tools.</p>
]]></description><pubDate>Tue, 28 Jan 2025 15:10:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=42853177</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=42853177</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42853177</guid></item><item><title><![CDATA[New comment by tashian in "I trusted an LLM, now I'm on day 4 of an afternoon project"]]></title><description><![CDATA[
<p>I used Claude to help me build a side project in 4 hours that I would never have built otherwise. Essentially, it's a morphing wavetable oscillator in React (<a href="https://waves.tashian.com" rel="nofollow">https://waves.tashian.com</a>).<p>Six months ago, I tried building this app with ChatGPT and got nowhere fast.<p>Building it with Claude required a gluing together a few things that I didn't know much about: JavaScript audio processing, drawing on a JavaScript canvas, an algorithm for bilinear interpolation.<p>I don't write JavaScript often. But I know how to program and I understand what I'm looking at. The project came together easily and the creative momentum of it felt great to me. The most amazing moment was when I reported a bug—I told Claude that the audio was stuttering whenever I moved the controls—and it figured out that we needed to use an AudioWorklet thread instead of trying to play the audio directly from the React component. I had never even heard of AudioWorklet. Claude refactored my code to use the AudioWorklet, and the stutter disappeared.<p>I wouldn't have built this without Claude, because I didn't need it to exist that badly. Claude reduced the creative inertia just enough for me to get it done.</p>
]]></description><pubDate>Tue, 28 Jan 2025 01:08:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=42847761</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=42847761</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42847761</guid></item><item><title><![CDATA[New comment by tashian in "Build a tiny CA for your homelab with a Raspberry Pi"]]></title><description><![CDATA[
<p>Good point.<p>Primarily, the YubiKey is there to lock away the private key while making it available to the running CA. Certificate signing happens inside the YubiKey, and the CA private key is not exportable.<p>This uses the YubiKey PIV application, not FIDO.<p>As an aside, step-ca supports several approaches for key protection, but the YubiKey is relatively inexpensive.<p>Another fun approach is to use systemd-creds to help encrypt the CA's private key password inside a TPM 2.0 module and tie it to PCR values, similar to what LUKS or BitLocker can do for auto disk unlocking based on system integrity. The Raspberry Pi doesn't have TPM 2.0 but there are HATs available.</p>
]]></description><pubDate>Mon, 20 Jan 2025 01:37:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=42764050</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=42764050</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42764050</guid></item><item><title><![CDATA[New comment by tashian in "Build a tiny CA for your homelab with a Raspberry Pi"]]></title><description><![CDATA[
<p>It's true, the defaults are quite strict.<p>As for the "hours" max interval, this is the result of a design decision in Go's time duration library, dealing with the quirks of our calendaring system.</p>
]]></description><pubDate>Sun, 19 Jan 2025 20:41:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=42761570</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=42761570</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42761570</guid></item><item><title><![CDATA[New comment by tashian in "Build a tiny CA for your homelab with a Raspberry Pi"]]></title><description><![CDATA[
<p>I love this idea!</p>
]]></description><pubDate>Sun, 19 Jan 2025 20:30:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=42761457</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=42761457</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42761457</guid></item><item><title><![CDATA[New comment by tashian in "Build a tiny CA for your homelab with a Raspberry Pi"]]></title><description><![CDATA[
<p>Hi, I'm the author of the post. Thanks for your questions here.<p>> -Complete overkill requiring the use of a YubiKey for key storage and external RNG source - what problems does this solve? For a Yubikey to act as a poor man's HSM you have to store the PIN in plaintext on the disk. So if the device is compromised, they can just issue their own certs. If it's to protect against physical theft of the keys, they'll just put the entire Raspberry Pi in their pocket.<p>Yep, it's overkill. Homelabs are learning environments. People want tutorials when trying new things. It's a poor man's HSM because not many people will buy an HSM for their homelab, but almost everyone already has a YubiKey they can play with.<p>The project solves the problem of people wanting to learn and play with new technology.<p>And it's a way to kickstart a decently solid local PKI, if that's something you're interested in.<p>The RNG is completely unnecessary flair that just adds to the fun.<p>> -Creates a two-tier PKI... on the same device. This completely defeats the purpose so you can't revoke anything in case of key compromise.
> -They're generating the private key on disk then importing into the YubiKey. Which defeats having an external key storage device because you have left traces of the key on disk.<p>The tutorial shows how to generate and store the private key offline on a USB stick, not on the device or the YubiKey. The key material never touches the disk of the Raspberry Pi.<p>Why store a copy of the CA keys offline? Because YubiKeys don't have the key-wrapped backup and restore feature of HSMs. So, if the YubiKey ever fails, you need a way to restore your CA. Storing the root on a USB stick is the backup. Put the USB stick in a safe.<p>If you want active revocation, you can set it up so that the intermediate is revocable—in case physical theft of the key is important to you. (We have instructions to do that in our docs.)<p>> -All this digital duct taping the windows and doors yet the article instructs you to download and run random binaries off GitHub with no verification whatsoever.<p>It's open source software downloaded from GitHub. The only non-smallstep code is the RNG driver (GitHub is the distribution point for that project). Was there a kind of verification that you expected to see?<p>> -Why do you need ACME in a homelab and can't just hand issue long lived certificates?
-OpenSC and the crypto libraries are notoriously difficult to set up and working properly. A tiny CA this is not.<p>Most people don't need ACME in their homelab, they just want to learn stuff. That said, we have homelabbers in our community issuing certs to dozens of endpoints in their homelab.<p>Whether you issue long-lived or short-lived certs is a philosophical issue. If a short-lived cert is compromised, it's simply less valuable to the attacker. Short-lived certs encourage automation. Long-lived certs can be easier to manage and you can just manually renew them. But unplanned expiry of long-lived certs has caused a lot of multi-million dollar outages.<p>I hope this helps clarify things.</p>
]]></description><pubDate>Sun, 19 Jan 2025 20:02:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=42761145</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=42761145</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42761145</guid></item><item><title><![CDATA[New comment by tashian in "No Calls"]]></title><description><![CDATA[
<p>How should a company figure out what to charge for something in the first place?
Especially a startup that doesn't have much market data to go on, and may be making something entirely new that no one quite knows the value of.
When this is the case, one option is to do price discovery.
And the way to do that is to remove prices from the website, take calls, learn about customers and their needs, and experiment.</p>
]]></description><pubDate>Thu, 16 Jan 2025 17:59:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=42728575</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=42728575</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42728575</guid></item><item><title><![CDATA[New comment by tashian in "Show HN: Tetris in a PDF"]]></title><description><![CDATA[
<p>AI agents run in isolated VMs, but PDFs have been out here running in the open for 30 years!</p>
]]></description><pubDate>Thu, 09 Jan 2025 21:28:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=42649963</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=42649963</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42649963</guid></item><item><title><![CDATA[New comment by tashian in "The XOR Texture (2004)"]]></title><description><![CDATA[
<p>Reminds me of the Hamming distance texture: <a href="https://chalkdustmagazine.com/features/the-hidden-harmonies-of-hamming-distance/" rel="nofollow">https://chalkdustmagazine.com/features/the-hidden-harmonies-...</a></p>
]]></description><pubDate>Wed, 18 Dec 2024 01:53:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=42447409</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=42447409</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42447409</guid></item><item><title><![CDATA[New comment by tashian in "'I'm running a Mud so I can learn C programming ' (1993)"]]></title><description><![CDATA[
<p>I learned C by running a MUD — a DikuMUD derivative. I was in high school, in the 90s, and I didn't know any programmers in my town who could teach me how to really code. My high school computer science teacher didn't know.<p>What I loved about the MUD as a learning environment was the players. On a busy night we'd have over a hundred people playing. So, I got to cut my teeth on a real, live production system with actual users. That motivated me. There were mild consequences if I broke things. And, if I made things better for the players, it felt good.<p>For me, this environment was so much better than doing programming problem sets by myself, writing code that no one would ever use.<p><a href="https://tashian.com/articles/how-i-learned-to-program/" rel="nofollow">https://tashian.com/articles/how-i-learned-to-program/</a></p>
]]></description><pubDate>Tue, 03 Dec 2024 17:14:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=42308529</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=42308529</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42308529</guid></item><item><title><![CDATA[New comment by tashian in "Every board game rulebook is awful [pdf]"]]></title><description><![CDATA[
<p>I tried learning to make sourdough bread by reading the Tartine Bread book.<p>The problem is, baking bread is such a sensual activity.<p>You need to understand what it feels like when the texture of the dough is right.
You need to learn how to fold and stretch the dough and shape it in ways that are very difficult to describe.
None of this translates well into English, no matter how good of a writer you are. And photos are of limited utility.<p>Learning in person from a knowledgeable teacher is ideal. Just as with a board game.<p>But, since we are talking about media here, what helped me the most with bread baking was Instagram.
I watched videos of bakers doing each stage of the process and talking me through it.
I saw the texture of the dough they were using, and how they worked it.<p>I learned by example.<p>And I wonder if board games are similar to bread.<p>Would I rather read a 70-page rule book, or watch someone play the game for a while or teach it to me in a video?<p>I'd prefer the video content, and then I'd want rulebook as a reference guide rather than a tutorial.</p>
]]></description><pubDate>Mon, 02 Dec 2024 23:07:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=42301336</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=42301336</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42301336</guid></item><item><title><![CDATA[New comment by tashian in "Command line interface guidelines (2021)"]]></title><description><![CDATA[
<p>Hi, I'm one of the authors of CLI Guidelines.<p>See my post <a href="https://smallstep.com/blog/command-line-secrets/" rel="nofollow">https://smallstep.com/blog/command-line-secrets/</a> for a bit more of a deep dive about using secrets on the command line.<p>Credential files are a good, simple, portable option. Files have permissions already. They don't depend on an external service or a proprietary API.<p>And, if your program accepts a credential file, it will be compatible with systemd credentials. systemd credentials offer more security than an unencrypted credential file. They are encrypted and can be TPM-bound, but they don't require the software using the credential to have native TPM support.</p>
]]></description><pubDate>Tue, 06 Feb 2024 18:22:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=39278241</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=39278241</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39278241</guid></item><item><title><![CDATA[WPA3 Enterprise 192-bit mode at home]]></title><description><![CDATA[
<p>Article URL: <a href="https://smallstep.com/blog/home-network-eap-tls-wifi/">https://smallstep.com/blog/home-network-eap-tls-wifi/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=38873810">https://news.ycombinator.com/item?id=38873810</a></p>
<p>Points: 289</p>
<p># Comments: 193</p>
]]></description><pubDate>Thu, 04 Jan 2024 23:44:02 +0000</pubDate><link>https://smallstep.com/blog/home-network-eap-tls-wifi/</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=38873810</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38873810</guid></item><item><title><![CDATA[New comment by tashian in "Feds Have No Idea How Many Times Cruise Driverless Cars Hit Pedestrians"]]></title><description><![CDATA[
<p>Cruise certainly knows.</p>
]]></description><pubDate>Wed, 15 Nov 2023 19:47:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=38281412</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=38281412</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38281412</guid></item><item><title><![CDATA[New comment by tashian in "Telnet BBS Guide"]]></title><description><![CDATA[
<p>I ran one in the 90s for a couple years. I was 15. I had two lines at 16.8kbps. 100 megabyte HD, which was enough to hold a giant archive of Amiga downloads. It was fun, lots of local folks on there and we'd meet up in person sometimes too. Felt like I knew everyone in town who was into computers as much as I was. Especially the Amiga people.</p>
]]></description><pubDate>Sat, 04 Nov 2023 01:43:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=38137267</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=38137267</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38137267</guid></item><item><title><![CDATA[New comment by tashian in "Ask HN: Is there a news source you read everyday? If so, what is it?"]]></title><description><![CDATA[
<p>Not every day, but I appreciate the global tech perspective of <a href="https://restofworld.org" rel="nofollow noreferrer">https://restofworld.org</a></p>
]]></description><pubDate>Tue, 05 Sep 2023 22:27:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=37398658</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=37398658</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37398658</guid></item><item><title><![CDATA[New comment by tashian in "Ask HN: Could you share your personal blog here?"]]></title><description><![CDATA[
<p><a href="https://tashian.com" rel="nofollow noreferrer">https://tashian.com</a><p>I write about various tech topics. Writing is thinking. It helps me learn.</p>
]]></description><pubDate>Tue, 04 Jul 2023 23:04:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=36593627</link><dc:creator>tashian</dc:creator><comments>https://news.ycombinator.com/item?id=36593627</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36593627</guid></item></channel></rss>