HNHacker News
TopNewBestAskShowJobs

agbell

1 karma · joined September 1, 2023

submissionscomments
agbell··on Show HN: Earthly – Better Builds
I know less about Bazel then Vlad does so he may have a better answer. But Earthly lets you use your languages build tool and expects but does not enforce that the individual steps you call are reproducible.

So it is a less granular approach than Bazel which we think offers a lot of same benefits but without guaranteed bit for bit reproducibility. You can do non-repeatable things in a `RUN` but if you don't then it works well and you get to use all your existing tooling rather than having to replace them.

agbell··on Show HN: Earthly – Better Builds
Here is an SBT example[1]. Earthly is starting up the database dependencies, running the integration tests, tearing them down and other glue type things that need to happen when a complex build pipeline has dependencies and several steps.

https://github.com/earthly/earthly/blob/main/examples/integr...

agbell··on Show HN: Earthly – Better Builds
Thanks for checking it out. We do get a lot of requests for podmad support and have it on our roadmap here: https://github.com/earthly/earthly/projects/1
agbell··on Show HN: Earthly – Better Builds
Thanks for checking it out. This is something we have plans for.
agbell··on Show HN: Earthly – Better Builds
We do have plans for podman and other container runtime support. Here is our roadmap:

https://github.com/earthly/earthly/projects/1

agbell··on Show HN: Earthly – Better Builds
We support dependencies in a number of ways, but are a bit different than make dependencies, because the file system of each step is separate unless you explicitly copy in or depend on other targets. This helps us do things in parallel because you are being explicit about the DAG of the build.

Copying or using file from a step causes your step to depend on it. Similarly for a `from +target`.

We also have variables, user defined commands and conditional logic. User defined commands are our way to composition.

https://docs.earthly.dev/docs/guides/udc https://docs.earthly.dev/docs/earthfile#copy

agbell··on Show HN: Earthly – Better Builds
Hi, We have a blog post discussing the license change here: https://earthly.dev/blog/every-open-core-company-should-be-a...
agbell··on Show HN: Earthly – Better Builds
It's pure target transactional, so it would not keep intermediate files in that case.
agbell··on Show HN: Earthly – Better Builds
Hi, just on my phone but Dependencies and parrellism are supported. It's inferred from the structure of targets.
agbell··on Show HN: Earthly – Better Builds
Not right now, but we are happy to take a PR :)

You can probably just manually write a buildspec that has a single earthly call:

    command:
        - earthly +build
I've not used CodeBuild though, so I'm not totally sure.

Long term, the idea of generating the config for N possible build systems from Earthly is something we want to explore but we aren't there yet.

agbell··on Show HN: Earthly – Better Builds
So you just have to pull in earthly and then call it. Here is an example. Note that the travis file has almost nothing, because you can move all that to an Earthfile so that you can easily port it and run it locally.

https://github.com/zedtux/database_cleaner-nobrainer/blob/ma...

https://github.com/zedtux/database_cleaner-nobrainer/blob/ma...

agbell··on Show HN: Earthly – Better Builds
I like nix. If you dig into nixpkgs far enough back you can find commits from me bumping version hashes on postgres.

The caching and our future plans for distributed builds have some similarities with Nix Hydra and Bazel but creating images in earthly is closer to docker multistage builds than it is to nix.

We are not just for building docker images, though. In the real world a 'build' is more than just building an image. It will have linting, and tests and integration tests and maybe some services need to be stood up and tore down in between to make sure an api contract wasn't broken and you might need different binaries generated for different architectures and so on.

I could be wrong but I think nix is focused more on just the producing the artifact part. I do love how they approach every build as a pure function though.

agbell··on It may just be a game to you, but it means the world to us
It does seem strange. If they wanted that emphasis they could have used a quote.

> "It may just be a game to you but" Red Cross spokesperson tine said "it means the world to us."

agbell··on Show HN: Earthly – Better Builds
Thanks for checking it out. You can totally do that. We are using moby/buildkit and docker to provide this platform independence.
agbell··on Show HN: Earthly – Better Builds
Thanks for checking it out.

I've not tried this and I'm not very familiar with TeamCity but it should just work. If you are running the teamcity builds inside of containers, you may need to switch that off, as Earthly brings its own containerization.

agbell··on Console Do Not Track – Proposal for a standard environment variable
This is a great idea, but I feel like it needs an adoption and roll out strategy so that is starts to snowball.

I think that opening PRS makes a lot of sense, but smaller projects or projects that don't yet have an opt-out mechanism are the most likely to adopt it in the early days I think. Then once you gather some momentum around those bigger projects might follow suit.

agbell··on The Programmer's Brain
Volume levels are relatively easy address so hopefully they have that under control. Quality is hard because you take your guests as they are and people often don't realize the how echoey their room is or how poor the microphone they have is.

I use Izotope de-reverb on my own podcast to improve the quality somewhat, but there is only so much you can do.

agbell··on The Programmer's Brain
Felienne is also a host on Software Engineering Radio. If you are curious about the content I think a teaser of it is covered in this interview:

https://www.se-radio.net/2021/06/episode-462-felienne-on-the...

agbell··on Git vs. Fossil: what you should have done vs. what you did
Agreed and also it is valuable to not have a total monoculture. It's helpful to have people out and exploring other ways to do things.
agbell··on Git vs. Fossil: what you should have done vs. what you did

    >"I looked at Git, I looked at Mercurial, and I looked at my requirements and I thought, “You know what? I’m just going to write my own,” so I wrote my own version control system, which is now a project unto itself, and that worked out very, very well, because think, Linus Torvalds wrote Git to support the Linux kernel, and it is perfectly designed to serve the needs of the Linux kernel development community. If you’re working on the Linux kernel, Git is absolutely the perfect version control system.

    >Now, if you’re working on something else, though, maybe not so much, and so, it’s a perfectly atrocious version control system for working for SQLite.

    >Fossil is absolutely the perfect version control system for working in SQLite, and I wrote it for that purpose, and so, because I wrote it myself, it exactly meets my needs and is the perfect product for what it’s doing, so by doing things yourself, you control your own destiny, you have more freedom, you’re not dependent upon third parties."
https://corecursive.com/066-sqlite-with-richard-hipp/#buildi...
agbell··on The Untold Story of SQLite
It's interesting that when I interviewed him, he has all these built-it book cases behind him in his office. The idea of not needing the internet but just occasionally grabbing a book from behind you to look something up when developing software is very appealing to me.

When I interviewed Brian Kernighan one of his complaints was how so much of modern programming is just looking things up rather than building things and I think that Richard has escaped that fate by building things himself.

agbell··on The Untold Story of SQLite
Thanks, I have interviews on software engineering radio as well: https://www.se-radio.net/team/adam-gordon-bell/
agbell··on The Untold Story of SQLite
I'm glad you like the podcast! I do push back when something doesn't sound right. I agree though that I could have asked more about fossil. I really didn't look into fossil that much when I prepared for the interview so it was a bit of a blind spot for me.

Not included in the interview is a discussion we had about types. I really think SQLite should be stricter in enforcement of types and Richard doesn't buy it. I may include it in a future bonus episode but the reason I cut it was it didn't really include any details about story of SQLite, it was just two people disagreeing about types. I've done a lot of episodes about types in the past and I wanted this to be about build SQLite, and not about types.

agbell··on The Untold Story of SQLite
CoRecursive started because I did some episodes as a host on software engineering daily and it was lots of fun so I decided to start one of my own. The first 4 episodes were originally on software engineering daily.

Originally the idea was to give some platform to the areas of computing I was interested in, heavy use of types and functional programming but I think I really found my place as a podcast when I started to focus on peoples stories. So rather than tell me about SQLite, it is tell me about the story behind creating SQLite.

agbell··on The Untold Story of SQLite
Thanks for listening! I'm glad you enjoyed it.
agbell··on So you want to make a fiction podcast?
I am a podcast creator myself, though not one who is doing fiction. Great guide! I am going to give your podcast a listen.
agbell··on The Untold Story of SQLite with Richard Hipp
Yeah, it would be a cool project. Fossil, his source control and ticket manager looks interesting as well. I don't think I would use it, with git so intrenched, but the way it shows diffs on tickets is really nice.
agbell··on SQL Errors and Video Cameras
I wrote this and would love to hear what people think.

I have been working remotely for nine years, and it just consistently surprised me that people wouldn't use every available communication channel. This is my attempt to explain a benefit of video.

agbell··on Unison Programming Language
I think this is the episode you are talking about [1] Runar and Paul a huge inspiration! I'm not totally sold on this idea as practical, but I think it will get there and while they have a lofty goal, I certainly wouldn't bet against the pair of them.

[1]: https://corecursive.com/027-abstraction-and-learning-with-ru...

agbell··on Don't Feed the Thought Leaders
I think this progression could make sense as a personal learning progression. The real world is probably more complex than this though.

See for example https://news.ycombinator.com/item?id=27468360 where the person mentions pressure to simplify advice and Tetlocks own work shows that the hedgehogs were the more famous and successful people. So some people may migrate backwards by simplifying a message for maximum impact.

← PreviousPage 2 of 10Next →