socel.net is one of the many independent Mastodon servers you can use to participate in the fediverse.
Socel is a place for animation professionals, freelancers, independents, students, and fans to connect and grow together. Everyone in related fields are also welcome.

Server stats:

332
active users

#javascript

94 posts84 participants11 posts today

There are a number of useful little functions in node:util besides util.inspect() that I’m only just familiarising myself with after admittedly rolling my own versions for a number of them. Hmm, should’ve read through this documentation page more carefully sooner.

e.g., util.deprecate(), util.diff(), util.debugLog(), util.isDeepStrictEqual(), etc.

New Kitten release

• Fixes #236¹: The data preview pages in Kitten’s settings how handle circular references in the deserialised data (which may contain your custom classes if that’s what you were persisting in the database).

kitten.small-web.org

:kitten:💕

PS. Those pages are very rudimentary at the moment and are good for getting quick visual overview of the data you’re persisting. For a fully interactive view, use Kitten’s interactive shell (REPL)² to explore your data until I’ve had a chance to implement a more comprehensive visual interface.

PPS. You persist data in Kitten using the built-in JavaScript Database (JSDB)³ (Or, of course, you can install and use any other database.)

¹ codeberg.org/kitten/app/issues
² kitten.small-web.org/reference
³ codeberg.org/small-tech/jsdb#j

Threat actors misuse Node.js to deliver malware and other malicious payloads

Since October 2024, threat actors have been leveraging Node.js to deliver malware and payloads for information theft and data exfiltration. A recent malvertising campaign uses cryptocurrency trading themes to lure users into downloading malicious installers. The attack chain includes initial access, persistence, defense evasion, data collection, and payload delivery. The malware gathers system information, sets up scheduled tasks, and uses PowerShell for various malicious activities. Another emerging technique involves inline JavaScript execution through Node.js. Recommendations include educating users, monitoring Node.js execution, enforcing PowerShell logging, and implementing endpoint protection.

Pulse ID: 67fec5ac1e94a608250d9aa2
Pulse Link: otx.alienvault.com/pulse/67fec
Pulse Author: AlienVault
Created: 2025-04-15 20:46:36

Be advised, this data is unverified and should be considered preliminary. Always do further verification.

LevelBlue Open Threat ExchangeLevelBlue - Open Threat ExchangeLearn about the latest cyber threats. Research, collaborate, and share threat intelligence in real time. Protect yourself and the community against today's emerging threats.

#ReleaseWednesday — I just released a new version (v8.0.0) of thi.ng/vectors, an almost complete rewrite of the package with all of its ~900 vector operations. I've updated the Readme with a section of _potentially_ minor breaking changes, however I expect this to be a seamless upgrade for the vast majority of users...

I've recently written more about the reasons and implications of this update and I'll refer you to those posts instead of repeating them once more (see links below).

Just the top-level changes:

- Replaced dynamic code generation with higher-order templating to be usable with strict content security policies (when deployed online)
- New structure allows for vast majority of functions to have doc strings (and they do now)
- More consistent/less confusing naming for some operations
- Potentially improved tree-shaking and smaller project bundle sizes

Related to this update I've also refactored and fixed some bugs in other packages (e.g. color, geom, matrices). As a result both the color & matrix packages are now also free from dynamic codegen and therefore won't cause any problems with strict CSPs

Should you run into any issues regarding this update, please get in touch (also grateful for any other experience/impact reports... 🙏)

More info in these recent posts/threads:

- mastodon.thi.ng/@toxi/11429644
- mastodon.thi.ng/@toxi/11431965
- mastodon.thi.ng/@toxi/11433601

Happy coding!

thi.ng/vectorsOptimized 2d/3d/4d and arbitrary length vector operations, support for memory mapping/layouts
Replied in thread

@sjmulder : door verschillende browsers te gebruiken heb ik daar minder last van. Vooral Firefox met NoScript (meestal op mijn Android smartphone) geeft mij enorm veel rust. Soms kan ik pagina's met paywall geheel of grotendeels lezen (zie screenshot).

Je hebt wel een leercurve voor NoScript en Firefox heeft ook nadelen (zie bijv. infosec.exchange/@ErikvanStrat en de follow-up toot over NoScript).

Vaak werkt het als je de primaire partij toestemming geeft om JavaScript uit te voeren, maar derde partijen niet toestaat (waaronder 3rd parties met namen waar "cookiebot" in vóórkomt).

Firefox Focus ondersteunt geen NoScript, maar is het meest privacy-vriendelijk doordat alle geschiedenis gewist wordt bij het sluiten van de browser. Sowieso belangrijk, maar in deze browser helemaal (omdat HSTS niet werkt): zet "https only" aan. Dat betekent dat je *gewaarschuwd* wordt bij onveilige http-verbindingen, die je vervolgens wél kunt toestaan.

Wat ook helpt is als tooters geen "URL-verkorters" gebruiken, zodat je kunt zien naar welke website de link leidt.

Ten slotte probeer ik vaak het m.i. belangrijkste stuk te quoten, of een screenshot te plaatsen (zo mogelijk mét Alt tekst). Dan HOEVEN lezers niet op links te klikken/drukken.

New Kitten release

• Fix: messages that are promises are properly awaited before being sent.

kitten.small-web.org

Kitten automatically and transparently handles asynchronous content in your templates for you so you don’t have to worry about it. One place where this wasn’t working properly is if you addressed `this.component` to stream a custom update of your component manually instead of calling the `this.update()` method of Kitten component instances.

e.g.,

```js
export default class AdminPage extends kitten.Page {
// …
onSelectedPost (data) {
this.send(kitten.html`<${this.component} postId='${data.selectedPost.postId}' />`)
}
}
```

:kitten:💕