Tuesday, June 30, 2009

Download statistics by operating system

Have you wondered which operating system is the most popular? Well, I mean among BleachBit users.

More than idle fancy, the information helps guide important development decisions such as packaging and as platform-specific cleaners. There are specific cleaners for Windows, Ubuntu, Fedora, and maybe others. Slackware required a special tweak to prevent deleting important files. Debian and Ubuntu require .deb packaging which is completely different than the .rpm packaging for CentOS, Fedora, Mandriva, and OpenSUSE, and Red Hat. Of course, Windows users need .exe files with PyGTK included. All these special needs require extra time, which is time taken away from other platforms.

When I started BleachBit seven months ago, I first packaged it for Fedora, which I myself use. Then, I used openSUSE Build Service to build packages for Debian, Mandriva, openSUSE, and Ubuntu. I was surprised by the disparity and quickly realized most downloads were for Ubuntu, many for Debian, and only a few for Mandriva.

The major change is BleachBit now runs on Windows. When Download Squad reviewed BleachBit, the Windows numbers gave Ubuntu some competition. For the last week since 0.5.2 was released, the chart below shows Ubuntu is back in the lead. (Note: SourceForge doesn't update its stats often. These were the same numbers as yesterday, so who knows how old they really are.)

BleachBit 0.5.2 download statistics for about one week

Mark Twain one wrote, "There are three kinds of lies: lies, damned lies, and statistics." Indeed, this chart doesn't tell the whole story. BleachBit is included in the Debian and Ubuntu repositories, so there are more Debian and Ubuntu downloads than shown. However, Ubuntu Janty Jackalope users still download BleachBit from BleachBit because the version 0.3.x in the repository is old. SlackBuilds for Slackware has an old version 0.4.1, but I don't provide a package for Slackware. I don't know which version openSUSE's repository has, but a few weeks ago I was pleasantly surprised to find it in openSUSE. Last time I checked, Fedora's repository had too many rules for me to try to submit a package, and no one has volunteered. Last of all, Windows of course doesn't have a central repository (try to keep up, Microsoft).

Another factor is BleachBit for Windows is new, relatively unknown, and advertised as a "preview." Depending who you ask, there are 10-100 Windows desktop users for each Linux desktop user. As BleachBit matures on Windows, Ubuntu will likely take second place.

Now I'm confused which platform is still the most popular, but I still think Ubuntu wins— for now.

Monday, June 22, 2009

BleachBit 0.5.2 released

Version 0.5.2 is a maintenance release of BleachBit, the free and open source file and privacy cleaner for Linux and Windows. BleachBit aims to be an easy, advanced, and smart way to clean junk including cache, cookies, Internet history, localizations, logs, and temporary files. BleachBit is better than freeware: it's open source.

This release is considered stable for Linux and a preview release for Windows. All users are encouraged to upgrade to this release.

UPDATE

July 1, 2009: BleachBit 0.5.3 has been released.

Changes

The following changes are included since 0.5.1:

  • Clean Pidgin (chat client).
  • Clean Miro (Internet multimedia player) thanks to juancarlospaco.
  • Enhance Vuze/Azureus to clean backup files.
  • Clean OpenOffice.org 3.1 recent documents history.
  • Fix bug preventing URL history of Firefox 1 and 2 to be cleaned.
  • Fix error when cleaned size is negative.
  • Specific to Linux
    • Clean gedit thanks to Roman Horník.
    • Clean Nexuiz thanks to juancarlospaco.
    • Clean Firefox 3.5 beta on Ubuntu 9.04.
    • Clean more espeak localizations on Ubuntu and avoid error message.
    • Delete files in ~/.local/share/Trash/expunged (which can be left there by a Nautilus bug regarding files owned by other users).
    • Enhance aMSN (chat client) to clean cache.
    • Fix shredding of write-protected (read-only) files.
    • Fix compatibility packaging BleachBit on Python 2.6 systems (such as Fedora 11).
    • Don't ship Windows-only cleaners in Linux installation packages. Downstream packagers: please consider this change for your packages (a one line change each for .rpm and .deb in SVN r491).
    • Publish RPM installation package for Fedora 11.
  • Specific to Microsoft Windows
    • Clean Winamp.
    • Clean Yahoo! Messenger.
    • Clean Windows temporary file folder.
    • Workaround Python bug where in some cases BleachBit could not find files to clean because ~ did not translate to %USERPROFILE%.
    • Update NSIS installer to 2.45 for better installation on Windows 7.
    • Show BleachBit uninstaller in Add/Remove Programs.
    • Use NRV2E instead of LZMA executable compression, so BleachBit will start faster.
    • Fix shredding of Firefox URL history.
    • Fix bug requiring user to confirm system-wide cleaners.
    • Don't ship Linux-only cleaners in the Windows installation package.
  • Add Dutch translation thanks to rob.
    BleachBit 0.5.2 on Ubuntu 9.04 (Jaunty Jackalope)
) in Dutch (Nederlands)
    Want to help translate BleachBit?
  • Add Hungarian translation thanks to alfa00red.
  • Update Arabic thanks to MaXeR.
  • Update Brazilian Portuguese thanks to A. Gabriel.
  • Update Czech thanks to Roman Horník.
  • Update German thanks to MixCool.
  • Update Italian thanks to Luca Falavigna.
  • Update Slovak thanks to milboy.
  • Simplify some strings to make it easier for translators. (This is a work in progress.)

Known issues

  • On Windows when upgrading it's recommended you uninstall before installing the new BleachBit. In the future the installer will be improved.
  • Internet Explorer index.dat files cannot be cleaned because they are in use (locked) by a running process. You will see a red error. (Other cleaner programs queue the Internet Explorer index.dat files for deletion during the user login process before Internet Explorer even starts.)
  • On Windows when there is an exception (such as when a file can't be deleted), py2exe throws up an error dialog about a log file when exiting BleachBit.
  • Do translations work on Windows? BleachBit 0.5.2 is in 19 languages. Please reply with a comment on the blog or a bug report.

Web changes

BleachBit is now hosted on Google App Engine at http://bleachbit-project.appspot.com, and there are new discussion forums—a great place to ask questions.

Download

Download BleachBit now. Installation packages are ready for 19 platforms including CentOS, Debian, Fedora, Mandriva, openSUSE, Red Hat, Ubuntu, and Windows.

Saturday, June 20, 2009

"Features," the new web page

BleachBit's home page has been simplistic with few details about the application. It's about time it had a page detailing its capabilities, and now it does. Check out the new BleachBit features page on the new web site hosted on Google App Engine. The page lists all the cleaners, all the cleaner options, and enumerates the advanced features you may have overlooked. The new page also gives a sneak peak in to the next version 0.5.2.

Seeing all the cleaners for both Linux and Windows on a single web page emphasizes the length of the list. In fact, I have a backlog of cleaners to review submitted by BleachBit users (some filed in the bug tracker). Many are for applications I have never heard of. In BleachBit's menu the list of cleaners feels cluttered. Each person prefers a different applications, so a feature needed more each day is a way to automatically hide irrelevant cleaners.

Tuesday, June 9, 2009

BleachBit 0.5.1 released

Version 0.5.1 is a maintenance release of BleachBit, the free and open source file and privacy cleaner for Linux and Windows. BleachBit aims to be an easy, advanced, and smart way to clean junk including cache, cookies, Internet history, localizations, logs, and temporary files. BleachBit is better than freeware: it's open source.

This release is considered stable for Linux and a preview release for Windows. All users are encouraged to upgrade to this release.

UPDATE

June 22, 2009: BleachBit 0.5.2 has been released.

Changes

The following changes are included since 0.5.0:

  • Add menu option to securely delete any file. Just click File - Shred files and then choose any files you want to permanently delete. The file contents will be overwritten ("shredded") to prevent file recovery.
    New secure file shredder (BleachBit 0.5.1 on Windows XP)
  • Shred files on Windows. On Linux, support file shredding without the external program shred.
  • Add warning when selecting option to clear Firefox's Places database, which includes bookmarks. (Firefox's design is to include bookmarks and URL history in a single file.) Many people want "URL history" instead of "Places."
  • Clean more Google Chrome and Skype files.
  • Clean Google Chrome on Linux.
  • Clean gFTP thanks to juancarlospaco.
  • Clean Opera, RealPlayer, and X-Chat on Windows.
  • Clean Java on Windows 7 (and probably Vista too).
  • Use less hard coded paths on Windows for BleachBit configuration, cleaner definitions, and in the cleaners themselves. Now BleachBit should be easy to run on a portable drive (USB drive), though this feature has not yet been tested.
  • White-list certain files in /tmp/: TrueCrypt containers, the VirtualBox lock file, the WINE server lock file, two special KDE files, and a special PulseAudio file.
  • Request administrator privileges to install on Windows Vista.
  • Fix cleaning of Hippo OpenSim Viewer and Second Life on Windows.
  • On Windows, update the included GTK+ runtime from 2.12.9 (a year old) to 2.16.1.
  • Shrink the Windows installer by 20%.
  • On Windows Vista and 7 prevent listing some (maybe all) files twice in the preview.
  • Fix display bug related to XML parsing when there is no description element directly under the cleaner element.
  • Update Brazilian Portuguese thanks to Alex B. Oliveira and Yann S. Melo.
    Want to help translate?
  • Update Czech thanks to Roman Horník.
  • Update Serbian thanks to turncoat.
  • Update German thanks to Lunix.

Known issues

  • Internet Explorer index.dat files cannot be cleaned because they are in use (locked) by a running process. You will see a red error. (Other cleaner programs queue the Internet Explorer index.dat files for deletion during the user login process before Internet Explorer starts.)
  • On Windows when there is an exception (such as when a file can't be deleted), py2exe throws up an error dialog about a log file when exiting BleachBit.

Download

Download BleachBit now. Installation packages are ready for 18 platforms including CentOS, Debian, Fedora, Mandriva, openSUSE, Red Hat, Ubuntu, and Windows.

Monday, June 8, 2009

Statistical outlier in the MTBF (a sad story)

It was late yesterday—just hours from the anticipated BleachBit 0.5.1 release. All the QA was done. The new web pages were ready. I finished manually building installation packages for Windows, Debian 5, Ubuntu 6.06, and Ubuntu 9.04, The openSUSE Build Service finished building the remaining installation packages except for just one. When OBS finished building SLE 9, I was ready to "push the button" for the release. I was happy with the progress in 0.5.1—a good combination of features, enhancements, bug fixes, and translation updates— and looked forward to making the public announcement.

After all this work, it was time to take a break. On my main computer where I develop BleachBit I was starting to (legally) rip a new music CD in SoundJuicer. Suddenly, the screen went blank. Had I accidentally caused the system to hibernate? Maybe I had brushed the sleep key? I checked the caps lock key for a "pulse": no, it doesn't respond. Eventually the dark Linux kernel console emerged to coldly repeat two lines of cryptic errors about sda (sda is the hard drive). `'Tis some visitor,' I muttered, `tapping at my chamber door - Only this, and nothing more.' I powered the machine down forcefully while reassuring myself it was merely a fluke I/O driver malfunction: surely a reboot would restore my precious system. I haven't experienced any Linux driver stability issues in about five years, and then it was only when I made the careless mistake of ejecting a DVD while it was burning. Lately this computer had been very stable and actually had been running continuously without reboot for some 50-60 days. Disappointed to lose progress on my uptime record, I resigned to the need to reboot. Strangely the BIOS POST hard drive detection took longer than usual. Then, the BIOS flashed a message that caused my stomach to sink: INSERT BOOTABLE DISK, OPERATING SYSTEM NOT FOUND. I rebooted again: same results. I swapped cables and the SATA controller port—nothing.

So the six-month-old 500GB hard drive in a five-year-old Compaq desktop failed, and the BIOS will not acknowledge it exists. I'm still diagnosing whether it's actually the hard drive or the controller on the motherboard. I hope it's not the hard drive because some recent family photos were not backed up, but I hope it's not the motherboard because I don't have a budget for a new PC.

All that to say two things. First, BleachBit 0.5.1 is delayed (though all the source code safe thanks to SourceForge SVN). Second, never become complacent about performing regular backups! In my day job many times I've left the "operating room" to inform the worried "relatives" of the "patient's" terminal state without fully internalizing the potential for me to be the next person blind-sighted by a statistical outlier in the MTBF. Now that outlier is me.

Thursday, June 4, 2009

Validating secure erase

For a while, BleachBit has supported a secure erase feature by invoking the external program shred ubiquitous on Linux systems. (The secure erase feature overwrites the contents of files to prevent data recovery.) Of course, Windows doesn't come with shred, so BleachBit 0.5.1 now includes internal code to do the same. It's important to validate the new code, so we know it works as advertised.

First, the new code includes a unit test (as does much of BleachBit code). The unit test creates a file with a short, repeating pattern "abcdefghij," securely erases the file, and checks for remnants of the pattern. The unit test passes on Fedora 10 and on Windows 7.

The unit test has limitations, so I also performed a more sophisticated test. On Linux, I executed these commands to create and mount a fresh ext3 loopback filesystem:

dd if=/dev/zero of=/tmp/testfs bs=1M count=5 # 5 megabytes
/sbin/mkfs.ext3 /tmp/testfs
sudo mkdir /mnt/testfs
sudo mount -o loop /tmp/testfs /mnt/testfs/

Then, I executed this Python code to create a 3,000,000-byte file with the same repeating pattern and securely delete it with BleachBit.

import FileUtilities
import tempfile
import os

fn = "/mnt/testfs/wipeme"
f = open(fn, 'wb+')
f.write("abcdefghij" * (3 * 1000 * 100))
f.close()

FileUtilities.wipe_contents(fn)

Don't forget to unmount the file system:

sudo umount /mnt/testfs/

If the secure file eraser worked, there should now be zero copies of the repeating pattern. Indeed, there are none!

[a@z bleachbit]$ grep abc /tmp/testfs
[a@z bleachbit]$ grep efg /tmp/testfs
[a@z bleachbit]$ strings /tmp/testfs
lost+found
wipeme
lost+found
wipeme

Compared to Gutmann-35

BleachBit's secure erase method is a single pass with zeros, so why doesn't BleachBit use the Gutmann-35 method? The Guttman secure deletion method gives some people a false sense of security. A long time ago (in the technology timeline) the 35-pass Gutmann method was designed for MFM/RLL hard disk drives. My last computer to include a MFM hard drive was purchased in 1989. Time has passed and technology has changed. Today's PATA/IDE and SATA hard drives are much more dense, and NIST, the NSA, and other experts now agree that a single pass to overwrite data is sufficient.

However, there are two exceptions. First, erasure of individual files (by any erasure method) is not effective in some situations such as using ext3 with the non-default option data=journal. Also, modern hard drives sometimes move data transparently to the operating system. In such cases, it is necessary to either securely wipe the entire disk (in the case of the former) or physically destroy it (in case of the latter).

That said, BleachBit's method is much quicker than Guttman-35 and generally equally effective for everyday use. Generally files deleted securely by BleachBit cannot be recovered by any undelete or other file recovery methods. If you are worried about highly-motivated and well-resourced people watching you, don't forget to take your prescription. Besides, "they" have more convenient ways of watching you.