How to Make Science Interesting in School

The question occurred to me to ask a friend of mine, "Why do you find biochemistry interesting?"

I would imagine he might answer, "Because I find antiviral resistance, and M2 ion channel blockers interesting."

"And why do you find M2 ion channel blockers interesting?"

Would he, I wonder, answer, "Because I find biochemistry interesting." That would be a completely circular answer, of course, and so it makes me think that perhaps people find science interesting if they find the underlying thing being studied interesting.

That is, I find physics interesting because I find how gravity works, how photons travel in space, how levers and gears work, etc, interesting — not the other way around.  This shouldn't really be a surprise, unless we consider the question in terms of an educator trying to interest students in a subject.


Moving between windows in Emacs: windmove-default-keybindings

I never used to have such a big monitor, so I made use of switching between buffers a lot. A quick cntl-x-b, etc.

With a big monitor, I find myself using Emacs (in Ubuntu) with the outer window (the thing Ubuntu calls a window anyway) enlarged to full screen. Then within this big window frame, I'll split the frame into smaller "windows" (what Emacs apparently calls "window" I guess) with a cntl-x-2 or cntl-x-3.

You can then switch to the next window with a command like cntl-x-o, and close the window with cntl-x-0, or close all other windows with cntl-x-1. Since I never had more than two windows open in the frame, it never occurred to me to care how to make switching between more windows more efficient.

Now that I do...

Just add (windmove-default-keybindings) to your ~/.emacs and you'll have a nice shift-(arrowkey of your choice) keybindings to move between windows!

More info at http://www.emacswiki.org/emacs/WindMove

Why oh why did I not find this out earlier? :)


Professionalism versus Passion?

What is it to be a professional, and is passion enough for doing a good job? What do those words mean anyway? That's what came to mind from reading Mark Dennehy's The case against passion and Soon Hui's Passion Does Not Mean Total Indifference of Other Things.

My first response would be that passion is not enough, and that professionalism is required above passion. Passion is necessary, but insufficient (and same for professionalism). We should be careful with first impressions though, so let's take a closer look at what it means to be passionate, professional, or both.

Book Review: Introduction to Algorithms

Introduction to Algorithms, by Cormen, Leiserson, Rivest, and Stein, is a good introductory textbook to algorithm design and analysis for the undergraduate student in their first course on the study of algorithms.

It is a good learning text in that the writing style offers more explanations and has a more "conversational" tone (as compared to other texts that are much more succinct). Having said that, this is still a textbook and assumes students to have a fairly decent math background and ability to think in a mathematical manner.

It would not be far off to say that this is more of a math text than a programmers' text. That is to say, this is not a cookbook with code that can be copied to make things work. This is a text to help students learn to think and reason about algorithms.

For a first course in formal algorithms for undergraduates, this would be a good text. If you want a more rigorous, mathematical, and succinct reference or introduction, Algorithm Design by Kleinberg and Tardos (which I have reviewed) may be a better fit for you.


CiteULike: Tags feature upgraded, and a word on the semantic web

So there I was using CiteULike yesterday as I normally do when, maybe half an hour later, their UI was upgraded! What a pleasant surprise, because the tags feature upgrade has finally made it perfectly great to use.

Suppose you have already added an article into your CiteULike library and you went back to edit its metadata, there is a field for updating the tags for the article. It used to be that you had to blindly guess what tags you have previously used, as it didn't show such a list, which was a major impediment to using tags at all. As soon as you started using more than maybe ten tags, the entire tags system became unwieldy because of this.

Now, not only are the tags you've previously used listed, but auto-completion is also there. Further, when it shows a list of completion suggestions, it even lists along with each suggested tag the number of articles with that tag!

That makes me very happy. :)

I know, I know, the entire idea of using tags is actually rather problematic especially when the possible tags is not constrained by a defined vocabulary and so on. Sometimes it's a bit of a drag in terms of effort to have to tag anything at all (and I notice many CiteULike users use few or no tags). But that's the web 2.0 world we live in, where true semantic web-ness just doesn't exist because computers do not understand meaning.

Employing a system that automatically tags articles doesn't actually solve the problem entirely (and search engines are essentially an automated system that tags the articles showing up in your search with the "tags" that is the words in your search query). It doesn't actually solve the problem, no matter how good a machine learning system is at associating a set of sentences (in the form of an article) with a set of keywords or tags, because the system is still just associating or translating a set of symbols to another set of symbols without a clue what the symbols mean.

Oh well, that's why I'm doing the artificial intelligence research I'm doing now, because words have meaning.


Easy Way to Building Clojure Projects: Leiningen

A good intro to using Leiningen to build Clojure projects without having to deal with all the classpath issues in Java: Building Clojure Projects with Leiningen.


Single Quote, Double Quotes in LaTeX

To typeset quotes in LaTeX is ordinarily very easy. For single quotes, the opening quote is:
and the closing quote is:
For double quotes, the opening quote is double the single opening quotes:
and the closing is obviously double the single closing quotes:

All that is fine until you try to do a nested quotation, say to do something like this:
 "'Hi' is single quoted, as is the following word: 'Bye'" said the typesetter.
If you try to do something like this (wrong):
```Hi' is single quoted, as is the following word: `Bye''' said the typesetter.
LaTeX would typeset it to something like this:
"'Hi' is single quoted, as is the following word: 'Bye"' said the typesetter.
which is wrong in two ways: (1) the spacing between the nested quote and the outer quote is wrong, and (2) the rightmost two quotes are typeset reversed.

The proper way to type this in LaTeX is this:
``\,`Hi' is single quoted, as is the following word: `Bye'\,'' said the typesetter.
The \, macro expands to \thinspace, giving you the correct amount of space between the nested quotes. Note also that the symbol ` expands to \lq, and the symbol ' expands to \rq.


Whitelisting Ports in MoBlock on Ubuntu Linux

Bottom line: Instructions for white-listing ports in MoBlock (at least on Ubuntu Linux) is here.

You know, when I used to use a Mac, I had Little Snitch set up to keep an eye on outbound network traffic. Now on Ubuntu Linux, I use MoBlock with the Mobloquer GUI control program to sort of keep an eye on outbound traffic.

"Sort of" because all I've done is select certain lists of IPs to block (hasn't hurt to block the ones to known malware servers, for example). It's not as informative or as easy to use as Little Snitch, but the alternative is to use nothing (and keep factors like ease of use, time to set up, etc, in mind).

Unfortunately, it also blocks a bunch of ports I need for my messaging and email programs to contact the servers.


Book Review: Algorithm Design

Algorithm Design by Kleinberg and Tardos is a good handbook on algorithms, the best I've seen so far in terms of balancing theoretical understanding and practical concerns. Examples that are given often have a realism lacking in other texts, showing a concern for practitioners who may want to see how these algorithms could actually be useful.

On the other hand, the succinctness of the writing style meant I had to read passages several times to understand fully the concepts being explained (ie, it required a close reading, as we might say in philosophy writing). This is, I think, a good thing: rereading well written passages is more effective than reading repetitious passages once through anyway.

Especially in the chapters regarding NP completeness and approximation algorithms, the "tone" of the writing definitely turned much more mathematical, and that's especially when a good mathematical background is helpful.

Largely because of the succinctness of the writing style and assumed mathematical background, I would say this is more of an advanced upper-undergraduate level textbook, or a good introductory text at the graduate level. I'm afraid at the introductory level for undergraduates, this text may serve more to instil confusion (a better text at the undergraduate introductory level may be Introduction to Algorithms, which I also reviewed).

If you're looking for an advanced algorithms textbook, I would definitely recommend it.


Songbird Music Player on Ubuntu

(Edit 2010-09-17: So Songbird for Linux has been dropped. See Songbird for Linux dropped, Nightingale picks up. Nightingale has nothing downloadable yet either. Anyway, the point is, there is no point. Rhythmbox Music Player has become good enough now and I've since stopped using Songbird.)

The music player situation on Ubuntu Linux is, unfortunately, a little fragmented and a bit confusing for people who are used to programs like Apple's iTunes.

Of all the choices available, however, Songbird is very promising and is the best I've found for organizing and playing a locally stored library of music files. It has a pleasing UI, familiar to an old iTunes user, although it lacks features for effectively organizing podcasts and streaming music (it plays them fine in the sense that you could manually add them in to play). There are add-ons for streaming music sites like Last.fm, but apparently not for organizing manually added streams.

I hope it'll develop to the point where it'll be like iTunes of, say, around 2008, just before all the iPhone support got stuffed into iTunes (only because the iPhone related features are of indifference to me).

Having said that, there were a number of issues I had to deal with in getting Songbird to work, so here's my laundry list of them and the solutions I found (recorded here for my own benefit):


Book Review: Artificial Intelligence: A Modern Approach

Artificial Intelligence: A Modern Approach by Stuart Russell (Professor of Computer Science at University of California,
Berkeley) and Peter Norvig (Director of Research at Google) is the standard introductory textbook to AI theory and application at the undergraduate level.

It's friendly in the sense that it requires less mathematical maturity, and assumes less mathematical background. It does have a very comprehensive and broad survey of the entire field, which is good in that it gives the student a sense of the entire field, but bad in that there is much less depth in any single area.

If you are looking for a single good introductory textbook to get started into research, there are probably better alternatives (such as Pattern Recognition and Machine Learning, which I also reviewed). But if you are looking for a single good introductory textbook to understand the field better, and not necessarily to prepare to do original research, this is probably a great book to start with and I recommend it highly.

A word of caution of the term "artificial intelligence" though. Much of the algorithms and techniques referred to in this text are probably more accurately described as machine learning or statistical pattern recognition algorithms. If you are looking for a book on artificial general intelligence, you will be disappointed.


The Wonders of Ghostscript: Merging or Joining PDF Files

I wanted to merge some PDF files together so I could store it online for myself. I perused the Ubuntu OS manual and found this very useful reference to use Pdftk, except it didn't work because the files were wonky (and I had install Pdftk to find out...).

In the same entry was the suggestion to use Ghostscript:

gs -q -sPAPERSIZE=letter -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf in1.pdf in2.pdf in3.pdf ...

Works perfectly! And I had Ghostscript all along too.

Oh, and everything has to be done on the command line, in case I'm wondering...


Book Review: Pattern Recognition and Machine Learning

Pattern Recognition and Machine Learning is by Christopher Bishop (Chief Research Scientist at Microsoft Research Cambridge, and Professor of Computer Science at the University of Edinburgh).

It's a heavy read on machine learning algorithms in that it is very math intensive. It would not be too far off to call this an applied math textbook rather than a computer science textbook, and it is definitely aimed at the graduate level student with a good amount of mathematical maturity.

Having said that, if you are a machine learning researcher in need of learning all sorts of mathematical details of the algorithms you are using, this book is a good place to start. It is by no means a complete reference, but certainly a good introduction at the graduate level.

If you are an undergraduate student, there are other textbooks available that might be more suitable (such as Artificial Intelligence: A Modern Approach, which I also reviewed). If you just want cookbook style text on the libraries you could use to employ machine learning algorithms, there are probably other resources that would be more suitable.

If you are starting out in researching machine learning algorithms, or are using it as a large part of your computing science research, this is the right book. Just be prepared to learn and use a lot of math!


Mouse Speed and Sensitivity Settings in Ubuntu

This is a story about the xset utility, that ends with a twist! And it's about my trackball, not my mouse.

I have a Kensington TurboBall Trackball, the best trackball on the planet (so I say), but had an extremely slow speed when I used it in Ubuntu.

You'd think to fix that, I'd just have to open up the Mouse System Preferences panel and increase the speed or sensitivity. Well I did that, and nothing happened. Who knows why.

So I started looking through the Ubuntu OS manual (ie, Google) to see if there's a way to fix this. I come up with things about changing a bunch of code in the xorg.conf file, but I really don't want to have to do that. Not that I couldn't, but for me, the less fiddling around with the configuration files the better. Plus I read somewhere it wouldn't work with the latest Ubuntu releases as it's using the HAL for that sort of stuff now. More config files I don't want to fiddle with.


Book Review: "Coders at Work"

Coders at Work is for programmers and computing scientists interested in how some very well known coders think about their art or craft. It is a series of interviews of some of the top coders of our time. It includes their thoughts on some very controversial issues on coding style, algorithm development, testing, documentation, etc.

It's a great book to read to get a sense of how some of these people think about those issues, and it's incredibly rewarding if you already know the names of some of the coders interviewed. I was especially excited to read the interviews of Peter Norvig, Guy Steele, Ken Thompson, and Donald Knuth. The other interviews were great too, and better if you already know something about those people.

Now just because some of these people think one way or another on an issue doesn't mean I would go and imitate them. The main thing is to read their explanation of what they're thinking, the why's and how's, and examine it to understand how they're thinking about an issue. Now how they think about issues — that is possibly worthy of imitation.

Definitely recommended for programmers and computing scientists wanting to improve their game!


A Little Knowledge is a Useless Thing

So the Autism-vaccine study has been retracted by the medical journal, The Lancet. It was the study that had led to the resurgence of measles in Europe by influencing parents to avoid the measles, mumps and rubella, or MMR, vaccine.

First, bravo on retracting that study. It's great to see irresponsible and dishonest research conduct meeting its just consequences.

The entire incident does, however, make me wonder whether it's a very bad thing for people, and non-scientists in particular, to believe everything that's published in a journal.


Book Review: "Hyperspace: A Scientific Odyssey Through Parallel Universes, Time Warps, and the 10th Dimension"

Wow, what can I say about this book? It inspired me to learn more science, specifically physics. Hyperspace: A Scientific Odyssey Through Parallel Universes, Time Warps, and the 10th Dimension has vivid analogies that I was able to, more or less, understand when I was about 11 years old.

The thought experiments Kaku talked about made me imagine the possibilities of the universe. It's a great book to get kids interested in science since it explains the intuitions without being stuck in the precise details.

Intuitions of what? Well, intuitions of space, time, and ultimately spacetime of more than three dimensions. It has nice thought experiments to help develop intuitions of what it's like to have more than three dimensions. Kaku also explains the intuitions around string theory, which is fascinating as well (even if it turns out that string theory is wrong, it's still fun to imagine the universe in a different way).

A great book, especially for kids. Highly recommended!


Open Recipe: Why Open Source Methodology in Science Matters

If data is the ingredients, then methodology is the recipe. Previously in Credibility of Science and the Freedom of Data, I raised the issue that even so-called raw data is often interpreted data, just as the temperature reading of a classic mercury-in-glass thermometer is really an interpretation of the height of the column of mercury. Modern scientific instruments wrap a lot of interpretations of the raw sensor feed up before presenting anything to the user as "raw" data.  But why does this even matter?

A key component that makes science so effective for discovering useful properties of the world is that experiments can, and are, repeated to ensure discoveries are in fact consistent properties of the world rather than the result of mere chance or accident. Being able to repeat some procedure to get back the same or similar result is a very important and useful feature of science. It is like having a recipe that claims to produce a great souffle: we'd have to verify the claim by repeatedly baking souffles to see if we repeatedly get good tasting souffle. We could, however, only do this if the entire recipe is open for us to follow and examine.


Book Review: "Philosophy of Mind"

Philosophy of Mind (Dimensions of Philosophy) is a fantastic introduction to the subject, and to the basic fundamental issues surrounding any topic that relates to the mind, including cognitive science, artificial intelligence as it relates to cognitive science, psychology, etc.

It covers a lot of ground without presuming specialist knowledge of terminologies, and it briefly explains all related concepts that are required to understand the issues at play (eg, concepts from as far afield as philosophy of science, language, or the computing science concept of a Turing machine).


Science Losing Its Credit Over Money

In Tarnishing Science, I said "That scientists are human and are susceptible to ordinary persuasions like power, prestige, or money, isn't news."  What is news is just how widespread some of the problems are becoming, due to money, money, and more money.

Previously, I've offered my views on how scientific credibility could be enhanced through using open sourcing the scientific methodologies and allowing the free and open source distribution and use of the scientific data.

When it comes to the influence of money though, that's probably not enough.

Case in point, industry-sponsored medical science studies (see Med schools not responding to ghostwriting scandals). What can be done about the billions of dollars in biomedical research? All the money flowing into that research is a great thing, but even without maliciously cheating in the scientific process, the money can be targeted into research programs that are inherently biased in favour of the company bankrolling it. In Economics, this would be called voting with your wallet.


Re: "Call For Scientific Research Code To Be Released"

The Guardian is running this piece "If you're going to do good science, release the computer code too", about the need to have open source program code from scientific studies.  And Slashdot picked up on it too: Call For Scientific Research Code To Be Released.

It's good to see this view being recognized. I have, of course, expressed similar ideas before as in Credibility of Science and Open Source Methodology. Beyond open sourcing the methods, I also recommended the opening of the data sources as in Credibility of Science and the Freedom of Data, as a response to the recent Tarnishing of Science's respectability from the Climategate incident.

We need to recognize that this will continue to be a recurring issue in science as computing technology continues to revolutionize how all science is done.


"As the science scandals keep coming"...

The subtitle to The great global warming collapse (from The Globe and Mail) is:
As the science scandals keep coming, the air has gone out of the climate-change movement.
That is an example of the very point I made in Tarnishing Science:
It's concerning when I hear people mock or ridicule climate science research as "climate science" rather than as a "climate pseudo-science".  It's concerning because it suggests, to those who don't spend time looking carefully [2] at the situation, that it's not just climate science that has problems, it's that science — all of it — has problems.
Sure, The Globe and Mail article's hits are specifically delivered to climate science, but fairly or not, I'm afraid the lasting damage will be to the image of all sciences. It certainly will be that way for those who are, or who are leaning in the direction of, anti-scientific or anti-intellectual thinking.


Book Review: "Difficult Conversations: How to Discuss what Matters Most"

Difficult Conversations: How to Discuss what Matters Most is a good book offering an objective analysis of what goes on and into difficult conversations. Difficult conversations are those on topics that may be difficult and uncomfortable because of its ability to cause pain and negative, if not destructive, results.

By dissecting such conversations into three pieces that people can affect, viz, the "what happened" conversation, the "feelings" conversation, and the "identity" conversation, this book provides recommendations on how to diffuse and create constructive conversations instead.

This book provides examples of what to do and what not to do in some realistically common situations and this improves readers' understanding of the theories they lay out. The focus on actionable behaviours makes this book useful and insightful for the general audience, rather than merely inspirational.


General Purpose Computers and Tinkering to Learn

I sympathize with Mark Pilgrim's thoughts on the Apple iPad and the Tinkerer’s Sunset. As I said in Disappearing Technology in Praise of Closed Systems, for narrow purpose appliances, the closed-ness of the Apple iPad is a good thing:
When it comes to narrow purpose appliances, it sure seems that closed software and hardware is good while open is bad...The iPad is to the traditional personal computer, as a modern house's in-wall plumbing is to exposed pipes.
It's a real shame though if through law, or otherwise, all computers turn into narrow purpose appliances. I personally prefer general purpose computers, especially for it to be available for some students to use (but not necessarily for all). Why would that be?


Book Review: "Religion and Science"

Religion and Science (Gifford Lectures Series) is an excellent introduction to historical and contemporary issues and views in the interaction of science, religion, and society.

Very detailed in its presentation of scientific topics, although for those who are already well versed in various popular general scientific topics, certain sections describing relativity, quantum theory, astronomy, etc, might be a bit repetitive.

The same could probably be said of the theological topics for those already well versed in them. That is, of course, why this book makes for an excellent introductory text.

This book is not a one or two sided view but instead presents many of the nuances in the interface between science and religion in society. I recommend this book, and especially more so in conjunction with Midgley's Science as Salvation: A Modern Myth and its Meaning, which I've reviewed as well.


Disappearing Technology in Praise of Closed Systems

Bottom line: When it comes to narrow purpose appliances, it sure seems that closed software and hardware is good while open is bad. If the iPhone is any indication, something like the iPad is the way of the future of narrow purpose appliances. [1]

Within Education research, there are educational technologists studying how computer technologies can be integrated to learning and teaching. Some of the things they study, for example, is how Second Life could be used in education.

What bothers me about this kind of research [2] is that it assumes the successful use of "technology" in the classroom is something extraordinary, and that it can be successful only with cutting edge research on their classroom applications.


Reference Management Software

I totally should have started using a reference management software to take care of my bibliography six months ago. Now I'm spending hours catching up on finding references to papers I've read as I start working towards my thesis.

Since I'll be writing in LaTeX, I knew I wanted to use BibTeX to organize my bibliography. Although I write the LaTeX files in Emacs, I really didn't want to do that for my bibliography. I wanted a nice GUI software for that.

Looking around, I found Pybliographer to be quite nice. Until I started pasting in some text from web sites with odd text encodings, and things started to not be so nice, making me hunt for characters in the wrong encoding, etc, was definitely not what I was supposed to be doing.

Fed up, I went looking for a web based tool for managing my bibliographic database. I had a few criteria I needed fulfilled, and with Wikipedia in hand, I started looking at my options. Here's what I found.

Useful Tool for Clojure: JVisualVM

One of the main reasons for my wanting to learn Clojure was to take advantage of the ease of using threads in it. But sometimes threads make things worse, so it helps to have a nice tool to profile the performance like JVisualVM. Here's a short intro and tutorial on it: JVisualVM and Clojure.

Book Review: "Science as Salvation: A Modern Myth and its Meaning"

Science as Salvation: A Modern Myth and its Meaning is a fantastic book about the development of science and its advancement in Western culture. It contains a lot of deep and thought provoking discussions on the position science holds in current Western culture, and its metaphysical and epistemological nature.

In particular, it looks at the notion of science as a societal, cultural, and even spiritual force, a notion that is sometimes thrust onto science and perpetuated by certain science writers. To some, the building of this notion tends towards using science as part of a myth constructed by people to shape and understand how to live in an age of an over abundance of information; perhaps it even seems to be displacing the role of religion.

Neither entirely anti-science nor pro-science, Midgley presents a nuanced view of the interaction of science, religion, and society. Midgley encourages a rethinking of the role and importance of science, and its relationship to how we live and how we ought to decide to live.

On the whole, this is a book I recommend on the philosophy of science and society. I also recommend reading this in conjunction with Barbour's Religion and Science (Gifford Lectures Series), which I will be reviewing as well.


Getting Clojure

I find programming languages interesting because they're designed to solve problems the designer thought are important, and understanding a little bit about a different language gives me a little bit more understanding of what the designer was thinking.

The latest programming language I'm dabbling in is Clojure, a LISP on the Java VM.

I'd like to collect what I found useful in learning Clojure later on. For today, I found this exceedingly interesting: Reddit Clone in 10 minutes and 91 lines of Clojure. Interesting because it brought together so many concepts in a short and useful package (rather than, say,  yet another calculator example).

Learning a new language is always hard, I find, because there's always a big step up in the beginning before I know enough to do anything even remotely interesting. Tutorials like that helps a lot in learning a new programming language.

Credibility of Science and Open Source Methodology

Having discussed the issue of the need for the freedom of data in Credibility of Science and the Freedom of Data given the slightly tarnished credibility of the sciences, in this post, I'll speak briefly on the issue of the methodology in science and why open sourcing it would help.

Here's what I mean for the methodology of an experiment to be open source: that is all the steps and instruments must be open to careful examination and testing. All the steps from the test tube to the data analysis must be open for examination to ensure validity. Traditionally, this hasn't been a problem at all. Beakers, test tubes, thermometers, etc, are physical objects inherently open to inspection, in case the instruments themselves added something into the materials, ingredients, or skew the data of the experiment. More and more, however, the modern instruments are becoming opaque to the scientists, especially as its insides are often controlled with computer and software technologies. Unfortunately, software is notoriously closed off and difficult to inspect.


Book Review: "Blink: The Power of Thinking Without Thinking"

Malcolm Gladwell's Blink: The Power of Thinking Without Thinking presents some interesting ideas and anecdotes to help better understand how good decisions and snap judgements are made when people are faced with overwhelming data.

Plenty of skepticism ought to accompany you as you read this book. The stories are well written and may seduce you into believing his theories all too easily. Pack along some salt for a better taste. (If you are thinking of reading Think!: Why Crucial Decisions Can't Be Made in the Blink of an Eye, you might want to read my review of that one first.)

Especially important is to look into his explanation of how, why, and when the snap judgements worked in the cases he presents. He doesn't make the absurd claim that all snap judgements in all cases under all circumstances are better than thought out judgements. If you've carefully read Gladwell's Outliers: The Story of Success (which I've reviewed previously), you may notice that Gladwell's point in the narratives he shares are often subtle and sometimes easy to misinterpret. Maybe that's why it makes for such an enjoyable and engaging read!