BottomFeeder

Plugging the pieces together

June 10, 2005 20:42:54.257

Over the last few years of development work on BottomFeeder, the application has changed in one very important way - what started out as a monolithic, big ball of code has become a set of reusable components that have been plugged together. That's not true in all cases; the RSS parsing is still too tightly coupled to the application - a looser coupling could make for a fully reusable Smalltalk library for dealing with RSS and Atom. However, that's the exception here. The application now includes, between core components and plugins, 30 pieces that can be updated in a (mostly) independent fashion. Of course, updates to one sometimes require new APIs available in another, but you get the idea.

So what's there? Let me walk through the list:

  • SpellChecker - a pluggable spell checking module. It depends on the presence of the ASpell shared libraries, which are readily available for Linux and Windows, and can (in theory at least) be compiled for other platforms
  • GIF Support - a library for reading GIF format
  • WinGDIPlus - a Windows specific library that uses native libraries to convert various image formats into something that Smalltalk can use
  • EpiWin32Folder - a Windows specific library that enables use of the directory selection dialog (as opposed to the file selection one)
  • Emote-Support - used mostly by TypeLess, it provides a set of emoticons, enabling auto-replacement of ASCII-art
  • ExtraEmphasis - a library that simplifies various VW font usage scenarios
  • ExtraActivity - a library that makes it easier to animate Visual Components. Used mostly bu WithStyle
  • Weaklings - adds a simple "Weak" mechanism for instance variable slots in an object
  • VRCommonDialogs - a cross platform set of common dialogs
  • Http-Overrides - this is really part of the NetResources library. It separates out the overrides required by that library, so that changes needed after a new VW release are easier to track down
  • NetResources - a basic library for wrapping the VW net clients libraries with a highter level API
  • NetResourcesHTTP - a high level API for HTTP access that simplifies access, and adds support for things like caching, digest auth, and more
  • PatchFileDelivery - a general settings driven library for delivering application level updates (parcels) via HTTP. Supports download and save, and download and load immediately
  • Browsing-Assist - a library that supports spawning a web browser on an URL across platforms. On Windows and Mac, this "just works", and has APIs for spawning new or reusing. On other platforms, the browser must be specified
  • OSTimeZone - a cross platform library for setting the time in VW to match the PC clock
  • XmlRpcClient - a library for making XML RPC calls and handling the responses
  • XML Configuration Files - a library for storing configuration information (or serializing objects) in an XML format.
  • BottomFeeder - the basic BottomFeeder application itself
  • Twoflower - the Twoflower Http parser, used by WithStyle if LibTidy is not present or fails
  • WSBundle - The Software With Style code base
  • LibTidy - a library that wraps the C based LibTidy. This library takes arbitrary HTML and cleans it up, returning valid XHTML.
  • Win32TaskbarSupport - makes VW Windows and menus cognizant of bounds, including the taskbar - prevents menus from disappearing behind the taskbar
  • Windows TrayIcons - a Windows specific library with a simple API - allows you to drop an application into the tray
  • IRC-BottomFeeder-Typeless - the Typeless IRC plugin to BottomFeeder
  • Blog-Tools - the Blog posting plugin, which supports Blogger API, MetaWebLogAPI, and the MT API. Also available Standalone, as BottomLine
  • WinMineGame - Minesweeper
  • GoldenMonkey - a game
  • Steroids - Asteroids game
  • Xonix - the old Xonix arcade game
  • EnclosureHandler - manager for downloading/saving enclosures automatically

That list has grown over time - I started out with three components that could be updated at runtime! I should also point out that an awful lot of those components were written by other people - in particular, Software With Style is responsible for the excellent NetResources and WithStyle components - without which, BottomFeeder would be a lot less nice.

 Share Tweet This
-->