If you are worried about the ash cloud of the current volcano eruption of Iceland, just think about more severe situations such as helicopter landings in the desert. Sand is essentially hard glass (and it melts in turbines of aircrafts leaving a nasty residue). Here’s a video of a helicopter landing in Kuwait.
Sceptics of the so called “scientific consensus” say that, while CO2 is a greenhouse gas, the effect of CO2 (see my prior article on the topic) on the global temperature is rather negligible and certainly not catastrophic. Furthermore only a small quota of the CO2 in Earth’s atmosphere is caused by human activity. However so far there has been significant political pressure on anyone who dares to say this in public. They are branded as “climate change deniers”.
A set of leaked e-mails from leading researchers around the world suggests cherry-picking of data and covering up the inconvenient truth. Climate Audit wrote about Climategate and published the complete text of the e-mail a couple of weeks ago already. The news has become viral since then. The e-mail is part of a larger (61 MByte) e-mail archive which has leaked by a whistleblower.
The Corbett Report interviewed Dr. Tim Ball about the Climategate scandal.
In the following report (which I found in a comment here) Rex Murphy notices that this could be an opportunity for the scientific community to get rid of global players and policy makers and restore the principles of proper scientific conduct.
In the video Climate Catastrophe Cancelled from 2007 a scene is shown where Tim Patterson speaks in front of a government panel in Canada warning them that “science and politics have become disconnected” and that we are going to end up “sending billions of dollars in the wrong direction”.
We must not allow global players such as Al Gore to take away our freedom and set the aggenda when it comes to issues concerning the future global economy. The only way to create an environmentally friendly and sustainable economy is the scientific way!
Ruby originated in Japan, the country which is world-leading in robotic research. It suggests itself to put the two together and to start using Ruby as a language to program robots. However at the moment the performance of available Ruby interpreters is not sufficient. It is hard to achieve performance comparable to compiled C++-code since manipulation of Ruby-integers and Ruby-arrays requires frequent bounds-checking. It can be shown that universal bounds-check elimination is actually impossible.
This talk presents HornetsEye which is a Ruby-extension facilitating the development of real-time machine vision algorithms for future robotic applications. HornetsEye offers I/O facilities to capture and display videos. HornetsEye also can be integrated into GUI-applications developed with Qt4-QtRuby. Furthermore there is a set of Ruby classes which provides the means to compose native datatypes and specify operations on them. The libJIT just-in-time compiler is used to achieve real-time performance. The project was inspired by NArray and ruby-libjit.
The software is called HornetsEye and it is available under the terms and conditions of the GPL.
Feel free to leave comments below.
Discussion
Lazy computation
Future work on HornetsEye could be about using lazy computation to avoid
the creation of intermediate results when doing array operations. Here’s a
small prototype implementation. Let me know if you have any suggestions.
Using the following code one can use reflection to interpret Ruby code in
order to for example translate it to machine code later.
classConstattr_accessor:inspectalias_method:to_s,:inspectdefinitialize(s)@inspect=s.to_senddefmethod_missing(name,*args)str="#{self}.#{name}"unlessargs.empty?str+="( #{args.join', '} )"endConst.newstrenddefcoerce(y)returnConst.new(y),selfendenda=Const.new'a'# ab=Const.new'b'# b-a# a.-@a+b# a.+( b )a[2]# a[]( 2 )2*a# 2.*( a )2*a+b# 2.*( a ).+( b )2*(a+b)# 2.*( a.+( b ) )
Unfortunately Ruby reflection does not capture creation of variables,
assignment of values, and control structures such as while or if-then-else.
GPU
One could use “monkey patching” to add GPU support (using OpenCL) in a
transparent way. Furthermore it would be desirable to make use of multi-core
computers. Ruby 1.9 supports native threads but there is a global interpreter
lock on extension calls. So multi-threading has to be implemented explicitely
if it is to be used in such a Ruby extension.
Technical Issues
It was suggested to me to
make the array classes available separately
to use Rubygems for packaging the software and Gemcutter for publishing the software
to use Git for version control and to host the repositories on Github
to use ffi so that the extension works with different Ruby VMs (JRuby, Rubinius, …)