Archives for January 2003
The Dolphin wiki breaks a key REST principle.
From: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1
Safe: "... the convention has been established that the GET and HEAD methods SHOULD NOT have the significance of taking an action other than retrieval ..."
Idempotent: " ... the side-effects of N > 0 identical requests is the same as for a single request. The methods GET, HEAD, PUT and DELETE share this property ..."
The Dolphin wiki provides links for the user to change the state of the Wiki, for example; "Delete this page". These links cause the Browser to make a GET request.
The most obvious problem that results from this is the badly behaved spiders that turn up every couple of months, ignore the robots file, and do a "wiki-wipe". The spiders are at fault for ignoring the robots file, however they are not at fault for the way they follow the links, as they can expect GET requests to be both safe and idempotent.
IMO the biggest cost is that it stops good spiders, who do obey the robots file, from accessing and indexing the content of the wiki. There is some great information on the wiki, both specific to Dolphin and about Smalltalk in general.
Google likes content, if it could see the wiki pages, it would improve the rank of http://www.object-arts.com. It would also help improve the rankings and visibility of web-pages maintained by the Dolphin community which are linked to from wiki pages.
Interesting article about Google on Kuro5hin. The past couple of days I have been watching Why Smalltalk Google dancing between 3 and 4.
After reading the article, I decided to give the Google toolbar a try. Normally I avoid BHOs like the plague, but I can make an exception for Google. It is interesting to see page-rank as I surf from page to page, but what I am finding most useful is being able to list the back-links. It turns up some interesting pages.
FWIW: a few page ranks:
Found in the Microsoft Download Center rss feed a link to the Designed for Windows XP Test Framework 1.1.1
This document is full of good test fodder. For me, not exactly UnitTests, but a good check-list to work through before deploying. For example: "TC1.1.6.1 Does the application crash when trying to print when no printer is installed?"... fair enough too. A search for "Designed for Windows 98 Test Framework" did not turn up any hits.
Came across a link to Terragen.
They have a new release out, and have resumed active development.
I have had fun with this program in the past. I used it about a year ago when I was working on dolphinharbor. My thought was to have one of those typical "single image" welcome pages that would lead to the main dolphinharbor index.
I came up with a couple of images, mmm let me see if I can dig one out:
I decided against using it; somehow it felt too cold and lonely. All attempts to add beach-balls, boats or people failed miserably :)
I should try the latest version and have a go at a warm and lively dolphin harbor.
Reading Mark Pilgrim's parse_at_all_costs post reminded me of the Prisoners' Dilemma. I can understand his reasons; If one aggregator decides to be liberal in how it reads rss, then it will gain a market advantage. However, if they all do, we get the "html situation". In my opinion, the cost of not being able to read a number of non-valid feeds is less than the cost of reading a growing number non-valid feeds, (which will surely happen as the liberal aggregators are used to "validate" the feeds), and the cost of rss being generally percieved as not well-formed.
I am able to sit here and read rss news thanks to many levels of specifications and protocols that build on each other. HTTP and TCP/IP are the obvious, but the point could be taken to the extreme by including lower level network protocols through to hardware protocols and APIs. This works because the specifications are adhered to, and that makes it easier to build a higher layer.
I would like to see rss built on, but if it turns into anything goes, that could go out the window.
This may be a naive suggestion, but the way I add feeds to the aggregators I have used, is to either use the auto-discovery feature, or by clinking a link that is served by the aggregator's built in server. In both cases the referring html page link is available. Why cant the aggregator store the html page link, and show that in place of an invalid rss feed?
I thought I had better check my own feed before posting this.
Thanks to Mark Pilgrim and Sam Ruby for providing the RSS Validator.
I was surprised to see that my feed doesnt validate because of the relative hrefs. I couldnt see this in the specification, should it be a warning rather than an error?
A couple of my posts include links that are discussed in the post ... not what is linked to, but the link itself. In effect I need someway to quote the link. For example: using the WebBrowser control.
The recent Marketing post includes links for similar reasons.
There may be a better way of including those links, but since it is (escaped) html ... who cares? :).
From the fastcgi mailing list:
From: "Rob Saccoccio" .... Date: Sun, 19 Jan 2003 14:33:07 -0500 Subject: [FASTCGI] mod_fastcgi v2.4.0 released (including security update and Apache2 support) I just tagged and rolled mod_fastcgi v2.4.0. This is the first official release of mod_fastcgi under Apache2. I highly recommend upgrading to this latest release, particularly if your on WIN or use the wrapper support on *nix. Source and WIN dlls (for both Apache 1.3 and 2.0) can be found here: http://fastcgi.com/dist/. Please note the first item in the change list if your using FastCgiWrapper/FastCgiSuexec. Many thanks to Michael Richards for identifying the security issue and test/debug of dynamic wrapper support under Apache2.
I have not used Apache 2, but it is on my todo list to upgrade and test FS FastCGI with mod_fastcgi v2.4.0. If anybody tries this before I get around to it, please let me know how you get on.
I think this comp.lang.smalltalk post by Peter van Rooijen has some great marketing ideas.
Click here to purchase the Object-Art's Dolphin replacement Notepad only $59.95.
(Free bonus!, integrated Dolphin Smalltalk value edition)
LOL, or even
Click here to purchase the Object-Art's COM Object inspector.
(contains the powerful, scripting like, Dolphin language) only $349.95.
Why not? I see plenty of programs for sale that provide a feature that is just one of many in a Smalltalk image. If the whole thing is too much, just give them a taste :).
It was suggested to me to provide one download for the three XP Look and Feel articles.
SWXPAllLookAndFeel_1.zip (28K) contains the core packages, three sample packages and icons.
The first two articles: Link Buttons and Drop Container are more technical, the last Look and Themes is a discussion.
I have received some interesting feedback (and strong opinions!) on these articles. I will post a follow-up in a couple of weeks with a summary of the feedback.
XP Look and Feel - Look and Themes ... the final (for now) of the three articles.
This article combines the packages from the two previous articles to create a sample application with a Windows XP "WebView" look and feel. It contains some thoughts on Windows XP themes and skinning.
XP Look and Feel - DropContainers ... the second of three articles.
This package contains a LayoutManager for Dolphin Smalltalk, that can be used to implement the look and feel of Windows XP's "Special folders" and "Generic Webview folders".
XP Look and Feel - LinkButtons ... the first of three articles.
This is a View class for Dolphin Smalltalk that implements a commandSource that looks and feels like a web link. It can be used in place of a PushButton or other commandSources.
I am on a roll ... two down, two to go!
The WindowsXP_DesignGuidelines is a handy download if you are targeting XP. Its not small (5mb) but it contains lots of annoying information like what fonts/colors/icons to use. I have found parts of it on MSDN, but it is nice to have all the information in one place.
Uploaded a new article: BorderImageView.
This package contains a View resource for Dolphin Smalltalk's ImagePresenter, that can be used in place of the base ImageView/StaticBitmap view resources. It adds an additional scaling mode, and the option of drawing various borders around the image.
I have just uploaded a new project to Dolphinharbor; SWHTTPClient11.
A couple of months ago I was tossing up whether to release it as open source, or to turn it into a commercial goodie. I have a couple of WebDAV packages and a SSL package based on OpenSSL, and my thought was to do a commercial http bundle for
Dolphin Smalltalk.
I decided against this and released it as open source. I do not agree with many of the principles behind the open source movement ... I certainly have not released the dolphinharbor projects under open source licenses for philosophical reasons. The reason is that I don't think it makes commercial sense ... whatever I plug into the sold * price equation, it doesn't come to a number that, IMO, is worth the extra work and commitment that I would feel obliged to do and provide.
This HTTPClient code is very valuable to me, I have done a small commercial project that used it, and my current projects use it heavily. The reasons I have released are much the same as the "Testware" projects I am placing on this blog;
I have become a bit of an http junkie recently, it is a bit like air in that it can be easy to forget how prevalent it is ... certainly after working heavily on webservices a year ago, it is like taking a big breath of fresh sweet air :)
I suppose webservices will be cool if it all works out, but I see cool things being done today with http/rss/xml that are simple and work. I think a good example of a creative use of rss is the
Cincom Public Store feed.
Reading this feed is a great way to stay in touch with what is happening with VW.
Another example is a project that Jerry and I were discussing earlier this week. It was starting to look complicated; he wanted to take information from multiple document servers and provide a client program that would display that information to his users. The tip-off was in one of the use-cases; "Kathy is interested in ... , Melissa is interested in ...." Ah-Uh! ... RSS! Once the problem was viewed in terms of http and rss it suddenly became simple and a solution feel out. Not only did it provide a solution to the current problem, he will probably be able to easily leverage it to solve other problems.
Anyway, this posted has drifted from its topic :) ... the release of my SWHTTPClient11 project. Enjoy!
I did some usability testing of my application over the holidays. I don't have Microsoft's budget for usability testing, but it became clear to me why XP uses links so heavily.
I watched as users would tentatively hover the mouse over pushButtons/toolbars/menus ... not clicking for fear that they would "break" something. But if the mouse changes to a hand cursor, if the text changes color/ becomes underlined ... bang! ... no hesitation, they click it.
I asked one user why they hesitated clicking toolbar buttons/menus, One answer was along the lines: "That is where the hard stuff is", another: "I didn't think I should be using them".
It is hard to explain that what they are seeing is not "The program" and that the only reason the programmer has put time and effort into putting those buttons/menus on their screen is so that they will try them.
No point in fighting a loosing battle, I am going with "links" :)
My father bought a digital camera this week. He was able to install the software and download a picture from the camera. The application is very nice, it has a modern XP look and feel (with a slight Aqua look remaining). It works well.
What interested me most was my fathers attitude towards solving problems related to the camera's UI compared with the application's UI.
When he demonstrated the camera to me, it wouldnt take a picture ... it was not in the picture taking mode. He calmly examined the buttons on the camera, tried a few things, and then went into the user manual to find the solution. Bottom-line is that he was enjoying himself.
When he demonstrated the application to me, (trying to download the pictures to the computer) he mistakenly clicked "upload" ... which effectively put the application into the wrong mode. I could see the blood pressure rising, and hear the huffs and puffs of frustration. He never looks at online help, let alone software manuals.
He is an experienced user, he uses a couple of applications daily. It maybe just a mindset due to past-experience with applications with badly designed UIs, but I suspect there is more to it. Later he was describing to me a problem with the camera, and I could see him picturing it in his mind as he described this and that button. I can guarantee that he can not picture the application's UI :)
I found it interesting that the only application UI that he actively and enjoyed exploring, was a first-person shooter game.
I think my next project is going 3d!
I just received a message that the windows port of OpenCyc has been done. There also appears to be much more documentation on the site compared to last time I visited.
Not sure what I would do with OpenCyc, but it sure is interesting to see it ... "Lisp brain/Smalltalk body" has a nice ring to it
After reading the Cincom Smalltalk Blog, I now know what to call what happens when I try to take time off; I have "geek holidays" :) Looking forward to the new BottomFeeder!
What I have been doing;
I still have nagging doubts about my Email enabled approach. I played around with an application this week that created html emails and noticed it was using MAPI32.DLL.
If you do a search on Google for MAPI and HTML, you will find plenty of statements that there is no way to create html emails using Simple-MAPI. I only have Outlook-Express on this computer, and Outlook-Express only supports Simple-MAPI, but somehow this application, (and of course Internet Explorer) manage to do just that.
I then came across a very interesting newsgroup thread; Undocumented Outlook Express API ... I see that I have not been alone in being frustrated by this "Email enabled" problem.
At one point in the thread, the approach I have taken (create an eml formatted file) is suggested, but what interested me most was Jeffrey A. Beauchamp's discovery that IE uses a "secret" combination of parameters that causes OE to open a single attachment as an html message.
I have not tried this myself, but MAPI32 looks simple to wrap as an ExternalLibrary, so I will put this on the todo list ... stay tuned for an Email enabled (again again) post.
Copyright 2002 Steve Waring