HNHacker News
TopNewBestAskShowJobs

Rotten194

909 karma · joined May 26, 2013

submissionscomments
Rotten194··on Wiki.js
The other option is that could simply pay community members some fair portion of the b2b revenue in exchange for signing the CLA. If you're the primary contributor, it's fair to take most of the revenue for yourself, but revenue sharing with major contributors from the community is also fair. Could be difficult tax-wise though? IDK.
Rotten194··on Wiki.js
I find it really frustrating that every piece of software nowadays claims to be "blazing fast" or "built for performance", usually with no benchmarks to back it up. Makes it really hard to tell at a glance what the strengths of a project actually are. I honestly would be very grateful if a project up and said "we're not the fastest, but we trade performance for a simpler codebase and easier extensibility. If you need to do some-performance-intensive-task, try other-package instead".
Rotten194··on Show HN: A completely different way to write responsive, vanilla, CSS
Could you get around it with a special `--empty: ;` rule in root perhaps? Would potentially make things more clear, also.
Rotten194··on Show HN: A completely different way to write responsive, vanilla, CSS
So I think I understand how this works? Correct me if I'm wrong...

So I made this example: https://jsbin.com/meqibawotu/1/edit?html,css,output

We have two "toggle vars", `--is-hovered` and `--is-special`, which are triggered by a hover selector and a class, respectively, though they could be triggered by anything (like a media query or JS).

The "false" value for the toggle is "initial", so at the top I set:

    div {
      --is-hovered: initial;
      --is-special: initial;
    }
The first trick is that assigning a variable value as a single space token is valid according to spec (https://www.w3.org/TR/css-variables-1/#syntax), making the var(...) usage substitute a single space. So if our variable should be "true", we use whatever method to set it to a single space:

    div:hover {
      --is-hovered: ;
    }
    
    div.special {
      --is-special: ;
    }
The second trick is that an invalid property value will fall back to the second argument of the `var()` function. So we first create a property that only has a valid value if the flag is true (a single space):

    --hover-opacity: var(--is-hovered) 1.0;
If the div is hovered, `--is-hovered` is a single space, so the property value becomes:

    --hover-opacity:  1.0; // note two spaces
If the div isn't hovered, `--is-hovered` is `initial`, so the property value becomes:

    --hover-opacity: initial 1.0;
Which is invalid CSS!

We can then interpret this in our final opacity property:

    --regular-opacity: 0.5;
    --opacity: var(--hover-opacity, var(--regular-opacity));
If the div is hovered, the first argument is evaluated to:

    --opacity: var( 1.0, var(--regular-opacity));

And since that's valid syntax, the second argument is short-circuited (ignored). However, if the div isn't hovered, then the opacity property is computed as:

    --opacity: var(initial 1.0, var(--regular-opacity));
The first argument is invalid! So the property falls back to the second argument, and we get `var(--regular-opacity)`.
Rotten194··on Milton Glaser, designer of ‘I ♥ NY’ logo, has died
Why doesn't HN allow emoji usually? Always wondered about that...
Rotten194··on “This resentment runs deep and is stunningly widespread”
Thanks, it's ok, no ads, but it has coins and lootboxes and daily rewards, so still far from ideal. I understand developers gotta eat but it's still frustrating.
Rotten194··on Forking HTML into a static language doesn't make sense
The thing is, (at least personally I feel) JavaScript isn't the problem. The problem is because of the lack of tools people have leaned into doing everything with JS, instead of trying to manage the awkward 50-50 split we had before. If 95% could be done with HTML++, then a couple form customizations and a bit of business logic being done with 100 lines of JS would make sense and not be as horrible as the modern web.
Rotten194··on Stamper: An Artboard-Oriented Creative Coding Environment
Interesting! Reminds me of the Unity shader graph editor -- the visualization of in-between nodes of the computation graph. For example: https://blogs.unity3d.com/wp-content/uploads/2018/02/image2....
Rotten194··on “This resentment runs deep and is stunningly widespread”
the rules aren't so much vague as inconsistently applied: for example, the Fastmail app works exactly the same as Hey, and hasn't been removed (yet, at least). More: https://youdownloadtheappanditdoesntwork.com/
Rotten194··on “This resentment runs deep and is stunningly widespread”
Some anecdata on this point; I've tried two times to find a decent solitaire app on the app store. I don't play solitaire that often, it helps to pass the time occasionally, so I don't need something particularly complex or featureful.

Every app I could find had some dark pattern or an overflow of ads or both. Some kind of streak system where you were encouraged / nagged to play every day or else lose your "coins" (aka preying on loss aversion to try and addict players), fullscreen interstitial ad pages that try to trick you into clicking them when you're moving cards? Animated banners that distract you from the game?

I ended up giving up and just using a web version. It's not perfect, it's made for desktop and the cards are really small on my iphone 6 and the UI is hard to use, but it's clearly someone's labor of love and a lot pf care has been put into it. I'd happily pay a few dollars for it, if it wasn't free.

There's not many apps like that on the App Store nowadays. And with Apple's predatory rent-seeking practices, requirements of owning a $2000 computer to develop for their platform, and high developer fees, they aren't helping the situation.

Rotten194··on Why are we so quick to scrutinise how low-income families spend their money?
If you read the original study, participants were only asked about one version of Joe, not asked to compare. In another version of the study where an additional third framing, where Joe's income was not mentioned, rich Joe and neutral Joe were rated the same, and poor Joe more harshly.

They also did another version of the study where the thing being bought was a backup camera for a used car, and the study was 2x2: along with the income framing, there was also a framing of convenience vs safety (backup cameras are now required on all new cars since 2018 because they significantly increase safety, especially for pedestrians). Participants still rated the permissibility of a safety feature higher for a rich person than for a poor person, and rated the "convenient" camera for a rich person just as permissible as a safety camera for a poor person.

https://sci-hub.tw/downloads-ii/2020-06-09/9a/10.1073@pnas.2...

Rotten194··on DeCSS Haiku
The haiku itself:

https://www.cs.cmu.edu/~dst/DeCSS/Gallery/decss-haiku.txt

Rotten194··on Ask HN: How do you read long PDFs?
Technical paper -> print one sided, so I can take notes on the backsides (and I can't get double-sided printing to work on Linux + Brother laser printer anyhow)

Fiction -> convert with Calibre and email to my Kindle

Rotten194··on Ask HN: My wife might lose the ability to speak in 3 weeks – how to prepare?
I would also suggest looking into learning American Sign Language (of course alongside this project). While communicating via keyboard is workable and good for communicating with the wider world, ASL would be much more convenient for communicating between you two -- and a very interesting language to boot. It is a foreign language thats not related to English besides a few loan words, but there's tons of online resources and most universities have classes as well. Plus, you also can experience beautiful Deaf culture, with a rich storytelling and poetic tradition that blends language, gesture, acting, and pantomime in a way thats just impossible to translate to a spoken language.

The downvoted commenter was being a jerk, but I do think learning ASL is an option worth looking into.

Rotten194··on The PeerTube content bootstrap fund
I think this is an interesting and definitely laudable project, but I think the PeerTube-exclusivity clause is a large mistep. I understand the motivations, but I think it's flawed for two reasons:

1, it increases the risk for creators. While an equipment grant is extremely useful, the biggest investment (having made a couple educational videos myself) is time. Having to then limit yourself to a platform with very low user adoption is a huge risk, and harmful to creator morale if the videos struggle for an audience due to the platform.

2, and this ties into the first problem, it's not good for marketing. If you look at how another Youtube competitor, Nebula, is handling this, they have creators cross-post most of their content to Youtube. Creators then advertise Nebula in their sponsorship timeslot, extolling its virtues for creator sustainability etc -- which PeerTube would greatly benefit from as many people aren't aware of the benefit of a distributed system, or what that even means. Additionally, they upload some sort of exclusive -- either longer videos with content that wouldn't fit on YT (LegalEagle is a good example of a channel that does this), or special long-form projects (Wendover Productions uses this model). Either way, this lets Nebula hijack Youtube's recommendation algorithm and built in audience as essentially free advertising, as the content being uploaded to YT is being posted to Nebula anyways. Obviously many people just watch on YT and ignore Nebula as it requires a subscription, but PeerTube doesn't and Nebula is succeeding despite that -- anecdotally, me and my fiance bought a subscription because of this strategy.

With that out of the way, I do love this idea and hope it gets traction regardless!

Rotten194··on Unikernels: The Next Stage of Linux’s Dominance (2019)
(Not the author) No, the paper describes a small patch to Linux (~20 lines) + modifications to glibc that enable using Linux as a unikernel. Their goal is to have the modifications upstreamed so that Unikernel linux could be a GCC target etc.
Rotten194··on Ask HN: What's your quarantine side project?
Working on a game called Themengi (https://vgel.me/themengi/), where you learn an alien language to navigate a world via text commands and dialog. Currently taking a break from the game itself to rewrite the linguistic parser for the game in Rust, which you can follow in my blog series: https://vgel.me/posts/symbolic-linguistics-part1
Rotten194··on What the heck happened with .org?
lets start two companies. i'll take coolnewcorp.com, and you can have qwrfggtylop.com. seems fair!
Rotten194··on Show HN: Tom Nook's Laptop
Using one of the USB-A ports for scale, the base seems to be 1.2 centimeters thick-- which I guess is more than a Macbook Air, but certainly not "a tank", IMO. For reference, my 2014 Thinkpad 440p has a base thats slightly more than 2 centimeters thick, and my Minecraft FPS can corroborate that it was never much of a gaming laptop ;)
Rotten194··on Miracles You’ll See in the Next Fifty Years (1950)
ahh yes, the gourmet indulgence of a 2-minute microwaved frozen steak -- with a refreshingly cool crunch on the inside
Rotten194··on Stage is a minimalistic 2D, cross-platform HTML5 game engine
Games typically need to redraw the entire screen anyways. Imagine a sidescroller where even a 1px movement requires the entire background and every object on top to be redrawn, or in 3D even a tiny camera move shifts the position of every triangle on the screen. Even very simple games without a lot of movement often have animations, where you then have to worry about transparency so you may have to redraw the region under the animated element anyways even of it doesn't move, etc. You could do a diff hoping for the happy occasion of a mostly-static frame, but a) that gives a performance penalty to the majority of frames that would need a total or near-total redraw anyways, and b) would lead to either unstable FPS or pointlessly hitting the FPS cap.

There are exceptions to this, for example a visual novel or a turn-based strategy game, but those are often satisfied to just eat the performance penalty for the ability to use standard tooling, or can use engines or standard UI toolkits like React that can do a temporal diff. For example, I've written several text-based games [1] that just use the DOM because using canvas or WebGL wasn't necessary. I've written other games that use a hybrid approach of absolutely-positioning temporally diffed DOM over a frame-by-frame redrawn canvas, to get the best of both worlds [2]. And I've also written games in e.g. Unity where it's easier and performant enough to use ImGui and redraw it every frame. Ultimately it cones down to what's practical and what's performant enough.

[1] https://vgel.itch.io/themengi , https://vgel.itch.io/the-sacred-text [2] https://vgel.me/hoverator

Rotten194··on Rediscovering the lost power of reading aloud
Me and my fiancé took turns reading the Silmarillion aloud. Its really brought out the mythic, epic poetic history aspect of it. Made me want to try reading the Illiad or Odyssey aloud -- maybe once I learn Iron Age Greek ;-)
Rotten194··on Field Linguist's Toolbox
The Delph-in system has a morphological model based on position classes. Morphology items are treated similarly to syntax items, in that they can hold constraints on & apply features to what they attach.
Rotten194··on Field Linguist's Toolbox
Yeah I actually found a link to the overview page: http://depts.washington.edu/uwcl/aggregation/
Rotten194··on Field Linguist's Toolbox
I think the auto-detivation of morphological rules is still an active research project and not public yet, unfortunately. But it's been a couple years so I may not be up to date.
Rotten194··on Field Linguist's Toolbox
There's a really cool pipeline for shepherding Toolbox-cataloged utterances and definitions into Delphin-project symbolic grammars to basically auto generate morphological models & do TDD on symbolic grammars. Took a class from Emily Bender where we built a grammar of Chintang with this system, and were able to do simple machine translation via an intermediary language to other grammars built in the class for e.g. Nuuchahnulth and other small languages. Its a really cool system for machine understanding of languages that never would have enough tagged text for a machine learning system.
Rotten194··on Three New Longevity Startups
Some big confounding factors there. Hong Kong and Iceland are also very wealthy compared to India.
Rotten194··on Firefox 72.0
I find the notification permission change (requiring it to be after a user gesture) really annoying. It doesn't do almost anything to combat permission spam (if you're visiting a clickbait site, you'll probably click or scroll at least once, especially on mobile where sites usually have a giant header so you need to scroll past the fold to even see that the article is clickbait), and just inconveniences developers who have to special-case Firefox's divergence from the spec when trying to legitimately use the gated features.
Rotten194··on Porting a JavaScript App to WebAssembly with Rust (Part 1)
I thought DOM manipulation from WASM was pretty expensive because it needs to be bridged through JS -- is that still true?
Rotten194··on A Dropbox account gave me stomach ulcers
Dropbox selective sync that ignores the archived versions maybe?
← PreviousPage 2 of 9Next →