computational thinking

about me

My name is Abel Sanchez, I do research and teach at MIT

recent public projects

Status updating…

found on

contact at


Cloud Abstractions

- - posted in cloud, scalability

Many of us are working on code bases that require high scalability. In this context, there are a couple patterns I have observed over the past year that appear to be formalizing. Both of these could impact our work.

The first is Docker. If you have not used it, the platform abstracts the OS and greatly simplifies deployment. It provides the advantages of a VM, without the weight/size. If a virtual machine is applications+libraries+operatingSystem, then docker is applications+libraries.

The second pattern is abstracting the datacenter into one machine. There are two successful projects. The first started at Twitter, Mesos. The second is from Google, Kubernetes, leverages Docker.

Both Mesos and Kubernetes are open source.

Yesterday Google announced an integration of Mesosphere and Kubernetes. They are focusing on providing the scale and horsepower, previously only available to Google, to the open market. That is, the new startups will have access to the same computing resources as the big players.

Food for thought.

Manifest Thought

- - posted in learning, programming

One of the most prodigious powers in science fiction is the power to “manifest thought”. With computer programming, “The magic of myth and legend has come true in our time”.

Yet, the program construct, unlike the poet’s words, is real in the sense that it moves and works, producing visible outputs separately from the contruct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation at the keyboard, and a display screen comes to life showing things that never were nor could be.

Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men.

Fred Brooks The Mythical Man Month

The Particular Becomes the Portal on the Transcendent

- - posted in learning, programming, teaching

In a completely different context to programming, I happened onto an interview that made a great point on abstraction versus the problem. When it comes to teaching programming, I completely agree.

BILL MOYERS: You know, Campbell told me that that was the great appeal to him of Carl Jung. That Jung wrapped his psychology into the stories of what had actually happened in his life and, and in the lives of the people sitting in front of him. And if he could get somebody into a story, he knew that person would discover who he was more likely than if he dealt with just abstract ideas.

MARSHALL GANZ: Boy, it is so true. It’s the particular. See, we often think, we associate understanding with abstraction. It’s just the opposite.

BILL MOYERS: That’s right.

MARSHALL GANZ: The particular then becomes the portal on the transcendent, because it’s through the particular experience that I’m able then to communicate the emotional content of the value that is moving me.

Nothing Can Serve as Money Too

- - posted in money

I have been enjoying, “The Ascent of Money: A Financial History of the World”. I was struck by the following section:

money is a matter of belief, even faith: belief in the person paying us; belief in the person issuing the money he uses or the institution that honours his cheques or transfers. Money is not metal. It is trust inscribed. And it does not seem to matter much where it is inscribed: on silver, on clay, on paper, on a liquid crystal display. Anything can serve as money. From the cowrie shells of the Maldives to the huge stone discs used on the Pacific islands of Yap. And now, it seems, in this electronic age nothing can serve as money too.

As bitcoin evolves, I look forward to the evolution of electronic age of money.

Imitate Proudly

- -

We are often given negative feedback on imitation. When it comes to learning to program, Salvador Dali said it best:

“Those who do not want to imitate anything, produce nothing.”

As you get started programing, imitate proudly, it’s the quickest way to learn.

Lightning Bug and Lightning

- - posted in documentation, learning, naming, programming, teaching

Mark Twain famously said, “The difference between the almost right word & the right word is really a large matter–it’s the difference between the lightning bug and the lightning.”

When it comes to naming variables, objects, functions, classes, and namespaces, the same applies.

Clarity and expressiveness come with experience. However, the beginner can still learn a lot by looking at conventions, best practices, reading code from peers, and thinking hard about a word that best express the programmer’s intent.

Password Firewall

- - posted in authentication, firewall, passwords, security

I have been working on Negative Authentication(NA) for the past year. NA is an approach that utilizes a form of complement profiles which resembles the censoring and maturation process of T-cells in the immune system.

Practically, NA is an additional invisible layer of password protection to the user. You can think of it as a mathematical plane that leaves small openings for the real passwords and blocks the rest.

In a way, Negative Authentication is a firewall for passwords, a way to detect the anti-passwords.

Below is a short video overview

New Google Maps Are Silky Smooth

- - posted in Maps

I just tried the new Google Maps. Two words, “silky smooth”.

My likes:

  • Silky smooth panning/zooming
  • Significantly faster load times
  • Street level photos
  • Mapping of photos to locations
  • Modern control icons (the older ones feel dated)
  • Good use of transparency and color palette
  • Improved street and business data

I am not going back.

Make Learning Human

- - posted in learning, programming, teaching

As a teacher, your first and most important goal is to capture the attention of the listener. If you fail, nothing else will matter.

The techniques vary from speaker to speaker but invariable they comprise volume, timing, suspense, and tone. For example, a colleague once told me, “lowering your voice is like using bold on text”.

When it comes to writing, a similar process takes place. I have been reading, “Unless It Moves the Human Heart: The Craft and Art of Writing”. Much like in teaching, if we fail to make the human connection, we loose our audience.

Khan was on campus recently. In one of his answers, I heard the same argument:

I cannot understate the fact that I was making it for my cousin. The fact that I was their tutor, that I had a human connection when I was making the videos. If I were making these for Bill Gates, I would have messed up. I would have fallen into the trap of high production. I would have needed a team of script writers, a team of computer graphics engineers, and voice over actors. The output of that process looks great but but does not feel very human.

Khan Key to Success