Javascript as Promised

Promises have been there for a while now, officially released in ES6 but already being supported by most browsers before that and/or polyfiled by libraries.
They are a game changer in Javascript, helping to make our code more functional and in result easier to maintain and read.

As Martin Fowler defined them, “Promises are objects which represent the pending result of an asynchronous operation”.

Continue reading “Javascript as Promised”

Callbacks in Javascript

Any usual function call in Javascript is considered a synchronous call. The engine will get to that line, call that function and wait for it to get resolved. When that gets resolved it will continue to the next line. Consider the following example:

function increment(a) {
   return a;
Const a = 0;
a = increment(a); // 1
a = increment(a); // 2

In the previous example, when the engine gets to the first increment, it will wait for the function to be resolved in order to continue to the next call.

Continue reading “Callbacks in Javascript”

Customer Journey Framework

In the age of the customer and the increased market for selling experiences rather than sole services, it is really important to understand the journey users will follow. The service/experience you are selling might be just a piece of that whole ecosystem of services, and just a step in the flow, but understanding the whole picture is a key piece to make any app/service successful.

Continue reading “Customer Journey Framework”

Teach Object Oriented Programming, the Steve Jobs way

I had taught Object Oriented Programming to first year students in the University and explaining them OOP is always a challenge. The irony is that OOP is how we naturally see things, but students usually start learning programming in a procedural fashion and, once they are used to one way, switching their minds can be hard.

I think a great way to explain it is the way Steve Jobs did in 1994, when the Rolling Stone made an interview with him.  All the quote is worth reading so, I am adding it as it is:

Objects are like people. They’re living, breathing things that have knowledge inside them about how to do things and have memory inside them so they can remember things. And rather than interacting with them at a very low level, you interact with them at a very high level of abstraction, like we’re doing right here.

Here’s an example: If I’m your laundry object, you can give me your dirty clothes and send me a message that says, “Can you get my clothes laundered, please.” I happen to know where the best laundry place in San Francisco is. And I speak English, and I have dollars in my pockets. So I go out and hail a taxicab and tell the driver to take me to this place in San Francisco. I go get your clothes laundered, I jump back in the cab, I get back here. I give you your clean clothes and say, “Here are your clean clothes.”

You have no idea how I did that. You have no knowledge of the laundry place. Maybe you speak French, and you can’t even hail a taxi. You can’t pay for one, you don’t have dollars in your pocket. Yet I knew how to do all of that. And you didn’t have to know any of it. All that complexity was hidden inside of me, and we were able to interact at a very high level of abstraction. That’s what objects are. They encapsulate complexity, and the interfaces to that complexity are high level.

–  Steve Jobs

UX Magazine

I am a fan reader of blogs and different RSS sources, I have a long list of blogs in Feedly and I use Flipboard everyday to read different types of news, but most of them about UX. So I decided to create a UX magazine with articles that can help us improve the experience and journey of the products we design.

UX MAgazine


Background image from Luca Mascaro

Design Project Organized

Based on atomic design principles I will share to you a methodology to organize design projects. I been reading about atomic design for a while and I think it is a perfect idea to bring concepts like,  divide and conquer and re-usability to design.  Today I found an article explaining an approach to organize projects based on atomic design and I want to try it!

Continue reading “Design Project Organized”