X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/478c6906273acb0b5b751165d2a2b70b2997fd88..dd16748399690c30557c60d3cae2f0aa906bcc51:/blog/index.rss diff --git a/blog/index.rss b/blog/index.rss index 3a88d6efa0..451611d5cc 100644 --- a/blog/index.rss +++ b/blog/index.rss @@ -6,6 +6,51 @@ + + Two projects that have improved the quality of free software a lot + Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html + Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html + Sat, 2 May 2009 15:00:00 +0200 + +<p>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.</p> + +<p>The first one is <a href="http://valgrind.org/">valgrind</a>, 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. + +<p>The second one is +<a href="http://en.wikipedia.org/wiki/Coverity">Coverity</a> 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 href="http://www.scan.coverity.com/">a community service</a> 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.</p> + +<p>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.</p> + + + No patch is not better than a useless patch No_patch_is_not_better_than_a_useless_patch.html @@ -292,51 +337,5 @@ rettet mot seg.</p> - - Recording video from cron using VLC - Recording_video_from_cron_using_VLC.html - Recording_video_from_cron_using_VLC.html - Sun, 5 Apr 2009 10:00:00 +0200 - -<p>One think I have wanted to figure out for a along time is how to -run vlc from cron to do recording of video streams on the net. The -task is trivial with mplayer, but I do not really trust the security -of mplayer (it crashes too often on strange input), and thus prefer -vlc. I finally found a way to do it today. I spent an hour or so -searching the web for recipes and reading the documentation. The -hardest part was to get rid of the GUI window, but after finding the -dummy interface, the command line finally presented itself:</p> - -<blockquote><pre>URL=http://www.ping.uio.no/video/rms-oslo_2009.ogg -SAVEFILE=rms.ogg -DISPLAY= vlc -q $URL \ - --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \ - --intf=dummy</pre></blockquote> - -<p>The command stream the URL and store it in the SAVEFILE by -duplicating the output stream to "nodisplay" and the file, using the -dummy interface. The dummy interface and the nodisplay output make -sure no X interface is needed.</p> - -<p>The cron job then need to start this job with the appropriate URL -and file name to save, sleep for the duration wanted, and then kill -the vlc process with SIGTERM. Here is a complete script -<tt>vlc-record</tt> to use from <tt>at</tt> or <tt>cron</tt>:</p> - -<blockquote><pre>#!/bin/sh -set -e -URL="$1" -SAVEFILE="$2" -DURATION="$3" -DISPLAY= vlc -q "$URL" \ - --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \ - --intf=dummy < /dev/null > /dev/null 2>&1 & -pid=$! -sleep $DURATION -kill $pid -wait $pid</pre></blockquote> - - -