]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.html
Generated.
[homepage.git] / blog / index.html
index bc4f810c961b0d2c310a6036e333245dad350349..6a244b53c7ee551feb12f9e8fea7c7bed887c0b0 100644 (file)
 
 
  
+ <div class="entry">
+  <div class="title"><a href="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</a></div>
+  <div class="date">2009-05-02 15:00</div>
+  <div class="body">
+<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>
+</div>
+  <div class="tags">
+   
+
+   
+   Tags: <a href="tags/debian">debian</a>, <a href="tags/english">english</a>. 
+  
+  </div>
+ </div>
+ <div class="padding"></div>
  <div class="entry">
   <div class="title"><a href="No_patch_is_not_better_than_a_useless_patch.html">No patch is not better than a useless patch</a></div>
   <div class="date">2009-04-28 09:30</div>
@@ -359,58 +410,6 @@ rettet mot seg.</p>
  </div>
  <div class="padding"></div>
  
- <div class="entry">
-  <div class="title"><a href="Recording_video_from_cron_using_VLC.html">Recording video from cron using VLC</a></div>
-  <div class="date">2009-04-05 10:00</div>
-  <div class="body">
-<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>
-</div>
-  <div class="tags">
-   
-
-   
-   Tags: <a href="tags/english">english</a>, <a href="tags/nuug">nuug</a>, <a href="tags/video">video</a>. 
-  
-  </div>
- </div>
- <div class="padding"></div>
  <p style="text-align: right;"><a href="index.rss"><img src="xml.gif" alt="RSS feed" width="36" height="14"></a></p>
 
 <div id="sidebar">
@@ -433,6 +432,8 @@ wait $pid</pre></blockquote>
 
 <li><a href="archive/2009/04/">April (10)</a></li>
 
+<li><a href="archive/2009/05/">May (1)</a></li>
+
 </ul></li>
 
 <li>2008
@@ -457,11 +458,11 @@ wait $pid</pre></blockquote>
 
  <li><a href="tags/aros">aros (1)</a></li>
 
- <li><a href="tags/debian">debian (7)</a></li>
+ <li><a href="tags/debian">debian (8)</a></li>
 
  <li><a href="tags/debian edu">debian edu (6)</a></li>
 
- <li><a href="tags/english">english (11)</a></li>
+ <li><a href="tags/english">english (12)</a></li>
 
  <li><a href="tags/fiksgatami">fiksgatami (1)</a></li>