photog.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A place for your photos and banter. Photog first is our motto Please refer to the site rules before posting.

Administered by:

Server stats:

272
active users

#javascript

17 posts16 participants0 posts today
Alexey Staroselets<p>I'm so annoyed that in JavaScript it's 'getElementsByClassName' instead of just 'getElementsByClass' Why adding Name? There's no getElementsByClassSurname or getElementsBySocialClass anyways!</p><p><a href="https://mas.to/tags/javaScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>javaScript</span></a> <a href="https://mas.to/tags/classElements" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>classElements</span></a></p>
Alejandro Baez<p>Writing <a href="https://fosstodon.org/tags/Javascript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Javascript</span></a> without <a href="https://fosstodon.org/tags/typescript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>typescript</span></a> feels weird to me now. Like, I have to think extra hard to not do a mistake. 😅 Very defensive programming mindset. 🫠</p>
Aral Balkan<p>New Kitten release 🎉</p><p><a href="https://kitten.small-web.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">kitten.small-web.org</span><span class="invisible"></span></a></p><p>• New: Lovely new icons¹ and new callouts in Kitten Settings²</p><p>• New: Markdown now supports attributes and bracketed spans³</p><p>• New: client-side `kitten` global with `trigger` function for triggering events on the server from the client. (Useful when streaming client-side JavaScript when using Kitten’s Streaming HTML⁴ workflow. e.g., when you have to use a client-only web API like the Clipboard API but you want to keep all your logic on your server-side page.⁵)</p><p>• Fixed: The bound render function returned by `KittenComponent` class’s `component` getter now correctly awaits asynchronous templates. (In Kitten, you don’t have to care whether your templates contain promises. Kitten handles all that for you.)</p><p>Enjoy! :kitten:💕</p><p>¹ <a href="https://kitten.small-web.org/reference/#icons" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">kitten.small-web.org/reference</span><span class="invisible">/#icons</span></a></p><p>² <a href="https://mastodon.ar.al/@aral/114381983893061099" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.ar.al/@aral/114381983</span><span class="invisible">893061099</span></a></p><p>³ <a href="https://kitten.small-web.org/reference/#markdown-support" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">kitten.small-web.org/reference</span><span class="invisible">/#markdown-support</span></a> (also see <a href="https://mastodon.ar.al/@aral/114381462302862256" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.ar.al/@aral/114381462</span><span class="invisible">302862256</span></a>)</p><p>⁴ <a href="https://kitten.small-web.org/tutorials/streaming-html/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">kitten.small-web.org/tutorials</span><span class="invisible">/streaming-html/</span></a></p><p>⁵ e.g., See how I use this to implement a copy to clipboard button in the database page of Kitten’s Settings: <a href="https://codeberg.org/kitten/app/src/branch/main/web/%F0%9F%90%B1/settings%F0%9F%94%92/db/index.page.js#L33" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/kitten/app/src/br</span><span class="invisible">anch/main/web/%F0%9F%90%B1/settings%F0%9F%94%92/db/index.page.js#L33</span></a> Of course, you don’t have to use this and you can just write client-side JavaScript or use the built-in Alpine.js integration. e.g., how I do it on the (older) settings/identity page: <a href="https://codeberg.org/kitten/app/src/branch/main/web/%F0%9F%90%B1/settings%F0%9F%94%92/identity/index.page.js#L7" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/kitten/app/src/br</span><span class="invisible">anch/main/web/%F0%9F%90%B1/settings%F0%9F%94%92/identity/index.page.js#L7</span></a></p><p><a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/dev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>dev</span></a> <a href="https://mastodon.ar.al/tags/markdown" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>markdown</span></a> <a href="https://mastodon.ar.al/tags/icons" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>icons</span></a> <a href="https://mastodon.ar.al/tags/PhosphorIcons" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PhosphorIcons</span></a> <a href="https://mastodon.ar.al/tags/HTML" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>HTML</span></a> <a href="https://mastodon.ar.al/tags/CSS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>CSS</span></a> <a href="https://mastodon.ar.al/tags/JavaScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JavaScript</span></a> <a href="https://mastodon.ar.al/tags/StreamingHTML" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>StreamingHTML</span></a> <a href="https://mastodon.ar.al/tags/htmx" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>htmx</span></a> <a href="https://mastodon.ar.al/tags/WebSocket" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>WebSocket</span></a> <a href="https://mastodon.ar.al/tags/NodeJS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>NodeJS</span></a></p>
Sven<p>Can we create playable game, from scratch, in four days? 👾 Live now on <a href="https://www.twitch.tv/noyainrain" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="">twitch.tv/noyainrain</span><span class="invisible"></span></a> 😊 <a href="https://toot.berlin/tags/TypeScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TypeScript</span></a> <a href="https://toot.berlin/tags/JavaScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JavaScript</span></a> <a href="https://toot.berlin/tags/Phaser" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Phaser</span></a> <a href="https://toot.berlin/tags/OpenSource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenSource</span></a> <a href="https://toot.berlin/tags/IndieDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>IndieDev</span></a></p>
Kevin Karhan :verified:<p>I think the <a href="https://infosec.space/tags/LightPhone3" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LightPhone3</span></a> is better <a href="https://www.youtube.com/watch?v=HdTCDxX-UnQ" rel="nofollow noopener noreferrer" target="_blank">than</a> a shitty <em>"<a href="https://infosec.space/tags/ProducedEwaste" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ProducedEwaste</span></a>"</em> <a href="https://infosec.space/tags/Android" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Android</span></a> 8.1 brick from China but I don't consider it worth the premium asked [U$D 799 MSRP, U$D 599 preorder] for it.</p><ul><li>Plus their <a href="https://infosec.space/tags/Website" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Website</span></a> <a href="https://www.thelightphone.com/lightiii" rel="nofollow noopener noreferrer" target="_blank">being built to mandate</a> <a href="https://infosec.space/tags/JavaScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JavaScript</span></a> isn't very <em>"respecting"</em> of me as a potential user.</li></ul><p>I think people can get a better experience buying a <a href="https://infosec.space/tags/degoogled" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>degoogled</span></a> <a href="https://infosec.space/tags/Fairphone" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Fairphone</span></a> with <a href="https://infosec.space/tags/eOS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>eOS</span></a> and just put <a href="https://infosec.space/tags/RelaunchX" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>RelaunchX</span></a> as an <a href="https://infosec.space/tags/eInk" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>eInk</span></a>-optimized <a href="https://infosec.space/tags/launcher" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>launcher</span></a> on it and have a better option.</p><ul><li>But I guess given <a href="https://infosec.space/tags/ForProfitHealthcare" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ForProfitHealthcare</span></a> in the <a href="https://infosec.space/tags/USA" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>USA</span></a> is expensive I can see why a lot of people would rather buy such a device and sell their old one than seek therapy if they are susceptible to shitty patterns that <a href="https://infosec.space/tags/developers" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>developers</span></a> harness to maximize <a href="https://infosec.space/tags/screentime" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>screentime</span></a> and <a href="https://infosec.space/tags/revenue" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>revenue</span></a>.</li></ul><p>Can't have <a href="https://infosec.space/tags/doomscrolling" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>doomscrolling</span></a> or <a href="https://infosec.space/tags/microtransactions" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>microtransactions</span></a> if it doesn't support <a href="https://infosec.space/tags/NSAbook" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>NSAbook</span></a>'s <a href="https://infosec.space/tags/apps" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>apps</span></a> or shitty <a href="https://infosec.space/tags/PayToLoose" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PayToLoose</span></a> <a href="https://infosec.space/tags/games" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>games</span></a>...</p><ul><li>I do however acknowledge that there is a <a href="https://infosec.space/tags/market" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>market</span></a> for <a href="https://infosec.space/tags/smol" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>smol</span></a> &amp; <a href="https://infosec.space/tags/sleek" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>sleek</span></a> <em>"<a href="https://infosec.space/tags/StupidPhones" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>StupidPhones</span></a>"</em> or rather compact <a href="https://infosec.space/tags/Smartphones" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Smartphones</span></a> and I do want to see more competition for it.</li></ul><p>What I do have to say is that <a href="https://infosec.space/tags/MKBHD" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>MKBHD</span></a> acknowledges that <em>he isn't the target audience and "that's fine"</em>...</p><ul><li>I just think that requiring people to sign up to some account just to be able to add/remove <a href="https://infosec.space/tags/Apps" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Apps</span></a> is a major <a href="https://infosec.space/tags/nope" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>nope</span></a> in my book.</li></ul><p>I stayed off <a href="https://infosec.space/tags/GooglePlay" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>GooglePlay</span></a> for longer than it's being called like that and their <em>"<a href="https://infosec.space/tags/lightOS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>lightOS</span></a>"</em> is most likely some tightly locked-down Android...</p><ul><li>It's just an insultingly high pricetag for &lt; $200 internals and the best feature they have isn't even the phone but offering <a href="https://www.thelightphone.com/plans" rel="nofollow noopener noreferrer" target="_blank">a <em>"no frills"</em> plan</a> which seems <em>okay (by <a href="https://infosec.space/tags/USA" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>USA</span></a> standards!)</em> but still...</li></ul><p>I think people would be more accepting if it was a $299 or even $399 device, but at a price of <a href="https://store.monocles.eu/shop/" rel="nofollow noopener noreferrer" target="_blank">a</a> <span class="h-card" translate="no"><a href="https://monocles.social/@monocles" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>monocles</span></a></span> <a href="https://infosec.space/tags/phone" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>phone</span></a> whilst being way less versatile it's just not worth it.</p><ul><li>Cuz it's not even a <em>super "secure"</em> device or offers something like a <em>"concierge service"</em> where the device price is artifically high to filter out <em>average <a href="https://infosec.space/tags/WageWorkers" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>WageWorkers</span></a></em> without much disposable income...</li></ul>
heise Developer<p>Webentwicklung: Der neue TypeScript-Compiler in Go</p><p>Das TypeScript-Team portiert den Kern der Programmiersprache nach Go. Das macht die Sprache schneller und verbessert die Developer Experience.</p><p><a href="https://www.heise.de/hintergrund/Webentwicklung-Der-neue-TypeScript-Compiler-in-Go-10355589.html?wt_mc=sm.red.ho.mastodon.mastodon.md_beitraege.md_beitraege&amp;utm_source=mastodon" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">heise.de/hintergrund/Webentwic</span><span class="invisible">klung-Der-neue-TypeScript-Compiler-in-Go-10355589.html?wt_mc=sm.red.ho.mastodon.mastodon.md_beitraege.md_beitraege&amp;utm_source=mastodon</span></a></p><p><a href="https://social.heise.de/tags/GoLang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>GoLang</span></a> <a href="https://social.heise.de/tags/IT" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>IT</span></a> <a href="https://social.heise.de/tags/JavaScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JavaScript</span></a> <a href="https://social.heise.de/tags/Programmiersprachen" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Programmiersprachen</span></a> <a href="https://social.heise.de/tags/TypeScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TypeScript</span></a> <a href="https://social.heise.de/tags/Webentwicklung" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Webentwicklung</span></a> <a href="https://social.heise.de/tags/news" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>news</span></a></p>
Frontend Dogma<p>Exploring TypeScript: TS&nbsp;5.8 Edition, by <span class="h-card" translate="no"><a href="https://fosstodon.org/@rauschma" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>rauschma</span></a></span>:</p><p><a href="https://exploringjs.com/ts/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">exploringjs.com/ts/</span><span class="invisible"></span></a></p><p><a href="https://mas.to/tags/books" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>books</span></a> <a href="https://mas.to/tags/typescript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>typescript</span></a> <a href="https://mas.to/tags/javascript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>javascript</span></a></p>
Stuart Longland (VK4MSL)<p>Dear <a href="https://mastodon.longlandclan.id.au/tags/SourceForge" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SourceForge</span></a> … please check your <a href="https://mastodon.longlandclan.id.au/tags/JavaScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JavaScript</span></a> actually works before falsely accusing a user for not having it enabled.</p><p>```<br>Uncaught TypeError: this.countryGroups.GDPR is undefined<br> requireNonEssentialProfileFields <a href="https://a.fsdn.com/con/js/min/sf.sandiego-head.js?1745245685:6" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">a.fsdn.com/con/js/min/sf.sandi</span><span class="invisible">ego-head.js?1745245685:6</span></a><br> requireNonEssentialProfileFields <a href="https://a.fsdn.com/con/js/min/sf.sandiego-head.js?1745245685:6" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">a.fsdn.com/con/js/min/sf.sandi</span><span class="invisible">ego-head.js?1745245685:6</span></a><br> countrySelected <a href="https://a.fsdn.com/con/js/min/sf.sandiego-head.js?1745245685:6" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">a.fsdn.com/con/js/min/sf.sandi</span><span class="invisible">ego-head.js?1745245685:6</span></a><br> dispatch <a href="https://a.fsdn.com/con/js/min/sf.sandiego-head.js?1745245685:2" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">a.fsdn.com/con/js/min/sf.sandi</span><span class="invisible">ego-head.js?1745245685:2</span></a><br> handle <a href="https://a.fsdn.com/con/js/min/sf.sandiego-head.js?1745245685:2" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">a.fsdn.com/con/js/min/sf.sandi</span><span class="invisible">ego-head.js?1745245685:2</span></a><br> trigger <a href="https://a.fsdn.com/con/js/min/sf.sandiego-head.js?1745245685:2" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">a.fsdn.com/con/js/min/sf.sandi</span><span class="invisible">ego-head.js?1745245685:2</span></a><br> trigger <a href="https://a.fsdn.com/con/js/min/sf.sandiego-head.js?1745245685:2" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">a.fsdn.com/con/js/min/sf.sandi</span><span class="invisible">ego-head.js?1745245685:2</span></a><br> each <a href="https://a.fsdn.com/con/js/min/sf.sandiego-head.js?1745245685:2" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">a.fsdn.com/con/js/min/sf.sandi</span><span class="invisible">ego-head.js?1745245685:2</span></a><br> each <a href="https://a.fsdn.com/con/js/min/sf.sandiego-head.js?1745245685:2" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">a.fsdn.com/con/js/min/sf.sandi</span><span class="invisible">ego-head.js?1745245685:2</span></a><br> trigger <a href="https://a.fsdn.com/con/js/min/sf.sandiego-head.js?1745245685:2" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">a.fsdn.com/con/js/min/sf.sandi</span><span class="invisible">ego-head.js?1745245685:2</span></a><br> &lt;anonymous&gt; <a href="https://a.fsdn.com/con/js/min/sf.sandiego-base.js?1745245685:15" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">a.fsdn.com/con/js/min/sf.sandi</span><span class="invisible">ego-base.js?1745245685:15</span></a><br>```</p>

A cynical view of the legal profession is that, "The law exists to create more law". Every licensed lawyer will attest to the veracity of that pithy statement. The analogous statement in #IT is this:

"#JavaScript—the language, the ecosystem, the coders, the lot—exists to create more JavaScript versions, more frameworks that repeat the same things, and and more jobs that do the same things."

Every currently-active #programmer will attest to the veracity of this not-so-pithy statement.

Object.assign() is... alright, but it's really weird that there's no #JavaScript Object.merge() so that merging { a: 1, b: { c: 3}} and { b: { d: 4 }} becomes { a: 1, b: { c: 3, d: 4 }} instead of just blind-overwriting "b".

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