HNHacker News
TopNewBestAskShowJobs

tomhallett

882 karma · joined January 14, 2011

Ruby and Javascript Developer.

Software Engineer at Incredible Health.

github.com/tommyh

submissionscomments
tomhallett··on Figma's woes compound with Claude Design
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.

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.

tomhallett··on Show HN: Pgit – A Git-like CLI backed by PostgreSQL
so true!

1) commit messages often capture the "why" something changed - versus the code/tests which focus on the what/how for right now.

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.

tomhallett··on Replacing JavaScript with Just HTML
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.
tomhallett··on Open-Source n8n Alternative for Workflow Building (GUI and Docker Included)
feedback: i'm trying to understand the highlevel flow/usage but still a bit confused.

ideas:

1) maybe add a .yml example to the readme under the /test_nyno screenshot so i know how you configured that workflow

2) what are ways to trigger a workflow? just tcp?

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

Thanks!

tomhallett··on Life next to 199 data centres
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.

In 2021/2022 before it was built:

* 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.)

* 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].

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.

[1]: https://www.google.com/maps/@38.9991758,-77.4300191,3a,75y,1...

[2]: https://www.google.com/maps/place/IAD146/@38.9981504,-77.428...

tomhallett··on Life next to 199 data centres
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.

https://www.google.com/maps/place/38%C2%B059'57.6%22N+77%C2%...

tomhallett··on Life next to 199 data centres
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.
tomhallett··on An LLM does not need to understand MCP
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?
tomhallett··on It's time for modern CSS to kill the SPA
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.
tomhallett··on The New Three-Tier Application
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 (https://github.com/aasm/aasm). Are they auto running the retries - in a background job which they handle (like “serverless” background job)?

“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).“

tomhallett··on Fauna Service Winding Down
The word choice of “several” feels a bit mis-leading. Reminds me of the Big Bang Theory quote:

That is not a lot of weeks. In fact, that's the bare minimum to get to the plural "weeks".

tomhallett··on Styling an HTML dialog modal to take the full height of the viewport
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:

- blame on file

- scroll to line 123, click on commit to see the change

- ok, that commit wasn’t the “meaningful change” I’m looking for

- click on parent commit

- browse files (for that sha)

- go to file

- click blame

- scroll to line 123 (or similar)

- repeat

tomhallett··on Show HN: Mastra – Open-source JS agent framework, by the developers of Gatsby
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?
tomhallett··on JavaScript Temporal is coming
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…

https://github.com/moment/moment-timezone/issues/498

tomhallett··on Show HN: libmodulor – An opinionated TS library to build multi-platform apps
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?

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?

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?

[1] https://ui.shadcn.com/docs/components/dialog [2] https://pact.io/

tomhallett··on Show HN: libmodulor – An opinionated TS library to build multi-platform apps
I enjoy your 4 types on the architecture.

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?

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”

tomhallett··on Stargate Project: SoftBank, OpenAI, Oracle, MGX to build data centers
Gotcha. The fun part is when OpenAI asks for more regulation on AI, congress will be receptive
tomhallett··on I had to take down my course-swapping site or be expelled
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.

Saying you need todo it for free is bonkers. Students who work in the cafeteria get paid…

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.

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)

tomhallett··on SST: Container Support
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].

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.

1: https://www.youtube.com/watch?v=Afpgnb_9bA4

2: https://youtu.be/-cEn_83zRFw?si=oAG3ZUKhXlUIKD88&t=1296

3: https://kamal-deploy.org/

tomhallett··on Google CEO says more than a quarter of the company's new code is created by AI
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?
tomhallett··on Show HN: Gomponents, HTML components in pure Go
If you mean “action=/foo” for a “form” tag, there is an “Action” attribute: https://github.com/maragudk/gomponents/blob/main/html/attrib...
tomhallett··on Patent troll Sable pays up, dedicates all its patents to the public
While I don’t disagree with any of your points, it seems like they are using a “platform/UGC/crowd” model to change the economics of the business model.

In the same way that TV networks find/vet/pay for the supply of shows and take on the risk per-show, YouTube (at its core) doesn’t do any of that and all of the content creators do those things with the hope it will take off and a share of the ad revenue, while YouTube’s risks are related to the opex cost of the incoming supply/demand.

Instead of cloudflare paying per examiner, they give a non-guaranteed slice to a bigger group of people.

tomhallett··on Show HN: WebJSX – A tiny Web Components and JSX library
The statement I struggle with is "Web Components are mature now", not because of bugs per-se, but more of interoperability with the larger eco-system.

One example: if I want to use tailwindcss, then adopting web components comes at a cost/risk. While there are techniques like in this tutorial [1], you end up getting cut by the bleeding edge if you are not using Lit, you are using vite (based on comments), etc etc. (And the space moves so fast, I'd be afraid that any architectural differences between Tailwind and Web Components, might start to hurt me further in the future.)

1: https://www.youtube.com/watch?v=HwkXCYiRgtE

tomhallett··on Breaking Down OnlyFans' Economics
Tom Petty said we were such a great crowd that we should all get on sail boat and go to Tahiti. Felt pretty personal to me. /s
tomhallett··on Kolmogorov-Arnold networks may make neural networks more understandable
If a KAN has multiple layers, would tweaking the equations of a KAN be more similar to tweaking the weights in a MLP/NN, or more similar to tweaking a decision tree?

EDIT: I gave the above thread (light_hue_1 > empath75 > svboese > empath75) to chatgpt and had it write a question to learn more, and it gave me "How do KAN networks compare to decision trees or neural networks when it comes to tracing causality and making interpretability more accessible, especially in large, complex models?". Either shows me and ai are on the right track, or i'm as dumb as a statistical token guessing machine....

https://imgur.com/3dSNZrG

tomhallett··on The "email is authentication" pattern
"soerxpso" said "store your key at the bank", but you are saying "two or N places". So it sounds like 1 bank is less secure for your key then 1 bank is for your money, because you need two or more banks for your key, while 1 bank for your money is sufficient. Correct?
tomhallett··on Ask HN: How Can I Quickly Launch My Web Product and Attract Target Users?
1) read “the mom test”

2) I hear that you scratched your own itch. When you had the itch/problem, what did you do to see if someone else had solved it before you started building? If you “only” did a quick google search, then you can try to rank for the phrase you searched for (which might be super hard). Did you post on Reddit/slack-group - if so, build a presence there so that when other people ask that same question, you can be there to help (and mention your solution)

3) try to meet people in real life who might have this same itch/problem, and talk to them

tomhallett··on Launch HN: Fortress (YC S24) – Database platform for multi-tenant SaaS
Is there a list anywhere of these types of checks you do which are critical to approving a saas vendor?
tomhallett··on Ask HN: What was your biggest startup fail?
“The mom test” is an amazing book for this exact problem
tomhallett··on Ask HN: Front-end bait and switch?
In your offer letter, it should say what your job responsibilities are. Usually things like “work with stakeholders to develop features”, etc etc.

In that offer letter, you need to negotiate so that it says “backend features” and “op will not be required to implement frontend features, which use technologies like JavaScript, typescript, and css”.

The act of negotiating this will show you if the company is actually ok with this or you are just being told yes by a recruiter.

If you can’t get this, then you are effectively powerless.

Page 1 of 10Next →