DEV Community

loading...
JavaScript Joel profile picture

JavaScript Joel

Cofounded Host Collective (DiscountASP.net). Cofounded Player Axis (Social Gaming). Computer Scientist and Technology Evangelist with 20+ years of experience with JavaScript!

Last 250 comments

An introduction to MojiScript's enhanced map

Good catch! I have updated the post. Cheers! ๐Ÿป

What free open API's do you use to demo code?

National Park Service has an API. That's interesting. ๐Ÿค”

Creating a linked list using only Function Combinators

Awesome. Looks like I had to resave the page.

Why pressing the key works only once in my React project?

This looks like an issue with stale values inside of useEffec...

Your favorite free hosting site? ๐ŸŒ

Funny timing. I released a video just today where I setup hos...

How I Setup My Own Personal CDN using Cloudflare and S3

For me, this piece with Cloudflare was easier than Cloudfront...

How I Setup My Own Personal CDN using Cloudflare and S3

There are many options to do this. AWS Cloudfront is also a g...

How I Setup My Own Personal CDN using Cloudflare and S3

Because I am using Cloudflare, the requests are proxied throu...

How I Setup My Own Personal CDN using Cloudflare and S3

Everyone was right. Totally agree about the title! Cheers ๐Ÿ‘๐Ÿป

How I Setup My Own Personal CDN using Cloudflare and S3

Title adjusted to add clarity as recommended ๐Ÿ‘

How I Setup My Own Personal CDN using Cloudflare and S3

Title adjusted to add clarity as recommended ๐Ÿ‘

How I Setup My Own Personal CDN using Cloudflare and S3

Title adjusted to add clarity as recommended ๐Ÿ‘

How I Setup My Own Personal CDN using Cloudflare and S3

Title adjusted to add clarity as recommended ๐Ÿ‘

How I Setup My Own Personal CDN using Cloudflare and S3

Title adjusted to add clarity as recommended ๐Ÿ‘

Hacktoberfest - through a different lens. ๐ŸŒณ

Sure๐Ÿ‘

Hacktoberfest - through a different lens. ๐ŸŒณ

Great article. I am hopeful that next years Hacktoberfest wil...

How One Guy Ruined #Hacktoberfest2020 #Drama

Will read now ๐Ÿ‘

How One Guy Ruined #Hacktoberfest2020 #Drama

It's improving ๐Ÿ˜

How One Guy Ruined #Hacktoberfest2020 #Drama

It was a problem in previous Hacktoberfests though it was amp...

How One Guy Ruined #Hacktoberfest2020 #Drama

It was a problem in previous Hacktoberfests though it was amp...

How One Guy Ruined #Hacktoberfest2020 #Drama

I'm hopeful with Digital Ocean's new opt-in approach, open so...

How One Guy Ruined #Hacktoberfest2020 #Drama

It probably took this event to make Hacktoberfest better. So ...

How One Guy Ruined #Hacktoberfest2020 #Drama

๐Ÿคฃ

How One Guy Ruined #Hacktoberfest2020 #Drama

Post your article here when you are done, I'd love to read it...

How One Guy Ruined #Hacktoberfest2020 #Drama

Ooof indeed

Typper ๐Ÿ’ป๐ŸŽฎ, (the beginning of) a typing game [v0.2.0-beta]

Got it working now! Looks great!

Typper ๐Ÿ’ป๐ŸŽฎ, (the beginning of) a typing game [v0.2.0-beta]

window.firebase.analytics is not a function maybe it's my adb...

BEWARE of React.useEffect Race Condition ๐Ÿ› BUGS

Appreciate the words. I does mean a lot to me ๐Ÿ˜Š Seems like th...

BEWARE of React.useEffect Race Condition ๐Ÿ› BUGS

Thanks! Appreciate the feedback! Cheers! ๐Ÿ‘๐Ÿป

BEWARE of React.useEffect Race Condition ๐Ÿ› BUGS

Hook can be deceptively simple. And that's when these bugs ju...

3 SIMPLE TRICKS FOR RECURSION OVER A TREE STRUCTURE in JavaScript / NodeJS

That's not an extension. It's a feature in vscode. Go into yo...

Async/await can still surprise you... A LOT!

Ahh the under appreciated rxjs. Such an amazing tool!

Async/await can still surprise you... A LOT!

Hello Charles, I wanted to show a couple of additional ways ...

Write a Custom JavaScript Filter Function that is 60% faster than Array.filter

I couldn't reproduce the results. I am showing fil running ab...

Visualizing Closures with the VSCode Debugger

I'm hoping to have more on debugging in Node. I don't think I...

CUSTOM REACT STATIC SITE GENERATOR (Live Coding) [Part 2] | JavaScript | NodeJS | ReactJS

haha I will lose any staring contest!

CLUSTER MULTI THREADED NODEJS -- Run threads in parallel to speed up long processes

I think you are right. I am familiar with cluster because I u...

Creating a linked list using only Function Combinators

Ahh I see it now! It looks like the first two runkit embeds a...

Creating a linked list using only Function Combinators

I believe this is a problem with the runkit embed on the site...

Functional Programming: Alternatives to the IF #Functional #JavaScript #Functors

Glad you enjoyed this! Cheers ๐Ÿป

CLUSTER MULTI THREADED NODEJS -- Run threads in parallel to speed up long processes

Ahh! this is a cool library. I haven't seen this one before. ...

Minute JavaScript - Array's map method

Thanks, my friend ๐Ÿ‘

Minute JavaScript - indexOf, includes, find, and as a bonus findIndex

Glad you enjoy them. I'm trying to keep them short and sweet....

Minute JavaScript - indexOf, includes, find, and as a bonus findIndex

The VSCODE plugin you are seeing is called Quokka.js. Highly ...

Visualizing Closures with the VSCode Debugger

Glad you found it useful! Cheers ๐Ÿป

Do you say jeh-veh-script, jah-vah-script or something else?

Same way you would say Java

Let's talk about the state of auto-generated documentation tools for JavaScript

I haven't seen anything like that. You might have to create s...

cannot read property 'map' undefined

The error is not in the code you have shared. You will need...

Let's talk about the state of auto-generated documentation tools for JavaScript

I ended up abandoning the approach of creating JSDoc html f...

Let's talk about the state of auto-generated documentation tools for JavaScript

If your codebase is already using JSDoc, check out their Te...

Webpack 5 and Module Federation - A Microfrontend Revolution

Very excited for this feature to mature. I have been working...

โญ๏ธ Interactive JavaScript Quiz #1

Hey, I'm diggin these little quizes. Great content! ๐Ÿป

Improve Your Algorithms with this Simple Equation

I think this Tweet is relevant to the discussion: ...

Improve Your Algorithms with this Simple Equation

When an item is added to or removed from the array, the len...

Improve Your Algorithms with this Simple Equation

Array length isn't "calculated" it's a property of the Arra...

Splitting Javascript Classes Into Different Files

If you are going this far, then you don't even need the cla...

Swapping two numbers, w/o a temp variable

Swapping two objects, w/o a temp variable const K = a =&g...

How are you writing a commit message?

I have been enjoying the git-cz cli which has emoji support...

React: "I really wish this is how I could write components."

Yep this is correct! Any previous fetch needs to be aborted...

Ask me dumb questions about functional programming

Ahh okay. I see what you are trying to do. Nice solution!

Ask me dumb questions about functional programming

Maybe something like this? f = pipe([ leftMap(getUserFr...

dev.to is shadow-banned on Reddit

Not all Redditors are obnoxious trolls, but it is a large ...

Ask me dumb questions about functional programming

It depends on the library you are using for the Either. But...

The easiest problem you cannot solve.

After you research SKI Combinators, look into Church Encodi...

What steps are you taking TODAY to prevent today's code from becoming tomorrow's LEGACY APP?

It is important a balance must be achieved for the enforcem...

What was the most over-hyped software movement?

Whatever software I'm currently using at the moment.

Some US prisons are banning books on coding

This is intentional. The for-profit prison system is designed...

What do you think about the idea that "there should be only one way of doing a thing" in programming languages?

Part of the success of React is they didn't dictate how any...

Looking for beta testers for express-easy-routes

Glad it is helpful! Tell me more about what, why, how of w...

Map, Filter, Reduce vs For Loops (syntax)

Transducers are the next evolution. You would start with a ...

What's your worst nightmare as a coder?

Hmm. That's a tough one. How do I choose? Well, if I had to...

React: "I really wish this is how I could write components."

No your comment didn't imply that it wasn't fun. I got you ...

React: "I really wish this is how I could write components."

Agreed. Plus the problem with libraries is they have to cov...

React: "I really wish this is how I could write components."

Z looks interesting for sure. It's a little limited though....

React: "I really wish this is how I could write components."

There's no repo for it. It was just a live stream demo :)

React: "I really wish this is how I could write components."

There's always room for improvement!

React: "I really wish this is how I could write components."

HOCs are another great way to solve this. Great examples!

React: "I really wish this is how I could write components."

That was one thing I found interesting about this process. ...

React: "I really wish this is how I could write components."

All great features! Submit a pull request ;)

React: "I really wish this is how I could write components."

Thanks for the tip! I'm saving this video to my Watch Later...

React: "I really wish this is how I could write components."

One of the reasons, I decided not to make this an npm packa...

React: "I really wish this is how I could write components."

Cheers! ๐Ÿป

React: "I really wish this is how I could write components."

I'm so honored ๐Ÿ˜

React: "I really wish this is how I could write components."

Absolutely! The fastest way to get me to do something is t...

React: "I really wish this is how I could write components."

This sounds pretty cool. I haven't seen scalajs but if it h...

React: "I really wish this is how I could write components."

Submit a pull request ;)

React: "I really wish this is how I could write components."

ReactReason is a very interesting project. It's hard to con...

React: "I really wish this is how I could write components."

I ran into a few different packages that did something very...

Do you have a process for naming things?

First I start with something like this: const aaaaaaaaa ...

React: "I really wish this is how I could write components."

Same. You can use Maybes and Eithers today with a package i...

React: "I really wish this is how I could write components."

I really think this is such a cool DEV use-case: Taking a ...

I will be ๐Ÿ”ฅ LiveCoding JavaScript on Twitch at 7:30 PM PST (Jun 4 2019)

Awesome! I just followed you. It's hard to find coders on T...

I will be ๐Ÿ”ฅ LiveCoding JavaScript on Twitch at 7:30 PM PST (Jun 4 2019)

Hey thanks for showing up! I definitely learned a few thing...

I will be ๐Ÿ”ฅ LiveCoding JavaScript on Twitch at 7:30 PM PST (Jun 4 2019)

I'm learning this whole live coding thing. I barely got the...

Looking for beta testers for express-easy-routes

LOL I guess that means you like this?

Looking for beta testers for express-easy-routes

Awesome. I can't wait to hear your feedback on this!

Terrible interview question: Swap variables without a temporary

I am at the point in my career where I can answer these que...

My pizza recipe

Needs more JavaScript!

Why do recruiters ask for current salary?

I always answer this with irrelevant. Don't submit to their...

Recursion, Memoization, and Y-Combinator

I think I just read a dozen articles in this article

What was your win this week?

That must have been a difficult conversation. Surprisin...

What was your win this week?

This week, I convinced my company to Open Source a couple o...

Null-checking in JavaScript

Looking at this block of code... if ( tokenInfo &&...

Equality of Data Structures: Ruby vs. JavaScript

Please never stop! ๐Ÿ˜Š

Equality of Data Structures: Ruby vs. JavaScript

Loving these graphics! Do you make them yourself for these ...

How do you commenting your code?

I take the block of code that requires commenting, break it...

Webp-ing your site: reduce image file size, increase site performance

For those looking for webp browser support: keycdn.com/supp...

Use $ & $$ Instead of document.querySelector/All in JavaScript without jQuery

Yep, it would look like this: const username = 'johndoe' ...

Finding Bugs in Languages/Frameworks You Don't Know: node.js

Not that I am aware of. But if there were, it would be a ga...

Finding Bugs in Languages/Frameworks You Don't Know: node.js

Since your theories are in direct conflict with my real wor...

Finding Bugs in Languages/Frameworks You Don't Know: node.js

as a standard you should add a semicolon This is also an...

Finding Bugs in Languages/Frameworks You Don't Know: node.js

This needs a semicolon: const f = function(a) { return a...

Finding Bugs in Languages/Frameworks You Don't Know: node.js

Oopsie. Updated!

Finding Bugs in Languages/Frameworks You Don't Know: node.js

Do semi-colons matter in Javascript? The examples you ...

How do I build A site similar to crack.com or louderwithcrowder.com.

It seems like quite a lot of work even for a seasoned devel...

How do I build A site similar to crack.com or louderwithcrowder.com.

More information needed

Let's talk about the state of auto-generated documentation tools for JavaScript

I abandoned the auto generated docs. They just didn't work ...

Functional JavaScript - Functors, Monads, and Promises

Thanks for the feedback. I have added a couple of sentences...

The difference between dependencies and devDependencies in a JavaScript project

There is also a lesser known peerDependency section for creat...

The Internet Lotteryโ„ข for content creators

I have noticed a lot of my content go unnoticed until a key...

Enhance your git log with conventional commits

I have added husky + commitizen + commitlint to our projects ...

Whatโ€™s an unpopular software opinion you have?

Because TypeScript can leverage most of what JavaScript off...

Whatโ€™s an unpopular software opinion you have?

Maybe you could explain why. The community. Npmjs, etc....

Whatโ€™s an unpopular software opinion you have?

I started with basic on the C64. Then Amiga Basic. QBASIC. ...

Whatโ€™s an unpopular software opinion you have?

JavaScript is the greatest language of all time!

Git Tutorial on How to Redraw Git Graph History is Coming in 3,2,1 ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ

I'm about to write a comment. Stay tuned people!

video game ep0

Subscribed! ๐Ÿ’–

Keep your Javascript dependencies under control

+1 for recommending webpack-bundle-analyzer. This has becom...

Hack or maybe not: "Deleting" master when it gets too big

One benefit is that you would not need to perform a merge. ...

Hack or maybe not: "Deleting" master when it gets too big

master isn't gone. You still have full access to it. You c...

Hack or maybe not: "Deleting" master when it gets too big

don't create extra work for yourself by deleting it (yes, ...

Hack or maybe not: "Deleting" master when it gets too big

You pull the entire thing down the first time with git fet...

Hack or maybe not: "Deleting" master when it gets too big

No point wasting extra bandwidth to pull the entire thing ...

Hack or maybe not: "Deleting" master when it gets too big

The work is always there in the.git folder. You just don't ...

Hack or maybe not: "Deleting" master when it gets too big

I often need to be able to refer back the canonical "this ...

Hack or maybe not: "Deleting" master when it gets too big

For those of you that are confused, master is not deleted o...

Then After forEach

With MojiScript I have created an async map, filter and red...

Pattern-Match your JavaScript with Z

the toString() That doesn't seem like it would work for...

Challenge: Get Closest Number in an Array

This is a job for Reduce! JavaScript: const nums = [100...

Pattern-Match your JavaScript with Z

One limitation I see is something like this is not possible...

Pattern-Match your JavaScript with Z

This is incredible. I have a lot of questions regarding how...

Can forced linting surpress contributions when linting is first introduced?

Lint first, ask questions later.

Why Prettier

I am currently using eslint + prettier + husky in my projec...

Function.bind.bind does not work in JavaScript

If there are roads to take and one causes less flat tires, ...

JS Project Setup: Code Quality is simple when you don't have to do anything

This is perfect example of abusing the tool of choice (git...

Super Cool ๐Ÿ˜Ž Tool to Style Your ๐Ÿ’™ Tweets

Nobody even reads my tweets, but for some reason, I worry a...

Hello World

Hello!

ES6 Arrow Functions Cheatsheet

I personally feel in large projects we need to enforce the...

JS Project Setup: Code Quality is simple when you don't have to do anything

Uh, another leftpad, got it, thanks. This is an unfair j...

Namespaces and Javascript: I Donโ€™t Know What Iโ€™m Doing

If you are just starting out with this, I would recommend l...

Namespaces and Javascript: I Donโ€™t Know What Iโ€™m Doing

So, Iโ€™m curious: What is the best way to handle JS namespa...

Tryin' round

โ€œWhen an old farmerโ€™s stallion wins a prize at a country sh...

Nested Conditional Operators

This guy knows what up ;)

Nested Conditional Operators

That's the difficulty is going opposite of the norm. It rea...

Nested Conditional Operators

Hmm. Well, I have used function expressions to throw, so th...

Nested Conditional Operators

When given multiple ways to write something, I always prefe...

Function.bind.bind does not work in JavaScript

Power of JavaScript is due to this Disagree. The power i...

Function.bind.bind does not work in JavaScript

It promotes the context from the side loaded this to a full...

Function.bind.bind does not work in JavaScript

Are there any true Javascript experts recommending this? ...

Variable Fonts on the Web

Same. This is awesome!

Function.bind.bind does not work in JavaScript

point was that behavior was unpredictable I am in comple...

Your 2018 in Numbers

Remember, it's just for fun. Not a competition. Right. R...

Function.bind.bind does not work in JavaScript

To play devil's advocate, I will disagree with this statement...

4 Spaces or 2?

I use the Fibonacci sequence to set my volume.

4 Spaces or 2?

We will argue 4 vs 2 spaces until we are blue in the face. Go...

How to prevent pasting into input fields

Should you disable the paste function? Opinion alert: Th...

Nested Conditional Operators

I didn't know you could use switch that way! ๐Ÿ˜ฎ You shoul...

Nested Conditional Operators

nested conditional operators are evil I think nested any...

Be careful of the JWT hype train

Can you provide a scenario where passing a JWT around amon...

Be careful of the JWT hype train

Static site with API backend is not a use case for using JWT...

Be careful of the JWT hype train

Unless scaling your system has driven you to microservices...

Top 5 DEV Comments from the Past Week

Cheers!

Every comment born with 1 like?

Index 1 vs Index 0? :)

Be careful of the JWT hype train

Can you tell me again, why we need JWT encryption? First...

Be careful of the JWT hype train

How can you avoid any curious customer don't call console....

I can't make up my mind about Twitter lately

I was thinking you would create a unique message for twitte...

I can't make up my mind about Twitter lately

Is it possible to add meta-data to your blog posts that can...

Be careful of the JWT hype train

I think there's way too much hype around it and people are u...

New Years and New Beginnings: I'm Joining the DEV team!

Congrats! They are lucky you have you!

What free open API's do you use to demo code?

I decided to go with SWAPI. Here's the examoke I was creati...

What free open API's do you use to demo code?

Awesome a whole list of public APIs. I'm sure I'll find som...

What free open API's do you use to demo code?

That is an interesting API. I haven't seen that one. I'll h...

What free open API's do you use to demo code?

Great question! My use-case is I am writing documentation ...

Filter Arrays with the Javascript Filter() Method

This statement is misleading. In reality there will be zero...

Filter Arrays with the Javascript Filter() Method

I have fallen in love with this syntax over a for loop: c...

Arrow Functions

conveying the boundaries of you application I'm not full...

Arrow Functions

People often use the readability argument to argue against ...

Arrow Functions

you are adding (all be it small) a barrier of readability ...

Arrow Functions

It would be nice to have seen some examples demonstrating h...

Arrow Functions

That article is from 2016 when people were more afraid of a...

Much needed filterMap in JavaScript

Well we can have an independent function with array being ...

Much needed filterMap in JavaScript

The same exact logic but written with reduce instead of a f...

Creating a linked list using only Function Combinators

Thanks! I have a few more articles at about 90%. I just nee...

How The Hell Do I use Map?

If you want to mutate an array in place, you could also use...

Sometimes, the elegant implementation is just a function

C# was created at the peak of OOP mania. Other options were...

Default Function Parameters (ES6)

Default values are one of the best additions to JavaScript....

Sometimes, the elegant implementation is just a function

I find it unfortunate that some languages, ahem Java and C...

Better loops in JavaScript

Great article! I noticed some minor bugs: // This: arr.r...

I did it again.

Ramda has a function called complement that can help you bu...

Some lists are not like the others

You can take the fake array even further by forcing Array's...

I did it again.

Haha awesome! We have all been there.

I did it again.

Tip to prevent this from happening in the future: Extract y...

Essential packages for Node.js newbies

I would recommend Jest for testing. I have switched from ot...

Do we really need classes in JavaScript after all?

Would it be fair to say that this conversation is fairly s...

Creating a linked list using only Function Combinators

Thanks! I'm hoping to use runkit more in my posts. I wish I...

Creating a linked list using only Function Combinators

Thanks! It's a topic most people aren't interested in, so I...

Creating a linked list using only Function Combinators

Oh this is the fun part. Maybe I should have mentioned it i...

Creating a linked list using only Function Combinators

Thanks for pointing me there! I really only knew about the...

Building Your Own Tools Is Dumb

1 left-pad 2 flatmap-stream ...

What is a type of "overconfidence" you have observed in developers?

Anyone who writes a comment that starts with "Actually..."

What is a type of "overconfidence" you have observed in developers?

I'm sure you are right. And that might be unavoidable. It ...

What is a type of "overconfidence" you have observed in developers?

I think mansplaining happens and it may more frequently to ...

What is a type of "overconfidence" you have observed in developers?

I feel you. This is why I do not post my articles on reddi...

I pay $1 every hour I spend working on open-source

This is a hard problem to solve. When I was creating mobile ...

A JavaScript implementation of the bridge crossing game

Or paste it here

Deconstructing Map, Filter, and Reduce

Most excellent. I'll be sure to incorporate this style of c...

Demystifying the Long Arrow "Operator"

Keep em coming!

I was a (social) Game Developer for 5 years, Ask Me Anything!

I made social games for a while as well. Free to play. The ...

Demystifying the Long Arrow "Operator"

Creative! I love weirdness like this. The only problem wit...

Changelog: Adjust the weights of tags you follow

Great feature! I wish I could adjust the weights of people ...

Deconstructing Map, Filter, and Reduce

Thanks! I have been thinking be doing something with the E...

Getting node.js and Express up and running on my... phone?

That's Awesome!!! I definitely have just started to play w...

Getting node.js and Express up and running on my... phone?

I use this all the time. Next, maybe I'll see if I can get ...

Getting node.js and Express up and running on my... phone?

For sure. I love using it to run quick expressions like: ...

Getting node.js and Express up and running on my... phone?

That sounds cool. It would be interesting to setup remote d...

Actually, callbacks are fine

Awesome thanks. There's some magic in that lib that I'm gon...

Actually, callbacks are fine

Very interesting. A few things I like... I like how verify...

Deconstructing Map, Filter, and Reduce

Thanks! I was concerned it could have added more confusion ...

Deconstructing Map, Filter, and Reduce

Thanks! I'd love to sketch over the code, but then the coff...

Map, Filter, Reduce vs For Loops (syntax)

I'd like to argue that imperative code isn't any more conve...

Remember phonebooks?

My father in law still uses a phone book. And yes, he has G...

Functional JavaScript - Functors, Monads, and Promises

For sure. I can't get enough. Even have a few of his books ...

Functional JavaScript - Functors, Monads, and Promises

Thanks! Feynman has a video: Physics is fun to imagine or ...

Map, Filter, Reduce vs For Loops (syntax)

Awesome! I'm a big fan of the comma operator. I decided to...

Map, Filter, Reduce vs For Loops (syntax)

I was trying to keep it simple for noobs but I think your s...

Password manager recommendations?

I use Keepass2Android on my Android.

Password manager recommendations?

I prefer KeePass. It's open source, multiplatform. Most imp...

Let's talk about the state of auto-generated documentation tools for JavaScript

If you do end up rolling your own solution, or if you know...

When is an array, not an array?

This Array is not an Array! const objArray = { 0: 'first...

I love git log

I have found these git aliases to be helpful. Paste this in...

Learn to Chain Map, Filter, and Reduce Method In Javascript

So my thoughts on this article are... Read More...

Whatโ€™s a concept you understand now, but took you forever to grasp?

Pretty sure this was it: edx.org/course/introduction-functi...

What's your setup for JavaScript Testing and Code Coverage

Ditto

loading...