Design and Delivery

For many things, function is more important than form. But in today’s busy world, we seldom have time to investigate the function of competing products. That’s why we use the form as a way to judge function; in other words, we judge the book by its cover.

That’s why, in terms of making a product, it’s important to consider both the design and the delivery. The design of a product will determine what it’s used for and how useful it is, whereas the delivery of a product will determine its uptake.

Delivery should complement the design. For example, a word processing product should look like a word processor. There are certain motifs that humans expect from products of a particular genre, and without good reason, one should not deviate from those motifs.

At the same time, design must complement the delivery. Features that are hard to use or difficult to access from the UI should be given a lower priority than features that will be centrepieces of the UI.

It is this latter point that most products fail to achieve. Developers have a natural aversion to letting the delivery drive the design. We have an idea in mind of what the product should do, and what it shouldn’t. We think that the UI should match that, and we reject that we should match what our product does with the UI.

But delivery is just as important as design. So it makes good business sense to let it take the front seat once in a while.


CS Club Resources

For SJAM CS Club, from 2014 to 2015, Ian Fox and I created a series of lessons to teach introductory computer science to high school students. These resources for CS enthusiasts are now available to the public.

I hope this is useful to other CS clubs around the world that target high school students. I also welcome any suggestions for improvements to the material.

Flag of France

Je suis français

In the wake of widespread terrorist attacks in France, I stand in solidarity with the French people.

Fundamentalist Islam, like fundamentalist interpretations of any other religion, is fundamentally harmful for society. I am strongly in favour of holding to one’s convictions. But when holding to those convictions involves the slaughter of innocent civilians, then those convictions are harmful. And society must move in a direction that eliminates those harmful convictions.

Whether this must involve violent retaliation is a difficult question that I can’t claim to know the answer to. But doing nothing, as if there is no problem, is not a viable option.

Starting with Setting

My procedural novel generator (see also part one, part two, and part three) has now been augmented with some rudimentary support for settings, both time and place. An example follows:

Here is a tale from the world of Samoa. Samoa is mostly populated by Italians.

I, Giusa Rosi, am a thirty-nine-year-old woman. I have black hair. I have green eyes. I stand 146 centimetres tall. I am somewhat reluctant to accept new ideas. I am easily disturbed or irritated.

Baffaele Bianchiccino is a fifteen-year-old boy. He has black hair. He has green eyes. He stands 184 centimetres tall. He is very open to new ideas and experiences.

I do not know Baffaele Bianchiccino very well. I scorn Baffaele Bianchiccino. I do not trust Baffaele Bianchiccino.

One thousand three hundred sixty-four seconds ago, I walked to Lita.

Seven hundred fifty-four seconds ago, I met Baffaele Bianchiccino. Then, Baffaele Bianchiccino and I walked to Rovo.

Ten seconds ago, Baffaele Bianchiccino kicked me. I kicked Baffaele Bianchiccino.

Clearly, I have been focusing more on the story itself rather than the writing style (no serious author would mark up each line with the exact number of seconds ago the event took place).

Unintelligent Design

Like my post on a universal Turing test, this below post originates as a journal entry for my Grade 12 Philosophy class, taught by Brian Wildfong.

Not everyone believes in a supreme deity, but many do. One common argument against the existence of a supreme deity is that the world is imperfect. This is not a bad argument, but it is not a proof. In this journal entry, I outline several ways to reconcile a supreme deity with the imperfections of the natural world.

On April 7, 2014, I attended the Waterloo-Wellington Science and Engineering Fair. Like with previous years, there were many cool projects. One project created a pillow that gradually wakes the user up using a steadily brightening light at a programmed time. Another investigated altering brainwave frequencies using binaural beats, with potential applications in headache and migraine therapy. And another project investigated different means of automated manual pollination, which is important because natural pollinators are going extinct. All these topics will be especially relevant in the future, and several of them may enter the mainstream within a few decades.

One thing that all these topics have in common is that they improve a “natural” mechanism by replacing or augmenting it with an “artificial” one. The natural mechanism is inadequate in some way: I can’t set the Sun to rise at a certain time, the brain is prone to headaches and migraines, and bees are not robust enough to survive climate change and habitat destruction. The pillow complements the sun, the binaural beats influence the brain, and the artificial pollinators replace bees and butterflies. But theist philosophical thought often alleges that an omnipotent planner designed the natural mechanism, and an omnipotent planner would already have considered all possible improvements. Why would humans, who are non-omnipotent beings, be able to improve on the work of a supreme being?

One solution would be to drop a premise: perhaps the planner is not omnipotent. The planner could be likened to a zookeeper, and human beings likened to the flora of the zoo. Although the zookeeper founded and maintains the zoo, the zookeeper does not know about all the animals’ desires and needs. The zookeeper builds a nest for the birds, but the nest may not be the most suitable for the particular birds of the zoo. Those birds may build their own nest, which is better than the zookeeper’s nest. The idea that the planner is not all-powerful is foreign to the Abrahamic religions, but was widely accepted in ancient polytheism. In Greek mythology, for example, not even Zeus—the highest of the gods—was omnipotent. Indeed, Zeus lost to the monster Typhon and only survived because of Hermes’ intervention. In these mythologies, technological advancement beyond even what the planners are capable of is possible. Although humans are individually not as powerful as the planners, humans have strength in numbers.

Another solution is that the planners are indeed omnipotent, but they are not interested in the best possible conditions for humanity; that is, they are not omnibenevolent. There is much evidence that the world was not created as a paradise (the presence of evil, for example), so it would not be unusual for an omnipotent planner to intentionally limit the usefulness or robustness of natural mechanisms. It is also unlikely that the planner is omnimalevolent, of course, because it has not tried to sabotage human technological advancement. Instead, such a planner is a neutral party. One interpretation is that the world was created as an experiment, as a simulation. This hypothesis, called the “simulation hypothesis”, alleges that the universe is just a computer simulation in a higher universe. One compelling argument for this hypothesis comes from Nick Bostrom, who noted that if there is some intelligent life that can survive, and is motivated and able to run simulations of other universes, then a probabilistic argument indicates that it is very likely that humans live in a simulation (Bostrom 1–6). This simulation is probably an experiment, and the goal of the experiment may very well be to observe technological advancement by simulated humans. This interpretation is consistent with the imperfections of nature, because that imperfection may simply be a parameter of the experiment.

Most modern religions today would generally be more comfortable with an interpretation that the planner is indeed omnipotent, but for some reason chooses to limit its own omnipotence. The universe seems to follow consistent rules (the Laws of Physics), and an omnipotent planner would in theory be able to alter the rules. However, this has not happened in recorded history. This is evidence that any omnipotent planner would be intentionally limiting its omnipotence. There are many possible explanations for why such a planner would do this. One reason is that it gives humans more freedom and purpose. The pursuit of a better society and a better life, made possible by consistent physical laws, leads to technological advancement and fulfilment. A world where everything is already perfect would not allow humans to feel fulfilment in any way. In this sense, because humans in a perfect world are slaves, and humans in an imperfect world are free, the omnipotent planner chooses to make an imperfect world and then refuses to intervene. Many forms of deism agree with this interpretation: that a supreme being created the universe but does not actively participate in its evolution (Paquette et al. 156).

Yet another possible explanation for technological advancement is that it is guided by the supreme being itself, like how a teacher would guide a student through a question. A teacher that tells the students the answers without teaching the process is a bad teacher indeed, and equally a supreme being that makes everything perfect from the start is irresponsible. Instead, the supreme being starts from a flawed universe and helps its inhabitants gradually repair those flaws. Many would agree that modern society is better than society 2000 years ago: there is less famine, more peace and tolerance, better healthcare and education, and many more modern comforts. This improvement represents humans learning, guided by a supreme being, on how to achieve a perfect society. In this view, technological advancement is an integral part of that learning.

One of the most important unresolved metaphysical questions is whether a planner exists and what that planner’s intentions are. Although the ability for humans to “do better than God” is a challenge to the idea of a supreme being, there are still numerous possible explanations for why nature is not perfect. It may simply not be able to: the supreme being may be limited in some way. Or, it may be able to but not want to, either because it does not care for human welfare, or because it wishes to give humans freedom, or because it wishes to guide humans through the path to an ideal society. Based on observational evidence alone, it’s impossible to accept one of these answers and reject the others. There is simply not enough evidence either way. If there is a supreme being, it does not seem to want to make its intentions known.

Work Cited

Bostrom, Nick. “Are we living in a computer simulation?.” The Philosophical Quarterly 53.211 (2003): 243-255.

Paquette, Paul G., et al. Philosophy: Questions & Theories. Toronto: McGraw-Hill Ryerson, Limited. Print.


Accountability and the Web

Trudeau Metre (sic, see note) is a new website that aims to hold Prime Minister Justin Trudeau to his numerous promises. This website can be crowd-supported, like Wikipedia is, and can be updated in real time.

The Web is turning out to be one of the greatest innovations in terms of ensuring accountability for our elected officials. I hope innovations will continue, and people will find more and more creative uses of the Web to keep our government accountable for their promises.

Note: From my understanding a more accurate name for this website would be “Trudeau Meter”, with the -er spelling instead of the -re spelling, since even in Canadian English, a measurement device is named a “meter”.

Remember Peace

This remembrance day, as always, Canadians will honour those that died in war. Just one hundred days ago, Canadians were fighting on the front lines of the First World War. Many died for our cause and our freedom.

Indeed there will be many Canadians who have grandparents and great-grandparents that perished during the war, and they will be remembered. But some of those people fought not for Canada, but for one of the axis powers. They no less deserve to be remembered for their heroic acts.

During it all, we must not forget that these men died for a pointless war. These men died because the European powers desired to compete instead of collaborate. The First World War pit heroes against heroes, and many heroes were lost from it.

Every remembrance day, it’s important to remember not just the lives of those who died—the lives taken by war—but also to remember the lives saved by times of peace. Long may peace last for Canada, and may peace come to those places who need it.


Learn to Code

As I mentioned in my post on defence of STEM education, one of the most important skills in today’s world is how to program a computer. It really is a shame how poorly this is taught in schools. An introductory Computer Science course is at least as important as an introductory History or Geography course (and don’t get me wrong, those courses are very important!). It is absurd how many high school students don’t take it.

Generalization is Good

Consider two possible solutions to the same problem. One of them solves just that particular problem, but takes less time and money to do. The other takes more time and money to complete, but solves a class of problems similar to the original. Which is preferable?

Obviously, without more details on what exactly the costs and benefits of each approach are, there isn’t a canonical solution to this problem. However, I will argue that when in doubt, one should prefer the more general solution.

From a purely short-term perspective, the cheaper option probably yields just as much return for less initial investment. But more often than not, the problems in the future will be similar to the problems of today. And a more general solution will save increasingly large sums of time and money.

In addition, a more general solution can be contributed or sold to the public or other organizations who have similar problems. This saves everyone’s time and encourages more innovation.

This, I hope, is a principle that’s easily applied to both life and business.

The Sunk Cost Fallacy

A common economic mistake made by people is the so-called sunk cost fallacy. In everyday life, there are certain cases where this fallacy should be avoided, but is often not. Here I write about certain situations where I did not avoid the fallacy.

  • When walking somewhere, I sometimes find a path that I think could be a shortcut. After discovering that it’s actually a dead end, instead of retracing my steps and starting from the beginning, I tend to continue a fruitless search. Often, I move myself further and further from my target during that search.
  • If I buy a product that breaks down, I often spend some time trying to repair the product instead of throwing it out and getting a new one. This is not in itself a bad thing in itself, but if an initial attempt at repair is fruitless, it’s probably better to give up. Instead, I find myself tinkering with the product to no avail for hours, partially because I don’t want the time I spent to go to waste.
  • When solving problems, I am prone to spend too much time on a path that doesn’t work, and in the end the problem can’t be solved within the time limit. I do this because I feel that I would have wasted a lot of time if I don’t complete the problem the way I began to approach it.

For a similar post, see my earlier post on sampling bias.