HN user

7777fps

741 karma
Posts1
Comments116
View on HN

In general, yes.

Everyone seems to have their preferred style of coding, and it is an easy defence mechanism, when presented with anyone who tries and finds it wanting, to say that "Well they didn't do it properly".

You find that with Microservices vs Monolith, Strong types vs Weak types, Exception Handling vs Results, Agile vs Waterfall.

People fragment into camps which turn into echo chambers and it's easy to dismiss anyone who doesn't commit to that cult as being unpure and not worthy of being in the cult anyway.

If you want a serious answer is because peer to peer webRTC doesn't scale beyond two people.

If you have 4 people every client would need to maintain 3 streams, a total of 6 streams between all participants.

To have any kind of scalability you need a proxy in the middle that can act as a single stream to each participant.

This middlebox can also handle normalisation, interpolation and other useful features you might want to smooth things out when clients have connection difficulties.

Why don't we have a Free Open Source webRTC proxy server implementation? Because these days just publishing a protocol isn't enough for adoption; not to mention that proxying large amounts of data will incur a significant cost.

And that hasn't covered the need for authentication, which is yet another required service.

And if the proxy box is interpolating and gracefully handling frame drops, does that mean it will be handling gasp decrypted video traffic? Yes, it will, unless you want to move all that to the client and then have a key exchange happen not just at the start but a renegotiation every time someone connects or disconnects.

So you see it's not as simple as, "everyone just opens this URL, webRTC is a thing duh".

Don't worry, I'm not espousing lifecycles as a panacea or solution for the modern programmer, I just wanted to share that experience with lifecycle methods meant that I was less tripped up by the pitfalls of react lifecycles.

Less so than I've been tripped up by react hooks certainly so it's been a surprise that many here are describing them as being much easier and simpler than classes.

Classes had limits and some pitfalls but it's been frustrating that lifecycle methods have been retired and deprecated because sometimes they felt like the natural place to do something.

But that's great until it isn't.

You can design all the declarative things you want, but someone will eventually come up with a requirement that doesn't appear to fit a declarative structure, such as an event that fires 2 seconds after something else happens.

And so to resolve that you can construct state machines with transition states to get back to a declarative model, but those state machines can quickly become a bigger headache to maintain (yes, even with redux) than if you'd just been able to setTimeout from the component in the first place.

And you start with the best of intentions of re-usable components but find more things that ought to be owned by the component pushed up to the store and suddenly there isn't a neatly re-usable component but an empty shell of something that still needs the other half plumbed in manually every time.

I love the idea that you can abstract everything happening in an application to state and render reproducibly from that, but the reality is that it's really hard and time-expensive to do compared to jquery.

But that would be fine if the tooling was there. If React had a CLI like the AngularCLI it wouldn't be such a problem to add new actions, or new pieces of state, or new components.

But it doesn't, so each new component ends up adding a little more state into the state machine which ends up breaking types in far off places.

Now there's probably an assumption about how state is built up or how reducers are typed or how actions are defined that I'm missing some reason why this shouldn't be happening. But it is happening, it's the reality for the project I've been working on and it's a real headache.

I liked that model because as an ASP webforms developer the class lifecycle is easy to reason about, like a page lifecycle.

In ASP you wouldn't put initialisation code in the page constructor either, it would go in Page_Init, Page_Load, etc.

Of course the tooling there made it both easier to put in the right place and harder to edit the page constructor to stick it in the wrong place.

Then I agree completely, and must have misunderstood what was proposed by a handler. Typically a handler will launch an external application such as mailto, ftp, magnet, etc.

If we want to run code in browser there is WASM.

So is the proposal that it would it be beneficial to have a DOS-like OS or x86 emulator in WASM for running COM files?

Yes, that would be better and more sandboxed than dosbox running outside the browser.

Correct me if I'm wrong, I haven't used DOSBOX for a decade but doesn't it have the ability to access hard drives and mount them?

Given that, it's not much of a sandbox.

Or does that require intervention from the host system rather than auto-mounting home and similar?

Lamest Edit Wars 6 years ago

Exactly, I think grammatically this would be correct:

Arsenal are winning

Arsenal is the best team in the league

It's contradictory (as well as plainly false ;) ), but that's English.

I'm not saying there's no effect I'm saying that weddings aren't special in that regard.

That's just as easily (or not!) answered the same as:

So what about all the workers that cannot pay their mortgages now?

Not much?

I think in most jurisdictions it's possible to get legally married, just not be celebrated in the traditional way.

So wedding celebrations have been delayed by 6 months or a year, well so what?

It's such a small thing to focus on and worry about when almost the whole global economy has been put on pause. There's almost nothing that hasn't been affected, the inability to immediately celebrate in a traditional over-the-top way is of such a minor consequence in comparison.

This reminds me of a prediction game experiment I heard that was described like the following. \*

The researchers presented the following to people.

   f(1) = true
   f(2) = true
   f(4) = true
   f(8) = true
And asked, what is f?

And the people will immediately jump in and test 16, 32, and then proudly declare that

   f = x -> x = 2^n for some integer n
Forgetting to test f(3), f(5), etc.

With more examination it turns out that

   f = x -> true.
\* I wish I could remember more of the details such as whether it was an experiment or just an illustration of one but it's not an easy thing to search for and I rely on memory and searching too much.

I think idempotent wasn't a good word but I think the idea being described is that crafting is acyclic.

For example Copper Wire + Iron = Green Circuit.

There's no recipe chain that takes in Green Circuits and produces either Iron or Copper Wire.

So once produced, you need to find a higher function for your products. You can't 'unmake' through a cyclic recipe.

Contrast that to ONI's water cycle, where clean water gets made dirty then cleaned again.

So ultimately in Factorio everything is leading toward the only resources that get destroyed - Science, Rockets, or Coal (or other energy types).

I agree, and I dropped Factorio for a year before going back to it and sinking a few hundred hours into it.

What changed? Well partly some UI improvement, but mostly it was a mindset change.

The inventory is rubbish because you're not supposed to have inventory.

It's a game about JIT supply chains.

Instead of building things and working out what to build from them, start from the end and work backwards.

I also had to learn to not get bothered by overproduction and stop trying to buffer overproduced goods.

Yeah pretty much, having names against people is fantastic.

I also don't particularly notice any increased lag, perhaps I'm normally operating at a verbal or social lag and zoom normalizes it down to my level?

Also, can hide video and pace around without bothering people.

It’s hard to integrate non-engineers – they aren’t valued.

But, we ship.

That in particular meant I viewed the article as a cry for help.

But it seems like all the commentary here thinks it is sincere and not an ironic piece?

Looking through that comparison, I find it funny that "time tracking" is touted as a feature.

My grand-boss might love the idea but the fact that GitHub is missing time tracking is a blessing as a developer.

Making developers track their time is hostile. Development is not something you should clock in and out of. A time-box in JIRA or GitHub shouldn't replace management being aware of what their team(s) are working on and how their progress is.

It too often turns into a stick to beat developers with.

There are all kinds of better metrics by which to hold developers accountable. Tracking time just puts developers off from improving code or refactoring. If you write bad code it's not your time that suffers, it's the next developer who has to work on that section.

GitHub is not git.

GitHub has pull requests, actions (mini CI integrations), other fuller integrations running off github hooks.

It's the issues, and pull requests that are the most immediate lock in. Transfer away and you lose your issues and PR history.

But more deeply it's the integrations. Even if it's all theoretically possible through other providers, if you have a working CI system set up to "just work" through GitHub then there's little chance you'll want to migrate to a different provider and have to re-do all that configuration.

Even with a dedicated dev-ops team it's weeks of disruption, not to mention the possibility to get half way through and discover something doesn't work the same way in [Competitor].

If you're up and running with github PRs driving JIRA issues and JIRA issues feeding into GitHub issues. And you have paid github marketplace integrations delivering value, then you're not going to look at a competitor unless that competitor is offering something that GitHub doesn't do.

Up to now the competitors have only differentiated on price as far as I can tell. There's certainly no killer feature of GitLab that people talk about.

GitHub has significant vendor lock-in, so it makes sense to make it free to capture the market before a competitor gets traction.

[Speculation:]

Perhaps they've run the numbers and can figure out that they make enough money from enterprise clients and will make enough more money from the 'marketplace' being a channel for selling github integrations and addons to cover this cost of not trying to monetize through supporting teams.

It also moves a large base from 'customer' with needed support to free users which don't need the same level of support.

90% of the adverts I see on Twitch are for Amazon Prime which suggests that Twitch advertising isn't naturally selling out.

Twitch since acquisition has made some changes (e.g. no longer hiding ads for prime members, forcing pre-roll ads on channels) to increase the amount of adverts seen but content creators hate adverts.

Twitch is live and not episodic which means that it relies on people watching and staying to watch. Pre-roll ads cause a noticable bounce rate, where someone clicks on a channel and because an advert starts playing thinks "nevermind" and clicks a different channel. Adverts during streams are suitable for some games with natural pauses but for others just interrupt things and any time creators have a break (which they should have more often for their health), they will lose a significant part of their audience.

Most games don't have a natural cliffhanger or other hook to get people to wait for "after the break", so the audience will just think, "I wonder what x is doing" and click through to their channel instead. In fact they don't need to wonder, it's present on their sidebar as a constant reminder of what other channels are showing.

So there's this weird situation where Twitch is reliant on both content creators and want advertising revenue but adverts actively harm content creators so resent being forced to play adverts.

Accountants, Lawyers, and Surveyors have credentialling bodies that train, test and monitor performance.

Accountants don't need to show they are qualified in interview because they have the letters ACA, ACCA, CEMA or whatever that they can clearly point to.

Lawyers and Surveyors similarly have profession bodies that handle qualification.

Software engineering is not uniquely broken but it is broken, but the author jumps to the wrong conclusion.

The other engineering and professional disciplines have professional bodies who have official qualifications.

Software engineering has never solidified around any particular set of qualifications and many think they are not relevant.

And artists are often asked to do some initial work for free before a client commits, they often end up doing a lot of "wasted" work for free without getting properly compensated, so it seems odd to argue that's a model that software should look toward.