Top 5 things to consider when choosing a new technology

Using ES6 arrow functions in production-ready apps

If you are just getting started with ES6, you might have heard about “fat arrow functions”. They are a great addition to the ECMAScript 6 standard and their origin is probably the CoffeeScript function declaration. You can think of them as throwaway functions that a you can attach to a click or mouse event.
There are a couple of ways to use arrow functions and we are going to go over each one in turn.

The fly theory of helpfulness

This article is the result of an experience I had a couple of days ago, before going to bed. This made me realise that my eagerness to help people, sometimes does me and the people I’m trying to help a great disservice.

Event delegation in TinyMCE plugins

For the past week or so, I’ve been working with TinyMCE. For those of you who don’t know what it is, I’ll just say this: it is a WYSIWYG (What You See Is What You Get) editor, very similar to the ones you find in popular blogging platforms like Wordpress.

Configuring Git - multiple identities

I’ve been a freelancer for quite some time, and for approximately the same amount of time, I’ve been making the same mistake, over and over, again. Whenever I had to work for multiple customers in the same period of time, I would always mix-up the email addresses in my Git configuration, and end up committing code on a client’s codebase and sign it with the email and details from another client.

ES6 arrow functions in depth

One of the prettiest features of ES6, it could easily win a beauty contest, if such a contest would be held. What many people don’t know is that the arrow function is not simply a form of syntactic sugar that we can use instead of the regular callback. As I like to explain it to the people who attend my trainings/workshops, arrow functions are this-less, arguments-less, and super-less. Let us now get past the shorter syntax and dive deeper into the specifics of the arrow function.

An SSH workflow that's easier on your brain

In this quick tip, I will share my SSH workflow and how I manage things when it comes to working with multiple remote machines. Unlike “the old days” when we used to have Apache installed locally on our machines — I see you Mamp Server users — now, with the rise of cloud providers like Amazon, Digital Ocean or Microsoft Azure, and products such as Docker, we are working more and more on systems that are spread accross multiple machines, instances, containers, you name it.

Serializing object methods using ES6 template strings and eval

Understanding the way AJAX and JSON manipulation work in JavaScript could make the difference between writing an elegant, easy to reason about application, and a crude hack. As far as my experience goes, only a small number of developers I’ve talked to in the past year or so, know how to write a vanilla XMLHttpRequest, from scratch. I do agree that it is important to get the job done in a timely manner and not reinvent the wheel, but using something without understanding it’s substance is something that I cannot come to terms with, for someone other than a junior developer.

Becoming a better JavaScript developer

A week ago I saw a very interesting question on Quora, titled: What should I do to become an enterprise level professional in JavaScript?. In this article, you will find my answer to this question, as I intend to keep it as a reference for everybody interested in the subject. I’d like to mention that writing this answer was highly beneficial for me, as I had to look back at my past and think about my actions and how they determined the path that I took in my career as a software development professional. One thing worth mentioning is the fact that I don’t yet consider myself an “enterprise JavaScript developer”, even though I have been called by that name. I’m a software developer with a sweet tooth for JavaScript, that’s it.

My favorite podcasts

The one thing I absolutely love doing when I’m out and about, by myself, either walking, driving or running(not that often) is to listen to podcasts.
Today I’m going share with you which are my favorite podcasts, but before we get to the “meat” of the article, I want to let you know that I created this github repository where all the podcasts mentioned in this article are listed. If you find it useful, make sure to share it with others and maybe contribute with your own preferences.

Interest killers

I love learning new stuff, I really do! Usually, I spend at least 1 hour, daily, reading on stuff, watching videos, listening to podcasts. And when I say 1 hour, I’m only talking about planned stuff, I don’t count the times I take a break and I’m not busy eating — one of my biggest “hobbies” — because those add up, too.

Bite-sized JavaScript - Meet Array

I don’t know about you but I’m working with JavaScript all day long and I always trip over arrays when it comes to “what method for which use case”. Whether I need to get an element from an array, check if an element exists or just create a new array, I always fail to remember which method does what, and of course, what each of the methods return.
This post is the first of a series of bite-sized(like the title states) posts aimed to first of all remind me what each method of the Array object does, and to also share this knowledge with anyone interested in the topic. The articles won’t require more than a basic experience with JavaScript’s syntax so absolute JavaScript beginners are welcomed, too.

Quick tip: Using mitmproxy for mobile testing

This article is meant to offer a hopefully simple solution for testing web applications that run on your local machine, on actual mobile devices, without altering your router’s DNS configuration, or resorting to other, less elegant solutions.

There's garbage in our code

Last week we had our October BucharestJS meetup and they made the mistake of letting me speak, again.
Last time I presented something, was in June, when I tried to teach developers how to be lazy at work, and use their time intelligently — A different look at Node.js application architecture

Short tip: Working with docker-compose container names

In this short tip I will show you how to get the name of a container created with
docker-compose, so you can manipulate it.

Unlearning and re-learning stuff

There comes a time in a developer’s life when they need to unlearn something, in order to make way for something new. In fact, I believe that the right way to learn something new, be it a new programming technique, a new framework, a new language, sometimes means putting some concepts that you already know and master, behind you.

Dockerizing Adobe Media Server

New job, new technologies, new problems to solve — that’s how it all started for me.
After switching jobs few months ago, I found myself working on an application that makes heavy use of Adobe Media Server(AMS) for audio and video streaming.
Nothing too hard, or too complicated, except for the fact that all developers were using a single install of AMS which was somewhere on a central server.
This started all my single-point-of-failure alarms, and started to ockerize the whole development environment, including AMS. In this article, I will explain the steps I followed in order to properly create a docker container running Adobe Media Server, with full RTMP/RTMPS support,

A different look at Node.js application architecture

Wednesday, June 24th, I attended the BucharestJS meetup as a speaker, with a presentation titled A different way to node, and I had a blast sharing with people the way I do things when it comes to Node.js application architecture.
In fact, I was so encouraged by their feedback that I plan on participating with more presentations on various problems that developers face, not only on the technology side, but also on the human side: motivation, health, etc.

Vim tip: Working with network-mapped folders

Working with mapped network drives in VIM? Me too! I always wondered why go through all this pain?
Because of this, I resorted to Sublime Text for this type of work, as it is very fast in most situations, but I still dreaded the fact that I could not use Vim, as there have been some situations where I would have been much more productive and would have gotten to the bottom of the task way quicker if I could have used Vim instead of ST3.
Don’t get me wrong, I find Sublime Text awesome and really fast, and yes, I am aware of its Vintage Mode, but that just doesn’t cut it for me. I can fake Vim in Sublime, but as far as I know, ST3’s Vintage doesn’t allow you to create custom commands/mappings, the way you do in Vim, for example.

I hate full stack! Period!

I’ve always loved to call myself different names/titles. I’ve been a software engineer, I’ve even been a “Lead Senior Front End Developer”; that’s a mouthful, isn’t it?. Titles are what make people feel important in their social environment. Certain people could argue that we’re rational beings, and we have values, and they’re right. But for the majority of us, the “name” we’re called by, is deeply engrained in our self-worth. I’ve experienced this countless times.

Short tip: viewing and resolving svn conflicts in the terminal

Working with SVN for the past couple of years has taught me a lot in terms of how I don’t want a version control system to be. Unfortunately, many of the customers and companies I’ve worked with/for have had their entire codebase on SVN, and very often I’ve found myself in the situation where, after a simple merge, I’d get tons of conflicts, either related to whitespace, or a specific piece of code that changes between releases (app version, for example).

Communicating through commit messages

How many times did you find yourself in a situation where you wanted to figure out how you implemented a specific feature at some point in time, or how you implemented that bugfix 6 months ago in order to fix a bug that has been reopened? For all those situations, you probably tried to go back to the code, tried to go through your commits, and you probably ended up in a situation similar to mine. In this article, I’ll go over my research for a better commit message “framework”(everything is a framework these days) and how I managed to solve the “I don’t know what I had for lunch yesterday, how am I supposed to know what I did 6 months ago?!” problem, when it comes to commits.

Development war tactics: staying current

Whether you’re a developer, designer or any type of professional in the tech industry, there’s one disease we all fear: change. Technologies, tools, languages, techniques … all of them change literally overnight, sometimes leaving behind disappointed, frustrated people. In this article I plan on describing the actions I take when dealing with the ever changing tech world.

Angular services and factories for vanilla JS developers

If you ever worked on an AngularJS application that went past “Hello world!” you probably hit the service vs. factory wall. Being a vanilla JavaScript developer, it was a bit hard for me to grasp these concepts, especially because I’ve also worked with other frameworks and I had an opinion already formed about what a service should be, not to speak about the “factory pattern” that was confusing the hell out of me at that time.

Working with JavaScript promises: handling the unexpected

Having worked with JavaScript Promises extensively in the past year, I often found myself in situations where handling output and errors was very hard to perform, from a semantic standpoint.
I plan on sharing my experience with promises, especially error-handling, but this is by no mean something that should be taken as a best practice, it is only my take on this issue, and you are encouraged to share your experience and practices.

Working with JavaScript promises: practices and mistakes

We use promises in our day to day grind, and not few were the occasions in which I found promise-using code improperly structured, responses handled in an inconsistent manner, as well as weak or no error handling.
With this post I aim to share some of my practices when it comes to working with promises. Throughout the post I will use ES6 syntax, but the principles outlined are available whether you’re using native JavaScript promises, or a library that implements the Promises A+ spec.

Three hard to spot JavaScript mistakes

Working on a handful of big ecommerce projects for the past couple of years, I often found myself in a situation where one component, or the whole application my team was working on, was working properly in all scenarios. All except one…

Npm package automation with packo

Developing NodeJS applications for the past year meant that I often found myself in front of monolythic applications, that clunked all-things-functionality in 3 or 4 so-called libraries.
I’m not a huge fan of compiled languages, and after college I was really reluctant towards languages like Java, but one thing I really learned to appreciate is the modularity that you can reach with it, especially with statements like import package.*;.