Barbarian Meets Coding

WebDev, UX & a Pinch of Fantasy

Mastering the Arcane Art of JavaScript-Mancy for C# Developers: On Summoning Servants and Critters, Or The Basics of Objects 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.

The Very Basics of Objects in JavaScript

Hello JavaScriptmancer! It is time to get an introduction to the basics of objects in JavaScript. In this article you’ll learn the beauty of the object initializer and the nice improvements ES6 brings to objects. If you think that you already know this stuff, think twice! There are more than one surprise in this article and I promise that you’ll learn something new by the end of it.

Let’s get started! We’ll start by concentrating our efforts in the humble object initializer to provide some foundation that we can use later when we come to object-oriented programming in JavaScript and prototypical inheritance.

Objects it is!

Read on →

I published the First Version of JavaScript-mancy The Book!!!

Hi developernauts! Yesterday I published the first version of the JavaScript-mancy Book!!, surely the best way for C# developers to transfer their knowledge into the world of JavaScript :). Behold!

You may be asking yourself: Why do we need yet another JavaScript book in the market? Aren’t there enough already? What makes this book special? And to that I say, good questions! You should read this book because:

  • It’s specially tailored for C# developers coming into JavaScript from the point of view of a developer that has already followed that path
  • It is an end to end course that teaches you not only JavaScript itself, but idiomatic JavaScript, patterns, tools and how to build modern JavaScript apps
  • It is written in the same clear and conversational tone I write this blog in, maximizing for clarity and fun.
  • It has wizards in it

Thus far, the book contains the existing articles of the javascript-mancy series greatly edited and improved, with better and more thorough examples. I write a couple of hours per day (oftentimes) so expect new chapters coming up very soon! I’ll continue posting the early drafts of these chapters in my blog so you are more than welcome to comment or give any feedback that you like.

Back to writing!! :)


Dev Talk Monday: Master Web Performance at Nordic.js 2015

Dev Talk Monday is the series that brings you awesome dev talks every Monday

Hellou friends!!!

I’ve been doing a lot of working extra and book writing as of late but I have reserved some teeny tiny amount of time to keep me updated with the comings and goings of the programming universe. And a great way to do that aside from reading blogs and books is to look at dev conferences!

A couple of weeks ago we had nordic.js here in Stockholm and although I couldn’t be there in person, JavaScript conferences tend to post all the sessions on YouTube. That is beyond awesome ‘cause I get to see everything from the comfort of my favorite couch.

There’s a ton of great talks this year but the one I am going to recommend you today is Performance on RAILs by the super expert in web performance Paul Lewis (and where RAILs has nothing to do with RoR - Ruby on Rails - but an mnemonic for Response-Animation-Idle-Load which are places where you can affect the perceived performance of your web app).

Some highlights of the talk:

  • A great impact in perceived performance occurs when you change css properties that trigger all three layout, paint and composite processing on your browser. Jake has created an awesome website that you can use to see which css properties trigger which type of processing and thus select the ones that are more performant. The site is great as it provides very nice explanations about how the browser reacts to each css property. As a practical example, instead of using a regular transition to move and scale a square (width, height, left, top) you can use a transform that only triggers composite processing and FLIP the animation to get to those desired 60fps.
  • You can use PageSpeed Insights to get a checklist of performance improvements that you can apply on your site right away.
  • You can also use WebPageTest to perform a thorough analysis of the loading performance of your web site. It comes with great features like changing the network speed, different browsers, recording screenshots of your website as it loads over time, etc and also gives you recommendations in regards to how to improve the performance of your website.
  • A little bit in the fringe zone being implemented in Chrome only as of right now, you can use the requestIdleCallback to perform operations when the user is not interacting actively with the website and thus avoid processing affecting the performance of animations and interactions.
  • Some great resources that you can use to learn more about web performance are Browser Rendering Optimization and Website Performance Optimization both courses at Udacity, and the Google Web Fundamentals series on Optimizing Performance
  • And finally, Paul Lewis blog and website where you can find tons of great resources around web performance and front-endy UI stuff.

And that was it! Have a great week!

P.S. Another super interesting talk that I got the chance to see this weekend was André Staltz’s ‘What if the user was a function?’ from JsConf Budapest. Great watch if you are into functional reactive programming and those kind of things.

The Basic Ingredients of JavaScript-Mancy: An Introduction to JavaScript and ES 6 For C# Developers

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.

I am Writing a Book!

Hi All! I am going to transmute the JavaScript-mancy series into book format and write the missing/ultimate JavaScript manual for C# developers with a pinch of humor and a bit of fantasy in the mix.

{% img center comic—rotated-right /images/javascriptmancy-book-front-version-001.png “JavaScriptMancy!” “a JavaScriptmancy sample cover” %}

I’ll bring you more news soon! In the meantime, the following is a draft of the first chapter of the book. Enjoy! And feedback is always welcomed!

An Introduction to JavaScript-Mancy

I expect the reader of this manuscript to be well acquainted with the basics of programming, but I couldn’t, in good faith, start the series without some sort of introduction to the arts of JavaScript. This first chapter therefore, will take you through the whole breadth of the JavaScript language, albeit in a superficial way. I will show you all the basic features of JavaScript, even those of its latest incarnation ECMAScript 6, and how they differ or are similar to C#. I abhorr starting a series with pages after pages on for loops and if statements so I will attempt to be as interesting, short and sweet and entertaining as I can.

Read on →

Barbaric Tip of the Week: Listen to Software Engineering Daily

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.

A couple of weeks ago I was navigating the unending currents of the twitterverse and I stumbled upon a new (for me) podcast: Software Engineering Daily!

Software Engineering Daily Logo

It is a super high quality and interesting podcast run by Jeff Meyerson with new episodes every day (crazy) that focuses on a given topic per week. I started listening to it when they had the JavaScript week and he (and his awesome guests) touched various topics such as: the current landscape of JavaScript, TypeScript, React and Flux, Meteor.js, Node.js at Netflix, JavaScript at Spotify, Microservices, a ton of cool stuff indeed. Since Jeff has a very well prepared sets of questions you really get to understand the topic being discussed in just the right amount of detail, even when you are not versed in a particular topic.

You can follow Software Engineering Daily on itunes, twitter as well as in their website and RSS feed.

Great podcast, go learn! And have a great day!