Elixir & Phoenix Engineering

Deep-dives on Elixir, Phoenix, OTP and distributed systems — code first, from two decades of shipping production software.

5m read

Vim Is The Perfect IDE

I have have tried Atom, SublimeText, TextMate, Eclipse, Visual Studio, and most of the Jetbrains products, I'm constantly tweaking and looking for a better setup, however Vim always feels like home to me; and I'm to the point now where I rarely use IDEs – exception being messy and complex projects where IDEs can do a lot of heavily lifting

4m read

TDD is not Dead

TDD is not dead, not really. And it won't really ever be dead, it will change or be replaced with something better; in fact it already has, and in my MagentoTDD book we focus on Behavior Driven Development, an approach that emerged from the original TDD methodology.

3m read

Design Patterns in PHP: Adapters

The adapter pattern also referred as the wrapper pattern, I find that wrapper is a more fitting name since it describes clearly what this pattern does; it encapsulates the functionality of a class or object into a class with a common public interfaces.

6m read

The Async Software Development Manifesto Revised

The Async Software Development Manifesto has been making the rounds on sites like HackerNews and /r/programming; and while I dont agree entirely with all that is proposed, some of the points made by the author made so much sense that I felt motivated to break them down and make some contributions of my own.

2m read

Exploring Hack: Building a MicroFramework

So to get started I've decided to build a micro-framework using HACK and HHVM, building a simple microframework should be a challenging enough task to illustrate some of the more interesting features of the language and at the same time it has an achievable goal so we don't end on a never ending development cycle.

2m read

Is HHVM/Hack the new face of PHP?

HHVM could change (is already at some extent) the way developers see and think about PHP performance, and how PHP should work. Even if you don't care and never plan to use HHVM or HACK in any of your projects the mere fact that they exist is a good thing for the PHP community.

1m read

Working with Psysh

I previously mentioned Boris, a terrific REPL for PHP, and while Boris is a great and functional REPL, is not the only available

3m read

Hello Hack

Recently Facebook unveiled Hack, a new programming language that aims to provide developers with the tools to write and ship code quickly while catching errors on the fly.

3m read

Exploring Traits

Traits are a mechanism for code reuse in single inheritance languages such as PHP. A Trait is intended to reduce some limitations of single inheritance by enabling a developer to reuse sets of methods freely in several independent classes living in different class hierarchies. The semantics of the combination of Traits and classes is defined in a way which reduces complexity, and avoids the typical problems associated with multiple inheritance and Mixins.

1m read

Boris The Missing PHP REPL

REPL(read-eval-print loop) can be great tools for quickly testing concepts, experimenting and getting quick feedback when learning a new language. Many languages and frameworks provide some sort of REPL like the rails console or laravel's artisan tinker.

9m read

Magento and HHVM

If you are developer or system administrator working with Magento running one or more medium sized stores, chances are that you are familiar with the many challenges of optimizing and scaling Magento.

4m read

Design Patterns in PHP: Singletons

The singleton pattern is useful when we need to make sure we only have a single instance of a class for the entire request lifecycle in a web application. This typically occurs when we have global objects (such as a Configuration class) or a shared resource (such as an event queue).

4m read

Design Patterns in PHP: Using Factories

The factory pattern is a class that has some methods that create objects for you. Instead of using new directly, you use the factory class to create objects. That way, if you want to change the types of objects created, you can change just the factory. All the code that uses the factory changes automatically.

4m read

Technical Debt

Technical Debt, chances are that you as developer have heard that term at least once before; but ask yourself do you really understand technical debt and when is appropriate to use it.

3m read

5 Rules for Writing Great Commits

One of the most underestimated skills that a developer can have is the ability to make well documented, clean commits. Writing good commits can save everyone involved in project tremendous amounts of time, money and effort

3m read

Burnout

We all been there, feeling tired, bored and even sick of our work; burnout is very common in the tech industry, probably more common that most people want to realize.

3m read

Week 1: 500 Words a day

A week ago I decided to follow the example of the amazing Nathan Barry in order to try kick start this blog and work on a couple of book projects that I want to launch. The basic idea revolves around creating the habit of writing a specific amount of words every day no matter what.

4m read

First steps on HHVM

Currently a few applications are fully supported like wordpress and drupal; more complex applications like Magento are still not 100% with HHVM due to bugs in the HHVM implementation.

4m read

An Introduction to HHVM

In early 2008 Facebook began working on **HipHop**(now HPHP), a PHP execution engine; its original motivation was to convert Facebook massive PHP code base into C++ in order to save resources and increase the application performance. The original release was known as HPHPc a **PHP** to **C++** compiler.