To make the VAStGoodies client work right from the VA image, I needed a service API in addition to the Seaside application that is running on VAStGoodies.com. Requirements for that service include “get all available configuration map names” and “get a download url for a particular version of a configuration map”.
Instead of implementing a full-blown end-to-end SOAP based Webservice, I decided to implement a much leaner RPC-style design that simply returns Smalltalk expressions.
The Cloudfork project is available for the three larger Smalltalk implementations: Squeak/Pharo, VA Smalltalk and VisualWorks. For maintaining the ports based on the Squeak implementation, we use the Package-Exporters package.
For porting to VA Smalltalk, we are using the VAPackageExporter as explained by Adriaan van Os. One important feature is the ability to maintain the port based on the changes to a project rather than repeating the all-in-one export.
For maintaining the VisualWorks port of Cloudfork, I extended the Package-Exporters project with a VWPatchExporter that can be used to export changes in the VisualWorks XML format.
Today I spent some time figuring out if and how I could change to default text font of the Smalltalk browsers in VisualWorks (76nc). For years I have been using my favorite coding font Dina (Win only) in any other tool such as Eclipse. Having this font also in VisualWorks would be very pleasing.
So I browsed through the source code of Look policies, Font policies and Font descriptions to find any clues.
Glare< is a Flex Remoting and Messaging server written in VisualWorks Smalltalk by Philipp Bunge. I am extending his work with Glare-DataServices which basically provides a HttpServlet that dispatches operation invocations send from a AMF client (Flex,AIR) to Smalltalk objects.
To work with Glare-DataServices, you need Smalltalk classes that implement operations and ActionScript classes that have corresponding methods in which these operations are invoked remotely. Because both classes (client and server-side) must have the same signature, it is clear that code generation can be very helpful.
Method categorization is an important part of documenting the interface of classes, which is quite unique to Smalltalk to my knowledge. Therefore most developers spent time reorganization their methods in commonly known categories such as initialize-release, accessing and instance creation.
PhilemonToolMethodCategories is a goodie that contains some extensions to the standard browsers that deal with categorization. In particular, it offers a different “Move to category…” menu item that pops up a menu with existing categories and another submenu with suggested category names.
The Classes Interface Browser is a small search tool to quickly find a Smalltalk class or one of its methods. The two inputs fields on top provide filters for class names and method names of that class. From a selected class or method, you can open a Class Browser by double-clicking. Using the list popup menus, you can navigate (superclass, subclasses…) in the class hierarchy, add a breakpoint and navigate (redefined, overridden) in the method implementation hierarchy.
VAStGoodies.com is the open source software repository for the VA Smalltalk community which was launched early this year by Adriaan van Os. As of today, the vastgoodies site has been extended with a page showing the activity statistics. Main purpose of this page is to let the community see that contributions are indeed downloaded and to give credits to those that maintain them.
Similar information has been available on Squeaksource for some time now and I was surprised to experience the effects on me with this kind of monitoring.
This goodie is also known as the “Diving” inspector as it allows you to navigate through an object structure by following each variable on a double-click. The inspection depth is shown in the inspector just above the “self”. You climb up the structure by clicking on that list item.
missing image of /2009/03/navigating_inspector.png Once loaded into your image, it takes over the standard inspector but uses any dedicated inspector as its model (e.
FileBrowser is a new addition to the configuration map “Philemon Tools” , available at VAStGoodies.com, for VA Smalltalk. This little but powerful tool has the following features:
navigate through your local filesystem showing the contents of files (including images) file selection based on pattern matching support for custom templates for editing (see templateGroups:) configurable contents font navigation history spawn external programs associated with the selected file (e.g. starts Notepad on Windows for .
if your application does not yet actually use that client Class. In my application, the result of a remote invocation kept returning a dynamic Object instead of the intended ValueObject class “Slot” although I specified the mapping and the RemoteClass metadata:
weborb-config.xml <classMapping> <clientClass>com.cae.planning.models.Slot</clientClass> <serverClass>Slot</serverClass> <source>Slot</source> </classMapping> Slot.as [Bindable] [RemoteClass(alias="com.cae.planning.models.Slot")] public class Slot { ... } So merely including the “import com.cae.planning.models.Slot;” in my application does not instruct the compiler to actually include that Class and therefore knows about the class mapping.