HN user

tutfbhuf

1,882 karma
Posts43
Comments608
View on HN
beuke.org 2y ago

Terminal Latency

tutfbhuf
4pts0
news.ycombinator.com 2y ago

Ask HN: What to consider when looking for angel investment?

tutfbhuf
3pts0
en.wikipedia.org 2y ago

Y2K-like problem killed NASA space probe (2013)

tutfbhuf
1pts1
en.wikipedia.org 2y ago

Dyatlov Pass Incident

tutfbhuf
1pts0
github.com 2y ago

Canonical MicroCloud: Automated Private Cloud Based on LXD, Ceph and OVN

tutfbhuf
3pts0
world.hey.com 2y ago

The price of managed cloud services

tutfbhuf
7pts1
blog.cloudflare.com 3y ago

Cloudflare stood up to a patent troll and won (2019)

tutfbhuf
371pts244
beuke.org 5y ago

Measuring Disk Latency with Ioping

tutfbhuf
2pts0
christine.website 5y ago

A Trip into FreeBSD

tutfbhuf
146pts115
www.phoronix.com 5y ago

FreeBSD 13 Beta Bench – Performance Doubled on Average

tutfbhuf
2pts0
christine.website 5y ago

My Automagic NixOS WireGuard Setup

tutfbhuf
3pts0
www.zdnet.com 5y ago

South Africa releases its own browser just to re-enable Flash support

tutfbhuf
3pts0
boris-marinov.github.io 5y ago

Category Theory Illustrated – Monoids

tutfbhuf
5pts0
ozataman.medium.com 5y ago

Choosing Haskell isn’t a stand-in for good software design

tutfbhuf
19pts7
spyware.neocities.org 5y ago

Privacy Comparison of Web Browsers

tutfbhuf
35pts13
christine.website 5y ago

Encrypted Secrets with NixOS

tutfbhuf
2pts0
tailscale.com 5y ago

Tailscale on NixOS: A New Minecraft Server in Ten Minutes

tutfbhuf
102pts44
drewdevault.com 5y ago

Godocs.io Is Now Available

tutfbhuf
1pts0
eli.thegreenplace.net 5y ago

REST Servers in Go: Part 1 – standard library

tutfbhuf
257pts144
christine.website 5y ago

RSS Bandwidth Fixes

tutfbhuf
15pts4
jlelse.blog 5y ago

Email is the messenger you should migrate to

tutfbhuf
5pts1
grimminck.medium.com 5y ago

Running a fake power plant on the internet for a month

tutfbhuf
430pts102
web.archive.org 5y ago

What Is Chaos Engineering?

tutfbhuf
1pts0
web.archive.org 5y ago

Data Governance for the Multi-Public Cloud: Top AWS Best Practices

tutfbhuf
1pts0
vale.dev 5y ago

Generational references 2.3x faster than reference counting (unoptimized)

tutfbhuf
2pts0
lobste.rs 5y ago

Lobsters Battlestations and Screenshots (2021)

tutfbhuf
1pts0
joshleeb.com 5y ago

Surprising Ctags Behaviour

tutfbhuf
2pts0
lambda-diode.com 5y ago

The Tiobe index is meaningless (2008)

tutfbhuf
1pts0
johannes.truschnigg.info 5y ago

Eglobal Fanless Pfsense Intel 3865U Industrial Mini PC Review

tutfbhuf
1pts0
thenewstack.io 5y ago

Using Prometheus to Monitor Kubernetes Clusters Running Cloud Foundry

tutfbhuf
1pts0

I have experience running Kubernetes clusters on Hetzner dedicated servers, as well as working with a range of fully or highly managed services like Aurora, S3, and ECS Fargate.

From my experience, the cloud bill on Hetzner can sometimes be as low as 20% of an equivalent AWS bill. However, this cost advantage comes with significant trade-offs.

On Kubernetes with Hetzner, we managed a Ceph cluster using NVMe storage, MariaDB operators, Cilium for networking, and ArgoCD for deploying Helm charts. We had to handle Kubernetes cluster updates ourselves, which included facing a complete cluster failure at one point. We also encountered various bugs in both Kubernetes and Ceph, many of which were documented in GitHub issues and Ceph trackers. The list of tasks to manage and monitor was endless. Depending on the number of workloads and the overall complexity of the environment, maintaining such a setup can quickly become a full-time job for a DevOps team.

In contrast, using AWS or other major cloud providers allows for a more hands-off setup. With managed services, maintenance often requires significantly less effort, reducing the operational burden on your team.

In essence, with AWS, your DevOps workload is reduced by a significant factor, while on Hetzner, your cloud bill is significantly lower.

Determining which option is more cost-effective requires a thorough TCO (Total Cost of Ownership) analysis. While Hetzner may seem cheaper upfront, the additional hours required for DevOps work can offset those savings.

I think you can pull much of the data you need for such a project from the GH Archive https://www.gharchive.org/ They basically have captured every event that happened on the platform starting from 2011.

IMDb works mainly by user reviews who rate videos from 1 to 10. But personally, I think any system can be gamed, just like GitHub Stars. When I'm interested in the GitHub Top 250 (as equivalent to IMDb Top 250), I just do a GitHub search with a filter for the language I'm interested in, e.g., Python, and then sort by stars. This works good enough for me.

We have so many distributed X applications nowadays that all try to solve the same problem, either in the same or different ways. I think we first have to come up with a simple, distributed, open-source storage solution. In the cloud, we have things like AWS S3, which is a very reliable distributed storage, but for self-hosting, we have:

Ceph, with which I have much experience, is a very solid and quite bulletproof storage solution that offers S3 protocol and FS. However, maintaining it in the long run is really challenging. You better become a Ceph expert.

SeaweedFS struggles with managing large data groups. It's inspired by an outdated Facebook study (Haystack) and is intended for storing and sharing large images. However, I think it's only average—it has poor documentation, underwhelming performance, and a confusing set of components to install. Its design allows each server process to use one big file for storage, bypassing slow file metadata operations. It offers various access points through gateways.

MinIO has evolved a lot recently, making it hard to evaluate. MinIO relies on many small databases. Currently, it's phasing out some features, like the gateway, and mainly consists of two parts: a command line interface (CLI) and a server. While MinIO's setup is complex, SeaweedFS's setup is much simpler. MinIO also seems to be moving from an open-source model towards a more commercial one, but I have not closely followed this transition.

All of these solutions are not simple enough to be the base for a distributed database application. What we really need would be something like an Ext4 successor, let's call it Ext5, with native distributed storage capabilities in the most dead-simple way. ZFS is another good candidate. ZFS has already solved the problem of how to distribute storage across multiple hard drives within one server very well, but it still lacks a good solution on how to distribute storage across different hard drives on different servers connected via a network.

Yes, I know there is the CAP theorem, so it is really a hard challenge to solve, but I think we can do better in terms of self-hosted solutions.

Just recently, I did a terminal latency test with Typometer for the following terminals, sorted by lowest latency:

  xterm (389-1) 
  alacritty (0.13.1-1)
  kitty-tuned (0.31.0-1)
  zutty (0.14-2)
  st (master 95f22c5)
  urxvt (9.31-4)
  konsole (24.02.0-1)
  kitty (0.31.0-1)
  wezterm (20230712.072601)
  gnome-terminal (3.50.1-1)
  xfce4-terminal (1.1.1-2)
  terminator (2.1.3-3)
  tilix (1.9.6-3)
  hyper (v3.4.1)
I only tested for software latency (monitor, keyboard and other hardware latency is not included in Typometer benchmarks). I ran the test on Arch Linux with Xorg + bswpwm without compositor. You can find the full results on by blog https://beuke.org/terminal-latency/.

I remember being a kid and wanting to play Far Cry in high quality when it came out. I did not have the money to buy the best graphics card to play it smoothly on high settings. So, I could either play it in low quality with something like 60 FPS or in high quality with something like 15 FPS. Of course, 15 FPS is not enough to play the game properly, but to capture all the beautiful details, I just went with the highest settings and very slowly explored the beach, astounded by all the details. Good memories.

Yes, you can rent a few dollar VPS from e.g. Hetzner (since Germany is mentioned in the blog post), and run a few wget commands in parallel in a loop on their 200MB setup file to easily reach 1TB a day.

For a company, this should definitely not be something to worry about. However, if I were able to single out individual IPs that are attacking me, then I would simply block them, report them (use the abuse form from the hoster of the attacking IP), and call it a day. This way, you can at least hope that the hoster will do something about it, either by kicking the hacker off its platform or, if it is some kind of service reflection attack, inform the victim to close the security loophole on their server and remove themselves from the botnet. If your attacks originate from a vast amount of different IPs from Russia and China, consider geoblocking.

I upgraded Arch Linux on my server a few hours ago. Arch Linux does not fetch one of the compromised tarballs but builds from source and sshd does not link against liblzma on Arch.

  [root@archlinux ~]# pacman -Qi xz | head -n2  
  Name            : xz  
  Version         : 5.6.1-2  
  [root@archlinux ~]# pacman -Qi openssh | head -n2
  Name            : openssh
  Version         : 9.7p1-1
  [root@archlinux ~]# ldd $(which sshd) | grep liblzma
  [root@archlinux ~]#
It seems that Arch Linux is not affected.

I do not wonder about the double productivity increase compared between Rust and C++. But what really makes me wonder is the comparable productivity of Rust vs. Go. I thought Go is much easier than Rust and that people could write applications much faster in Rust. I would expect that Rust takes at least 2-3 times more time to write an application, compared to Go, but then I would also expect it to run at least 2-3 times faster than the Go version, hence it is a fair trade-off.

You are right. If you put 100 dynamically linked binaries into 100 OCI images, then you have the same security issues all over again. As best practice, I would recommend using a container vulnerability scanner that can identify containers requiring updates (list CVEs). I think all major cloud providers have such a service available, and there are some free and open-source tools available, such as Trivy and Clair. It is also beneficial to use official container images that have frequent patches available for their base images. If you use a base image like 3.9-slim instead of 3.9.19-slim, you can, for example, pin your Python version to 3.9, but you get patches. But this again only works if you do not have a "FROM scratch" image with just a single fully static binary.

I can relate, sleep deprivation can have serious health effects. We did night shifts on cycles every other day, where one parent slept through the night on the couch with hearing protection, while the other stayed with the baby in the bedroom. This method worked out quite well. The advantage is that the parent who slept on the couch has more energy during the day for the child and can enjoy the time more, which is also beneficial for the child.

One issue with static linking is that your dependencies will likely have critical CVEs over time. If you keep all your libraries separate on the filesystem, you can just do a "apt update; apt upgrade", and you will have all the latest patches. This will patch security issues in e.g. libssl or libc for all your applications that are dynamically linked against this shared libraries, which can be quite a few. In static binaries, the version of the libraries is not obvious from the outside. If you have, for example, 100 fully static binaries, these can come in 100 different major/minor/patch level versions of their dependencies. You now have to patch each binary separately by upgrading and recompilation 100 times to patch all your static binaries, that requires much more time and energy.

Well, maybe he never wants "someone" to deploy his project. I think it is perfectly legitimate to handle it this way for a one-man hobby project.

For a project where multiple people are involved, I think it's better to split concerns. Deployment should be handled transparently and reproducible in a CI pipeline that the team members who are allowed to deploy have access to.

Hyperscript 2 years ago

Hyperscript, from the same author as htmx, complements it well. For instance, Hyperscript maintains its state on an element when you swap something out in the DOM. It bridges the gap for changing the DOM without making a round trip to the server.

I'll still use it because it's entrenched, and because it takes less time than coding a Jekyll site with equivalent functionality.

I wouldn't count on that. It required a 90-minute video for you to get going with Wordpress. I would say, if you know some basic stuff (e.g., know how to install gem, how to write markdown/html), you can set up Jekyll in under 90 minutes:

gem install jekyll bundler; jekyll new myblog; cd myblog; bundle exec jekyll serve

Now, you have a server up and running. You can start creating a post by creating a markdown file in the _posts folder.

For me personally, it would be faster to learn any easy-to-use static site generator than Wordpress.

"The 14900K(S) has an unlimited boost duration."

Okay, but unless you have cooling with liquid nitrogen you cannot maintain 6.2 GHz for long due to thermals in practice, hence after a short sprint it will fall back to a much lower frequency.

The 6.2 GHz is just the boost frequency, the base frequency is still well below 4 GHz, at 3.2 GHz. So, your CPU can essentially go into berserk mode for a few seconds and double its frequency, but cannot maintain this frequency. This is similar to a marathon runner who can sprint intermittently.