James M Snell Profile Banner
James M Snell Profile
James M Snell

@jasnell

10,062
Followers
2,836
Following
1,485
Media
25,163
Statuses

Mastodon: Not Parody, I am definitely the real James M Snell.

Clovis, CA
Joined November 2007
Don't wanna be here? Send us removal request.
Pinned Tweet
@jasnell
James M Snell
6 years
PSA: Reminder, open source is not free. If you are a company that is benefiting from open source, you have an obligation to support those who create it.
19
191
621
@jasnell
James M Snell
8 months
You may be a fan of everything the bun team is doing, and yes, @jarredsumner had done some amazing work. But take notice, one thing Jarred and Bun has never done is try to dunk on Node.js developers or be disrespectful to the project. That's very important and appreciated...
9
98
1K
@jasnell
James M Snell
4 years
Sad to hear that the Mozilla MDN team was part of the layoffs yesterday. It's one of the greatest resources for Web development. @mozilla ... If you're no longer able to fund development of MDN on your own... Please consider contributing it to the JS Foundation.
11
217
903
@jasnell
James M Snell
6 years
Node.js 10.0.0 has been released.
Tweet media one
7
372
767
@jasnell
James M Snell
10 months
What does "secure" mean here?
@deno_land
Deno
10 months
Start a secure, performant web server in a single line of code:
Tweet media one
9
51
509
43
9
553
@jasnell
James M Snell
2 years
Woo! My son is officially also a contributor to Node.js with their first PR landed ;-)
Tweet media one
11
13
490
@jasnell
James M Snell
3 years
Very happy to announce that starting Aug 9th, I am joining the @Cloudflare Workers Team ( @CloudflareW ) focusing primarily on the intersection of, and interop between, the Workers platform and Node.js. There's a lot of exciting work to do, and tons of possibilities! Very excited.
48
14
464
@jasnell
James M Snell
4 years
Just a heads up... threatening to stop using Node.js because it supports #BlackLivesMatter and saying that you're going to start using another platform is not really a threat. Please, let me show you the door...
11
72
411
@jasnell
James M Snell
8 months
I always have to remind myself that very few people understand just how *different* node.js is as a project and that it's that very difference that has made it so successful and important in the ecosystem.
20
70
397
@jasnell
James M Snell
6 years
I've been writing code for 32 years. I'm not a "senior" anything and I reject the entire notion of a "senior engineer". I can learn just as much from someone brand new in this industry as I can from someone whose been around forever.
10
124
377
@jasnell
James M Snell
1 year
What's this I spy running in @Cloudflare Workers... Could it be the first of our Node.js compat? Why yes, yes it is. Node.js EventEmitter, AsyncLocalStorage, Buffer, assert, util.types, util.promisify, and util.callbackify APIs are now available in Workers.
Tweet media one
18
61
340
@jasnell
James M Snell
2 years
Did you know: Node.js TSC member @BethGriggs_ has done every Node.js major release since Node 12.0.0 ... meaning she's shepherded more Node.js major releases out the door than anyone else in the project's history. It's a ton of work and she does an amazing job of it.
11
39
340
@jasnell
James M Snell
8 years
Software is Easy. People are hard.
4
124
322
@jasnell
James M Snell
6 years
Http2 is officially no longer experimental. Woohoo!
3
94
325
@jasnell
James M Snell
3 years
Oh, JavaScript... you're so silly.
Tweet media one
20
51
322
@jasnell
James M Snell
8 months
... Contrary to what Tech Twitter typically may lead one to believe, it's possible to be a fan of one project without being a complete asshole to other projects that operate or compete in the same space. There is no zero sum game...
4
22
304
@jasnell
James M Snell
3 years
PSA: In case you missed it, in Node.js 16 you can prefix CJS require() and ESM import() specifiers for Node.js core modules with `node:` ... for instance require('node:fs') instead of require('fs'). This makes it clearer that it's a core module.
11
49
291
@jasnell
James M Snell
3 years
PSA: Using Node.js 16+ and want to compare the runtime performance of two functions ... Use timerify and createHistogram!
Tweet media one
1
49
276
@jasnell
James M Snell
7 years
PSA: Node.js 8.0.0 will be out tomorrow afternoon. Excited?
14
144
273
@jasnell
James M Snell
5 years
PSA: In Node.js master, thanks to performance improvements made by the V8 team, Object spread notation (e.g. { ...foo } ) is now officially faster than Object.assign or the legacy Node.js util._extend for objects will < 20 keys. This is really good news.
4
88
276
@jasnell
James M Snell
6 years
Happy Node.js 11.0.0 Day
Tweet media one
1
102
264
@jasnell
James M Snell
6 years
Timeline for today: Node.js 10.0.0 release binaries built... done. Final testing ... ongoing. Sign and Tag the release commit ... approx noon pacific time. Promote the release ... approx 1pm pacific time. Release blog post ... approx 1 pm pacific time. Relax ... pending.
5
56
258
@jasnell
James M Snell
2 years
Really proud to have my son with me at the @nodejs collaborator summit ... As a contributor!
Tweet media one
11
10
260
@jasnell
James M Snell
8 months
... You might, very rightfully so, be a fan of what bun is doing, but if you somehow feel the need to attack node.js core contributors, be disrespectful of the work that's been done, or just otherwise be a jerk, then please kindly just shut up...
3
3
240
@jasnell
James M Snell
3 years
Last night, the best man I've ever known passed. Like so many others, this damned virus took him from us. I love you dad. I'll be unplugging for a few days. Might try to just lose myself in some code for a bit.
Tweet media one
98
0
238
@jasnell
James M Snell
8 months
As a whole, devs need to get out of this mindset that just because engineers have a new tool introduced to them, the older existing tools somehow "deserve" to be replaced, killed off, or worse, attack the folks that work on them...
9
31
228
@jasnell
James M Snell
4 years
My grandfather passed away overnight. Veteran of WWII. Survived 4 massive heart attacks that left only half his heart functioning. Too damn stubborn to give up but covid is a bitch. Love you Papa.
48
0
208
@jasnell
James M Snell
6 years
Me, "We have the speaker dinner Monday night" Wife, "Is that fancy?" Me, "It's tech fancy, which means newer conference t-shirts without holes or stains"
3
12
206
@jasnell
James M Snell
2 years
PSA Reminder: Node.js 12.x reaches EOL at the end of April. You should be on at least Node.js 14.x or higher now.
3
65
198
@jasnell
James M Snell
6 years
PSA: Progress is being made on introducing first class Promises support in core Node.js APIs.
7
45
197
@jasnell
James M Snell
5 years
One of the most underappreciated aspects of Node.js project governance is that, for most things, we explicitly do not ask if everyone *agrees* with decisions, we ask, instead, if there are any objections and we proceed only if there are none or a majority decide to proceed anyway
9
42
195
@jasnell
James M Snell
7 years
PSA: Node.js 8.9.0 (LTS) "Carbon" and Node.js 9.0.0 (Current) will both be published today. Get your downloaders and installers ready.
2
127
194
@jasnell
James M Snell
4 years
Every company whose software I may have pirated when I was younger is now freely using open source I helped write... Debt paid.
@round
Maxim Leyzerovich
5 years
Sometimes I wonder how many of us wouldn’t be doing what we do today if we hadn’t downloaded that pirated torrent of Photoshop or Visual Basic.
122
282
2K
5
21
180
@jasnell
James M Snell
7 years
PSA: Node.js 9.0.0 is scheduled for Oct 31st. The first release candidate build should be out later today.
7
111
182
@jasnell
James M Snell
2 years
@matteocollina People rarely ask for what they want. They ask for what they think they want then get mad when they get what they asked for and it isn't what they actually wanted.
2
6
181
@jasnell
James M Snell
10 months
@lcasdev All granted, but just saying "it's secure" without context and without acknowledging that real world apps generally require a lot more than that to be actually secure is a bit misleading. Secure in what sense is important context.
5
0
181
@jasnell
James M Snell
3 years
Fyi... In Node.js, we have awaitable timers built in, with cancellation support. import {setTimeout} from 'timers/promises' const ac = new AbortController() await setTimeout(1000, {signal:ac.signal})
10
22
178
@jasnell
James M Snell
7 years
Node.js 8.0.0 has been released.
8
86
175
@jasnell
James M Snell
8 months
... The emergence of one new project does not mean existing projects are somehow dead now, or that they are somehow bad or mismanaged, etc. The fact that someone may choose to use something else means literally nothing to everyone else.
0
6
171
@jasnell
James M Snell
6 months
Hands down my best tech conference moment ever -- copresenting a talk with my son.
@NodeConfEU
NodeConf EU
6 months
The Journey to a new sockets API for JavaScript with @jasnell & Aaron Snell. #NodeConfEU
Tweet media one
1
2
23
9
8
168
@jasnell
James M Snell
7 years
Node.js 8.4.0 is out and it includes HTTP/2! Woo! node --expose-http2 to expose it for use.
@trott
Rich Trott
7 years
. @nodejs 8.4.0 is out! Thanks @addaleax , @evanhlucas , and many, many, many more! nvm install node --reinstall-packages-from=node
0
5
16
2
117
164
@jasnell
James M Snell
1 year
That moment when your kid's PR shows up next to yours in the notable changes section of the Node.js release notes.
Tweet media one
8
5
163
@jasnell
James M Snell
3 years
It's a small thing... but crypto.randomUUID() is now available in @Cloudflare Workers...
Tweet media one
10
14
164
@jasnell
James M Snell
3 years
It's just about that time. console.log('Hello Cloudflare');
Tweet media one
6
3
158
@jasnell
James M Snell
6 years
PSA: Reminder, Node.js 10.x moves to active LTS status in October of this year. Node.js 6.x will reach end of life by April 2019. You should be on 8.x now.
3
88
150
@jasnell
James M Snell
8 months
Don't be this person.
Tweet media one
10
2
156
@jasnell
James M Snell
3 years
As of Node.js 16.5.0, Node.js officially has a WHATWG streams implementation. Still experimental, but it's there. import { ReadableStream, WritableStream } from 'node:stream/web'; /cc @domenic
2
40
150
@jasnell
James M Snell
4 years
Oh... and in case you missed it.. Node.js 14.0.0 enables optional chaining (a.b?.c) and nullish coalescing (a ?? b) by default
6
35
151
@jasnell
James M Snell
5 years
What I started working on today: QUIC support in Node.js. It's going to take a while, but I'm determined to make it happen. QUIC is quite nice.
9
25
149
@jasnell
James M Snell
8 months
Node.js is not a product. It has no roadmap. It has no commercialization strategy. It has no customers. It has no shareholders/investors it has to answer to, it has no market it has to try to defend against competition. It doesn't exist to make a profit. It can't be owned.
2
16
147
@jasnell
James M Snell
2 years
Just a heads up! The @Cloudflare Workers Platform team is hiring! Want to help evolve serverless JavaScript at the edge? Message me!
4
24
147
@jasnell
James M Snell
3 years
Just landed crypto.randomUUID() in the Node.js main branch. Next week I'll open PRs to backport it to 14 and 12.
3
12
147
@jasnell
James M Snell
6 years
You know when you write a bunch of code, finally get it working, then realize you just majorly over-thought and over-engineered something that was actually super simple, and rewrite it in just a couple minutes with 95% less code? That's fun.
12
23
141
@jasnell
James M Snell
5 months
Interesting... there's a proposal on the table to having Node.js itself start moving away from internal use of process.nextTick in favor of queueMicrotask: ... you may not realize it but it's a big change.
6
23
141
@jasnell
James M Snell
3 years
I had already considered @Cloudflare Edge Workers to be pretty great... Now that I've had a few days to dig through the internals... The overall architecture really is quite brilliant. The mental wheels are definitely turning already...
3
7
142
@jasnell
James M Snell
7 years
I just published “Say hello to HTTP/2 for Node.js Core”
3
70
141
@jasnell
James M Snell
2 years
Express is a fantastic project but @fastifyjs really is where folks should be looking now.
@donavon
west, donavon west™️
2 years
Serious question... The last version of Express was published over 3 years ago! So why are we still using it today?
Tweet media one
41
37
306
4
28
139
@jasnell
James M Snell
7 years
PSA: Just a reminder, Node.js 8 will move to LTS coverage in just a few days.
3
69
135
@jasnell
James M Snell
3 years
No joke. I once had a lady on a plane report me to a flight attendant because I had the terminal open on my laptop and she was afraid I was "hacking the plane".
@nixcraft
nixCraft 🐧
3 years
Tweet media one
13
299
2K
6
7
136
@jasnell
James M Snell
4 years
Rant time... I *really* like the QUIC protocol. Yes, it's complex but overall it's really nice to work with. HTTP/3 is a completely different matter. Question: How many QUIC streams are required to exchange a *single* HTTP/3 request and response? The answer may surprise you...
3
56
137
@jasnell
James M Snell
5 years
PSA: As of Node.js 11.10.0, you can now monitor event loop delay from directly within Node.js using the perf_hooks.monitorEventLoopDelay() API . The API uses sampling with a configurable sample rate and records sampled delays as a histogram
5
42
133
@jasnell
James M Snell
7 years
A couple things you may not know about http/2 ... (Thread)
2
91
136
@jasnell
James M Snell
2 years
I've been writing code for about 37 years. I still use Google to look up stuff and there's still more that I don't know than what I do. Be whatever kind of programmer you need to be to accomplish what you need to accomplish.
@dhh
DHH
2 years
"You can't become the I HAVE NO IDEA WHAT I'M DOING dog as a professional identity. Don't embrace being a copy-pasta programmer whose chief skill is looking up shit on the internet."
0
402
2K
3
9
134
@jasnell
James M Snell
5 years
I was going to register a .dev domain name but I've got kids to put through college and a mortgage to pay off.
8
14
131
@jasnell
James M Snell
1 year
Node.js 20. 20! Remember back when it wasn't clear we'd ever get past v0.11?
@nodejs
Node.js
1 year
Node.js 20 is now available! 💚 Highlights include: - Experimental Permission Model - A synchronous import.meta.resolve - Stable Test Runner - V8 JavaScript engine updated to 11.3 - Single Executable Apps - Ada to 2.0 And more in our blog post:
Tweet media one
40
986
4K
9
7
129
@jasnell
James M Snell
4 years
... Suddenly, a wild Web Crypto API implementation for Node.js core appears.... (still very much a work in progress)
Tweet media one
4
21
125
@jasnell
James M Snell
3 years
A promisified version of just landed in the Node.js main branch ... It uses an async iterator pattern to watch for filepath changes...
Tweet media one
2
27
126
@jasnell
James M Snell
7 months
Fundamentally disagree with this. The Web is more than what browsers let you do. Just because html form does not support these doesn't mean they shouldn't be used. Don't let browsers force a lowest common denominator on the protocol.
@matthewcp
Matthew Phillips
7 months
Unpopular opinion: Don't use http verbs PUT, PATCH, DELETE. Just use POST for everything. Reasons: - <form> doesn't support the others. Frameworks that allow it do so through hacks. - URLs are free, you don't gain anything by overloading them. - Purity < practicality
345
77
1K
10
7
126
@jasnell
James M Snell
6 years
So my 12 year old has already taught himself Java, JavaScript, and Lua over the past year and a half. Earlier this week he declared that this summer he's going to learn C++. He asked me if it was hard to use. My answer, "For you? Probably not"
7
8
125
@jasnell
James M Snell
7 years
So... Would y'all be happy if promisified fs apis were actually *faster* than traditional node.js async?
16
23
121
@jasnell
James M Snell
7 years
@DHSgov we already know where the people posing a threat to the American people are. They're in the White House.
6
24
105
@jasnell
James M Snell
2 years
PSA: In Node.js 18, The Web Platform Blob API will be exposed as a global and has graduated from experimental.
2
22
118
@jasnell
James M Snell
3 years
I was going to announce this on Monday but the news hit @NearForm 's internal slack today so I figured I'd go ahead.... July 31st will be my last official day with NearForm. I am moving on to a new adventure but not saying what it is until August 1st...
12
0
118
@jasnell
James M Snell
4 years
It ain't no Baby Yoda, but it is a functioning QUIC+HTTP/3 client.
Tweet media one
2
26
115
@jasnell
James M Snell
5 years
When the jet lag kicks in before the coffee does... #powernap /cc @bitandbang @NodeConfEU
Tweet media one
8
4
115
@jasnell
James M Snell
1 year
We're only a matter of a week or two away from having the Node.js AsyncLocalStorage and EventEmitter APIs enabled in @Cloudflare Workers. Soon to be followed by buffer, assert, and a subset of the util module (e.g. promisify, callbackify, util.types, etc).
3
13
113
@jasnell
James M Snell
8 months
Node.js maintainers can look at other company driven runtimes like bun and deno and just say, cool, that's awesome because those things don't actually compete with Node.js. They might *compare* positively or negatively with Node.js but that's not the same thing.
1
9
112
@jasnell
James M Snell
2 years
I have to say, Node.js is fairly unique in the world of open source having not only been able to survive a major and traumatic fork, but to embrace it and celebrate it. io.js was the best thing to happen to Node.js up to that point and set the project on a much better trajectory.
@nodejs
Node.js
2 years
happy 7th birthday to the @official_iojs v1.0.0 release 🎂
5
52
347
3
12
110
@jasnell
James M Snell
5 years
Had... The Talk .... with my 13 year old last night.... The Talk being the difference between databases and in-memory caching... he asked some tough questions about hashmaps. My little geek is growing up.
3
0
110
@jasnell
James M Snell
6 years
If you were one of the hundreds of new contributors to @nodejs last year, thank you and welcome. I hope that you continue to find the project to be a fantastic place to interact/contribute, but even if you don't open another PR, know that your contribution was appreciated.
6
25
107
@jasnell
James M Snell
6 years
"Node.js is too slow. Let's rewrite everything in Go" Ryan: "Hold my beer." ;) Deno looks like fun.
4
17
108
@jasnell
James M Snell
3 years
When I started contributing to Node.js in 2015 I was repeatedly told "Node.js is not a browser! It doesn't need browser APIs!" ... Today we have ReadableStream, WritableStream, TransformStream, AbortController, AbortSignal, EventTarget, Event, TextEncoder, TextDecoder, URL, ...
6
14
107
@jasnell
James M Snell
2 years
PSA: Reminder... if your Node.js code is parsing URLs, use the standard `new URL()` syntax and not the legacy `url.parse()` API. There are many reasons for this but the most significant is that `url.parse()` has long standing bugs that are unlikely to ever be fixed.
4
33
108
@jasnell
James M Snell
8 months
Contributors to Node.js do not add features to gain an advantage over a competitor in the market, they do so simply because they believe adding it will be helpful to users. If other tools add that same feature, then awesome! If other tools implement it better, also awesome!
2
5
108
@jasnell
James M Snell
4 years
Oh, btw, I'm 44 years old today. Or, if you prefer, 2C
39
0
108
@jasnell
James M Snell
3 years
And with great fanfare and excitement, after years of debate and uncertainty... an experimental implementation of the WHATWG ReadableStream, WritableStream, and TransformStream has landed in Node.js core ...
6
35
107
@jasnell
James M Snell
3 years
PSA... did you know... starting with Node.js 15.6.0, you can quickly create standards compliant random UUIDs with a single line... > node -pe "crypto.randomUUID()"
4
18
106
@jasnell
James M Snell
2 years
Today is my dad's birthday. I've called him every year on Dec 21st since I moved out 27 years ago. This year I can't. Covid sucks. Love you Dad.
10
0
105
@jasnell
James M Snell
3 years
PSA: The AbortController and AbortSignal are now available in @Cloudflare workers... this includes the ability to abort fetch requests like: fetch(' http://...', { signal: ac.signal }); ac.abort();
Tweet media one
4
8
105
@jasnell
James M Snell
3 years
Folks should be starting to see a pattern here. As we approach the end of my second month, so far I've shipped spec compliance updates to EventTarget and Event, added AbortController, AbortSignal, queueMicrotask, and crypto.randomUUID ... all common Web APIs that...
@jasnell
James M Snell
3 years
PSA: The AbortController and AbortSignal are now available in @Cloudflare workers... this includes the ability to abort fetch requests like: fetch(' http://...', { signal: ac.signal }); ac.abort();
Tweet media one
4
8
105
3
8
103
@jasnell
James M Snell
6 years
I spent 16 years at IBM working on or with open source, including my final position there as the technical lead for all things Node.js. They've had their issues, but they've arguably done more for sustainable open source than any other large enterprise.
@christo4ferris
Howard Beale
6 years
Actually, IBM does. IBM is one of the most prolific contributors to open source on the planet, and we have been doing so since late 1990s. We collaborate side-by-side with Red Hat, Google, Intel, Microsoft and many, many others
4
25
62
3
35
102