20 ms·
Worst of breed software
- slater 8mo agoNice to see L_tus N_tes still getting the hate it rightfully deserves!
- marcosdumay 8mo agoAs long as a single person uses it, everybody will sympathize and hate together.
- cramcgrab 8mo agoOracle? Is that you?
- fitsumbelay 8mo agoHilarious
- bmurphy1976 8mo agoGenius!
- vikboyechko 8mo agoYAML spaces and apostrophes inside of single quote strings keeps me at night.
- HendrikHensen 8mo agoJust last week at my job we apparently converged on a Kubernetes deployment to host a static site, due to company security policies related to publicly exposing buckets to the internet... I died a little inside that day.
- Devasta 8mo agoThats honestly the reason why most stuff is a web app these days. For desktop software you need to deal with IT security losers who recoil in horror at the idea of computers running software, and god help you if you need a port opened. Far better to shove everything through port 443 and redownload the software over and over until the end of time.
- marcosdumay 8mo ago> For desktop software you need to deal with IT security losers who recoil in horror at the idea of computers running software Windows will invariably tell them your software is not secure and block it. It doesn't matter what the software does, all that matters is that only your company runs it, so there isn't a million people out there with a copy.
- lifetimerubyist 8mo ago> you need to deal with IT security losers who recoil in horror at the idea of computers running software Oh boy I have some bad news for thise IT security losers
- funnybeam 8mo agoAs an IT security loser it’s not your software I’m worried about, it’s your OpSec. I’ve seen enough innocuous software being owned and being used to deploy malware that it takes a lot of due diligence to trust providers of random binaries
- nunez 8mo agoI mean it's a legit use case. Kubernetes is awesome for large scale web hosting. Much simpler than writing huge NGINX configs.
- gjsman-1000 8mo agoI have personally seen well meaning older devs saying that building on Microsoft Access with VBA is absolutely a viable greenfield stack in 2026 for small business. And we wonder why ageism exists in our industry. Not saying that’s fair or all of it by any stretch, but ouch. It goes to show many of these worst practices are alive, well, and employable.
- esseph 8mo agoIf you can spin up a working prototype with Microsoft Access and VBA then you can get investors and others to help build your market release. I'm _not staying you should_, but if it works and makes money, it may not be that dumb.
- nunez 8mo agoThis is a reasonable idea if the users maintaining the system aren't technical AT ALL. Think small business who wants a homebrew inventory system for some reason. There is almost always a better tool, but Access is still very approachable for non technical users
- anishgupta 8mo agodid you try making it a slop but ended up making UI good? fun website, seems we're back in the days of early 2000s when discovering new websites like this was fun
- SkyeCA 8mo agoSAFE requires more than being burnt with fire. If SAFE were an SCP it would be apollyon class.
- worik 8mo agoNeed to save state for an HTML form? UUencode all 354 fields (64MB string) and put it in a hidden input field! Twice!!
- tormeh 8mo agoTemplated YAML - and all YAML eventually becomes templated - is so bad it makes me yearn for XML. We had it bad and we made it worse.
- marcosdumay 8mo agoI dunno why nobody used things like external includes in XML, but the worst parts of YAML were there too. (But at least, I think XML doesn't have macro expansions, so that's a win.)
- mpyne 8mo ago> I dunno why nobody used things like external includes in XML In practice they led to fairly severe security vulnerabilities. "XXE" used to be an OWASP Web Top 10 issue, and the reason it dropped off the list was because XML mostly went away, not because it stopped being a thing. > But at least, I think XML doesn't have macro expansions, so that's a win. XML, like HTML, has entities that can be expanded. Unlike HTML you can define them in XML and this led to the "Billion laughs attack": https://en.wikipedia.org/wiki/Billion_laughs_attack https://en.wikipedia.org/wiki/Billion_laughs_attack
- marcosdumay 8mo ago> In practice they led to fairly severe security vulnerabilities. Well, that seems to not matter for the people writing YAML. > XML, like HTML, has entities that can be expanded. Lol! Of course I'd be wrong about that. Expecting XML not to have a well known security vulnerability is a losing proposition.
- actionfromafar 8mo agoAt least in XML you could easily see where a tag ended and a single whitespace too much or too little wasn't sure to make your day worse. (Though, sometimes it did.)
- deleted 8mo ago[deleted]
- deleted 8mo ago[deleted]
- Dwedit 8mo agoStill hard to beat Syncronys SoftRAM.
- neilv 8mo agoThank you. I've been doing distributed systems for years, when and to the degree appropriate, but this Worst Of Breed career guidance resource should help me position my skills, for current hiring priorities, to maximize my impact, towards enterprise objectives, going forward. But seriously, it's not only cynical careerists who are pumping resume keywords like it's a game everyone is playing, and everyone keeps quiet about RDD, etc., because nobody wants to spoil it for everyone. It's also people who are really into one of the keywords, and think it's the most important thing, or the only important thing. -- Past Case Study #1 -- Context: interview with systems research PhD brand-new founders, after my cold outreach pitch as a "startup generalist" (I think I said it in the headline) who would complement the scientists. Me: (paraphrased) You're the experts in novel distributed systems research niche X, and I can't help you with that. What I can help with is all the other early startup work you'll need done, like bespoke infrastructure that works with X, Web consoles, mobile apps, some systems programming, product definition, project management, helping academic researchers and industry engineers work together, whatever needs to be done. PhD founder: (this might be an exact quote) We need an expert, not a generalist. -- Past Case Study #2 -- Context: interview with a mid-stage startup's CTO, who was hired for distributed systems expertise. Me: I suspect that a Postgres server on a modest cloud server can handle the entire planet's activity of X. And (since the company's recruiting materials emphasized bias for action, and rapid iteration) we could very quickly build and validate that empirically with simulated transaction load. Of course, in production, we'd set up Postgres with distributed failover, etc. CTO: I going to need a severalth one-on-one interview with you, an offer is imminent, but it's unclear whether you'll ever be allowed to talk with anyone else on the team, who you pointedly have still not yet met.
- sgarland 8mo agoI am personally offended by [0]. Maybe you should spend some time doing proper data modeling when you design your app, and maybe adding a new column should be a painful exercise. Haphazard schema is the quickest way to develop terrible performance, loss of referential integrity, and insane queries. Well, outside of sticking everything into a JSON column. 0: https://worstofbreed.net/patterns/schema-bureaucracy/ https://worstofbreed.net/patterns/schema-bureaucracy/
- esseph 8mo agostands up I'll admit one of my sins I have occasionally stuffed json into proprietary software data fields to get that data accessible/usable by another system. (High performance not required)
- neilv 8mo agoThat could be a virtue. And some closed proprietary software does things like adds a few additional fields for pragmatic end user extensibility like this. The practice predates JSON, but sometimes your bespoke string or ID or whatever in field "Custom 1" is all compromise you need to make things work well.
- netbioserror 8mo agoI've used JSON as an additional options input to a native-compiled CLI program's various commands because 1) the schema of each option is radically different, 2) they need to be passed most of the way down the call stack easily for each stage of our calculation and report generation. It works fantastically well, and don't let anyone tell you that you MUST bloat the CLI interface of your program with every possible dial or lever it contains. We should all be cogent of the fact that, in this very young and rapidly evolving profession, textbook and real-world best practice often do not overlap, and are converging and diverging all the time.
- sgarland 8mo agoOK… there are some exceptions where it makes sense. In the web dev world, though, the overwhelming majority of cases I’ve seen it used are along the lines of “we don’t know what we might need later,” AKA “either product didn’t adequately specify the requirements, or we didn’t do proper data modeling.”
- arwhatever 8mo agoHoo boy some of these (anti) patterns really resonate. I want to name names - I could cross-reference some of these with specific company names that you've heard of, but I shan't. I'll definitely keep this website in my hip pocket to privately throw at teams going forward, as needed.
- tombert 8mo agoDuring my exit interview at a BigCo, when they asked why I was leaving I said "I just don't think it was a very good fit", which I believe is the most polite way of saying "I just didn't like the job". The manager doing the exit interview started getting defensive and blaming my "attitude problems" [1], and eventually I started explaining that it felt like the entirety of the culture at BigCo, particularly amongst management but even with engineers, came down to "try and justify your existence in the company". Instead of doing things ways that are easy and straightforward, you instead were incentivized to make your code complicated so you can brag about how complicated it is, and then drop constant references to your management about how hard what you're doing is. The manager didn't like this response, and got more defensive, we ended up going back and forth, and eventually the interview ended and despite taking a pretty considerable paycut I was ok with my decision. I didn't know the term "Resume Driven Development" until after I left, but that was a pretty accurate description. [1] Not completely wrong, but that doesn't absolve them of their sins.
- arwhatever 8mo agoYeah I've worked at enough places that could generate vastly more software feature ideas than they could ever implement, to find the "justify your own existence"-type places utterly insufferable. And I absolutely refuse to suffer them and everyone else should too.
- arwhatever 8mo ago"How about YOU justify my existence BEFORE making the decision to hire me in the first place?" - I've never quite said but have come close. (Sorry, you struck a nerve with your BigCo depiction. :-)
- tombert 8mo agoGenuinely not the guy's real name, but let's say that this manager's name was "Steven". When I said that the job boiled down to a lot of people trying to justify their existence, Steven said "do you really think that people are doing things to justify their existence in the company, Tom? Really?" I responded back with "Yes. I think some managers, STEVEN, really like to schedule meetings to make it look like they're doing important work, STEVEN, despite the fact that most of these meetings are useless and could have been handled over slack STEVEN. I don't want to name names STEVEN, but I have observed it on the management side. I suppose you'll need to figure out who I am talking about STEVEN". This was several years ago so I'm paraphrasing, but barely. I really disliked that job and when he wouldn't just let me answer with "it wasn't a good fit" I got (maybe irrationally) angry and it ended up being an excuse to air all my grievances. I could tell that he was getting upset when I started basically resorting to thinly-veiled insults. Not my proudest moment, to be 100% honest, but I also can't really say that I'm sorry either because I meant everything I said.
- nunez 8mo agoI felt some of these personally. > "We are doing DevOps now! The developers write Dockerfiles and the Ops team operates Jenkins, which cannot build the Dockerfiles." I have DEFINITELY seen this done in production back when containers were en vogue! This and Dockerfiles passed around by email.
- ansgri 8mo agoBest of breed design!
- doodlesdev 8mo agoThis might now be one of my favorite websites in the internet. It won me when I saw the "Excel Backend" design pattern [0]. I wish so fucking much I had never seen this before or heard of using Excel as a database. update: I'm feeling actual physical pain by reading this and remembering every single piece of software or website I've seen that actually applies these patterns [1]. [0]: https://worstofbreed.net/patterns/excel-backend/ https://worstofbreed.net/patterns/excel-backend/ [1]: https://worstofbreed.net/patterns/js-bundle-bloat/ https://worstofbreed.net/patterns/js-bundle-bloat/
- musicale 8mo agoI assumed it would just redirect to microsoft.com. But instead it crystallizes the core methodologies of the entire industry. This should probably be some sort of industry certification or ISO standard.