Super into "the iterative extraction and refinement of the product requirements". Hire me! outdata.net Blog lewiscampbell.tech/blog

New Zealand
Applying the same dishonest tricks agilists use to shill their methodology, in this article I show that waterfall is actually far more based and sensible. lewiscampbell.tech/blog/2610…
5
2
16
1,621
Lewis Campbell retweeted
I'm up to 200 implicit state machines in my game code base. ... ... 😳
Replying to @steveruizok
please nobody tag @DavidKPiano , i'm begging you
4
2
22
1,563
My most unpopular tech opinions are always some variation of "I think the idea is good even if popular implemenetations have serious flaws". So I'll always have a soft spot for: - document databases - multi-master replication - object oriented design
7
30
1,030
Like if someone can't see the benefit of Document Databases... I don't think they are thinking. Yes MongoDB has durability problems, but that's like dismissing relational databases because of early MySQL.
1
3
140
Frequently changing business requirements are a meta requirement that should be written into the requirements.
4
29
738
I can't play minecraft with my friend because he wants to keep villagers in crowded, inhumane slave holes and I want to build them beautiful two story duplexes.
8
1
31
1,185
Sat down and read through this properly - Rhy's design is very good. I still maintain that had his script tag just had vanilla JS the whole problem would have been simpler. When he listed his initial complexities in the earlier post, about half of them were reactisms.
Replying to @LewisCTech
I’ll do a longer write up since I appreciate a good faith reply To state explicitly: “The goal is to have a search box that on frame 0 of the client seeing it, it is focused for input and has any state from query params or local storage loaded in it” Web has 3 core primitives, HTML, CSS, and JS The very first thing the browser loads is the HTML file, that defines what CSS and JS the client loads, what the frame 0/1 of the client sees So that HTML file is super important, in a fully client side rendered world (CSR) that HTML file just contains a loading spinner while the client fetches the relevant scripts (ie react) You can see this in something like the sentry dashboard, where it says “loading JavaScript” for 0.5s This doesn’t work then for our use case as again, we need the moment that HTML reaches the browser on the first request to be focused with correct state So then what if we just render the HTML on the server? There’s one or two datastar implementations that do this and they’re sort of compelling, except, they server render every request? That means if you’re in Australia, you’re hitting a server in US-east with 0 cache hits and a 800ms round trip To fix this you could either deploy servers to every region, which does work, or, use a CDN cache which’ll be faster but then you’re back to that frame 0/1 issue of “you’re serving some shell of the page that mismatches the local state” So what you can do is serve the cached page which is the same for 99% of people with a small script tag which ships with the first HTML payload to do an update and it works great There’s one approach I’m not mentioning here which is this is for frameworks that require hydration (Vue, React), if you’re using raw js or have no hydration then it works great but you still need an inline script tag the problem hasn’t changed! This also takes no effort but no one does it! Sorry to throw them under the bus but try ChatGPT, Cloudflare Domains, Railway Domains - they all have race conditions in their search bars! To be honest though, people are way too focused on the technology and not the details You can make any approach fast, it’s just whether you put in the care to do so
1
28
2,140
Ban react.js

ALT breaking bad no more half measures GIF

I already ban useEffect and any async features
2
41
795
One thing I disagree with in their literature is how having requirements means you're not doing "product thinking" properly. No. You don't get to throw away Requirements Engineering just because you're doing the incredibly novel activity of "making software people pay for".
I've become so disillusioned by tech that I'm now reading Product Management literature. I have to say they make a lot of sense.
8
37
1,461
Yes handing down requirements to people that are carved in stone is ridiculous. Of course they should be pushed back on, questioned etc when appropriate. But no it isn't a three way circlejerk - there's a direction to it, from reality to implementation. It flows down.
6
145
The most common issue I see in my clients codebases is that they're over engineered. Partly because their programmers need to play resume bingo as a survival tactic, and partly the ego of the company; "well of course our B2B app needs this!". Just start from HTML... seriously.
8
52
1,537
Lewis Campbell retweeted
Munich Database Meetup night. Just had a conversation about technology that lasted over an hour and at no point were LLMs a subject. Relieved there are still people who know what they’re doing.
10
8
247
9,150
Sensitive New Age Guy Post: mocking smaller accents is bad. "It's just fun" - No, it homogenises dialects. No one wants to be made fun of. The same Aussies who make the "fush n chups" joke to New Zealanders get triggered by Yanks doing "throw another shrimp on the barby".
2
13
446
I do it too. I mock NZers who have stronger accents than me. And then I hypocritically tell Australians "we pronounce deck the same way you do...". I am going to stop.
2
85
Can someone steelman this? Every single problem in his list seems to stem from react. If it were just server rendered html with some vanilla JS sprinkled on top, there'd be no "hydration" or "unmounting" to worry about. Is there a single concrete benefit in using react for this?
Replying to @RhysSullivan
so why is it a hard problem? there's a bunch of things going on here: - the search bar needs to arrive in the static html bundle, but relies on dynamic content (the query parameters) - you have to prefill the content before react hydration runs, so you're writing a script outside of react to do it so it happens ASAP - the search bar needs to change positions on the page up to the navbar without unmounting it so all of the input stays focused - on mobile you need to bring up the keyboard and move it to the top on first tap - syncing to the url bar before hydration for reloads and page transitions - having the right loading skeletons in the static page content as well depending on if there's a search in the query params or not the end result is globally, you can go from loading the domains page -> searching in under 70ms as it arrives with the main bundle @ethanniser has a good article on some of the concepts behind this one ethanniser.com/blog/a-clock-…
21
5
186
21,615
Surprisingly enjoying the responses to this. Some disagreements, a bit of spiciness, but nothing too crazy. I'm learning something at least, which is what matters (to me (selfish posting)).
467
I am not trying to start some "beef" with this big account, I am sure he is a much better frontend dev than me. But I am just starting at his list of challenges and all I can think is "self-imposed react induced complexity".
35
2,411
Nothing is less productive then developing software with no written requirements. "but we can't do that the requirements change!" edit the document.
3
2
47
937
Sensitive Americans are always doing this shit. Lecturing us about "jap" when they are the ones who dropped two nuclear bombs. Lecturing us about "master branch" when they're the ones who had chattel slavery. I speak my own English, not yours, so fuck off.
4
79
Changed my mind - monads let you hide this important distinction behind type aliases or private fields. You want something like rust's safe/unsafe functions but with io, so there's no escape hatches (so it's actually safe (unlike rust)).
Someone should make a systems programming language that has a syscall monad. Easy to tell at a glance what code is deterministic and what isn't. As an added bonus, it would upset the "fUnCtIoN cOlOuR" people.
1
1
17
791
I propose the following notation. Deterministic function: X -> Y Non-Deterministic (ie, does IO) function: X ? Y The "?" is shorthand for "IDFK where this value comes from lol".
1
2
117