HNHacker News
TopNewBestAskShowJobs

andrewmackrodt

251 karma · joined April 1, 2018

submissionscomments
andrewmackrodt··on TLS certificate lifetimes will officially reduce to 47 days
Yep, it supports ACME (Let's Encrypt) out the box and many DNS providers too. I mainly use namecheap as my registrar but configure Cloudflare as my DNS resolver; I find this easier from a configuration perspective and CF APIs have been stable for me so far.

Traefik (by default) will attempt certificate renewal 30 days before expiry. Perhaps the defaults will change if the lifetime becomes 45 days. I don't think it's possible to override this value, without adjusting the certificate expiry days, but I've never felt the need to adjust it.

andrewmackrodt··on TLS certificate lifetimes will officially reduce to 47 days
I'm not a nextcloud user but have a homelab and use traefik for my reverse proxy which is configured to use letsencrypt dns challenges to issue wildcard certificates. I use cloudflares free plan to manage dns for my domains, although the registrar is different. This has been a set it and forgot solution for the last several years.
andrewmackrodt··on Janus Pro 1B running 100% locally in-browser on WebGPU
Had a peek at the repo and it looks to be a react frontend, so a JavaScript runtime is needed to "bundle" the application in a way browsers can consume. If you had the dist folder then I imagine you can use whatever web server you want to serve the static files.
andrewmackrodt··on OpenMPTCProuter: Aggregate and encrypt multiple internet connections using MPTCP
Unfortunately I don't really understand the various protocols OMR supports, so my experience comes from measuring aggregated speed/latency and stability. XRay worked best for me and also supported QUIC if enabling proxy UDP over XRay/V2Ray. However, due to the omr-bypass issue, I've disabled that option and QUIC (which is the default setting).
andrewmackrodt··on OpenMPTCProuter: Aggregate and encrypt multiple internet connections using MPTCP
I've been using this for around 6 months now to aggregate a 70 mbit FTTC connection and 150-450 mbit 5G connection; overall it works pretty well. The FTTC connection is the "master" link and it seems is preferred for the first several bytes of the connection, so the latency is better than using the 5G connection directly. This provides a nice balance for general web browsing, as loading web pages is still quite quick and overall download speed is more than either connection alone. In my setup I'd say it's about 80% efficient in terms of aggregating the total download.

There are a lot of configuration options and the stability of them can be an issue. I've found using XRay VLESS for the Proxy and Glorytun TCP for VPN to offer the best overall speed and reliability. (Edit: I've disabled SQM too). It's possible to mostly bypass the VPN by enabling proxy UDP over XRay but I found that breaks various bypass rules, e.g. so that Netflix connections always go over 5G, as some content has restriction from being accessed by my VPS data center IP.

Port forwarding is also a bit hit and miss; I have configured my 2 WAN routers to use the OMR router as a DMZ and then if I want to play a game, or enable remote access, I will use the bypass feature so that the device's MAC goes through my FTTC connection. UPnP works correctly in this scenario which is handy for consoles.

andrewmackrodt··on WARC-GPT: An open-source tool for exploring web archives using AI
If you want a full fidelity warc file, browsertrix-crawler is nice. It is slower than wget on account of using chrome, but it works better for sites with highly dynamic content and can generate wacz files which can be efficiently served via a file/objectstore when used with something like replayweb.page.
andrewmackrodt··on Multipath TCP for Linux (2022)
I've been looking at this project for a while which may be interesting to you: https://github.com/Ysurac/openmptcprouter.

I recently bought a property where I cannot get a full fibre connection, but I can get 150-400 Mbps using 5G. I've been thinking about using dual 5G connections and tunneling my traffic via mptcp to a VPS to aggregate the connections.

andrewmackrodt··on Someone has been attempting to DDoS us for weeks and we do nothing
The architecture of the app didn't seem related to the "DDoS" attack they're describing. If it's only their setup file being downloaded, I imagine their backend isn't even touched, doubly so if they're using cloudflare for caching.
andrewmackrodt··on Three gaming-focused Linux operating systems beat Windows 11 in gaming benchmark
The charts don't make this particularly clear, but the text summary mentions "Windows is stronger in terms of 1% percentile frame times.".

It's still open to interpretation what exactly they are measuring with their frame timings, e.g. is Windows consistently generating frames within 10.6ms but Nobora is up to 9% less performant then that, sometimes 11.6ms? Although this only seems to be for the 1% lows. I don't think it's a particularly insightful metric in this particular benchmark.

andrewmackrodt··on Keep your files inside your VM
Have you tried running JetBrains IDEs from within WSL so it is "native". I tried this a couple of years ago and WSLg had some issues which may be fixed by now, e.g. the find and replace popup would not appear.

Edit: there is also JetBrains Gateway as a solution now but I find it less of a seamless experience than vscode remote, e.g. it requires using the large r 4 CPU / 32GB VM option via GitHub Codespaces and it doesn't sync plugins.

andrewmackrodt··on Stable Linux mainline builds for Ubuntu
I used to use https://github.com/berglh/ubuntu-sb-kernel-signing and the mainline tool from cappelikan ppa, I think it worked on even with DKMS modules such as the Nvidia driver. I've since switched to xanmod with secure boot disabled do my memory is a bit hazy on that last point.
andrewmackrodt··on Webrecorder: Capture interactive websites and replay them at a later time
You can use launchPersistentContext and define a custom user directory to maintain profile state: https://playwright.dev/docs/api/class-browsertype#browser-ty...
andrewmackrodt··on Show HN: Local development with .local domains and HTTPS
Nice, thanks for sharing this. I use sslip.io but they do not provide TLS certificates, so acme v1 validation is required using a wan IP address and ensuring router port forwarding or cloudflare tunnel etc is running. This magic domain is so much easier.
andrewmackrodt··on Amazon requires services on Fire TV to give it 30% of ad impressions or revenue
Yes, given the 4K WEB-DL releases it seems a few groups/individuals possess the knowledge of decrypting L1 content. Occasionally an L1 key will be leaked but is burnt quickly. I think the requirement of "unique" keys stops an interest in a public effort to make L1 content work under Linux, especially as there is already support for L3 content. Even under Windows and macOS end users must be using Microsoft Edge or Safari (platform specific) - given Chrome's huge marketshare I imagine lots of non Linux users are consuming exclusively L3 content on desktop platforms so I'm not sure there's much demand for full/ultra HD content, although many users may simply be unaware that their browser choice affects the quality of content they are streaming.
andrewmackrodt··on Amazon requires services on Fire TV to give it 30% of ad impressions or revenue
My guess is that Widevine is pretty universally supported across multiple streaming platforms (i.e. won the DRM format war, even for audio) and 720p is good enough for most users. L1 also requires hardware decryption keys which are unique per device AFAIK (assuming Android - {I know browsers use a shared L3 key but not sure how L1 is implemented on PC formats}) and easily blacklisted.

For Linux users wanting a home theatre experience, I feel they are probably more inclined to go the bluray/piracy route. Personally I use my Android TV to stream in 4K with surround sound but am satisfied that I can still play everything using Linux, albeit at a lower resolution.

andrewmackrodt··on Amazon requires services on Fire TV to give it 30% of ad impressions or revenue
I don't have (all of) those services but they're not like for like comparable for any services using Widevine, e.g. Amazon, Netflix and Disney. A Linux install will give you access to L3 content using the browser (usually limited to 720p but you can get a 1080p stream out of Netflix using a browser extension). I think the poster was having a bit of a joke though.
andrewmackrodt··on Wayland is pretty good
Are you using any electron based apps? I find them to be much blurrier when using fractional scaling versus Xorg so I'm running my monitors at native rather than my preferred scale of 125% (2K 16" and 4K 27" displays).

IIRC, vs code supported some extra arguments (--enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform=wayland) but this didn't work universally across electron applications and caused very noticeable input lag in others such as Discord.

andrewmackrodt··on The UI of Hacker News Is Perfect
I browse HN mainly on mobile and it can feel quite cluttered, definitely useable but non idempotent operations like flagging a post have no confirmation. For the most part, I think I've noticed when I've accidentally flagged a post and unflagged it, but I feel I can't agree to call the UI perfect.
andrewmackrodt··on Podman Desktop 1.0
While this may not solve your problem, I use docker-network-connect which lets me connect directly to containers running in the 172.x.x.x range. By default, macOS does not support routing from host to containers by IP https://github.com/chipmk/docker-mac-net-connect.

In the kubernetes case (I am using k3d on my Mac) pods aren't directly routable but with metallb, load balancer IP addresses can be connected to directly and there's no worry about port conflicts as there might be with k3d's default servicelb implementation (this is my bootstrap script https://github.com/andrewmackrodt/k3d-boot).

If you need to connect to specific pods directly and it doesn't make sense to change your pod config, kubectl port-forward may suffice?

andrewmackrodt··on A 1.5GB string
They were serialising the previous object as a string (which may also contain a key called previous which is a string) so quoted values, backslashes and any other escape characters would be escaped. Over multiple screens this grows quickly, e.g. this simple struct which has only an id column grows to 2KB in only 9 steps:

    let obj = { id: 1 }

    for (let id = 2; id <= 10; id++) {
      obj = { id, previous: JSON.stringify(obj) }
    }
andrewmackrodt··on Understanding CD-R and CD-RW (2003) [pdf]
Windows XP also supported this natively, i.e. track at once rather than disc at once behaviour.
andrewmackrodt··on New headless Chrome has been released and has a near-perfect browser fingerprint
Using Netflix as the example, Widevine L1 has very limited support on the desktop, i.e. Microsoft Edge on Windows and Safari on macOS.

All other configurations use L3 which is a shared key, e.g. provided by ChromeCDM as it runs entirely on the CPU - which is why Netflix content also works under Linux, albeit L3 is limited to 720p (or 1080p with browser extensions).

Given Chrome's massive browser market share, I'm not sure whether enabling DRM adds anything meaningful to the fingerprint - i.e. I don't think it's possible to revoke an L3 key without pushing out a new version of the CDM to all users of that browser, as has happened once before with Chrome.

FWIW I've tested Widevine L3 decryption works using a ”headless” docker container running Chrome. The only caveat to add is that Chrome must not be started with --headless, but you don't need a real GPU either, Xvfb works just fine.

andrewmackrodt··on The history of “typeof null” (2013)
If a language change were to update `typeof null` to return `"null"` isObject would not break, the second condition would only be unnecessary.

However, other code which may make assertions on null values after checking the value is an object would break.

andrewmackrodt··on My husband was right about DVDs
I'm not sure of prices in your region, but I see 20TB drives priced competitively to 8TB drives in terms of price/terabyte. I've been thinking of building a new media array to replace my existing 8TB drives and similar storage capacity would cost me less now than 3 years ago, for arguably better drives too. I've been thinking of using the Seagate Exos X18 (18TB drives) but haven't made the purchase yet to form an opinion.
andrewmackrodt··on A page with no code
For non firefox users wanting to manually render the page, grab the base64 output from the link response header, e.g.

- open developer tools, navigate to network and refresh

- or run from a terminal "curl -s --head 'https://danq.me/wp-content/no-code-webpage/' | sed -nE 's/.*base64,([^>]+)>.*/\1/p'"

- replace the base64 into the below code:

document.head.innerHTML='<style>'+decodeURIComponent(atob('Ym9...9IA').split('').map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''))+'</style>'

- paste the above string into the developer tools console and press return

andrewmackrodt··on No Start Menu for You
Regarding a lack of start menu, I find it useful to pin the Applications folder to the dock Once pinned, right-click and set your preferred view mode, e.g. grid or stack. However this approach is limited in that it is a folder view, so will omit anything in your user's ~/Applications folder.

I enjoy macOS' maximize (fullscreen to new workspace behaviour) as I usually use it only when using a single screen with a trackpad. However, double clicking the titlebar will maximize more conventionally like Windows, Gnome or KDE.

BetterTouchTool is IMO a must have application on macOS. It supports window tiling.

andrewmackrodt··on Apple TV prompt requires another Apple device
It's mentioned in the replies that there was no prompt to accept the new terms and conditions when using a browser. Interestingly, the word messages also excludes macOS, mentioning only iOS or iPadOS.
andrewmackrodt··on More developers use Linux than Mac, according to 2022 StackOverflow survey
For Netflix at least, you can receive 1080p under non supported configurations by using a browser extension. Last time I checked, non-os default browsers are always 720p, which includes Google Chrome. There are extensions for Firefox and chromium browsers for 1080p playback. However, 4K is limited to Edge on Windows and Safari on macOS.

I may be missing the intended point, but AFAIK neither Windows nor Linux support HDMI volume control (I use all 3 regularly, but only Windows and Linux over HDMI). My Nvidia GPU is connected to a 4K 120Hz TV using HDMI for audio, the TV volume controls are independent of the OS volume settings. Unless OP meant macOS doesn't allow setting the volume independently of the HDMI device.

andrewmackrodt··on Show HN: Portable Secret – How I store my secrets and communicate privately
I don't know about 30 years but AES-256-GCM has implementations in multiple programming languages, e.g. it can be decrypted dependency free in Node.js >= 10. If browsers were to drop support (unlikely imo), there should be multiple options for decryption provided one has access to a runtime supporting AES-256-GCM decrypt. An older WASM'd version of PHP or python may even work.

I have no use for this myself but wrote a quick Node.js script which accepts an html file created by this tool and prints messages to stdout or saves a file to decrypted.ext: https://gist.github.com/andrewmackrodt/e6a5a2ea7b22d74102ba7... - it's dependency free (no npm install dependencies) and tested with Node.js 10 and above.

e.g. "docker run --rm -it -v "$PWD:/app" -w /app node:10-alpine portable-secret-decrypt.js example-image.html"

When used with the Bart's drivers license it will create the decrypted file as decrypted.jpeg to the cwd.

andrewmackrodt··on Legacy Update: Fix Windows Update on Windows XP, Vista, Server 2008, 2003, 2000
It is still there for me.
Page 1 of 5Next →