Exploring a common Javascript misconception with Chrome and ASTExplorer

You may have seen Gary Bernhardt’s WAT talk in which he pulls out these confusing lines of JavaScript:

{} + []
0
[] + {}
"[object Object]"

He shows the audience that an object plus an array is 0, but an array plus an object is [object Object]”. Lo and behold, if you try this in the chrome console, that’s what you’ll get:

But something’s a little fishy about that claim. If you wrap these lines in parentheses, you can see that both of these lines evaluate identically:

In programming, clout is everything. You wouldn’t listen to Dan Abramov if he didn’t invent React. You wouldn’t watch Kelsey Hightower’s talks if he wasn’t CEO of Google. And you CERTAINLY wouldn’t be reading my article if I hadn’t lured you in with the promise of a brilliant library that will make all your coworkers love you.

I use jargon to show you my library is Actually Good

What the fuck is a monad? You might not know. How about a topology? Doesn’t matter. I’ve managed to suss out a few pieces of language that describe a structure in an already abstract space using an even more abstract concept that has…

“This is definitely stupid, yet slightly applicable”

Part 1: Posing the problem

For one issue at work, we tossed around the idea of generating UUIDs client-side in order to ensure that we had a unique immutable id without having to go to the server to get a permanent id back. Obviously, if somebody’s maliciously creating ids, they can choose arbitrary values and create collisions. Additionally, one client could tell if another client had already chosen a certain value for an id by trying to commit a certain UUID to the DB. For example:

> Client 1 creates a "todo" with a certain UUID. > Client 2 tries to create a “todo” with…

Our civilization will come to an end, someday.

It won’t be pretty, however it happens. Mass starvation due to climate change, wide societal collapse through nuclear war and untold suffering, antibiotic-fueled epidemics that bring the very species to its knees.

But humans are resilient creatures. They’ll survive the onslaught. They’ll rebuild. They’ll recreate a civilization where ours stood originally, unknowingly borrowing pieces of our culture and identity, but largely forgetting about their origins.

Eventually, they’ll remember us. They’ll study us. Some lost flash memory here or there, an unusually well preserved RAID drive in a basement that somehow survived the…

Many people erroneously believe that the only way to advance one’s career in software engineering past senior engineer is to become a manager. However, many companies offer parallel tracks that focus on honing your craft and widening your influence throughout the organization. This is the so called “architecture” track. Today, I wanted to clear up the roles you can expect to fill on your journey down the architect’s career path.

  • Software Engineer I
  • Software Engineer II
  • Senior Software Engineer I
  • Senior Software Engineer II
  • Hypersenior Software Engineer
  • Staff Software Engineer
  • Master Codehand
  • Distinguished Master Codehand
  • Turing-Rank Champion Master Codehand
  • Hyperturing…

Evin: Why is programming such a source of anger and vitriol? Somebody hacks on stuff all day. They love to code, just like you do. They’re passionate and really into things, just like you are. Why would we be angry at them?

I actually want answers to this

I want to be able to counter it at every turn

Michael: Not saying it’s right, but pride. They love what they do and are prideful and elitist about their abilities and their opinions. …

Chipping away at Lady Monadgreen’s curse

“Once you understand monads, you immediately become incapable of explaining them to anyone else”

— Lady Monadgreen’s curse, Gilad Bracha

It’s my monad article! Everyone does one at some point! In this article, I propose a slightly different strategy to teaching monads, and attempt an explanation in that style. Will I break Lady Monadgreen’s curse? Spoiler Alert: probably not.

The two camps of Functional Terminology

In the functional programming community, there is a divide on the correct terminology to use when teaching functional concepts such as Functor and Monad to beginners. There are two main camps:

Side 1: Terms like Functor and Monad are unnecessarily dense…

Excerpt from a Facebook thread of literally no importance

Me: > Joins mathematical memes page

> sees meme I helped create

Hari: you’re part of something bigger than yourself now

Me: deng ur right

i am part of the universe, nothing more, guided like a leaf in a massive river

I contribute to the whole, but not in the ways I choose

I am part of the river, dedicated to it

the river deposits me as it pleases, with no forethought or purpose

like small ripples in the surface of calm water, so do my memes spread through the existential idea-scape

once again, no intent, a mere fragment of a massive automata

infinitely complicated, and simultaneously infinitely subtle

fractals collide with fractals in stunning chaos, and here I float through the middle

Me, the meme machine

An armory for the insatiable pedant

I hear the term Turing Completeness thrown around a lot more in software engineering than I would expect. I think there’s a little confusion about what Turing Complete means, especially within a software engineering context.

We say that Turing Completeness is a property of a computational system that states that the system is as computationally powerful as a Turing machine. But what EXACTLY does that mean? Put your scuba gear and wetsuit on because we’re diving deep into formalism:

Turing Machines

Turing machines are theoretical computers defined by Alan Turing in his highly influential paper titled On Computable Numbers, with an application…

Everyone’s Medium profile is full of one-sentence drafts that end abrup

Evin Sellin

Fork me on LinkedIn

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store