I have a few things to take care of before I head to the Users Conference - for one thing, I need to get my car inspected by December 5, and that leaves today (my wife already filled tomorrow). So, Smalltalk Daily will be a little late today.
Steve Rubel notes that Yahoo is back to building walled gardens:
Has anyone noticed that Yahoo's love affair with RSS seems to be withering? In 2004 and 2005 Yahoo was all over feeds . It was an early leader in driving adoption, as a matter of fact. But in recent months I question whether they remain committed to RSS as a platform.
This is more than conjecture. In the past few weeks Yahoo has rolled out three major new web sites - Yahoo! Food , Yahoo! Advertising and Yahoo! TV . They're great sites, but none of them has feeds. There's a reason why - eyeballs.
Technorati Tags: Yahoo
|I just finished "When Baghdad ruled the Muslim World". It covered the Abbassid dynasty, which held the caliphate from 750 AD to about 930-940 AD. There was a part of the story that echoed the last book I read, "The Fall of Rome and the End of Civilization". Starting in the latter part of the 9th century, the caliphate came increasingly under the control of the military, and there were constant civil wars and succession conflicts. During the last few of those, Baghdad was besieged, and the irrigation system that had been built up was destroyed - and it's never recovered. The descriptions of Baghdad as a lush city with rich agricultural lands surrounding it sound nothing like the Bagdad that exists now (or that has existed at any time since the 10th century).|
As with the other book, it's a reminder of just how fragile civilization really is. For all our advancements, we share the same thin veneer that Rome and the early caliphate did.
Technorati Tags: history
William Brogden makes a meaningless point in a "REST vs. SOAP" post:
Another important, but frequently unappreciated point is that, in contrast with REST which requires HTTP, SOAP messages can be moved by any transport method which can handle Unicode text. Because of the convenience of HTTP for penetrating firewalls and the fact that developers are most familiar with the Web, HTTP transport continues to be emphasized.
I'd bet you could count on one hand (and use very few fingers doing it) finding all the non-HTTP uses of SOAP. On the vendor side, who actually supports that?
Wired notes that the MPAA seems to like fraud:
Movie industry lobbyists quietly push California lawmakers to quash a measure that would have outlawed HP-style tactics designed to fraudulently obtain private information about consumers. The MPAA argues its antipiracy efforts would be harmed.
It's pretty clear to me why the BBSpot story was believed by so many people; the MPAA is nearly impossible to parody at this point.
Jeff Jarvis tries to dissmiss criticism of the $100 laptop project - but I have a bone to pick on that:
I love the One Laptop per Child project (David Weinberger takes one for a spin here ) and think the criticism of it motivated by PC nitwittery (’you should solve every other problem the poor have before giving them a laptop’) or competitive greed (’how dare you make an inexpensive machine with inexpensive software?’) is ridiculous, even offensive.
PC nitwittery? You mean that some other basic needs, like sanitation and electricity are less useful? You don't think that a bunch of laptops handed out to the truly poor represent nothing so much as a target for extortion? Dismissing completely logical objections is itself stupid.
There are problems with "trying to solve every other problem first". On the other hand, some of those problems might well be worth looking into. Simply dismissing them out of hand is not an argument - it's a refusal to engage.
Technorati Tags: charity
|Tomorrow I'll be flying to Germany, ahead of the Users Conference. I'll be there all week, so if you would like to ask me questions about Cincom Smalltalk, head on over to the Moevenpick hotel - I'm sure we'll be drinking wine and other stuff each evening after the conference.|
So I'm heading to Frankfurt tomorrow, on USAirways, and I decided to check flight status (I never do this). Probably a good thing I did - here's what I found out about the outbound flight from BWI:
Ok, this is fascinating. I contact USAirways. They apologize for not notifying me (so far so good), but then accidentally disconnect me. Sigh. Call back. While I'm waiting, I hunt around on Expedia to see what's there. Looks like there's an earlier PHL flight (goodie - longer layover), and a later flight (which would require moving my flight to Frankfurt as well).
I tried to see if they would move me to the later flights, but no dice - understandable, since they said there were only business seats left. I did express some surprise at that, since Expedia says that there are, in fact, coach seats.
At this point, the call center guy at USAirways got snippy, and tried to blame the whole thing on Cincom travel. Yeah, that's going to make me want to fly your airline again - blame shifting. Looks to me like the powers that be at USAirways need to look at the customer service end of things, and fix a few problems. When you cancel a flight out from under the customer, you don't engage in blame shifting - even if the travel agency was at fault. You accept the blame graciously, and move on. Otherwise, the customer is likely to look elsewhere for their next flight. I know I will.
Update: I checked with Cincom travel, and no - USAirways never notified them. Great job giuys - thanks for making my next flight not be on your airline.
This from Dave Winer:
BTW, according to Amazon, the package that I paid extra to have delivered yesterday, still hasn't left their warehouse. I know I can call them, enough people have sent me their hidden customer service number, but I'd prefer to bitch about it here on my blog. ";->"
Now this was a cool gift from my friends Mike and Jo: A USB Rocket Launcher:
Of course, it comes with targeting controls:
I now have office defense :)
So after an exciting lunch in the food court, I've found a power outlet and have the laptop up. Small glitch though; no wifi. How can the international terminal in Philadelphia have no WiFi access? I feel like I've taken a quick trip back to the 90's. Oh well - I can catch up on all the feeds that updated over night, and read one of my books.
Time for the weekly look at the logs. This week, BottomFeeder downloads proceeded at a rate of 173 per day (I'm also getting another 30 or so per day from the CNet site, but the daily stats aren't really available there). The details:
I only have the Windows version available on the CNet site, and you can see that the Windows download rate on my site is down a little - it's transferred over. On to the HTML page accesses:
|Tool||Percentage of Accesses|
A little more parity between IE and Mozilla this week - they are tied, for all intents and purposes. Finally, let's have a look at the syndication stats:
|Tool||Percentage of Accesses|
|Net News Wire||8.4%|
|Google Feed Fetcher||6.6%|
|RSS 2 Email||1%|
And that's another week in the can
My network-free stay in Philadelphia was graciously extended by USAirways - it looks like yesterday's storms had after-effects lingering into today. We had two gate changes, and didn't get off the ground until after 5:30 (which means that I could have taken the later flight from BWI this morning, and gotten more sleep. Oh well).
Anyway, it looks like we won't be terribly late - we have strong tailwinds, and we'll make up more than an hour of the scheduled air time due to that. On another positive note, there's power at the seats, and my Targus adaptor works nicely with the plugs. Looks like the flight crew is bringing dinner along, so I'll be closing the notebook soon, and flipping over from music to podcasts.
|I finished a quick read this afternoon, while waiting in Philly: " In the Wake of the Plague ", by Norman Cantor. It's more of a "cultural history" of the plague, looking at the changes that followed after the death. A lot of hinge points came up:|
- The death of Princess Joan, daughter of Edward III of England. She was on her way to marry the King of Castile. Had that gone through, there would have been dynastic links between England and Spain - who knows how that would have affected the future history of relations between the two?
- The pogroms against Jews (especially in central Europe) caused a flood of refugees into Casimir's Poland. That led to the large Jewish community in eastern Europe, which was later targeted by the Czars (and extinguished by the Nazis)
- The labor shortages in England, which led to a backlash by the monarchy and nobles - and in turn led to the peasant revolt of 1391 (which in turn led to more brutality).
Anyway, that's just hitting on a few of the high points of the book. Cantor's got a great conversational style, which makes the book very approachable. I recommend it highly.
|Fortunately, I brought another book along: " Tamerlane: Sword of Islam, Conqueror of the World ". I'm not done with this one, but it's a fascinating look at the late 14th and early 15th centuries in central Asia, when Tamerlane raged across the steppes. The name we know him by is one he would have been offended by; it's a corruption of "Temur the Lame", which refers to an injury received in his early career.|
Like a lot of rulers from that era, he was a complex mix of culture and bloodthirstiness - it's likely that he killed millions as he built his empire. One thing I didn't know - he's apparently been rehabilitated in Uzbekistan since the fall of the USSR. His birthplace is in that nation, and he's become something of a national symbol. It's enough to make you wonder how people like Stalin and Hitler will be viewed 6 centuries from now...
Technorati Tags: history
I've finally made it to the hotel (as you can probably tell from the backlog of posts that suddenly appeared). The room seems nice, and there's free wired (and wireless) internet service. That's an improvement from Philadelphia. I'm off to exercise; no idea whether I'll stay awake after that :)
There are some skype artifacts in this one - we spoke to Peter Fisk, author of Vista Smalltalk. Those artifacts were there during our chat, and while they are noticeable, they don't really get in the way. We had a great conversation, and I came away with a much better feel for Vista Smalltalk and where it's going. Hope you enjoy it.
Ralph Johnson talks about some interesting Squeak work:
The last few weeks I've been looking at Pavel Krivanek's project to break Squeak into smaller modules. Unlike most people, who start at the top and try to carve out pieces, he is starting at the bottom. He has developed several images. KernalImage is a Squeak image without any GUI. It has collections, numbers, classes, the compiler, but little else. It has a text-based UI that can evaluate Smalltalk expressions, and it can load files from disk. Pavel has a fileIn for Monticello, so then you can load any other package, as long as it doesn't have a GUI.
KernelImage is a place I'd like to see VW get to, with everything else loadable.
Argh, I hate being a geek sometimes. When I see a computer belonging to a relative that's in such bad shape and instead of just leaving it alone I have to volunteer to "fix it up and make it better", leaving me to be here at the computer at 9 at night on a Sunday running virus scan after virus scan on an old and busted laptop.
That's exactly why I recommend Macs to my non-technical friends and relatives. My brother in law and I were commiserating over the this kind of thing recently. My father in law - a man with multiple degrees and doctorates, who built his own PC (and he's over 80) - needs this kind of periodic help. If he had a Mac, he wouldn't have those problems.
Linux? Sure, it's a possibility. For the non-technical user though, I think a Mac is simpler. And the intel Macs aren't much of a premium (price-wise) over PCs anymore.
Technorati Tags: windows
Nick Carr notes that Google's "spaghetti strategy" hasn't been well received internally, either:
Brin has been particularly blunt. In early October of this year, the Los Angeles Times reported that "Sergey Brin is leading a companywide initiative called 'Features, not products.' [Brin] said the campaign started this summer when Google executives realized that myriad product releases were confusing their users. 'It's worse than that,' said Brin, Google's president of technology. 'It's that I was getting lost in the sheer volume of the products that we were releasing.'" The article also quoted Schmidt, who said of Brin's effort, "That is a big change in the way we run the company."
I suspect that the "20% time" thing - whereby the developers spend up to 20% of their time on pet projects - has a lot to do with the scattershot product strategy. I suspect that it also has a lot to do with some of the products that have been completely neglected (splog magnet Blogger, anyone?).
More than anything else, they need focus. The ad business is doing really well for them, but it's masking a whole host of other problems.
Technorati Tags: Google
I would have put this post up last night, but the hotel's internet service crapped out. So, here we are are this morning :)
With some time to kill, a few of us decided to go see some local museums. What we didn't know is that museums tend to be closed on Monday here in Germany. We did manage to see some interesting buildings though; here's a shot of a church tower taken near the Christmas fair:
Here's another one looking at the other side of the street at the fair:
The fair was packed on the weekend, according to people who were awake enough to get out that day. That wasn't me - I passed out around 5 pm :) Finally, here's a river view I took once we realized that the museums were closed, and all we could accomplish was lunch:
Technorati Tags: frankfurt
We had a pre-conference dinner last night - mostly Cincomers and Heeg folks. Here's a picture I took of one end of the table (my camera's batteries went after this):
From the left, that's Magnus Jakt (Heeg), Helge Nowak (Cincom), Georg Heeg (Heeg), Andreas Hiltner (Cincom), and Suzanne Fortman (Cincom). I'm off to exercise and get breakfast, and then down to the conference. Everything looks good for recording the sessions, too!
The conference has begun - we are recording the sessions, and I should be able to get podcasts up sometime after the conference ends. They'll all end up in the same podcast feed as the regular ones. Here's Dave Wood, EMEA Director for Cincom, opening the conference.
We have a good crowd - a total of about 100 people, including Cincomers and partners. Should be a good conference. Here's Suzanne Fortman, who followed Dave Wood, and then Monika Laurent:
George Bosworth is one of our keynote speakers - he's spent the last few years at MS (as part of the CLR design team). He had previously been one of the leads at Digitalk, for the Smalltalk/V VM. He's doing some consulting now under the name "Ephemeral Consultants". Here's George:
And here's the audience:
The title of the talk is indicative of the content: "Small things matter a lot". George makes the point that as he transitioned from Pascal to Smalltalk (this is way back, before Digitalk was founded), he noticed how much easier it was to read Smalltalk code and understand what was going on.
"Too many details can make it harder to understand"
Here's a nice point: "programming in the small", as opposed to "programming in the large". To wit: Programming in the Small means that you have white box usage and text level reuse, you rewrite/refactor often. Programming the Large means that you have black box usage, object level reuse, and you standardize and attempt to fit things into your framework.
Here's another great quote, that George took from one of the early customers of Digitalk (and still one of Cincom's Smalltalk customers:
"Risk should be managed, not eliminated"
Risks are indicative of upsides and downsides; you can't win if you don't play. Another good one:
"When nothing is working, failure is not to be feared"
This one came out of an IBM lab where they decided to throw caution to the wind, since they figured that they would all be fired if they couldn't deliver their demo app within the (shrinking) time frame they were looking at. Often, we do our best work when there's no other choice :)
Another good insight:
"The critical innovation may not be the software"
Unless the software is actively getting in your way, the real innovation usually needs to happen on the business side, not the development side. Another great point:
"Usage is better than analysis"
"dogfooding" will teach you more about your product than anything else. He gives a great example from Microsoft - they started using SQL Server internally, so that they could learn first hand what did and didn't work. Here's where George sees things going:
- Large Systems
- Huge multi-cores
- Software always on
- old tradeoffs are no longer appropriate
- Requiring perfection leads to disaster
- Mistakes are to be encouraged and learned from (if you don't play, you can't win)
Smalltalk encourages the latter. Having fun is important too!
Microsoft Corp.'s Zune device dropped to fifth place from second in the U.S. market for digital media players in its second week in stores, market researcher NPD Group Inc. said.
Week one sales were better than early reports, but ot looks like things are settling down to mediocre for week two. I still think MS made a huge error in killing PlaysForSure and not supporting Windows Media Player.
I gave my roadmap talk at 2:00 pm; you'll have to wait for the podcast to get the lowdown on that. Up now, we have Andreas Hiltner and Georg Heeg, who are talking about the ObjectStudio 8 project. ObjectStudio 8 is ObjectStudio running on the VW VM (actually, inside VW).
First, a brief history - VW descends (like Squeak) from the original Smalltalk-80 at PARC. ObjectStudio was a greenfield Smalltalk (originally Enfin) aimed specifically at Enterprise users (easy DB hookups, mainframe connectivity, etc). Here's Georg and Andreas getting set up:
Smalltalk has classically been a great system for modeling - so we can model one Smalltalk system in another. VW has the higher performance VM, so we modelled ObjectStudio inside VW. So ObjectStudio and VW live together in the same image, meaning that you can use all the capabilities of both environments inside one codebase. The goal was to make it possible to use existing OST and VW code seamlessly; we've gotten pretty close to that. In most cases, there's only minimal porting necessary for existing ObjectStudio projects.
So the history of this project:
- June 2005: First "Alpha" - not tested
- Then we started testing, fixing compatibility issues (or deciding to use something else. For instance: BinaryObjectStreams are gone, you need to use BOSS instead)
- December 2006: We've been working with some early access customers to test on real applications
Now Georg is going over the basic approach taken. The idea was to model OST in VW, preserving syntax and semantics. This meant:
- Created an ObjectStudioCompiler
- Embedded in a namespace
- Shared much of the kernel code (collections, magnitude, etc)
The other goal was to make OST global names act like they did in older ObjectStudio. One of the interesting things is that ObjectStudio 8 can export code the same way as classic ObjectStudio always has - which means that the source code control strategy OST developers have always used will continue to work.
So we now have:
- One installation
- One VM
- Two sets of DLLs
- One image
- Decision at startup as to what you want to use
Another interesting fallout of this project is the way the event loop is handled: classically, the event loop in VW has been in the VM, and a subset of events have been pumped up to the image. That's been changed: the event loop is now image level (i.e., in Smalltalk). There's a positive side to this even if you aren't an ObjectStudio developer; you can create your own event handlers at the Smalltalk level now.
On source code, ObjectStudio developers can do one of two things: they can use Store, the system used by most VW shops, or use the SmalltalkArchives, which allows file based storage (one file per application). You can also write out class files as you always have in classic OST.
So our schedule: we are entering open beta this winter, and will have a supported release of ObjectStudio 8 this summer (2007). Some known issues:
- Immutability (of literals)
- Declaring Pool Dictionaries
- You must export modeling tool definitions in ASCII (binary format is incompatible)
Another thing to note: The Modeling Tool will not be supported in the initial release of ObjectStudio 8 - we would appreciate feedback from the Smalltalk community on this.
The cool thing is that everyone benefits. OST developers gain access to all the components of VW (WS*, web apps, etc, etc). VW developers get native GUIs on Windows (if they rewrite the GUI using OST frameworks). They also get access to mainframe connectivity.
In OST 8, the VW browser and debugger are used, while the OST inspector and workspace tools are still around.
Niall Ross is talking about in place updating of an application. Here's Niall:
The fantasy scenario: "We'll port to (insert language here - could just be a new major release of something like Cincom Smalltalk), freezing development while we port". Fantasy, because no one can go through the porting period with no new features.
The reality: Frantic development continues while you port - which makes the porting task all the more difficult.
Niall recommends an agile approach: work with the pressures, not against them. So you minimize early code changes (namespaces, class definitions, etc).
Porting from single namespace Smalltalk to modern VW - create a single name that will be used, and to start with, do this:
- Build a package with only a namespace and the right resolutions
- define a "faux" namespace that actually maps to the Smalltalk namespace (which allows you to make the bigger change later).
Niall also recommends keeping the old (non-namespaced) and new (namespaced) codebases in synch, in Store. You can do this by creating rewrite rules and reconciling code between Store packages/bundles. One key tip: defer broken initialization issues until later. Loaded code is easier to fix than unloaded code.
The demo Niall is showing is pretty cool - using rewrite rules and a port of Store for Glorp to VW 3, he's replicating code from VW 3 into a Store repository, and then reconciling it in VW 7.x. Another cool thing - Niall and a few other people have extended the rewrite engine piece of the RB with menus, in order to make it easier to use.
This is Andreas Hiltner and Mark Grinnell going over how you approach a migration from OST classic to ObjectStudio 8. Some limitations:
- ObjectStudio allows "- 500" as a message - that's not supported
- For backwards compatibility, method parameters can be overwritten. VW typically does not allow that.
- Global Variables are now SharedVariables defined in the ObjectStudio namespace.
- The ObjectStudio 8 compiler does not allow duplicate names between instance and class instance variables
- Immutability: literals cannot be changed at runtime (however note: in the Parcels directory, there's a backwards compatibility parcel).
- All loaded ObjectStudio code will end up in the ObjectStudio namespace (and, you need to descend from those classes in order to get the ObjectStudio Smalltalk compiler)
- If you subclass collections, you need to implement the instance method #copyEmpty: in order to copy any new instance variables you want to preserve.
- Note the #at: and #at:put: have different return semantics between OS and VW. The OS semantics have been preserved in the OS8 classes.
- Note that #whileTrue: now returns nil, and #whileFalse: also returns nil. In classic OS, they had returned true and false (respectively)
- The new Date class only allows valid dates (it raises an exception on errors). Also, month names are now case sensitive.
- Processes: Classic OS uses native threads for Smalltalk processes. In OS 8, these are all green threads (eliminates a host of synchronization issues). The ThreadBrowser has been replaced by the ProcessMonitor.
- SendHooks don't exist - MethodWrappers are the VW version of that.
- Breakpoints do not have much overhead any longer.
- User written primitives: you may well have to make some modifications to these - we provide an example makefile showing what you need to do.
- Nil (with the capital) is now a special instance of OPTR. Any pointer should be checked against Nil, not NULL or 0 (zero)
- SQL Server: The old db-lib interface has been deprecated - the interface now uses ODBC.
Can you say "selective enforcement"?
On the last day of the recent Reuters Media and Marketing Summit in New York, Warner Music Group CEO admitted that he was "fairly certain" that one or more of his seven children had downloaded music without the permission of the copyright owner, which Reuters referred to as stealing.
Despite the alleged infringers' proximity to the major label head and his direct awareness of it without the use of ISP subpoenas, somehow no lawsuits were deemed necessary, although Bronfman said that his kids had "suffered the consequences"
You know, this is the sort of hypocrisy that makes the RIAA in general, and Bronfman in particular, look like a complete tool.
This morning's keynote is from Heinz Roggenkamper, VP of Development at SAP Labs. His team does R&D at SAP, as a way of introducing the rest of SAP to possible futures. They've been looking at Cincom Smalltalk as one of those possibilities.
A Smalltalk test was done using a duplicate invoice finder problem as a test. They were pleasantly surprised at how quickly they got to a working proof of concept with help from Heeg. Those three weeks included a one week training class. One of the big take aways for them was that they felt like they understood the domain better at the end of the process.
They did a second proof of concept in a project called xCarrier, which deals with supporting shipping management: selecting the carrier, etc. They implemented an awful lot of the rule engine in 3 weeks, and got the proof of concept integrated with ABAP and Java components (web services). Georg Heeg picked up at this point to explain how things went from the Smalltalk side:
The approach taken was the classic one - model the known domain, and learn the rest of it as you go. This involved very short iterations with constant feedback. For the integration piece, a connection between Cincom Smalltalk and SAP NetWeaver (SAP's Web Services piece) was built by Heeg's team.
What does SAP like? They like the fast feedback from customers, and the ability to build executable case studies. Right now, they are using Smalltalk as a learning/exploratory tool rather than as a deployment tool.
Up next are Ralf Ehret of SAP, and Taylan Kraus-Wipperman of Heeg, talking about the Smalltalk to NetWeaver connection project.
What does this enable?
- SAP can use Smalltalk for exploratory modeling
- SAP customers can use Smalltalk with SAP
- Provides a standard way of integrating Smalltalk and SAP in a project
This provides a connection to all SAP back end services, and is a first step to being a part of the SAP Enterprise Service Architecture [ed: maybe the enterprisey types will notice :) ].
This is all built on the industry standard WSDL/SOAP model. This allows Smalltalk to invoke RFC-enabled modules. The NetWeaver Connection makes Smalltalk a first class citizen inside the SAP NetWeaver world - it allows anyone to use Smalltalk with or instead of Java and ABAP.
The Smalltalk side is built on top of the WS* stack on VW. With that, it's a demo of the xCarrier project, using the SAP order system and the VW Transportation Zone system (the VW piece of the xCarrier project). The steps:
- Process incoming order
- Find business partner
- Get TPZ for incoming order
- Use TPZ for truck load planning
The demo shows an SAP application talking to VW via the WS* stack - you can see a similar thing in one of the screencasts I did recently. This stuff is going to be available (beta) with VisualWorks 7.5. There's future development going on: deeper access to the SAP BAPI repository, automatic access to RFC function definitions, and access to the Enterprise Service Repository.
After a few interesting hiccups with his slides, Alan proceeded to talk about Store futures:
The topics: Shadow Compilation, updated Merge Tool, Glorp as a Store back end, Projects and Streams, and Internationalization (for Store).
Shadow Compiling: motivated by partial code loading - i.e., errors that occur while the code is loading from Store. Source loading involves filing in code from the repository, which can lead to file-in load ordering issues. For instance: you are loading a new version of the Oracle Database Connect while using the Oracle Database Connect as your repository connection.
Parcels obviate these issues by installing code after all the code has been read. Parcels also supports the loading of code that cannot be fully installed (but will be if/when the pre-requisites for it are loaded). Store loading works in one of two ways: Source (like file-in), Binary (like parcel loading). Source loading does handle unloadable definitions better than filing in. Binary loading does not.
So Shadow Compilation: like file-in, compiles source. Like binary, defers installation (loads into a shadow namespace). From the user's point of view, it's an atomic load. This stuff will be included in 7.5, but will not be turned on by default. It's essentially preview (beta). To turn it on:
Store.Bundle useShadowLoader: true.
There will be an option in settings for that.
This next part is mostly demo, of the new merge tool that's been done. It's a much nicer tool now - you'll just have to look at it when 7.5 ships.
Store For Glorp: a Glorp back end for Store. It adds an actual object model to Store. In the process it improves performance, makes for better queries, and supports schema modifications (at present, this is hard). This is in preview now, but a number of people are using it (including Cincom engineers). Features:
- Repository Crawler
- Browse Class Versions
- Store Worksbook - a workspace of useful Store expressions
Projects and Streams: Addresses "configuration management" issues in Store. Very early stage, design level work. We do want feedback.
- Higher level code organization
- Tools aspect of that
- Code management aspect of that
We want projects to be partially loadable, aware of deployment and non-Smalltalk artifacts. We also want to support explicit branching. Streams more or less means a series of versions with branching supported. To do that now, you have to go by naming convention. Streams will allow something akin to Envy "open editions".
This is Dr. Jochen Eckert of DB Systems, who's going to tell us about train scheduling using Cincom Smalltalk:
The goal of this project: They needed to accurately schedule their trains with correct times, and without conflicting train paths. They have 40,000 trains/day, over 35,000 km of tracks. They needed:
- a GUI for Visualization and user interaction
- Detailed calculation of running times. times of usage, conflicts
- Multi-user access - 7 regional business units, around 50 users per unit.
The client is a VW 7.4.1 "fat client" connected to an Oracle 9 DB and some Smalltalk servers. There's also a lighter weight version for notebooks that uses personal Oracle.
Next up: Martin Kobetic, who's going to talk about the security frameworks in Cincom Smalltalk:
This talk will be covering SSL, client authentication, and certificates in Cincom Smalltalk. The web server being used for demonstration is a simple web server implemented in Opentalk. To use a secure connection, the first thing we need is a certificate. Typically, you get a certificate from a trusted source, but you can create them from code (probably for testing), or import one that has been issued:
You can save (and restore) keys that you generate for this to and from disk (or a database, etc). You can save and restore certificates the same way (in fact, I've done that in BottomFeeder). So with that out of the way, Martin is creating a secure (https) server. This looks just like creating a normal one, but with the additional step of handing it a certificate, and telling it to use a transport of https instead if http. With that done, using Firefox, we get the normal "Do you trust this certificate" prompt from the browser.
Unlike browsers, we don't ship CST with pre-trusted certificates. The reason? It's a hard job to make sure that the ones you ship are up to date and valid. You can add certificates to the registry (and save that to disk) pretty easily:
registry := X509Registry new. registry addTrusted: someCertificate.
Likewise, there's protocol to handle revoking and removal of certificates. Also, you can export the certificates out of the browser and read them in using class CertificateFileReader.
Uwe Liebold of AMD is here to talk about testing frameworks that they use in their Smalltalk applications:
The CEI application is part of their APM (Automated Precision Manufacturing) approach. The APM powered fabs are controlled by software/hardware that Uwe calls their "central nervous system". The CEI baseline began with Fab 25 in Austin, Texas in the early 90's. It's been extended, enhanced over time. Currently, they are using VisualWorks 7.2. They have:
- ~3000 classes
- ~45,000 methods
- 27 MB runtime image
They have gotten more and more interested in testing as time has gone by - they simply cannot afford downtime in a 24x7 manufacturing system. At the same time, they have continuously changing requirements, so implementation and integration are never done. They started to get more serious about unit testing after they migrated up from VW 5i.4.
They've put testing on an equal footing with development - they now run all their tests after every integration, and they use SUnit both in development and in deployment (using RuntimeTestRunner, a tool that logs results rather than reporting to a GUI). They've introduced a concept called Matric Tests, which is based on hardware test scenarios. It's a 4 step process:
- Set parameter(s)
- Run component
- Read result
- Validate result
He's wrapping up with a demo - the TestMatrix stuff is kicked off the same way that normal SUnits are - using the browser extensions, straight from the RB.
“WPF/E” (codename) is a browser enhancement module that enables browsers to render rich content in addition to HTML. ‘WPF/E” is compatible with both the Safari browser and Firefox 220.127.116.11 on MacOSX 10.4.8. The Dec 2006 CTP will expire on February 18, 2007 at which point when a web page that uses it is rendered, it will prompt the user to update to the latest version. “WPF/E” (codename) will periodically ping Microsoft.com to verify its integrity (at which point the only information that will be communicated will be your IP address and the module version).
So there you go - it looks like Vista Smalltalk won't be just for Vista...
Alan's going to cover some advanced ideas using Glorp - for instance, how can you use Glorp to do what Ruby on Rails /ActiveRecord does. Glorp itself is an open source (LGPL, with Smalltalk qualifications) that works across Smalltalk platforms. It's also the O/R future for Cincom Smalltalk. Glorp is meta-data driven.
So to basically define Rails - "opinionated software":
- Go really fast, in one direction
- Reaction against J2EE/.NET
- "Greenfield" projects
- Ruby based
- Some Smalltalk like "tricks" in RoR
- ActiveRecord pattern for persistence
To contrast: Glorp uses explicit metadata, while ActiveRecord is implicit. It uses strict naming conventions, hints at the class level, and is aware of (English) language forms. It does code generation (mostly for the web).
Glorp uses a single broker (session). It's responsible for object identity and manages automatic writes. It's agnostic to use (GUI, web, etc). Rails is actively for the web, classes act as brokers, there's no object identity, only one global session. Glorp puts a premium on flexibility, while Rails puts a premium on simplicity - there may not even be a domain model (per se).
So the question is, can we provide some of the benefits of Rails without losing our advantages?
- Automatic persistence
- convention driven
- but be less restrictive
- use a bit more information
- allow a graceful transition to non-automated
So first, we have to be able to read the DB schema - Glorp can now do that (at least, for Oracle and PostgreSQL). After a bit of explanation of how the schema is read, it's off to a demo. The demo hooks up one of the standard Seaside demos (the Sushi Store) to use a database instead of in-image data.
Martin is back up to talk about the WS* stack in VW. This is mostly a demonstration of the WS* tools that have been appearing in the product over the last few releases. The first demo is actually something I covered here, in one of my screencasts. Martin's next demo is exposing a Smalltalk service via WS*, and the example is a time service - which I posted on awhile back.
Finally, Martin demonstrated the new support for SOAP headers, both in the stack and the supporting wizards.
The NY Times reports that spam has simply exploded over the last year (especially the last few months):
You’re not the only one. Spam is back -- in e-mail in-boxes and on everyone’s minds. In the last six months, the problem has gotten measurably worse. Worldwide spam volumes have doubled from last year, according to Ironport, a spam filtering firm, and unsolicited junk mail now accounts for more than 9 of every 10 e-mail messages sent over the Internet.
That kind of volume is going to kill free email. I'm not sure how a paid system would push itself onto the net, but I would bet that a paid (and open only to members) service by a large vendor would attract interest.
Next we have 4 short presentations. First, Andre Schnoor of Cognitone:
Cognitone sells products that enable music prototyping. The editing allowed is pretty cool. Andre claims that he has saved 75% of the time he would have taken using anything else.
Next up: Jan Lukes, who's going to talk about using Store in a more Envy-like fashion:
What he's trying to get:
- Versions for classes
- Tool like ApplicationManager
- Better comparison tools
- Color coding for versions
They decided not to muck with Store itself, just the tool level interface to it. For auto-publish, they issue a sub-versioning publish on each accept. For class versions, they use one package per class, and hide packages completely. They treat Bundles more like Envy applications.
Next: Alfred Wullschleger - he's going to present a dynamically defined state model that's not based on the state pattern:
What they were after was a user configurable state model, so they created a state model that works a little like an event model.
And finally, Uwe Danzeglocke is going to talk about deploying cross platform software:
He also went briefly over some IT best practices standards and configuration management best practices. Interestingly, they base all of their products on one image, and control what can and cannot run based on license keys that unlock modules. They support one look and feel across the products, and have multi-lingual support.
So to Seaside: one major thing is that we have no templating. It's all done in Smalltalk. The metaphor is canvas and brushes.
Another nice thing is that most debugging is in Smalltalk, using the Smalltalk debugger. Michel recommends using Firefox with the Firebug plugin at the browser level.
I couldn't take notes during Scott's talk - my machine was busy recording the talk. Scott introduced us to the open UP process that he's championing at IBM, which you can get information on here. Most of Scott's talk should come through pretty well on the podcast. I'll get that posted sometime next week - there's an awful lot of audio to go through though :)
I gave my talk this morning, and then we had a feedback session, where Suzanne, Georg Heeg, and I took questions from the audience. Here I am, giving my talk:
Then we moved on to feedback, and here's the three of us when we started that:
And finally, the audience we sat in front of for that panel:
It's been a great set of sessions; now we have a set of BOF sessions to do before we wrap up with a dinner.