]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.rss
Generated.
[homepage.git] / blog / index.rss
index 3a88d6efa0dbb1ebe154a709bcbba45df23f7556..451611d5cc728379eb8027ea5d3087ece9578824 100644 (file)
@@ -6,6 +6,51 @@
                 <link></link>
                 <atom:link href="index.rss" rel="self" type="application/rss+xml" />
        
+       <item>
+               <title>Two projects that have improved the quality of free software a lot</title>
+               <link>Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html</link>
+               <guid isPermaLink="true">Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html</guid>
+                <pubDate>Sat, 2 May 2009 15:00:00 +0200</pubDate>
+               <description>
+&lt;p&gt;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.&lt;/p&gt;
+
+&lt;p&gt;The first one is &lt;a href=&quot;http://valgrind.org/&quot;&gt;valgrind&lt;/a&gt;, 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 &#39;valgrind program&#39;,
+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 &#39;reading past memory block in file
+X line N, the memory block was allocated in file Y, line M&#39;, and
+&#39;using uninitialised value in control logic&#39;.  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.
+
+&lt;p&gt;The second one is
+&lt;a href=&quot;http://en.wikipedia.org/wiki/Coverity&quot;&gt;Coverity&lt;/a&gt; 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
+&lt;a href=&quot;http://www.scan.coverity.com/&quot;&gt;a community service&lt;/a&gt; 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 &#39;lock L taken in file
+X line N is never released if exiting in line M&#39;, or &#39;the code in file
+Y lines O to P can never be executed&#39;.  The projects included in the
+community service project have managed to get rid of a lot of
+reliability problems thanks to Coverity.&lt;/p&gt;
+
+&lt;p&gt;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.&lt;/p&gt;
+</description>
+       </item>
+       
        <item>
                <title>No patch is not better than a useless patch</title>
                <link>No_patch_is_not_better_than_a_useless_patch.html</link>
@@ -292,51 +337,5 @@ rettet mot seg.&lt;/p&gt;
 </description>
        </item>
        
-       <item>
-               <title>Recording video from cron using VLC</title>
-               <link>Recording_video_from_cron_using_VLC.html</link>
-               <guid isPermaLink="true">Recording_video_from_cron_using_VLC.html</guid>
-                <pubDate>Sun, 5 Apr 2009 10:00:00 +0200</pubDate>
-               <description>
-&lt;p&gt;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:&lt;/p&gt;
-
-&lt;blockquote&gt;&lt;pre&gt;URL=http://www.ping.uio.no/video/rms-oslo_2009.ogg
-SAVEFILE=rms.ogg
-DISPLAY= vlc -q $URL \
-  --sout=&quot;#duplicate{dst=std{access=file,url=&#39;$SAVEFILE&#39;},dst=nodisplay}&quot; \
-  --intf=dummy&lt;/pre&gt;&lt;/blockquote&gt;
-
-&lt;p&gt;The command stream the URL and store it in the SAVEFILE by
-duplicating the output stream to &quot;nodisplay&quot; and the file, using the
-dummy interface.  The dummy interface and the nodisplay output make
-sure no X interface is needed.&lt;/p&gt;
-
-&lt;p&gt;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
-&lt;tt&gt;vlc-record&lt;/tt&gt; to use from &lt;tt&gt;at&lt;/tt&gt; or &lt;tt&gt;cron&lt;/tt&gt;:&lt;/p&gt;
-
-&lt;blockquote&gt;&lt;pre&gt;#!/bin/sh
-set -e
-URL=&quot;$1&quot;
-SAVEFILE=&quot;$2&quot;
-DURATION=&quot;$3&quot;
-DISPLAY= vlc -q &quot;$URL&quot; \
-  --sout=&quot;#duplicate{dst=std{access=file,url=&#39;$SAVEFILE&#39;},dst=nodisplay}&quot; \
-  --intf=dummy &lt; /dev/null &gt; /dev/null 2&gt;&amp;1 &amp;
-pid=$!
-sleep $DURATION
-kill $pid
-wait $pid&lt;/pre&gt;&lt;/blockquote&gt;
-</description>
-       </item>
-       
         </channel>
 </rss>