MurphyA/hacker-news huggingface dataset:
by throwanem | 2025-05-03 21:27:02+00:00
I tossed a legal document at it which was recently of passing interest to me, and it looks like embedded fonts still need some work. I'm not inclined to share a test case from what I have, which relates to a change of name and in any case was not really prepared by anyone especially competent when it comes to PDFs and their content; I tested with the first, facially void, version I was given. But it is possible I'll find more use for this tool, and if a shareable test case does come along then I'll do so. (And heaven knows with this document format, embedded fonts are a total nightmare always, even somehow in programmatic authoring. I'm not criticizing!)

On a similar note, a downloadable (single-file HTML or so, although these days some kind of HTTP service is a practical necessity) version would be nice to have. Low pri even from my perspective; it isn't that I spend a lot of time in places with no cell signal, so much as just that tethering on an a la carte plan gets out of hand pretty quick, since applications aren't at all required to honor or even notice the existence of the "data saver" option.

This is really neat! Thanks for posting it, I've bookmarked it for later use in the "just need a quick tweak" kind of case. I'll look forward to seeing how it develops!
by benblue | 2025-05-03 21:27:25+00:00
I agree that ActiveRecord isn't particularly opinionated about how to deal with updates to batches of records, but there are multiple ways of approaching this and AR won't get in your way.

upsert_all[1] is available to update a batch of records in a single write that does not invoke model callbacks.

activerecord-import[2] is also very nice gem that provides a great api for working with batches of records.

It can be as simple as extracting your callback logic and a method (def self.batch_update) and running your callback logic after the upsert.

[1] https://api.rubyonrails.org/classes/ActiveRecord/Relation.ht... [2] https://github.com/zdennis/activerecord-import
by princevegeta89 | 2025-05-03 21:28:51+00:00
The good news is GraphQL is very quick and easy to pick up and it gives that inbuilt functionality to fetch exactly the amount of data that we need. On top of it, it also has enough flexibility to integrate with your business logic. So it can be a straightforward replacement for a traditional REST API that you would have to manually build.

For the disadvantages, I cannot think of any. It is a bit slower than hand rolling your own REST API, but the difference is not severe enough to make you give up on it.
by faizshah | 2025-05-03 21:28:59+00:00
I think from a business perspective, the hiring pool for Rails is small and younger engineers don’t have an interest in learning Rails (check recent university hackathons). It takes a decently long time (2-3+ months) to upskill a non-ruby engineer to be productive in Rails (although this is dampened by AI tools these days) and many senior non-ruby engineers aren’t interested in Rails jobs whereas you can get an Node or Java engineer to come to your Go shop and vice versa. Rails can also be hard to debug if you work in a multi-language shop, you can’t map your understanding of Java or Typescript over to a Rails codebase and be able to find your way around.

All that being said I still use (and like) Rails, currently comparing Phoenix/Elixir to Rails 8 in a side project. But I use typescript w/ Node and Bun in my day job.
by renewiltord | 2025-05-03 21:29:14+00:00
Are people going on with an estimate of how much time and money a specific tech stack saves? You come up with a number for this and it's accurate, I assume. Like if I were to say Node+TypeScript+Express vs. Golang you'd have an answer. If you get that right more often than not then the answer is you're really good at it in a way most people aren't.
by fallingknife | 2025-05-03 21:29:30+00:00
I think a lot of the objections here aren't really bureaucracy in terms of government employees doing things. A lot of what people mean when they complain about "government bureaucracy" is really that it often seems to be 20 people taking 6 months to do something that should take 5 people 6 weeks. So discussions on this tend to get confusing.
by pyth0 | 2025-05-03 21:29:54+00:00
This is only true if you ignore the important material and historical factors that go into the success of a country. Like for example, the immense wealth of natural resources and variation in climates that the US has. Or how about escaping much of the devastation that Europe faced in WW2 and benefiting immensely from helping them rebuild. Or having (for the most part) incredibly safe and stable relationships with neighbors to the north and south. Free markets have certainly contributed to success, but to say it's the only unique thing about America is just wrong.
by zhivota | 2025-05-03 21:30:22+00:00
I agree and I think furthermore no one has really understood technology enough to have consistently made the right moves, because tech stocks fundamentally were blazing a new trail.

Buffett invested in businesses that, relatively speaking, were already well understood, if not widely by everyone, the point being that you could look at the balances and financial statements of an insurance company and derive an investment plan that was based on basically nothing new. Google, and tech in general, were not like that.

I think now some tech stocks do look like that. Microsoft, Oracle, Salesforce, all have business models that are much more well understood at this point than 30 years ago.

Even though Google has been wildly successful, I do see them as riskier since they derive so much of their income from web search ads, which feels like a precarious position compared to selling office productivity suites, databases, and CRMs to enterprises (I know Google does some of this but it's not where they make the bulk of their income).
by xandrius | 2025-05-03 21:30:25+00:00
Big problem? Who are you talking to?

Really, it someone can't even type a response back, were you ever close to begin with? Unless they always had some level of anxiety when sending you a text, in that case it's good for them to still interact with you without feeling the negative effects (some people truly have issues sending even the simplest messages back to friends).

But in reality no, this won't be a problem. We had copy paste and template system for decades and nobody are using those. And at the end of the day, even if our AI plan our meeting for us, and then end up meeting IRL, what's the problem?
by klabb3 | 2025-05-03 21:30:56+00:00
> Maybe people will just stop caring about the human touch.

No they won’t. This has happened many times in the past already with live theatre -> movies, live music -> radio etc. They don’t replace, but break into different categories where the new thing is cheap and abundant. When a corporation writes you a shit letter with ”We miss you, Derek” all reasonable people know what they’re looking at.

Look, it’s about basic economics. It doesn’t matter how ”good” the generated song for someone’s birthday is. What matters is the time, money and effort. In some cases writing a prompt for one-time use is not bad. If you’re generating individual output at scale without any human attention, nobody will appreciate the ”gesture”.

What bothers me is the content farm for X shit-startups and tech-cos thinking they’re replacing humans without side effects. It’ll work just as well as those fake signatures by the CEO in junk mail: it’ll deceive only for a short time, and maybe older people who may be permanently screwed. It’ll just be yet another comms channel saturated with spam, which is entirely fungible from the heaps of all other spam. A classic race to the bottom.
by freedomben | 2025-05-03 21:30:59+00:00
We currently have two major apps, One in typescript and one in rails. I have to hire devs for both, and I have not experienced it being any more difficult to find a rails developer or a node/typescript developer. If anything, I think finding a rails developer with relevant experience is even easier because the stack is so much more standardized. With people with node experience, there is a huge chance that they won't actually have any experience with the libraries that we are using, even though they've used other libraries in the node ecosystem. With rails, however, pretty much everybody with experience in a rails app will be able to jump into our application and will see a lot of stuff that is familiar right out of the gate.

I'm personally an elixir Phoenix Fanboy now, so I don't choose rails as my first choice for personal projects, but I think it is an excellent choice for a company. In fact, I would probably recommend it the most over any framework if you need to hire for it.
by x0x0 | 2025-05-03 21:31:05+00:00
Downsides:

Rails is a sharp knife. There is Rails way to do things. You may of course choose to do them differently (this is a contrast with other toolkits that fight this hard), but you are going to have to understand the system well to make that anything but a giant hassle.

With rails, the way it scales is statelessness. You have to map the front end actions to individual endpoints on the server. This works seamlessly for crud stuff (create a thing; edit a thing; delete a thing; list those things). For other use cases it works less seamlessly. NB: it works seamlessly for nested "things" too.

Complex multi-step flows are a pain point. eg you want to build data structures over time where between actions on the server (and remember, you must serialize everything you wish to save between each action), you have incomplete state. Concretely: an onboarding flow which sets up 3 different things in sequence with a decision tree is going to be somewhat unpleasant.

You must keep most state on the server and limit FE state. Hotwire works extremely well but the FE must be structured to make hotwire work well.

I've actually found it to work pretty well with individual pages build in react. My default is to build everything with hotwire and, when the FE gets too complex, to fall back to react.

Rails is nobody's idea of a fast system. You can make it perform more than well enough, but fast it is not.

Upsides, my take: it is the best tool to build websites. The whole thing is built by developers for developers. DX and niceness of tools are valued by the community. Contrast with eg the terrible standard lib that other languages (hi, js) have. Testing is by far the most pleasant I've used, with liberal support for mocking rather than having to do DI. For eg things like [logic, api calls, logic, api calls, logic, db calls] it works incredibly well. It is not the most popular toolkit and it's not react, so that can count against you in hiring.
by rorylaitila | 2025-05-03 21:31:06+00:00
So I just judged an international business plan competition. These were high school or college age applicants. 6 out of the 10 companies in my session were "AI powered." 5 years ago they would have been blockchain powered. 10 years ago it was mobile apps. None of the businesses actually required "AI". They were robotics, medicine, call center software, business intelligence, agricultural. At most, they needed some ML. I think people just get excited about what feels up and coming, whether it actually matters to the business or not.
by GoblinSlayer | 2025-05-03 21:31:13+00:00
The discussion started about whether human needs math skills to write code. That's what I mean when I say programming isn't mathematics. Meaning of code is defined by human, how do you intend code to be defined by mathematics? The human first imagines mathematical formulas, then by some unknown process they become code? I don't think anybody does it like that. You start with requirements, intuitively guess architecture, then decompose it, it works more like Cauchy problem (but less numeric, more conceptual, you have an owl, now draw it), but I don't think anybody models it like that.

>Once the code is actually written, that exists as a formal logical system, defined by mathematics

I still think that's not code, but your favorite model of code. For spellchecker language is defined by mathematics too: it splits text into words by whitespace, then for each word not found in dictionary it selects best matches and sorts them by relevance. Oh and characters are stored as numbers.
by microflash | 2025-05-03 21:31:14+00:00
The right tool for a given problem is usually much more ergonomic and productive. To me purism of language or tooling is a disservice to an engineer’s instinct of solving a problem. Use Python where it is a strong option. Use Spring Boot where it makes sense.

BTW, I’m also on a similar trajectory using a mix of Java, Python and Node.js to solve different problems. It has been very pleasant experience compared to if I had been bullish on just one of these languages and platforms.
by antirez | 2025-05-03 21:31:31+00:00
The clue is in the rs232 mentioned in my comment. Linux is a Unix, even if nobody does it today you can configure an external terminal via serial port and use the system as if you were a user.

The two Linux box were one with the modem and the other via Nat (Ethernet but with old coaxial cables). The AT was just a terminal.
by pixl97 | 2025-05-03 21:31:44+00:00
>You can’t make any reasonable guarantees on authorship unless you change the entire hardware stack and tack on loads of DRM.

Even then you can't trust it. Companies write DRM and tend to have actual humans run the place. If the government where these humans live decides to point guns at them and demand access, most humans are going to give up the key before they give up their life.
by swyx | 2025-05-03 21:32:13+00:00
> Four others that raised money but with painful recapitalizations that effectively wiped out early shareholders. That last bullet was the nail in the coffin for me. For new investors to come in and wipe out early investors just because the market was in their favor was painful. It felt like opportunistic resets that enriched later investors at the expense of early supporters (not to mention early employees).

what? how does this happen exactly? i'm not aware of the normal mechanisms. are there not minority shareholder protections?
by qq99 | 2025-05-03 21:32:27+00:00
Can't speak to ORMs, but I'd have a look at SolidStart. If you need an API, add in tRPC. End result is highly typed, can do SSR, and once you get used to it, it's a much better experience than using React.

I still haven't found an ORM with JS that really speaks to me.

> there are so few rails people available (compared to js) that it's not viable for any professional project

I don't think this is true; Shopify is a Rails shop (but perhaps it's more accurate to say it's a Ruby shop now). It feels easy to make a mess in Rails though, imo that's the part that you could argue is irresponsible
by twelvechairs | 2025-05-03 21:32:35+00:00
DuckDB is a great thing for geospatial but most important of the past decade? There's so many tools in different categories it wouldnt come near top for me. Some might be QGIS, postGIS (still the standard), ArcGIS online (still the standard), JS mapping tools like mapbox (i prefer deckgl), new data types like COG, geopackage and geoparquet, photogrammetry tools, 3d tiles, core libraries like gdal and now pdal, shapely, etc.
by simonjgreen | 2025-05-03 21:32:39+00:00
I know it’s not straight HTML, but SSI (server side includes) helped with this and back in the day made for some incredibly powerful caching solutions. You could write out chunks of your site statically and periodically refresh them in the server side, while benefitting from serving static content to your users. (This was in the pre varnish era, and before everyone was using memcached)

I personally used this to great success on a couple of Premier League football club websites around the mid 2000s.
by omoikane | 2025-05-03 21:32:40+00:00
> an infinite loop of includes

We can probably copy the specs for <frameset> and deal with it the same way:

https://www.w3.org/TR/WD-frames-970331#:~:text=Infinite%20Re...

Any frame that attempts to assign as its SRC a URL used by any of its ancestors is treated as if it has no SRC URL at all (basically a blank frame).

> How to ensure that all other browsers implement it in the same way?

Browsers that don't implement the specs will eventually break:

https://bugzilla.mozilla.org/show_bug.cgi?id=8065
by dmix | 2025-05-03 21:32:52+00:00
> Especially if you're working on something that requires interaction with the page that you will be repeating over and over again.

That’s honestly not that many things IRL. If you look at all the things you build only a minority actual demand high interactivity, or highly custom JS. Otherwise existing UI libraries cover the bulk of what people actually need to do on the internet (ie, not just whatever overly fancy original idea the designers think is needed for your special product idea).

It’s mostly just dropdowns and text and tables etc.

Once you try moving away from all of that and questioning if you need it at every step you’ll realize you really don’t.

It should be server driven web by default with a splattering of high functionality islands of JS. That’s what rails figured out after changing the frontend back and forth.

> Even with auto reload in PHP, .NET, etc you will be wasting so much time

Rails has a library that will refresh the page when files change without a full reload, using Turbo/Hotwire. Not quite HMR but it’s not massively different if your page isn’t a giant pile of JS, and loads quickly already.
by cjs_ac | 2025-05-03 21:33:38+00:00
> It's not like McDonalds has a sign that says "Made with US Chicken!" on your nuggets.

I'm not sure whether this is still the case, but the cardboard boxes that McDonald's packages its burgers in in Australia used to have '100% Aussie beef' printed on them, but the beef was actually imported from South America by a wholly-McDonald's-owned subsidiary called '100% Aussie'.
by giantrobot | 2025-05-03 21:33:44+00:00
Frames were widely abused by early web apps to do dynamic interfaces before XHR was invented/widely supported. The "app" had a bunch of sub-frames with all the links and forms carefully pointing to different frames in the frameset.

A link in a sidebar frame would open a link in the "editor" frame which loaded a page with a normal HTML form. Submitting the form reloaded it in that same frame. Often the form would have multiple submit buttons, one to save edits in progress and another to submit the completed form and move to the next step. The current app state was maintained server side and validation was often handled there save for some basic formatting client side JavaScript could handle.

This setup allowed even the most primitive frame-supporting browsers to use CRUD web apps. IIRC early web frameworks like WebObjects leaned into that model of web app.
by aziaziazi | 2025-05-03 21:33:52+00:00
> traditional family farms.

> relatively full lives

Thanks to point out the difference between industrial and family farm. However I'm not sure what farms in particular you have in mind but anything commercial has non incentive to let the animal live a "relatively full life": the meat of a relatively old animal taste far from what people are used to eat and is (way) more expensive to produce. Some producers add a few weeks to the legal minimum to let them grow a bit more but nothing near their natural expectancy. Lets take chickens for exemple, here in EU:

- standard are harvest 35 days (32 if for export)

- certified (floor, outdoor) at 56 days

- highest quality (Bio and local certifications): 81 day

- egg poultry final harvest: around 1 year and half when egg production slow down

- natural life expectancy of a chicken: 8-10 years.

> can live happy

"happier" would be more accurate IMHO but as some people point our frequently: we can't know for sure how another animal feels so it's only guess. What we can do is remove the farm fences and do not force them onto the slaughter house. They'll choose themselves to go to what makes them happy.
by gpm | 2025-05-03 21:34:02+00:00
I'm pretty sure by north-south they are talking about the direction the panel lies in, i.e. the faces point east/west.

But even under your interpretation, you aren't always right. If you're far-ish north of the equator you want south facing panels (and the reverse) and if the cells are cheap enough it makes sense for those panels to be bifacial, with one side permanently facing away from the sun, to get a bit of extra energy from ambient light. Especially in winter when there is less sun (so energy is at a premium), and highly reflective snow resulting in a lot of ambient light.
by nerdjon | 2025-05-03 21:34:26+00:00
Right I mean the chocolate one is illegal. The chicken one, honestly not fully sure since Purdue keeps getting exposed but idk if they actually have had legal issues? But my point with both of those is, as bad as those would be they don't have an impact on your health eating the product.

Regardless, I don't disagree that we should have some labeling on business practices behind the food that we eat as long as it is actually communicating what needs to be communicated instead of just fear mongering.

"GMO Free" (or requiring it to say it has GMO) tells the consumer absolutely nothing. Its meaningless. All it does is try to sow fear about a thing that its existence itself is not the problem.

"Forbids farmers from using last years seeds", "Uses increased herbicide" like the example the other person mentioned, or whatever that actually communicates what the business concern is to the consumer would be great.

But that is not what we are doing here with labeling GMO.
by philjohnson | 2025-05-03 21:34:30+00:00
Thanks! Text comments, redaction and flattening are definitely features I'll add.

One way it'll avoid enshitification is that I have no VCs or anything like that, it's just me. So I only answer to actual users.

My hunch is that while PDF editing is something people commonly do, most people probably don't want to pay for it, at least for basic features. My plan is to add Google Adsense, but in a way that is non-obstructive/intrusive.

Depending on feedback, I might add a paid plan for much more advanced features if there's demand. But all the features you mentioned that are missing, as well as all other basic features, will always remain free. Since all the editing happens in the browser, it's a win-win for privacy and lower resource utilization. I just have to render the webpage. It runs on a low cost VPS, so it costs me almost nothing to keep this software running. Given that, there's no current or future costs that would give any reason to remove free features.
by quantadev | 2025-05-03 21:35:41+00:00
I agree, just use React from day one. The reality is that web pages are hardly ever perfectly static, and once there's any dynamic nature to it at all you need something like React or else you'll have a train wreck of JS DOM-manipulation calls before you know it. React is perfect. You just update your state and the page magically re-renders. It's a breeze.
by stevebmark | 2025-05-03 21:35:41+00:00
Is this article comparing apples and oranges? For example

> loading the entire homepage only takes one query [if you're logged out]

You can do this with Next.js SSR - there's nothing stopping you from reading from a cache in a server action?

They also talk about Vercel hosting costs, but then self host Rails? Couldn't they have self hosted Next.js as well? Rails notoriously takes 3-4x the resources of other web frameworks because of speed and resources.