Mattias Geniar
ma.ttias.be · Personal blog · on HN since 2014
Mattias Geniar, a Belgian sysadmin and developer, writes about Linux, web servers, networking and security, and runs the Cron.weekly newsletter.
What HN saysHN links it for practical sysadmin guides, such as setting up an SSH SOCKS proxy, and for write-ups on security issues and protocols like QUIC.
93HN people shared it
45linked it in comments
335stories submitted
5.0Kstory points
2 months agolast shared
2014people per year2026
Most-shared posts
- 1There’s more than one way to write an IP address5 people · 149 points · first shared 2019 · 48 comments on HN
- 2Terminal escape sequences – the new XSS for Linux sysadmins5 people · 27 points · first shared 2015 · 2 comments on HN
- 3The Cron.weekly Newsletter5 people · 3 points · first shared 2019 · 1 comments on HN
- 4Google’s QUIC protocol: moving the web from TCP to UDP4 people · 188 points · first shared 2016 · 49 comments on HN
- 5Create a SOCKS proxy on a Linux server with SSH to bypass content filters4 people · 7 points · first shared 2017 · discussion on HN
- 6Remote Kernel Code Execution Via HTTP Request In IIS On Windows3 people · 460 points · first shared 2015 · 186 comments on HN
- 7Varnish Explained3 people · 119 points · first shared 2016 · 26 comments on HN
- 8How I write and curate the cron.weekly newsletter (2020)3 people · 118 points · first shared 2020 · 12 comments on HN
- 9Despite revoked CA’s, StartCom and WoSign continue to sell certificates3 people · 90 points · first shared 2017 · 26 comments on HN
- 10What's new in Systemd – 2015 edition3 people · 16 points · first shared 2015 · 1 comments on HN
- 11Apple Favours IPv6, Gives IPv4 a 25ms Penalty3 people · 10 points · first shared 2015 · discussion on HN
- 12Show IDN punycode in Firefox to avoid phishing URLs3 people · 2 points · first shared 2018 · discussion on HN
- 13Show HN: Traffic numbers (stats and graphs) for an HN frontpage link3 people · 1 points · first shared 2015 · discussion on HN
- 14PHP 6: The Missing Version Number3 people · 1 points · first shared 2016 · discussion on HN
- 15A technical guide to SEO2 people · 243 points · first shared 2016 · 26 comments on HN
What HN people wrote when they linked it
Mojah · 2017-03-12
Self promotion: https://ma.ttias.be
Not daily, but plenty of links to follow-up on.
Alternatively, weekly summary of all things Linux & open source (RSS feed available); https://cronweekly.com
mike-cardwell · 2021-01-17
Reminds me of that classic OSX root login bypass by not using a password from 3 years ago: https://ma.ttias.be/root-login-without-password-allowed-default-mac-os…
snazz · 2019-10-21
OpenSSH also includes a SOCKS proxy which you can use with no additional software: https://ma.ttias.be/socks-proxy-linux-ssh-bypass-content-filters/
Whether it grants you any significant anonymity is debatable, but it works well for evading content filters and tunneling your traffic onto a more trustworthy network.
WestCoastJustin · 2015-01-27
When the patches are available, you need to update, and likely reboot. Mattias Geniar talks about using the following command to find processes depending on libc, any of which could be running the vulnerable code, these are core processes that you probably cannot just cycle without a reboot [1]. For me the listing looks something like this: agetty, auditd, dbus-daem, dhclient, init, master, mysqld, rsyslogd, sshd, udevd, xinetd. Many of these deal with hostnames, so I would want to be sure everything is clean, and the best option is likely a reboot.
lsof | grep libc | awk '{print $1}' | sort | uniq
[1] http://ma.ttias.be/critical-glibc-update-cve-2015-0235-gethostbyname-c…
LocalPCGuy · 2025-01-15
I was excited to see this as just last night I was using FFmpeg to combine digital (legally owned) movies with multiple parts into a single MKV file. It worked great, the one thing (and this is undoubtedly just a knowledge problem on my part), is I could not get it to copy/include subtitles from both parts. I have a feeling I might need to extract the subtitle files and combine them and then re-include the combined version, but was hoping there would be a solution in this site for doing something like that. Unfortunately, I didn't even see the combine as one of the examples.
For reference:
One-liner:
> ffmpeg -loglevel info -f concat -safe 0 -i <(for f in *.mkv; do echo "file '$(pwd)/$f"; done) -c copy output.mkv
Or the method I ended up using, create a files.txt file with each file listed[0]
> ffmpeg -f concat -safe 0 -i files.txt -c copy output.mkv
files.txt
> file 'file 1.mkv' > file 'file 2.mkv' > # list any additional files
0: https://ma.ttias.be/use-ffmpeg-combine-multiple-videos/
chx · 2024-01-18
Funnily enough, I just tried to do this over the weekend and the results were not ... great.
I hit https://unix.stackexchange.com/q/691436/9452 exactly
> need to process to file added to a directory, then remove them. Files can be large (20KiB to 5 GiB) and arrive slowly (via scp or ftp). How can I monitor a path (possibly with a systemd.path unit) and only react when the new file has finished writing?
And as the question details DirectoryNotEmpty is not adequate because zero byte files still being written will trigger it and there's nothing after.
Indeed all the path unit conditions: PathExists=, PathExistsGlob=, PathChanged=, PathModified=, DirectoryNotEmpty= suffers from this.
One could do the an old fashioned while inotifywait -r -e close_write "/foo/bar/" but now you need to think about the script dying and restarting it which of course leads back to systemd (see https://ma.ttias.be/auto-restart-crashed-service-systemd/ for more) and then one asks: why can't systemd do this alone?
hayst4ck · 2023-03-18
If you have a VPS, you could probably set up an ssh tunnel.
https://ma.ttias.be/socks-proxy-linux-ssh-bypass-content-filters/
If you live somewhere else, you could also probably set up something as simple as a raspberry pi at home (or really any old hardware) and forward the right ports to it.
If that's not your level of sophistication, then any VPN that works in Cambodia is probably fine. It's worth remembering that If you don't pay, you are the product. I would never use a free vpn.
ExpressVPN used to be great, even for china, but they got bought out by an evil company, also I think they were run out of Hong Kong anyway and I wouldn't trust anything from Hong Kong after China went full fascism.
Also you should switch to Firefox. Google wants to end AdBlock with ManifestV3 and they need to lose as many users as possible for doing so.
Apple private relay might be the best as far as corporate offerings: https://support.apple.com/en-us/HT212614
Since you're already on a Mac, using more apple products probably won't make your privacy stance any worse. I generally trust Apple more than most companies right now.
tbran · 2020-06-30
I'm planning to launch a newsletter soon for a site I own that gets a moderately decent amount of traffic. Here is a snippet of some handy things I've found:
The cost of sending email is a lot on some platforms (Mailchimp is $30/month for 2500 subscribers and $50/month for 5000 subs), but a lot cheaper with Mailgun or Amazon SES. Sendy [0] and Mailcoach [1] are both self-hosted newsletter sending apps that use Mailgun/SES if you want to DIY.
There is a handy blog post [2] from the creator of cron.weekly on his newsletter workflow.
Don't put "weekly" in the newsletter name because then you're really setting that weekly expectation. At some point, you might not want to be publishing weekly unless you've got some serious automation happening.
There are some interesting ideas on newsletter businesses on gaps.com [3]. A year ago I thought that a newsletter should link to my own content. But now? Many, many newsletters are link aggregators.
[0] https://sendy.co/
[1] https://mailcoach.app/
[2] https://ma.ttias.be/how-to-cron-weekly-newsletter/
[3] https://gaps.com/six-figure-newsletter/
moebrowne · 2026-05-24
> Paid my share of dealing with those problems with PHP 5 and 6
Hard to take this seriously when there was no PHP 6.
https://ma.ttias.be/php6-missing-version-number/
efilife · 2026-01-11
how many times will I get clickbaited by some cool title only to see AI praise in the article and nothing more? It's tiring and happens way too often
related "webdev is fun again": claude.
https://ma.ttias.be/web-development-is-fun-again/
Also the "Why it matters" in the article. I thought it's a jab at AI-generated articles but it starts too look like the article was AI written as well
shivam543 · 2023-08-18
s/w stack penalizes IPv4 by 25 ms to 300 ms. This is not a point to say that v4 is bad, but has been made bad artificially: https://ma.ttias.be/apple-favours-ipv6-gives-ipv4-a-25ms-penalty/
theandrewbailey · 2023-06-08
> Just for recap, an IPv4 address written in the textual form consists four decimal numbers separated by the dot character.
Not so fast. This entire article relies on a gross assumption of what IPv4 addresses look like.
https://ma.ttias.be/theres-more-than-one-way-to-write-an-ip-address/
Bluecobra · 2022-07-28
Once cool trick that most people don't know is that you can also ping IP addresses in octal, hex, and integer!
https://ma.ttias.be/silly-little-ip-tricks/
>ping 0x08080808
Pinging 8.8.8.8 with 32 bytes of data:
Reply from 8.8.8.8: bytes=32 time=4ms TTL=58
Reply from 8.8.8.8: bytes=32 time=4ms TTL=58
Reply from 8.8.8.8: bytes=32 time=4ms TTL=58
Reply from 8.8.8.8: bytes=32 time=4ms TTL=58
ptman · 2022-06-20
Making something work with a IPv4 octet of 300 (decimal) is a trick I'd like to see... (and I'm not talking about https://ma.ttias.be/theres-more-than-one-way-to-write-an-ip-address/ )
folli · 2022-05-04
Alternatively, I like the option of creating a SOCKS proxy for this purpose, it's actually quite easy: https://ma.ttias.be/socks-proxy-linux-ssh-bypass-content-filters/
transpute · 2021-10-22
In addition to working on Xen, which enabled EC2/cloud, they were a Debian contributor, https://ma.ttias.be/devuan-debian-fork/
TrispusAttucks · 2021-10-21
That was indeed a rough time for the language. A big part of that, I think, was the setbacks around the [1] PHP 6 debacle.
[1] https://ma.ttias.be/php6-missing-version-number/
AlisdairO · 2021-03-25
One other option is increasing the reserved block count ( https://ma.ttias.be/change-reserved-blocks-ext3-ext4-filesystem-linux/ ). This has the nice side effect of increasing the space available for critical daemons.
If you haven't customised this, in a pinch you can still lower it down a bit to buy some time.
throw0101a · 2020-05-04
> No one is forcing you to change your broken buggy 30-year old shell scripts, you can always continue using them.
How about usernames that start with a digit? Am I still allowed to use those?
* https://ma.ttias.be/giving-perspective-systemds-usernames-start-digit-…
joshstrange · 2020-04-27
iPhone’s “Field Test” debug screen: Dial 3001#12345# for the real signal strength [0]
[0] https://ma.ttias.be/iphones-field-test-debug-screen-dial-300112345-for…
vdwijngaert · 2020-02-09
cron.weekly by Mattias Geniar! https://ma.ttias.be/cronweekly/
helb · 2019-07-19
How does it cope with non-ASCII characters and various fonts? Suppose you had "ɡoogle.com" instead of "gooble.com" in that demo video (the first "g" is not a regular "g", but " U+0261 LATIN SMALL LETTER SCRIPT G")… Browsers tend to show IDN names in the "xn--…" punycode format, but not always.
https://en.wikipedia.org/wiki/IDN_homograph_attack
https://unicode.org/cldr/utility/confusables.jsp?a=google&r=None
https://ma.ttias.be/show-idn-punycode-firefox-avoid-phishing-urls/
theon144 · 2019-02-13
It's a .well-known way to serve additional metadata for a website.
https://en.wikipedia.org/wiki/List_of_/.well-known/_services_offered_b…
Better link from stedaniels further in comments: https://ma.ttias.be/well-known-directory-webservers-aka-rfc-5785/
stedaniels · 2019-02-13
Is been an RFC for almost a decade, RFC5785 [0].
Mattias Geniar has a good write up on it [1].
[0] https://tools.ietf.org/html/rfc5785
[1] https://ma.ttias.be/well-known-directory-webservers-aka-rfc-5785/
jtwaleson · 2018-08-24
248 days of uptime by any chance?
edit: I saw the same on a fleet of thousands of JVMs which hung on 100% CPU after 248 days very consistently. Closest thing to an explanation I ever got was perhaps it is storing uptime in hundredths of a second (why not ms???) in signed 32 bit integers, see: https://ma.ttias.be/248-days/
In the end we solved it by restarting with a cronjob between 2am and 4am after 247 days...
john75 · 2017-09-11
i have to admin that im not totally familiar with the internal works of kexec, but at least from my knowledge a full service restart is required[0].
The Minix team claims the upgrade happens "without running processes even noticing", that sounds better than restarting all the services.
[0] https://ma.ttias.be/kernel-patching-kexec-updating-centos-7-kernel-wit…
johnhenry · 2017-01-26
I didn't know it was in active use either until I saw your question and decided to research, so thanks!.
Why do we need cars? Isn't my horse good enough? :p It's simply a new, experimental technology that offers some benefits over an older one. Yes, speed is one of the benefits, but there are some other advantages listed here: https://ma.ttias.be/googles-quic-protocol-moving-web-tcp-udp/
baronseng · 2016-11-09
pliu · 2016-10-16
Thanks for the clarification, I guess I was confused about how it worked.
For those seeking more detail, I found these two links helpful:
https://docs.google.com/presentation/d/15e1bLKYeN56GL1oTJSF9OZiUsI-rcx…
https://ma.ttias.be/googles-quic-protocol-moving-web-tcp-udp/