Feeling lazy today
It's that after the holiday weekend blah. Maybe the motivation will return later (after more coffee), or tomorrow. The good news is, only 1 week until Smalltalk Solutions. What are you waiting for - go register now!
It's that after the holiday weekend blah. Maybe the motivation will return later (after more coffee), or tomorrow. The good news is, only 1 week until Smalltalk Solutions. What are you waiting for - go register now!
Today's spotlight is on Reg Crock's talk on Smalltalk and automotive systems:
Automotive Manufacturing Execution Systems In Smalltalk experience report Reg Krock: Locksley Creek Software Monday 4:45:00 pm to 5:30:00 pmAbstract: This session would review the experience of implementing a distributed VAST solution in three automotive plants. The experience report would review the original design and how it improved from plant to plant.
Issues involved included guaranteed fast response time, robustness, agile systems using simplified rules and actions, and coordination of the entire system. The most recent system had a shop floor response time of approximately 20 milliseconds per event. It has met this and other requiements well, had a very smooth implementation, and is now a great success story.
Bio: Reg Krock has been involved in software development, in a variety of management and development roles, for the last 25 years. For the last 7 years he has been involved in the development of Smalltalk applications in the manufacturing environment, primarily real-time manufacturing execution systems for automotive plants. He has also been involved in the development of Smalltalk applications for the steel and automotive parts sectors.
While Sinbad is billed as a kid's movie, it's well worth seeing. The story is more complex than either of the last two (disappointing, IMHO) Star Wars flicks. It moved along well, had lines that worked both for the kids and for the adults - and was altogether entertaining. Recommended.
InfoWorld reports on a court ruling that makes reverse engineering in software actionable, if the EULA forbids it. That sounds semi-reasonable, until you read more and realize that reverse engineering could be taken to be "we looked at a competing product to see what we could do better". The lawyers will be happy with this one....
I posted a link to Mark Bernstein the other day in a post, and he's posted something else I agree with today:
nEcho continues to fly off the rails. I'm afraid this process is broken; perhaps, irreparably. (Roger Benningfield, Doug Miller, Zeldman) In the absence of any sort of agreement on the desirability of junking XML-RPC, it seems that people decided to 'declare consensus'.This sure ain't the consensus I learned about at a Quaker college.
The upshot of requiring every server to support three separate interfaces will be to ensure that none of the interfaces will actually be definitive. This leads, in turn, to the standard being "whatever works". People will write software to cater to bugs. People will write clients for programs, not standards
Yeah, I'm in agreement again. Maybe all of us necho cynics should get together and drown our sorrows.... It is hard to keep up with the laundry list of API's being churned. Trackback and Pingback (at least 3 different forms, by my last count - and from the outside, how the heck do you tell which one an advertised link uses? Then there's going to be an necho variant, I'm sure. The Blogger API, and the MetaWebLog API's, and the necho variants (using gosh only knows how many forms - REST, SOAP, but not XML-RPC).... The level of complexity is growing by the minute.
Java's niche of being the COBOL replacement for the new century. And when I say niche, I must point out that this is a big niche. When viewed from the perspective of programmers employed, lines of code written and the direct influence on peoples lives from day to day over the last half century, COBOL is the elephant in the programmers' kitchen that everyone seems to try to ignore.But in terms of advancing the art of computer programming, it's a niche nonetheless. The history of COBOL development has lied in advancing the art of COBOL, without appreciably much of that art making it beyond that barrier.
Java is successful, there's no argument about that. But it's leading to nothing new - all the interesting things are happening elsewhere - Agile didn't start in Java, AOP didn't start in Java - the list goes on. That makes Java an ok language for business (overly complex IMHO - I really don't think that the VB or Cobol crowd are interested in that level of complexity) - but it's not where the innovation is.
The Register pees on Oracle's cornflakes this morning:
As a leading influencer of IT strategy and directions, Oracle's IT vision is
- Data-Centric
- We're all heading towards one single enterprise database, and
- We are spending too much on hardware
For the first time Oracle appears to be seriously out of touch with the reality of IT architectural thinking. Most people would only agree with one of those three goals, and there is an alternative vision
Interesting takedown of a corporate level strategy.
Ben Hammersly notes that there are classes being taught on how to blog. Like he said, whoa
It's clear what The Register means here, but I have to hand it to whoever put this eye grabbing headline up:
Spam and porn lift SurfControl
Yep, that one caught my eye and lured me to follow the link :)
I posted on this reverese engineering lawsuit earlier, and then came across this story in Linux Today. Combine the two together, and you end up handing MS (or any large company that gives source code access) an interesting weapon - any future open source efforts by developers who saw the shared source could be liable to suits given this precedent. It's an interesting potential issue; I wonder if corporate lawyers will try to use this.
I read this story on MS bloggers with interest. It seems to me that MS is tacitly encouraging blogging, which is good - and the bloggers themselves are watching themselves. That's pretty much what I do here - since I post on Cincom's servers, I try to police myself. Eventually, some blogger somewhere is going to cross a line that irritates management at their firm, and it will be very interesting to see what (if any) fallout comes from that. I'm sure all corporate bloggers are wondering about that. In the meantime, we try to be interesting within our own self described boundaries....
The technical jargon problem goes beyond the IT industry. Just as non-tech management and workers often have no idea what we are talking about, consumers have an even dimmer idea of what the industry is talking about. Here's a story outlining the problem. You can see the problem in any ad for PC products or new electronics - while many of us in the tech sector understand the terminology, most non-tech consumers are baffled:
Terms such as MP3 and Bluetooth are only understood by a small number of people, a report by a consumer research group found. The findings are bad news for the industry, as it suggests that the baffling terms are putting people off buying the latest gadget. "The technology industry must simplify its vocabulary so that consumers around the world can better understand the benefits technology can bring to their lives," said Patrick Moorhead, chairman of AMD's Global Consumer Advisory Board, which commissioned the study.
In the IT shop, this kind of thing causes grief - but in the consumer space, it costs money - it's hard to sell gadgets when the potential customer has no idea what the heck they are. If you have a ReplayTV or a Tivo, you've probably already seen this in action - when I first describe the device to friends and acquaintences, the common reaction is huh??. Then I show them the device. In a quick demo, people tend to ooh and ahh appropriately. This is looks like a problem throughout the tech sector.
It's also an issue in development. The blogging community seems to have no idea just how isolated from reality it is right now. while we argue and fuss over RSS and necho, go ask some line developer about blogs and RSS. you'll likely be surprised when you find out how much they don't know. What the entire tech sector needs is the Star Trek Universal Translator, so that we can communicate with the rest of humanity....
Dear Abby weighs in on blogs and etiquette. Appropriate noises about the end of the world as we know it are off stage, left....
InfoWorld CTO Chad Dickerson nails the value of RSS:
When I started using an RSS newsreader daily, some remarkable things happened that I didn't necessarily expect: I began to spend almost no time surfing to keep up with current technology information, and I was suddenly able to manage a large body of incoming information with incredible efficiency. My newsreader has become so integral that it's now sitting in my Windows startup folder along with my e-mail client and contact manager. I'm humming "RSS Killed the Infoglut Star" when I fire up my RSS newsreader in the morning.
That's what I've discovered as well. There are a handful of non-RSS enabled sites I still visit - Dilbert and Day by Day being my two favorites. Other than that, most of my browsing proceeds directly from BottomFeeder, based on the subscribed content I'm actually interested in. This is just so much better than going through an enormous favorites list each day. I'm starting to think that a combination of wikis and comment enabled blogs could easily replace most internal email as well - making it far easier to find out what's going on in projects I need to track. RSS is still in the what's that stage for most people, and the not Echo project will be seen the same way. That's about to change, with AOL jumping into the blogging fray. Doc Searls was right - RSS newsreaders are TiVo for bloggers. Soon, bloggers won't be the only ones.
This is interesting. I've personally been very cynical about the necho format, but Adam Curry is pissed:
The $10k didn't 'just' give me an automatic base within the userland community, it got pasted on web pages all over the world and I've built up an audience that consists of 50% aggergator users.But this investment is clearly being halted short by the (N)echo project.
So I'm invoking an age olde american tradition of letting my wallet do the talking. I will again invest $10k in aggregator default placements this year, but I will spread it around, to all developers who adhere to RSS2.0. Include (N)echo and you're out of luck.
Well, that will open some eyes.
There's been interest expressed in having a Store BOF at StS, and the consensus now is to hold it during lunch (noon) on Monday, July 14th. so if you have Store issues/concerns/questions, look up Alan Knight on monday at noon!
Kent is disappaointed in the progress rate:
dW: What do you think about software quality? Beck: I wish developers would consider the enormous consequences of their actions. When I got my driver's license at 16, I was both elated and terrified; I had newfound freedom and responsibilities to go with it. Now, compare that feeling to when Microsoft sends me a new operating system. Do I have the same feeling? No, I think it's going to screw up my life for months. For how many decades and for how many millions of people has that negative emotion been created around software. I think it's such a shame we set our sights so low. Either you're stuck with software that works the way it works because you don't want to break it, or you get an upgrade that causes pain and anguish. I just want my stupid computer to work and it doesn't. That's not computing.
Of course, Kent migrated his work from Smalltalk to Java, so one could argue that he's being part of the problem, not part of the solution. He knows damn well that static typing is sub-optimal, and that there are far better solutions - Smalltalk, Python, Ruby, Lisp - than Java. If someone of his stature started speaking out on that topic, it might help.
Today's spotlight is on Norm Green's Gemstone tuning talk:
Performance Tuning in GemStone/S tutorial (extra cost applies) Green, Norm: Gemstone Wednesday 2:00:00 pm to 5:30:00 pmAbstract: Gemstone performance tuning tutorial.
Bio: Norm Green has been using Smalltalk since 1992 when he worked for IBM Canada Manufacturing (now Celestica Inc.) in Toronto. There he was a lead developer on the DACS project, a data collection and shop floor control system written in GemStone/S and VisualWorks. Green joined GemStone in 1996 as a Senior Consultant and has traveled the world helping GemStone customers with their projects. Currently he manages the Smalltalk Engineering team at GemStone. Green earned a degree in Electrical Engineering from the University of New Brunswick in 1989.
I posted on Adam Curry's silliness earlier - and I just read the .NET guy's response:
I don't have $10,000 to bribe people with, so I guess I'll just have to put my blog on the line instead. Six months after whatever (n)Echo is to become is released, I will hereby cease to provide ANY form of RSS.
Yeah, there's a plan. First, necho needs a lot more functionality before it can replace RSS. There are a lot of useful modules, there's categories (of what possible use is subtitle, for goodness sake?) - and so on. BottomFeeder already supports necho (in the dev stream for 3.1), and I have a necho feed here - but there's no way I'm getting rid of the RSS feed - it's more fully functional, and - for the forseeable future - more easily consumed.
Scoble points to this piece examining open source motivations:
I think the "gift economy" and "peer respect" aspects are often overemphasized as reasons for programmers to contribute to open source projects. Most people contribute fixes and new features for selfish reasons: They're using the program and have fixed bugs or implemented new features that they need in their own daily use of the system, whether they use it at home or for business purposes. I remember Linus saying at one time that now he wanted to concentrate his own work on power-saving features for the Linux kernel, because he just got a new laptop and felt that the battery time needed improvement.
Pretty much the size of it, IMHO. People will do all sorts of work without formal compensation - but that will be stuff they want to do, and - in general - won't include 'finishing touches' type work. Think about it - how many unfunded open source efforts come with reasonable documentation? Or a decent GUI? Or a set of configuration files you can figure out? The 'grunt work' that no one wants to do doesn't typically get done unless someone is funding it.
Ted Leung posts on a BOF at OSCON. the BOF - Dynamic Language support in the MS CLR - apparently, with members of the MS CLR team. That's really good news! Sun has been utterly ignoring this space for years now, since they want to see all Java, all the time - us Smalltalk folks have to take the goodness where we see it.
Today's spotlight is on Travis Grigg's VW fonts talk:
Fun with (VisualWorks) Fonts presentation Travis Griggs: Key Technologies Monday 8:30:00 am to 9:30:00 amOverview: VisualWorks fonts are not the most understood of things. Many VW programmers pass up the opportunity to make their applications look nicer than they could, because they little understand the fonts. Recently, frustrated with merging font hacks for PDP, super/sub-script support, and the RB Code Highlighter, I implemented the ExtraEmphases framework. This presentation will cover why and how that was implemented, as well as how to use and extend it. Hopefully, along the way, we can provide a better understanding about how the basic font system works.
Bio: Travis works for Key Technology, figuring out how to sort the world's food (among other things). He's worked with Smalltalk (mostly, but not entirely VisualWorks) since 1991. His work in that domain ranges from embedded programming to high level user interface design. Before coming to Key Technology, he worked at Siemens Power Corp writing nuclear fuel design automation software in Smalltalk. When not hacking for Key, he does his best to contribute to various open source projects, some in Smalltalk, some not.
Smalltalk Solutions 2003 is rapidly approaching - I plan to take notes and blog the various talks - both formal and informal - that I attend. Anyone interested in having their notes posted can send them to me - I'll give credit and post the notes here. It should be a great conference.
Sun really makes me wonder. They say they want to increase the number of Java developers from 3 million to 10 million - left unstated is how this would actually help Sun's bottom line. Sun seems to be trapped in one of those cycles that some companies get into. I saw this at PPD - the management there between 1997 and 1999 had decided that Java and Java tools were where all the money was - even when they heard things like this from customers (Smalltalk) and prospects:
If I buy Java tools, why would I buy them from you?
Sun is stuck in the same place. They make all their money from Solaris on sparc - Java server installations can run equally well on Solaris and Linux - (or Windows, for that matter) - and here was Sun's CTO on that topic:
Linux, and Linux on the x86 architecture in particular, will make inroads into the Windows market. With the ability to run several different flavors of Unix on an inexpensive x86 system, the option to run the prohibitively expensive Windows platform becomes significantly less attractive. We believe we'll see this transition happen slowly, as companies realize that the availability of Unix on x86 means they can get an easier-to-manage system with better uptime and performance than was previously available.
Apparently, Sun's CTO hasn't noticed that server installations of both Linux and Windows are increasing - Linux is taking a far, far bigger bite out of proprietary Unix than of Windows, at least at this point. The transition from a Unix server to a Linux server is far, far easier than the transition from a Windows server to a Linux server is.
So what's Sun's answer to all this? More spending on free Java tools (Rave). Yeah, there's a plan. Anything sun does with Rave will exist on Eclipse, either before it gets to Rave, or shortly thereafter. And in the tools space, Eclipse has all the buzz - there's even an Eclipse for Smalltalkers talk at Smalltalk Solutions 2003! Want to bet on there ever being such a thing for Rave? Then there's buzz like this.
My guess is that Rave will be every bit as successful as NetBeans. The only question is how long it will take Sun to figure it all out. When PPD got infected by C level cluelessness, it stayed on that path until bankruptcy. Unless McNealy goes, I think the same will happen to Sun.
A few weeks ago, IE started always launching new windows on links. Since I almost always launch browsers from BottomFeeder, I first thought it was a bug in Bf. I did some investigation, and found out that it happened regardless of how I hit an URL. I hadn't purposely reset any options in IE, and under Tools - Internet Options - Advanced there are a bazillion options. eventually, I noticed that reuse windows for launching shortcuts was unset. Ok, setting that fixed the problem - back to the way I wanted the damn thing to work.
Things were fine for awhile, and then suddenly two days ago, the same thing started happening. I had fortgotten what option it was, so it took some careful browsing of the various options to remember - but there it was, unset again. Well frell - how did that happen? Anyone know how or why IE just up and decides to turn that option off?
James Copelien has a new blog - and today's post on teaching OO is well worth reading.
After I posted on my IE weirdness problems, one of my readers sent me an email suggesting spyware as a potential culprit. I really need to re-up my norton subscription, but in the meantime, I ran ad-aware (highly recommended!) found 30 different things hanging around my system. Cleaned them out, and we'll see how it goes. Thanks Rick!
If you wanted to go to OSCON, but couldn't make it - start reading Ted Leung's blog here and keep going. Ted also points to the OSCON Wiki
Wired points out the inevitable problems caused by working when everyone else is asleep. I've seen articles on the health problems third shifters have, so this is not a terribly huge surprise. There's never a free lunch...
I've got some nasty travel stories, but this one from the Ken Coar is in a league of its own. You couldn't write fiction like this...
Ted Leung expresses an issue with Ruby and Smalltalk:
Looks like I'm going to end up looking at Ruby after all. My issue with Ruby (and Smalltalk) is that I don't think that I buy that everything needs to be an object.
I can't say that this has ever looked like a problem to me - and I've seen plenty of code that made no such assumptions ;). In cases where a real object model doesn't seem to make sense, you can always just use a class and just write class methods - but again, I don't know how often that need would come up.
As I mentioned yesterday, Ted's blog has a good set of entries on OSCON. There's more new posts on the show up today.
They both seem to like the SCO dustup - Sun just bought more licenses and an option to invest. Feh - a pox on both their houses!
Via Clarence Westberg:
One thing I have learned from aggregators, it is amazing how we can shape what we percieve the news to be based on what we look for. Makes you think about who the aggregators are for the real news media.
Makes you think - about all of our tendencies to reinforce our own biases.
I added a new feature to BottomFeeder a few days ago - when you select an item, you can spawn an email based on that item. At first, I was just spinning up an internal Bf mail tool. A few people asked me about providing access to the default mail client on Windows - only I had no idea how to prefill fields like the subject and body. After some more abuse on that topic, I went and googled for mailto: - and realized that all the support I needed was already part of the way things work. So now, when you see an item you are interested in - just send it along using the built in support.
Angelika Langer laments the lack of revolutionary languages:
The industry is spinning in circles inventing one "curly brace" language after another - C++, Java, C#, ... The popular object-oriented programming languages of today fatally remind us of the heyday of procedural languages: in the 60ies, a cluster of very similar languages (Fortran, PL/I, COBOL, Algol) dominated the IT business, until the advent of C changed the world. Finally, a language invented by programmers for programmers! C was a revolution; Java and C# are just evolution. Where is the C language of our times?
lol. We already have plenty of candidates - Smalltalk, Lisp, Python, Ruby - the issue is that IT shops and developers are blinkered into a curly braces world view, mostly unable or unwilling to venture out and look at something different. People like Bob Martin have been talking up dynamic languages - all we need is for more people to get interested. Go read the rest of the article - it's an interesting lament. Someone tell Angelika that Smalltalk and Lisp are still kicking, and that Python and Ruby are out there.
From Dennis Smith of Cherniak Software:
I would like to invite all Gemstone users and those interested in gemstone to "an open session on gemstone solutions" Monday July 14th at 4:00pm, at the Smalltalk Solutions 2003 conference. This session will be introduced by a very short presentation on a couple of our "solutions" and will then be opened up to attendees to talk about their use of gemstone, and any problems or solutions they would like to mention. There will be others attending who will be able to discuss problems and ideas. This is also an excellent forum for making contacts which will be of value on an ongoing basis. This should be of interest to gemstone users at any level from novice to advanced. We had such a session two years ago held by James Foster, and it was one of the more useful sessions of the conference.
So if you are using Gemstone, or considering it - check this out
So I'm out at a lunch place with my wife this afternoon - we bought a mocha and a latte, and sat down. Then they tell us, "Sorry, the machine's down. Is regular coffee ok?". I said sure, but asked for a refund of the difference. That's where the trouble started. The clerk stands at the register and looks baffled - he has no idea how to even approach the problem. A girl comes over and tells him to subtract $3.17 from $7.00. He writes the numbers down, buts stops - he has no idea how to actually subtract them. The girl looks at the numbers, realizes that the subtraction involves carrying, and gets baffled. They both look at me for help. Sigh. I tell them to give me $3.83. They are relieved that someone knew the answer, and gave me my change.
Here's the real question - if I had made a mistake, or given them the wrong answer purposely, would they have noticed? I was just stunned - not so much by the inability to do the problem mentally - neither of them could do it on paper!. What are they teaching in schools these days anyway?
Today's spotlight is on Don MacQueen's JWARS Tuning talk:
JWARS performance tuning presentation Donald MacQueen: JWARS Tuesday 3:00:00 pm to 3:30:00 pmAbstract: JWARS (the Joint Warfare System) is a simulation, written in VisualAge Smalltalk, that models theater level warfare. One of its primary requirements is that the model run 1000:1; that is, a 100 day campaign (2400 hours) must run in 2.4 hours.
This presentation will discuss how we improved JWARS runtime from 133:1 to over 1500:1 by using the profiler, experimenting with settings for old space, and taking care not to overtax the garbage collector.
Bio: Donald MacQueen has been a jWarrior since 1997. He recently added sonobuoy modelling to JWARS for the US Navy. His love affair with Smalltalk began in 1992 when he was toiling in the C++ salt mines, and it's been sunshine and blue skies ever since.
According to star Edward James Olmos, the new miniseries - probably the start of a new series - will not stick to the storylines of the original series. In fact, it looks like they are going to restart from the beginning. There's no way that could be bad :)
I've posted a few times now (try this site search) - as you can see, I'm skeptical about the motivations, and cynical about the benefits. Had they stuck to:
we might have seen something useful. Instead, what we have now is a format that has (other than a couple of pointless tags, like subtitle and contributors) all the functionality of RSS 0.91. Soon, this effort will spawn modules that look astonishingly like RSS modules, but with different tag names.
Think about this from two standpoints - one, the end user of a news aggregator. Does necho provide said user any benefit over RSS? The sad truth is, no, it doesn't. In fact, it provides a user experience that looks a lot like an RSS 0.91 feed. Two, how does this affect aggregator authors? It's another format (and, if I'm correct, another set of modules) to support. Does it relieve us of the burden of supporting RSS? No, it doesn't. Does it gives us, as aggregator authors, any information we currently don't have that we could make use of for the end user? No, it doesn't. So, as Mark Bernstein so eloquently put it, this is an unfunded mandate for developers.
I'm sure the necho folks are having a good time; it's always fun to invent something new - even when the new thing has no real point (just find a software engineer and ask if you don't believe me - in particular, find a Lisp or Smalltalk or Java guy and ask them why everything has to exist in native (insert language here)). Looking at this from the outside, it seems to mostly be politics driven. A lot of people either don't like Dave Winer, or think he's too hard to work with. Having read a lot of his posts, I can say that sure, he's posted some childish things. On the other hand, Sam Ruby can be an uninformed jerk as well (read the first comment, and Mark Pilgrim seems to be obsessed with Dave Winer. In other words, this is a bunch of pots calling the kettles black. The lot of them need to grow up and share their toys.
It seems I'm hardly the only one that has a few issues with all this. Have a look at Mike over at Sax.net - here and here. All pretty good points, IMHO. In the end, I'm supporting necho - BottomFeeder parses it, and my blog has a necho feed and a necho comment feed. Right from those examples you can see how much less functional necho is - no way to advertise a comment API. No way to advertise trackback and pingback API's. etc.
In the end, it's mostly just too bad that all this effort is going into necho. That energy could have been directed into something useful. Instead, it's directed into unfunded (and pointless) mandates. I guess in that respect, it's like a lot of the rest of the software industry...
This paper says they do. Nothing is left unskewered; see this passage:
Some languages, such as Smalltalk and its object-oriented followers, present us with a deluge of classes. It is easier to drown than to swim. Smalltalk itself is simple and elegant. Using it in a practical environment is complex and messy. And, as is usual these days, there is a dearth of documentation. The IDEs for languages such as Smalltalk and Java are conventional GUIs, with their inhumane over-reliance on the mouse. None of this is necessary. It is merely customary.
I will definitely agree with the mousing problems. I think the Refactoring browser obviates some of the other issues, but the over-reliance on the mouse is a real problem. VW has gotten better in terms of having keyboard shortcuts - now it needs to get better in terms of making them consistent.
Only two days until StS 2003 - go register now!. Today's spotlight is on Giorgio Ferraris' persistence talk:
HOP: Multidialect Object Persistency framework presentation Giorgio Ferraris: Elevensoft Wednesday 10:30:00 am to 12:00:00 pmAbstract: HOP is a persistency framework for various smalltalk dialects (VW, VSE, Dolphin, VA) with a high level of functionality. The framework's development started in the early '90s, and now it's used in hundreds of applications at several customer sites. We are now releasing a free, non commercial version, so this presentation will be a tutorial on the framework's use.
The presentation, with the help of some PowerPoint slide, will demonstrate the use of HOP in the development of a small application, with the definition of classes and the corresponding relational infrastructure for the persistency of objects. To demonstrate the feature of the framework, a small business model based on an Order will be defined.
To demonstrate the data base independence of the resulting structure, a MySql and a Dbase or SQLServer relational data base will be used for persistency.
Bio: Giorgio Ferraris is a chemical engineer totally devoted to software. After years of work as a software free-lance consultant he co-founded, 15 years ago, Eleven srl, a small (20 people) Italian firm developing turn-key software solutions.
He started using Smalltalk more than 15 year ago (Smalltalk/V). He began following the international community first using Compuserve and the Digitalk forum, then participating in Smalltalk and OO related user conferences, starting from the Digitalk one, to SmalltalkSolution and OOPSLA.
He has been involved on OO analysis, design and architecture definition for 10's of customers (from small to medium to large). He follows his company's internal projects like lead technical mentor.
He has held several tutorials on OO, Smalltalk, OO analysis and design for 100's of Italian people and has worked as a mentor and supervisor on several OO projects. He is currently working as a mentor on several OO projects in Italy (Smalltalk, Java and C#), and following a big customer on his evaluation of Smalltalk as his possible next development language of choice.
Mark Pilgrim shows that he can be as whiny and immature as he accuses Dave Winer of being. Half of this is politics, and the other half is sheer silliness. There's precious little technical merit anywhere around it....
Keith Ray discusses them here:
Sometimes you have lots of cohesive classes, but they depend on each other in a tangle... it is particularly nasty if the tangle has cyclic dependencies. Robert Martin's tool for untangling dependent classes is the Dependancy Inversion Principle [pdf]. Classes are cohesive and independent if you only have to change one class when you want to change one thing.An aside: Of course, with manifestly-typed languages like Java, changing one thing (like changing coordinate values from ints to floats) could bubble up and across many classes purely for keeping the compiler happy. Advocates of dynamically-typed languages say that manifestly-typed languages promote leaky abstractions because of this need to keep the compiler happy.
The leaky abstractions reference comes from Joel on Software. I've seen (and written!) plenty of overly coupled software in Smalltalk. However, I think the decoupling process is far easier when you have a dynamic language than when you have a static one. The need to keep the compiler happy is a much stronger force for inertia; it encourages people to just "leave well enough alone". In software maintenance, that's not necessarily what we want.
Scoble talks about self censorship and corporate blogging. I can definitely identify with the thrust of that article. Cincom is a much smaller outfit than MS - but as a remote employee, I have only the smallest sense of all corporate activities as well. I live pretty much in the Smalltalk bubble here, and I interact with the other Smalltalk folks - or with corporate folks who are dealing with us Smalltalkers (and a rowdy little bunch we are, too!). I avoid certain topics here - politics especially! - since I'm on a Cincom server. The way I figure it, people coming to read what I'm saying don't care to know what I think about US or International politics - IT industry politics, on the other hand, are fair game (and arguably, part of my job). For that reason, the policing I do is less than what Scoble is talking about - there's nothing secret about Smalltalk release strategy (compared, say, to MS Longhorn strategy). Nevertheless, it's there.
Scoble talks about Windows bugs:
Jeff Key asks why Windows still has so many nagging bugs that don't get fixed.That's a tough question to answer. Why? Because every bug has a different story about why it's in there.
And, believe me, every bug does have a story. Fixing code isn't easy and don't think that Open Source would fix the issues any better than Microsoft's own developers can (they might fix bugs better, but then you'd have other interesting problems that you didn't consider before -- for instance, training costs. 100 million people have existing Windows. What happens if you throw a new version of the operating system out there every week? Does that cause problems that you didn't forsee?).
I don't think this has anything to do with Open Source, closed source, or unforeseen consequences - at least not for the most part. While our Smalltalk products have much, much smaller codebases, most of our unadressed bugs come down to resource allocation issues - given this bug over here, and the need for that new feature over there, we have to balance the engineering resources against the perceived needs of customers. That's difficult, since our perceptions don't necessarily match the big picture perfectly - and to the person or team suffering from a given bug, our focus can look completely wrong. My guess is that MS has much the same problem. Sure, their resource base is much bigger - but at a certain point, adding people to a development team just makes things worse, not better. Here's how Scoble puts it:
Some bugs get put off until the future, too, because it means changing something underlying everything, which means that that code would need to go through massive testing. Or, because everyone knows that there's a new product or technology coming that'd fix the issue. My educated guess is that this is the case with the file-names-that-start-with-periods problem that Jeff answers (Longhorn will come with a technology that should fix this problem, for instance).
There are UI issues in VW (take the Dataset, please!) that have this problem. Pollock is the fix for that and a raft of other UI issues - which means that, in the meantime - users of VW have to suffer with what we have. Every development team faces a variation on this theme. The part that torques people off is when - because of changed circumstances - the fix you've been touting for quite awhile never comes to pass. Maybe there was a strategy change, or the market moved - but either way, the new project that would "fix all problems" never comes to pass, and the users are left with the same unaddressed bugs. In my experience, many of these changes are for reasons that really irritate users (The PPD merger killed Van Gogh, for instance) - but at the time they made sense to the parties involved in the decision making process.
The bottom line is, it's almost never as simple as just drop other things and fix the blasted bug!.
I finally got tired of the oddly changing font problem in the blog - the one where the first paragraph was one size, while the next paragraph was a smaller font. I removed the style sheet for a few hours, but I was very unhappy with that result - so I looked at the style sheet in more detail. At some point in my mostly uninformed editing, I had left an extra, duplicated line in one of the descriptions - and that was causing some of the problem. I still have to get it properly done though. Sometime, I really have to read up on style sheets....
This is the last plug before the show - so I'll use the time to plug my own talk on blogs and RSS:
WebLog and associated tools presentation James Robertson: Cincom Wednesday 2:45:00 pm to 3:30:00 pmAbstract: James Robertson, Product Manager for Cincom Smalltalk, will talk about Blogs, RSS, and news aggregators. Over the last two years, blogs have exploded as a new communications mechanism. While most of the well known ones are political in nature (cf InstaPundit) - there are a large number of blogs oriented towards a wide variety of topics. The Groove project has a blog devoted to the progress of that project. This is an area that should be of interest to project managers - blogs are an excellent way to spread information on your project - both publically and internally.
Over the course of the last year, I've run a blog, devoted to discussing IT industry trends, with an eye on Smalltalk. I'll discuss the technical issues involved in implementing the blog, and the connections that have flowed out of it via RSS and news aggregation. This will involve some discussion of BottomFeeder - an open source RSS News aggregator.
Check it out - Seaside for VW has been published to the public Store - fire up VW and check out the Seaside bundle!
I couldn't find any stray wireless signal, so it looks like my event blogging will all be done offline. I'm heading down to StS in a few minutes - expect a batch of new items when you see them :)
Travis Griggs talks about fonts in VisualWorks, and the problems/limitations. This talk will stick to the emphasis level - not the lower level stuff. First, you have to understand Text and runs.
So - 2 layers of fonts - the raw character glyphs provided by the OS. They are finite. They have to be matched to what you ask for. Second layer is Glyph decorations (SyntheticFont in VW). It wraps a DeviceFont. Not finite - can have decorations added.
To add new descriptions - patch CharacterAttributes, #newWithDefaultAttributes. Add new attributes to FontDescription and SyntheticFont.
There are lots of people mucking ariound here - PDP (Breakpoint glyphs), RB (code highlighting). What this means is that everyone who wants to change things hacks CharacterAttributes #newWithDefaultAttributes. The conflicting patches to the various requisite classes simply cannot co-exist (similar to the old problem with adding launcher menu items).
Solution - new framework, Extra Emphases in the Public Store. If you hack it, save early, save often! Only patches the base system in 2 places. Obsoletes SyntheticFont. Adds a class side registry to CharacterAttributes so that multiple changes by multiple people are possible.
Adds a new class - DecoratedFont - one subclass per font description. Each font encapsulates its own wrapping logic. The subclasses of DecoratedFont are similar to the UI wrappers - each is added to make its own changes to the base DeviceFont.
ExtraEmphases adds: ColoredFont, Underline, Strikeout, JaggedEdge, SuperScript, SubScript, TrailingInsert, LeadingInsert, Substitute, BackColor.
Now Travis is going to bail from the slides and add one of these as a demo. He's got a few scripted up, so we can see how this is done when you want to extend things. Let's see how one adds Blinking Text. In the DecoratedFont subclass, there are 3 methods you need to implement - a fourth, if you are in composite text land. Have to add two extensions to FontDescription.
Are you Agile or Fragile?
The traditional view of Agile. Funny tidbit - this is "Baghdad Bob's" view of Agile methods.
Key point - Design and Architecture is so important that we do it every day - as opposed to traditional development, where it happens once, in advance.
Assertion - a team together for a few months doing actual XP will produce a system faster and with fewer bugs than a Sigma 6 CMM level 5 team. Scott's extremely confident about this. Another - CMM and 6 Sigma (as implemented) are bureaucratic, process driven systems. Again, Scott shows a picture of "Baghdad Bob" with this. Standish group "Chaos Report" - failure rate is getting worse - 65% of projects fail (cancelled, or significant cost overruns).
What is Agile? It's focused on the actual development of software - as opposed to the current setup, where much of IT management has never (or not recently) built any software. Agile is people focused - on the end users and the developers both.
| Individuals and Interactions | over | Processes and Tools | Working Software | over | Comprehensive Documentation | Customer Collaboration | over | Contract Negotiation | Responding to Change | over | Following a Plan |
"If the lawyers are doing anything more than fetching me coffee, I'm doing something wrong"
"If we can't get the design of a living room done in one pass, what makes us think we can do it for a complex software system in one pass?
"Being able to respond to a late set of requirements can be a competitive advantage"
What Agile is not
Assertion - One of the reasons that outsourcing is gaining popularity - if it's going to be failing this much, it might as well be cheaper. The business community is giving up on us. A shakeout is happening - the expensive developers have already shaken out (dot com blowup). The bureaucrats will be next. Agile is trying to take back the eindustry.
Scot is now going through the various agile methods:
"All methodologies have risks - which ones are you willing to live with, based on the proclivities of your organization?"
"Why does all this stuff work?" - We focus on quality, requirements, and design every day.
"We shorten the feedback loop whenever we can, because working without feedback is incredibly dangerous" - assertion - outsourcing lengthens the feedback loop, which will end up causing large problems.
"Software Development is a Communication Game" - Alistair Cockburn
Rethinking "Sacred Cows"
Observations The people associated with the Agile Alliance build software for a living - they are not academics. It's a diverse range of people with ha good level of experience. There are case studies and experience reports now. It's here to stay. Agile is now (with business people) where objects were in 1990 (adoption curve wise).
More information - join the Agile Modeling mailing list and the Agile Data mailing list
Almost all of the agile folks are or were Smalltalkers. "Choose the Red Pill"
Questions "How do we sell this to management?" - tough. Management is frustrated with the failure rates as well, but does not know how to fix it. From their perspective, this is one more fad with one more set of developers pushing it. Will likely require a pilot project after finding someone willing to take a risk on it. Likely after one or more spectacular failures. "If Agility is where objects were in 1990, then in 10 years will we see a dumbed down, broken version of it?" - Likely, yes
Monday, noon - a bunch of us gathered for a Store BOF while the rest of the conference enjoys lunch. Good set of questions, comments, and conversations. Let's see what I can jot down:
- Issues (Terry Raymond/SOOPS) - Automated Builds, Merging, need lineups
- Moving Classes between packages - sometimes confuses Store?
- Renaming clases after a move (above) - ditto
- Change Event for add/remove instance variables
- Overrides within Bundles - we deferred this, but it's a huge point of contention
- Specifying pre-reqs - very ugly. Have to type in the names
- Difference loading is much slower than loading clean? I'm (personally) not sure on that, but many people concurred. It's a large problem over high latency links
- preload/postload (etc) blocks - should be methods, not just strings.
- Clean up the UI silliness - menus that differ between tools, tools that don't make a lot of sense, etc.
- Unchanged methods should not cause add/remove doits to show up.
- Replicator: To do - get the Store replicator into the base. If you use the replicator, push from the slowest (network) to the fastest system. It would be nice to be able to preserve user names across a replication
- Merge tool: Alan - "The merge tool stinks". Trying to do more than a 2 way merge is a bad idea.
- Niall would like to see some success/failure stories for Store usage, so he can see what development patterns work and don't work.
- Keywords would be a nice thing for searches
- Diana Merry-Shapiro has a nice method history tool that can show the sources of all methods - i.e., where they come from, etc (which Store DB, the change file, which parcel, etc.)
- Schema of the DB - Optimizing the db is in process during this release. we would prefer not to break backwards compatibility. Bruce Badger suggests doing a whole new tool?
- Martin McClure (Gemstone) - would like to see an object model so that Gemstone could be a back end. Terry agrees, and would like to see a fuill ST server on the far end, not just a db. A server back end could improve high latency connections. Policies could be server based (easier to share). Could make change notification easier (note that we have RSS). Extends benefits of no client db libs to non-Postgres users.
- Properties should be stored binary (BOSS)
- DB specific optimizations should be more accessible, even if they are not integrated by Cincom Engineering. Issue - they need testing and verification before we bless them
- Package Comments are not easily visible past the specific version in which they were published. This makes large repositories (like the public store) hard to view and use.
- Doc for newbies? There's Alan's presentation from StS 2002. There's the Store docs. Cincom Wiki Store notes.
- Cees de Groot published a lineup tool for Store in the public Store. TOIStoreExtensions
- Travis comments that new information on Store (as opposed to, say, Pollock) is not forthcoming. Can we get more and better information out?
- Automating Builds - everyone builds their own - we should provide something. Headless, scriptable Store? Very hard now. The Store connection dialog should not come up on start, ever.
- Bundles - One should be able to delete bundles as easily as packages
- Ease of Use for neophytes - the base development image should be easier to get going with Store. Get the base Store image to have the read-only connection to the public store pre-set
- Atomic Source Load
Eric Clayberg and John O'Keefe gave this talk. Starts with a brief overview of Eclipse. Eclipse is an integration platform built in Java. Number of services, etc. Platform services, Common Frameworks (SWT, for instance).
User's Perspective - Looks like a native app, since it uses SWT (similar to Common Widgets in VAST). Eclipse is a "state of the art" IDE for any language. Feature by feature comparision shows that Eclipse is good, probably better than most IDE's - not as full featured as most Smalltalks, although it's likely snazzier looking with better polish (there's a large Eclipse dev team). One of the new things Java people are excited about is "hot code replacement" (in the debugger).
Extending Eclipse is limited to the plugin points and the reflective capabilities of the environment. Eclipse does make deployment easier than it is in Smalltalk. The UI is a classic "C" style multi-paned, single window environment. The IDE type of features exposed to a developer are better in Smalltalk, with the exception of "Code Assist" type tools, aided by the manifest typing.
Eclipse now has decent refactoring capabilities, not as extensive or as scriptable as the RB in VW or VA. One can add more, via plugins. By default, no method categories. There are options via plugins. Many, many people creating plugins.
Developer's View There are a number of layers with extension (plugin) points for adding new/improved tools. The weaknesses are all due to Java language restrictions. The architecture is based on layered, dependent plugins. Isolation for plugins is better in Eclipse (although, namespaces in VW help here, a lot). Experimentation is a lot more restricted due to the structured nature of plugins.
Plugins - written in Java, integrated via XML (describes the plugin, etc.). Eric lists some of the workbench extension points - there are a lot of them. Question in my mind - yes, the plugins provide better idolation - but at the same time, they limit what you can actually do. If the original designers didn't envision it as a possibility, how limited are you?
Now a Demo of Eclipse VisualStudio style - tree views of packages - newer view offers a Smalltalk style 4 pane browser view. Instead of method categories, some kind of Type split.
Now onto John O'Keefe and the Eclipse for Smalltalk part of the show. First, he addresses the obvious question - Why are they doing this. Indeed, from my perspective, why aren't they improving VAST instead? I guess they get more developers this way, but.... Assertion - Smalltalk too closed a space, too introspective. There's truth in that. However, I'm not sure that getting commonality this way is the best path. Anyway....
The idea: Leverage the Eclipse environment (and the huge amount of work that has gone into it). Accomodate existing Smalltalk applications in. Use Smalltalk within Eclipse. I see a red flag there - if this works, VAST as an independent environment will be sunsetted. No, they didn't say that, but I read it that way.
Ahh, there we go. Second point here - choose WSAD over .NET. The enemy is Microsoft :) The plan, provide one IDE for everyone (note - monocultures are not good, IMHO). A partially unstated desire - it's a way to migrate the existing smalltalk base - VA and otherwise - over to this environment. What is it?
A "technical preview"
STDT - Another plugin for Eclipse. Nothing "unique" about this from the Eclipse standpoint. Interesting that there's no actual Smalltalk innovation here - no namespaces, for instance. File based Smalltalk source - source versioning with whatever Eclipse is hooked to. Provides a debugger, intent is to be Smalltalk neutral. Interesting, but VW has moved along - namespaces, shared variables, etc. Would likely take a fair bit of work to get that in - how much sharing with what IBM has done would be possible? I don't know; I'm sure that some of the VW engineers will eventually comment on that aspect.
What it has now - Package Explorer View, Editor. Search support - all based on underlying Eclipse code. Debugger is basic at this point.
STCL Initial release mirrors ENVY Smalltalk closely.
STRT Command line Smalltalk. Compiler, runtime with dynamic class loading. Image is used as a performance enhancer. Not released through Eclipse.org - this part will not be open source. Proprietary VM, free download. Windows (possibly Linux) only at start
What's missing? Envy Manager meta-data. Categories. App/Class/Method comments and notes. IC's.
Whew. It's got some interesting ideas - could provide a scripting alternative to S# with the command line compiler. Not sure that the IDE is a step forward for Smalltalkers - it may well allow greater access to people who don't know Smalltalk though, since it will look a lot more familiar. Ack! The source format is Smalltalk chunk format. That will be fun to edit. They will cover that from the user and offer method level editing. They will not support SIF, will likely do XML.
Platform speceific code? A bit crufty in VAST - had to use an additional tool. In the Eclipse env, that is no longer a problem.
A Demo - running an app from the env. You can customize the launch from within Eclipse. Launches a VM and Image, loading the code. When you resave a method, it does hot-load the new code into a running version of it. It's an extension to his demo at present, but will be a core feature eventually. Now we get a look at the debugger. Clearly a work in progress - no inspector yet. much further along than at OOPSLA 2002 though.
STDT - what's next? Will create JAR like files for packaging Smalltalk code collections. Will add method at a time editing. Will add a Class Hierarchy Browser. Will add wizards for - source folder, package, class creation. The greatest benefit out of this effort will likely be the creation of a Smalltalk runtime environment for VA. Will add a JNI bridge. Debugger will be improved greatly. Support for "halt".
STCL - what's next Additional apps ported from VA - SST in particular. Will rework lifecycle, expand the API for dynamic loading. Will rework catalog files, will move NLS to pools. Will reorganize projects into config map like scheme. This is going to cause as much of a migration issue for VAST users (ENVY to CVS style and new tools) as the move from VW ENVY to Store has. Will add scripting support:
STRT - what's next Dynamic loading from JARs, saving of the class cache, performance tuning, more platforms (Linux, zOS)
So in summary - John wants to remind everyone that this is early dev days for this - it's at technology preview level, not beta (or even alpha!). Everything is in flux, so things stated in the talk may not go forward as planned now. He's interested in feedback, wants to know if the VA customers (and others) see value in all this.
Questions Vendor Neutral? How would that work? They would like to work with other ST vendors - like us, for instance :) - and see if there's shared interest in this. Licensing - the libraries will be open source (as will be the IDE plugins). The VM will be a free download, but will not be open source. It will be available under goodie style license restrictions - binary style license. Other Eclipse Plugins - would they fit in? Likely not well, at least not at this point. Follow up - if the goal is to leverage Eclipse, how doe it do that if most plugins are orthogonal? Good question. According to Eric, resource based (not language specific) plugins will be usable. Joseph Pelrine - use Rosetta (XML) and you get a lot of the meta-data you want. Resource constraints limit this at the moment. Audience member - Idiocy (no ENVY - where have I heard that before?). The main point seems to be why try to recreate what you already have (a valid question, IMHO). This complaint is all about two things - wasted effort (we already have all this), and What, no ENVY??? The VW move to Store had a lot (and still has some) of the latter. Follow up, Bob Nemec - why would an existing VAST shop consider moving to this? With the resources all in this, what (if anything) is being done for VAST? Likely, little benefit now. Probably more later as contributions come along. Secondly, this is a spare time, nights and weekends project. Team at IBM still working on VAST. The danger for IBM here is that some customers will read this like people read the PPD problems in the 2.5.2/3.0 era. IBM has not blessed (officially) this, while the Eclipse board has done so. No way to write Eclipse plugins in Smalltalk? Not at this point, no. Will it ever be? Not exactly. There will be the JNI hooks, might be possible - needs to be explored. Follow up - looks like a boil the frogs strategy. It will look that way, and it will be a question these guys get asked a lot. Unified Debugger?? Not an initial goal, it's a hard problem all by itself.
I have to admit, there's schadenfreude in hearing the IBM guys get the commitment questions that I used to get. It's dangerous for Smalltalk in general though, so I can't take too much enjoymenet in it.
I attended three talks today - Scott Ambler's Keynote, The IBM Smalltalk for Eclipse talk, and Travis Griggs' Font talk. There was also the lunchtime Store BOF. Scroll down, and send your comments! It's starting out great - I'm off for dinner and drinks - more impressions later