HN user

kvnhn

291 karma
Posts27
Comments38
View on HN
www.youtube.com 10mo ago

A programmable display using microfluidics [video]

kvnhn
87pts6
en.wikipedia.org 12mo ago

Unofficial HTTP Status Codes

kvnhn
2pts0
github.com 2y ago

"No" is not an actionable error message

kvnhn
3pts1
en.wikipedia.org 2y ago

Casting Out Nines

kvnhn
2pts0
fsharpforfunandprofit.com 2y ago

Designing with types: Making illegal states unrepresentable

kvnhn
3pts0
www.norvig.com 2y ago

16 of 23 GoF Design Patterns are invisible or simpler in dynamic languages

kvnhn
1pts0
www.ign.com 2y ago

The Day Before Studio Fntastic Announces Closure Just Days After Early Access

kvnhn
1pts1
news.ycombinator.com 2y ago

Ask HN: What's your favorite tech talk from the past year?

kvnhn
4pts2
dukope.com 2y ago

Making "LCD, Please"

kvnhn
187pts21
kubernetes.io 3y ago

COSI: Object Storage Management Using Kubernetes APIs

kvnhn
3pts0
github.com 4y ago

Show HN: Tailscale Authentication with Traefik

kvnhn
1pts0
www.youtube.com 4y ago

What You Skip When You Hit ‘Skip Intro’ [video]

kvnhn
1pts0
www.theguardian.com 4y ago

Sir Ernest Shackleton’s ship Endurance found

kvnhn
12pts0
www.youtube.com 4y ago

Raycasting Engine in Factorio 1.0

kvnhn
3pts0
github.com 4y ago

Show HN: A small and simple alternative to Git LFS or DVC

kvnhn
6pts0
www.gophercon.com 4y ago

GopherCon 2021 – Generics

kvnhn
27pts1
www.nytimes.com 4y ago

The Coronavirus in a Tiny Drop

kvnhn
2pts1
robertsspaceindustries.com 4y ago

Star Citizen has raised $400M

kvnhn
1pts3
www.nytimes.com 4y ago

What the Bagel Man Saw (2004)

kvnhn
1pts0
lamport.azurewebsites.net 5y ago

TLA+: a high-level language for modeling programs and systems

kvnhn
1pts0
github.com 5y ago

Show HN: A CLI tool for versioning large files alongside source code

kvnhn
6pts1
en.wikipedia.org 5y ago

Unofficial Football World Championships

kvnhn
1pts0
whuts.org 5y ago

Which hypercube unfoldings tile space?

kvnhn
95pts33
www.bbc.com 5y ago

Florida plans to fine social media for banning politicians

kvnhn
6pts11
papers.ssrn.com 5y ago

Moral Crumple Zones: Cautionary Tales in Human-Robot Interaction

kvnhn
1pts0
hash.ai 5y ago

Hash – Multi-agent simulations in your Web browser

kvnhn
1pts0
www.youtube.com 5y ago

Andrew Ng: From Model-Centric to Data-Centric AI [video]

kvnhn
4pts0

I made a simple web UI[1] for generating images like this. It uses a Go library by Michael Fogleman[2] for all the heavy lifting—hat’s off to him.

For Bézier curves in particular, iteratively constraining the search around initial matches seems key to retaining detail (see the “rep” argument in Fogleman’s work), for example in the eyes of the Vermeer portrait in the OP.

[1] https://github.com/kevin-hanselman/primitive-web-ui

[2] https://github.com/fogleman/primitive

IMO, a key passage that's buried:

"You can ask the agent for advice on ways to improve your application, but be really careful; it loves to “improve” things, and is quick to suggest adding abstraction layers, etc. Every single idea it gives you will seem valid, and most of them will seem like things that you should really consider doing. RESIST THE URGE..."

A thousand times this. LLMs love to over-engineer things. I often wonder how much of this is attributable to the training data...

I've used DVC in the past and generally liked its approach. That said, I wholeheartedly agree that it's clunky. It does a lot of things implicitly, which can make it hard to reason about. It was also extremely slow for medium-sized datasets (low 10s of GBs).

In response, I created a command-line tool that addresses these issues[0]. To reduce the comparison to an analogy: Dud : DVC :: Flask : Django. I have a longer comparison in the README[1].

[0] https://github.com/kevin-hanselman/dud

[1] https://github.com/kevin-hanselman/dud/blob/main/README.md#m...

You might be referring to me/Dud[0]. If you are, first off, thanks! I'd love to know more about what development progress you are hoping for. Is there a specific set of features that bar you from using Dud? As far as testing, Dud has a large and growing set of unit and integration tests[1] that are run in Github CI. I'll never have the same resources as Iterative/DVC, but my hope is that being open source will attract collaborators. PRs are always welcome ;)

[0] https://github.com/kevin-hanselman/dud

[1] https://github.com/kevin-hanselman/dud/tree/main/integration...

Unfortunately, there's a few things that currently hinder compatibility with DVC caches. First, Dud uses the Blake3 checksum algorithm, and DVC uses md5. This means the content-addressed caches will have completely different file names. Second, directories are committed to DVC differently than they are in Dud. For directories, not only will the committed file names not match (due to point 1), but the contents will not match either. Both of these things could be addressed, but it would take a lot of effort and would likely cost Dud in terms of its two main goals, speed and simplicity. I'm not opposed to this if we can make it work, though.

Dud currently does not support reflinks, but I think adding reflink support would be fairly straight-forward. Just curious: What filesystem and OS are you using for reflinks?

I'd be happy to chat more about this. Feel free to open GitHub issues for these items. I welcome contributions as well. ;)

I very much agree with you about DVC's feature creep. The other issue I have with it is speed. DVC has left me scratching my head at its sluggishness many times. Because of these factors, I've been working on an alternative that focuses on simplicity and speed[0]. My tool is often five to ten times faster than DVC[1]. I'd love to hear what you think.

[0] https://github.com/kevin-hanselman/dud

[1] https://kevin-hanselman.github.io/dud/benchmarks/

A thousand times, yes. I've wanted to write this same article. Thanks for saving me the time!

The industry is going to great lengths to avoid writing configuration in any ubiquitous imperative programming language. We're seeing the proliferation of hyper-specialized, clunky declarative languages with sub-par tooling and package ecosystems. In what world are templates acceptable code? I don't mean to pick on anything specific, but this[0] is the most recent example I've come across, and it's far from the most unreadable examples.

[0] https://github.com/traefik/traefik-helm-chart/blob/master/tr...

Eden 4 years ago

I haven't used it, no. Around the time Git LFS was released, my read from the community was that Git LFS was favored to supersede git-annex, so I focused my time investigating Git LFS. Given that git-annex is still alive and well, I may have discounted it too quickly :) Maybe I'll revisit it in the future. Thanks for sharing!

Eden 4 years ago

This is by no means a perfect match for your requirements, but I'll share a CLI tool I built, called Dud[0]. At the least it may spur some ideas.

Dud is meant to be a companion to SCM (e.g. Git) for large files. I was turned off of Git LFS after a couple failed attempts at using it for data science work. DVC[1] is an improvement in many ways, but it has some rough edges and serious performance issues[2].

With Dud I focused on speed and simplicity. To your three points above:

1) Dud can comfortably track datasets in the 100s of GBs. In practice, the bottleneck is your disk I/O speed.

2) Dud checks out binaries as links by default, so it's super fast to switch between commits.

3) Dud includes a means to build data pipelines -- think Makefiles with less footguns. Dud can detect when outputs are up to date and skip executing a pipeline stage.

I hope this helps, and I'd be happy to chat about it.

[0] https://github.com/kevin-hanselman/dud

[1] https://dvc.org

[2] https://github.com/kevin-hanselman/dud#concrete-differences-...

Thanks for sharing your experience. It's non-trivial and surprising behavior like this that drove me to build a custom system[0] myself.

When I started researching version control tools for large files, I remember feeling like git-annex and Git LFS were awkwardly bolted onto Git; Git simply wasn't designed for large files. Then I found DVC[1], and its approach rang true for me. However, after using DVC for a year or so, I grew tired of its many puzzling behaviors (most of which are outlined in the README at [0]). In the end, I built the tool I wanted for the job -- one that is exceptionally simple and fast.

[0] https://github.com/kevin-hanselman/dud

[1] https://dvc.org/

I highly recommend the book Kubernetes In Action by Lukša [1]. It's a fantastic walkthrough of the whole containerized stack -- from Docker containers through the Kubernetes API and some info on Kubernetes internals towards the end. This is one of those rare books that takes an intimidating topic (k8s) and makes it all make perfect sense. It's heavily examples-driven with lots of annotated code and diagrams. The first edition uses both minikube and GKE.

[1] https://www.manning.com/books/kubernetes-in-action-second-ed...

Thanks for sharing this. It's very hard to lend credence to this series after reading this follow-up. Quoting from the link:

"There are certainly many reasons to hate Go, from the unusual syntax to the half-arsed way they decided to implement the programming model. On the other hand you can go all fanboy over how cool Go is because it makes it so simple to write microservices. (No, it doesn’t. It really, really doesn’t if you want to do it properly.)

If you jumped on either of these bandwagons, I would recommend getting off as soon as possible. Neither of these approaches are very professional and are telling signs of inexperience in software development."

There is an upsetting level of hypocrisy in patronizing your readers for consuming the clickbait-titled articles _you authored_.

Git as a Storage 5 years ago

I agree that decoupling from Git has its benefits, and I've built a tool[1] that seems to meet some of your needs above. The idea is to save binary data in a separate content-addressed store and have Git track references to specific files in said store. If you check it out, I'd be happy to hear what you think!

[1] https://github.com/kevin-hanselman/dud

I've been working on Dud[1] to help solve this problem. Coincidentally I released v0.2.0 today.

The core idea is to version large files/directories in a content-addressed store, and to track the content addresses (i.e. checksums) in source control (e.g. Git) for historical traceability.

For a practical example of how Dud works, check out the Getting Started page[2].

[1] https://github.com/kevin-hanselman/dud

[2] https://kevin-hanselman.github.io/dud/getting_started/

Can't agree more with this. I too am a (neo)vim + tmux dev, and I made the same progression in shells. Fish just works out of the box. I actually stopped using autojump (see Better CD in the article) because Fish's context-aware auto-completion is that good.

Cross-compiling will become possible. For years we've told people "sorry, distutils wasn't really made for cross-compiling, let us know if you have any luck". As a result we've completely ignored users on some exotic platforms, and also spent a lot of time fighting with different CI systems to do native builds.

As a user (not a developer) of SciPy, this is the big win. My "exotic platform" is embedded Linux distributions via Buildroot[1]. This opens the door to many downstream libraries becoming available as well, such as pandas and scikit-learn.

[1] https://buildroot.org/

This looks very cool! Content addressed storage is an incredibly powerful concept, and weaving it into a programming language is a compelling idea.

Question for the devs: How does one deploy Unison code? After my first glance through the docs I don't have a clear picture.