Barbarian Meets Coding Titlebarbarianmeetscoding

WebDev, UX & a Pinch of Fantasy

Functional Programming in JavaScript

The Mastering the Arcane Art of JavaScript-mancy series are my humble attempt at bringing my love for JavaScript to all other C# developers that haven’t yet discovered how awesome this language and its whole ecosystem are. These articles are excerpts of the super duper awesome JavaScript-Mancy book a compendium of all things JavaScript for C# developers.

Functions are one of the most foundational and common constructs in JavaScript. We use them for all kinds of things: to abstract, encapsulate and reuse functionality, as object factories and constructors, to simulate data privacy, to create namespaces and modules, we can compose them with other functions… They are everywhere.

The fact that functions are so prevalent in JavaScript, that they are first-class citizens and that it is very natural to use higher-order functions, makes JavaScript a great language to do functional style programming.

But what does all this nonsense of first class citizenship and higher-order functions means? Why should you care about functional programming in the first place? And moreover… What the heck is functional programming?

Read on →

Barbaric Tip of The Week: How to Recover A Lost Commit With Git

Barbaric Tip of the Week is a weekly series whose main purpose is to share tiny bits of knowledge that I find specially useful and interesting.

Last week I experienced one of the weirdest moments I have ever had with git and something that should never ever happen within the secure confines of a version control system: I lost a commit. My source code, everything that I had been working on for 3 hours wiped out from existence.

Has this ever happened to you? Would you like to know how you can recover a lost commit?

Read on →

My Talk At Devsum 2016 And Some Interesting JavaScript Links

Hi! Last week was intense!! I came back from spending a greeeeat long week in New York, powered through jet lag and a nasty cold and did my talk at Devsum 2016 about the mysterious, arcane and obscure art of JavaScript-mancy!

Devsum 2016

It was a ton of fun as usual. The conference was awesome, the organizers did a great job, everything ran super smoothly, the speakers were very kind and great to hang out with, the attendees were engaged and great to have a random conversation with here and there, and the people at Active Solution were a blast to be around. So thank you everyone for making it happen!

I think my talk went pretty well although perhaps there was a little bit too much information and speed towards the end. You’ll be able to be the judge of that because there’s going to be a recording coming out in the near future (which I am looking forward to watching myself by the way hehe).

Anyhow, here are my slides and a bunch of useful links that serve as a superb companion for the presentation.

Read on →

Argument Destructuring and Type Annotations in TypeScript

I often use destructuring in ES6 when I want to have a function with an options object. I described options objects in ”More useful function patterns - function overloading as a way to achieve function overloading in JavaScript with the added benefits of named arguments and extensibility.

Recently I was trying to use the same pattern in TypeScript adding some type annotations but it did not work! If you have had the same issue yourself read through to find out how to solve it.

A Screenshot of me testing destructuring in TypeScript
Read on →

A look at ES6 Sets

The Mastering the Arcane Art of JavaScript-mancy series are my humble attempt at bringing my love for JavaScript to all other C# developers that haven’t yet discovered how awesome this language and its whole ecosystem are. These articles are excerpts of the super duper awesome JavaScript-Mancy book a compendium of all things JavaScript for C# developers.

A Set is a data structure that represents a distinct collection of items in which each item is unique and only appears once. If you have been working with JavaScript for a little while chances are that you have need to roll your own implementation of a Set. Well, you’ll need to do that no longer beause ES6 comes with a native Set implementation.

Read on →