The Most Important Concept of Boolean Algebra

When one is introduced to Boolean algebra in high school it is easy to assume that it is quite simple. Things are either true or false? Got it. Let’s move on.

It turns out, however, that it gets a tad more complicated than that, primarily because computers can only do Boolean algebra (processing an electronic cycle or the lack thereof) and everything must be built from that. What results is that you get these really interesting ideas such as K-Maps, which require understanding how binary works. Boolean algebra involves number theory and is actually a vast field.

The most important concept is that you can mimic an OR gate using an AND gate, and an AND gate using an OR gate.

If you NOT your variables before you OR them, then NOT them again, it’s the exact same thing as if you ANDed them. Likewise, if you NOT your variables before you AND them, then NOT them again, it’s the exact same thing as if you ORed them.

Don’t believe me? Create a chart from 00 to 11 and flesh out the table using the psuedocode below, assuming that thing1 and thing2 are of type bool.

! ( ! thing1 || ! thing2 ) == (thing1 && thing2)
thing1 || thing2 == ! ( ! thing1 && ! thing2 )

I sometimes wonder how many self-taught programmers without a computer science background know about this. It’s very important — not just in theory, but in practice. I had a friend who vastly sped up an SQL query by going from an OR gate to using an AND gate — the return set was precisely the same, but it became much faster as a result.

Asking the Opposite

Some truths are controversial. We are well aware of the arguments on both sides, and we have an opinion that we believe is correct.

Other truths are never questioned. Everyone agrees on them. With these, we’ve never considered the opposite, because nobody ever mentioned it.

The interesting thing about these kinds of truths is that since we’ve never questioned them, we actually don’t really have good arguments in their favor — it’s a muscle we’ve never had to grow. We hold these truths to be self evident.

Often, these truths are dangerous, because they may not be as truthful as we think. Questioning everything is the way innovation happens.

Try taking a movie quote and reversing it, and you’ll learn something new about it. Take a conversation you had with your friends this evening, and reverse what they said, and you’ll learn something about the way they think, the way they see the world. Often times the negative space is more precious than real thing. You can paint an beautiful picture by taking a blank canvas and painting a blue sky around an invisible tree.

Deliberate thought is vital in programming. You assume that the user is logged in when that block of code executes, but are you sure about it?

Learning to question everything is a skill that every programmer learns when programming. The ability to extend this to other areas of life, and to have it even if you’re not a programmer, is a trait that distinguishes truly innovative people. It will make you responsible for much original thought. For someone who cares about pushing the human race forward, this is a thing.

On Getting Better at Getting Faster

When you approach a project with the assumption that it shouldn’t take that long, you tend to treat it that way. When you assume a problem has been solved before, you don’t worry about its solvability. You just execute.

The opposite is, alas, also true. If a project is supposed to take all day, or all week, then you certainly won’t allow it to take less than that.

In adulthood, most of us spend the majority of our waking hours thinking about money, whether directly or indirectly, because we’re working. Even if this money is not earned on a hard hourly contract, the number of hours is still of function of how expensive a project is. In essence, companies are billing hourly whether implicitly or explicitly.

When you consider this, the proposition of getting faster is very appealing. And it starts with something purely psychological — your mindset about how difficult your job is.

Why iOS 7 is Skeumorphic, and Why This Matters

Photo Apr 04, 2 50 05 PM

Photo Apr 04, 2 56 01 PM

If something has been built by humans, then there was a time when that thing did not exist. In order for it to become a reality, a human had to daydream. They had to imagine, to think for themselves, about a reality that did not presently exist. Along this process, they encountered many forks in the road, many choices, and they had to make decisions about how their thing was going to appear and perform. Eventually, those decisions define what they are making.

A danger that consumers face is that we tend to not look at products this way. We tend to take things for granted, to never stop and look, to think that that’s just the way it is.

Any portrait artist will tell you that the fastest way to get better at painting faces is to turn your subjects upside down. Then you do not know what you are looking at, so you are forced to paint what you see instead what you think you see. Retraining how you see has nothing to do with visual acuity and everything to do with how your brain interprets that data. It’s a deliberate process that requires conscious effort.

Right now, there is a rhythm occurring between physical and logical designs, and it’s time we started to pay attention.

When Apple launched the latest version of their mobile operating system, they removed the physical wooden bookshelf from iBooks, the green felt from Game Center, and the plastic design from Calculator. There was not a single aspect of iOS that was not touched in this historic transition. By every indication, they moved from a skeumorphic to a flat design.

What does it mean to be skeumorphic? The web defines skeumorphic thusly:

Skeuomorphism is the design concept of making items represented resemble their real-world counterparts. Skeuomorphism is commonly used in many design fields, including user interface (UI) and Web design, architecture, ceramics and interior design.

This is a clear definition, but the problem is that “real-world counterparts” are becoming blurred, and will continue to become increasingly blurred. We are automating and digitizing every aspect of our lives, from our thermostats and microwaves to our watches and cars. What once used to be 100% mechanical hardware is now a combination of more sophisticated hardware and software, and I believe we are only on the cusp of what’s to come.

If being skeumorphic has to do with things pertaining to real life, then iOS 7 is very skeumorphic. The reality is that as user interface design in computer science changes, so do the rest of consumer demands in all verticals.

As consumers, we want everything to feel digital even if it’s essentially physical. Because we are so immersed in our virtual lives, we “pick up” how to use a new product faster if it already speaks our language. Instead of mimicking software after hardware, we’re starting to see hardware mimic software. It’s a fundamental switch in how products are conceptualized, designed and delivered.

This matters because cross-pollination is one of the best ways to hyper-thread your creative fire. When you’re entertaining multiple threads of ideas and looking at physical objects with an open mind, stuff that has nothing to do with your tech job, you’ll get new ideas. If you’re a web or iOS designer and looking to create a series of buttons, you can look a lot of things from that microwave photo. Look at the design principles the microwave sports:

  • Keep the background transparent unless the button is important. If it’s important, give it a background, and make it bigger than the others.
  • For a table of buttons, make the vertical spacing between buttons less than the horizontal spacing.
  • Borders are great, but make them lighter in value and weaker in hue than their corresponding text.
  • A big number (or icon) with small text underneath it is timeless.

Next time you’re viewing a physical interface, ask yourself, “Have I seen a digital interface that resembles this recently?” Chances are that you have and you just haven’t noticed. Great artists steal. A clever theft is less noticeable than a blatant copy. We need to be getting good at the former because our relevance depends on it.

Skeumorphic design is not going away. It’s just changed its face, subtly attained a new look, and is now sitting quietly to see if anyone notices.