Silt is the name of the blog server in use on the Cincom Smalltalk blog site. It's also in use at MetaCase, and probably other places I don't know about yet. Where does the name come from? It kind of goes with the aggregator name of BottomFeeder
The Cincom Smalltalk Product Manager (That's Me) is the primary author, but I've gotten plenty of help from other people - Steve Kelly in particular.
Last Updated: November 2, 2005
Obtaining Silt
Silt consists of VisualWorks code and some external SSP files used by the Web Toolkit. You can obtain both parts either by installing from Store, or downloading a parcel and the SSP files.
- New! A Pre-Built Silt image and configuration. You'll need a working install of VW 7.3.1. Grab the zip file here (updated 2/26/06), and then start the server using your VW 7.3.1 VM and the included headful or headless image. You'll have a server running, and visible using an url such as:
- view - http://localhost:9000/blog/blogView
- login to post or modify - http://localhost:9000/blog/blogLogin
- The Username is 'admin', and the password is 'password'. You'll want to change the password if you deploy publically :)
- Store: The code is in the Open Repository, bundle Silt.
- If you have VW 7.3 or later, you can load the SSP files from the Open Repository, bundle SiltSSPFiles. If asked to select files to download, select all. First create a subdirectories to hold the files under your working directory (usual image):
- source
- source/css
- source/css/images
- Download: There's a zip file with the parcels and ssp files here. Create a directory called 'source' under your image directory and unzip the .ssp files there. Unzip the .pcl and .pst files to your image directory. After loading the Silt parcel you should see a bundle named Silt that contains a number of packages. Reconcile that against the Open Repository after you load it - and load any new stuff.
Once you load the Silt server - the latest update from Store is best - you should be able to define your new blog via the management tool available on the launcher (under the Tools menu. I've just updated and tested that code today (2/20/06), so it should work.
Questions? email me.
Setting up Silt
Steve Kelly has been using this package to set up some blogs - he's posted some step-by-step instructions here.
To set a blog up you will first need to create a server in the wave console (Launcher | Web | Server Console to get the console, then Create Server). The settings for hostname, port and Virtual Directory given here determine the URL used to access your blog(s): http://hostname:port/virtualDir/blogUserName.
To set up your first blog, go to the Tools menu on the launcher and open the BlogManager tool. Hit the new button, and you can set the blog up. Make sure that the URL you specify for SSP Home and RSS Home matches the settings you gave for the server. It's probably simplest to make this first user a site administrator (you can adjust this later within the user editor).
Once you've set up this first blog, you can manage the creation/editing of blogs and users using the client tools or the web based tools. Here are the files that will be of interest to you if you need to hand edit (replace the word "blog" below with the word you used for the "appkey" setting)
- blog-site.ini - this defines the site for the Web Toolkit
- config/blog.ini - this defines the blog itself. If you edit this file, then execute the following code to have the changes take effect:
- (BlogSaver named: 'blog') getDefaultSettings.
That's pretty much it - it's simpler now than it was. I'm sure that there are issues/limitations - let me know what you find.
There are also some anti-spam measures for comments and referrers.
Questions? Send them to me
My experiences
My only problem (on Windows XP) was that the web server wanted to return a favicon.ico from my image directory. I put a bogus icon there and everything worked fine. You should copy Steve's bit about moving/updating ini files here as well. Troy 12/14/05.
Note that if you use the pre-loaded zip file, then you do NOT need to follow most of the "setting up silt" instructions. There is already a web server and a blog server and a blog user named "blog". -Lex Spoon 8/31/06
Posting Tool
You can post to your blog via the web interface, which is your blog URL plus /blogEntry. You can also use other blog posting tools. Coolest though is to use Silt's own client tool, which is in a bundle called Blog-Tools and also included in the above zip. It can be loaded separately, without the server code. It has a dependency on WithStyle for its post preview tool, but it's minor.
Silt supports other posting tools via the Blogger API, the MetaWebLog API, and the MT (Movable Type) API. The following clients have been tested:
I'll add other tools as they get tested - I have a test server with a test account set up - send me email for details. If you are setting up a Silt blog, or trying to connect to one, here are the appropriate servlets:
- Blogger API
- MetaWebLog API
- MT API
- CST API (this will likely move to its own page, with documentation of the expected returns as well. Stay tuned)
- servlet/BlogRollServlet
- a GET to the server, with URL arguments:
- username=encryptedUsername
- password=encryptedPassword
- servlet/CategoryFetchServlet
- A simple GET to the servlet will answer a collection of categories. Format will be defined in an update to this page
- servlet/RemoteRemoveServlet
- This API removes an existing post. The server expects an url encoded string.
- username=encryptedUsername
- password=encryptedPassword
- id=GUID for the post
- servlet/FileUploadServlet
- This API allows you to upload file(s) to the server. It expects an url encoded string, with one or more sets of the following fields:
- path=UrlEncoded path here
- name=nameOfFileHere
- username=encryptedUsername
- password=encryptedPassword
- servlet/RemoteEditServlet
- This API updates an existing post. The server expects an url encoded string. Some of the fields are encrypted using DES, with the client and server having matching keys. No, this is not intended to be massively secure :)
- the url encoded string has the following mandatory fields:
- version=2
- username=encryptedUsername
- password=encryptedPassword
- category=categoryHere
- title=urlEncodedTitleHere
- blogText=urlEncodedContentHere
- id=GUID for the post
- doNotMarkup=trueOrfalse (if true, server looks for wiki style markup)
- leaveCommentsOpen=trueOrFalse (if true, server will leave comments open)
- there are optional fields as well:
- enclosureName=nameOfEnclosure
- enclosureSize=size in bytes of any enclosure
- servlet/RemoteEntryServlet
- This API adds a new post. The server expects an url encoded string. Some of the fields are encrypted using DES, with the client and server having matching keys. No, this is not intended to be massively secure :). The response will contain the GUID of the new post
- the url encoded string has the following mandatory fields:
- version=2
- username=encryptedUsername
- password=encryptedPassword
- category=categoryHere
- title=urlEncodedTitleHere
- blogText=urlEncodedContentHere
- doNotMarkup=trueOrfalse (if true, server looks for wiki style markup)
- leaveCommentsOpen=trueOrFalse (if true, server will leave comments open)
- there are optional fields as well:
- pbs=space delimited list of Pingback API urls (url encoded)
- tbs=space delimited list of Trackback API urls (url encoded)
- manualTbs=space delimited list of Trackback urls (url encoded)
- enclosureName=nameOfEnclosure
- enclosureSize=size in bytes of any enclosure
A packaged version of the posting tool is available as a plug-in to the BottomFeeder News Aggregator.
Wish Lists