panthema / tags / utilities

Weblog Articles Tagged with '#utilities'

Weblog Articles

Plot of Lines of Code

Lines of Code Plotted over Time of Some Large and Some Small Projects

Posted on 2019-11-22 10:30 by Timo Bingmann at Permlink with 0 Comments. Tags: #utilities

This article contains a chart of code line statistics over time extracted from a set of popular and less known git repositories. The git repositories are read with a script and each tag (release/version) is checked out and analyzed. If there are too few tags or versions (< 20), then for each beginning of a month the current commit is checked out analyzed. For each of these commit trees, the number of lines of code is determined with cloc (version 1.85).

Of course one can argue about whether lines of code is a useful metric at all. Depending on programming language and style the density of code will vary a lot. Furthermore, many projects over time have accidentally or purposefully included external library code (e.g. boost or similar packages) which greatly inflates their metric. And of course long source code may not actually accomplish much compared to a small algorithmic code. Nevertheless I believe the lines of code still somewhat valuable to compare the amount of developer time spent on the open-source projects.

This article continues on the next page ...

Thumbnail of a pie chart filling to 100%

Released disk-filltest 0.7 - Simple Tool to Detect Bad Disks by Filling with Random Data

Posted on 2013-03-27 21:32 by Timo Bingmann at Permlink with 0 Comments. Tags: #c++ #utilities

This post announces the first version of disk-filltest, a very simple tool to test for bad blocks on a disk by filling it with random data. The function of disk-filltest is simple:

  • Write files random-######## to the current directory until the disk is full.
  • Read the files again and verify the pseudo-random sequence written.
  • Any write or read error will be reported, either by the operating system or by checking the pseudo-random sequence.
  • Optionally, delete the random files after a successful run.

See the disk-filltest project page for more information about version 0.7.


Yet Another Release of digup 0.6.40 - A Digest Updating Tool

Posted on 2011-01-31 20:25 by Timo Bingmann at Permlink with 0 Comments. Tags: #c++ #utilities

This is yet another release entry of digup. This time, however, it is a major release with lots of new improvements and some old fixes:

  • Added new flags --modify-window=number to allow larger deltas in the modification time of files. This is a fixup for checking backups copied onto FAT filesystems, because these store the time stamp with a precision of only 2 seconds. Since this is a common operation, the shortcut -w/--windows will set the allowed modification window to 1.
  • Also added a new flag --exclude-marker=file, which makes the recursive file system walk skip all directories (and their sub-directories) containing a special marker file usually called .nobackup in other programs. This option is persistent and stored in the created digest file, so it must only be specified once and then in all subsequent runs the same directory marker is used to selectively skip over special directories.
  • Added a --restrict=pattern temporary exclusion flag. If specified, all paths containing the pattern as a substring are temporarily skipped. This allows one to quickly check a specific folder or file structure for modifications. Especially useful in combination with -c to perform a full digest check on only a subset of the files.
  • One more smaller fixup: using 64-bit file offsets on Window, which allows files larger than 2GB to work correctly.

For more information and the new version see the digup web page.


Bugfix Release: digup 0.6.30 - A Digest Updating Tool

Posted on 2010-10-03 16:12 by Timo Bingmann at Permlink with 0 Comments. Tags: #c++ #utilities

Fixed another severe bug in the digup tool: on the amd64 architecture the tool crashed when writing the digest file, thanks goes to Daniel D. for reporting and fixing this bug.

The bug was caused by the variable arguments lists va_list used twice in the fprintfcrc() function. Apparently, on the amd64 platform va_start() and va_end() must be called twice even when passed the list to vsprintf().

For more information and the new version see the digup web page.


Bugfix Release: digup 0.6.27 - A Digest Updating Tool

Posted on 2010-08-20 23:05 by Timo Bingmann at Permlink with 0 Comments. Tags: #c++ #utilities

Fixed a two bugs in the digup tool: added large file support when compiling the program and fixed a string allocation bug.

This new version enables large file support by using long long variables for size. Furthermore, a string allocation bug was fixed which occured when using -t and -f command line parameters.

For more information and the new version see the digup web page.


Digup shovel and digest matching

Published digup 0.6.23 - A Digest Updating Tool

Posted on 2009-11-10 22:30 by Timo Bingmann at Permlink with 0 Comments. Tags: #c++ #utilities

Published a small, but very useful console tool to update md5sum or shasum digest files. It will read existing md5sum.txt files and add new files to it without rereading the whole directory tree.

This makes digup very useful to update and verify incremental archives like chronological data storages or music collections, which are nowadays commonly stored and backuped on hard disks. Using a full file digest scan even slowly creeping bad blocks on old hard disks can be detected. By using a crontab entry, this check can be performed unattended and routinely.

For more information, the source code and binaries for various platforms see the digup web page.