HN user

ignitionmonkey

977 karma
Posts22
Comments37
View on HN
developer.chrome.com 2y ago

Private prefetch proxy in Google Chrome

ignitionmonkey
1pts0
getindie.wiki 3y ago

Indie Wiki Buddy – Web Extension to Find Alternatives to Fandom/Wikia

ignitionmonkey
2pts0
jahed.dev 3y ago

Compacting Firefox's Layout with Sidebery and User Chrome

ignitionmonkey
1pts0
jahed.dev 3y ago

Homebrew solves the Nintendo Switch's biggest flaw: Its controllers

ignitionmonkey
6pts2
github.com 3y ago

WebVerify – Verify Authorship of Webpages

ignitionmonkey
1pts0
jahed.dev 3y ago

Migrating to Tabler Icons in React with SVGR

ignitionmonkey
1pts0
jahed.dev 4y ago

Hide Twitter's Sidebar with uBlock Origin

ignitionmonkey
2pts0
jahed.dev 4y ago

When all else fails, add breakpoints

ignitionmonkey
1pts0
neocities.org 4y ago

Neocities – Most Followed

ignitionmonkey
1pts0
jahed.dev 4y ago

Generating Checksums Using Make and Automatic Variables

ignitionmonkey
1pts0
jahed.dev 4y ago

Routing in React Using Redux

ignitionmonkey
2pts0
jahed.dev 4y ago

Improving Powkiddy V90's Portable Experience with RetroArch

ignitionmonkey
1pts0
jahed.dev 4y ago

Creating a TP-Link Router Backup Editor for the Web

ignitionmonkey
27pts4
www.youtube.com 4y ago

Reverse emulating the NES

ignitionmonkey
1pts0
jahed.dev 4y ago

Improving Powkiddy V90's Portable Experience

ignitionmonkey
2pts0
jahed.dev 4y ago

Hidden Networks in TP-Link Routers

ignitionmonkey
614pts223
jahed.dev 4y ago

Generating 360° Video Game Panoramas

ignitionmonkey
31pts5
jahed.dev 4y ago

Always Log JSON (2018)

ignitionmonkey
1pts0
jahed.dev 4y ago

Avoid Authy, Use Aegis

ignitionmonkey
2pts0
jahed.dev 5y ago

Domain Ownership, Web Authorship and WebVerify (2020)

ignitionmonkey
1pts0
oatmealdome.me 5y ago

Splatoon 2’s Netcode and Matchmaking: An In-Depth Look (2018)

ignitionmonkey
3pts0
getaegis.app 5y ago

Aegis Authenticator – Open-source 2FA for Android

ignitionmonkey
149pts113

I'm referring to a default search engine. Something I can use by default everywhere and I can recommend to others. So it has to provide results based on typical use cases.

First I've heard of a "metasearch" engine. I just tried SearX and it gave me no results for my projects and only a couple for "Mastodon", but the animal not the software.

I wonder what's different about our searches and expectations.

The difference might be that they (including myself) don't ask search engines for facts like "doors of stone release date". They'll search for "doors of stone", find personally reliable sources like Wikipedia, Fandom, Goodreads, browse them and decide on an answer. When sources fail to appear, they'll either refine the search (like "doors of stone rothfuss") or call it a failure and maybe try a different search engine.

This is one the reasons why Brave has been good for me so far. When a relevant Wikipedia article exists, it shows it, even if the title doesn't match. Whereas lately DDG and others don't. In fact, you can see this with "doors of stone". Brave shows "The Kingkiller Chronicle", DDG doesn't at all, Google has it low down in the results.

It also shows Reddit discussions without needing to explicitly filter for it. And I use ad block to remove the AI summariser that takes up half the screen, it's not what I want from a search engine.

They don't require interaction. Think about billboards, TV/video ads, sponsorship ads, etc. It's enough for you to just see an ad, to not forget a brand or product exists.

At some point, you might think about a product subconsciously due to any reason, and since you saw the ads, you'll think of a specific company's product and likely rank them higher among "unknown" brands by default. That will bubble up at some point and you'll have a desire for it which you either accept or reject. Most will accept, causing more to accept to be in the group. It's human nature.

Any interaction is a bonus.

You're asking for website owners not to include a toggle.

I'm not. I'm saying they don't have to include a toggle if they don't see the need to. The decision is on them. No different from their decision to use specific colours, typefaces, text sizes, etc.

If the user has a preference, that toggle should be provided by the browser (the user agent) and the user should seek to get the browser to implement it rather than expect every website owner which has light/dark modes to provide a toggle.

In the current state of things, the browser is telling websites the user prefers a certain colour scheme, which may not even be true. That is really the core issue here if we focus in on dark/light toggles rather than the broader area of alternative stylesheets and ideal UX.

It feels in general that we are in agreement and may be misunderstanding specifics due to a lack of each other's contexts.

No. Let the website owners give their users options. It's not that hard.

If it's not hard, shouldn't that ideal be towards the handful of browser vendors rather than the thousands/millions of website owners? I agree, if you're going out of your way to provide different stylesheets, provide a toggle, otherwise it's kind of a wasted effort anyway. However, my point of argument is the ideals. The idea someone SHOULD provide something. That SHOULD should be towards browser vendors, not website owners.

And that's totally fine! If you don't have separate color schemes, it would make no sense to include a toggle. But if you have separate color schemes, add a toggle.

I don't think it's fine in your scenario, and the current state of things. If we require websites to individually provide their own toggles, how will the user know a toggle is even available or not? It creates an inconsistent UX where some websites have toggles and others don't. How many Hacker News visitors wasted time looking for a dark mode toggle that doesn't exist?

Which is why having it at the browser-level is necessary. Not to mention storing state, one of my pet peeves is using Incognito and losing my preferences.

It's kind of funny to me because Alternative Stylesheets solved this problem decades ago. Just like how Firefox used to have an RSS icon so we knew a website had RSS without needing to look for it. All of this stuff has been delegated to web extensions, which is barely supported on mobile. So we all need to plaster our websites with what we do and don't support and hope users find them.

I think saying "everybody else" is an exaggeration. It's a minority (possibly a major on HN, including me) who tweak colour schemes. Just like how people rarely used alternate stylesheets. And why it took so long to even get "prefers-color-scheme".

Colour preferences are also not black and white, literally. There is a spectrum. Some websites' schemes are too dark or too bright. It's why sites like GitHub provide more than just two options. And why Dark Reader has sliders. In that sense, alternative stylesheets are a much better existing browser-level solution when user intervention is involved. After all, most applications provide a list of color schemes to choose from like in IDEs, terminals, word processors and so on.

The only reason I personally switch from dark to light mode on some websites is because their dark mode isn't what I want and I'd rather put up with the light mode. It's not a preference, just a compromise between two extremes.

Having an absolute stance on this is untenable since it's a complex situation depending on the site's audience, capacity, goal and so on. Let website owners decide, so they can focus on what's important to their audience.

For example, for my blog, I suggest people use the RSS feed or Reader Mode to adjust colours and font sizes to their liking. I'm not going to spend time tweaking two colour schemes for some unknown audience, which would just put me off writing and publishing.

It should not be the website's role to provide user controls over this. Having a website require JS to be acceptable is not acceptable. It's possible to use CSS only to check a input element's state, which feels like a workaround. But even then having each site provide its own way to toggle schemes in a pain. Searching for that toggle just adds to the list of settings we need to discover and configure for every notable website we visit. (Is it in the footer? Settings? User menu? Does it even exist or did I miss it?).

The browser should allow per-site toggles for prefers-color-scheme. Just like how (some?) browsers ship with page style selectors using CSS alternate tags. e.g. on Firefox Alt > View > Page Styles.

https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative...

The title is misleading. Most large enough games do use databases in some form, just like a lot of software.

If the title was a bit more accurate to its content, it would avoid a lot of disagreements here.

"Building games with AI agents? Use a graph database." -- or something like that.

Thanks for the additional info.

Whether it's a single file or a single directory doesn't matter much. The git repo is essentially a folder you can download and start locally using the file: protocol. No need for a server or anything.

I could make it into a single file, but I prefer organising modules as separate files and I didn't want to add a build step, so I left it as-is.

Thanks for the info. That makes sense given the "11s" configuration I found for those SSIDs. The router is not in their mesh line AFAIK, though most of their home products now support OneMesh, so that line is a bit blurry.

To clarify, I like TP-Link products too. Their PowerLAN products so far have been the most reliable for me and the router's been solid too. It's just really disappointing that an almost (for me) perfect product has this very simple software flaw without any solution other than to hope the manufacturer decides to fix it at some point. I had the same issue with Asus routers, but they were smart enough to open source their software and let others fix pretty much everything for them.

I don't see any sentence nor expressiveness in that. It's the same structure as most method calls.

"Deposit 100 dollars in my account." is a sentence, and that's doable in most languages. It just depends on how high you want to go with it. Functions are ubiquitous and powerful:

    deposit($(100), in(my_account))
And if we remove brackets like a lot of languages (I prefer not to)...
    deposit $ 100, in my_account
Functions remove the need to tie actions to objects too. We can rely on types/interfaces.
    deposit($(100), in(the_river))
We could go further, again, depends where you want to stop. Expressiveness isn't really limited by most languages.

The camera automation isn't very predictable due to the digital/timer/analog movement, input lag between AHK/Windows/Cemu, and inconsistent framerate/time caused by the nature of emulation. Just too many layers. My automation overshoots to make up for that. Maybe that doesn't matter with PTGui. I'll try it out next time I get the chance. Thanks!

Definitely but I think we need something that will work with the web we currently have while these bigger ideas are fleshed out and adopted.

Also, while IPNS covers the issue of linking to dynamic content, it's worth mentioning IPFS will have similar issues with DNS as DNSLink and similar domain-driven solutions are used to cover its usability issues (long, random URIs).

The solution I was going for with WebVerify is more web-centric rather than domain-driven, which I think is a better fit for webpages. It can be enforced at the hyperlink-level for shared domains (like GitHub Pages, University web spaces) and works for static resources without needing to configure external resources. The only really complicated part is PGP but that can be solved with better tooling (as seen with Keybase).

SRI/hashing works for static content. Though it's worth mentioning it's a SUB-resource feature (images, scripts, etc.). It doesn't work for hyperlinks to other pages. Even if it did, it's a different use case.

Say I link to an article by Author A that has comments in it (or even a footer, relative timestamp, sidebar, etc.). Hashing won't work as the page is always changing. I want the link to always go to Author A but I don't care if the content changes. That's the sort of use case signed webpages and hyperlinks with enforced authorship covers. It's less about what's on the page and more about who created it.

We can't and shouldn't expect people to keep their old domains forever. We need a way for pages to be signed and hyperlinks to enforce authorship. When we link to stuff, we should have a way to say whose stuff we're linking to. It's no different from installing signed software and using trusted repositories.

This is one of the reasons I created a proof-of-concept web extension that verifies links and pages using PGP. On a mismatch, it flags the page and offers a web archive link instead.

https://webverify.jahed.dev/

It was pretty fun to make, but currently due to performance, Web Extensions API doesn't provide the features to do this perfectly. Firefox provides just about enough additional APIs to hack it together.

Night Patrol - https://github.com/jahed/night-patrol

I got tired of passing flags to Nightwatch to filter tests and looking through results to re-run failures. So I made an interactive CLI for all of that. I stopped using this once I moved to Cypress but even with Cypress' web interface, I feel something like Night Patrol would be a lot more productive.

Firebase Rules - https://github.com/jahed/firebase-rules

I didn't like how Firebase's RTDB rules were expressions in JSON strings so I built a library to build them using a lisp-like syntax to compose and re-use rules. Firebase also has its own rules language (Bolt) but I'd rather not learn and maintain yet another tool-specific language.

Promises - https://github.com/jahed/promises

This isn't a complete solution yet, I didn't get time to refine the API. But I really prefer using Promises as result types (a.k.a. either, left/right) rather than using async/await/try/catch. It's so much more powerful to write code in a way that doesn't care if your functions are async or sync. Again, kind of like a lisp, there's also power in not being tied to a language's keywords and being able to provide a more tailored vocabulary.

FFMPEG's API is perfect for what it aims to provide. Not every program is built for every use-case. It's trivial to create helper scripts to provide a simpler API for simple tasks, in fact this is probably how FFMPEG and ImageMagick are most often used; in image, video editing programs and servers.

Icon packs are coming [1] and you can set your own for the more niche sites.

The problem with querying websites for their icon is that it leaks data about you (your phone and desktop) to a third-party without a proxy, requires a domain to match against, and like with Authy, the icons go out of date and become inconsistent. Worst of all, you have to give network access to the entire app for a trivial feature, making it less secure and trustworthy. Offline icon packs that have a consistent look is a good solution to all of this. [2]

[1] https://github.com/beemdevelopment/Aegis/issues/509

[2] https://github.com/aegis-icons/aegis-icons

Icon packs are coming. [1] Steam accounts can be imported if you have root access, or you can try [2].

IIRC Steam codes are almost standard except they use a different encoding because... Valve likes to roll their own stuff (?). I agree that trading makes only having codes a bit less useful. They could've used the same codes to confirm trades instead of an entirely separate interface.

[1] https://github.com/beemdevelopment/Aegis/issues/509

[2] https://github.com/beemdevelopment/Aegis/wiki/Adding-Steam-t...