@voxpelli@mastodon.social
@voxpelli@mastodon.social avatar

voxpelli

@voxpelli@mastodon.social

Web developer, +10 years of web dev, creator, non-influencer, open source contributor, #nodejs user, #IndieWeb participant, #TypesInJs advocate. Lives in southernmost Sweden 🇸🇪

This profile is from a federated server and may be incomplete. Browse more on the original instance.

voxpelli, to random
@voxpelli@mastodon.social avatar

Early release of a new companion module to my "list-installed" module: ”list-dependents”

It uses npm and optionally @ecosystems to look up the dependents of a module and returns the package.json files of them similar to how "list-installed" do for locally installed modules.

On top of the package.json data it also returns download metrics as well as some @ecosystems extras.

https://github.com/voxpelli/list-dependents

gn, to random

Rendered a new Linear icon to complement the interface refresh. Shipping in the latest app update.

voxpelli,
@voxpelli@mastodon.social avatar

@gn Desktop app or iOS app?

voxpelli, to typescript
@voxpelli@mastodon.social avatar

Forked and revived an old module I made at my previous job:

ts-ignore-import: https://www.npmjs.com/package/ts-ignore-import

It helps ignoring optional type imports in autogenerated type declarations – which is especially useful when one writes .

Ignoring an optional type import makes it silently revert to ”any” when the type can not be imported, which is great when one eg. wants to reference multiple frameworks in the same project without requiring all those types.

voxpelli, to random
@voxpelli@mastodon.social avatar

Something I nowadays stay far away from:

File-based routing (and other auto-loaded plugins / routers)

While conceptually intriguing it violates one of my main dev philosophies:

That all data should be “grep”:able / searchable.

When a file is indirectly imported, and even indirectly given a specific route, due to where it lives in the file system – then that won’t show up when you are searching the project content for uses of that file or for existence of that path.

voxpelli,
@voxpelli@mastodon.social avatar

I have seen this causing confusion and bugs in many projects throughout my career.

And the rule that the data should be “grep”:able is also kind of a wordplay, as the Swedish word for “understandable” is “greppbar” since “to understand” is “att greppa” and “:able” is “:bar”

parkerortolani, to random

hot tip: if you search “@threads.net” in your Mastodon client you should see everyone from Threads who has turned on federation, easiest way to find people you want to follow here too without manually combing through Threads lists (because so few appear to have enabled federation lol)

voxpelli,
@voxpelli@mastodon.social avatar

@parkerortolani Only everyone that your instance has seen would be my guess, so it’s easier for those on large instances

voxpelli, to random
@voxpelli@mastodon.social avatar

Tomorrow is the Christian Holy/Good/Great Friday in memory of the time when Jesus was sentenced to death and crucified outside of Jerusalem by the rulers of the realm.

Hard not to think about how the current rulers of Jerusalem are killing tens of thousand of Palestinians, occupying Palestinian territory and arbitrarily imprisoning them.

And this year Ramadan and Easter happens simultaneously, but the current rulers of Jerusalem shows total indifference to both of them.

voxpelli, to random
@voxpelli@mastodon.social avatar

Why using a VPN app doesn’t necessarily make anything safer but is rather exposing you to yet another attack vector – such as a Zuckerberg that wants to know about your traffic patterns: https://techcrunch.com/2024/03/26/facebook-secret-project-snooped-snapchat-user-traffic/

Make sure that your VPN doesn’t collect and monetize your traffic data

voxpelli,
@voxpelli@mastodon.social avatar

And if they don’t violate you, then maybe they make you part of a botnet? https://www.theverge.com/2015/5/29/8685251/hola-vpn-botnet-selling-users-bandwidth

voxpelli,
@voxpelli@mastodon.social avatar
voxpelli,
@voxpelli@mastodon.social avatar
seriouslyjeff, to random

Look, I went over the Snowden documents as a journalist, but I never saw anything that shocked me quite like this story of Meta buying a VPN company for "security" but then spying on users of competitive apps by decrypting the traffic.

This is a real SSL added and removed here :) moment.

Seriously, like wow: https://techcrunch.com/2024/03/26/facebook-secret-project-snooped-snapchat-user-traffic/

Court document: https://storage.courtlistener.com/recap/gov.uscourts.cand.369872/gov.uscourts.cand.369872.735.0.pdf

voxpelli,
@voxpelli@mastodon.social avatar

@seriouslyjeff @Migueldeicaza Missed opportunity that they didn’t also sell it as a botnet as eg Hola and Swing VPN did with their users: https://www.theverge.com/2015/5/29/8685251/hola-vpn-botnet-selling-users-bandwidth

That VPN:s make the regular person safer is such a scam. Only reason for most people to use one is to access geo-fenced features and that’s only possible because geo ip is a very crude way of geo positioning and something that Netflix etc should not rely on.

But I guess many creators would be out of money if they didn’t promote VPN:s…

voxpelli, to random
@voxpelli@mastodon.social avatar

Did my first #npmRelease of #MochaJS. Version 10.4.0 is now available, including some features and some fixes: https://github.com/mochajs/mocha/releases/tag/v10.4.0

Great collaboration with @JoshuaKGoldberg and @uzlopak as well as with the individual contributors.

Next up I hope to pick up the pace of my contributions on this project, but first I have some standard linting to enhance :BlobhajHeart:

voxpelli, to node
@voxpelli@mastodon.social avatar

Released a new major version of my npm engine range validator – now also supports peerDependency range validation and supports running on workspaces.

To ensure you don’t promise more than your dependencies can deliver, start using “installed-check” 9.0.0 now: https://github.com/voxpelli/node-installed-check/releases/tag/v9.0.0

#npmRelease #linting #npm #npmWorkspace #peerDependencies #packageJson #nodeModules

voxpelli, to random
@voxpelli@mastodon.social avatar

Interesting thread about Apple and DMA
https://mastodon.social/@stroughtonsmith/112118127201793072

neptune22222, to foss

MongoDB's SSPL (Server Side Public License) sounds like an extremely strong copyleft form of free software license. It sounds like MongoDB took the AGPL and made it much stronger.

Respected "open source" groups have rejected MongoDB's copyleft open source free software license, such as the OSI, RedHat, and Debian.

The criticism of the SSPL do not seem to recognize that it is a copyleft free software license. Is the OSI really a protector of copyleft free software? The politics of these organizations seem to leaning anarcho-capitalist "libertarian".

I don't believe the SSPL will harm any specific field of endeavor. Databases are used in all fields of endeavor. They are usually one of many provided cloud computing services. Cloud computing services are used in most every field of endeavor these days. Even my toothbrush has a cloud database.

By rejecting the SSPL, the OSI, RedHat, Debian have appeared to have ignored the copyleft freedoms that the SSPL guarantees.

voxpelli,
@voxpelli@mastodon.social avatar

@neptune22222 SSPL is made to be viral to the degree that it in practice prohibits any commercial actor from offering a hosted instance of it.

And it’s always used together with CLA:s that gives the the copyright rights to eg. MongoDB and thus enabling MongoDB to offer a service without having to abide by the SSPL.

The SSPL isn’t made to protect freedoms. It’s made to weaponize CLA:s to ensure that the “owner” gets an advantage over everyone else.

voxpelli,
@voxpelli@mastodon.social avatar

@neptune22222 The only “open source” use case I can see for the SSPL is if used together with the Business Source License as the licensing terms for the initial period before the BSL rolls over into a GPL-compatible license.

That could be an improvement over the BSL with a custom provision.

voxpelli, to random
@voxpelli@mastodon.social avatar

Interesting list of API compatibility between Node.js, Bun, Deno and friends: https://runtime-compat.unjs.io/

voxpelli, to random
@voxpelli@mastodon.social avatar

One of the most infuriating tasks to try to achieve in TypeScript is recursive functions. I think I wasted another day now trying to get a proper recursive Object.freeze to work and abandoning now before the frustration becomes too big…

voxpelli, to random
@voxpelli@mastodon.social avatar

Closed an umerged PR +10 years after creating it.

What did it do?

It introduced npm support in a node.js module 🤓

voxpelli,
@voxpelli@mastodon.social avatar
leaverou, to random
@leaverou@front-end.social avatar

When doing case-insensitive matching of a needle (string) against a haystack (potentially large array of strings), which is faster:

  1. toLowerCase() (once on needle, then per each item in the haystack)
  2. Create regex with i flag, use regex.test()

I would guess 1, but haven't checked. Does anyone know of any benchmark?

voxpelli,
@voxpelli@mastodon.social avatar

@leaverou I found this when quickly looking through my bookmarks: https://github.com/RafaelGSS/nodejs-bench-operations/blob/main/RESULTS-v21.md#string-searching

Seems to imply that regex will always be the slower option

utopiah, to webxr

"the open web is Apple’s best chance to make its headset a winner" or the value of #WebXR support for Safari.

https://www.theverge.com/2024/1/20/24044343/apple-vision-pro-safari-killer-app

Once again it's not "just" about delivery. It's about control.

PS: Safari supports VR only, NOT passthrough/AR/MR.

via Tom Emrich, cc @ada

voxpelli,
@voxpelli@mastodon.social avatar
voxpelli,
@voxpelli@mastodon.social avatar

@ljunge Apparently one can try it out in the visionOS simulator, no need to have an Apple Vision Pro to start playing around with it

The implementation of this specific additions sounds quite neat as well

richard, to node
@richard@fedia.social avatar

Is there a way (or a package) to show the installed versions of npm node modules (npm list) and what is defined in your package.json?

voxpelli,
@voxpelli@mastodon.social avatar

@richard I maintain such a module: https://github.com/voxpelli/list-installed

Especially workspaceLookup() there (which can be used in non-workspace lookups as well)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • mdbf
  • DreamBathrooms
  • everett
  • magazineikmin
  • Durango
  • InstantRegret
  • rosin
  • Youngstown
  • love
  • slotface
  • GTA5RPClips
  • kavyap
  • ethstaker
  • Leos
  • ngwrru68w68
  • thenastyranch
  • tacticalgear
  • cubers
  • modclub
  • osvaldo12
  • cisconetworking
  • tester
  • khanakhh
  • normalnudes
  • provamag3
  • anitta
  • JUstTest
  • All magazines