DuckDNS has long enough latency (over 2000ms) where Google Assistant can’t connect. I moved to FreeDDNS and my Home Assistant issues went away.
DuckDNS has long enough latency (over 2000ms) where Google Assistant can’t connect. I moved to FreeDDNS and my Home Assistant issues went away.


Silksong might be one of the “easiest” ones if I ever did a RenoVK. Basically, you check the swapchain size, and any 8bit texture that the game tries to build that matches that resolution gets upgraded to 16bit. And done. That alone will get the SDR layers to stop banding. (We actually do 16bit float because we want above SDR level brightness, but 16uint would be a perfect, less problematic banding fix).
I might look at vkBasalt. That’s basically how ReShade ended up building an addon system. You have to be able to inject shaders, create textures, and monitor backbuffer to do postprocess. Instead of just doing it at the end, it allows us to listen for render events and act accordingly. That’s the basis for most our mods. Every game will use DX/GL/VK commands so it’s much easier to tap into that instead of compiled CPU code.


I wrote the RenoDX mod if you’re talking about that. I don’t think there’s anything like Reshade’s addon system for Linux games. We’ve done OpenGL and Vulkan mods but that still relies on intercepting the Windows implementation. Silksong primarily needs a 16bit float render to solve most of its banding, but not sure how you can do the same on Linux.
We avoid per-game executable patching intentionally, but sounds like that would be the best choice here. Getting the render to 16bit would solve most banding, but you’d still need to replace shaders if your goal were HDR (or fake it as a postprocess with something like vkBasalt).
Came here for this. Pickles are like a researcher’s??? Progeny? A researcher’s what? I must know.
Also something about Harry Potter in the first lines.
Edit. It’s grumpy! But I don’t know what!
Created by Charlie Brooker of Black Mirror fame? Okay, I’m in.


Windows 10 and it’s not a good idea


STD: site-transferred data


I’ve also used .local but .local could imply a local neighborhood. The word itself is based on “location”. Maybe a campus could be .local but the smaller networks would be .internal
Or, maybe they want to not confuse it with link-local or unique local addresses. Though, maybe all .internal networks should be using local (private) addresses?


I just recently started working with ImGui. Rewrite compiled game engines to add support for HDR into games that never supported it? Sure, easy. I can mod most games in an hour if not minutes.
Make the UI respond like any modern flexible-width UI in the past 15 years? It’s still taking me days. All of the ImGui documentation is hidden behind closed GitHub issues. Like, the expected user experience is to bash your head against something for hours, then submit your very specific issue and wait for the author to tell you what to do if you’re lucky, or link to another issue that vaguely resembles your issue.
I know some projects, WhatWG for one, follow the convention of, if something is unclear in the documentation, the issue does not get closed until that documentation gets updated so there’s no longer any ambiguity or lack of clarity.


My open-source, zero dependency JS library for requesting and generating certs with dns01: https://github.com/clshortfuse/acmejs
I only coded for name.com but it is compatible with anything really. Also can run in the browser, which could be useful in a pinch.
Yeah, except for the first few bytes. PKCS8 has some initial header information, but most of it is the OCTET_STRING of the private key itself.
The PEM (human “readable”) version is Base64, so you can craft up a string and make that your key. DER is that converted to binary again:
/**
* @see https://datatracker.ietf.org/doc/html/rfc5208#section-5
* @see https://datatracker.ietf.org/doc/html/rfc2313#section-11
* Unwraps PKCS8 Container for internal key (RSA or EC)
* @param {string|Uint8Array} pkcs8
* @param {string} [checkOID]
* @return {Uint8Array} DER
*/
export function privateKeyFromPrivateKeyInformation(pkcs8, checkOID) {
const der = derFromPrivateKeyInformation(pkcs8);
const [
[privateKeyInfoType, [
[versionType, version],
algorithmIdentifierTuple,
privateKeyTuple,
]],
] = decodeDER(der);
if (privateKeyInfoType !== 'SEQUENCE') throw new Error('Invalid PKCS8');
if (versionType !== 'INTEGER') throw new Error('Invalid PKCS8');
if (version !== 0) throw new Error('Unsupported PKCS8 Version');
const [algorithmIdentifierType, algorithmIdentifierValues] = algorithmIdentifierTuple;
if (algorithmIdentifierType !== 'SEQUENCE') throw new Error('Invalid PKCS8');
const [privateKeyType, privateKey] = privateKeyTuple;
if (privateKeyType !== 'OCTET_STRING') throw new Error('Invalid PKCS8');
if (checkOID) {
for (const [type, value] of algorithmIdentifierValues) {
if (type === 'OBJECT_IDENTIFIER' && value === checkOID) {
return privateKey;
}
}
return null; // Not an error, just doesn't match
}
return privateKey;
}
I wrote a “plain English” library in Javascript to demystify all the magic of Let’s Encrypt, ACME, and all those certificates. (Also to spin up my own certs in NodeJS/Chrome).
Edit: To be specific, PKCS8 is usually a PKCS1 (RSA) key with some wrapping to identify it (the OID). The integers (BigInts) you pick for RSA would have to line up in some way, but I would think it’s doable. At worst there is maybe a character or two of garbage at the breakpoints for the RSA integers. And if you account for which ones are absent in the public key, then anybody reading it could get a kick out of reading your public certificate.


Translation: If we can’t track you, you’re of no interest to us.
https://www.olsenhome.com/gif/compuserve-big.jpg
Since it was announced in 1987, if they mentioned the pronunciation it was soft G. The inventor and CompuServe would tell you it was soft G. CompuServe’s applications would tell you if soft G in their docs.
It’s even in the documentation of PNG which came out 7 years later that says soft G is correct in GIF, and they wanted people to pronounce PNG as “ping”, not “pinj”. (Yes, really)
See https://www.olsenhome.com/gif/ for more examples.
All English is based on etymology which is why it’s such a hard language to learn. Looking at how a word is spelled always takes second place to where it comes from.
GIF was pronounced with soft g since it came out, back in the 80s/90s when it was shared on AOL and CompuServe. Year, decades, later it came back into social media with Reddit and Twitter, and people pronounced it based on what it looked like it would sound like, which is most similar to hard g like gift.
That doesn’t mean GIF never had a soft g. It just shows how old you are or when you discovered it when you use the hard g.
Say gigantic. Now what you’re going to do next is stop with your ANTICs and enunciate the gig the same way.
If you’re talking browsers it’s poor. But HDR on displays is very much figured out and none of the randomness that you get with SDR with user varied gamma, colorspace, and brightness. (That doesn’t stop manufacturers still borking things with Vivid Mode though).
You can pack HDR in JPG/PNG/WebP or anything that supports a ICC and Chrome will display it. The actual formats that support HDR directly are PNG (with cICP) and AVIF and JpegXL.
Your best bet is use avifenc and translate your HDR file. But note that servers may take your image and break it when rescaling.
Best single source for this info is probably: https://gregbenzphotography.com/hdr/