<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: melvinroest</title><link>https://news.ycombinator.com/user?id=melvinroest</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 27 Jun 2026 06:36:23 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=melvinroest" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by melvinroest in "Ask HN: What are tools you have made for yourself since the advent of AI?"]]></title><description><![CDATA[
<p>I am curious to check them out! I hadn’t heard of them. Marketing stuff takes time as I have noticed with aliceindataland.com [1]. Maybe I should do a show HN. I will think about it.<p>To be fair, vibecoding this memo app in Swift didn’t take too long. There were some tricks to it, using xcodegen helped a lot so that I don’t need to use the Xcode project.<p>It’s fun to see Swift code. I used to do some Objective-C back in the day.<p>[1] another thing I made. It’s a sequel to the Alice in Wonderland stories. It’s also a SQL course. I vibe engineered it, meaning I looked at the code and used AI-assisted development.<p>Except for the story though that’s almost all fully me. LLMs aren’t great storytellers. The same is true for the lesson scaffolding, that’s almost only me.</p>
]]></description><pubDate>Tue, 09 Jun 2026 09:38:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=48458786</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=48458786</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48458786</guid></item><item><title><![CDATA[New comment by melvinroest in "Ask HN: What are tools you have made for yourself since the advent of AI?"]]></title><description><![CDATA[
<p>I talk/walk for hours and want all audio files and transcripts in one place, full control.</p>
]]></description><pubDate>Tue, 09 Jun 2026 05:54:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48457049</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=48457049</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48457049</guid></item><item><title><![CDATA[New comment by melvinroest in "Ask HN: What are tools you have made for yourself since the advent of AI?"]]></title><description><![CDATA[
<p>A voice memo app, quite like the actual voice memo app from Apple. The thing is: now I can put my voice memo's on iCloud put Claude Code on it and make my transcripts into structured notes that my app then also displays.<p>So basically a way to just go on an hour long walk with myself, spit everything from the top of my dome stream of consciousness style, and then have Claude structure whatever I said.<p>It's nice to have something that structures my thoughts by just thinking out loud.<p>I vibecoded it (it's approaching 20K lines including tests). It works quite well but there are some bugs, so will have to do some actual engineering. But the UX is working quite well.</p>
]]></description><pubDate>Mon, 08 Jun 2026 19:58:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=48450959</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=48450959</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48450959</guid></item><item><title><![CDATA[New comment by melvinroest in "How LLMs work"]]></title><description><![CDATA[
<p>I thought Karpathy’s microgpt explain how LLMs work</p>
]]></description><pubDate>Sat, 06 Jun 2026 07:02:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48422197</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=48422197</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48422197</guid></item><item><title><![CDATA[Memo: Memory as a Model]]></title><description><![CDATA[
<p>Article URL: <a href="https://arxiv.org/abs/2605.15156">https://arxiv.org/abs/2605.15156</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48354598">https://news.ycombinator.com/item?id=48354598</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 01 Jun 2026 09:38:56 +0000</pubDate><link>https://arxiv.org/abs/2605.15156</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=48354598</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48354598</guid></item><item><title><![CDATA[New comment by melvinroest in "Lessons for Agentic Coding: What should we do when code is cheap?"]]></title><description><![CDATA[
<p>Yea, the amount of dev tools I'm creating per project is astounding. Usually tools that help me to debug certain things better.</p>
]]></description><pubDate>Tue, 05 May 2026 11:30:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48021017</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=48021017</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48021017</guid></item><item><title><![CDATA[New comment by melvinroest in "Lessons for Agentic Coding: What should we do when code is cheap?"]]></title><description><![CDATA[
<p>> What should we do when code is cheap?<p>Make usable software. Cheap code means that you can create a lot more prototypes to then perform usability tests by finding a user and sitting next to them. I mostly worked on internal apps lately, so perhaps it's much easier for me to do than it is for some others.</p>
]]></description><pubDate>Tue, 05 May 2026 11:28:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48020991</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=48020991</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48020991</guid></item><item><title><![CDATA[New comment by melvinroest in "What I'm Hearing About Cognitive Debt (So Far)"]]></title><description><![CDATA[
<p>Ah, I feel what you're saying. Yea that makes total sense.</p>
]]></description><pubDate>Tue, 05 May 2026 04:24:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=48018025</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=48018025</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48018025</guid></item><item><title><![CDATA[New comment by melvinroest in "What I'm Hearing About Cognitive Debt (So Far)"]]></title><description><![CDATA[
<p>How so? Could you give some specific examples?</p>
]]></description><pubDate>Tue, 05 May 2026 03:23:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48017716</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=48017716</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48017716</guid></item><item><title><![CDATA[New comment by melvinroest in "What I'm Hearing About Cognitive Debt (So Far)"]]></title><description><![CDATA[
<p>Edit: yep, I really do type this much. I'm a bit of a "thinking out loud" person.<p>> Cognitive Debt, Like Technical Debt, Must Be Repaid<p>In quite a few circumstances, cognitive debt doesn't entirely need to be repaid. I personally found with multiple projects that certain directions aren't the one I want to go in. But I only found it out after fully fleshing it out with Claude Code and then by using my own app realizing that certain things that I thought would work, they don't.<p>For example, I created library.aliceindataland.com (a narrative driven SQL course). After a while, I noticed that the grading scheme was off and it needed to be rewritten. The same goes for how I wanted to implement the cheatsheet, or lessons not following the standard format. Of course, I need to understand the new code but I don't need to understand the old code.<p>With other small forms of code, I just don't really need to know how things work because it's that simple. For example, every 5 minutes I track to which wifi network I'm connected with. It's mostly useful to simply know whether I went to the office that day or not. A python script retrieves the data and when I look at it, I can recognize that it's correct. But doing it this way is sure a lot faster than active recall.<p>At work, I've had similar things. At my previous job I created SEO and SEA tools for marketing experts. So I remember creating this whole app that gave experts insights into SEO things that Ahrefs and similar sites don't, as it was tailored to the data of the company I worked at. The feedback I basically got was: the data is great, the insights are necessary, but the way the app works is unusuable for us. I was a bit perplexed as I personally didn't find it that complicated. But I also know that I'm not the one using it. Then I created a second version and that was way more usable. The second version assumed a completely different front-end app and front-end app architecture though. All the cognitive debt of V1? No payback needed.<p>The reason that this is the case, as it seems to me, fall under a few categories:<p>1. Experimenting with technologies. If you have certain assumptions about how a technology works but it turns out you're wrong, or you learn through the process that an adjacent technology works way better, then you need to redo it. Back when coding by hand was such a thing, I had this with a collaborative drawing project called Doodledocs (2019). I didn't know if browsers supported pressure sensitivity and to what extent it was easy to implement. It required a few programming experiments.<p>2. It's a small and simple script, not much more to it.<p>3. Experimenting with usability. A lot of the time, we don't know how usable our app is. In my experience, this seems to be either because (1) it's a hobby project or (2) the UX people have been fired years ago. In these cases, more often than not, UX becomes an afterthought. But with LLMs, delivering a 95% fully working version is usually done within a week for a greenfield project. This 95% fully working version is an amazing high fidelity interaction prototype (95% no less). Once you do that for a few iterations, you then understand what you really need. Once you understand what you really need, then you can start repaying the cognitive debt.<p>I've found it's usually category 3, sometimes 2 and rarely 1.</p>
]]></description><pubDate>Tue, 05 May 2026 03:18:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=48017680</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=48017680</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48017680</guid></item><item><title><![CDATA[New comment by melvinroest in "Ask HN: What are you building that's not AI related?"]]></title><description><![CDATA[
<p>library.aliceindataland.com<p>I'm having fun writing a sequel on the books that Lewis Carroll wrote and mixing it with a SQL course. My hope is that SQL will be more fun to learn that way. And it's fun to write a few pages that will hopefully evoke <i>some</i> narrative transportation and immersion vibes.<p>I'm still very much at the beginning though.<p>In the story Alice enters an Infinite Library. You (yes you!) are STAR: a magical sentient typewriter that can only write in SQL queries. When Alice finds you, you'll slowly both find out why this library exists and the secrets that it holds.<p>Course-wise: I'm trying to have tight lesson scaffolding, which is a fun challenge.</p>
]]></description><pubDate>Tue, 14 Apr 2026 00:22:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47759688</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=47759688</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47759688</guid></item><item><title><![CDATA[New comment by melvinroest in "Ollama is now powered by MLX on Apple Silicon in preview"]]></title><description><![CDATA[
<p>TL;DR: you don't need to do any treasure hunt on your notes by just typing stuff into the search bar. Having your own graphRAG system + LLM on your notes is basically a "Google" but then on your own notes. Any question you have: if you have a note for it, it will bubble up. The annoying thing is that false positives will also bubble up.<p>----<p>Full reaction:<p>Yes but perhaps not in a way you might expect. Qwen's reasoning ability isn't exactly groundbreaking. But it's good enough to weave a story, provided it has some solid facts or notes. GraphRAG is definitely a good way to get some good facts, provided your notes are valuable to you and/or contain some good facts.<p>So the added value is that you now have a super charged information retrieval system on your notes with an LLM that can stitch loose facts reasonably well together, like a librarian would. It's also very easy to see hallucinations, if you recognize your own writing well, which I do.<p>The second thing is that I have a hard time rereading all my notes. I write a lot of notes, and don't have the time to reread any of them. So oftentimes I forget my own advice. Now that I have a super charged information retrieval system on my notes, whenever I ask a question: the graphRAG + LLM search for the most relevant notes related to my question. I've found that 20% of what I wrote is incredibly useful <i>and</i> is stuff that I forgot.<p>And there are nuggets of wisdom in there that are quite nuanced. For me specifically, I've seen insights in how I relate to work that I should do more with. I'll probably forget most things again but I can reuse my system and at some point I'll remember what I actually need to remember. For example, one thing I read was that work doesn't feel like work for me if I get to dive in, zoom out, dive in, zoom out. Because in the way I work as a person: that means I'm always resting and always have energy for the task that I'm doing. Another thing that it got me to do was to reboot a small meditation practice by using implementation intentions (e.g. "if I wake up then I meditate for at least a brief amount of time").<p>What also helps is to have a bit of a back and forth with your notes and then copy/paste the whole conversation in Claude to see if Claude has anything in its training data that might give some extra insight. It could also be that it just helps with firing off 10 search queries and finds a blog post that is useful to the conversation that you've had with your local LLM.</p>
]]></description><pubDate>Tue, 31 Mar 2026 08:46:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47584424</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=47584424</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47584424</guid></item><item><title><![CDATA[New comment by melvinroest in "Ollama is now powered by MLX on Apple Silicon in preview"]]></title><description><![CDATA[
<p>I have journaled digitally for the last 5 years with this expectation.<p>Recently I built a graphRAG app with Qwen 3.5 4b for small tasks like classifying what type of question I am asking or the entity extraction process itself, as graphRAG depends on extracted triplets (entity1, relationship_to, entity2). I used Qwen 3.5 27b for actually answering my questions.<p>It works pretty well. I have to be a bit patient but that’s it. So in that particular use case, I would agree.<p>I used MLX and my M1 64GB device. I found that MLX definitely works faster when it comes to extracting entities and triplets in batches.</p>
]]></description><pubDate>Tue, 31 Mar 2026 05:16:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47583014</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=47583014</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47583014</guid></item><item><title><![CDATA[New comment by melvinroest in "Get Shit Done: A Meta-Prompting, Context Engineering and Spec-Driven Dev System"]]></title><description><![CDATA[
<p>If you want some context about spec-driven development and how it could be used with LLMs I recommend [1]. Having some background like helps me to understand tools like this a bit more.<p>[1] <a href="https://www.riaanzoetmulder.com/articles/ai-assisted-programming-project-setup/" rel="nofollow">https://www.riaanzoetmulder.com/articles/ai-assisted-program...</a></p>
]]></description><pubDate>Tue, 17 Mar 2026 23:04:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47419559</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=47419559</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47419559</guid></item><item><title><![CDATA[New comment by melvinroest in "Ask HN: What is it like being in a CS major program these days?"]]></title><description><![CDATA[
<p>It has been for a while I suspect.</p>
]]></description><pubDate>Mon, 16 Mar 2026 12:01:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47397827</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=47397827</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47397827</guid></item><item><title><![CDATA[New comment by melvinroest in "Verified Spec-Driven Development (VSDD)"]]></title><description><![CDATA[
<p>In my agent file I explain that I have a static analyzer which generates a callgraph. On starting the agent runs ~/.agent/tools/__callgraph__/generate_callgraph.py<p>It then gets to see callgraph.current.md and upon subsequent sessions callgraph.diff.md.<p>Here is an example of some output that I currently have in callgraph.current.md<p><pre><code>  ## src/components/Header.tsx

  - **export Header({ ... }: Props)** (start 9, end 54) → `useAuth`

  ## src/components/HelpTooltip.tsx

  - **export HelpTooltip({ ... }: Props)** (start 15, end 42) → (none)

  ## src/components/ResultsTable.tsx

  - **getHeaderLabel(col: { id: string; columnDef: { header?: unknown } }): string** (start 45, end 51) → (none)
  - **getCellValue(colId: string, original: KeywordResult): string** (start 53, end 74) → (none)
  - **export ResultsTable({ ... }: Props)** (start 76, end 406) → `getCellValue`

  ## src/components/SettingsDrawer.tsx

  - **export SettingsDrawer({ ... }: Props)** (start 158, end 336) → (none)
</code></pre>
For example:<p>ResultsTable calls getCellValue.<p>In these cases it's just one function but you also have stuff like<p><pre><code>  **export Dashboard()** (start 36, end 635) → `getTopKeywords`, `normalizeText`, `searchKeywords`, `searchKeywordsMulti`, `searchSemantic`, `searchSemanticMulti`
</code></pre>
For the Python version it also gives the parameters and types along with it. I think the next thing I'd need to do is give self-defined type definitions. Doing things this way allows an LLM to not read all that much but to be able to reason relatively well over what the code does. The caveat is that you abstracted your code well. If you didn't, the LLM doesn't know your implementation.<p>I probably should also add return types.</p>
]]></description><pubDate>Sun, 01 Mar 2026 00:56:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47202405</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=47202405</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47202405</guid></item><item><title><![CDATA[New comment by melvinroest in "Verified Spec-Driven Development (VSDD)"]]></title><description><![CDATA[
<p>I've been doing something less formal. I stumbled upon Riaan Zoetmulder's free course on deep learning and medical image analysis [1] and found his article on spec-driven development [2]. He adapts the V-Model by specifying three things upfront: requirements, system design and architecture. The rest gets generated. He mentioned a study where they show that LLM assistance slowed down experienced open source devs on large codebases. The model doesn't know the implicit context. And to me that's the thing! An LLM should have an index of some sort.<p>So I vibe coded my own static analysis program where I just track my own function calls. It outputs a call graph of all my self-defined functions and shows the name (and Python type hints) of what it is calling (excluding standard library function, also only self-defined stuff). Running that program and sending the diff from time to time seems to have helped a lot already.<p>[1] <a href="https://www.riaanzoetmulder.com/courses/deep-learning-medical-imaging/" rel="nofollow">https://www.riaanzoetmulder.com/courses/deep-learning-medica...</a><p>[2] <a href="https://www.riaanzoetmulder.com/articles/ai-assisted-programming-project-setup/" rel="nofollow">https://www.riaanzoetmulder.com/articles/ai-assisted-program...</a></p>
]]></description><pubDate>Sat, 28 Feb 2026 19:52:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47199458</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=47199458</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47199458</guid></item><item><title><![CDATA[New comment by melvinroest in "Fix your tools"]]></title><description><![CDATA[
<p>I haven’t tried n8n and similar tools but I always had the suspicion that they wouldn’t be that good. Would you say there are scenarios where tools like n8n would be better to use than Python and calling some APIs?</p>
]]></description><pubDate>Sun, 22 Feb 2026 21:50:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47115098</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=47115098</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47115098</guid></item><item><title><![CDATA[New comment by melvinroest in "Ask HN: What are you working on? (February 2026)"]]></title><description><![CDATA[
<p>A free interactive SQL tutorial that will get to the level of being a data analyst. It's Alice in Wonderland themed.<p>I used to be a coding bootcamp instructor, TA and guest lecturer. I've noticed more and more people need to learn SQL for various different reasons. I'm mostly concerned about lesson scaffolding since most SQL courses don't do it that well. I'm hyped about AI but they're not great with lesson scaffolding.<p>I'm 33% to 50% done. I've already noticed the way I scaffold the lessons is unconventional. For example, for the first 50%, I don't want students to know what tables are. It's too much all at once, everything should be small bites before the big concepts get introduced.<p>If anyone is interested in testing the beta version, let me know. It will be up within the next 2 weeks probably. My email is in my profile.</p>
]]></description><pubDate>Mon, 09 Feb 2026 05:51:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46941979</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=46941979</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46941979</guid></item><item><title><![CDATA[Common Sense Refactoring of a Messy React Component]]></title><description><![CDATA[
<p>Article URL: <a href="https://alexkondov.com/refactoring-a-messy-react-component/">https://alexkondov.com/refactoring-a-messy-react-component/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46885119">https://news.ycombinator.com/item?id=46885119</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 04 Feb 2026 12:38:13 +0000</pubDate><link>https://alexkondov.com/refactoring-a-messy-react-component/</link><dc:creator>melvinroest</dc:creator><comments>https://news.ycombinator.com/item?id=46885119</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46885119</guid></item></channel></rss>