<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: alexhans</title><link>https://news.ycombinator.com/user?id=alexhans</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 05 Jun 2026 03:17:50 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=alexhans" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by alexhans in "Learn SQL Once, Use It for 30 Years"]]></title><description><![CDATA[
<p>I was a fan of Seven Languages in Seven Weeks [1] because it exposed you to different paradigms which you could then try to apply where they made sense on whatever tools you were using or building: prototype based, fault tolerante, funcional, logical.  Very fun book when used right.<p>The point being that sometimes the tools themselves don't need to survive because you take the lessons from one thing to another (e.g. move semantics and rust/modern c++)<p>[1] - <a href="https://pragprog.com/titles/btlang/seven-languages-in-seven-weeks/" rel="nofollow">https://pragprog.com/titles/btlang/seven-languages-in-seven-...</a></p>
]]></description><pubDate>Thu, 04 Jun 2026 08:11:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=48395673</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=48395673</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48395673</guid></item><item><title><![CDATA[New comment by alexhans in "AI Agent Guidelines for CS336 at Stanford"]]></title><description><![CDATA[
<p>Congrats. This seems like a great prompt to ensure a useful default experience. People should not confuse this with "anti cheating" and instead helping people learn how to learn.<p>Do you have further insights on AI and education since?</p>
]]></description><pubDate>Mon, 01 Jun 2026 18:37:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48360835</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=48360835</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48360835</guid></item><item><title><![CDATA[New comment by alexhans in "The solution might be cancelling my AI subscription"]]></title><description><![CDATA[
<p>A good tip for side projects is to build stuff that is actually useful to you and to make them ZeroOps (no maintenance required).  If you find yourself waiting to add a feature and it's not easy to change (ETC) [1] then it's a good moment to stop and how did you lose control of the software.<p>This applies to all software projects except for the "useful to you" part, which turns into valuable to "your/the business"<p>[1] <a href="https://youtu.be/c8AzqMr87gQ" rel="nofollow">https://youtu.be/c8AzqMr87gQ</a></p>
]]></description><pubDate>Mon, 01 Jun 2026 07:13:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48353552</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=48353552</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48353552</guid></item><item><title><![CDATA[New comment by alexhans in "Time to talk about my writerdeck"]]></title><description><![CDATA[
<p>When I saw this post I immediately thought of WordPerfect.<p>It had such a pleasant interface for that time.<p>But yeah, one of the things made me go for vim over Emacs a long time ago was its relationship with touch typing and not leaving the home row with the vim modes.<p>Learn Vim script the hard way [1], even if you didn't end up writing any actual vim script, was a game changer in terms of understanding the semantics.<p>[1] - <a href="https://learnvimscriptthehardway.stevelosh.com/" rel="nofollow">https://learnvimscriptthehardway.stevelosh.com/</a> was</p>
]]></description><pubDate>Sun, 24 May 2026 10:06:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48256016</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=48256016</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48256016</guid></item><item><title><![CDATA[New comment by alexhans in "A Claude Code and Codex Skill for Deliberate Skill Development"]]></title><description><![CDATA[
<p>Hey, sorry for the late reply.<p>I looked superficially at your site/repo and based on that initial impression:<p>- Your approach of comparing different parts of the "black box" which affects agent behaviour (Harness, foundation model, skills, context (in your case the loaded on AGENTS.md context) is closely aligned with how I both think and operate.
- You're both tackling the "regression" and the "answer hypothesis easily" problems.<p>> Stalking your profile (sorry..) I see you're pretty deep in the eval space, so I'm super curious what your approach has been to being rigorous for things like skill changes?<p>It depends on the level of automation and risk profile. For skills I use this framework of thinking [1] and encourage evals/ground truth as soon as possible so that you can have automatic feedback loops for the markdown part and for the deterministic part (scripts).  Once you have the eval/ground truth pair, you're almost doing TDD or Eval Driven Development (which is quite hard the first times you try and realize you actually need to think about intent).  The scripts should definitely have their own unit tests for the "skill iteration" in the event that a mutation is desired to cover new behaviour/fix wrong behaviour.<p>On Agent Skills, it may seem tempting to want more "openness" for the AI to solve the problem creatively but, more often than not, you've described a repeatable workflow and you want predictability and stability instead of novelty so it's really about 1) How can I freeze it to keep being good enough as much as possible 2) How can I know if something happened somewhere which changed the black box (e.g. coding harness auto model picking screws things up 3) How can I make the skill itself ETC (Easy to change), to keep control.  Local Models can be a great tool for stability in some scenarios.<p>In particular, I prefer pass/fail (binary) outcomes instead of scoring which doesn't help regression decisions.  Defining "good enough" should be very clear.  Flakiness is not a good thing to accept, if the outcomes are consequential.<p>Anything actually risky should be solid RBAC/policy which doesn't really depend on the LLM.<p>I had a site that I didn't manage to make visible in HN to create a community for ai-evals.io.  I've since interacted with a few people, developed further insights and given some private talks but need to get back to publishing outfacing and trying to contact more people interested in this space because it's absolutely critical.  There's a lot of nuance in how different environments think about the eval problem differently:  It's all about tracing and course correcting after launch, it's about simulations, sandboxing, security, automatic eval generation, etc.<p>In any case, I'll try to be more present from now on, and especially from June onwards to try to exchange insights in the open with people who are exploring different solutions in this space.<p>[1] - <a href="https://alexhans.github.io/posts/series/evals/building-agent-skills-incrementally.html" rel="nofollow">https://alexhans.github.io/posts/series/evals/building-agent...</a></p>
]]></description><pubDate>Wed, 20 May 2026 08:14:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=48204637</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=48204637</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48204637</guid></item><item><title><![CDATA[New comment by alexhans in "A Claude Code and Codex Skill for Deliberate Skill Development"]]></title><description><![CDATA[
<p>Sorry. I'm not sure about the specific part you don't agree with. You prefer people to just use skills instead of building them?<p>That's fair but I think this is similar to power tools like vim, obsidian or others. There's the path of grabbing other people's workflows and not being able to modify them to really tailor the tool to your needs and there's the minimal incremental path that empowers you and gives you control all the way through. It gets you to understand the tools and you'll be able to think possibilities that match your exact problems.<p>I'm not dogmatic about it but I do really recommend it. You can see the transformative shift once people start "skill building" instead of "skill consuming".<p>Edit: The approach I mention works with non engineers/developers. So there's no different technical bar.</p>
]]></description><pubDate>Thu, 14 May 2026 14:51:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48136261</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=48136261</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48136261</guid></item><item><title><![CDATA[New comment by alexhans in "A Claude Code and Codex Skill for Deliberate Skill Development"]]></title><description><![CDATA[
<p>Hey, it's awesome that you mention evals. May I ask what you currently use, or look for? Do you roll your own or use an existing framework?</p>
]]></description><pubDate>Thu, 14 May 2026 08:54:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=48132763</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=48132763</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48132763</guid></item><item><title><![CDATA[New comment by alexhans in "A Claude Code and Codex Skill for Deliberate Skill Development"]]></title><description><![CDATA[
<p>Skills are just a good standard to describe repeatable workflows saving context through progressive disclosure, prompt sharing and, very underused feature, also bound the non deterministic parts with determism (which could be scripts).<p>Conceptually, you should treat them as incremental software instead of magic you grab from others [1]<p>The killer feature is that coding harnesses tend to have SkillBuilder agent skills so creating them becomes very easy and you can evolve them.<p>I recommend you build your own for your particular pain points.<p>Very simple example [2] showing what another user mentioned around "evals" so that you can really achieve good enough correctness for your automation.<p>- [1] <a href="https://alexhans.github.io/posts/series/evals/building-agent-skills-incrementally.html" rel="nofollow">https://alexhans.github.io/posts/series/evals/building-agent...</a><p>- [2] <a href="https://alexhans.github.io/posts/series/evals/sketch-to-text-skill.html" rel="nofollow">https://alexhans.github.io/posts/series/evals/sketch-to-text...</a></p>
]]></description><pubDate>Thu, 14 May 2026 08:13:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48132477</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=48132477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48132477</guid></item><item><title><![CDATA[New comment by alexhans in "What we lost the last time code got cheap"]]></title><description><![CDATA[
<p>To me, design files living in the repo are what captures these high and low level decisions. They should express intent which is paramount for automation.<p>Where are you keeping your design? If it's a WYSIWYG doc like word, what would it take for you to switch to a more text driven world?</p>
]]></description><pubDate>Fri, 08 May 2026 20:30:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=48068386</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=48068386</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48068386</guid></item><item><title><![CDATA[New comment by alexhans in "Set a Meeting Budget"]]></title><description><![CDATA[
<p>I saw <a href="https://news.ycombinator.com/item?id=47906942">https://news.ycombinator.com/item?id=47906942</a> and thought that the competing perspective of meetings as a resource that is inherently wasteful deserved dedicated discussion, only justified in cases where synchronous coordination is necessary.<p>If you don't force yourself to see it as a scarce resource it's very easy to end up in situations where it takes up most of your time.</p>
]]></description><pubDate>Tue, 28 Apr 2026 07:31:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47931458</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=47931458</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47931458</guid></item><item><title><![CDATA[Set a Meeting Budget]]></title><description><![CDATA[
<p>Article URL: <a href="https://alexhans.github.io/posts/meeting-budget.html">https://alexhans.github.io/posts/meeting-budget.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47931358">https://news.ycombinator.com/item?id=47931358</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 28 Apr 2026 07:19:35 +0000</pubDate><link>https://alexhans.github.io/posts/meeting-budget.html</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=47931358</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47931358</guid></item><item><title><![CDATA[New comment by alexhans in "Meetings are forcing functions"]]></title><description><![CDATA[
<p>Sync meetings can help some people feel pressure but it's an extremely inefficient mechanism.<p>You're waiting a whole week for an update or to push people.<p>I'm a huge proponent of "async over sync" and "sync as soon as necessary". Don't wait to the next meeting in 3 days to escalate.<p>People whose calendar looks like meetings only and are always willing and able to throw complexity to others won't feel the pain of not having a meeting budget [1] but other roles will want to avoid eating up all their time on this type of admin.<p>I encourage people to explore how extremely simple Agent Skills workflows can already do a lot of the admin legwork than an executive assistant would and free their time from admin bureocracy and red tape, as much as possible.  If there's no programmatic endpoint or MCP, use something like playwright.  A little goes a long way.<p>- [1] <a href="https://alexhans.github.io/posts/meeting-budget.html" rel="nofollow">https://alexhans.github.io/posts/meeting-budget.html</a></p>
]]></description><pubDate>Tue, 28 Apr 2026 07:17:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=47931343</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=47931343</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47931343</guid></item><item><title><![CDATA[New comment by alexhans in "Claude Code Routines"]]></title><description><![CDATA[
<p>This is what AI evals [1] and local llms should be a focus of your investment.<p>If you can define good enough for you and local llms can meet that you'll get:<p>- no vendor lock-in (control)<p>- price<p>- stability (you decide when to hot swap with newer models)<p>- speed (control)<p>- full observability and predictability.<p>- Privacy / Data Locality (Depending on implementation of infrastructure).<p>- [1] <a href="https://alexhans.github.io/posts/series/evals/measure-first-optimize-last.html" rel="nofollow">https://alexhans.github.io/posts/series/evals/measure-first-...</a></p>
]]></description><pubDate>Wed, 15 Apr 2026 06:07:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47775274</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=47775274</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47775274</guid></item><item><title><![CDATA[New comment by alexhans in "Make Tmux Pretty and Usable"]]></title><description><![CDATA[
<p>Tmux conflicted with my vim bindings and i tweaked the tmux.conf to fit my needs.  It's worth playing around on pure tmux and figuring out what would work for you.</p>
]]></description><pubDate>Mon, 13 Apr 2026 15:35:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47753541</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=47753541</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47753541</guid></item><item><title><![CDATA[New comment by alexhans in "I still prefer MCP over skills"]]></title><description><![CDATA[
<p>This frames MCP vs Skills as an either/or, but they operate at different layers. MCP exposes capabilities and Skills may shape how capabilities are used.<p>Both are useful to different people (and role families) in different ways and if you don't feel certain pain points, you may not care about some of the value they provide.<p>Agent skills are useful because they're standardized prompt sharing but more than that, because they have progressive disclosure so you don't bloat your context with an inefficietly designed MCP and their UX is very well aligned such that "/SkillBuilder" skills are provided from the start and provide a good path for developers or non traditional builders to turn  conversations  into semi or full automation. I use this mental model to focus on the iteration pattern and incremental building [1].<p>[1] <a href="https://alexhans.github.io/posts/series/evals/building-agent-skills-incrementally.html" rel="nofollow">https://alexhans.github.io/posts/series/evals/building-agent...</a></p>
]]></description><pubDate>Fri, 10 Apr 2026 08:40:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47715258</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=47715258</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47715258</guid></item><item><title><![CDATA[New comment by alexhans in "Git commands I run before reading any code"]]></title><description><![CDATA[
<p>I'd be curious to see if my blog posts/titles feel like AI slop to you.<p><a href="https://alexhans.github.io/" rel="nofollow">https://alexhans.github.io/</a><p>No need to read them, just a vibe check would be insightful.  It's weird how branding, even before AI had a lot of the same catchy patterns, and now it's hard to define what is the right prose (engineers might want one thing and other role families others) and sometimes you're trying to write almost with the "everyone else bag in mind" because that's the personal connections you link your "here's what I often repeat in written form".</p>
]]></description><pubDate>Wed, 08 Apr 2026 22:14:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47696973</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=47696973</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47696973</guid></item><item><title><![CDATA[New comment by alexhans in "I've sold out"]]></title><description><![CDATA[
<p>Having followed a bit of their work this makes absolute sense and I'm excited to see what it enables.<p>For those that don't know Armin, he's the creator of flask among many things and has some cool projects like around like gondolin.<p>As for pi, you should absolutely try it out if you've used opencode/continue-dev or even if you've used the less open cloud vendor coding harnesses like Claude/Codex.<p>I do agree that they write in a way that requires context.</p>
]]></description><pubDate>Wed, 08 Apr 2026 13:25:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47689930</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=47689930</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47689930</guid></item><item><title><![CDATA[New comment by alexhans in "Music for Programming"]]></title><description><![CDATA[
<p>Thanks. This Is awesome</p>
]]></description><pubDate>Tue, 07 Apr 2026 19:00:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47679808</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=47679808</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47679808</guid></item><item><title><![CDATA[New comment by alexhans in "Music for Programming"]]></title><description><![CDATA[
<p>Like others have said, for specific types of activity, I'll prefer no vocals or maybe even no music, but if vocals are fine Abba does have a great flow to it.  I used to run to Abba too, at times, because it feels upbeat/positive with good enough tempo. Super trouper, for instance, makes for a great booster.</p>
]]></description><pubDate>Mon, 06 Apr 2026 00:02:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47655290</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=47655290</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47655290</guid></item><item><title><![CDATA[New comment by alexhans in "Music for Programming"]]></title><description><![CDATA[
<p>I vary a lot but when I do classical music Mozart has occupied quite a lot of my stats, in particular a clarinet concerto by Katherine Lucy [1] and also things like Beethoven's 6th (pastoral, it's beautifully featured in Fantasia) or Grieg's morning mood.<p>- [1] <a href="https://open.spotify.com/album/1R6rh9My8CTK4DqZorJR0V?si=3Ctn94z7RCWy2emoktVP7Q" rel="nofollow">https://open.spotify.com/album/1R6rh9My8CTK4DqZorJR0V?si=3Ct...</a><p>If you have specific song/interpretation recommendations I'd love to hear them.</p>
]]></description><pubDate>Sun, 05 Apr 2026 23:58:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47655264</link><dc:creator>alexhans</dc:creator><comments>https://news.ycombinator.com/item?id=47655264</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47655264</guid></item></channel></rss>