EDIT: Hello from the future! This post is part of the old blog. That means it may be deprecated. However, I deemed it valuable enough to keep around. The new blog starts here!

Let's continue our trek into On Liberty by John Stuart Mill. This week I'll highlight some things found in the 3rd chapter - "On individuality, as one of the elements of well-being" - that I found interesting. Individuality is (more) common place nowadays, but its extent is questionable; most people want to be original and revel in their individuality (yours truly included), but more often than not we are simply vibrating inside accepted norms. I encourage you to read this by keeping in mind how it applies to tech culture.

Mono-culture is death

So in this part of the text, Mill argues for "originality". Customs are laying waste to originality and crusting the swift flow of ideas. I think he said it best when talking about the growing propensity to customariness (that is actually a word!) of average men:

I do not mean that they choose what is customary, in preference to what suits their own inclination. It does not occur to them to have any inclination, except for what is customary.

By "customary" he is talking about the tendency of people to act based on what they think someone of their status or of a higher status would do rather than consider their own affinities i.e. what is expected of them.

What is so bad about customs? Aren't they the result of social experience? Aren't they time-proven and majority-approved tacit processes? Well, just go back to the last post to see what Mill had to say about blindly submitting to tacit understandings. It's the same idea here. Except that there are also historical examples underlining the dangers of a customary society.

The main example is China. Blessed with major technological advancement, a numerous population and ample resources, it failed to reach the level of dominance that Europe had at the time of Mill. The reason for that were customs that prevented trade and stifled individual growth (even modern books talk about this, see Guns, Germs and Steel. The enforcement of customs and the subsequent mono-culture was so effective that China lost its edge to Europe.

Quick aside here. It could be argued that the problem isn't the notion of customs but rather what those customs entail. If it was socially well seen to trade, then China could have dominated. To Mill, this might be true: some customs are better than others, but to discover them individuality must be allowed and the means imposing those customs so effectively must be prevented.

Ok back on track. With the prevalence of customs for the sake of customs, Mill predicted the gradual deterioration of the pace of progress in Europe (like in China) unless individuality was allowed to grow. Public opinion is the main opponent here and the one against which originality must be shielded or at least the one it should overcome. What's the alternative? The human spirit is crushed by a numbing system where nothing is done because of actual want and everything is done because of fictional need.

The Oppressive Mass

Really Mill goes back and again to this idea of the oppressing mass. And I don't think he means to be condescending by that. He's stating his observation of the society and he promotes individuality as a means to elevate all of society. Individuals can stir the flow to a better direction and the more thoughtful individuals the better.

In modern day terms: he deplores the popularity of Honey Boo Boo, but acknowledges that unless individuals are more enlightened, its popularity won't change as it is driven by mass appeal. Note that his solution is not to have an opposing custom imposed on the public (it bears repeating), but rather have the decision become organic from the individuals themselves.

It's hard to see the impact of our individuality in this era of masses - that applies to both Stuart Mill's time and ours. It is necessary though, says Mill, because our greatest advancements were brought forth by individuals and if we don't allow individuals to be "original" and deviate from the imposed norm than we will stop advancing.

Conclusion

I will stop it here for this week. That was a bit longer than I expected! Quick recap:

  • All of the reasons to praise liberty of expression are valid for individuality.
  • Customs and uniformity stifle progress and the well-being of mankind.
  • If the world is increasingly decided by group-think, it is more important than ever to be original and try new things for the benefit of all.

Ok, chapter 4 will be next. It's about the authority of the state on the individual - I guess he does tackle that aspect! I will try to post something different in between though. Pause this heavy stuff a bit.

EDIT: Hello from the future! This post is part of the old blog. That means it may be deprecated. However, I deemed it valuable enough to keep around. The new blog starts here!

I'm reading On Liberty by John Stuart Mill. And today I make good on my promise to discuss philosophy. Mill has interesting and still applicable things to say about fundamental aspects of society. So going through some of his ideas with a modern look should be enlightening. Don't worry. This jaunt in philosophy-land shouldn't be too bad. It might. But it shouldn't be.

If you are not familiar with Mill, here's a quick recap: he's a 19th century British philosopher most known for his treaty on liberty (that's the one!) and for his take on utilitarianism (I might talk about that too... later).

The former is what I want to cover a little bit today. It won't be a review or a thorough summary. It will be a casual cherry picking of the ideas that struck my fancy or ... hem ... highlights if you will. Hmmm my titles are sometimes meaningful. And yes, as the title implies this will be a multiparter. I am about halfway through the book but I will only cover things in the first two chapters (and since one of them is the intro it won't be very much).

Oh and disclaimer: I am an amateur and not an expert. I am doing this for fun!

Let's start

Obviously this "On Liberty" is about liberty, but it's about social liberty and not about "Liberty of the Will". "Liberty of the Will" asks if everything is pre-ordained and those sorts of questions. "On Liberty" isn't about that. It's about liberty in the context of society. How much authority can be imposed on the individual and how much leeway does the individual have? Answering this is the core of the text.

If we look at history (and even up to modern days), the problem of the tyranny of authorities comes up often and pits itself against the liberties of the individuals. But beyond the usual places where this occurs, Mill notes that this friction exists outside totalitarian and autocratic regimes and finds its way in democracies.

There is of course the tyranny of the elected majority. The people having voted for the minority are subject to the decisions and laws of the majority. Rules inscribed in the legislative process attempt to attenuate the effects of a lopsided government; the details of their implementation is debatable, but they serve a purpose ... a priori.

Mill does talk about the authority of the state... as an example. It's not his main focus (at least as far as I've read). The political debate is only a byproduct of what he deems of more importance. He's more interested in something wider that also englobes a far more insinuous kind of tyranny. And that tyranny is ...

The Tyranny of the Social Majority

By "Social Majority", Mill is really referring to society outside the democratic representative body. An individual might be completely exonorated from child pornography charges, but his or her social reputation has been irrevocably nuked. In any kind of grouping, tacit rules, understandings and opinions establish themselves. Those are (among others):

  • Moral frameworks : what most people deem "good" or "bad"
  • Technical frameworks : the technical 'truths' held by the community e.g. 'tools / techniques that any real X uses' where X is your choice of job title
  • Expectations
  • Mores
  • Implicit practices

Anyone or any subgroup who is not 'in' on these cabalistic procedures or who decides to challenge them (sometimes unbeknownst to themselves) are exposed to ridicule, shunning, exclusion, reputation smearing and other tactics. Yep, Mill was saying that. I am pretty sure the software development world provides rather flagrant examples of this.

Sure, laws are sometimes appropriate to protect the individual from the social backlash triggered by some breach of this mystical "norm", but really it is often more appropriate to deal with these things outside of the law (no... not that way). They can be dealt with by civility and openness to discussion.

Mill's view is that these dissenting opinions are actually really crucial to enrich and empassion any intellectually inclined person - read: anyone that aspires to really do anything in this world. That's why expression of opinions is so important he argues. His argument is simple. It centers on 4 straightforward key points (and those are the last meaty points of this post):

  1. Shutting down differing opinions assumes infallibility of one own's or of the prevalent opinions. The challenging opinion might be true, don't you know.
  2. Even if the challenging opinion is false overall, it might hold parts of truth that the prevailing thoughts are missing. "This hotdog is disgusting... but the bun is tas-ty."
  3. Even if the challenging opinion is actually the whole truth, it can't expect to take hold and be understood unless it is debated against the other opinions. It needs to live on its own and be shared and discussed by multiple minds. Let it fly on its own.
  4. Finally and consequently, the meaning of a doctrine and its vibrant application will be wiped out with time unless challenges keep it alive and evolving in the minds of Men. Mill compared the nature of Christianity when it emerged in the Roman Empire to the modern day one (modern to his day, but the comparison holds). Just compare the evolution of any organisation that shuts down opposing views. The before and after is not always pretty.

The ability to express dissenting opinions or, as we will see, do things outside of the expected norm is a boon to all who strive for improvement. We lose so much by bullying others into complacent uniformity - even if they are admittedly wrong. It's the bullying and exclusion that is wrong ... and the complacent uniformity I guess.

Mill emphasizes that we need true and civil liberty of expression to be better persons.

Conclusion

Ouf, that last part was a bit preachy. Sorry about that. Anyway you got my highlights of Mill's chapter about the need for liberty of expression.

In future weeks I will tackle the next chapter: his defense of the need for individuality.

EDIT: Hello from the future! This post is part of the old blog. That means it may be deprecated. However, I deemed it valuable enough to keep around. The new blog starts here!

Initially this post was going to be about education. The educational system that is. Given that there was a lot of attention drawn to the subject in the past few months in Quebec, I thought it would be timely. But then I'd be sucked in that debate. Ugh.

Further reflection convinced me that the crux of my thoughts centered on learning - the process rather than the system. So that's what I will write about.

In particular something from that presentation by Steve Klabnik got stuck in my head. One of the differences between the humanities and the more sciencey disciplines is the process of learning he highlights. Memorization of theorems for math, refinement of understanding for literature and philosophy. He then suggests turning towards the humanities to gain something from them.

Strangely enough - and maybe it's because I am an avid reader - programming or engineering was always a refinement process for me. And when I write 'always' I don't mean that I've consciously approached learning this way all my life. As a matter of fact I only came to this conclusion after watching that fascinating talk. Unconsciously I used and am still using my approach to humanities as the foundation for my approach to engineering.

Repetition

Repetition is the mother of studies (repetitio est mater studiorum). I rarely fully grasp new code I read and I rarely remember the way to code novel things. That is, until I have been exposed to them repeatedly. More than multiple times. Multiple multiple times. It's an incremental process and a pattern matching process for me.

Let's take an example. The first time I wrote a Simple TCP Server:sup:TM, I was basically gluing together black boxes of which I had knowledge only of their names - I barely understood what they did and how they did it. Streams? What are those? Wait, you mean this program goes into an infinite loop? Isn't this a bad thing? How do we stop it or how do make sure it never stops if that's what we want? Threading? But I don't know anything about threading yet (yep, the parallel course is after the networking one)!

To answer those questions I consulted some books, looked at some notes and went on some pilgrimage to the oracle of Google (see what I did there?). Oh, ok the program has to listen continuously. Streams are pipes of bytes. Ok. Ok-ish rather.

Then time passes. And the next time I have to do something similar I go "Wait, what are streams again?". Pipes of bytes? That doesn't sound too realistic. What are they really? Hit the books, investigate the suspects, bring some small evidence on the table and everything is settled. Oh. Ok. They are buffers. Everything is settled. Or is it?

Then time passes. And the next time around the same thing happens. With each repetition my knowledge of the technology deepens.

Doggy bags

I guess some people can just gobble the new influx of information in one sitting. I play with my food. I leave it in the refrigerator and come back to it later. That's my way of coping with the insane amount of data that is thrown at me daily. Sensory overload: ugh... must... put... in... doggy bag...

I did used to try to take it all in, but it just didn't work. After hours of reading I wouldn't know where I started. The terms would be just as muddled in my mind and I wouldn't have written a single line of code. Then I would get depressed. How come can't I write a Simple TCP Server:sup:TMin one go like it seems everybody else is doing? Well, simply because it's probably not how everybody else is doing it.

Here is the heart of this essay: if you feel overwhelmed/depressed because you can't 'achieve' (what a loaded word!) certain things, overcome them by erosion. Reduce these problems that may seem trivial to others to a size you can manage and repeatedly attempt to solve those smaller parts. Those problems will stay the same with time, but you can grow and tackle them again and again and again. Learning is a lifelong process. Nobody gets it one go.

You just gained a level

If you try the same thing again and again expecting different results you might be insane as the saying goes (side-note: there seems to be uncertainty as to whether or not Albert Einstein actually said that). This is why you should try to improve your approach gradually.

Once you solve a little problem, the knowledge you gained might be reapplied to solve another little problem. Like dominoes you will see on the long-run your problems start to fall and new ones, much more complicated and interesting ones appear. And this gradual process continues. It's a long-term game and that is why you have to stick to it and persevere.

I think you can look at this tactic suggested by Steve Klabnik as something to tend towards over time. Min-maxing immediately and all the time is hard especially since we are not rational beings. You need to acquire experience before you can level up - any good video game will tell you that!

Conclusion

So what was my point? An approach that is working for me to learn and still accomplish things without being overwhelmed by the pressure to achieve all the time is, as you've guessed from the title, the kaizen approach. Repetition/re-exposure of/to small manageable tasks with continuous improvement is basically the kaizen approach. It's an approach popularized in Japan but not so much in practice elsewhere though (in the same conditions) that helps me a lot and could help you.

Also Steve Klabnick is an interesting guy. You should maybe read/listen to what he has to say - I don't necessarily agree with everything he says but it always makes me think and his tone is not condescending or overly obsequious. It's good stuff.

Anyway, just keep trying to be better, but at a reasonable pace that fits you.

EDIT: Hello from the future! This post is part of the old blog. That means it may be deprecated. However, I deemed it valuable enough to keep around. The new blog starts here!

Yay! One year has gone-by and the blog is still standing!

Let's look at some numbers:

  • 43 posts including this one.
  • 8 posts in French
  • 3 longer, essay-like posts
  • 3 #challenges (+1 #challenge edit)
  • 49 git commits
  • 15 categories

The first goal was to improve the site every week. I think that one can be checked off positively. 43 posts out of 52 weeks and 49 git commits are good enough for me.

I also wanted to have a blog post in French every ~4 posts, but that didn't really turn out that well. This goal definitely needs more work on my part.

The third challenge was to learn Ruby which I did in some sense by building a useful sinatra website. So I am pretty much done with this one.

And now for the future. Instead of '#challenges' I will have simple goals. What I had in mind for #challenges turned out to be too fancy (I had a lot of ideas in mind but it was just too complicated). Just having goals is good enough for me.

So the goals:

  • Post every week
  • Post essay-like posts more often
  • Work/complete a side project

I will still post something every week or so. Doing that all year long kept me sharp and continuously learning. I've definitely learned a great deal from this and I intend to keep on this path. I won't necessarily update the site's code as often though since it's getting to a point where I am satisfied with it. The focus will be on lengthier and more thoughtful posts (hopefully ;) ).

That's so that I can focus on side projects. I am slowly but surely working on a python pet project right now and I already have another project in mind. By spending more time on them, I hope to add a projects section to the site and maybe post some stuff there.

So that's that for this year. Let's carry on!

EDIT: Hello from the future! This post is part of the old blog. That means it may be deprecated. However, I deemed it valuable enough to keep around. The new blog starts here!

Beauty is not something we normally associate with software. Or at least that was the case until recently. There seems to have been in the recent years (or maybe even just months) a growing emphasis on "beauty" in the software world, but this beauty hasn't expanded everywhere... yet.

You have projects like LightTable or requests (or any of Kenneth Reitz's projects for that matter). You have languages like Ruby or Python (and their subsequent impact on other languages). You have tools like Sublime Text 2 (it's more than beautiful, it's sublime!) and oh-my-zsh. You have more and more blog posts and/or thought devoted to the subject.

(Don't worry. I won't follow by "but what is beauty?". I mean come on, read Baudelaire or whatnot and find out for yourself.)

I actually think this emphasis is a good thing. I really wish it's not just a fad but a new criterion for Good Softwareâ„¢.

What I want to get at though is a weird thing I noticed about all of that. It's not the binding thread or anything like that, but rather just something I've noticed. It seems, whether you are a Mac person or not, that Apple has fuelled this.

I think all the things I mentioned above are demoed on OSX machines. I am not a Mac person myself so I don't think I have a bias regarding that. It simply seems like Apple emphasizes 'beauty'. The typography, the colors, the performance, the look, the applications - just look at this, it looks nice. Everything seems to just strive to be beautiful.

I know there are a lot of reasons behind why Apple is this way or why it is in great part perceived this way. But I am not here to talk about them really. I want to talk about the OSes I actually use - Windows and Ubuntu.

Today I specifically want to look at Ubuntu.

Ubuntu is not exactly pretty. To be frank most Linux distributions are not pretty and prettiness was definitely not a priority in their conception. Again, I think this was true until very recently. Now there seems to be a desire to beautify Ubuntu. There is this wave of streamlining that Ubuntu is surfing on (with others like Google). Focus is on one graphical interface, on a continuously stable build, on a more unified user experience.

This has to improve even more though. Ubuntu is just as powerful a development platform as OSX. I want to see more videos showcasing a sleek app running on Ubuntu or another open-source platform instead of always seeing it run on OSX. If we want to see open-source grow and thrive it has to be compelling, even delightful.

Maybe some big-bearded people will scream heresy when mentioning the need to have beautiful application, but I am not saying to forgo usefulness and stability. There is probably a way to run shell regular expressions without stabbing your eyes out. I am pretty sure that would benefit us all. Also as seen in Kenneth Reitz's work, APIs themselves can be beautiful.

Incidentally I think the open-source nature of Ubuntu might hinder it a bit in this aspect. When issues like this are raised, the responses often treat the symptom and not the root cause: "Sure you can use colors in vim on your Debian server. You just have to edit these config files , but beware of the version of tool X you use because then you have to use tool Y or ..."

It's messy. It's not pretty. Let's try to make it a bit more beautiful.