Saturday, October 25, 2008

HIV testing of pregnant women

While looking around over at PLoS One, I came across this study.

Rapid Testing May Not Improve Uptake of HIV Testing and Same Day Results in a Rural South African Community: A Cohort Study of 12,000 Women by Mkwanazi et al.

Personally, I found the title confusing, but what it tries to convey is the fact that the availability of rapid HIV testing has not led to more people wanting to get tested, contrary to what one might have believed.


Rapid testing of pregnant women aims to increase uptake of HIV testing and results and thus optimize care. We report on the acceptability of HIV counselling and testing, and uptake of results, before and after the introduction of rapid testing in this area.

Methods and Principal Findings

HIV counsellors offered counselling and testing to women attending 8 antenatal clinics, prior to enrolment into a study examining infant feeding and postnatal HIV transmission. From August 2001 to April 2003, blood was sent for HIV ELISA testing in line with the Prevention of Mother-to-Child Transmission (PMTCT) programme in the district. From May 2003 to September 2004 women were offered a rapid HIV test as part of the PMTCT programme, but also continued to have ELISA testing for study purposes. Of 12,323 women counselled, 5,879 attended clinic prior to May 2003, and 6,444 after May 2003 when rapid testing was introduced; of whom 4,324 (74.6%) and 4,810 (74.6%) agreed to have an HIV test respectively. Of the 4,810 women who had a rapid HIV test, only 166 (3.4%) requested to receive their results on the same day as testing, the remainder opted to return for results at a later appointment. Women with secondary school education were less likely to agree to testing than those with no education (AOR 0.648, p<0.001), as were women aged 21–35 (AOR 0.762, p<0.001) and >35 years (AOR 0.756, p<0.01) compared to those >20 years.


Contrary to other reports, few women who had rapid tests accepted their HIV results the same day. Finding strategies to increase the proportion of pregnant women knowing their HIV results is critical so that appropriate care can be given.

The study is interesting for several reasons. Not only did it find that rapid test results are not helping getting more women to get tested, it also shows that young women (below 21 years old) are more likely to get tested, and that educated women are less likely to get tested. Also, in the time period observed, there has been a general downward trend in getting tested.

All of this makes it sound like that targeted promotion of HIV tests to educated women and/or women above 20 could be at least as efficient as ensuring rapid test results.

Labels: , , , ,

Programming tips

In my daily life, I work as an IT-consultant, mostly on a time/material basis (i.e. I bill per the hour). Given the fact that using consultants is somewhat more expensive than using your own work force, I only get hired in three types of situations:

1) The project needs some resources that cannot be found in-house.
2) The project needs some expertise that cannot be found in-house.
3) The project either has gone wrong, or is on the path in that direction, and there is a need for an outside view on things.

Obviously, this is not an either-or scenario, where I'm only hired for one of the reasons. And I've found that while reason 1 or 2 might be the reason I'm hired, reason 3 is the reason why this occurred.

Anyway, whatever the reason for me getting hired, it can generally be said that at the time I get on a project, it is usually in some kind of problems. This means that I tend to spend a large portion of time, looking at the existing code base, and try to improve that. Given this, I thought it might be worthwhile writing a list of what I see as good coding practices.

There is nothing groundbreaking in this list - most of you probably do this all the time. Still, when the project is going downhill, it's some times good to get reminded that cutting a corner now, might cause big problems later.

I should probably explain that my point of view is that of a person who does a lot of debugging. So, my main goal is ease of debugging. I also like performance, but if I have to choose between those two things, I'll focus on ease of debugging.

I take it as a given that you use some kind of source control. If you don't, your problem is much more fundamental than anything this list addresses, and you should take a long, hard look at your practices.

Fail Fast

This is an approach championed by people like Michael Nygard (author of Release It!), who rightfully point out that users are inpatient. It’s better to fail as early as possible. This means that you should ensure that you have all the data, resources etc. you need as early as possible (but not any earlier). E.g. if I want to update the information on a customer, for which I require that I have a customer number, any functions that calls the update customer method should ensure that they have a customer number, and otherwise fail.

Validate input

While this might seem redundant when using the fail fast strategy, the simple fact is that people make mistakes (we all do), or it might not be clear to someone else what’s required for the method to work.

So, ensure that any input that is required is actually given, and make sure that e.g. the string which should contain a number actually contains a number.

Fail explicitly, not implicitly

Often I run across methods that will results in exceptions when certain conditions are not met, without there being any explicit exceptions thrown. While this might seem acceptable, since those conditions should never be met, it’s better to throw an explicit exception. This shows to later reviewers that someone actually thought this through, and makes it possible to enrich the exception with more telling error-messages.


DRY stands for Don’t Repeat Yourself, and the principle is explained in the excellent book The Pragmatic Programmer (if you haven’t read it, I suggest reading it). Basically, the idea is to not repeat yourself in any way while developing. In this context, it means that if you find yourself writing a lot of very similar code, you should try to see if you can generalize the code into one or more methods that can be called.
This makes it easier to read the code, ensures that errors should only be fixed one place, and it makes it a lot easier to unit-test it.

Don’t copy and paste - generalize

Well, pretty much the same as above, but really: if you find yourself copying and pasting a lot of code, you’re pretty sure to be doing it wrong.

Split up your methods

Long methods is the bane of debugging and should be avoided as much as possible. If possible, try to split your method up in smaller methods, each with their own responsibility.
Generally speaking, any methods that take care of several responsibilities should be split up. It makes re-use and generalizing easier as well

Minimize your number of method calls

Often people tend to dislike local variables (Martin Fowler explicitly aimed at getting rid of them in his book Refactoring). That’s wrong, from both a debugging and a performance issue.

When you need to call the same method several times in a function, try to see if it’s possible to store the result in a local variable the first time you call it, and then use the local variable the rest of the time.

When you call the method, the object will be created anyway, so you won’t really save any memory, and by doing it as I suggest, any hidden (or later introduced) costs in the method will not come back and haunt you.

Don’t have more than one method call per line

This is a huge pet peeve of mine, and solely related to debugging.
A lot of people like to minimize methods by reducing the number of lines of code. One way they do this, is by making more than one method call on each line if possible.

E.g. a call to a method that creates an object which is needed as an input parameter to a different method, is often called something like thus:

Bool result = updateCustomer(GetCurrentCustomerFromCache());

While this line of code is technically fine, it’s very hard to debug (and adding more parameters generated the same way will only make it worse). Instead, split it up in two lines

Customer customer = GetCurrentCustomerFromCache();
Bool result = updateCustomer(customer);

Now, if it fails, it’s easy to see which method caused the failure.

Don’t just document code, document assumptions as well

Good code pretty much documents itself. I.e. we can read the code, and figure out what happens. Unfortunately it doesn’t tell us why it happens, so if any of the code is based on assumptions of any kind, make sure to include it in the code documentation.

Give your variable meaningful names

Yes, we have all given our input parameters names like 'x', and expected people (including ourselves at a later stage) to understand it when they saw it. Unfortunately, people don't understand parameter names like that, nor will the understand variables or methods with that sort of names. This means that they will have to read through the code, to see what 'x' really is.

If the parameter was named something like 'customerNo', then it's much easier to understand what it should contain.

Watch out for those loops

Loops of all kinds (for-loop, while-loop, foreach-loops etc.), are among the biggest causes of performance issues inside the code. Make sure that you place method calls outside the loops if at all possible.

NB: Remember that the for-loop declaration is part of the loop, so a method call as the stop variable will be executed each time the loops run.

So, the following for-loop is inefficient:

for(int i=0; i < GetArray().Length; i++)

Rather it should be written thus:

int arrayLength = GetArray().Length
for(int i=0; i < arrayLength; i++)

Use build-in methods rather than develop your own

We have probably all at one stage or another made our own version of some standard method because we thought we could do it smarter. My suggestion is that you don’t, unless there are some real needs you need to fulfill.
The build in methods are integrated tightly with the framework, and is usually much better implemented than we can hope to match – and if it isn’t right now, it will be so at a later stage (these methods do get updated).

Yes, I know there is a real challenge in building an XML parser, but please don’t. Use the build-in version instead.

Convert strings to enums, not visa versa

It appears that there often is a need to compare the value of an enum with the value inside the string. There are two ways of doing this, one is to convert the string into an enum and compare the two enums; the other is to convert the enum into a string, and compare the two strings.

Choose the first approach.

Enum comparisons are integer comparisons, which are much lighter than string comparing.
Also, in .NET, the ToString method on the enum object type is currently not very efficiently, and there is an amazing overhead in it, so there is no efficiency lost in converting the string to the enum, and not the other way.

Nullable types are there to be used

The default value of many data types (e.g. int) are impossible to distinguish from values that has been set. You can’t tell if the integer you’re working with has just been initialized, or if someone actually set it to 0, so if that makes a difference, make sure that you use nullable types if your languages supports them.

If your language don't support nullable types, make sure to make datatypes that contain your value, and can be null. E.g. an amount class that only contains an amount property.

Yes, there is an overhead, but in some types of systems it really makes a difference if the value has been set or not.

Doubles are imprecise

Doubles, and other floating point value types, are inherently imprecise, so use the decimal data type instead, if your languages supports this.

When parsing numbers and dates, include your culture

You can’t be sure what setup the server the program ends up running on has, so make sure to tell the methods what culture you’re using.

In .NET there is also a culture relevant property in rounding. In Europe, midway rounding is away from zero, while in the US is to-even. So, 2.5 will be rounded to 3 in Europe and 2 in the US. In .NET the default rounding method is the US way, so if you need to round, make sure to include the MidpointRounding mode.
I suspect that other languages have similar issues.

Make sure that unit tests also tests the failures

Here I assume that you actually make unit tests. If you don't, start doing it.

If you expect the method to throw an exception under certain circumstances, make sure to make a test for that also. This serves two purposes
1) It ensures you have implemented it correctly.
2) It ensures that any changes to the method will not cause this effect to go away.

Remember that lists and arrays can be null

Before checking the count or length of the list or array, better make sure that there actually is a list or array. The length of a null is a null-pointer exception.

Remember that lists and arrays can contain null objects

There are no problems in filling an array with nulls. So don’t assume that just because the list or array contains some values, that those values are actually initialized.

Enum values also have a default value

When you’re working with an enum, remember that it’s initialized to the first value in it. At least, that's how it is in .NET. Other languages might behave differently, but there will be a default value somehow.

Don't out-comment code, delete it

When there are errors in code, it's some times easier to re-write the code than try to fix the existing code. While doing so, people tend to out-commented the existing code, so they can roll-back if the new code doesn't work. That's fine, while working on a local copy of the code, but once you feel it's ready to commit to the code base, make sure to remove that out-commented code.

Code that's out-commented, is dead code, and is just confusing later reviewers/debuggers, who get worried if the code should actually have been used somehow. So, don't leave it there - remove it.

If it turns out later that we really needed to roll-back the code to the earlier version, then that's why our source-control is there. The code doesn't disappear, just because you delete it. We can always go back to the version of the code that included it.

When changing code, plan how you'll test it

We all know the situation. There is some code that works as described in the specs, but unfortunately the specs are out of date. This means we have to change the code. No problem, that happens all the time. Unfortunately, what also happens all the time, is that either the code stop working entirely, the code works the wrong way, or that there is some kind of side effect cause by the change.

So, when changing code, make sure that you have a test strategy for ensuring that the changed code works as expected, and that the change doesn't cause side effects.

Unittests and automatic tests are a bare minimum, but preferably, get the customers or testers to make a test scenario for the new functionality, before starting implementing it. This way, you are also more likely to understand the new requirements correctly - or at least realize that you don't understand what they want.

Finally, I'll say, that people shouldn't be afraid of refactoring if they see something that is not right, or is written in such a way that it's hard to understand the logic. Refactoring is not a goal in itself, but it can help the development process immensely, and it'll certainly make the code easier to maintain at a later stage.

Labels: ,

Twitter as a terrorist tool

Wired shares the news

Spy Fears: Twitter Terrorists, Cell Phone Jihadists

Could Twitter become terrorists' newest killer app? A draft Army intelligence report, making its way through spy circles, thinks the miniature messaging software could be used as an effective tool for coordinating militant attacks.

For years, American analysts have been concerned that militants would take advantage of commercial hardware and software to help plan and carry out their strikes. Everything from online games to remote-controlled toys to social network sites to garage door openers has been fingered as possible tools for mayhem.

This recent presentation -- put together on the Army's 304th Military Intelligence Battalion and found on the Federation of the American Scientists website -- focuses on some of the newer applications for mobile phones: digital maps, GPS locators, photo swappers, and Twitter mash-ups of it all.

I am going to share a secret with you: Any means of communication can be an effective tool for coordinating militant attacks. It's true that online tools like twitter (or even emails) makes it faster than old time tools like letters (or word-of-mouth), but so what?

Stopping terrorism is not done by cutting off communication between terrorist cells. It's done by removing the cause of recruitment for those terrorists, and by finding the terrorists before they strike.

I understand why the US military got to focus on these things, but I would find it much better if they tried to find the root cause of terrorism, and tried to handle that instead.

BTW, my own twitter account can be found here

Labels: , , , ,

11 environmental ads that might just work

homeless polar bear

I came across this post over at the Daily Green: 11 Powerful Environmental Messages
These Images From Various Ad Campaigns Around The Globe Remind Us That The Planet Is In Peril

To my mind, our environmental challenges is one of our biggest issues right now. Long-term, it's a much bigger issue than our current economical downturn, so it's important to keep working on these things, even while going through a recession.

Labels: , ,

Sunday, October 19, 2008

Defend science teaching in Texas

Came across this piece of news which I thought should be shared.

Longtime incumbent faces challenge from former educator in Board of Education race

The candidates running for the District 2 seat of the Texas State Board of Education want students to have the best education possible. But their views on what students should be taught in school differ greatly.

I expect that anyone reading my blog will quickly figure out what this is all about. Someone wants to introduce Intelligent Design (or neo-Creationism as I usually prefer to refer to it) in science class.

And keeping that in mind, I'll say that it's not true that both the candidates wants the students to have the best education possible. One of the candidates wants the students to receive proper education, while the other one wants to peddle nonsense to the students, possible disqualifying them from studying science, if they were so inclined.

So, who are the people involved.

Longtime board member Mary Helen Berlanga, a lawyer from Corpus Christi, faces opposition from Peter H. Johnston, a former educator from Wharton County, about 60 miles southwest of Houston. Johnston now owns The Joseph Group, a research firm that studies legal and public policy issues.

Berlanga is for proper science teaching, while Johnston (perhaps unsurprising given his background) has this to say about science:

Johnston, 55, a former school teacher and interim principal of Living Water Christian School in Rosenberg, said he believes schools should teach the strengths and weaknesses of all theories.

"By law (schools) have to teach the strengths and weaknesses of (all) scientific theories," he said. "A movement to take out the weaknesses, I think, would be a tremendous mistake and detrimental to students to compromise facts. Intelligent design is a bona fide scientific theory."

Scientific theories doesn't have any weaknesses. Otherwise they wouldn't be scientific theories. There might be issues that's unclear, but the overall ideas and concepts have been tried and tested true, and is not only supported by evidence, but have no evidence against them. It's true that there are certain scientific theories which are known to be unable to explain certain aspects, which tells us that there are still some adjustment to be done, but evolution is not one of these. The theory of evolution has been challenged for 150 years, and while it has been expanded, the fundamental idea still remains the same.

Intelligent design on the other hand, has no strengths nor weaknesses, as it's not a scientific theory. Since it explains everything by claiming that a non-defined intelligent designer did it in some non-defined way, it explains nothing. As such, it has nothing to do in science class (nor in philosophy class as some people seem to think).

So, if you're an Texan living in District 2, I urge you to vote for Berlanga.

Labels: , ,

Half a millennium of posts

According to blogger, this is my 500th post. According to Technorati, the 40,000th visitor dropped by my blog today. I do know that I have had quite a few readers more than that, since my feedburner account tells me that there are some approximately 80 people or so who sees my blog through their reader each day. Still, I thought I'd mention the numbers, and thank all my readers for reading my blog.

Hope I can keep you interested in the future, and feel free to give me suggestions on how to improve my writing, or what I should write about.

Labels: ,

Disease genes older than previously thought

The New Scientist brought my attention to some recent research with some interesting results.

The disease legacy of our distant ancestors

GENETIC diseases such as diabetes and Huntington's disease may be an evolutionary hangover from our primitive ancestors. This surprising discovery might make it possible to study human diseases in fish and insects - unlikely as that seems - as well in the more usual mice.

To discover when disease-related genes emerged in humans, Tomislav Domazet-Loao from the Ruder Boakovic Institute in Zagreb, Croatia, and colleagues compared our genome with that of organisms as diverse as bacteria and primates, which come from different stages in the evolution of living species.

The team found that we have inherited a far greater proportion of disease-related genes from organisms that evolved early on than from our closer relatives, such as rodents or other primates, although they don't yet know why. For example, while a massive 40 per cent of our genes come from bacteria, the proportion of disease genes that come from bacteria is even larger, at 60 per cent.

So, if there is an intelligent designer involved, we have to conclude that he, she, or it, wants us to suffer, and has been working on this for a long time.

No, seriouslty, this might result in some good changes on how research is done, as it would indicate that it's possible to do research on species that are further from our species than previously thought. Currently, mice is often the species of choice, but instead species like zebrafish, or perhaps even bacteria, can be used.

The study is published in Molecular Biology and Evolution as An ancient evolutionary origin of genes associated with human genetic diseases by Tomislav Domazet-Loso and Diethard Tautz, and is accessible for download.

Labels: , , , , ,

Blogging anonymously

Abel Pharmboy and PalMD are going to hold a session on blogging and anonymity at the ScienceOnline09 conference, and as part of that have kick started the debate a little bit at their blogs (I've linked directly to those posts in the links in their names). Mostly they focus on the issue of trust between the blogger and the reader.

Since I am have a opinion about most things, I thought I'd speak up on this subject.

As people might be aware, I blog under my own name, which is pretty unique. At least, I've never come across anyone with the same name (incl. spelling) anywhere, be it online or otherwise. Because of my uniqueness of my name, I had given some thoughts to the possibility of blogging under a pseudonym, before creating this blog.

The reason I didn't do this is fairly straightforward: I have been commenting on blogs since before they started getting called that, and in all that time, I used my real name. If I started blogging under a pseudonym, I would not be able to use all the connections, and the shared history, I had built up during those years of commenting.

Would that really matter? Well, I think it would. When I first started this blog, people like Orac, Afarensis, and PZ sent a lot of initial traffic my way. And not only that, my very first (non-fluff) post (Kent Hovind's far-right connections) came about with some help from David Neiwert.

Still, blogging under my own name still means that there are some restrictions. In general, I don't comment on neither my private life nor my work. The reason I don't comment on my private life is that my friends and family didn't choose to blog, I did, so I feel I should respect their privacy, and not involve them in my blogging. Regarding the lack of commenting on work, it's a matter of professionalism. I am a consultant, and my customers and co-workers should be able to expect confidentiality. Since it can be hard to say anything about work without giving anything away, I choose to not comment on it at all. This doesn't mean that I won't comment on IT at all, and people might have noticed an up-tick in IT related posts lately, which I think is a trend that will continue.

Well, back to blogging anonymously, or rather under a pseudonym, which is what many bloggers do, and the matter of trust.

It seems to me that there are several aspects to this subject, which makes it a bit hard to give any clear-cut answers.

Most bloggers blog about things they are interested in, and often know something about, but there are a few bloggers out there who blogs about things about which they are considered experts. The first group will often base their blogposts on other peoples' work and expertise, while the later group will base their blogposts on their own work and expertise.

When a blogger like Orac writes about medicine, a subject he is without a doubt qualified to write about, or PZ writes about biology, they makes sure to include links to research and evidence that supports their claims. When people like David Neiwert writes about the militia movement, or Juan Cole writes about the Middle East, they bring their own expertise to the table.

This means that we don't need to "trust" the first group. We can read what they write, and follow their links, and judge for ourselves. The second group, however, writes about their subjects from a position of authority, which requires us to trust that they know what they're talking about. That is hard to achieve if you blog under a pseudonym. I won't say it's impossible, and I am sure people can bring up examples, but it's hard.

So, if you belong to the first group of bloggers, and want to blog under a pseudonym, I say: go ahead. I will trust you or not, entirely based on your writing. However, if you belong to the second group of bloggers, think hard about whether it's possible to bring your expertise to the table, without telling us who you are.

Having said all that, I think it's also important to think about the reasons why it might be a good idea to not blog under your real name.

When Duncan Black blogged under the pseudonym Atrios, he was an economics professor, and blogging under his real name, while at the same time creating enemies among the republicans, might have had a negative effect on his teaching ability (the students might think he was trying to indoctrinate them). And yet, while blogging pseudonymous, he was instrumental in getting Trent Lott to step down from his leadership position.

There is also the personal aspect. Female bloggers especially, seem to be targeted by males online. Jill of Feministe has been targeted as have tech-blogger Kathy Sierra (I write more about the subject of threats against female bloggers here)

All in all, blogging under a pseudonym might be a good idea for a number of reasons, and unless you're planning on blogging on a subject that requires people to trust your authority, I see no real compelling reason to blog under your own name.

Labels: ,

Can graffiti be art?

Like many other people I am not happy about most of the graffiti that is painted everywhere in larger cities. However, once in a while, it's possible to come across a piece of graffiti that's truly a piece of art.

An example of this, is a 1999 piece of graffiti in Copenhagen's Sydhavn, called "Evolution", which I saw for the first time today. I came across a reference to it a couple of days ago, and decided to go out and take a look at it.

I should probably add, that this is a completely legal piece of graffiti, and that there is talk about listing it, so it can be saved for future generations. I doubt it will happen though, and it's very likely the wall it's on will be torn down sometime in the next couple of years.

It's 170m long, and illustration evolution, starting with the big bang.

Due to the length of the piece, I took 31 pictures of it, to get the full piece. They can be found at my flickr account here.

Labels: , , ,

Wednesday, October 15, 2008

116th Tangled Bank

The Tangled Bank Logo
Welcome to the 116th edition of the Tangled Bank. As usually, we have a lot of good stuff for you all. Unlike some former hosts, I am not a very creative writer, and I'll spare you all from any attempts of making some kind of theme for this Tangled Bank. So, without any further ado, let's get to the posts.

Biology, botany, paleontology and evolution

Perhaps unsurprisingly, posts about these subjects are well represented (again) in this edition. The reason why I group them together, is that it can sometimes be hard to say whether a post is about botany or biology, or about biology or paleontology.

Over at the Evolving Mind, Andrew goes into the past with his post Not Chicken Fingers, Fish Fingers

GrrlScientist tells the story of one positive result from Hurricane Ike: Hurricane Ike Unearths Fossil Tooth in Paleontologist's Yard

Another post by GrrlScientist tells us about the newest research into how "individuals of a social species engag[ing] in frequent battles for limited reproductive opportunities" can have a negative impact on conservation efforts. Love, Sex and War in the Seychelles

At Pleiotropy, Bjørn Østman writes about the latest research into the evolution of DNA in Non-functional DNA conserved in evolution

Dr. Jeff Wells writes about Carbon-Eating Forests over at the Boreal Bird Blog

Perhaps a bit borderline, as it deals with politics, I still found DanH's post Does the IUCN take agricultural biodiversity seriously? relevant for this carnival.

At the FruitForum they write wild apple trees in An Apple at the Sea Side!, and at Agricultural Biodiversity Weblog, Jeremy writes about a landscape to marvel at.

Mike shares the good news Birds Make Peace With Turbines. Always good with some more peace in the world....

Again, political in nature, but again relevant to science and medicine: Obama, McCain on Our Ocean's Health by Kevin Zelnio at Deep Sea News

Eric Heupel not only shares with us the tale of the Nobel Jelly, but also goes into grasshoppers in Wilted Greens

neurobiotaxis writes about Cerebral assymetry in an evolutionary perspective

The founder of the Tangled Bank, PZ Myers, is apparently too modest to send any submissions, but I thought I'd include his post on the Fossil daisy-chain


Over at Tunnel Under Snow, Noni Mausa used the opportunity of Mental Illness Awareness Week to bring our attention to our own behavior. With friends like this...

PalMD gives us a lesson in Cancer 101

Math and physics

It's not all just posts related to biology etc. There is also some posts about other types of science.

At Stochastic Scribbles, the meaning of the number 137 is explained to us.

Photos and art

This category deals with posts containing photos and art related to science.

GrrlScientist has a post up on the photos from the Scopes Trial: Original Photos from the 1925 Scopes Monkey Trial: John Thomas Scopes. Make sure to click through to the full flickr collection, which has been put up.

Over at Drawing the Motmot, Debby Cotter Kaspari shares some of her work with us. The Light in the Dark Forest and Plein Air Pen and Ink. As someone without any artistic talent, I'm always in awe of other peoples' works.

Odd bits

Posts that are hard to categorize, but which might still fit into the general theme of the Tangled Bank.

At Science Made Cool, Cambias goes a little into the problems with werewolf lore: Monster Mash(3)

At Submitted to a Candid World, they take a hard look at a certain brand of homeschooling: Conservapedia Tries Homeschooling; and, the Miseducation of America’s Youth

Food chemistry is also a form of science, so I found Brian's post over at The Off Season Recipe Blog well worthy of inclusion: Oh, must be pectin 'cause starch don't shake like that

Grrlscientist takes us for a visit to The Montlake Fill (UBNA) in Seattle.

I was asked to point people to a new science-related blog Vaviblog, and any blog that has guest posts from Ola T. Westengen, Coordinator of the Svalbard Global Seed Vault in Norway, cannot be completely uninteresting to the readers of this carnival.

This concludes the 116th edition of the Tangled Bank, I hope you enjoyed it. The next edition will be up on 29 October 2008 at Neural Gourmet

Labels: , , ,

Tuesday, October 14, 2008

Survey for atheists

Jon Lanman, a DPhil student at Oxford University, who I have met a couple of times while he visited Denmark to do field work, is currently doing a survey of atheists.

He would like some more Scandinavian answers, so I thought I'd link to it here from my blog. Don't worry, non-Scandinavians can also answer, Jon would just really like as many answers from Scandinavian atheists as possible.

Anyway, here is what Jon says about the survey.

Hi everyone,

My name is Jon Lanman and I'm a DPhil student at Oxford University studying atheism and humanism. Two of the main goals of my research are to get a better descriptive account of what individual non-theists/humanists think about a variety of topics and also to test a host of hypotheses from psychology and anthropology concerning how different factors of environment and upbringing can affect our beliefs. Towards that end, I have designed an interview/survey for individual non-theists/humanists.

The survey is will ask you about your beliefs and experiences, as well as a variety of background/demographic matters. The survey should take somewhere between 35 minutes and 50 minutes to complete. You can, however, exit the survey and come back to it at a later time if you do not feel like answering the questions all at once.

Here is the link for the survey:

Thanks very much for your participation and feel free to contact me at


I hope that my readers will help Jon out in his research.

Labels: , ,

Saturday, October 11, 2008

Smart bikes in Copenhagen

I just came across this interesting link about a research project going on in Copenhagen

MIT research bringing 'smart bikes' to Denmark

Copenhagen is without a doubt one of the most bike-friendly cities in the world, with bike paths everywhere, allowing people to ride their bikes almost safely. I'm saying "almost" since there are always risks when venturing into the traffic. On top of that, there is a lot of focus on renewable energy. The MIT people seems to be aware of this, as their director commented on this.

"One of the most striking aspects of Copenhagen is that it is already a very sustainable city," said Carlo Ratti, Director of MIT's SENSEable City Lab, which is overseeing the Smart Biking project. "A considerable fraction of its energy comes from renewable sources and, unlike a few decades ago, 30 to 40 percent of its citizens use bicycles as their primary method of transportation.

Still, there is room for improvement, and I'm looking forward to seeing the effect of this new project.

Labels: , ,

2008-2009 Global Competitiveness Report is out

The World Economic Forum release an annual report, where they rank the competitiveness of a number of countries in the world (currently 134, but the number is growing every year). While the index has some problems (the factors, and the weight of those factors, seems to have been selected to favor the US), it's still an interesting index to look at.

The index for 2008-9 can be found here.

First of all, I should probably explain what I mean about the the fact that the index is set up to favor the US. If you look at page 12 of chapter 1.1, you'll find the start of the list of countries, sorted by their overall ranking. Unsurprisingly, you'll find the US at the top, with an overall score of 5.74. At first glance, that would look like an average of the three scores that are used to find the overall score - the "basic requirements" index, the "efficiency enhancers" index, and the "innovation factors" index - but if you do the math, you'll find that the average of those three numbers (5.50, 5.81, and 5.80) is 5.70, so obviously one or both of the later two numbers carry more weight than the first one.

This doesn't mean that the report is meaningless. While the exact positions of the countries cannot really be used for anything, it's interesting to see the changes over time. E.g. the fact that Germany is places in rank 7 is in itself not really revealing, but it's noteworthy that it has slipped two ranks since last year (swapping places with Japan).

Labels: , ,

This hardly makes me proud of being Danish

The Times has an article title Denmark ‘has failed friends too’. It's the story of the Iraqi interpreter Mohammad who worked for first the British troops and later the Danish troops before fleeing to Denmark.

He fled to Denmark with his family earlier this year under protection from the Danish military, whom he had served for 18 months.
Related Links

Mohammad, who is 40, expected job opportunities as an English teacher, schooling for his children and, perhaps, a modest home where necessities were a stroll away. Instead he was given a halfway house, granted an 8,000 kroner (£850) monthly government payment and told to sort out the rest of his affairs on his own. “If I had thought life was going to be like this, I would not have come here,” he said in an interview conducted in Arabic. “I would prefer to live in danger in Iraq than to live here.”

I know that among many people, Denmark has a reputation for tolerance, but that's a thing of the past, if it ever held true. The Danish political environment has become more and more anti-immigrant. Not only has parties like Dansk Folkeparti (Danish People's Party) gained more and more influence, but other parties have kept busy trying to catch up on their anti-immigrant politics, to avoid using votes. The current Danish government, is entirely dependent upon the support of Dansk Folkeparti (DF) to stay in power, which has the natural consequence that DF rules the day, when it comes to their core issue - anti-immigration.

I had hopes that the Minister of Refugees, Immigration and Integration, Birthe Rønn Hornbech, would show a little backbone, as she has shown herself to be principled in the past, but it seems that she doesn't have the political courage it takes.

The very fact that we actually have a minister of Refugees, Immigration and Integration, shows how much these issues dominates Danish politics.

Labels: , , , , ,

Lazy linking

A few noteworthy stories

The Nobel Peace Prize goes to former Finnish president Martti Ahtisaari. Wikipedia has a pretty good article on Ahtisaari

Connecticut Ruling Overturns Ban on Same-Sex Marriage. Good news on the civil rights front.

Shark "Virgin Birth" Confirmed. A female blacktip shark in Virginia fertilized her own egg without mating with a male shark, new DNA evidence shows.


Jörg Haider killed in car crash

Right-wing politician Jörg Haider, who shocked the world when he became te leader of the Austrian government in 2000, has been killed in a car crash.

While his family has my condolences, I cannot find it in myself to feel sorry for the death of another bigoted politician.

BBC story
LA Times story

Labels: , ,

Sunday, October 05, 2008

And I thought IT projects took a long time

While IT projects frequently takes years to complete, it turns out that that's nothing compared to other tasks in the past.

Prehistoric cave paintings took up to 20,000 years to complete

It may have taken Michelangelo four long years to paint his fresco on the ceiling of the Sistine Chapel, but his earliest predecessors spent considerably longer perfecting their own masterpieces.

By comparing the ratio of uranium to thorium in the thin layers on top of the cave art, researchers were able to calculate the age of the paintings

Scientists have discovered that prehistoric cave paintings took up to 20,000 years to complete.

Rather than being created in one session, as archaeologists previously thought, many of the works discovered across Europe were produced over hundreds of generations who added to, refreshed and painted over the original pieces of art.


The scientists have used their technique to date a series of famous Palaeolithic paintings in Altamira cave near Santillana del Mar, northern Spain. Known as the "Sistine Chapel of the Palaeolithic", the elaborate works were thought to date from around 14,000 years ago.

But in research published today by the Natural Environment Research Council's new website Planet Earth, Dr Pike discovered some of the paintings were between 25,000 and 35,000 years old. The youngest paintings in the cave were 11,000 years old.

Dr Pike said: "We have found that most of these caves were not painting in one go, but the painting spanned up to 20,000 years. This goes against what the archaeologists who excavated in the caves and found archaeology for just one period.

That just blows my mind. Think of the staggering amount of time involved.

The original research is published here

Labels: , , ,

A look back in time

Via Crooked Timber, I became aware of this pretty cool thing.

As people probably know, Google turned 10 years recently, and as part of that celebration, they've made available their oldest index, from 2001. So, now you can see how many hits you got on a search subject back in 2001 compared to now.

Google anno 2001

If I search on my name (in quotation marks), I get 4 hits back in 2001, compared to more than 4,000 hits now.

A search on "pz myers" (with quotes) returned 296 hits back in 2001, compared with the present 229,000 hits.

Searching on "google" resulted in astonishing 3,780,000 hits in 2001, but that dwarfs in comparison with the current 2,910,000,000 hits.

Labels: , ,

The threat to women in Afghanistan

In my last post I mentioned the death of Lieutenant Colonel Malalai Kakar, who the Taliban managed to kill a week ago. While it's perhaps not surprising that a police woman has been killed in an unstable region, it's just one of many symptoms of the Taliban regaining power in the region.

I hardly think I have to mention the fact that in the neighboring Pakistan, Benazir Bhutto was killed while campaigning. A murder which is generally considered done by radical Muslims.

However, inside Afghanistan, matters are much worse.

The Taliban is officially no longer in power, but they still have political influence. And where they can't influence things politically, they use violence. This was the case with Lieutenant Colonel Malalai Kakar, but unfortunately that's not an isolated event.

Three years ago, the British newspaper The Independent interviewed five women who had challenged the Taliban, among them Malalai Kakar. Among those, the fate of Malalai Kakar was unfortunately not unique. As a followup article explains

Of five prominent women interviewed three years ago by The Independent for an article on post-Taliban female emancipation, three, including Ms Kakar, are dead and a fourth has had to flee after narrowly escaping assassination in an ambush in which her husband was killed.

In other words, the Taliban is systematically enforcing their totalitarian regime through the use of violence, even if they are not officially in power. Even though a multitude of countries have troops in the country, they are unable to keep the Taliban from enforcing their horrible rules on others. In this, the occupation must be considered a failure, and a big one at that. And it's not only the women paying the price (the pro-western district governor Rozi Khan was killed in a gun-battle some weeks ago), but they are the ones that pays the heaviest price if the Taliban get back in power. They are the ones considered sub-human because of their gender, not the men.

As things stand now, the future of the Afghan women looks bleak.

Labels: , , ,

Voices becoming quiet

Within the last week or so, three real-world heroes have passed away. One of them was successful while the other two were still fighting their battles. Two of them died of natural causes, while the last one was killed by her opponents.

I think it's important to honor these people, by remembering their fights, and keep fighting when necessary.

The first of the three to die, was Lieutenant Colonel Malalai Kakar, the highest ranking woman in the Afghan police force. The existence of such a strong female was of course intolerable to the Taliban, who considered her a direct threat to their world view, and in the end, that ended up costing Malalai Kakar her life. On September 28th, some men caught her in an ambush, and killed her. This was not the first attempt on her life - in an earlier episode she managed to kill three attackers - but unfortunately it was the last. Again, the ugly side of religion rears its head.

BBC coverage

The second of the three, and the only successful one, was J.L. Chestnut Jr., a person I hadn't heard about, until I read his NY Times obit, but who certainly qualified to be considered a real-life hero.

J. L. Chestnut Jr., who after attending law school in Washington returned to his hometown, Selma, Ala., and set up shop in 1958 as the city’s first black lawyer, and who went on to fight for voting rights for blacks, laying the groundwork for the march led by the Rev. Dr. Martin Luther King Jr. from Selma to Montgomery in March 1965, died Tuesday in Birmingham, Ala. He was 77 and lived in Selma.

Sad that it took his death for me to hear about him.

NY Times obit

Finally, the third person to die, was someone I had heard about in the past, but who I know little about, except for his role as a voice for civil rights in Singapore.
I'm speaking of J. B. Jeyaretnam, who was the key opposition figure in Singapore - a country which appears fairly civilized, but which has decidedly totalitarian tendencies. Jeyaretnam's fight for civil rights cannot by any stretch of the imagination be considered successful, but the symbolic value of it cannot be overestimated. The simple fact that someone is actually ready to speak out for it, is an important thing in itself.

NY Times obit

Labels: , , , ,

The roots of C#

The Australian version of Computerworld is doing a series on programming languages, and a couple of days ago, they published an interview with Anders Hejlsberg about C#.

The A-Z of programming languages: C#

I guess you have to be interested in programming and programming languages to find the article interesting, but if you are interested in those subjects, I think you should check out the article.

Note that at the top of the first page, there are some links to earlier articles in the series (which includes C++, JavaScript, Haskell, and Python). I haven't read these yet myself, but I expect them to also be interesting.

Labels: , , , ,

Thoughts from JAOO

JAOO conference
Originally uploaded by Kristjan Wager
At the start of this week, I spent three days at the JAOO conference in Århus.

JAOO is without a doubt, the biggest developer conference in Denmark, and while it's roots is in the JAVA community in Denmark, it has grown to become a cross-technology conference, where there is focus on both individual technologies and on trends.

I went to the conference with some of my co-workers (including Frank Vilhelmsen) and with the head of Neo4j. Neo4j is something as interesting as a graph database (think math). While it doesn't support .NET yet, I find the product very interesting, and would suggest that anyone who codes in JAVA check it out.

Well, back to the conference.

Given the fact that I go to Microsoft seminars regularly, and that my role in projects are often not just pure development, but also involve stuff like architecture, code review and similar tasks, I decided to skip the technology specific talks, and focus on those with a broader scope.

I won't go into all the talks I listened to, but I got a lot out of this approach (more than those of my colleagues who only went for the technology specific talks), and I will certainly return to JAOO in the future.

The best talks I heard, was two talks given by Michael Nygard, the author of Release It! - a book that I have heard nothing but good stuff about, and which I certainly will get and read.

Labels: , , , , ,

Pat Robertson makes a prediction

I just came across this piece of news

Pat Robertson: Israel will strike Iran

Christian broadcaster Pat Robertson is urging prayer before Election Day to stave off an imminent Middle Eastern war he said could bring nuclear attacks on the United States.

In a letter on his Web site,, Robertson said his opinion was that Israel would bomb Iranian nuclear sites between Nov. 4 and the inauguration of the United States' new president.

Robertson tied his warning to biblical prophecy. His letter, which starts out describing his concerns about Russian aggression in Georgia, predicted that Russia would also enter the war, though the United States would not. "However, we may not be spared nuclear strikes against coastal cities" in America.

Why is anyone taking this guy serious? The concept of Israel taking out Iran's nuclear sites is not totally far-fetched, though the timing is doubtful (to say the least), but Robertson ties this to biblical prophecy! And the idea that the US and Russia will go to war over what happens to Iran is quite ridiculous.

Of course, the call for prayer gives an easy way out - when the prophecy fails to come true, the prayers will be used as an excuse.

Labels: , , ,

Saturday, October 04, 2008

Evaluating medical studies

Currently, the ScienceBlogs Book Club is discussing Paul Offit's Autism's False Prophets (which I've just ordered). For those unaware of the subject of autism and autism research, the heated discussion going on in the comments sector will probably surprise you.

The heat is because the debate about autism, and the cause of autism, as it happens on the internet, is not about science, but about emotions, and in some cases, about profit. When I say profit, I'm not referring to the pharmaceutical businesses, that makes the vaccinations, that some people claim causes autism, but rather the people pushing dangerous "cures" at high prices to the parents of autistic children. Because, frankly speaking, vaccinations are very low on the profit scale when it comes to the pharmaceutical sector (Viagra and happy pills would be a much better business).

Of course, just because one side might profit from something being true, doesn't mean that it's not true. The makers of penicillin make a profit, yet penicillin has saved more lives than it's possible to count.

When I first heard about the possibility of an autism-vaccination link, from a blogger I respect, I thought it sounded somewhat feasible, since the cause of autism is not particularly well known. Also, the fact that vaccinations contained thimerosal, which is based on a type of mercury, seemed worrisome.

In other words, while I wasn't convinced of the link, I certainly was open to the idea.

However, I began to run into other bloggers, pointing out the problems with this hypothesis, and I began noticing a problematic pattern. There has been a lot of research into autism, and a lot of research into the possibility of an autism-vaccination link. A few studies pointed towards an autism-vaccination link, while the majority showed no link. As such, this might not tell us one way or another, since the minority studies might be the better studies. However, by any objective measure, this was certainly not the case, and what's more, it turned out that, while we don't know everything about the cause of autism, we do know some things, and what we know, invalidates the hypothesis of a link between autism and vaccinations.

So, how does one go about evaluating studies? Well, I obviously have some criteria I follow, but instead of going through them, I think it's much better to point to an excellent article on the very subject in the NY Times by Gina Kolata: Searching for Clarity: A Primer on Medical Studies (might require that you log in).

Kolata explains clearly what kind of things you have to look at when evaluating medical studies, and while the examples she refers to, all had the minority studies overturn the majority studies, it's much more common the other way around, as we can see in the studies about autism-vaccination links.

For more stuff about the proper way to evaluate and do medical studies, I recommend the group-blog Science-Based Medicine.

Labels: , , , , , ,