-
As part of the work we do in NUUG
-to publish video recordings of our monthly presentations, we provide a
-page with embedded video for easy access to the recording. Putting a
-good set of HTML tags together to get working embedded video in all
-browsers and across all operating systems is not easy. I hope this
-will become easier when the <video> tag is implemented in all
-browsers, but I am not sure. We provide the recordings in several
-formats, MPEG1, Ogg Theora, H.264 and Quicktime, and want the
-browser/media plugin to pick one it support and use it to play the
-recording, using whatever embed mechanism the browser understand.
-There is at least four different tags to use for this, the new HTML5
-<video> tag, the <object> tag, the <embed> tag and
-the <applet> tag. All of these take a lot of options, and
-finding the best options is a major challenge.
-
-
I just tested the experimental Opera browser available from labs.opera.com, to see how it handled
-a <video> tag with a few video sources and no extra attributes.
-I was not very impressed. The browser start by fetching a picture
-from the video stream. Not sure if it is the first frame, but it is
-definitely very early in the recording. So far, so good. Next,
-instead of streaming the 76 MiB video file, it start to download all
-of it, but do not start to play the video. This mean I have to wait
-for several minutes for the downloading to finish. When the download
-is done, the playing of the video do not start! Waiting for the
-download, but I do not get to see the video? Some testing later, I
-discover that I have to add the controls="true" attribute to be able
-to get a play button to pres to start the video. Adding
-autoplay="true" did not help. I sure hope this is a misfeature of the
-test version of Opera, and that future implementations of the
-<video> tag will stream recordings by default, or at least start
-playing when the download is done.
-
-
The test page I used (since changed to add more attributes) is
-available
-from the nuug site. Will have to test it with the new Firefox
-too.
-
-
In the test process, I discovered a missing feature. I was unable
-to find a way to get the URL of the playing video out of Opera, so I
-am not quite sure it picked the Ogg Theora version of the video. I
-sure hope it was using the announced Ogg Theora support. :)
+
There are two software projects that have had huge influence on the
+quality of free software, and I wanted to mention both in case someone
+do not yet know them.
+
+
The first one is valgrind, a
+tool to detect and expose errors in the memory handling of programs.
+It is easy to use, all one need to do is to run 'valgrind program',
+and it will report any problems on stdout. It is even better if the
+program include debug information. With debug information, it is able
+to report the source file name and line number where the problem
+occurs. It can report things like 'reading past memory block in file
+X line N, the memory block was allocated in file Y, line M', and
+'using uninitialised value in control logic'. This tool has made it
+trivial to investigate reproducible crash bugs in programs, and have
+reduced the number of this kind of bugs in free software a lot.
+
+
The second one is
+Coverity which is
+a source code checker. It is able to process the source of a program
+and find problems in the logic without running the program. It
+started out as the Stanford Checker and became well known when it was
+used to find bugs in the Linux kernel. It is now a commercial tool
+and the company behind it is running
+a community service for the
+free software community, where a lot of free software projects get
+their source checked for free. Several thousand defects have been
+found and fixed so far. It can find errors like 'lock L taken in file
+X line N is never released if exiting in line M', or 'the code in file
+Y lines O to P can never be executed'. The projects included in the
+community service project have managed to get rid of a lot of
+reliability problems thanks to Coverity.
+
+
I believe tools like this, that are able to automatically find
+errors in the source, are vital to improve the quality of software and
+make sure we can get rid of the crashing and failing software we are
+surrounded by today.