]> pere.pagekite.me Git - homepage.git/blob - blog/Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html
Generated.
[homepage.git] / blog / Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: Two projects that have improved the quality of free software a lot</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/vim.css" />
9 </head>
10 <body>
11 <div class="title">
12 <h1>
13 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
14
15 </h1>
16
17 </div>
18
19
20 <div class="entry">
21 <div class="title">Two projects that have improved the quality of free software a lot</div>
22 <div class="date"> 2nd May 2009</div>
23 <div class="body"><p>There are two software projects that have had huge influence on the
24 quality of free software, and I wanted to mention both in case someone
25 do not yet know them.</p>
26
27 <p>The first one is <a href="http://valgrind.org/">valgrind</a>, a
28 tool to detect and expose errors in the memory handling of programs.
29 It is easy to use, all one need to do is to run 'valgrind program',
30 and it will report any problems on stdout. It is even better if the
31 program include debug information. With debug information, it is able
32 to report the source file name and line number where the problem
33 occurs. It can report things like 'reading past memory block in file
34 X line N, the memory block was allocated in file Y, line M', and
35 'using uninitialised value in control logic'. This tool has made it
36 trivial to investigate reproducible crash bugs in programs, and have
37 reduced the number of this kind of bugs in free software a lot.
38
39 <p>The second one is
40 <a href="http://en.wikipedia.org/wiki/Coverity">Coverity</a> which is
41 a source code checker. It is able to process the source of a program
42 and find problems in the logic without running the program. It
43 started out as the Stanford Checker and became well known when it was
44 used to find bugs in the Linux kernel. It is now a commercial tool
45 and the company behind it is running
46 <a href="http://www.scan.coverity.com/">a community service</a> for the
47 free software community, where a lot of free software projects get
48 their source checked for free. Several thousand defects have been
49 found and fixed so far. It can find errors like 'lock L taken in file
50 X line N is never released if exiting in line M', or 'the code in file
51 Y lines O to P can never be executed'. The projects included in the
52 community service project have managed to get rid of a lot of
53 reliability problems thanks to Coverity.</p>
54
55 <p>I believe tools like this, that are able to automatically find
56 errors in the source, are vital to improve the quality of software and
57 make sure we can get rid of the crashing and failing software we are
58 surrounded by today.</p>
59 </div>
60
61 <div class="tags">Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.</div>
62
63
64 </div>
65
66
67
68
69 <div id="sidebar">
70
71
72
73 <h2>Archive</h2>
74 <ul>
75
76 <li>2012
77 <ul>
78
79 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
80
81 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
82
83 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
84
85 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
86
87 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
88
89 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (7)</a></li>
90
91 </ul></li>
92
93 <li>2011
94 <ul>
95
96 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
97
98 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
99
100 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
101
102 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
103
104 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
105
106 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
107
108 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
109
110 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
111
112 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
113
114 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
115
116 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
117
118 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
119
120 </ul></li>
121
122 <li>2010
123 <ul>
124
125 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
126
127 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
128
129 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
130
131 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
132
133 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
134
135 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
136
137 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
138
139 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
140
141 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
142
143 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
144
145 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
146
147 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
148
149 </ul></li>
150
151 <li>2009
152 <ul>
153
154 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
155
156 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
157
158 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
159
160 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
161
162 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
163
164 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
165
166 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
167
168 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
169
170 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
171
172 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
173
174 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
175
176 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
177
178 </ul></li>
179
180 <li>2008
181 <ul>
182
183 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
184
185 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
186
187 </ul></li>
188
189 </ul>
190
191
192
193 <h2>Tags</h2>
194 <ul>
195
196 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
197
198 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
199
200 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
201
202 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (2)</a></li>
203
204 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (12)</a></li>
205
206 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
207
208 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (54)</a></li>
209
210 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (103)</a></li>
211
212 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (8)</a></li>
213
214 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (3)</a></li>
215
216 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (134)</a></li>
217
218 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (16)</a></li>
219
220 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
221
222 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (27)</a></li>
223
224 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (16)</a></li>
225
226 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
227
228 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (4)</a></li>
229
230 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
231
232 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (16)</a></li>
233
234 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (170)</a></li>
235
236 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (130)</a></li>
237
238 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (1)</a></li>
239
240 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
241
242 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (25)</a></li>
243
244 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (47)</a></li>
245
246 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
247
248 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
249
250 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
251
252 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (4)</a></li>
253
254 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
255
256 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
257
258 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (1)</a></li>
259
260 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (23)</a></li>
261
262 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
263
264 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (29)</a></li>
265
266 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (1)</a></li>
267
268 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (4)</a></li>
269
270 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (10)</a></li>
271
272 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (6)</a></li>
273
274 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (25)</a></li>
275
276 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (1)</a></li>
277
278 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (20)</a></li>
279
280 </ul>
281
282
283 </div>
284 <p style="text-align: right">
285 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.4</a>
286 </p>
287
288 </body>
289 </html>