Hacker Newsnew | past | comments | ask | show | jobs | submit | more mtlynch's commentslogin

I think the most disruptive part is the migration to the new LTX format,[0] which I'd imagine is hard to do incrementally.

[0] https://fly.io/blog/litestream-v050-is-here/#the-ltx-file-fo...


Litestream author here. Yes, that's correct. LTX was the biggest hurdle to get over and was impossible to switch over incrementally. The storage layer change brings a lot of benefits and enables a lot of future work that we're really excited about.

Thanks to mtlynch and everyone else who has submitted bug reports. We're squashing issues and working to get everything stable as quickly as possible.


Does using NextDNS mean that you both can see a list of all the websites anyone in your family visits?


Yes but that’s the case for any DNS (which is why your ISP loves it when you use their DNS, for “marketing” data they sell to others). However, similar to pihole and adguard, you can turn off logging if you want.


Only to the domain level, not individual websites.


>Say what you will about Uber, but no Uber driver has ever tried to lie and harass a passenger over whether or not the credit card machine is broken in an effort to cheat on their taxes.

This actually did happen to me. When I was in Hyderabad, I took an Uber from my company's office to the airport, and the driver said his phone died right after picking me up, so I had to pay cash.


I've had that happen a few times in Chicago. Worked out well for me, since I had the driver agree that I'd pay half the fare that was the upfront price. Then I reported the drivers for the scammers they are to Uber, and I got a refund of the price I never paid in the first place, plus credit. Love me some VC welfare.


Yeah, it's a real thing that happened to me, to. In multiple US cities. And I'm sure we're far from alone.


Uber is almost always cash in cities I’ve visited in India. Some take UPI too but it’s hard to use that as a foreigner.


>My first instinct to this piece of news is a five-char word starting with 'S'.

Am I the only one who can't figure out the word?

Did you mean four characters? Or are you including a null-terminator? Extra 'e' if you're British?


Yes! Including a null-terminator '\0'

:P thought someone is going to ask but great that people on HN figured it out already


Manning doesn't pay that much to first time authors, and it looks like it's the first book for the author, Garrison Hinson-Hasty.

My guess is it's about $2k upfront and the author owes it back if they don't deliver.

Teiva Harsanyi did a good writeup recently about working with Manning as a first-time author. He got $2k upfront and $2k after delivering the first 1/3rd.[0]

[0] https://www.thecoder.cafe/p/100-go-mistakes


When I wrote Elm in Action for Manning, I talked with them explicitly about the language being pre-1.0 and what would happen if there were breaking changes. The short answer was that it was something they dealt with all the time; if there were small changes, we could issue errata online, and if there were sufficiently large changes, we could do a second edition.

I did get an advance but I don't remember a clause about having to return any of it if I didn't earn it out. (I did earn it out, but I don't remember any expectation that I'd have to give them money back if I hadn't.) Also my memory was that it was more than $2k but it was about 10 years ago so I might be misremembering!


> the language being pre-1.0 and what would happen if there were breaking changes.

Fortunately, Elm has had no breaking changes for about six years!


>The DX for deploying SQLite apps to Fly.io is rough. I'm a few hours into trying to get a production Rails app booting, but running into issues getting the database to initialize, migrate, and become writable. The root of my problem was the eager loading of a gem I wrote, but there were several layers of runners above it that made it hard to diagnose.

What's the Fly.io issue here? Aren't the issues you're describing in Rails not Fly.io?

I run several Go apps in production on Fly.io[0, 1, 2] and I've never had an issue with the Fly.io + SQLite part of it.

SQLite + Litestream makes things slightly more complicated, but again, I've never had issues with Fly.io specifically making that harder. I use a custom launch script in my Dockerfile that starts litestream with the -exec flag to start my app as a child process.[3]

[0] https://github.com/mtlynch/logpaste

[1] https://github.com/mtlynch/picoshare

[2] https://github.com/mtlynch/screenjournal

[3] https://github.com/mtlynch/logpaste/blob/0.3.1/docker-entryp...


Thx. The only problem I have with litestream binary is ~31Mb !?

This why I prefer to take backup stuff in a side container, eg: https://github.com/atrakic/gin-sqlite/blob/main/compose.yml

As a side note, you might consider revisiting your dockerfiles and skip litestream build steps, eg. in your final stage just add line like this:

COPY --from=litestream/litestream /usr/local/bin/litestream /bin/litestream


>Thx. The only problem I have with litestream binary is ~31Mb !?

Where are you seeing a 31 MB binary? Latest releases are 10-11 MB.[0]

>This why I prefer to take backup stuff in a side container, eg: https://github.com/atrakic/gin-sqlite/blob/main/compose.yml

Yeah, I agree that's cleaner, but once you're dealing with multiple containers, it's a big step up in complexity, and you can't do the simple install on places like Fly.io and Lightsail.

>As a side note, you might consider revisiting your dockerfiles and skip litestream build steps, eg. in your final stage just add line like this:

>COPY --from=litestream/litestream /usr/local/bin/litestream /bin/litestream

Ah, thanks! The litestream Docker image is new as of 0.5.0.

[0] https://github.com/benbjohnson/litestream/releases


This happened before in hiQ Labs v. LinkedIn.[0]

I've heard a lot of people cite this case as proof that scraping is legal, but it seems like the decision kept going back and forth in appeals, and I never understood what precedent it set, if any, around the legality of scraping.

[0] https://en.wikipedia.org/wiki/HiQ_Labs_v._LinkedIn


This one seems different from the (correct) ruling in favor in hiQ Labs, where the courts were quite clear that scraping the public Internet was completely legal.

This is a case of a company creating millions of fake user accounts, so they’re behind the login wall and not on the public side of the Internet anymore. At least, that’s how I’m reading this.


Very excited to see Fly restart development on Litestream after a 2ish year freeze!

I love Litestream and use it in every app I build now.

They advertise it as costing "pennies per day," but it's even less expensive than that. It obviously varies depending on how much storage you need, but I had a real app in production, and Litestream replication to S3 only cost me 2-3 cents ($0.02-$0.03) per month.[0]

[0] https://mtlynch.io/litestream/#using-logpaste-in-production


Thanks for reading!

>This is about as incorrect as it gets.

>The only way to verify correctness is to change the production code in a way that should cause the test to fail, then watch it fail. In TDD this is done by writing the test before you write the code that would make it pass, then watch it fail. Only then are you allowed to write the code that makes it pass.

>Otherwise you have no proof the test can EVER fail - which means no proof it adds value to your codebase.

I agree that changing the production code to cause a failure can be helpful, but I think it's an overstatement to call it "the only way to verify correctness." When I optimize for simplicity, I rarely encounter tests that pass in situations I didn't expect.

Also, forcing tests to fail doesn't really scale. You can do it initially as you write a new function, but once you commit your changes, whatever you've learned from the exercise evaporates. If you change the function or any of its dependencies, presumably you're not going to repeat the exercise of forcing each assert to fail one-by-one. According to what you're saying, that means that there's no longer proof that the test can fail.


Thanks for reading and for sharing your post!

In your writeup, it seems like you're arguing that LLMs can't eliminate essential complexity, and I agree that they probably can't.

But I do think they can reduce essential complexity.

As a concrete example, here's me prompting Claude 4.1 Opus to define a domain-specific language for creating computer-generated paintings.[0] I just provided the requirements and left a lot of ambiguity in the specifics.

In that example, has LLM reduced essential complexity at all?

To me, the answer is clearly yes. It wrote a spec based on my requirements. I could potentially do better if I defined it from scratch, but if the LLM-generated spec is good enough, then it likely isn't worth the cost of me doing it myself for the marginal improvement in quality.

When LLMs first came out, I felt like I had no need for them because I think I can write code better than they can, and I enjoy writing code. But as I've started experimenting with them, I'm realizing that there are some problems that I can solve with software that I don't actually enjoy implementing and I don't care that much about specifying every aspect of my program's behavior, so LLMs fit well in those situations and eliminate essential complexity that would otherwise fall in my lap.

[0] https://kagi.com/assistant/1b8324a2-ae54-4a1b-9c69-51d76fc5c...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: