WTF Bites
-
This. I wish I could read SQL , namely first seeing what tables are being referred to and under which aliases; never mind giving autocomplete a chance of doing the same.
For some reason, mathematicians never did. The standard notation for sets is
{ x, y | x ∈ X; y ∈ Y; P(x, y) }
which is what SQL follows, and so do list “comprehensions” in Haskell and Python. C# putting the tables first has it's advantages, but it is the odd case.
-
it's declarative programming, not imperative (or functional) programming.
Although it's trying really hard to hide that fact.
-
it's declarative programming, not imperative (or functional) programming.
it (or rather the let's-put-all-business-logic-into-stored-procedures crowd)
All incarnations of “PL/SQL” are abominations, but many database engines allow writing stored procedures in normal programming languages.
-
it's declarative programming, not imperative (or functional) programming.
it (or rather the let's-put-all-business-logic-into-stored-procedures crowd)
All incarnations of “PL/SQL” are abominations, but many database engines allow writing stored procedures in normal programming languages.
These are a bad idea for different reasons.
-
it's declarative programming, not imperative (or functional) programming.
it (or rather the let's-put-all-business-logic-into-stored-procedures crowd)
All incarnations of “PL/SQL” are abominations, but many database engines allow writing stored procedures in normal programming languages.
Java isn't a normal programming language.
-
@PleegWat Well, I guess there is a bit of slant, but compared to PL/SQL that is lying almost flat it is still pretty normal.
(Also, what is so non-normal about it?)
-
Status: swallowing my words as I order by an expression via the alias I gave it in the same SELECT statement.
-
Also status: wishing I could do the same in the WHERE clause.
The problem here is this SQL dialect doesn't support common table expressions or subqueries.
-
The problem here is this SQL dialect doesn't support common table expressions or subqueries.
Even SQLite supports both. What kind of want-to-be-a-database are you using‽‽⸘
-
@Bulb I stick to my previous decision of not naming-and-shaming DBISAM.
-
What the fuck is the point then?
-
It seems like absolutely every NodeBB topic page has a "this topic has been deleted" message box at the top that's just hidden by default? Can someone else confirm that it's not just me?
-
It's not just you. I can see it too if I disable the stylesheet.
-
Can someone else confirm that it's not just me?
It’s not just the deletion alert…
-
@Gąska I tried to look what library it uses for templating. I am not sure, because I couldn't find any
packages.json
at all (!), but it seems templating is only done on server side and none on client-side. Which means it's trying to avoid editing the DOM when updating or switching topics except for pasting the loaded posts, and this is the way to do it.
-
@Bulb Circumstantial evidence points to Benchpress.
-
https://github.com/NodeBB/NodeBB/blob/master/Dockerfile#L9 said:
COPY install/package.json /usr/src/app/package.json
why-the- is it in non-standard location?
https://github.com/NodeBB/NodeBB/blob/master/Dockerfile#L22 said:
CMD node ./nodebb build ; node ./nodebb start
The application has the compilation logic built into itself?
And builds itself on start of the container (rather than build of the container)?
-
COPY install/package.json /usr/src/app/package.json
why-the- is it in non-standard location?
CMD node ./nodebb build ; node ./nodebb start
The application has the compilation logic built into itself?
And builds itself on start of the container (rather than build of the container)?Plugins have their own templates that have to be compiled. For some things you need to restart, others you need to rebuild:
-
- Is there any reason why it needs a custom restart widget instead of just telling you to restart the bloody container with plain old
docker restart
? - Is there any reason why plugins can't be installed by adding a new layer to the image that adds them in the right directory and
RUN
s (i.e. at build time) the build command to compile their templates?
I am of the opinion that web applications shouldn't be able to modify their installation. That would mean
RUN
ing the build command under one user (which can be root, but better shouldn't) and then theUSER
would be switched to another that does not have write permissions anywhere in the container except mountpoint of volume for uploads if there should be one. And it should be willing to run under any unnamed user, some environments (e.g. OpenShift) run containers with random-u
.I am also of the opinion that starting and restarting applications should be left to the standard tools of the operating system it is running on. Which means
docker restart nodebb
if it's running under plain docker. It might meandocker-compose restart
. It might meankubectl delete pod nodebb-f246b8a3-5beaabe8
. It might meansystemctl restart nodebb
. Whatever makes sense on given server. That way the admin does not have to think how to restart this or that application, they just use the same tool for everything.Last but not least, I am of the opinion that web applications should support running with tightly firewalled egress. Which usually means that they should be built on another machine, the container shipped over and started. This does not preclude doing some extra work on startup as long as it does not require network access, but any such work can already be done when building the container, because the container is the only way anything gets pushed to the server, so the startup will do the same thing every time anyway.
I am not persuaded it is not massive .
- Is there any reason why it needs a custom restart widget instead of just telling you to restart the bloody container with plain old
-
- Is there any reason why it needs a custom restart widget instead of just telling you to restart the bloody container with plain old
docker restart
?
We run it in docker but that's not a requirement.
- Is there any reason why plugins can't be installed by adding a new layer to the image that adds them in the right directory and
RUN
s (i.e. at build time) the build command to compile their templates?
I am of the opinion that web applications shouldn't be able to modify their installation.
Maybe. I am sure that many people who admin these things appreciate being able to install new plugins from the admin panel, though.
I am not persuaded it is not massive .
- Is there any reason why it needs a custom restart widget instead of just telling you to restart the bloody container with plain old
-
I am not persuaded it is not massive .
Luckily, you're welcome here to post your concerns
-
I am not persuaded it is not massive .
I am not convinced Mr. Babbage didn't start a massive that's just gotten bigger and bigger ever since.
-
@boomzilla said in WTF Bites:
- Is there any reason why it needs a custom restart widget instead of just telling you to restart the bloody container with plain old
docker restart
?
We run it in docker but that's not a requirement.
It would be a huge if it was a requirement. Fortunately I don't see any way to even make it one.
However no matter how you run it there is some infrastructure for starting and restarting services, so the service does not need its own, and not having its own means there is less to program in it, and more consistent interface for the administrator.
- Is there any reason why plugins can't be installed by adding a new layer to the image that adds them in the right directory and
RUN
s (i.e. at build time) the build command to compile their templates?
I am of the opinion that web applications shouldn't be able to modify their installation.
Maybe. I am sure that many people who admin these things appreciate being able to install new plugins from the admin panel, though.
It makes things easier for the less skilled admins, but that's exactly the thing I am vary of. Kind of like you can very easily add resources in the admin panel of some cloud environment, say Azure, but every consultant tells you not to do it and use some kind of infrastructure as a code tooling, because you'll soon end up with utter mess on your hands otherwise.
Having a command in the
Dockerfile
to install plugins according to a manifest fed to thedocker build
command would be less programming, more friendly to properly set up infrastructure, and not that much harder for people who just want a quick and easy way to get it running.And it would run better under orchestration where the assumption is you can destroy the container any time and start a new one from the image and it will just pick up where the previous ended—which is easier to ensure when all writing is confined to mounted volumes with data.
@Applied-Mediocrity said in WTF Bites:
Luckily, you're welcome here to post your concerns
It is time-honoured tradition that the forum software TDWTF forum runs on is .
- Is there any reason why it needs a custom restart widget instead of just telling you to restart the bloody container with plain old
-
Status: Wondering why
TYPE_MAX_LENGTH
was enough everywhere but one place...Oh, and also why a string column that can be only one of two values was used.
Not that I'm ungrateful! I'm about to abuse the fuck out of it in a moment, but... why?
-
Thanks to the oneboxing,
@boomzilla said in WTF Bites:
COPY install/package.json /usr/src/app/package.json
why-the- is it in non-standard location?
The answer to "why" is "because NodeBB"
-
CVS Caremark app wasn't working, so I decided to try the website.
Much better.
-
-
@Tsaukpaetra said in WTF Bites:
Status: Wondering why
TYPE_MAX_LENGTH
was enough everywhere but one place...Because excavator.
Oh, and also why a string column that can be only one of two values was used.
Not that I'm ungrateful! I'm about to abuse the fuck out of it in a moment, but... why?
To avoid having a code table. Or for “compatibility” with databases that do have actual enums, because those tend to be passed in and out as strings, not as numbers.
-
To avoid having a code table.
Funny enough, I'm abusing this table because I don't want to make a
flags
table, so...
-
The answer to "why" is "because
NodeBBExcavator"FTFD
Because excavator.
-
-
-
@boomzilla Saves on shipping costs and potentially import duties/fees. Besides, it's less likely that you're getting screwed over by UPS/DHL/.... So maybe worth the extra cost? I mean if you're looking for a multi $1000 hand-bag, you're obviously already into the whole thing of questionable economic decisions, regardless of whether it ends up being a physical thing or a digital accessory.
-
Saves on shipping costs and potentially import duties/fees.
Saves on owning an actual thing too.
-
@loopback0 said in WTF Bites:
Saves on shipping costs and potentially import duties/fees.
Saves on owning an actual thing too.
Who’d want to own such an ugly handbag?
-
@loopback0 said in WTF Bites:
Saves on shipping costs and potentially import duties/fees.
Saves on owning an actual thing too.
Who’d want to own such an ugly handbag?
People buy ugly crap all the time, they just usually get actual physical ugly crap.
-
@loopback0 said in WTF Bites:
@loopback0 said in WTF Bites:
Saves on shipping costs and potentially import duties/fees.
Saves on owning an actual thing too.
Who’d want to own such an ugly handbag?
People buy ugly crap all the time, they just usually get actual physical ugly crap.
cough game micro transactions cough.
(Also, that was the joke. Paying for a fungus token instead of the real thing saves you on having to own the ugly thing)
-
@loopback0 said in WTF Bites:
@loopback0 said in WTF Bites:
Saves on shipping costs and potentially import duties/fees.
Saves on owning an actual thing too.
Who’d want to own such an ugly handbag?
People buy ugly crap all the time, they just usually get actual physical ugly crap.
cough game micro transactions cough.
(Also, that was the joke. Paying for a fungus token instead of the real thing saves you on having to own the ugly thing)
Never explain jokes. Just note them as not gotten and make more like that, and quietly wait for a harvest of screaming.
-
Some software I use wanted me to know that there was a new update available. One of those things that pops up every time you start.
So I download, install, things look quite different… and up the top, (LICENCE [not sic] UPGRADE REQUIRED). And uh, I’m not seeing any easy way to go back to the version I do have a licence for.
Honestly wondering how much I can bring myself to care… it’s not like I deliberately subverted any terms.
-
@loopback0 said in WTF Bites:
People buy ugly crap all the time, they just usually get actual physical ugly crap.
When buying ugly crap, having it physical doesn't seem like a feature. Digital ugly crap takes much less space and is hidden away much easier.
Obligatory 2020: Additionally, with digital ugly crap, you can actually show it off to your "friends". Physical ugly crap is stuck with you at home.
-
@Applied-Mediocrity said in WTF Bites:
I am not persuaded it is not massive .
Luckily, you're welcome here to post your concerns
Unfortunately the last user who was opinionated and criticized @julianlam ended up descending into a spiral of madness. Surely we wouldn't want that happening to such an upstanding member as @Bulb now would we?
-
@sloosecannon Is that the topic? I haven't got that far in my boating trips yet. Cursory looks suggest that there be dragons. Or at least another one of those enthusiastic CH3Hg+ connosieurs "à la "...
-
@Applied-Mediocrity said in WTF Bites:
@sloosecannon Is that the topic? I haven't got that far in my boating trips yet. Cursory looks suggest that there be dragons. Or at least another one of those enthusiastic CH3Hg+ connosieurs "à la "...
it is indeed. It's... quite a trip
-
@sloosecannon is it worth reading? I've avoided it like the Swampy threads.
-
@sloosecannon is it worth reading? I've avoided it like the Swampy threads.
I got a little way in and then decided that was closer to sane most of the time.
-
When buying ugly crap, having it physical doesn't seem like a feature.
I'm sure it does for people buying ugly crap.
Digital ugly crap takes much less space and is hidden away much easier.
It's hidden away even more easily if the NFT website ceases to exist.
-
@sloosecannon is it worth reading? I've avoided it like the Swampy threads.
I got a little way in and then decided that was closer to sane most of the time.
-
The year is 2021. I just started the current version (2019) of Excel for Mac. Upon opening two documents, I got greeted with this well know error message from the 90s:
"Sorry, Excel can't open two workbooks with the same name at the same time."
Some things never change. Once the machines take over, unfixed Microsoft bugs might be our last chance.
-
Some things never change.
It'd break a lot of people's spreadsheets if it did.
-
@loopback0 said in WTF Bites:
Some things never change.
It'd break a lot of people's spreadsheets if it did.
The same excuse as 25 years ago. Maybe come up with a solution. (Microsoft, not you, obviously).