<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: tomhallett</title><link>https://news.ycombinator.com/user?id=tomhallett</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 27 Apr 2026 08:55:11 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=tomhallett" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by tomhallett in "Figma's woes compound with Claude Design"]]></title><description><![CDATA[
<p>Agreed - For the last 20 years or so, designers at basecamp.com do all of their frontend design directly in rails/html/css and then have the developers "re-implement it".  The upside of this approach is designs which really work in the browser and they found it to be faster.  The downside of this approach is that it's harder to find designers who have both of those skills, but that was an acceptable tradeoff for them because they are a smaller run company.<p>To me, it seems obvious that AI will attack this from both directions - upskilling developers to make more design changes AND upskilling designers to make more design iterations and more changes to the codebase -- the design artifact is "new react components" (which can be re-implemented or not) instead of a figma design.</p>
]]></description><pubDate>Mon, 20 Apr 2026 13:20:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47833921</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=47833921</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47833921</guid></item><item><title><![CDATA[New comment by tomhallett in "Show HN: Pgit – A Git-like CLI backed by PostgreSQL"]]></title><description><![CDATA[
<p>so true!<p>1) commit messages often capture the "why" something changed - versus the code/tests which focus on the what/how for right now.<p>2) when you have a regression being able to see the code before it was introduced and the code which was changed at the same time is very helpful in understanding the developer's intent, blindspots in their approach, etc.</p>
]]></description><pubDate>Wed, 18 Mar 2026 13:44:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47425738</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=47425738</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47425738</guid></item><item><title><![CDATA[New comment by tomhallett in "Replacing JavaScript with Just HTML"]]></title><description><![CDATA[
<p>Agreed.  Having a "HTML + CSS" engineer on the team was largely due to the number of hacks needed to make css work -- purposely adding invalid html that would only be parsed by specific browsers, ie5 vs ie6 vs netscape being wildly different (opera mobile was out of this world different), using sprites everywhere because additional images would have a noticeable lag time (especially with javascript hover), clearfix divs to overcome float issues.  To be clear, I'm not saying "things were harder back then" or "css is simple now", but things with CSS were so wild and the tooling was so bad, that it what a unique skill of it's own that is less needed now, and the shift has been for people to focus on going deeper with js.</p>
]]></description><pubDate>Sun, 28 Dec 2025 21:06:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46414504</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=46414504</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46414504</guid></item><item><title><![CDATA[New comment by tomhallett in "Open-Source n8n Alternative for Workflow Building (GUI and Docker Included)"]]></title><description><![CDATA[
<p>feedback: i'm trying to understand the highlevel flow/usage but still a bit confused.<p>ideas:<p>1) maybe add a .yml example to the readme under the /test_nyno screenshot so i know how you configured that workflow<p>2) what are ways to trigger a workflow?  just tcp?<p>3) the example runs "bestjsserver" which looks like it runs workflows?  are some workflows auto running?  that just logs from tcp commands you manually running in other terminal? a bit confused what's going on here<p>Thanks!</p>
]]></description><pubDate>Fri, 28 Nov 2025 17:51:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46080950</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=46080950</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46080950</guid></item><item><title><![CDATA[New comment by tomhallett in "Life next to 199 data centres"]]></title><description><![CDATA[
<p>If I'm correct that the data center shown is on Belfort and Glenn Dr, then you don't even have to "research" zoning, just look across the street.<p>In 2021/2022 before it was built:<p>* Here is what that lot looked like [1].  To assume something wouldn't be built there is optimistic at best.  (And there was precedent for data centers at the time - there was already a data center less than half mile away on Vantage Data Plz across the street from Tart Lumber.)<p>* If you look across the street, ie if the video would have panned to the left, you would have seen the "US Customs and Border Patrol" building - not winning any architectural design awards [2].<p>For someone who bought their house decades ago, then yes - the area has transformed drastically.  But grouping someone who purchased recently with someone who purchased decades ago is a bit muddled.<p>[1]: <a href="https://www.google.com/maps/@38.9991758,-77.4300191,3a,75y,181.94h,81.04t/data=!3m7!1e1!3m5!1svyyc3nk30TzyhEW0Ow-KyQ!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fcb_client%3Dmaps_sv.tactile%26w%3D900%26h%3D600%26pitch%3D8.957696848182394%26panoid%3Dvyyc3nk30TzyhEW0Ow-KyQ%26yaw%3D181.94083825829793!7i16384!8i8192?entry=ttu&g_ep=EgoyMDI1MTAyMi4wIKXMDSoASAFQAw%3D%3D" rel="nofollow">https://www.google.com/maps/@38.9991758,-77.4300191,3a,75y,1...</a><p>[2]: <a href="https://www.google.com/maps/place/IAD146/@38.9981504,-77.4285924,3a,75y,84.08h,83.87t/data=!3m8!1e1!3m6!1sM9IZc0huQXyJteJfL2mgvw!2e0!5s20210701T000000!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fcb_client%3Dmaps_sv.tactile%26w%3D900%26h%3D600%26pitch%3D6.133727175580162%26panoid%3DM9IZc0huQXyJteJfL2mgvw%26yaw%3D84.07922669426777!7i16384!8i8192!4m6!3m5!1s0x89b63900459b9883:0x15b9598d91362508!8m2!3d38.9966!4d-77.435788!16s%2Fg%2F11mcjklzm1?entry=ttu&g_ep=EgoyMDI1MTAyMi4wIKXMDSoASAFQAw%3D%3D" rel="nofollow">https://www.google.com/maps/place/IAD146/@38.9981504,-77.428...</a></p>
]]></description><pubDate>Mon, 27 Oct 2025 20:41:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=45726024</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=45726024</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45726024</guid></item><item><title><![CDATA[New comment by tomhallett in "Life next to 199 data centres"]]></title><description><![CDATA[
<p>Also live near the data centers.  While I'm obviously not 100% sure, I think that blue one is on Glenn Dr - for a bit of context, that is less than 3 miles (drive) from the Dulles International Airport.  I'll see if I can record a video of the sound later tonight.<p><a href="https://www.google.com/maps/place/38%C2%B059'57.6%22N+77%C2%B025'45.4%22W/@38.9993543,-77.4289559,3a,75y,207.86h,84.63t/data=!3m7!1e1!3m5!1s5jxwCCLWNumhKWXc_gt_-g!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fcb_client%3Dmaps_sv.tactile%26w%3D900%26h%3D600%26pitch%3D5.371097748892581%26panoid%3D5jxwCCLWNumhKWXc_gt_-g%26yaw%3D207.8581982422048!7i16384!8i8192!4m4!3m3!8m2!3d38.999331!4d-77.429263?entry=ttu&g_ep=EgoyMDI1MTAyMi4wIKXMDSoASAFQAw%3D%3D" rel="nofollow">https://www.google.com/maps/place/38%C2%B059'57.6%22N+77%C2%...</a></p>
]]></description><pubDate>Mon, 27 Oct 2025 20:00:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=45725596</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=45725596</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45725596</guid></item><item><title><![CDATA[New comment by tomhallett in "Life next to 199 data centres"]]></title><description><![CDATA[
<p>But there is an upside to this - you get the benefits of being a city with big business (tax revenue, donations to the local schools, investments in infrastructure), but don't have increased commuter traffic.</p>
]]></description><pubDate>Mon, 27 Oct 2025 18:49:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=45724814</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=45724814</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45724814</guid></item><item><title><![CDATA[New comment by tomhallett in "An LLM does not need to understand MCP"]]></title><description><![CDATA[
<p>Total beginner question: if the “structured software application” gives llm prompt “plan out what I need todo for my upcoming vacation to nyc”, will an llm with a weather tool know “I need to ask for weather so I can make a better packing list”, while an llm without weather tool would either make list without actual weather info OR your application would need to support the LLM asking “tell me what the weather is” and your application would need to parse that and then spit back in the answer in a chained response?  If so, seems like tools are helpful in letting LLM drive a bit more, right?</p>
]]></description><pubDate>Thu, 07 Aug 2025 14:18:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=44824785</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=44824785</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44824785</guid></item><item><title><![CDATA[New comment by tomhallett in "It's time for modern CSS to kill the SPA"]]></title><description><![CDATA[
<p>Depends on the definition of SPA, but in the days of jquery, I hardly consider any of that single page app.  For example, the server rendered page had most of the html initial rendered, jquery would attach a bunch of listeners, and then on an update it incrementally.  If lucky, we had a duplicated x-template-mustache tag which had a logic-less template that we could use to update parts.  Jquery and duplication was the “problem” which drove everyone to SPAs.</p>
]]></description><pubDate>Sat, 26 Jul 2025 17:16:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=44695585</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=44695585</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44695585</guid></item><item><title><![CDATA[New comment by tomhallett in "The New Three-Tier Application"]]></title><description><![CDATA[
<p>When they get to what their implementation is, I’m not even sure what it is.  Like how is the following different from a library, like acts-as_state_machine (<a href="https://github.com/aasm/aasm" rel="nofollow">https://github.com/aasm/aasm</a>). Are they auto running the retries - in a background job which they handle (like “serverless” background job)?<p>“Implementing orchestration in a library connected to a database means you can eliminate the orchestration tier, pushing its functionality into the application tier (the library instruments your program) and the database tier (your workflow state is persisted to Postgres).“</p>
]]></description><pubDate>Sat, 22 Mar 2025 15:04:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=43446187</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=43446187</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43446187</guid></item><item><title><![CDATA[New comment by tomhallett in "Fauna Service Winding Down"]]></title><description><![CDATA[
<p>The word choice of “several” feels a bit mis-leading.  Reminds me of the Big Bang Theory quote:<p>That is not a lot of weeks. In fact, that's the bare minimum to get to the plural "weeks".</p>
]]></description><pubDate>Wed, 19 Mar 2025 18:29:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=43415651</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=43415651</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43415651</guid></item><item><title><![CDATA[New comment by tomhallett in "Styling an HTML dialog modal to take the full height of the viewport"]]></title><description><![CDATA[
<p>Is there a git gui/extension/etc which makes exploring the git blame similar to what the author did easier?  Here is what I find myself doing often:<p>- blame on file<p>- scroll to line 123, click on commit to see the change<p>- ok, that commit wasn’t the “meaningful change” I’m looking for<p>- click on parent commit<p>- browse files (for that sha)<p>- go to file<p>- click blame<p>- scroll to line 123 (or similar)<p>- repeat</p>
]]></description><pubDate>Sun, 16 Mar 2025 16:03:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=43380068</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=43380068</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43380068</guid></item><item><title><![CDATA[New comment by tomhallett in "Show HN: Mastra – Open-source JS agent framework, by the developers of Gatsby"]]></title><description><![CDATA[
<p>So the vercel ai js-sdk is not tied to the vercel platform and is “just” a js library which points to various llms?  Is there any promise/plan/etc to keep it that way?</p>
]]></description><pubDate>Wed, 19 Feb 2025 23:34:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=43109195</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=43109195</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43109195</guid></item><item><title><![CDATA[New comment by tomhallett in "JavaScript Temporal is coming"]]></title><description><![CDATA[
<p>Your example of “New X” is spot on, because there was a timezone with that name, “US/Pacific-New”, which was different than “US/Pacific”.  Bit of history: it was added to some timezone libraries because there was a bill in congress to add it, but it never passed.  I had to fix a bug because users were getting set with that timezone and then other systems/libraries were barfing on it…<p><a href="https://github.com/moment/moment-timezone/issues/498">https://github.com/moment/moment-timezone/issues/498</a></p>
]]></description><pubDate>Thu, 30 Jan 2025 14:51:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=42878261</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=42878261</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42878261</guid></item><item><title><![CDATA[New comment by tomhallett in "Show HN: libmodulor – An opinionated TS library to build multi-platform apps"]]></title><description><![CDATA[
<p>Let's say I'm using shadcn's Dialog [1] on my web target, which has many subcomponents (Dialog, DialogTrigger, DialogHeader, etc).  How many of those am i representing with a 1-to-1 `UC`?  Is it just the parts that are on the IO seam, like a UC for opening the dialog, UC for closing a dialog, and UC for submitting a dialog?  Or is it also for things the user sees like UC for header, UC for content, UC for buttons panel?<p>There is obviously some cost to expressing the interface between the product/target/usecase.  What exact benefit is that cost getting me?  do i know that if i expose a certain use case in one target then i have to explicitly decide if i'm going to expose (or not expose) it in a different target, which helps me get consistency/governance between my app as it grows?  does it help me "integration test" by application in isolation, in a "similar" way that pact [2] helps with integration testing microservices?  (ex: the mobile app relies on X input, but from the ts interfaces, the tool can detect that the web-api is no longer defining an output for that api.  if so, is this on the /api/v1/resource level?  the openapi schema for a json body response level?). do i get a mono-build-system, where everything flows together and i just say "libmodulor build" and "libmodulor deploy" and I'm good to go?<p>said in another way: many of the people on HN have a backend api, a react SPA, and a mobile app.  what types of problems do i have now which libmodulor solves?<p>[1] <a href="https://ui.shadcn.com/docs/components/dialog" rel="nofollow">https://ui.shadcn.com/docs/components/dialog</a>
[2] <a href="https://pact.io/" rel="nofollow">https://pact.io/</a></p>
]]></description><pubDate>Thu, 23 Jan 2025 17:14:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=42805840</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=42805840</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42805840</guid></item><item><title><![CDATA[New comment by tomhallett in "Show HN: libmodulor – An opinionated TS library to build multi-platform apps"]]></title><description><![CDATA[
<p>I enjoy your 4 types on the architecture.<p>But I’m still a bit confused on what the project actually “is”.  I see you have an architecture and I’m using ts to define the interface between those 4 types of components.  But let’s say I have a react-native target: what am I expressing in that interface?  A cli which can build/deploy that interface?  Each ui screen in that rn app (rn login, rn add contact)?  Or all of the api endpoints in the web target which gets called by the rn target?<p>In the readme, I would focus a bit less on the UML part, and a bit more on the “if I have a webapp and a mobile app, with auth and crud for contacts, here’s what you’d need”</p>
]]></description><pubDate>Thu, 23 Jan 2025 16:08:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=42805249</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=42805249</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42805249</guid></item><item><title><![CDATA[New comment by tomhallett in "Stargate Project: SoftBank, OpenAI, Oracle, MGX to build data centers"]]></title><description><![CDATA[
<p>Gotcha.  The fun part is when OpenAI asks for more regulation on AI, congress will be receptive</p>
]]></description><pubDate>Wed, 22 Jan 2025 23:38:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=42798753</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=42798753</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42798753</guid></item><item><title><![CDATA[New comment by tomhallett in "I had to take down my course-swapping site or be expelled"]]></title><description><![CDATA[
<p>This doesn’t even make sense… why is you rebuilding it for them even part of the discussion?  You built a demo of something they didn’t like, so you took it down.  That should be the end of it.<p>Saying you need todo it for free is bonkers.  Students who work in the cafeteria get paid…<p>And the gap between “a greenfield project” versus rebuilding the app in their infrastructure is so huge… This type of app would take 6 months to build minimum.  So insane.<p>If you only have a few months left, you will barely get out of the initial project scoping meetings talking to all of the various departments (legal, it, hr, etc etc)</p>
]]></description><pubDate>Thu, 09 Jan 2025 02:05:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=42640833</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=42640833</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42640833</guid></item><item><title><![CDATA[New comment by tomhallett in "SST: Container Support"]]></title><description><![CDATA[
<p>Context for people who might not get the joke/parody: SST adding containers to their stack might be viewed as a "betryal" in a similar way to how some basketball fans felt when LeBron James switched teams, from Cleveland Cavaliers to Miami Heat.  LeBron had a media event/interview called "The Decision" [1].<p>I love the clip of @dhh's keynote to engineer's "learned helplessness" to AWS and the cloud [2].  While SST + containers is very very different than DHH's Kamal [3], they both embrace containers without the paas service tax (heroku/vercel/etc) or the overhead of kubernetes.<p>1: <a href="https://www.youtube.com/watch?v=Afpgnb_9bA4" rel="nofollow">https://www.youtube.com/watch?v=Afpgnb_9bA4</a><p>2: <a href="https://youtu.be/-cEn_83zRFw?si=oAG3ZUKhXlUIKD88&t=1296" rel="nofollow">https://youtu.be/-cEn_83zRFw?si=oAG3ZUKhXlUIKD88&t=1296</a><p>3: <a href="https://kamal-deploy.org/" rel="nofollow">https://kamal-deploy.org/</a></p>
]]></description><pubDate>Mon, 11 Nov 2024 15:30:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=42107820</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=42107820</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42107820</guid></item><item><title><![CDATA[New comment by tomhallett in "Google CEO says more than a quarter of the company's new code is created by AI"]]></title><description><![CDATA[
<p>Has anyone made a coding assistant which can do this based off audio which I’m saying out loud while I’m typing (interview/pairing style), so instead of typing the comment I can just say it?</p>
]]></description><pubDate>Thu, 31 Oct 2024 14:04:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=42007038</link><dc:creator>tomhallett</dc:creator><comments>https://news.ycombinator.com/item?id=42007038</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42007038</guid></item></channel></rss>