Older Interesting Things
Revision as of 17:41, 21 April 2011 by Clarman
If you care about prostate cancer, new research suggests you should drink pomegranate juice or eat the fruit.
Lots of my clients have masses of legacy code (usually C), with questions about how to apply test-driven development with it, refactor it, and so forth. I recommend Working Effectively with Legacy Code by Michael Feathers.
Kay gets Turing
In the 1980s I used to develop in Smalltalk (Ruby folks -- nothing really new in Ruby). I've always been a huge fan of Alan Kay, a seminal figure in computer science, and along with Dan Ingalls, the creator of Smalltalk, which influenced me deeply. Kay won the highest award in computer science, the Turing Award in 2003 (and the Kyoto prize); here's a summary of his speech.
For 30 years, I've bought organic produce when it's relatively affordable. Not for my own health (though a study of pesticides and antibiotics in traditional farming should give pause for thought), but rather to support organic farmers, as I've felt (without strong evidence) that it's just a better, sustainable approach. Now a recent study from Oxford indicates it's also better for biodiversity. To quote: "The organic farms were found to contain 85% more plant species, 33% more bats, 17% more spiders and 5% more birds."
what did you say?
Senility finally kicking in? Eat Indian food. Here’s why. Dont forget.
This is a wonderful story.
Are you involved with a Java-based multithreaded highly-concurrent application (e.g., servers, telecomm switches)? If so, you know that testing for bugs related to concurrency (e.g., deadlock) is HARD. NASA has a solution. They have just released as OSS a cool and sophisticated testing tool, Java Pathfinder, that they have built and used for years (yes, NASA uses Java, including on the Mars rovers). Pathfinder is special JVM that systematically explores all potential execution paths of a program to find violations of properties like deadlocks or unhandled exceptions. This is difficult, powerful testing, so tell your friends.
Earlier I wrote about the interesting fact that women after WW I gave birth to more females than males, but scientists didn't if it occured at conception or by miscarriages. Now we have more clues. After the 9/11 attack, a similar pattern arose in the USA, and researchers have discovered that the difference is not in sex variations at conception, but a greater rate of miscarriages of males when the mother is in a stressed environment, presumably because males are worse best for the tribe.
An example of well-crafted careful experiments to show if an alternative medical therapy works, in this case accupuncture. Is it just a placebo effect, or something more?
This story didn't get major attention, but I predict it will if it works on humans: Scientists have, for the first time, achieved a state of near suspended animation in mice, using air laced with 80 parts per million of hydrogen sulphide. Huge implications for space travel, medical delays, parents of teenagers, ...
Some things really inspire my sense of wonder and beauty and mystery in this universe: wave-particule duality in quantum physics, high heels, and extraordinary savant mental abilities, as in the case of Daniel Tammet. Like some other autistic savants, he can do amazing feats: recall Pi to 22,514 digits, multiply ridiculously large numbers in an instant, speak 7 languages... What is unique about Mr. Tammet is that he is the only autistic that can clearly describe his inner mental processes, and this gives us a window onto other dimensions of mind. There are several fascinating aspects of his story. One is that his powers arose after a head injury and then the onset of epilepsy. Obviously it suggests that different parts of the brain had to become engaged in "math" for example, but in ways most of us can't fathom. To quote: “Since his epileptic fit, he has been able to see numbers as shapes, colours and textures. The number two, for instance, is a motion, and five is a clap of thunder. "When I multiply numbers together, I see two shapes. The image starts to change and evolve, and a third shape emerges. That's the answer. It's mental imagery. It's like maths without having to think.” I think his injury+change story suggests we all have potential for such radically different mental behaviors. But more deeply, the wonder for me is that it's so "outside of the box" compared to how i do math and hints at profound wonders in our minds. It is not impossible to imagine that scientists will someday unlock a way to such transformations--without having to hit our heads against the wall.
Design-by-contract (DBC) is worth knowing, especially for safety-critical and fault-tolerant applications. Although commonly associated with the Eiffel OO language and Bertrand Meyer, the roots are much older. They start with another Bertrand--Bertrand Russells “Introduction to Mathematical Philosophy”, which introduced the great Dr. Tony Hoare to the idea of axiomatic theory and assertions (pre- and post-conditions) while he was developing an ALGOL-60 compiler in the 1960s. In 1974 at the IBM Lab in Vienna a PL/1 compiler was being developed, and the researchers desired an unambiguous formal specification of the language. Out of this need VD, the Vienna Definition Language, was born by Peter Lucas. VDL borrowed the pre- and post-condition assertion form earlier explored by Hoare and Russel. Various solutions have been created for Java, and i'm intrigued by a recent, elegant OSS solution: Contract4J, that uses Java 5 attributes and AspectJ behind the scenes.
The USA military is moving seriously closer to using fighting robots. And of course, in what could be a quote straight out of a science-fiction movie on robots-gone-mad: “They dont get hungry,” said Gordon Johnson of the Pentagons Joint Forces Command. “Theyre not afraid. They don't forget their orders. They don't care if the guy next to them has just been shot. Will they do a better job than humans? Yes.” The first generation are just remote-controlled, but surely it is only a matter of time before autonomous robots are used. I feel that when Deep Blue beat Kasparov in 1997, it was a computing milestone; and when the first autonomous robot kills a human, it will be another (sad) milestone.
grey matter in women
Interesting story: Research shows that men have 6.5 times more grey matter (we can call it 'processing' matter) in the brain than women related to general intelligence, while women have 10 times more 'white' matter (connections and networking of the grey matter) than men. Both sexes have equal general intelligence levels, showing that alternate architectures can lead to similar capacity. Of course, the parallel to electronic computing is clear.
Recent diet study: Four popular diets were tested/comparied with four random groups over two years: Ornish (a relatively low-fat vegetarian diet), Atkins (a relatively high-fat, high-protein diet), Weight Watchers, and the Zone diet. Conclusions? One key conclusion was relevant to software practices: More influential in losing weight than the particular diet was simply sticking to it. Diet results? Ornish dieters had the best results in terms of losing weight (3.3kg), and Atkins the worst (2.1kg); Likewise for lowering "bad" LDL cholesteral: Ornish dropped 12.6%, but Atkins 7.1%.
My first job as a developer was in the extraordinary language APL, for which Iverson won the Turing award.
Although i disagree, my favorite APL quote is from Edsger Dijkstra, "APL is a mistake, carried through to perfection."
We used special keyboards (this was on IBM mainframes) with the APL character set. It was a dynamically typed language that had a virtual machine, essentially infinite memory space, and automatic garbage collection. The essential paradigm was of N-dimensional array objects, and all operators could operate on any object. To give you a feel of how powerful and fast it was to program in APL, here's code to calculate the next generation in the "Game of Life." In the 1970s I used to spend 7 hours a day writing this stuff... life was simple then.
the OLD web
did you know that many versions of most of the pages on the web are archived and retrievable at the Internet Archive. Fancy to see the original Google page? Playboy.com?
Check out Project Censored, run by Sonoma State University, that each year publishes the "the top news stories underreported by the mass media."
Why have narrow reading columns? See here. At normal reading distance, the eye's span of movement is (only) 8 cm. For the average person, this layout supports faster reading.
What would you think if you saw a press release that said that physicists had some evidence that the speed of light was actually significantly different than they originally thought? Something similar has happened in the world of biology and genetics: The rate of change of genetic mutation from generation to generation (which is applied to many estimates) appears to be faster.
Eat what you want, and i’m not even a vegetarian, but it has always struck me as odd when someone says a vegetarian diet is unhealthy--that one needs to eat meat. Research shows that vegetarians visit hospital 22% less often, and spend a shorter time there. More important: To quote a major British Medical Association study (BMA Report, 4.11, 1986) conducted over 10 years with thousands of matched people in veg and non-veg groups: "Vegetarians have lower rates of obesity, coronary heart disease, high blood pressure, large bowel disorders, cancers and gall stones."And the more recent Oxford study of 11,000 people over 13 years (Brit. Med. Journal, 1994, 308); conclusion: "lower rates of cancer and heart disease amongst vegetarians and 20 per cent lower premature mortality."(i.e., they live longer).
Eating antioxidant foods (or supplements) to reduce oxidation (heck, let's just admit we're rusting to death) is associated with lower rates of cancers, heart disease, and Alzheimer's. A recent USDA study clarifies the most effective foods. Among fruits, cranberries and blueberries are highest (drinking juice from also works). Among vegetables (including legumes), beans are highest (lentils, etc., which are staples of protein in a vegetarian diet), and Russet potatoes. Among spices, ground cloves, ground cinnamon and oregano.
June 16, 2004 was a milestone date: Report that deterministic teleportation of quantum states of two separated atoms was achieved, in two experiments. Has implications for future-generation quantum computing that will make today's supercomputers look like an abacus. As demonstrated in these teleportation experiments (known theoretically since Einstein and [http://plato.stanford.edu/entries/qt-entangle/ Schrodinger), you can create two entangled quantum systems (e.g., two atoms), send them to opposite ends of the universe -- 100,000,000 trillion trillion light years apart -- and if you read or manipulate one of these atoms, the other atom at the other end of the universe will immediately be changed as well. How is this wonderfully bizarre fact explained by physicists? The most common is the many-worlds interpretation: that there are an infinite (or near-infinite) set of co-existing similar universes which exist in parallel at the same space and time. I sometimes think high-school science should start with this stuff, rather than the usual drill, to help inspire young people to how wondrous and bizarre the universe is -- and that science can be.
Another milestone: On June 21, 2004 the great Burt Rutan's first private-enterprise manned flight into space happened on SpaceShipOne. The software connection? Financed by Paul Allen, co-founder of Microsoft.
My background in the mid 1980s focused on AI and expert systems development (which led me to general OO development). Out of this area comes the technique of rule-based programming -- practical in a subsystem for many software applications where complex rules or constraints must be met. I think developers should be aware of RBP ideas and options. There are a variety of Java-related components worth checking out: Jess, Mandarax, Drools, OPSJ, and this long list.
boston and rome
Fact: Boston is around the same latitude as Rome. Same for Toronto, Canada and Turin, Italy. It's interesting to explore why the difference in warmth, and the impact of climate change. Will there be an explosion in popularity of wool lingerie in France?
The amazing Willow bark drug that Hippocrates used. You probably know that regular low doses (81 mg) of acetylsalicylic acid (aspirin) reduces stroke and heart disease risk. New research in a large study shows it reduces by 2/3 (which is miracle-level) the risk of mouth and throat cancer if taken just once a week. Ditto in another "landmark" discovery that it's been shown to significantly reduce the risk of colon and rectal cancer, the 2nd leading cause of cancer death. Interestingly, the low 81 mg dose was more effective than a 325 mg dose.
POPFile uses Bayesian analysis. This is a useful decision support method software developers will benefit from knowing to create adaptive, learning systems. It captures the idea of degree of belief, and updating that degree based on new evidence.
Fact: the body has an internal clock. Not just the 24-hour-ish cycle, but shorter growth/rest cycles too. Until this year, scientists did not know the mechanism. Now they do. There is a special protein in every cell whose two ends are different shapes. Every 12 minutes it flips over, and the reorientation of the ends causes new effects. A husband and wife research team made the discovery after 40 years of investigation, and proved it by lengthening the 12-minute cycle, and consequently altering all other cycles in the test organisms. This is really basic stuff, and has implications for many treatments: jet-lag, ...
AspectJ, and Aspect-Oriented Programming by Gregor Kiczales and the AspectJ team at Xerox PARC. AOP as a relatively fundamental paradigm of programming and design, akin to object-oriented or function-oriented programming and design. One dimension of AOP that is not often stressed is that we can look at it as a meta-programming technology (programs that manipulate /modify programs). Viewed in this light, we can appreciate ways to use AspectJ that are not cross-cutting architectural concerns (like injecting logging support in many places) but still useful, such as writing interceptors or decorators for single points. Check out here for the big picture.