Bruce was lots of fun on stage and many of my thoughts that I dumped down during it are naughtily playful. Sorry Bruce! :)
OpenSkills is making SKillsBase. Bruce Badger.
Everything he's saying has been covered and it's a bit depressing for him.
Bruce gave us the definition of a question very amusingly.
SkillsBase is a trusted mertiocracy. Non-profit resource pool. Identity matrix of signed openpgp keys.
The skillsbase is the manifest market where:
Members can promote their skills
Searchers can find members
Available on the web and uses HRXML as external form of resume data.
It is an enabler for finding skills.
HRXML is defined by the resource industry. HR people.
Bruce does Java for food but he likes Smalltalk and he knows it.
minimum development costs. Scalability needs to start very small (<100 members) and can grow very large (millions ;-))
8 countries.
Robust, can survive slashdotting. Can recover from hardware failure.
Uses Squid as a reverse proxy server takes hits from the web. Good chance of withstanding a slashdotting. Caches what you serve up. Handles HTTPS & authentication.
GemStone/S for database
Swazoo HTTP server running inside GemStone!
Bruce also points to csszengarden.com - he's using HTML and CSS.
HRXML is the external form of member information.
Diagrams.
person using webbrowser talking to squid. Squid passes it on to smalltalk.
smalltalk has swazoo inside it application code
Development is done in VisualWorks because it is a brilliant development environment. SUnit of course. Swazoo inside VW as well. Using the portability code that's used in PostgreSQL driver in VW: exceptions, sockets, dates, etc...
Analysing the problems. serious meetings with himself.
Big steps:
Getting the model going (easy)
Learning to use Swazoo (fairly easy)
Working out XHTML & CSS (still hard)
Working with Squid (easy with help)
Porting Swazoo to Gemstone (time consuming)
Porting app to GemStone (easy-ish)
Using v3 of squid which isn't out yet. The guy who makes is part of OpenSkills.
(GBS) GemBuilder for Smalltalk would have made it all easier to port swazoo to gemstone. It moves objects from GS to VW.
Question: Why use GemStone?
a) Because I could.
Uses the intensely boring technique. Porting principles.
Don't change system classes
Delegate, don't subclass, wrap system classes. Avoids being exposed to system class changes or differences between dialects.
Look to the ANSI technique, and hope there is more standardization.
Porting to Gemstone.
String new writeStream -> WriteStream on: String new
('Hello, World' asByteArray) asString
VW: 'Hello, World'
GS: 'aByteArray'
no Dictionary>>associations
GS streams don't respond to #close all the time
Bruce made interesting joke about using bundles instead of guessing version numbers of strange foreign packages.
Bruce also has interesting conversations with 'Alice', his laptop, even if he's infront of a crowd presenting :)
All the stuff that Avi said that's cool, I'm not doing it. I'm doing it the hard way.
Uses HTTP RFC protocol for authentication. Only main prob is that you can't log out.
Can import your resume in to the system and then tune it so that searchers find you for the skills you want them to know about. All members start off as private not public.
When someone does a request. the first thing they do is self abort. That means 'teleport me to the latest version of truth'. GemStone always keeps you in a read consistent universe. abort gets you to the latest version fo reality, not the out of date one you have.
GBS lets all the devleopment happen in VW.. then you throw it over to GemStone when you're ready, run the tests and you're ready to deploy.
The HRXML is parsed in to objects. Searchable. Produce new HRXML on request.
Question: Not using XMLBindings in VW? Have to port to GemStone
a) Good point. OpenSkills people want to make another XML parser that'll be x-dialect which will also include XML-Schema validation.