HN user

merlish

139 karma
Posts1
Comments63
View on HN

For a user to correctly answer a permissions dialog, they need to learn programming and read all the source code of the application. To say nothing of the negative effects of permission dialog fatigue.

In practice, no-one who answers a web permissions dialog truly knows if they have made the correct answer.

Asking the user a question they realistically can't answer correctly is not a solution. It's giving up on the problem.

You'd be better off believing neither, but taking the participants' stories as what they believe happened.

Then drawing your own conclusions.

(Sorry, not picking on you in particular; I'm just quite annoyed to see this thread treating the incident as a spam problem to be solved technically. There were also people who really did not like Wil Wheaton, and then suddenly found him in their online home.)

Sure, and these are good points, but they solve a problem far less interesting than the real problem.

Of the (let's guess) 60 people telling Wil to go do one, up to about half[1] might be the shitposting crew taking advantage to troll a not well-liked celebrity, but the rest were people and their friends who were genuinely incensed at his appearance in their graph.

For the latter, you might argue they should block him, but if he's on the same instance then effectively he's come in and sat down in their home. If he's on a remote instance, then there still exists the desire for retributive justice for past wrongs (yes, including perceived).

In this specific case, there was no-one (except the moderator!) sticking up for Wil. The groups that dislike him are small, but genuinely plural. (e.g. 4chan doesn't like him, a number of trans* artists don't like him, some Star Trek geeks...)

Given that he came to the fediverse to escape harassment and trolling on _mainstream_ platforms, I don't think there is a great solution.

So here's two options, instead:

One: Don't join the platform as "Wil Wheaton". If you want to join a community as another face in the crowd, then use an internet handle. Then you can interact as equals.

Pseudonymity is one of the great gifts of the internet.

If you come as a celebrity to link your blog posts and try and talk to fans, then I don't think the fediverse makes any sense. It's too small and people are territorial of the instances they adopt.

Secondly - a more social solution - find some way to calm the people involved. This may involve temporarily suspending instance links, or saying that (as moderator) you need time to discuss this and are working towards an acceptable solution, etc. Don't know what you do next.

Finally - and the point of my rant: Dismiss those you don't understand / greatly simplify social problems at your peril. (Sure is great reading a bunch of trans artists arguing in earnest turned into "abusers" - nice!)

As humans, we make great changes and build general solutions based on one-off undesirable acts, and if you don't even make an effort to completely understand the problem then you WILL build the wrong solution.

[1] Possibly more than 50%? There were people involved who kept saying they had just joined Mastodon and didn't know how to use it, which is weird.

How do you implement co-operative multitasking in WebAssembly?

Do you have to analyze the source program & know where every possible call to a yield is, and store all resulting suffixes of a function as new functions?

I managed to log in, but the system is pretty barebones.

Trying to change or apply for a new banking product just takes you to a help page saying the ability to do this is 'Coming soon'. (Some other features are scheduled to be available by the 'End of April', for comparison.)

Also, in the 'pending transactions' popdown, e.g. £38.60 is displayed as '38.6'...

They're planning both. Reference counting/bump pointer allocation in-frame for temp stuff & no GC & manual memory management for the upcoming high-performance restricted C# subset data-oriented jobs code, and for full-fat real C# code they're slowly working to clean up their (C++ coded) runtime so that a non-conservative garbage collector can work.

Re. Boehm, that was the garbage collector Mono shipped until they wrote SGen some years back.

I'm quite excited by the work they're doing on performance. It looks great.

There should be a link on the page. I started binding it to C# over Christmas out of frustration of one not existing, and someone else quickly picked it up and made a cleaner binding that I recommend more. Google NuklearDotNet for the latter.

That would be a bit inaccurate though - the core library doesn't have a backend. The example you found e.g. implements an OpenGL backend.

It doesn't reference any external libraries (maybe C runtime). IIRC it does not assume you have a malloc() function by default; you provide one or use a #define before include to tell the header it can rely on standard malloc.

I guess you could have just read a lot of books. I don't know if libraries are being closed down in the US, but that's happening a lot now in the UK for cost saving reasons/due to lack of demand.

With a computer & internet access, it's easier to stay isolated. Though I guess TV and radio, even newspapers and writing for pen pals also provides the same substitute sort of-interaction without actually having to interact.

For all the negatives (assuming we say 'all these people should just go out and socialize' - unfairly), I think online communities make a huge difference to those who are physically disabled, need to stay home to care for someone all the time, or are stuck in the arse end of nowhere.

There's still a certain sense of egalitarianism in internet forums. One commenter's opinion is (by default) worth the same as another's.

That said, in most open comment sections in modern times the actual 'community' part is underdeveloped. Everyone is so loud, there's always someone positively thrilled to play devil's advocate with maximal cynicism, always someone there to interpret a comment unfairly, precious little sympathy for the views of others.

I think the expectation the Go lot have been working towards is the expectation that individual pauses are very short. Contrast to a Java server GC, aiming towards overall efficiency. (Tell me if I'm wrong, I'm no expert.)

Interesting! IMO it showed that garbage collection isn't some silver bullet (of course), but that with a kick to a quite coarse control it's possible to achieve very good performance indeed.

I am surprised that the difference is so great - and that the GC seems to think it's a good idea to keep collecting 4 MB of data at a time - but I guess the Go team have been tuning heavily for interactive performance i.e. small pauses.

I guess in a situation like this you'd prefer something more like 'server' GC - maybe wait until you've allocated 1 GB then run through and collect everything you can.

In games, I wonder if you'd like to turn the GC off during frame rendering then collect while presenting the frame/waiting for VSync.

For soft real-time audio - synthesizing a few samples at a time - what would you do? OpenAL wants you to queue up thousands or tens of thousands of samples, but that sucks if you need to react very quickly.

If anyone has any ideas, please say. I'd love to do soft real-time audio in a thread even in e.g. C#. (Edit: Maybe JIT some code that doesn't allocate? Or even have a separate interpreter written in C that has a constant-ish upper performance bound & no malloc.)

It sucks that it's gone - it took me months to retrain my muscle memory to stop using backspace - but I've definitely accidentally navigated back from a form before.

I've adjusted. It's a hard decision but imo the right one. Future generations shouldn't have to deal with this.

To anyone reading who needs a keyboard-based substitute: Alt+Left Arrow.

I actually really want to know how Discord does it. Do they actually use the DOM, or just draw everything themselves?

Honestly, anyone who hasn't used Discord, I'd recommend installing it just to try it, especially if you're a SPA web developer or you work with Electron. The performance beats native apps, even dealing with very long sections of text that need to be swapped in and out as you scroll.

However they're doing it is probably the way we should be building Electron applications industry-wide.

This sounds like amazing news. LuaJIT being given a future direction by people who know what they're doing & have additional bright ideas to add, funded by Cloudflare.

I mean... wow. Sure, we'll see how things go, but as a user this signifies that LuaJIT now actually has a future.

For ShutUp10 at least (and probably the others): Yes.

Microsoft resets settings when updates happen. The application explicitly warns you about this. And indeed, I ran the application before and after receiving the 'Creators Update' in my VM & some telemetry settings had been reactivated.

To add some anecdotes to the above (plural of anecdote is of course data):

- fengari: Dunno, nice logo & name though :) Not done yet?

- lua.vm.js: Pretty good, but as you say in your README: "Next step is to iterate on the Lua <=> JS interoperability. Clever solutions to the lack of finalisers in Javascript are being searched for." (-> leak mem if passing stuff to JS in certain situations)

- Moonshinejs: paulcuth/gamesys' previous effort. It's a Lua VM written in JS, that accepts just Lua 5.1 bytecode. Works in IE6+. Very small. Nice 'DOMAPI' plugin; nice in the sense it mostly just works, and when it doesn't, the plugin is so small & simple you can hack it yourself.

One thing to note is when getting strings back from the DOM using DOMAPI, I've run into situations where the strings when accessed Lua-side are in fact 0-indexed not 1-indexed. (the_string .. "") is a working normalization technique.

Coroutines work very well here.

Also, do not overlook the in-browser debugger addon. It's a seriously nice piece of work, that more than makes up for the lack of source map support.

It deals with the lack of finaliers in Javascript by providing explicit .retain() and .release() mechanisms.

- Paulcuth/Starlight: As you say, transpiler, no coroutine support though.

How to get coroutines: ... I was looking into this, and you need something like using kripken's Relooper algorithm or a more general version of Facebook's Regenerator. Scary stuff.

Note about both moonshinejs & starlight, with respect to the string library: It implements Lua patterns by turning them into JS RegExp. The implementation isn't good enough as it stands; it's easy to get the wrong results, as the escaping logic is wrong. Damned if I know where though. I tried to fix it and just broke a different class of patterns...

- Brozula: Dunno

- Lua5.1.js: Dunno. Would be nice to have a better API for interaction than the Lua C API. No commits since 2013, like Brozula.

- Lua.js (lua2js): Dunno. Several open issues about e.g. '<' operator not working. No commits since 2013. And:

  _lua_coroutine["resume"] = _lua_coroutine["running"] = _lua_coroutine["status"] = _lua_coroutine["wrap"] = _lua_coroutine["yield"] = _lua_coroutine["create"] = function () { not_supported(); };

I dare say that a Infocom's Zork is a better game than many of today's triple-A FPS shooters or whatnot! Graphics aren't everything;

Interesting point of view, certainly. But the majority of game purchasers do care about graphics. Great graphics suggest (often incorrectly, I'll admit!) great production quality, and in the minds of many this is a 1:1 mapping to the monetary value of a product.

So selling a game that's accessible via a URL is a bit of a barrier on the commercial front. I guess itch.io works here.

On the technical/noncommercial side, for more high fidelity games I'd argue guaranteeing a stable framerate (and not having the rest of the browser chug while the game's running) and being able to use multi-threading would be a great help.

Once WebAssembly gets threading support, I'd expect to start seeing more intensive games. Web workers are... okay, but hardly convenient. I genuinely believe multi-threading support is more important than a better graphics API. (Typical engines cross-compiled from C++ then basically only have to deal with targetting mobile-quality graphics with a few edges knocked off & workarounds.)

As for Zork: You don't need WebGL for Zork. (Indeed, embedding text in a WebGL scene (as opposed to overlaying it) is very hard work.)

So WebGL is a suitable technology when you need interactive 3D that can't be prerendered, but you don't need impressive 3D; you're happy with results from a decade ago with worse performance. It's not a bad prospect for me as a prospective indie developer, but the tooling is noticeably more difficult than in native solutions.

And the WebGL API is much harder to use than glBegin(), glVertex3f()..., glEnd() from the bad old days... but that's just the influence of OpenGL ES.

Suggested path: write something in C against bgfx ( https://bkaradzic.github.io/bgfx/examples.html#metaballs ), then pray to kripken. And if Emscripten doesn't work just put some binaries on itch.io. Even the subset of gamers interested in indie games expect to download binaries.

--

Edit: You say you wish you had the talent to work in this field. If you're a fan of IF, you certainly have the technical talent to do that :) And writing is fun, but extremely time-consuming. Good grief it's time-consuming.

If you can deal with some mildly heinous gameplay, consider buying & playing Sunless Sea. The writing is transcendental, and the universe is brilliant.

Go Web Examples 9 years ago

I actually wrote an extremely shonky/basic file upload thing and contributed it to the weird 'illacceptanything' repository, while that was a thing, about a year and a half ago.

Maybe you'll find it helpful, maybe not. Ignore the bindata.go stuff and look at main.go (inc. file accepting) & the file upload control (w/Bootstrap fileinput.min.js) & the braindead simple HTML templating stuff.

https://github.com/leafi/illacceptanything/commit/1b78922f89...

I managed to give up my one true soda love, Dr Pepper, over the last few months. I discovered that a strong tea gave me a stronger caffeine hit, which was one of the core components I was truly craving.

I bought a cheap teapot and I keep it on my desk. Worked well.

(That said, my weight remains a problem. I'm 25 and I need to lose 37kg. I'm firmly in the obese BMI.)

I guess the author must not agree, but I honestly consider video games more as interactive art than software.

There are several great open source games. And older games that went open source after the fact (id engine et al).

Spurning the industry seems a bit like saying: Hey movie industry - I've already got enough films, thanks, you don't need to make any more. Or telling writers that there are already enough books.

(FWIW, I hope to make a living from creating video games one day. I'd feel hypocritical not to buy games I want, and try to content myself with a selection of older FOSS games.)