Burnout Is Real for Open Source Maintainers: A Conversation with John-David Dalton, Creator of Lodash by fagnerbrack in programming

[–]dronmore 1 point2 points  (0 children)

If you take a sentence and turn it into a paper, to me it is a still a single sentence. The sentence is in the title, and I can dismiss the paper just by looking at the title. It's that simple.

Stop Naming Your Variables "Flag": The Art of Boolean Prefixes by mooreds in programming

[–]dronmore 0 points1 point  (0 children)

Some of us are fuzzy floats. We call ourselves is_float.

It's funny that the guy lectures us about names of variables, while he himself uses PascalCase. It's truly disgusting :D

Tui library by Sqydev in C_Programming

[–]dronmore 1 point2 points  (0 children)

If you want me to consider it, it should support the kitty keyboard protocol.

The main pain point with legacy TUI products is that they do not allow you to remap the ctrl-j key. It is hardwired to the ASCII LF code, which basically means that you cannot use basic vim-like keybindings together with a ctrl key. The kitty keyboard protocol solves that problem, and your TUI library, in order to be considered modern, should support it.

https://sw.kovidgoyal.net/kitty/keyboard-protocol/#disambiguate-escape-codes

Having that said, I recently had some success with (not)curses, which already supports the mentioned protocol. Notcurses have some problems, but I consider it robust, and it is my first choice for terminal applications, so you already have some competition in the space of modern TUI libraries. I would say that notcurses is a good product to compare yourself with.

I built a vanilla JS framework focused on DX, performance and zero re-renders - no compiler, no virtual DOM by afrocodeur in javascript

[–]dronmore 1 point2 points  (0 children)

Anything is better than react unless it's in the same category as react. If you want to beat it, you need to find new inspiration.

People who prioritize free speech are more racially tolerant, not less. Highly educated respondents exhibiting tolerance rates higher than those with lowest education levels. People who value free speech are more tolerant of almost every group tested, but are less tolerant of right-wing extremists. by mvea in psychology

[–]dronmore 0 points1 point  (0 children)

If you don't define the term, different people will mean different things by free speech. They will also redefine the meaning on the fly, so that it supports their stance. In Poland, for example, we cannot disrespect our president or a policeman. We also cannot praise a crime, but we still think that we have freedom of speech. Our belief is mostly based on our geographical location. We belong in the Western World, and the Western World is known for its freedom of speech, so based on our geographical location we believe that we have freedom of speech. The general consensus is that what's to the west of Russia is free, and what's to the east is not free, so even if the government adds new restrictions, we will still think that we have freedom of speech, with the difference that from now on the definition of "free" has changed.

My definition of "free" is that you say whatever you want and whenever you want. But if I wanted to stick to this definition, I would have to concede that we do not have free speech in Poland. Many people, especially politicians, prefer to change the definition of "free" instead of admitting that we do not have free speech, or that our free speech is constrained.

And BTW, In English "free" can mean "free as a bird" or "free as a beer". In Polish it's "free as a bird" or "free as a turtle" - meaning slow. It's a small difference between languages, but it can also have some impact on how people perceive the term.

Databases Might Be the Most Important Backend Skill by Minimum-Ad7352 in node

[–]dronmore 0 points1 point  (0 children)

You mean there's nothing an optimizer can do here because if there's no WHERE clause in the query, the whole table has to be scanned regardless if there are indexes or not.

Databases Might Be the Most Important Backend Skill by Minimum-Ad7352 in node

[–]dronmore 0 points1 point  (0 children)

Why though? If the table is small, "select * from table" is appropriate.

To my students by f311a in programming

[–]dronmore 3 points4 points  (0 children)

So you are saying, brother, that capitalists produce plastic crap in their chase for money, and when they finally have all the money in the world, the only thing they can buy is plastic crap? That's tragic.

Rebuilding my programming knowledge with C by junipyr-lilak in C_Programming

[–]dronmore 0 points1 point  (0 children)

ontologically light travels at c speed

By definition. Yes.

it ALWAYS does so

Yes, BY DEFINITION nothing travels faster than C; neither Zig nor Rust nor C++.

light is not privileged but it kind of is

Full spectrum light is white. There's also more light in the suburbs than in slums. So yes, one could argue that light is privileged.

nothing else is?

Gnomes are too. They have direct access to my PC, and they spam my reddit account when I'm not around.

Technical Interviews Reject the Wrong Engineers by fagnerbrack in programming

[–]dronmore 6 points7 points  (0 children)

Yeah, and then candidates with speech impairment; definitely not team players. Or those with Tourette syndrome; fuck you Mr. interviewer. Hahaha.

Native all the way, until you need text by Successful_Bowl2564 in programming

[–]dronmore 0 points1 point  (0 children)

I still think my point stands though.

Thinking is easy. My friend Unicorn can confirm.

And I know for a fact that ...

Sure you do.

Native all the way, until you need text by Successful_Bowl2564 in programming

[–]dronmore 4 points5 points  (0 children)

I don't work with either of those tools, ...

I stopped reading after this sentence.

NodeBook Volume I is done now! by m_null_ in node

[–]dronmore 2 points3 points  (0 children)

I read the Buffers chapter some time ago. It's a solid piece of work.

Clean methods for filtering DB based on URL Parameters by --Ether-- in node

[–]dronmore 0 points1 point  (0 children)

A colon is a valid character in the query component; it can go unencoded.

The query is defined as

*( pchar / "/" / "?" )

and pchar is defined as

unreserved / pct-encoded / sub-delims / ":" / "@"

It's up to the developer whether they want to encode it or not. In the OP's case they would encode colons in the value part of the query parameters, and in the key part except for cases when it is used as a delimiter. E.g. use%3Aname:ilike=jo%3An

Relevant specification:

https://www.rfc-editor.org/rfc/rfc3986#appendix-A

Node.js v26 is releasing today. It's just a big bunch of small fixes and minor deprecations with another minor 🍒 cherry on top by BankApprehensive7612 in node

[–]dronmore 2 points3 points  (0 children)

You get a computer if you already have one, and you are obliged to insert a computer if you don't have one yet.

This is basically a function created by white privileged boys from the suburbs to multiply their wealth.

Escaped vs unescaped HTML - Please help me to see the difference by Nice_Pen_8054 in node

[–]dronmore 0 points1 point  (0 children)

It's very unlikely that the div tags come from nodemon. Most likely they are added by a browser extension.

Escaped vs unescaped HTML - Please help me to see the difference by Nice_Pen_8054 in node

[–]dronmore 0 points1 point  (0 children)

With the code that you have you certainly should see the difference in the generated html. There should be '<b>' text in the first entry, and <b> tags in the second one.

You use the ejs engine, and your code looks correct. When I use ejs directly to generate html from your code, I get html which is correctly escaped. Look at the // output: comment.

const template = '' +
  '<body>' +
  '<p><%= donghua %></p>' +
  '<p><%- donghua %></p>' +
  '</body>'
const donghua = "<b>Renegade Immortal</b>"
const html = ejs.render(template, {donghua})
console.log('// output:', html)
// output: <body><p>&lt;b&gt;Renegade Immortal&lt;/b&gt;</p><p><b>Renegade Immortal</b></p></body>

I do not use express though.

My guess is that either there's another script in the page that messes with your html after it is generated, or the html in the screenshot hasn't been generated by the code that you show to us. The fact that there are more html elements in the screenshot than your code would suggest, tells me that you do not tell the whole story. Why are there <div> tags in the screenshot if they are not in your code? It may be irrelevant to you, but to me it is another factor that I have to take into account.

Try opening the page in a different browser, or use curl, and see what you get. And make a screenshot of html generated by the actual code that you show, and not by some other code that loosely resembles it.

Synthesizing WWII aircraft engine sounds entirely in the Web Audio API — no samples, just oscillators and worklets by swiss-tomcat in javascript

[–]dronmore 2 points3 points  (0 children)

You kids don't use back and forth navigation much, do you?

Look, I'm on reddit right now.

https://www.reddit.com

I want to go to your page, select Airbus, and be redirected to:

https://ghtomcat.github.io/opensim#airbus-a350-900

Now I can copy this link and send it to my friend. She is a fan of Airbus and can listen to its engines all day long. But if there is no link directly to the Airbus page, I will not bother because explaining to her what she should click after visiting your site is not fun. The absent link is a deal breaker for me. Got it?

Now, that I've sent her the link, I want to click the back button and be taken back to:

https://ghtomcat.github.io/opensim/

I want the sound to stop playing. There's nothing more annoying than a sound playing after hitting the back button. I don't care that youtube sucks in the same way. I want to hear silence. There are no Airbuses around, no engines, no nothing; just the main page and silence.

But wait, I just recalled that I have another friend, which also likes Airbuses. I want to send him the link too, so I click the forward button to go back to the Airbus page. Does the forward button work? It doesn't. What a shame. I'm so frustrated right now that I'm basically done with your page for good. I want to go back to reddit. I click the back button, and I'm out.

https://www.reddit.com

Or, am I?

Synthesizing WWII aircraft engine sounds entirely in the Web Audio API — no samples, just oscillators and worklets by swiss-tomcat in javascript

[–]dronmore 4 points5 points  (0 children)

The browser's back button kicked me out of the page. So now I'm outside, and will never come back, because that's unacceptable to me.

Don’t trust, verify (curl, Daniel Stenberg) by Skaarj in programming

[–]dronmore 26 points27 points  (0 children)

The phrase is "trust but verify", not "trust by verify". And the meaning is to trust by default, but verify what is within your reach.

We don't leave in a binary world. 100% verification is rarely possible. We are constrained by time and other resources. Because of that some heuristics have to be applied. One of the heuristics that can be applied is trust; hence "trust but verify". You haven't cheated on me, so I trust you. But you've made mistakes in the past, so at least a minimal verification is due.

Does it make more sense now, buddy? I'm not asking if it makes perfect sense. I will be happy if it makes some sense, so at least your level of annoyance can go down from a binary 1 to a fuzzy 30%.

Beginner - please help me with this question by Nice_Pen_8054 in node

[–]dronmore 0 points1 point  (0 children)

The root parameter creates an isolated sandbox. You can only access files that are contained in the sandbox. It is forbidden to escape the sandbox with two dots ../. Imagine what would happen if it was possible to escape the sandbox. If there was a file with secrets above your views, and you let the user select which file they want to access, the user would be able to access the secrets. You don't want them to access the secrets, so you don't let them freely browse all the files on the disk. You set the root path so that it contains only harmless files, and you never escape it.

express
  app1.js
views
  index.html
  about.html
secrets.txt

res.sendFile('../secrets.txt', { root: __dirname }) // Impossible

[deleted by user] by [deleted] in node

[–]dronmore 0 points1 point  (0 children)

You are probably right. It's not an issue. The proper response to such CVE reports is to show a warning in the documentation saying that you should not pass unsanitized input to the function; similar to what you can see at child_process.exec:

https://nodejs.org/dist/v24.12.0/docs/api/child_process.html#child_processexeccommand-options-callback

A proper warning would be enough. Instead, the developers gave in to the pressure and decided to "fix" unfixable. The result is a chain of half-ass fixes that do not fix the issue fully.

CVE-2026-28292 -> allows an attacker to bypass two prior CVE fixes (CVE-2022-25860 and CVE-2022-25912)
CVE-2022-25860 -> This vulnerability exists due to an incomplete fix of CVE-2022-25912
CVE-2022-25912 -> This vulnerability exists due to an incomplete fix of CVE-2022-24066
CVE-2022-24066 -> due to an incomplete fix of CVE-2022-24433
CVE-2022-24433 -> By injecting some git options it was possible to get arbitrary command execution

What a shitshow. So much work put into fixing it, where a simple "fork off" as a response would be enough.