Wednesday, September 30, 2009

PeerBlock 1.0 Launch Party!

To celebrate the recent release of PeerBlock 1.0, I'm trying to put together a little get-together for PeerBlock users local to the New York City area. Our webstats show a few thousand users from in and around NYC - if you're one of them, you should stop by!

More details can be found on our main site: PeerBlock 1.0 Launch Party.

Hope to see you there,

        ---  Mark  ---

Wednesday, September 23, 2009

PeerBlock r172 Interim Release - 1.0 Release Candidate 2

We've fixed a few issues with our previous r162 "PeerBlock 1.0 Release Candidate" release, so wanted to get some additional airtime with one more Release Candidate before we announce PeerBlock 1.0 on the main site. Unless any of you report an extremely critical "show stopper" type bug within the next few days, we're planning on releasing a PeerBlock 1.0 version on the main site this weekend.

Once again, though, please remember that this is still an Interim Release, and as such will be updated more often than a Public Release would, and could potentially still contain some bugs. We will still be making a few changes before we release PeerBlock 1.0, but will release a "PeerBlock 1.0 'RTM'" version at that same time so that you all get those changes at the same time.

What's Changed

Here's what's different between the last Interim Release (r162) and this one. Not as many as last time, don't worry...
  • Fix for Outlook 2010 / Live Mail problem - For some reason if you were running Outlook 2010 or the MS Live Mail desktop client, PeerBlock could experience some problems if you tried starting up a second instance of it - the second instance of peerblock.exe would show up in the task manager until you exited that email program. This is fixed now!
  • Default "Show Splashscreen" to False - Due to many peoples' complaints about how bad the splashscreens looked (my attempt at lame "programmer art" early on, sorry), and the fact that they really are quite unnecessary, we're now defaulting this option to False on fresh installs. You can always turn 'em on yourself if you want to see them. Won't affect you on upgrade, unless you reset PeerBlock's settings on install.
  • Added "View" Buttons to List Manager - You can now view the contents of your Default Lists. This was an unintended consequence of moving these lists to checkboxes: there was no way to view them anymore!
  • Default List Descriptions Swapped - Previously, the "Spyware" and "Advertisements" lists' descriptions on the List Manager were swapped.
  • Disable Exception Reporting - We don't have a server (or software written to run on one) available to receive this sort of data right now, so disabled the built-in automatic exception reporting (that "this problem has been reported to Phoenix Labs" stuff).
  • More Performant Tracelogging - Updated the tracelogging routine to abort more quickly if we're attempting to log a message at a level below that which we're currently configured to display. This should help out a (minor? insignificant?) bit with overall performance of the app.
  • "XP dropdown list squashed" UI Issues - Think we've found the last of these: the "Protocol" and "Action" in both the main History window and the File -> Export to... menu of the History window.
  • Remove .DMP on Uninstall -Not that you're ever going to want to uninstall PeerBlock of course, but just in case you do for whatever reason we will now clean up that peerblock.dmp file (if created) instead of leaving it around on your disk.
  • User Manual - We're starting to put together an HTML User Manual for PeerBlock. In addition to hosting this on our main site, this will be included in your installs. Note that since we're trying to make this usable by newbies as well as experienced users we're including lots of screenshots; this has caused the size of our download to increase by about 500k. Also note that the documentation is still under construction at this point - and yes it's utterly unstyled and incomplete - we're only including it here to make sure that our Installer stuff is correctly installing/uninstalling it so that we'll be ready to rock once PeerBlock 1.0 comes out. If there's anything you'd like to see in there, please let us know!

Known Issues

Again, the Installer for this version will not detect whether a pre-r162 PeerBlock is running or not. So if you're upgrading from r131 or earlier, it is important that you make sure that PeerBlock is not running before installing this one.

Other issues can of course be found on our Issue Tracker.

Get it Here

PeerBlock r172 Installer - This is the recommended download for most users.

PeerBlock "Portable" Packages:

We're Almost There...!

Thanks to everybody who donated after I mentioned last time that we were "underwater" as far as donations go!

We're now up to $880 worth of total donations, versus $817 worth of expenses! But don't forget, we are still accepting donations to help pay for rental of a VPS server which should let us create a "real" online-update feature, and we will of course be needing to purchase another $230 code-signing certificate in less than 12 months. So if you find PeerBlock useful, please consider donating a few dollars to help keep us afloat!

And again, to all those who have donated already - multiple times for some of you - THANKS! We wouldn't be where we are today if it wasn't for your generosity.

Expect another Interim Release to be posted sometime around this weekend, to coincide with the release of our official PeerBlock 1.0 release - maybe 24 hours earlier to get an ultra-quick "sanity test" out of it. After that it will likely be a few weeks until the next one, unless we have to release something to fix a particularly nasty bug. But don't worry, we are far from done! Lots of stuff on our "To-do List", including some stuff that we really haven't wanted to start working on yet so that we don't destabilize things while we're gearing up for 1.0. I'll post more about where we're headed next week, after 1.0 is out the gates...

Thanks again for all your support, whether it be monetarily, reporting bugs or suggestions, or even just sending in a little "Thank you, you guys rock!" feedback.

        ---  Mark  ---

Thursday, September 17, 2009

PeerBlock r162 Interim Release - now with a signed driver!

UPDATE: This release is no longer the latest available! It is strongly recommended that you upgrade to the latest Interim Release instead.

Here it is: a signed-driver-containing PeerBlock 1.0 Release Candidate!

At this point we have pretty much all of the "showstopper" type bugs fixed, so think we're pretty much ready for an official 1.0 stable PeerBlock Public Release. However, we need your help! We'd obviously prefer for our 1.0 release to be truly stable, so if you encounter any problems with it please let us know. I've seen comments on various forums/review-sites in the format "I keep starting it but it won't start. FAIL!" - no additional info, no attempt to contact us about it, no nuthin'. This doesn't help anyone! If you're experiencing problems, PLEASE let us know about them . . . and if we have any followup questions please get us the extra information we're looking for. We actually try to be pretty good about addressing user issues, but we can't fix bugs we don't know about! And PeerBlock is running just fine on my machine...

So please, help us make PeerBlock better!

Okay, off my soapbox now. Don't forget that this release is an Interim Release, which means that it will check for new Interim Releases whenever it checks for updates. Depending on how this release goes, we may need to release another Release Candidate "Interim Release" before officially releasing a version 1.0 Public Release to the main site. So you may get another update notice in a few days. Once we release 1.0 you can switch over from the Interim Release train to the Public Release one if you want to get updated versions less frequently; all you'll need to do is install a Public Release into the same directory in which you currently have PeerBlock installed and everything will work just fine.

What's Changed

I know, I know, there's a LOT of changes going on here, and there's probably no way you're going to read about 'em all. If you're going to just skim through them, you really should at least read the first four, and then you can skip down to the Known Issues section. I'll cry a little on the inside since I spent all this time writing up this big ol' changelist, but that's fine, I understand...

Here's what's different between the last Interim Release (r131) and this one:
  • Signed Driver!! - We're now signing pbfilter.sys, peerblock.exe, and the installer-package itself. So those of you running on 64-bit Vista/Win7 systems should no longer need to test-sign the driver or hit F8 while rebooting or anything. (Woo-hoo!!) For people running on Vista/Win7 with UAC enabled, instead of having it popup a "scary" yellow warning-prompt asking if you want to run peerblock (or the installer) it should instead show a nice calming blue box as well. Ahhh, isn't it nice?
  • Display Warning if PG2 is Running - We'll now display a warning message if PG2 is detected running, instead of merely attempting to bring up its UI if we detect it. Side-effects of this change include us considering older versions of PeerBlock as PG2, and the Installer not noticing if older versions of PeerBlock are running when you try to install this one.
  • Default "Show Allowed" to False - On fresh installs, the "Show allowed connections" option will default to false. To keep people from thinking that PeerBlock isn't working if they don't see it doing anything, We're now automatically logging the first 9 or 10 Allowed packets regardless of your ShowAllowed setting, and after that logging a message explaining why we've stopped blocking them (presuming you have ShowAllowed set to false that is, of course).
  • Migrate Lists to IBlocklist Lists - We'll check your list of lists to see if you have any old list URLs in there. If so we'll switch them over to hosted URLs instead, and remove the "Gov" list if you had it set.
  • Run As Admin on 32-bit Vista/Win7 - We apparently accidentally removed the "requires admin" stuff from the 32-bit Vista/Win7 version at some point, probably back around r5. It should now automatically run as Admin, popping up a UAC prompt if you have UAC enabled, without you needing to set that Compatibility setting on peerblock.exe
  • Updated List Manager UI - Updated the "List Manager" window, to make it easier to find the list of lists that the Startup Wizard originally presented to you.
  • Startup Wizard Cleanup - Realigned things a bit so that this window layout is a bit cleaner.
  • Auto-Update now Works - Previously, auto-update wouldn't end up generating the list cache, so none of the list updates it would automagically download for you actually ended up being used until you manually updated.
  • Fixed Hang while Enabling Blocking - There was an occasional hang some people had encountered, which would cause PeerBlock to become unresponsive e.g. to mouse clicks. This would sometimes occur during times of heavy stress (i.e. lots of network traffic going on), and could be manually caused by clicking the Enable/Disable button too quickly after list-update, or enablig/disabling PeerBlock while a list-update was underway.
  • Tray Icon Issues - If you ticked and then unticked the "Always hide tray icon" option in Settings, right-clicking on the tray icon would do nothing. The same thing would happen if explorer.exe crashed and restarted (e.g. by you restarting it via the Task Manager). Both of these problems seem to be resolved now.
  • "Save" Button on Settings Panel - The Settings panel now has a Save button on the bottom left of it. Clicking this button will immediately write your config out to peerblock.conf, instead of you having to wait for a successful close of the program. PeerBlock will still save your settings when it successfully terminates - this button is really just to make people feel better, and to save your settings in case PeerBlock crashes.
  • XP UI Issue - Fixed the UI so that on XP the "URL List" dropdown on the Add List window (from the List Manager) isn't "squashed".
  • Improved Error Reporting for Failed List Updates - We now display more information in the Updates window if you encounter a problem while downloading a list update; not just the generic "Error contacting url" message.
  • Verify Downloaded Lists Before Using - After downloading a list-update, we will now verify that we can open and parse that file before overwriting the old one. Basically so long as we can find at least one range in it, we'll assume it's good.
  • Archive History Every N Days - The history-archiving stuff should now work as it should, archiving and/or deleting every N days as you've specified (instead of every 10 minutes, regardless of your timeframe).
  • Possible Fix for Crash on Install - A few people have reported OS crashes on their first PeerBlock run after installation. Originally I thought they were just random crashes, but the stack traces in the dumps are all very similar (though not specifically pointing a finger of blame at anyplace in pbfilter.sys). After noticing that one recent reporter of the bug was running PG2 beforehand, I'm theorizing that the problem may be caused by Windows experiencing conflicts because the PG2 driver never finished cleaning up after itself, and we are loading with some of the same identifiers. Hopefully this change will differentiate ourselves enough that we won't be taken out by the lingering effects of PG2.
  • New Installer Image - We changed the picture that is displayed on the first page of the Installer. If you're wondering about the design inspiration behind the image, it was apparently "a drop of PeerGuardian in every download". =;)
  • Installer Removes Shortcuts if Not Specified - When you install PeerBlock on top of a pre-existing installation, if you unselect e.g. the "Add Desktop Icon" option it will delete those files for you.
  • Installer Copies PG2 Lists - If you elect to transfer your old PG2 settings over to PeerBlock during a fresh install, the Installer should now transfer over your permallow and permblocks list, along with any custom lists you've created (so long as you stored them as .p2p files in the PeerGuardian or PeerGuardian\lists directories, at least...).
  • Don't Update Twice after Install - After you first install PeerBlock (i.e. not upgrading a previous release), we used to update our lists and regenerate the list-cache. And then we'd start PeerBlock, and update our lists and regenerate the list-cache. That was just silly.

Known Issues

The issue we're currently most concerned with is Issue 101, a problem with PeerBlock sometimes not exiting if you are running MS Outlook or the MS Live Mail desktop client. If you are running one of those two programs, I strongly recommend that you read the aforementioned bug, and check your current version of PeerBlock to see if the problem exists there. Not sure whether this bug was introduced recently or if it's a long-standing one, but the discovery of this issue yesterday is the reason we waited another day before releasing this Interim Release. Since it doesn't appear to show up on everyone's machines, even if they're running one of the aforementioned tools - including mine, which makes it more difficult to debug - we decided we're okay for now though we do want to resolve this prior to releasing 1.0.

Other than that, since the Installer for this version will not detect whether a pre-r162 PeerBlock is running or not, it is important that you make sure that PeerBlock is not running before installing this one. We needed to make this break at some point, and decided it's better to do it sooner rather than later.

Also please note that we're now displaying the first 9 or 10 allowed packets even if you have the "Show allowed connections" setting disabled. Especially since we're now defaulting this setting to disabled on new installs, we felt it was important to log something so that people (especially new users) don't end up with the mistaken impression that PeerBlock isn't working.

There is still an extremely rare bug that can cause PeerBlock to crash while it's downloading list updates, Issue 24. We'd patched around this a long time ago, but a very few people have seen it show up very rarely. There is an additional workaround possible, but it's going to require a nontrivial rework of our list-downloading code . . . and since this bug has only been seen very rarely, we don't want the cure to be worse than the disease. If you've seen this crash, please let us know - if it's more common than we currently believe we may change our opinion as to whether we should implement the new workaround before or after 1.0!

Get it Here

PeerBlock r162 Installer - This is the recommended download for most users.

PeerBlock "Portable" Packages:

Time to Pass the Hat...

Unfortunately, the paperwork required to get us registered as a company - which was required in order to get the signed driver - has ended up costing a bit more than originally anticipated. As of right now, I'm actually out over a hundred bucks from my own pocket. If you find this version of PeerBlock useful, I would greatly appreciate any donation you can spare to help defray those costs. And even over and above that I'd still love to build up a "war chest" for PeerBlock, such that we could rent a nice server on which we could build a "real" online-update functionality. And in just under 12 months from now we'll need to purchase another code-signing certificate. Your contributions will definitely not be going into a black hole...

If you can spare something to help support us, just click the above Donate button - it will be greatly appreciated. If not, I understand - it's a tough economy nowadays.

Update: Thanks to your generous donations, we're actually back in the black! We've currently (9/22/09) raised $845 versus the $817 worth of expenses incurred to-date. We're still collecting donations for that nice VPS server and for next year's code-signing certificate, but I just wanted to let y'all know how much you rock. THANK YOU!!

...and now, Enjoy!

Other than that, I hope this version runs as stably for you as it has been running for those of us on the Dev and Test teams! If not, please make sure to let us know: you can comment here on this blog post, add an issue to our Issue Tracker, bring it up on our Forums, or even just send me a piece of email. (You can send some feedback even if everything is working just well for you, we won't turn down a little bit of praise now and then...!)

Expect another Interim Release to be posted in a few days. This will either be a second Release Candidate, or else a "Release To Manufacturing (RTM)" version to make sure y'all are on par with the official Public Release. Oh and I promise this version wasn't accidentally created as a Test Release, unlike our previous release. I'm still very sorry for that one...

Once again, my gratitude and appreciation to the other members of the Dev Team: night_stalker_z, DarC, and XhmikosR; and also to all the members of our Beta Team who've spent a lot of time banging away at this stuff - even more so over the course of the past few weeks than ever before. And most especially to all the people who've contributed to our cause over the course of the past few months, who've made this signed-driver a reality!

And thanks to you for following along with us...

        ---  Mark  ---

Wednesday, September 2, 2009

PeerBlock r131 Interim Release

Quite a few changes have gone in to the code since our release of the r93 Interim Release two weeks ago, and since we're rapidly closing in on our signed-driver-containing PeerBlock 1.0 release (I hope) it's about time to release a new Interim Release. With any luck, this will be the last Interim Release before our PeerBlock 1.0 Release Candidate Interim Release.

Please remember that while we've tried to ensure that this release is stable, it is still an Interim Release - and as such has not gotten as much testing as our Public Releases (like PeerBlock 0.9.2 (r86)) have. It is really meant for people who are more interested in staying on the "Bleeding Edge" of PeerBlock development, and are willing to test out new features and bugfixes for us before we bundle these up and package them as Official Releases. If you're using this version our hope is that you will report any bugs found to our Issue Tracker, and/or discuss them in our Forums - your contributions to this test effort help us make progress, and help ensure that the Public Releases are as stable as they can be!

And also don't forget that if you're running an Interim Release, that version of PeerBlock will check for new Interim Releases and direct you to come here to the Dev Blog when a new one is found. (Actually, this is the first release that should trigger that update-notification, so if it did in fact work please let us know!) New Public Releases will only check for new Public Releases, directing people to a page on our main site. We release Interim Releases much more frequently than we do Public Releases, so if you find having to update your software every couple of weeks annoying you'd probably be better off running a Public Release instead.

What's Changed

Here's what's different between the last Interim Release (r93) and this one:
  • Archive/Delete PeerBlock.log - We now handle peerblock.log the same way as we handle history.db. If you have it set to "Archive & Remove" or "Remove" history every N days, peerblock.log will be archived (and/or deleted) the way you'd expect.
  • Don't Overwrite Tracelog - One problem we've run into a lot is the availability of the peerblock.log tracelog file. Because previous versions overwrote this file every time PeerBlock started we'd lose a lot of helpful data from previous runs, and this has made troubleshooting more difficult. I'd strongly recommend setting the "Delete history every X days" option (specifying an "X" value of not too often, maybe a week or so, just to make sure logfiles are available when we need them), or maybe "Archive and remove" if you want to keep them around longer and are willing to zip/delete them every so often. In the future I'll change the default options on new install to probably "Delete history every 7 days", but for now you'll need to do it manually.
  • Installer Rewrite - Our newest team member, XhmikosR, has rewritten nearly the entire installer code we'd been using. It's doing things in a much more professional manner now. It asks if you'd like to use your old PG2 settings (upon new installation only, and even then only if PG2 is detected on your machine), makes use of an updated Start Menu hierarchy, uninstall now also removes the ...\lists files in a better manner and removes your ...\archives files/directory as well, no longer offers to install QuickLaunch shortcuts on Win7 where they're not really used by default. Also, we're now using a more-standard PeerBlock icon on most pages of the Installer, in the upper-right corner - should look a bit cleaner.
  • Driver Load Bugfixes - We've fixed a few problems in the driver loading code, of the sort that sometimes lead to "unable to load the packet filtering driver" type errors during PeerBlock startup. Specifically, these include fixes for the "CreateService error 1072, 'service has been marked for deletion'", and "StartService error 1055, 'the service database is locked'".
  • Cleaner Shutdown - PeerBlock now saves its configuration as the first step of its shutdown code, which should help resolve the problem people have been having with their settings appearing to not persist across a reboot. It also should shutdown more quickly, so Windows shouldn't display the "waiting for a program to terminate" type dialog when you reboot while PeerBlock is running.
  • Start with Windows - Prior to this release, PeerBlock stored its "Start with Windows" setting in the registry under "HKCU\Software\Microsoft\Windows\CurrentVersion\Run", in a key called "PeerGuardian". This should now be in a key called "PeerBlock", as it should - the installer will fix this setting if an incorrect registry key (i.e. a "PeerGuardian" key with a value pointing towards a PeerBlock installation) is found.
  • Updated Database Code - We've updated our database code to use sqlite version 3.6.17. Supposedly some performance improvements (and bugfixes) are in there, so this should be a source of generic goodness even though we may not notice much.
  • Extra Tracelog Messages - To assist in our troubleshooting of problems, additional statements are being logged to peerblock.log in the following areas: list updating, startup, shutdown, driver load, file-handling.
  • Changed "Hide Window on Close" Option - This option was confusingly worded in the settings panel, so has been renamed to "Minimize to tray on close". Hopefully this will make it more obvious that if the option is NOT set, closing the main UI window will stop the program.
  • "Log Allowed & Blocked" UI Bug - On WinXP 32-bit, fixed the problem in which the "Log Allowed & Blocked" listbox was way too short and had "spinner arrows" to select your option. Just a minor issue, but it didn't look very professional.
  • Mention "PeerBlock, LLC" - Now that we have an officially registered company to represent our project (this was needed for driver-signing, and is probably a source of goodness even aside from that), all app copyrights and company name type fields should be updated to use this name.
  • "Portable" Version - We seem to have quite a few users who like using PeerBlock in a "Portable" mode. PeerBlock currently should be able to run just fine off a USB stick (et al), but we have not previously made zip-packages available as a download option; you'd need to install it first, then copy all the files from the PeerBlock install directory over to your USB stick, then uninstall PeerBlock from your machine. Starting with this Interim Release however, we will be also releasing packages in .zip format. Just be aware that you'll need to figure out on your own which one to download, as you'll need to run a different version for W2K/XP versus Vista/Win7, and for 32- versus 64-bit . . . for a total of four different options.

Known Issues

We still haven't fixed an issue in that automatic list-updates may not be correctly working if you have the "Auto-close Update Window" setting enabled. We're still looking into it, but for now I recommend either not enabling this option, or else manually clicking the "Update" button every so often. This is Issue 56 if you'd like to follow progress on this one.

Also, as previously mentioned, since we're no longer overwriting peerblock.log every time PeerBlock starts we strongly recommend that you enable the "Delete history every X days" option in the settings panel, choosing a reasonable option like once a week or so.

Get it Here

PeerBlock r131 Installer - This is the recommended download for most users.

PeerBlock "Portable" Packages:


Like I said, hopefully this will be the last Interim Release before our signed-driver-containing PeerBlock 1.0 Release Candidate Interim Release. If you encounter any bugs in this release please let us know! And don't forget to "star" the bugs which matter most to you, as per the recent Tell Us What to Do blog post.

Many thanks to the other members of the Dev Team: night_stalker_z, DarC, and XhmikosR; and also to all the members of our Beta Team who've spent a lot of time testing relatively unstable versions of PeerBlock to make sure this is a pretty stable Interim Release for you!

Thanks, and I hope to deliver some good news on the signed-driver soon...

        ---  Mark  ---