RSS-Data
Jeremy Allaire has something simpler than SOAP - built on RSS and XML-RPC. It's worth a read!
Jeremy Allaire has something simpler than SOAP - built on RSS and XML-RPC. It's worth a read!
I fixed the server the other day so that all the main feeds had embedded comments - what I forgot was that the extant feeds, unless they got regenerated (via new content) still had the errors in them. My feed got updated, but the others, until they got new content, weren't getting updated. That's been fixed, and the feeds now have the embedded comments where they belong.
I posted a comment on Atom the other day, and Gordon made a few comments. I've made changes to BottomFeeder to handle Atom feeds; there was a bug related to changes from 0.1 to 0.2 that I had missed. I fixed all the server side validation issues as well. However, that leaves my question about relevance hanging. Here's the problem, as I see it. There are tons of RSS feeds out there - I see vitually no Atom feeds. I'm sure they exist, but I'm not finding them. Heck, look at the feeds page on Sam Ruby's site - no Atom links listed. There's another issue as well - there are scads of RSS modules, many of them very useful (embedded comments and the commentAPI in particular). Can you use these modules in Atom? I don't know, maybe you can - but the point is, it's not clear (at least to me).
On the posting side, the invention of a new authentication mechanism just seems wrong to me. HTTP has an authentication mechanism, it should be used. As to people not controlling sites - well heck, then how do they add support for this new mechanism on the server side? The site controller has to add it. If they can do that, they can darn well turn on authentication. To my mind, inventing a new authentication mechanism is just silly. Use what's there and move on.
Cincom has been publishing a newsletter called Expert Access for some time now. I've created an RSS feed for it here.
I recently (in 3.1) got Http authentication working in BottomFeeder. I didn't have to do anything out of the oridinary - all the support I need was already in the NetClients package, which has been part of the VW distribution for a few years now. So how do you add such support? Well, let's say you issue an Http request:
request := self fillRequestHeaders. client := HttpClient new. response := client executeRequest: request. response isUnauthorized ifTrue: [authInfo := self promptForAuthorization].
Now, once you have that authorization information, what do you do? Well, you create the request again, this time with the authorization information in it, then re-issue the request. Something like this:
request username: authInfo username password: authInfo password. response := client executeRequest: request.
That should do it. Now, of course, you'll want to catch exceptions, and handle other cases (movement of a page, various error responses, etc.). To get an idea of how to do that sort of thing, load the package Http-Access from the Public Store. The package handles authentication, moved pages, and mod-gzip automatically. I use it in BottomFeeder and my blog posting tools - it's getting real world use.
The @Stake firing of Dan Geer has been widely reported by now, but I've just been loiking at the ComputerWorld story in print. This thing is uglier than I thought:
The day after the report's release, co-author Dan Geer was fired from his job as chief technology officer at Cambridge, Mass.-based @stake Inc., a security company that derives a hefty percentage of its income from Microsoft. Moreover, the firing was made retroactive to Sept. 23 so that @stake could further distance itself from Geer and the report, sources close to the situation said.
An @stake official, who spoke on condition of anonymity, confirmed that Geer was fired and said that as a corporate officer he should have known that Microsoft was a client of the company. "It's not a matter of the content of the report; it's a matter of ethics and respect for clients," the official said.
Hear that sucking sound? It's the sound of @Stake's management team kissing up to Microsoft. The funny thing is, the firing makes Microsoft look bad as well - I think I'd stop doing business with a partner that made me look that bad. I'm sure there were some interesting conversations in Redmond over this, and I bet that the firing made MS officials far, far angrier than the report - the report could be spun - the firing is very, very hard to spin. Regardless of the reality of the situation, lots of people are going to assume that MS played the heavy on this.
There's a new episode of Angel, and two baseball playoff games on tonight. Thank goodness for the ReplayTV.
The A's Red Sox game that just ended was a hell of a game. I think everyone watching and playing was surprised by the bases loaded bunt by the catcher to end the game. Shades of Major League!
SCO takes on SCO, and says that the GPL won't stand up. There's definitely going to be some precedents coming out of this case; it's hold on to your hats time:
"The GPL has never faced a full legal test, and SCO believes that it will not stand up in court. We are confident that SCO will win the legal battle that IBM has now started over the GPL."
Watch what happens when a static typing advocate takes on David Buck in discussing the issues of type safety - look here and here.
Overheard in the Smalltalk IRC channel:
Definition of a blogger: a Blogger is someone who writes emails to himself
Heh. About the size of it....
I haven't posted since early afternoon - I was watching the Red Sox take their customary October swan dive - and then the Yankees came on at 8. Pettite pitched a heck of a game - if the Yankees let him go at the end of this year, they are completely bonkers. Looks like the folks hoping for a Cubs/Sox series won't be getting their wish :)
Spotted in Blogging Roller - in a discussion of what's needed to make a rich web interface, it seemed clear (to me, at least) that what you need when it gets to the point he's talking about is a client app:
Now, I'm working on a Java-based web application with very complex forms. Some of the forms have multiple tree choosers, dynamic select boxes, popup windows with dual-lists, and popups that cause the page that launched them to reload. There is just no avoiding JavaScript and our requirements are pushing us towards complex solutions like inner-browsing to reduce the number of trips to the server for page reloads.
That's what the guys at Brettspielwelt did for their interface into the various board games they support - they have a web based UI, but also a downloadable client. Most of the regular gamers there use the client. IMHO, when a UI gets complex, it shouldn't live in a browser anymore....
I went to see Underworld this afternoon, and it was an enjoyable action flick. The movie was engaging, and the action was well done - not to mention the presence of Kate Beckinsdale in tight leather :)
There was a clear setup for a sequel at the end, but that was ok - I'd go see another run through. Recommended
Update - It's been pointed out to me that there is a simple option under File>>Page Setup. How did I miss that? Well, that blasted feature that shows only the most recent menu options (there's a down arrow to show all of them). On my first inspection, I missed that option (not to mention - why is it in the File menu??). So yes, Word sucks a little less than I thought - but the menu re-arrange option (and yes, I know it can be turned off - but why the heck is it even there??) effectively removed it.
My daughter was finishing off a book report the other day, and she wanted to make it look nicer than hand written - so with trepidation, we fired up Word. Getting all the text entered was the easy part. Then came layout options. I've been creating very simple documents in Word for years, so it's been awhile since I screwed with page margins - I think the last time I looked was Word For Windows 2.0, back when Word was a decent tool that enabled productivity, instead of the time sucking piece of donkey dung it's become. Is there a menu for adjusting page level properties? Heck no, the margins are hidden under paragraph formatting. To apply margins to an entire page, I have to select all paragraphs and then apply the margins. I suppose it's nice to have that control at the paragraph level - but how flipping hard would it be to provide a menu option for adjusting page wide settings, and have them applied to all paragraphs? I'm sure this is documented, but that's not the point - it was not easy to find - I really wasn't thinking of looking in the Format -- Paragraph menu area for page level settings. This is one of the reasons that every post on the greatness of Longhorn by Scoble sets my teeth on edge. Every release of Word since Word for Windows 2.0 has been worse. That's right, worse. 2.0 was easy to use, the bullets went where I wanted them, the menus made sense, I could figure out how to set page margins - it was all better. Why am I not excited about the coming of LongHorn? Maybe because I expect the incidence of suckage to increase. It's not just Word, either. One of the things in XP that drives me bats is the blasted pop up from the tray that periodically tells me that I have unused icons on the desktop. NO I DON'T - I put the damn icons there for a frelling reason. I'm sure there's a setting to get rid of that damned notice, but who was the utter idiot in Redmond who thought it was a good idea in the first place? This is the kind of thing I mean by the increase of suckage. Here's another - every so often, a random app I have open - and it's been all different ones - seems to be unable to restore itself unless it's maximized - as if the window had somehow wandered offscreen. What's up with that?
I'm telling you, the Linux desktop or the Mac desktop is looking better and better every day. And the "gosh gee golly" noise about Longhorn isn't improving my mood on this. Fix the suckage, and shut the heck up on the wonders of an OS I won't see for two years.
Gordon Weakliem is adding Amazon feeds to his aggregator. I think I'll build support in Bf for creating these RSS links....
I just added support for building Amazon RSS feeds in BottomFeeder. It's pretty slick, if I do say so myself....
Over the last 2 days, you may have noticed some odd behavior in the way comments were displayed - i.e., they were there on the main page, and not hideable. This had to do with a cache I implemented to make delivery of the content faster in between updates to the site. The problem was, it was possible for the HTML to get cached with comments showing, and then - without updates coming in - for the comments not to hide. I fixed that, so the comment options on the main page should work as expected again.
Don Park has some advice for Google with respect to the AdSense flap.
BloggerCon at Harvard looks like an interesting mix - there are political bloggers like Instapundit and Josh Marshal, and the technical folks like Dave Winer - as well as people that live in both worlds, like Doc Searls. Perhaps I should have looked into attending; that's an interesting mix of people.
The Yankees got closer to the next round by going up 2-1 today. Meanwhile, the Marlins advanced to the NL championship series, dispatching the Giants - something I didn't really expect to see. That leaves the Cubs/Braves series. As I write this, the Braves are up 4-1 - so maybe they'll stay alive. While not as frsutrating as the Red Sox saga, the Braves have been a spectacle this last decade as well - 9 straight division wins, and only one World Series victory to show for it. To get a feel for what the Red Sox fans go through, read this in the Times, and this in the Boston Globe. 85 years of waiting - there are only a few people even alive who have living memory of the last Red Sox World Series victory.
The worst part is, it just dawned on me that I'll be in Japan through the whole series - and the games will start at 9 AM Tokyo time. So much for watching any of the games live this year....
Dave Johnson seemed to have some wild idea that resources are infinite:
As Chiara has pointed out, JavaLobby is obligated to provide free weblogs, free bandwidth, free file storage, free system adminstration services, and free support to anybody and everbody who wants a weblog - all without charging a dime to anybody, placing any advertisements, or restricting anybody elses right to place advertisements.
Until I noticed - after prodding in a comment - that he was kidding:
As I have said before: if, at this point, you do not know that I am kidding, then you are an idiot.
Heh. Yet more proof that I can step right into it via blogging as well as in person :)
Every so often I see page defacement on the Cincom Wiki or on the VW Wiki. There have also been countless attempts to execute server scripts - lots of people have uploaded scripts (seeing the upload capability), and then been disappointed when attempts to execute their scripts fail (Smalltalk based Wikis are pretty secure that way). I just saw a very slick example of Wiki spamming on the Atom Wiki - the wiki being used to discuss/define the Atom posting/syndication format. Have a look here to see an example - the "seo" links - which look normal enough - are actually part of a large scale (100 page +) effort to spam the page. I followed the links; they lead to the site a guy who claims to be able to improve your google page rank (never mind that he just lost any chance of doing business with any of the users of the atom Wiki).
This sort of thing happens on a regular basis on Wikis - heck, the C2 Wiki even has a page devoted to such "hacks" (but I can't find it right now). The main issue with these is the time wasting aspect - someone has to maintain the WIki (clean out dead links, prune pages, etc) - and these attacks make that job more onerous. How do I manage this problem? Well, the CincomSmalltalk Wiki has an RSS Feed. The feed is pretty much just an XMLized version of the recent changes page - but it comes to me instead of me having to go to it. When I see changes pop up, I check them out - and weed out any defacements that have stumbled along. It works pretty well, and it works a lot better than trying to remember to visit "recent Changes" on a daily basis.
Scoble wants computers in his son's school. A better idea would be to look in on how they teach basic arithmetic, and find out whether or not they plan to use calculators in the elementary grades (a truly horrible idea). I'd gladly have my daughter's school lose ever single computer if it meant that they were going to teach the basics.
I found out today that BottomFeeder didn't support OPML 1.1 feedlists - I hadn't noticed that there even was an OPML 1.1 :) I had a quick look at the format - not a lot of change relative to 1.0 - and the dev steam of Bf now supports it.
Ted Leung, in a post mostly about Lisp, makes a point I'll echo:
Python is attracting a lot of people who like Lisp. There's only one Python, and there's starting to be a body of interesting programs. There's momentum there, quite a bit more than there is around all the various Lisps. I think that the momentum around languages like Python and Ruby is going to open a window of opportunity for Lisp and Smalltalk. The question is will those communities be ready when the window opens? This is something to be thinking about now.
There is a lot of buzz happening around Python, and there's a lot of potential benefit for Smalltalk (and Lisp) in it - are we ready to take advantage of it?
Daniel Steinberg talks about exception handling - and while he's posting on Java, many of his points are generally applicable. In particular, he warns about throwing generic exceptions - have a look at his column.
Joseph Pelrine is giving a talk on SCRUM and Smalltalk in Switzerland:
SSUG the Swiss Smalltalk User Group in collaboration with CHOOSE is glad to invite you to the next half-day tutorial given by J. Pelrine (MetaProg GmbH):
"SCRUM: A Methodology to Keep the Team Going" on tuesday, October 14th 2003 from 14h to 18h at the IAM Room 001. http://www.iam.unibe.ch/~ssug/Events/20031014.html
Scrum, one of the agile processes, has been used to develop systems and products since 1995 on thousands of projects in hundreds of organizations. Scrum implements in several days and delivers increments of functionality within thirty days. Scrum wraps existing engineering practices. Because Scrum is a development management process, it has also been used for such projects as marketing, research, and hardware product development.
In this talk, we'll discuss how Scrum and all agile processes work, the theory behind them and their underlying practices of inspection and adaptation. Then we'll look at Scrum's detailed practices of iterations, increments of code, emergence of requirements and design, and self-organization of teams. Through these practices, Scrum introduces a heartbeat of regular productivity to an organization that foments customer and engineering collaboration. If XP is wrapped by Scrum, XP's engineering practices ensure the quality of this code and stability of the emerging product, while Scrum provides the organizational framework which allows development to flourish.
References:
Ken Schwaber and Mike Beedle, Agile Software Development with Scrum (First edition), Alan R. Apt, 2001.
Mike Beedle, Martine Devos, Yonat Sharon, Ken Schwaber and Jeff Sutherland, SCRUM: A Pattern Language for Hyperproductive Software Development
Pattern Languages of Program Design 4 , Neil Harrison, Brian Foote and Hans Rohnert (Eds.), pp. 637-652, Addison Wesley, 2000.Biography
Joseph Pelrine is CO of MetaProg, a company devoted to increasing the quality of software and its development process. He has had a successful career as software developer, project manager and consultant, and has spoken about it at such diverse places as IBM, OOPSLA and the Chaos Computer Club. In addition to being one of EuropeÃÂs most experienced eXtreme Programming practitioners and coaches, he is also Europe's first certified ScrumMaster.
Tutorial Fees
140 CHF for Choose member
120 CHF for SSUG members (in fact 100 CHF + 20 CHF for registration)
80 CHF for students
200 CHF SI member
250 CHF othersSSUG Sponsors:
Daedalos Consulting AG,
iFace AG,
Object-Oriented Limited.
REGISTRATION
Fill in the form below and sent it to tschmid@iam.unibe.ch. You will then receive an invoice from the University of Berne.
I want to register to the SCRUM tutorial held at Bern the 14 October 2003. Name: ______________________________________
Email: ______________________________________
Company: ______________________________________
Company Address: ______________________________________
Company ZIP/City: ______________________________________Please check:
[ ] CHOOSE member
[ ] SUGS member
[ ] students
[ ] SI member
[ ] Non-Member
I've posted on BOSS schema migration before, and now Dave Murphy has published a nifty package in the public store - BOSSClassMappings - that will help out in wider circumstances. The standard migration mechanism works for the straightforward cases - i.e., you have added/removed/changed instance variables - the most common being that version 1 of a class has N instance variables, and version 2 has N+1. But what if the change is bigger? What if you either:
You can handle these in schema migration code, but with complexity. What Dave has done is publish a package that makes it easier. Normally, I open an existing BOSS file for reading like this:
stream := 'somefile.bos' asFilename readStream. bos := BinaryObjectStorage onOld: stream.
With Dave's changes, you do it like this:
mappings := Dictionary new. mappings at: 'Foo.Bar' put: 'Baz.Bar'. stream := 'somefile.bos' asFilename readStream. bos := BinaryObjectStorage onOld: stream withMappings: mappings.
What you'll then get is that all instances of class Foo.Bar will map over to instances of Baz.Bar. This is something that should make the work Rich Demers is doing on BottomFeeder much easier to integrate - he's building a brand new domain, and the current save files reference the current one. What this also does is make refactorings less onerous in the face of an installed base - one of the reasons I haven't rearranged the existing domain was the hassle of dealing with this problem. Nifty piece of work.
What if the Red Sox and the Cubs actually advanced to the series? Well, these are the likely results:
If you have had trouble with BottomFeeder on the Mac platform, see Travis' instructions. I'd set it up better myself, but I don't have a Mac for packaging....
Instapundit reports that the Bush campaign has a blog. I'm not terribly impressed with any of the campaign blogs I've seen (I subscribe to most of them). Why not? Well, they are to blogging what the marketing department is to communications - completely packaged. This isn't a big surprise; a political campaign is going to want to stay on message. On the other hand, one of the great things about blogs is that they enable a more open form of communication - without all the pre-processing and editing that you get from the marketing process. Don't get me wrong - that pre-processing has a place, and it's crucial - one of the reasons Java broke through in 1995-1996 was the huge marketing promotion from Sun. It's not that marketing isn't needed - it is. But is marketing needed in a blog? That I'm not too sure about. Why exactly do I want to read blow-dried words in a blog when I can already find them in my newspaper? There's been a lot of talk about how the various campaign blogs are some kind of breakthrough event, but I'm just not seeing it...
The BC4J blog points out some issues with stock vendor demos. The poster states that many client apps he's seen show that developers haven't looked at the demos - and the post actually explains why, without realizing it:
Some time ago, one of our developers on the JClient team took a similar amount of time and built a demo that illustrates virtually all of the different kinds of JClient bindings for Swing-based UI's that we support.
This is a common thing for developers to do - create the kitchen sink demo that shows off every feature. The trouble is, most developers open those demos once, say something like "wow, that looks like too much to digest", and then run off and just wade through the code as best as they can. This is an industry problem; I've seen it as often in Smalltalk demos as I've seen it elsewhere. What developers really need is short, simple demonstrations of common things they'll use, not baroque examples of every possible use. The former will get looked at and digested; the latter will get ignored.
Clarence Westberg mentions that there's a challenge to build a blog server in Squeak. They should feel free to look at the code that dives this site :)
Last night's game between the Red Sox and A's was great baseball - it was a close game, coming right down to the final out - it may be the case that I want the Yankees to demolish the Red Sox, but I can admire gritty play, and that's what we saw last night. The collision between Damon and Jackson was scary too - I shuddered every time they ran the replay. The amazing thing was watching Garciaparra keep his cool - picking up the dropped ball and getting the runner at second in the middle of all that. Here's hoping Damon makes a full and fast recovery - that was an ugly accident, and one that I wouldn't wish on anybody....
I made a small UI change in BottomFeeder - so far, only visible in the dev stream. On the Mac platform, the font used in the listbox is bold - which means that having new items bolded isn't meaningful. What I've done is made new items appear in red (as well as bold) to add an additional highlight. That should make new items in feeds much easier to spot.
Ted Leungdoesn't like what he's hearing, but it looks like market-speak has gained a strong foothold in the Open Source world. Listen to Marc Fleury describe what the JBoss team intends to do:
With the deals announced Monday, JBoss Group will now sell services for software from the Tomcat, JGroups, Hibernate, Javassist and Nukes projects. As part of the arrangement, the lead developers from Tomcat, JGroups and Hibernate will become JBoss employees, and the project heads of Javassist and Nukes will work with JBoss Group on a consulting basis.
These open-source projects will remain independent in that development on each product will continue under the auspices of their respective leaders.
The move will allow JBoss to ensure that each open-source product works well with the JBoss software and expand the potential revenue the company generates from services, said Marc Fleury, the company's president and founder.
"We go out and hire these guys and turn them into professionals, as opposed to an amateur or a hobbyist," said Fleury. "Other (companies) expand by acquisition or by deepening their (software) stack. We expand by recruiting those projects."
Aside from the "professional Open Source" terminology, this is a familiar business plan - think any large consulting company and their various software "practices" - they tend to focus on a business domain - and in doing so, they tend to focus on a few software products. This looks an awful lot like that model carried over to open source. It will be interesting to see how well the model translates.
Outsourcing isn't just an American issue - Don Park reports that call centers in Korea are being outsourced to China. I guess "low cost" is a relative term.....
If you still don't follow what continuations are or how they are used in a web app, go read Chris Double's post now. It gives a simple example of how and why they work.
I've seen this business plan. Worse, I've worked with that business plan :)
Read this and you'll see why - simply accessing files from an EJB application is a pain. It's amazing how much work you apparently have to go through to do so:
Of course, many types of file access can be worked around. For example, configuration information can be placed in LDAP, JNDI, a database, or even properties files delivered inside your JAR files that get loaded as a resource through the classloader. In those circumstances where accessing files is a requirement, then other solutions include loading the file through the servlet container, having it sent to the EJB tier via messaging, downloading the file from a webserver through a socket connection and so on.
These are all workarounds for the programming restriction but at the end of the day I think you have to be pragmatic.
The sort of pragmatism we see is lots of use of JSP's, and not a lot of use of EJB. This sort of thing explains a lot of that. Of course, I use Smalltalk Server pages, so the entire problem is avoided....