|
|
|
Nov 9, 2002.
|
(OOPSLA 2002) Wednesday
|
back to Tuesday
Note on Nov 11th 2002 this paged was moved to a Wiki so you can edit it there. Please read it over there, this copy is here for historical reasons. http://wiki.cs.uiuc.edu/CampSmalltalk/OOPSLA+2002+Trip+report+Wednesday
It's morning and I've not posted anything yet, so I've actually had a few extra hours of sleep. This year I've slowed down a bit, since last year if one remembers I didn't get sufficient sleep for the week. Amazingly enough good friends looking out for my well being presented me with swiss chocolate from Europe no less this morning and another ensured I had some of the great poppy cake before the talk started this morning.
The main part of OOPSLA opens, and after a bit of book keeping we'll hear from Kent Beck.
OOPSLA Conference Chair: Mamdouh Ibrahim
Good morning Seattle. I know we have alot to cover here, lets take a few minutes to talk about this week. OOPSLA is not just an OO conference, It's a springboard for launch new technologies; reflection, patterns, aspect-oriented, agile computing.
Some notes about what OOPSLA offers.
1650 people, 43 countries, 1/3 from overseas, first time to OOPSLA 599, From Washington State: 438.
Based on the economy this is great.
[more housekeeping information presented]
Satoshi Matsuoka
OOPSLA 2002 PC chair
[more housekeeping information presented]
While this was going on I was attempting to get an internet connection from one of the three 802.11b access points I could find in the room ignoreing the two computer/computer wireless networks I could see.
At last let's introduce Kent Beck:
Highlights:
Kent was Program chair in 89, and manged to miss the conference because of a new child being born.
His new book, test driven design will be available here.
Kent.
I was fussing yesterday about how the talk was going. It's great to see people from even your town that you don't see. So Eric Gamma came by and said Kent don't worry about it, there is lots of crap in talks at OOPLSA.
Ok, hard problem, big issues, flash of insights, the solution.
In march I got a call from Mamdouh, come speak.
OK.
Well you should know the other speakers are Bill Gates and Kristen Nygaard.
Great Mamdouh why didn't you tell me that earlier...
A story about old music artists. BB King is getting old, comes on stage he's old, but as he puts extreme effort into it everyone is concerned about his health. During intermission people were nervous, back we go after the intermission. Then BB plays one note, it's great, the best ever. So now I thought I could do a really great great talk. Then Nygaard would talk and tell a story, and everyone would forget my talk. Alas now I have to talk content, because Nygaard isn't here.
[Your scribe will note at OOPSLA 2001 he had the pleasure of talking to Kristen for an hour or two in the lobby of the Marriott hotel at some very very late hour]
[Alistair Cockburn>http://members.aol.com/acockburn/] said when you give advice and people say thank you it's tempting to give more advice, then you run out. But it's not if you run of people wanting advice.
David West talks about "the creation myth" from C3. Now one of the things we did when we tried to turn this project around we looked at the existing words like buckets & managers & Pez Dispensers (cute but worthless). Now I though we could have 4 objects and everything expressed in 4 objects. Ok I said we need to decide the metaphor. Well there was ideas, lots of stupid ideas but then you can compare to smart idea. So bin, parts, stations (transformations) I knew this was a data flow machine but they didn't know.
There I was I had stepped over the line. I didn't know the shape of the problem. Sometimes you see those clients claim they are doing XP, but not right now. So at some level there needs to be some metaphor thinking going on. Smart people will do good things with the ideas, dumb people won't understand the metaphor, and ones in the middle might figure it out.
Yada Yada metaphor is old thinking, should be dropped. So I thought let's set it up to do a shootout and do a blinding brilliant talk about metaphors. We'll do a binding vote afterward. However I might not stop talking about metaphors, so just vote NO so you can see what I'll do. Now once I got into this subject I found it was a deep subject. Oh it's really big. Now I thought I had an hour, then 1.5 hours, now this morning it's an hour.
[Your scribe notes we had lots of fun with these new words for the rest of the week]
Tropes
Metaphors are a kind of Trope: something spoken that the meaning isn't the literal interpretation of the words.
Irony- Speak is such a way that the opposite is understood.
(XP-Universe is Irony...)
-Paralipsis = Speak to a subject by saying you will not speak to it
Hyperbole - Overstatement
Pun - Use the sounds of words to create ambiguity
Metonymy - Refer to a whole by a part
Simile - explicit comparison
Analogy - explicit comparison where the parts are connected
Metaphor - Linking two sets of concepts
The understanding itself on one set of concepts in term of another
Play of Is/Is not
You don't literally mean it.
How the metaphor holds and how it does not are what generate the ideas, some critics say drop this metaphor stuff and talk directly. They need to look at this play of words.
Conceptual metaphor
Source
Target
Mapping
Source ---- Target
A rose is beautiful ---- Love is beautiful
a rose brings pleasure ---- love brings pleasure
a rose fades soon ---- love fades soon.
mmm if you look at music, you can hear/see that rose and you make all these connections.
So we are taking a source domain and map it to a target domain.
Sometimes you need to do BLENDS
"memory"
source ---- target
stored during experience ---- stored during computation
later recall of experience ---- recalled later
"cell"
container ---- limited area
limited interface ---- interfaced only by wires.
Ok lets link this all together, it's a "memory cell" that contains a one or a zero. But it's not a container, it's flat and holds electrons
Everything is an interpreter.
Blending the metaphors together.
Metaphors for Terrorism
"I've directed the full resources of our intelligence and law enforcement communities to find those responsible and bring them to justice"
Then onwards to the metaphor of war
source ---- target
conflict between peers ---- raises terrorists to level of sovereign nation
won when combat stops ---- low level combat cannot be stopped
winning when you are ---- can inflict more damage on terrorists.
inflicting more damage
than the enemy
Disease
source ---- target
conflict between rational and mindless ---- conflict between state and wakes
done when you longer have to worry about---- done when terrorism is no longer a worry
winning when you're reducing symptoms ---- winning when you reducing terrorism
treat symptoms and causes ---- treat terrorism and causes
may take a long time ---- may take a long time
Embodiment
Ground metaphors have a basis in physical experience
arithmetic as motion along a path.
joining a team as placing an object in a container.
Hypothesis: all metaphors are based on ground metaphors.
In testing in 6 month old babies concluded people have an innate ability to count to about three. So for grounding hypothesis, it bugs me that my $4000 computer can't keep time as well as my $10 watch. Oh I know you can do clever things, but I'd suggest computers know how warm it is, if it is light, or noisy out. If it could would that change things?
Mere Coincidence
A polar bear jumping.
Ahhh think of it as an outline of how we think
prepare, begin, body (exceptions, iteration, goal), final state
Ok like tossing this water bottle in my hand, prepare, begin, throw, catch. It's finished.
Mmm lets compare that to a java/lispy routine might work.
An recursive routine I might add.
That maps back to the outline of how we think.
So lets unpeel HotDraw.
Ward and I did this program by hand before computers we invented. Right.. Takes years...
We know lots of fonts and typography frameworks. Less for graphics, that's hard they say.
Drawing
source target
Graphical Graphical
2d layout 2d layout
Mmm
Drawing
DrawingObject
DrawingCommand
Did this myself, Ward said that's really cool, but all the wrong words.
Ok add Figure
Source target
few per page ---- few per drawing
placed freely on page---- placed freely on drawing
various shapes ---- various shapes
So we can blend and have drawings that have figures in them
Tool
makes changes ---- makes changes to drawings
potentially many ---- potentially many
specialized ---- speciallized
In the real world they leverage your abilities, very specialized, and lots available.
Handle
attachment to something attached to figure
different shapes and purposes different shapes and purposes
A neat tool was the toothpaste tube drawing tool. It took me 10 years to figure out how it worked, the code was neat too, it acted just like a toothpaste tube, duh...
Eclipse plug-in
Great experience. It's an opensource java development environment from IBM.
It has a tiny kernel to load plugins based on dependencies, plugins provide the experience.
Extension and Extension Point
mmm but are plugins and extensions the same things. Well it's like a power strip, you pull in cords to the powerstips. the interface is the same, but the cords are different, and the things on the ends of the cord do different things.
13th rule of XP, is napping
OOPSLA Papers as Currency
source target
I really like this paper that was submitted, but others didn't
A book I read was money -frozen desire [http://www.amazon.com/exec/obidos/ASIN/1566491800/corporatsmalltal ]
value represented as notes ---- values represents as published papers
notes guaranteed by a nation bank ---- papers guaranteed by a program committee
notes marked in various ways ---- papers in proper form so outside readers can easily identify them
but this paper fail the last target test. The paper failed to have the same form as other papers.
So I brought a lot of dis-harmony into this process because I failed to understand the metaphor.
Conclusion:
Become aware of play with our own metaphors
Unpeel layers of metaphor informatics
iI grounding hypothesis is correct, more different physical activity makes better programmers
Vote -> yes we agree.
[yes people liked the talk, various folks during the week said it was great].
Camp Smalltalk in the exhibit hall.
About 10 people were present at 11am working hard on various projects, or should I say showing things and talking. Your scribe spent some time with Tim looking at the code that changes Slang to extrude global structures then discussing the broken Delay logic and how we should fix it and if it should be a Camp Smalltalk project because it has interesting issues. IE should we fix the current one, or should it be a VM change and on clock rollover signal a semaphore, or maybe we should use or have a real/pseudo clock with 64 bits and ignore the roll over for a few centuries.
By noon the group had grown by 30 people and I was sitting with Ian attempting to make a network connection so I could send him the special changsets to reintegrate into the unix gnuify logic for the structure as a global change I had made to Slang, which had then improved acorn speed by 50%.
Stephen Pair was busy talking about his persistent VM giving detail about how it works.
Craig was back from attending the "objects have failed" panel The object have not failed seem to win the effort. Objects are now being used as a scapegoat to blame failure.
Seems a bit of time was taken up with getting network connectivity the OOSPLA 802.11b network was having a bit of problem with their DHCP server so some of us had to hard code things, but having network access was great.
After lunch I had some discussion with the folks that are looking at the new Squeak versioning system, right now they are in data collection mode and are talking to various people. For the rest of the day interaction like this carried on until the convention staff tossed us out.
Cincom & Gemstone visions
Beer & pizza served, thanks guys.
James Robertson.
First lets look at an RS protocol reader we wrote.
RS is a XML stream, used by newspapers to distribute headlines, used by folks who do weblogs.This is done in VW, shows the power of VW, uses XML from the internet. I did find out this doesn't work at 30,000 feet but because it's Smalltalk it was easily fixed on the plane last night. It uses logic by Travis Griggs to serialize stuff out to disk so I can pull the data, deposit in a store, then load and read them offline at a later date. Suports things like passwords, proxys, ftp. We also read SOAP so we looked around and sure enough there are SOAP news services. This is free. It's called Bottomfeeder.
Cincom Smalltalk
where are we!
VW 7 and OST 6.7
Cincom Smalltalk is application platform supporting "all" of the important protocols and Web services and services. Industry leading VM, as far as we know it's the fastest
VW 7.1
WSGL? generation
Smalltalk objects from WSGL
More tools cleanup, better tools, better tools, better change tools, store tools.
Ok lets demo
VW 5.i2 is almost 2.5x or 3.x from a look/feel
In VW 7.x, better look, better tools support, that cursor sensitive help text. It's modern.
Offer services
We offer implementation services, engineers etc.
Cinnection
Cincom Corporate website is being redone with this Cincom web server technology
Security
Completing SSL implementation
Signing of parcels with Digital certificates.
HTTPS is supported
Web Services
We support the spec and do the queries.
Store Source Code Control
Atomic loading for source files, versus binaries.
File attachments
More server backends
More database support
Active Upgrades
Cincom will create a public, full repository
Cincom Smalltalk will ship with Synchronization tool
Application Deployment Process Upgrade
Better console, headless support
Make stripping obsolete (a direction over time)
Tools Upgrades
(Lots of them)
Like OpenTalk tools
GUI Development
Pollock
Multi-process UI
Fix known defects
key bindings etc
VisualWorks Build Process
We have a vw-dev community
Regular build process online
Online, ongoing beta process
Constant feedback
Still to come
ObjectStudio
Fix known issues
Continuing work
Alan Knight talks
May 2000.
Lets see, Java in future, smalltalk dead, a V shaped recovery.
I quit working for a $200 million java startup.
Nov. 2002
Smalltalk still here, java startup is bankrupt.
Metaphor: Smalltalk is a Cat
flexible
pops up in odd places.
has nine lives
Well that metaphor does break down, Smalltalk isn't black.
Ah some asks from the audience how many lives Smalltalk has used up now?
So what are we doing
We are completing the platform. a zillion buzzwords, and it's not in java. Some of this in irony.
It's a good platform for writing server and gui and webserver applications.
We don't sell development tools
We sell deployment licenses that is what is being charged for.
Web application server
debuggable, testable, great XML, our cgi api is FAST (major performance gain)
Web performance
800mhz client, 433mhz server (linux)
1 or 2 ms slower than best competitor.
Other web servers where very very slow, 100s of ms slower
XML Performance
SAX driver
VW compared to Xerces
open source parser from Apache
we are 2x faster! say 30 seconds, including startup time. versus a minute for Xerces
Web Services
Complete XML Schema
Schema and class generation tools
Continue updating of drivers
mac oracle driver.
Building in ObjC
Building ObjC DLLC thing
Got Charter to overhaul Lens
GLORP
SQLWorks
Monty from GemStone
I've notice we need to state we are still around, we still do Smalltalk. We have great people, great engineers, and great customers. We had to buy the company back from Brokat, and before we did this we had to really looked and see if this was worth it. Yes! In fact over 90% of customers did renew their licenses.
So in our first year
Gemstone/S 6.0 etc and versioned our other product lines.
We make profit! Put cash in the bank
We brought on new customers (even in Seattle)
New Ideas from our customers that will lead to new products
We had a customer that build an energy trading system with customers (8000 traders).
A "Spread trade" requires lots of data trading, but 95% of the data we actually throw away if we don't finalize the transaction. Lots of time we don't care about persistence and transactions. This was a different vision from what we were using, so we decided to cache state in memory versus being persistent, saves lots of cpu cycles & time. This might be spun out to the Smalltalk community if someone comes ask us.
We want a 6 month release cycle, might try to do it at the 7.1 VW releases. Also for VA, Java etc.
Also we are looking at the small business people, we will have a small business model license, say 3 people, and you can get a license for gemstone linux for under 10K.
Martin McClure
Thanks to Cincom for the immutable bit in 7.0A That makes things great for us.
Martin then went on to say lots of other comments about some tuning, better api with less traffic and transactions, better GC, less disk traffic. I'm sure I heard things like 7 network calls being reduced to one.
More Linux
Better GC logic. More threaded GC for multi-cpu boxes.
Transit objects never store to disk.
Questions:
OS-X mac client a long answer was given for which I got some clarification later.
It seems the initial build for the gemstone os-x client worked ok but when at the last minute the files for distribution were check it was discovered the most of the header files for the server were included because of an issue in the header files that will require further refactoring.
Comment about the "new" STIC.
It's accountable to the smalltalk industry, please join and be part of it.
From what I gathered in further conditions with the Gemstone folks is that they are posed for great things with some novel and great products and solutions.
I returned early to my room hoping to do some typing and perhaps sleep but found it full with two folks from Applied Reasoning. They were there with my room mate working hard (well mostly hard) on getting their demo of Classic Blend to work on a Palm phone. I got to see numerous crashes requiring hard resets even though the demo works just fine on the offical software emulator. (go figure). Between crashes I asked them what was neat, and it was:
[Naked Objects>http://www.amazon.com/exec/obidos/ASIN/0470844205/corporatsmalltal ]
This seems to be a really interesting product. You build the business objects, you push the button then you get a UI interface that is good enough to ship, all without having to do the hard part of UI layout. Numerous people during the week told me this was the greatest demo (outside of the XP Pair Programming dog).
3AM already, time for bed.
Thursday |