loading...
Josh profile picture

Josh

I take words, and build things out of them. I also gay all the things.

Location San Francisco Joined Joined on  GitHub logo
Education

life on The Streets. (... no, I didn't really have that.)

Work

Web architect at a desk

Work status

I'm looking for work!

All 144 comments

Which is the best programming language today?

Obviously it's COBOL.

ยตCE

It regularly astonishes and depresses me, how little traction...

Minification, my new arch-nemesis. or is it?

I liked this post. I found your journey of discovery to be a ...

Daily Challenge #296 - Years to Centuries

defmodule Year do @doc """ Returns the stringified, suff...

Ruby 3 - Set Literal

Apologies for the confusion

Ruby 3 - Set Literal

Plus, the %<char> sigil syntax is a conversion operatio...

๐Ÿ™ Please Add .gitattributes To Your Git Repository

Or how about 1 tab = 12 spaces, on an 80 character wide scre...

Abstracting Click Events in React

There are a surprising number of uncapitalized language names...

Abstracting Click Events in React

This apology seems rather insincere. If I were making it, I w...

Learn a New Language: Ruby or Go?

My experience has been that Ruby-embracing companies have d...

Wait for the WebSocket connection to be open, before sending a message

Nice way of solving the race condition in your code! ๐Ÿ‘ With ...

Algorithm 202 (Interview Question): Matching Parenthesis in 2 Ways

These are both good initial implementations to the balance...

Announcing WheelJS - The Future of JavaScript

๐Ÿ˜ โœ‹๐Ÿ˜ Your framework isn't fully adherent to its own rules. s...

Is it worth learning JavaScript?

Common wisdom alleges, "The jack of all trades is the master ...

Why code changes are error prone

The shorter answer is Write tests. Test coverage is s...

is elixir good for scraping ?

No reason it couldn't be. The concurrency model would at le...

Web Tracking IS GOOD

But don't take my word for it! Here's a straight white man wi...

Web Tracking IS GOOD

Okay. So if I'm gay in a household where my parents believ...

Web Tracking IS GOOD

ME (reading the title of this): Oh, this was definitely writt...

๐Ÿ™ Please Add .gitattributes To Your Git Repository

๐Ÿ˜ What a stupid thing to go to war over in the first place...

A trick with Ruby array literals

Good information and well-written! At one of my companies, ...

New Machine; New Browser

Firefox is ๐Ÿ”ฅ, ๐ŸฆŠ. I made the switch some time last summer an...

Write Cleaner JavaScript Code With .some() And .every() Array Methods

Nice write-up! There's an added benefit to using some and e...

๐Ÿ™ Please Add .gitattributes To Your Git Repository

Seems to me like the linter could worry less about something ...

HOW TO CREATE OBJECTS IN JAVASCRIPT

Why not sanitize the object keys in the factory function? A...

Git blameless?

...and a bug report for not being able to have monospace fo...

Git blameless?

I'm putting in my vote for git theseus

Git blameless?

git this old repo

Map, Filter, & Reduce in JavaScript

I appreciate how you've taken this explanation upon yoursel...

๐Ÿ’ก๐ŸŽ JavaScript Visualized: Generators and Iterators

Teach them reduce, teach them reduce!

Why and how you should migrate from Visual Studio Code to VSCodium

๐Ÿฅ‡ People other than you still might, though

Why and how you should migrate from Visual Studio Code to VSCodium

brew cask install vscodium == extra setup steps? O_o OH. You...

Why and how you should migrate from Visual Studio Code to VSCodium

VSCodium is literally the exact same product, just under the ...

Svelte Needs A Virtual DOM

Svelte is a statically-typed systems programming language? ...

Why do you need to set limits for container resource usage?

...... how tho

Turning Git into an application database

Crazy experiments are the best kind of experiments ๐Ÿ™Œ

Turning Git into an application database

This is a really innovative use case for Git, and it's great ...

Which Data Structure Should I Use? An Elixir Cheat Sheet

I nearly had a heart attack when you declared lists and tup...

TypeScript Types Deep Dive - Part 2: The Absence of value

I can hug you, sadJaime

What Do You Do If You Disagree With Your Boss?

All of this works quite a bit better than what I did, which...

A super simple implementation of Infinite Scrolling

Nice work! Have you seen the IntersectionObserver API? It m...

Clean Code Applied to JavaScript โ€” Part I. Before your start

It is better to use bad English than to use your mother to...

5 Absolutely FREE Projects YOU should do to become a Full Stack SUPERMAN/SUPERWOMAN before the 2020 ends !!!

Django is so bad though ๐Ÿ˜ฉ Like, I would honestly take a fi...

I want to learn a new programming language. What should I learn?

A bit astonished (but proud that I'm the first ๐Ÿ˜Š) that nobo...

Daily Challenge #131 - Remove Anchor from URL

You wouldn't even need to limit the split to 2 entries. May...

Daily Challenge #131 - Remove Anchor from URL

How fast is my implementation?

Daily Challenge #131 - Remove Anchor from URL

const unAnchor = (url) => url.split("#")[0]

I Don't Know Javascript Coercion, Do You?

It gets worse! 4 + "4" // "44" 4 +"4" // 8

Faster Than Requests with MultiThread Web Scraper

I keep seeing the double-p in scrapper and think, "Like, a ...

Why I Lint Everything

At work, [โ€ฆ] it probably isn't the best use of time to be ...

Adaptive Loading - Improving Web Performance on low-end devices

Before degrading your feature set for lower-end devices, re...

Understanding `this` with E.D.I.N concepts

Very informative post! I just wanted to mention that in the...

Why I Lint Everything

Part of being a great team member is setting your ego asid...

What's your spookiest coding story?

Trust, it's way too spooky/creepy/weird for y'all to handle

Should code be like poetry?

Name two renowned poems whose meanings, according to their ...

Understanding This, Bind, Call, and Apply in JavaScript

This is a fantastic post covering the intricacies and nuanc...

Demystifying the v-model Directive in Vue

Thank you, for the informative and actually-lol'd write-up!

Demystifying the v-model Directive in Vue

Your writing is stellar

Joel is stepping down from Stack Overflow

In trying to remove personal bias from my thoughts, I reali...

What is your favorite Silicon Valley myth?

I.e., what any kind of success in capitalism had been based...

What is your favorite Silicon Valley myth?

"Meritocracy"

Detect Toxic Language in Twilio Chat with Tensorflow.js

The training data seems to have โ€ฆ no control group and/or n...

You are a software engineer

Sometimes I look back on the systems I've built in the 8 ye...

Swapping two numbers, w/o a temp variable

Good try, but no. "You both fail" is geared quite equally t...

Swapping two numbers, w/o a temp variable

As always, this is why it's important to understand what th...

Daily Challenge #93 - Range Extraction

The problem states that the list will always go in increasi...

Swapping two numbers, w/o a temp variable

Ruby, too! It's been possible at least since 1.8 a, b = b...

Daily Challenge #91 - Bananas

Yes.

Explain REDUCE Like I'm Five

You can use reduce anywhere you could use a for or forEach ...

Explain REDUCE Like I'm Five

It's not great, but it goes a lot more smoothly when you tu...

Explain REDUCE Like I'm Five

I'm always doing these things from my phone ๐Ÿ˜ถ

Daily Challenge #88 - Recursive Ninjas

As always, there is no need to use any language but Elixir....

Daily Challenge #84 - Third Angle of a Triangle

True enough. But why code purely for specs when coding for ...

Daily Challenge #84 - Third Angle of a Triangle

What happens if I enter thirdAngle(0,0)?

Daily Challenge #84 - Third Angle of a Triangle

What happens if I enter thirdAngle(0,0)?

Daily Challenge #84 - Third Angle of a Triangle

This oughta do it for Elixir. defmodule Triangle do def...

The Power of the Observer Pattern in JavaScript

I agree. This demonstration of the observer pattern suits l...

Write Posts in DEV Community using Visual Studio Code

I'm not sure why, but trying to sign in just gives me an Un...

What Terminal Application do you use on macOS?

Vanilla Terminal, with bash-it. I've been curious about nus...

Simpler = Better if it_gets_the_job_done

First off, great post! I was worried at first that "David" ...

๐Ÿ”บ 5-step guide to developing your OWN personal software projects

Great advice, thank you for making this video!

ES6 Mini Crash Course: How to Write Modern JavaScript

This is a fantastic write-up of the core ES6 benefits! I ju...

Daily Challenge #51 - Valid Curly Braces

Ahh, this old trick. I've done it for at least two intervie...

Daily Challenge #52 - Building a Pyramid

Since this is pretty much the top half of a string diamond ...

Formatting Code for DEV Comments and Posts

Boss-level debugger ๐Ÿ˜Ž My original thought was the trusty r...

Formatting Code for DEV Comments and Posts

> and < ?

Daily Challenge #49 - Dollars and Cents

It rounded up, though, so is that an error? It seems like e...

Daily Challenge #48 - Facebook Likes

Ooh, a ternary chain. Nice ๐Ÿ‘

Daily Challenge #48 - Facebook Likes

I question the validity of this challenge. No Oxford comma?...

Adding an Emoji Status to Terminal (ZSH)

You can use emoji in bash-it, too!

Daily Challenge #46 - ???

Okay, I'll bite and imagine that Carmen Sandiego has stolen...

Learn responsive web design in 5 minutes

It's never too late to learn! No, seriously. That "old dog...

Daily Challenge #46 - ???

... ๐Ÿ˜ I mean... that's not even a function to write. It's ...

Daily Challenge #45 - Change Machine

I am concerned about speed we need to get that stuff off t...

Daily Challenge #45 - Change Machine

that guard clause defmodule CashMachine do ...

Daily Challenge #44 - Mexican Wave

Okay. Well... maybe you could lighten up, as I'm now just a...

Daily Challenge #44 - Mexican Wave

EDIT: replying to the wrong comment, sorry ๐Ÿ˜…

Daily Challenge #3 - Vowel Counter

Rubeh require 'set' vwls = %w"a e i o u".to_set def sm_v...

Daily Challenge #44 - Mexican Wave

Python's got map, filter, and reduce ๐Ÿ˜ถ It's even got compre...

Daily Challenge #44 - Mexican Wave

It is also a single method chain. The result of each call f...

Daily Challenge #44 - Mexican Wave

Nice! The runtime complexity is pretty substantial, but it'...

Daily Challenge #44 - Mexican Wave

As an Elixir function, including documentation! And a langu...

The 3 Sins of Software Engineering Interviews

Be sure to also use a language your interviewers know If ...

The 3 Sins of Software Engineering Interviews

As long as I live, I will never forget the interview I had ...

Daily Challenge #43 - Boardgame Fight Resolver

Ahh, pattern matches. So elegance, much match ( *-*)

Daily Challenge #43 - Boardgame Fight Resolver

Hmm... There's never any reason to have certain pieces att...

Web developer of 20 years

Question about working for yourself: How do you get into wo...

Trust me, I can build software because I learned how to code from ___

a Ruby course taught by an English professor

Trust me, I can build software because I learned how to code from ___

berb can't tell arnie from a meatball smh the World we live...

Daily Challenge #40 - Counting Sheep

Ruby has pipes now?

Daily Challenge #40 - Counting Sheep

What about a range?

Daily Challenge #40 - Counting Sheep

Oh, alright. shep = fn 0 -> "" n -> 1..n |> ...

Daily Challenge #40 - Counting Sheep

shep = fn n -> 1..n |> Stream.map(&("#{&1} sh...

Daily Challenge #41 - Greed is Good

Easy peasy, lemon squeezy (language: Elixir) defmodule G...

Top 5 Programming Languages Every Software Developer Should Learn

Hmm... I'm curious about where to draw the dividing line be...

The Dark Side Of The Magic

The shade, the shade of it all! ๐Ÿ˜‚

What do you want to learn?

hmmmmmmmmmmI was gonna go ahead and use these t'all seems ...

Top 5 Programming Languages Every Software Developer Should Learn

Aren't the Boeing airplanes that sometimes require a hard r...

Top 5 Programming Languages Every Software Developer Should Learn

puts "Hello World!" oh noes so bloat much incomprehen...

Top 5 Programming Languages Every Software Developer Should Learn

Out of curiosity, what do you feel classifies Python as a s...

5 Powerful Programming Languages to Stretch Your Brain

Ahh, that makes sense too ๐Ÿ˜…

What do you want to learn?

Game development ๐Ÿ˜‹

5 Powerful Programming Languages to Stretch Your Brain

Oh, I may be wrong on this, but I think you can clean up th...

5 Powerful Programming Languages to Stretch Your Brain

I hope this list receives massive boosts. The line of reaso...

5 Powerful Programming Languages to Stretch Your Brain

I find this comment incredibly ignorant of the history of t...

Top 5 Programming Languages Every Software Developer Should Learn

Hmm... ...Hm.

Daily Challenge #2 - String Diamond

ruby diamonds? Okay! def riamond(karat) unless karat.o...

Daily Challenge #1 - String Peeler

Trivial in Ruby: def double_chop(string) return string...

Daily Challenge #29 - Xs and Os

Very nice! I love your choice of method name ๐Ÿ˜‚ And it's gre...

Daily Challenge #29 - Xs and Os

Oh, nice! I wouldn't have thought to use the array spread s...

Daily Challenge #29 - Xs and Os

Now in elixir because hey all the cool kids are using not-J...

Daily Challenge #29 - Xs and Os

I feel like the C might've already done you in? dang, that'...

Daily Challenge #29 - Xs and Os

dammit kevin

Daily Challenge #29 - Xs and Os

const exsAndOhs = // "๐ŸŽ™ they haunt meโ€ฆ" (https://www.youtub...

Why React Hooks?

I adore hooks, but do kinda wish more people were glomming ...

Practical Ways to Write Better JavaScript

I'm curious as to when you would want to explicitly pass/ac...

The Fantastically Magical handleEvent Function

This post is great! If your event cases grow even farther tha...

Which computer era would have been the most exciting to take part in?

Definitely when they built the Antikythera.

How do you know when to NOT refactor?

I'm glad I could help! Refactors used to be my least favori...

๐Ÿ”ฎ Technologically Clairvoyant ed. 6 - Alzheimer's, addictive social networks, 3d printing

WOW hopefully someone builds an army of deadly robobees to ...

How do you know when to NOT refactor?

tl;dr โ€“ I guess the inverse of all of this is, "When you ca...

loading...