A friend of mine who is a pretty well known journalist and is asking for help in learning programming with the new Visual Studio Express Editions. Particularly with VB.NET. Wonders where the best resources are for novice programmers. Where should I send him?
Here's an interesting analysis of the Gartner takeover of the Meta Group.
Today's update looks at one of the Object/Relational mapping talks at StS - there are a number of talks on this topic this year - register now and see what it's about!
Home grown relation database mapping and management system used with large real life Oracle 9i database application
Jamrich, Jozef: Prescient
Monday 9:15 am to 10 am
Abstract: This presentation will concentrate on the following.
- explanation of the basic design of the mapping and management system
- explanation of the performance issues experienced
- explanation of the solutions
The system is currently used in real life application with over 300 tables with as much as 900 mil record per row. The daily data feed includes files from Auto-Zone, Target,... with 100,000 rows and more of data to process.
Bio: Jozef Jamrich is a system architect at Prescient.
See you in Orlando!
"By combining our powerful development, authoring and collaboration software — along with the complementary functionality of PDF and Flash — Adobe has the opportunity to bring this vision to life with an industry-defining technology platform," said Chizen in a statement.
In a hint that some products could be scrapped as a result of the merged, Chizen noted that "cost savings" are likely to be made at the company, though he added that the motivation for the deal was to continue to expand and grow business into new markets.
Color me dubious. These firms are too close in size to each other - there's going to be knife fighting galore in the hallways. Far from ending up as a threat to MS, or as a monopoly threat to consumers, this merger could create a window of opportunity. This kind of acquisition is always dicey; just look at the HP/Compaq mess...
ACM has an interesting article on complexity in Java and C++ - compared to the simplicity of Smalltalk. This is the main reason Smalltalk is more productive - you don't get bogged down in the confusion caused by the poor choices of the language designers. The author repeated the old canard about Smalltalk being "slow", but it's an otherwise good read.
There are some details on ObjectStudio 7.0.1 posted here. Similar details on VW 7.3.1 are coming shortly.
Derek reports that an Indian tribe may build a casino near Saugerties, NY. I'm interested because I grew up in nearby East Fishkill, NY - back when the entire area was an IBM town. That would sure be a change for that sleepy little town.
Scott Granneman is unclear on the concept here:
The key distinction for me is this: I don’t like it when large corporations make wide-ranging decisions for users that disadvantage those that the corporations choose not to favor. So, for instance, I like the Firefox Greasemonkey extension, but I don’t like AutoLink. Both change the contents of web pages in users’ caches, in radical ways (in fact, Greasemonkey is perhaps more radical than AutoLink). However, AutoLink only changes links in ways that Google approves and provides; Google in effect, then, becomes the gatekeeper for e-commerce and communication. For example, AutoLink automatically changes all ISBNs to point to Amazon.com, which sounds great, but what if you don’t use Amazon? What if you like Barnes & Noble? Or BookPool? Or even better, you wish to support your local independent bookstore’s web site? AutoLink provides no way to change this, which means that Google’s decisions about links are immutable, and the company now has strong influence over the purchasing decisions of millions of its users.
Which part of "Then don't install the stupid tool" is unclear here? Does it come pre-installed? No. Do you have to go out of your way to get it? Yes. Does it operate without your consent? No. What's hard about that? This "I don't like it when they do it, but it's ok when some other guy does it" thing is just... stupid. Gatekeeper? Only if you want them to be Scott. There's an easy way to prevent AutoLink from doing things you don't like: Don't install it, or uninstall it if you have it. I suppose that changing the channel during commercials is a major hurdle for Scott too.
I think Microsoft ended up in a "damned if you do, damned if you don't" situation vis-a-vis VisualBasic. They had decided to put a lot of effort into .NET - and they also had a large VB developer community. Consider their options:
- Don't put VB on .NET, and instead move it forward independently.
- Put VB in .NET, and make whatever changes are required
They went for the latter strategy - and are currently getting buckets full of cold water over it. Larry O'Brien has another column on this in SD Times this week. However, consider the reaction had they taken the first path (as the large crowd of MVP's objecting to the second path says they should have). Instead of "keep VB", MS would be hearing cries of "You are aren't serious about VB - it's an orphan".
Once they decided to go down the .NET platform path, they were going to anger the existing VB community no matter what they did. This is a choice every vendor has to make when they decide to make a dramatic move. Look at VisualWorks - we are in the process of building Pollock as a replacement for the existing GUI system. There are a lot of customers out there with significant investments in the current system (both in terms of actual systems and in terms of years of problem solving knowledge). We don't have a real choice though - the current framework doesn't get us to where we need to go (native widgets). That doesn't make the transition any easier though, and that's what MS is hearing from its (much larger) customer base now.
There's an interesting (and not much commented on) thing at work here as well. Consider the MVP's - they are influential (and knowledgeable) people in the VB community. What does VB.NET do for them? Well, it reduces their current knowledge base in VB to ashes, for one thing. If I were an outside consultant - instead of the Cincom Smalltalk Product Manager - the switch to Pollock would make me a little nervous on those grounds alone - a lot of the knowledge I have on the current GUI system is going to become useless once Pollock comes in. Some of those MS MVP's have had the same fear about their current VB knowledge, I'm sure.
Via my referer list, I ran across this detailed critique of Java. I especially liked this:
This "inordinate amount of typing" means that the language is not higher level then C++ and from this standpoint might be "one step forward, two steps back". We can ignore Simson Garfinkle's claims that Java is unsuitable for "major desktop applications" and that "it's better to train programmers to write efficient code than to depend on new programming languages to do it for them". The former point is common knowledge and irrelevant to me (with the current 3Ghz computer you probably can write a major desktop apps in Java; but that's actually true for Python too). The latter point is obvious and beside the point: it's portability between similar architectures (for example Solaris, AIX, HPUX, Linux) that matters most in the current economic environment; also tremendous industry momentum behind Java and money that IBM and Sun are putting into it can eventually lead to breakthrough that might substantially improve the quality of the interpreter and/or on the fly compiler. But it is "inordinate amount of typing" that really hurts: the language is verbose to the level that you hate despite its advanced over C++ - like automatic memory allocation. OO libraries often became a Babylon tower that buries the naive developer before he realize the magnitude of the treat ;-). Everything is possible in Java and everything is too long. Likewise Java programs tend to be longer than in C++ and several times longer than in Python and other scripting languages.
Some of the critiques have been partially addressed (like generics) - but always with more layers of complexity. The evolution of Java (and MS' C#, for that matter) reminds me a lot of Winchester House...
This parody of the whole male/female A-lister thing is pretty funny. Some of the facial expressions the guy with the tie uses are close to Jim Carrey territory :)
This is interesting - as of 2006, Monday Night Football is moving to ESPN. That's not the only change though - NBC is getting Sunday night football (which was ESPN's gig) - and they've got an interesting deal with the NFL on the games:
NBC will devote its entire Sunday night prime-time lineup to the NFL. The Sunday night games will start at 8:15 p.m. eastern and include flexible scheduling for the final seven weeks of the season, details of which will be developed by the league.
That issue has become more pressing since parity caused by the salary cap has resulted in teams moving up and down the standings annually, leaving bad teams that were strong the previous season in prime time and good teams that were bad the past season off of it.
So the schedule for the second half of the year will be up in the air, pending the ratings needs of a sponsor. I'm sure that will make coaching staffs happy. Will they do a one time adjustment at mid-year, or week by week?
The log reports are easier to compile now - Pete hatch (the guy who manages the server this stuff runs on) has separated the RSS logs, the main logs, and the blog logs. That makes it easier to run the various scripts I use for counting. With that said, here's the latest set of reports - these go back to April 9th:
The interesting thing here - to me - is the number of downloads for the older Mac platform. It's not the best platform for Bf right now, but it's certainly in demand. Next up is the RSS access statistics, by aggregator:
|Tool||Percentage of Accesses|
|Net News Wire||16%|
It looks like more people are accessing the site with the popular Windows tools - NewsGator accesses are up, for instance. Even so, the Mac stats conform to the BottomFeeder download patterns - there's strong interest in the Mac platform among my readers. Finally, the general HTML accesses for the site:
|Tool||Percentage of Accesses|
|Net News Wire||2.2%|
That's interesting - a small (but significant) percentage of the web access is coming through aggregators rather than through browsers. That tells me that there are people out there "living" in their aggregator rather than in the browser. Interesting...
Dare Obasanjo posts a letter from Newsday which laments the supposed decline of journalism. Oh, please. When was the supposed golden age? The 60's, when journalists worked for a different set of large corporations? The 20's or 30's, which was the golden era of scandal sheets? Perhaps the "yellow journalism" period of the 1890's? Perhaps the earlier part of the 19th century, when papers loudly aligned themselves with one party or the other? I love the way people fall for this notion that the media has fallen from some former period of grace.
It's the same kind of a-historical view that thinks the anti-war protests of the 60's (or today, for that matter) are some new thing. There's a fantasy view of history, where everyone views the World War II era as being representative of all US history. People who think that ought to look at the history of dissent and reporting during other eras - the Civil War era, the time of the war with Mexico, 1812, WWI - pretty much anytime in US history other than WWII. The WWII era was the anomaly.
What Laurie Garret needs is a history book - it's pretty clear to me that she's got no actual knowledge of the subject.
The Yankees hammered the Rays, but this game is not a good sign:
Somewhere, maybe even George Steinbrenner was smiling. Alex Rodriguez, Tino Martinez and the Yankees answered their outspoken owner with a record-setting rout Monday night, scoring 13 runs in the second inning of a 19-8 victory over the Tampa Bay Devil Rays.
If Steinbrenner has any sense, he's not smiling. 8 runs? Here's the bad news:
Tampa Bay fought back against Wright, who barely lasted long enough to earn the easy win. He was charged with eight runs and 11 hits in 5 1-3 innings.
It's a good thing they had a great second inning - because otherwise, this would have been a lot like the losses to the Orioles and Red Sox. Hitting isn't the problem here; pitching is.
Register today so you can come to the great talks we have lined up this year - and make a vacation out of it, since we'll be in sunny Orlando, FL:
Number Crunching Smalltalk
Poon, Dan: Romax Technology Ltd.
Monday 2 pm to 2:45 pm
Abstract: For over 10 years, Romax Technology Ltd. have pioneered the use of Smalltalk in Engineering Design and Analysis, a numerically intensive domain and traditionally the preserve of FORTRAN and more recently C and Matlab. Many vehicles on the roads today have benefited from Smalltalk analysis.
Smalltalk was initially used for product modelling and visualisation - its uses now includes number crunching where it performs along side FORTRAN.
Smalltalk's USP is that it is such a simple language that, when supported with pair programming between numerical analysts and Smalltalk coaches, it quickly becomes a lingua franca, enabling esoteric numerical algorithms and domain knowledge to be melded with production software skills.
Once captured in Smalltalk, a numerical model is much more malleable than its FORTRAN counterpart, meaning we can easy parameterise the model and apply optimisation techniques such as genetic algorithms.
We will also discuss the political implications of getting engineering analysts and computer scientists to work in pairs, the strong business case for doing so, and how our org chart has evolved with it.
Bio: 16 years of OO development experience from the early days of version 1.0 C++ to OODBMS. From the early attempts at OO methodologies to Agile. Worked within Telecommunications, Foreign Exchange Options Trading, and now Engineering Design Analysis.
See you in Orlando!
If you want to hear some funny audio bits, you can't go wrong at Lileks Bleatophony. His diner bits are longer, but they're pretty good. This is the guy who wrote this classic on pizza - the whys and wherefores of "why the heck can't I get extra sauce??" His books are funny too - Interior Desecrations and The Gallery of Regrettable Food. Here he is on pizza, for instance:
I’m not looking for the perfect pizza, a circular Beatrice I can love unconditionally - just a good hot bubbly pizza with lots of sauce. That’s all. A pizza that does not dole out the sauce as though it is a precious substance gathered by the dram at great expense by men in boats, far from home, following the herds of ocean-going tomatoes as they ply the world of wave and spume.
Sean points us to news that Dolphin 6 is getting closer - the Object Arts guys have a nice looking ScreenCast up on the new stuff. The IdeaSpace idea reminds me of the old Smalltalk idea of Projects (essectially, logical desktops) - but in a tabbed master window. I'm not sure what I think about that, but I really like the pin/unpin idea for the various parts of the browser.
After the announcement that the new Pope would use the name Benedict XVI, Rogers Cadenhead found himself in the news:
By the time Cardinal Joseph Ratzinger of Germany assumed his new papal moniker on Tuesday, it was already too late for the Vatican to buy the corresponding dot-com Web address.
That's because a St. Augustine, Fla. man, Rogers Cadenhead, registered the address BenedictXVI.com on April 1, hoping that would be the name of John Paul II's successor. To cover his bases, Cadenhead, 38, also registered ClementXV.com, InnocentXIV.com, LeoXIV.com, PaulVII.com, and PiusXIII.com.
Apparently, hits started piling in as soon as the name became known :)
There's been some grumbling about things at Microsoft - from people at (or recently at) Microsoft itself. Mini-Microsoft is interesting today, and Dare had a good piece up the other day as well. Sounds to me like all is not entirely well in the b0rg cube...
Update: James Governor has some interesting thoughts on all this, with a particular focus on how it might affect Scoble. I've often wondered about some of the bomb throwing Scoble does within MS. Back in the 90's, I spent a fair bit of time at ParcPlace-Digitalk and ObjectShare throwing bombs - some of them public (in USENET - the blogosphere didn't really exist then). One thing I learned was that bomb throwing - especially the public kind - almost never works. It puts your targets on the defensive, and makes it harder for your allies to join with you. You get a lot of private claps on the back, and very little public support.
Are there times I disagree with Cincom management? Sure there are. You won't see me trying to air the dirty laundry here though, because I don't think it would be productive. On your way out of a job, such behavior burns bridges. What do you think it does while you're still on the job?
Today's update brings us to Sam Shuster's Pollock presentation:
Pollock - Now and For The Future
Shuster, Samuel: Cincom Systems
Monday 2 pm to 3:30 pm
Abstract: In this presentation we will present new widget features that Pollock provides and show how E-Z it is for you to use them in your applications. We will also take a look at how to configure hot keys for your applications as well as presenting an overview of the major refactoring that took place at the start of 2005 to make Pollock even more flexible. The Pollock roadmap to final Production will be discussed as well as VisualWorks GUI plans for the future.
Bio: Samuel S. Shuster is the GUI Lead for VisualWorks. His pride and joy is the Pollock GUI Framework which is slated to replace the current VisualWorks GUI framework over the next few years. When he's not responding to the constant "When Will Pollock Be Done" questions, he sits in the corner of his livingroom, looking dazed.
See you in Orlando!
Anyone who's been paying attention knows that corporate blogging is on the rise. This article points to some stats on that - apparently 45% of the biggest 1000 firms either are blogging now, or plan to do so soon. This is where the miasma of corporate standards is going to run smack into the fresh voice of unhindered blogging.
Should companies be ok with having people say anything on a blog? No, they shouldn't - but on the other hand, there's such a thing as going too far - listen to this so called expert's opinion:
Experts on business blogs say the best safeguards against harmful posts are to institute proactive controls.
"Nothing should make it to the public eye without at least one other set of eyes on it, in any company," said Matthew Oliphant, co-founder of the corporate blogging consulting firm BusinessLogs. "The best way then to run your blog publishing is like any other publishing house: You have post writers and editors, as well as an editor in chief and a publisher. Writers write; editors edit the writing."
Yeah, there's a plan - just treat blog posts like press releases and watch the interest fly in :) For good or ill, you're going to have to use a lighter touch. First off, you should have a policy you can point employees at: Sun has a good one here, for instance. Rather than filter everything upfront, you're really going to have to make judgment calls based on policy. More simply, hire good people and have some trust in them - but make sure to make them aware of the boundaries.
Sci Fi Wire reports on something that always irritates me - pulling a series when there are episodes "in the can":
Fox has again pulled the plug on Tru Calling, taking the supernatural series off the air after the April 21 episode, meaning that viewers who were trying to catch up with the canceled series' last six episodes will miss the final one, TV Guide Online reported.
Look, I understand the whole ratings imperative. At the same time, this kind of thing ticks off a lot of the people that you would like to keep happy. Who am I talking about? People who own and use PVRs (and heck, even people who only have VCRs). Tru Calling has one episode left - so why not air it on a Sunday night at 3 AM? I won't stay up for that, but my ReplayTV will find it. Ditto a show like Firefly or WonderFalls - airing the remaining episodes during slots when no one is watching anyway does no harm to the bottom line, and will yield some amount of positive feelings.
Instead, networks go ahead and do stupid stuff like leaving the last handful of episodes hanging. What's the point?
Torre should worry about Johnson "springing back". Johnson is (or at least, was) a great pitcher - but his knees are about to fall off. The Yankees would be far better off with a shaky 23 year old than with a shaky 40 year old with bum knees. I fully expect Steinbrenner to not get that though, and go looking for another over the hill pitcher. Sigh.
Overheard in the Smalltalk IRC channel:
The users I know are so clueless, that if they were dipped in clue musk and dropped in the middle of a pack of horny clues, on clue prom night during clue happy hour, they still couldn't get a clue.
Update: No, this isn't what I think of users, either of Cincom Smalltalk or of BottomFeeder. I just find that set of words amusing.
Tim Bray has been looking at Blog clients - in particular, cross platform clients. He missed one - the client that ships with BottomFeeder. It's a WYSIWYG XHTML editor (which also allows you to flip over to plain tag mode if you actually like that sort of thing). It works with the MetaWebLog API, the Blogger API, and the MT API (as well the API to the Silt Server, a nice, portable, simple blog server).
There are some issues; the spell checker isn't really working right in the WYSIWYG mode yet, for instance. That'll get addressed soon though. I've tested the client against Blogger, and it works there - I've also tested other clients (like ecto and BlogJet) against my server using the MetaWebLog API, and the BottomFeeder client poster works the same way both those tools do - ditto the MT API.
What's it implemented in? Why, Smalltalk of course - Cincom Smalltalk, to be precise. I found some of Tim's assumptions a bit odd. Take this, for instance:
I don’t know of any other plausible clients that are Java and hence portable, so I think bloged is going to have legs, and is worth us funding some further development. Particularly when the Atom Publishing Protocol becomes ubiquitous. [ed: bloged being a Java client that Gosling and a few others at Sun have tossed together].
When Atom publishing format becomes ubiquitous? Here's the thing - Atom is going to be one format among many (as much as MetaWebLog API sucks). The problem for Atom format is that it's late to the game, and the other solutions - pathetic though they may be - actually work now. I'm sure I'll support Atom with my client eventually - but eventually could be awhile from now. Here's the big thing though - portable doesn't mean it has to be Java. We were doing binary portability in Smalltalk 15 years ago...
Steve Rubel pointed out an interesting sounding seminar on corporate blogging in NYC this May. I think I'll attend - the price looks good, and NYC is a fairly short train ride away for me.
After yesterday's post on the blog client that ships with BottomFeeder, I thought it might be worthwhile to create a standalone poster. So, I'm in the process of doing that now. Like Bf, it will have the ability to update itself in place. I have some adjustments to make before I can release it that way; mostly a matter of shuffling build directories and scripts. I should have something more to say on this before the weekend.
I wonder if Dave Winer would be as copacetic with a registration of something like AboutDaveWiner.com:
For what it's worth, and seriously, no joke -- I don't think Rogers should give benedictxvi.com to the Vatican. I think the domain should be used for an independently-authored weblog about the policies and actions of the new Pope by someone who is expert in the papacy and independent of the Catholic Church. What an opportunity to get serious visibility for weblogs as a source of news and perspective. Imho, it's not about heaven and hell, eternal damnation or Rogers's grandmother. The church is a hugely powerful political, social and economic force, and its actions are controversial and deserve some visibility, and MSM isn't doing its job. And for the new Pope, it's a chance to participate in history. It's the kind of thing you might imagine his predecessor really going for, until of course it got a story he didn't want them to get. ";->"
Somehow I doubt it...
As most people have heard by now, Comcast has been having DNS problems of late. The upshot of this for me is that I lose network connectivity for brief periods of time just about every day. This is irritating - but it's even more irritating on my Windows notebook. About 50% of the time Windows doesn't reacquire network connectivity after things go back to normal. It can see the router under those circumstances, and my Linux box can see stuff - but there's no DNS resolution on the notebook.
The thing is, I have no idea what this is - Windows, my router, the hardware in the notebook itself? Anyone else see this sort of thing and have any ideas for me?
Here's a tip for this professor: If you have really sensitive information on a notebook - information like this:
You are in possession of data from a hundred million dollar trial, sponsored by the NIH, for which I'm a consultant. This involves some of the largest companies on the planet, the NIH investigates these things through the FBI, they have been notified about this problem.
You are in possession of trade secrets from a Fortune 1000 biotech company, the largest one in the country, which I consult for. The Federal Trade Communication is very interested in this. Federal Marshals are the people who handle that.
This is the kind of data that warrants two things, IMHO: encryption of the data in question, and a hardware level password. This not to excuse the thief; far from it. On the other hand, this professor was every bit as negligent as I would be if I dashed out the door, left the door wide open, and was then stunned to discover that things had been stolen.
I hope the people who entrusted this prof with this kind of data are having second (and third, and fourth) thoughts about doing so in the future. Rest assured, someone engaged in industrial espionage would not be as careless about exposing their position as the naive thief here was.
The latest update on the StS 2005 Coding Contest:
The Smalltalk Industry Council (http://www.stic.org) is pleased to announce the first annual 2005 Smalltalk Solutions Smalltalk Coding Contest. The Smalltalk Solutions Technical Conference will be held in Orlando June 27-29, 2005 and will serve as the home for the coding competition finale. Smalltalk Solutions is the premier forum for bringing together Smalltalk users, developers, vendors, and enthusiasts. FAQ's for the contest can be found here
Coding contest prizes include:
1st round of the competition
The top 3 ranked in no particualr order will receive a free conference registration and a free membership to STIC
2nd Round of the Competition
- 1st Place - $1,000 USD to be used towards a future Camp Smalltalk attendance
- 2nd Place - iPod
- 3rd Place- iPod shuffle
Each of the finalists of the first portion of the contest will receive a Smalltalk Solutions 2005 conference registration valued at $670 USD as well as a complimentary individual membership to the STIC. This does not include travel, lodging meals, tutorials, or any other fees associated with the conference attendance. Please note, in order to compete in the second round of the contest, finalists must be able to attend the conference. The second round of the contest will consist of the three highest ranking contestants who are able to attend the 2005 Smalltalk Solutions conference.
The Smalltalk Solutions Coding Competition is broken into two phases of competition. The first phase begins on Monday, May 16 at 9 a.m. EST and ends on Wednesday, May 18 at 9 a.m. EST running for 48 consecutive hours. Registration will begin March 1 and participants must register for the competition online at www.stic.org by May 13 at 6 p.m. EST. Confirmed registrants will receive the requirements for the first phase online.
All coding must be done in Smalltalk. The problem will require a web application. Client GUIs will not be acceptable solutions.Conference registration is not required to participate in the first phase of the competition. Please note, in order to compete in the second round of the contest, finalists must be able to attend the conference. The second round of the contest will consist of the three highest ranking contestants who are able to attend the 2005 Smalltalk Solutions conference.
One representative from each of the four board member companies consisting of Cincom Systems, GemStone, IBM, and Knowledge Systems Corporation will judge the first phase of the competition. Each submission will be submitted to the judges as blind submissions and a total of three (3) winners will be selected to compete onsite at Smalltalk Solutions 2005 in Orlando, Florida. The winners of the first phase will be announced on June 1, 2005 on the Smalltalk Industry Council web site.
The second and final phase of the competition will take place on Sunday, June 26, 2005 from 6 p.m. to10 p.m. onsite at the Wyndham Orlando during Smalltalk Solutions pre-registration. The details of the second phase of the competition will not be released to the finalists until the competition begins.
Prize winners will be announced during the keynote general session on Wednesday, June 29, 2005.
See you in Orlando!
This slashdot story reminds me of something - many - possibly most - of the chips manufactured on the planet are built in plants controlled by VisualWorks Smalltalk. AMD controls their fabs with VisualWorks; so does TI. There's a small firm in Texas, Adventa Control Technology - that sells wafer fab control software to a bunch of hardware vendors - which means that all of those outfits use Smalltalk as well. Bottom line - you may well use Java or C# - but it's very likely that a bunch of the chips in the box you use were produced by Smalltalk.
Another thing too - it's almost certainly the case that the computer you use - if it was shipped long haul at any point - arrived via VisualWorks Smalltalk software as well - the vast majority of long haul container shipping runs on Smalltalk as well.
In response to the very end of this article, where Rodney Bates said this:
Smalltalk pays a high price elsewhere for taking object orientation to the extreme, notably in complete loss of static typing and serious runtime efficiency penalties. Special, one-instance forms of classes are, for many programming problems, not as good a conceptual match as modules. But at least it provides a single, consistent, and syntactically explicit call mechanism.
I thought I'd ask our lead VM engineer - Eliot Miranda - for some details on method lookup in Smalltalk (VisualWorks in particular):
Rodney, you should read the following books & papers (in order); they'll help you understand Smalltalk's performance.
[Goldberg83] Adele Goldberg, David Robson, Smalltalk-80: The Language and its Implementation, Addison-Wesley, 1983, ISBN 0.201.11371.6.
Now out of print but available by combining
- Adele Goldberg, David Robson, Smalltalk-80: The Language, Addison-Wesley, 1989, 0.201.13688.0
- The Blue Book (Implementation)
- [Deutsch84] L. Peter Deutsch, Allan M. Schiffman, "Efficient Implementation of the Smalltalk-80 System", 11th Annual Symposium on Principles of Programming Languages, pp. 297-302, January 1984, ACM.
Context Management in VisualWorks 5i
Eliot Miranda - Available on the web here(PDF)
But briefly, here's how things are faster than you expect. Message selectors are maintained by the system as a pool of unique strings (Symbols), so that equality comparison of message selectors requires only comparing the addresses of the symbol objects. In the 70's and early 80's message lookup was optimized by the run-time system maintaining a small (1024 or 2048 entry) method lookup cache that remembers recent method lookups. The table is hashed by the identity hash of the receiver's class and the message selector. On early systems the id hash is equivalent to the object's address. Method lookup then becomes:hash := receiver class hash + selector hash bitAnd: CacheSize. (cache at: hash) class == receiver class and: [(cache at: hash) selector selector]) ifTrue: [targetMethod := (cache at: hash) method] ifFalse: [targetMethod := self lookup: selector in: receiver class. (cache at: hash) class: receiver class; selector: selector; method: targetMethod.
Since then Dynamic Translation (a.k.a. JIT compilation) has ncreased performance by nearly an order of magnitude. The run-time system does not interpret bytecode; instead it maintains a cache of the most recent used methods compiled on-demand to machine code. We call these nmethods. Every message send is first translated into the following machine code sequence:classRegister := selector. "i.e. load a register with the address of a symbol" call unlinkedSend1Args. "i.e. call a run-time routine to find the method, encoding the arg count in the call for arg counts 0 to small n"
When unlinkedSend is invoked it locates the receiver from e.g. argument registers, obtains the selector from classregister and uses a modified version of first-level method lookup cache algorithm above to locate an nmethod for the lookup. If an nmethod isn't found it searches the class hierarchy, translates the method to native code and stores it in the first-level lookup cache. And now the clever bit... The send site is rewritten fromclassRegister := selector. call unlinkedSend1Args.
toclassRegister := class. "i.e. whatever the class of the receiver was when unlinkedSend was called" call nmethod.entryPoint
The nmethod's code at entry point then checks that the class of the current receiver agrees with that stored in classregister, e.g.entry: tempRegister := receiver class. tempRegister != classRegister ifTrue: [self handleSendMiss]. ...
So if the receiver's class is the same as it was when the send site was rewritten the target method is the same and we're done. So we simply have a class dereference, a regiser assignment and a comparison. 90% of send sites are monomorphic. So this speeds things up enormously.
Polymorphic send stes are sped up by using "polymorphc inline caches" or PICs, which look like a jump table, doing a series of class comparisons.
There is also substantial mechanism to allow native stack frames to be used, creatring context objects for method activations only when required.
Smalltalk method lookup is fast
Don Park points out that the end result of "no one pays for anything" is a place we don't really want to arrive at. meanwhile, the RIAA is complicit in this, IMHO - instead of working with new technology and offering a legal path, they want to outlaw progress. Their answer to the futility of that approach is lots of lawsuits. There's a way to make friends and influence people...
Cincom's Tom Nies was recently in London, where he was interviewed by the London Times online.
It's a bad idea to outsmart yourself with clever alert messages:
Sysadmin pilot fish gets a wireless-enabled handheld computer with lots of cool features. "I find out how to use a voice recording as the alert tone when I'm paged, and record a message that says, 'Wake up, @#$%!' when I'm paged by the servers," fish reports. "And promptly forget about it. Until I'm in a meeting. And get paged." Red-faced fish can only mumble, "My server is paging me" -- and beat a hasty retreat.
Reminds me of an error message a consultant I worked with once inserted into a general ledger app. He was working late, very frustrated, and had an "account not balanced" error pop a dialog that read "Balance this, a******". That went over well in acceptance testing :)
Microsoft has become the old IBM. And I don't mean that in the dominant sense, I mean it in the lethargic, mid 1980's sense. Have a look at the evolve campaign they are using for Office, for instance. In many ways, this has got to be the most insulting campaign I can ever recall seeing. What is MS saying about their current user base? That they are witless dodos, unable to get anything useful done unless they upgrade right now. Just look at the online ad (which is also in this week's PC magazine, right at the front).
The critical guy is in the field, so guess what? No progress - can't possibly move forward. Umm, has MS heard of this new thing called email? I seem to recall collaborating with it as far back as the mid 90's. Is it as good as team tools that can do online linking? No, probably not. On the other hand, if the guy in the field is at a site - hotel or office - with a firewall, what's the liklihood of that firewall allowing Office tool interop outside the LAN? Pretty close to nil, I'd say.
This campaign insults current users, and it's technically illiterate to boot. Looks to me like Scoble has his work cut out for him.
One of the things I do every day is check the VW Wiki and the Cincom Smalltalk Wiki for spam. On a fairly regular basis, someone hits them with spam. The amusing part is how inept the spammers usually are. Have a look at the history page here - notice how each spam attempt seems to take 3, 4, sometimes 5 or 6 attempts? Not only are these people obnoxious; they're stupid on top of it all
Address CSS consistency problems. Our first and most important goal with our Cascading Style Sheet support is to remove the major inconsistencies so that web developers have a consistent set of functionality on which they can rely. For example, we have already checked in the fixes to the peekaboo and guillotine bugs documented at positioniseverything.net so use of floated elements become more consistent.
That will make our lives simpler, that's for sure...
Steve Rubel points to an excellent piece of marketing by Major League Baseball - they are sponsoring fan blogs:
Major League Baseball is now empowering consumers to launch their own Six Apart-powered blogs. The MLBlogs site is live. Users can sign up for $49.95 per year. Tommy Lasorda's even blogging. The former LA Dodgers manager has comments turned on. Excellent! Let's ask Tommy why they lost the 1978 series.
He mentions the obvious downside - there will be "blood in the streets" on those blogs if we have another strike. However, this is great marketing - MLB has just turned every baseball fanatic with a broadband connection into a potential advocate.
Derek points out some of the weak thinking at the TSA with a personal example. The last time I ravelled, I had something else occur to me in terms of threats - the huge backup in front of the security zone. Think about it - there's the TSA, asking you to remove your shoes, take your laptop out of your bag (and going on breaks in the face of huge lines, but never mind that) - the whole dreary experience. The result is a huge line in front of security, and most airports have reacted to that by putting in theme park style maze lines.
Now look at that situation. If you really do want to commit an act of terror, do you care whether the dead bodies are on the plane or not? What the TSA has unwittingly created is a target rich environment in front of the screening area - a huge mass of compliantly waiting, penned in people with nowhere to go. I can't wait to see what stupidity the TSA comes up with after this gets exploited by a bad actor somewhere.
Looks like tonight's dinner will be broiled (oven) steak instead of grilled - thunderstorms and rain just aren't conducive to enjoyable grilling. Sigh...
If you want to see a nice roundup of the method lookup post I did a couple days ago, have a look at the comments - especially the ones Loryn Jenkins put up. Nice set of comparisons there!
Slashdot reports that Borland is giving JBuilder away on Eclipse now:
"The Register is reporting that Borland has released the base version of JBuilder as open source on Eclipse! Is this just the next company to use open source as part of a marketing tool, akin to Sun, IBM and Oracle's opensource IDE push? Is the future of enterprise IDE open?"
So my question is: What's the revenue model (for Borland) behind this? Too many people look at open source as some sort of good/evil divide - at the end of the day, the more important question is: where the revenue comes from - no revenue, no business...
Michael thinks that MS will eventually beat out Google - his reasoning being twofold:
- Word of Mouth is the only advertising gets, whereas MS is all over the air
- With Longhorn, MS will embed search to an extent that people will get driven to their site
That's certainly possible. On the other hand, Longhorn adoption is going to slow. Why? Because XP is, for the most part, good enough. Unlike 95/98/ME, it doesn't crash every time you look sideways at it. Then there's the advertising angle - and if the MS Office "dinosaur" campaign is any indication, I don't think Google needs to quake in their boots yet.
Current search engine use can't be terribly comforting to MS. When I scroll to the bottom of my blog, I find the daily (updated every couple of hours) referers. There's always a ton of hits from Google searches. There's usually one or two from Yahoo. It's a rare day when I see an MSN search result there. Heck, I may see Ask Jeeves more often - possibly even AltaVista.
There's not going to be a free Longhorn based swap-over, I don't think. If MS wants to win in search, they're going to have to do it the old fashioned way - provide a better set of results.
Frank Patrick talks about scheduling a delivery, and relates it to a scene in an HBO movie about the Apollo program:
"Schedule Chicken" is one of my favorites. If you've ever seen the HBO Series "From the Earth to the Moon," about the Apollo program, you might remember what was my favorite episode -- the one about the Grumman engineers building the lunar lander. There's a great scene in which everyone goes around the table saying "Sure, my group's on track." until one admits the reality of needing some more time, at which point everyone then backtracks, saying, "Well, since Joe will need more time, we could use it to..." There's other PM wisdom and reality spread out in that episode. Check it out if you get a chance.
I see this every release schedule here. Towards the end, we have release meetings where we go over the high and critical bugs. The idea is, engineers who have a bug that needs fixing prior to release have to get dispensation from the rest of the team - either by explaining that there won't be a regression, or that the bug is so bad that we have no choice - you get the idea.
Towards the very end of that exercise, we start doing candidate builds. When there's something wrong in a candidate build, I see the same reaction Frank mentions: "well, so long as we are cracking the build, can we sneak this in..." - comes up every release cycle.
Sounds to me like this sort of thing is endemic to all engineering work - both hardware and software.
One of my readers sent me a link to this article on "duck typing" (i.e., what Smalltalkers have called dynamic typing for eons now). Here's the part I found incoherent:
First of all, let's get a frequently asked question out of the way: if two interfaces have the same methods, are they semantically equivalent? Isn't there a risk to pass an object that is totally wrong for this method, yet will work because it responds to the right methods?
I don't have a clear answer to that, but my experience is that such a thing is very unlikely. This kind of argument is a bit similar to the fear we all felt in the beginning of Java when we realized that containers are not typed: ClassCastExceptions end up being much more rare than we all thought.
Duck Typing is a big time saver when you write code, but is it worth it? Don't you pay this ease of development much later in the development cycle? Isn't there a risk that you might be shipping code that is broken?
The answer is obviously yes.
So the sorts of errors the author fears are virtually non-existant, but they introduce a huge risk of shipping broken code. Excuse me? Is it just me, or is the author arguing with himself here?
One of the things I really like about this mode of argument is that testing isn't sufficient - we need something stronger (enter declarative typing). If that's the case, why do people writing in C++, Java, or C# even need to test? Doesn't the typing obviate the need for it? The point is, you need to test anyway. If a given paradigm - dynamic typing in this case - increases productivity - and if declarative typing doesn't obviate the need for testing (it doesn't) - then what does the typing buy you? Better arithmetic performance, mostly. That's useful for a small range of applications (and, for most of those, we can use a high level language like Smalltalk and mixin lower level languages for the performance critical sections. Plenty of our customers do just that.
The author comes up with a contrived example to show that declarative typing will save you from a potential runtime nightmare. I say contrived because I've written code using the kind of API he talks about many, many times. Want to know how many times I've walked into the minefield he fears? It's a small number, except for the larger values of zero.
The best part of the whole thing is the comments, where some of the responders claim that refactoring tools are "impossible" in languages like Smalltalk. Times like this I wonder how many people realize that all the cool stuff that people think came from Java - like refactoring support and unit testing - were invented in Smalltalk more than a decade ago.
I swear, this entire industry actively engages in amnesia...
Two sedars in two days is a sure-fire way to be fully, totally stuffed. It's like back to back Christmas dinners, only without the dinner rolls. Oof.
I just finished another one of the histories of WWI that I've been immersing myself in - this one is "The Illusion of Vistory: America in WWI" by Thomas Fleming. It covered a shorter period - just the time from American entry in 1917 through the end of Wilson's presidency. It's a fascinating study of the politics that surrounded American entry into the war, and the attempt by Wilson to get the League of Nations treaty passed. The thing that really struck me was that pride and self righteousness was most of the problem. Wilson was not only sure that he was right - he was convinced that his political opponents were not only wrong - they were evil for disagreeing with him. Needless to say, that made it pretty darn hard to compromise with the senate - and compromise with the senate is the only way for Presidents of the US to get treaties through.
The other thing that I found interesting was the more US focused background on the peace conference. The last book I read - "Paris 1919: Six Months that Changed the World" - wasn't focused on Wilson and the US delegation. It covered the conference in exhaustive detail, while Fleming's book merely skimmed it. Even so, in covering the interplay between Wilson, his wife, Colonel House, and the other important US players, it filled some interesting gaps. Fleming comes down pretty hard on Wilson - but at this point, with all the reading I've done on the subject - I think Wilson deserves a fair bit of opprobrium.
In any case, "The Illusion of Victory" is a worthwhile addition to any study of WWI - especially if you are interested in the US effort. Next up is Barbara Tuchman's classic, "The Guns of August". After that, I think I'll tackle Nicholson's book on the Congress of Vienna.
Bob Congdon points out that Coke cans do, in fact, have value!
PR Opinions unearths the unseemly practice of paid advocates - the kind that you don't hear about as having been paid:
Appearing on a local TV show in Austin Texas to review toys for kids, Oppenheim promoted a number of different products including a personalized photo album from Eastman Kodak.
The only problem was that Mr. Oppenheim was paid by Kodak.
On a subsequent appearance on NBC's Today show, he once again promoted Kodak's product - though Kodak says it didn't pay for that particular mention. That was obviously Oppenheim's favor to Kodak. And they weren't alone. Of the fifteen products he plugged on NBC, nine were former clients and eight had paid for plugs on local television.
The Oppenheim episode has opened up a big can of worms. It appears that there's a booming industry for TV talking heads promoting products for cash with no disclosure before, during or after their segment.
Infomercials are better than that - at least they don't hide the pitch. It's only a matter of time before this happens in the blogosphere (more likely, before it gets reported as happening). There have been bloggers paid for political mentions (from both sides of the spectrum) - I'd guess that there are bloggers getting paid for product mentions as well. Easy enough to do, actually - a blogger with a passion for something (photography, say) gets offered money to slip in mentions of a particular brand/model. I don't see any obvious way for general readers to find out, either.
Jonathan Schwartz hasn't gotten the memo yet - "the network is the computer" was the pitch about 8 years ago. Here he is again though, flogging network computers:
Display over IP. DOIP ("Do IP") is to the PC industry, what VOIP (voice over IP, simplistically, using the internet to make phone calls) is to the telecommunications industry. Phone calls are near to free at this point, and the business model is undergoing radical change. It's inevitable that pervasive and sufficient bandwidth will allow most of what happens on a client to migrate to the network. Why upgrade your PC if you can rely on plentiful bandwidth to have someone centrally deliver it as a service? You don't upgrade your TV set, BBC and News Corp do it for you every evening with fresh content. And you don't buy a new TV to watch it. The same should apply to your PC. DOIP is to a PC as XMRadio is to a CD player.
Sure it is. You come down here and deal with the "DNS? What's DNS?" service that Comcast is becoming known for. A couple weeks of that will wash this bad idea clear out of your head.
And I don't upgrade my TV set? Good gosh, which part of HDTV haven't you heard about? To get improved content, I have to upgrade both my TV (done) and my cable box (not yet) - and my ReplayTV as well. The most irritating part of his post is the way he's trying to wrap a pure marketing ploy (please, buy useless network PC's so that I can sell a ton of expensive Sparc boxes to datacenters) in environmental clothing. Sheesh.
There's a small bug fix out for the 3.9 release of BottomFeeder available. As it happens, the http code was making an incorrect assumption about getting encoding information from XML documents. It was assuming that every header with encoding information would wrap the encoding in double quotes (as HTTP attributes normally are). A quick perusal of the specs shows that this is a bad assumption - the encoding can be wrapped in single quotes. The latest update for the NetResources library addresses this. The symptom? There are some feeds that weren't being read at all, and others that were being badly decoded (i.e., you would see occasional odd characters).
For those observing Passover (or like me, married to someone who does) - the Jib-Jab treatment of Matzah is a must-see. Yes Virginia, there certainly is such a thing as too much matzah :)
Today's update looks at Software Components in Smalltalk. Register today!
Programming with Software Components: From Globals to URIs, Classes to Interfaces
Staehli, Richard: Simula Research Laboratory
Monday 4 pm to 4:45 pm
Abstract: Component-Based Software Engineering (CBSE) promises to simplify the construction of high-quality applications through composition of off-the shelf components. This is arguably a fulfillment of the original promise of object-oriented programming; that objects may encapsulate arbitrary implementations.
Surprisingly, the Smalltalk community lags behind the industry in advancing CBSE technology. The idea of composing a computing system from components that may encapsulate heterogeneous programming language and runtime environment is at odds with Smalltalk's single image heritage. Further, todays component technology, such as CCM, force a programmer to choose when to use heavyweight components and when to use lightweight local class instances.
Our investigation into a Quality-of-Service (QoS) -aware component architecture suggests a way to improve Smalltalk programming by separating concerns of functional composition from concerns of component implementation. In this presentation I show how Smalltalk source code may be made more robust by replacing a global reference to an implementation class with a Universal Reference Identifier (URI) for a component interface type. This allows the implementation of this component to be determined at compile time, deployment time, or even upgraded dynamically at runtime without violating the semantics of the source code.
Bio: Richard Staehli has worked the past three years architecting and prototyping a Quality-of-Service (QoS) -aware component architecture in Smalltalk for Simula Research Laboratory in Oslo, Norway. He received a Ph.D. in 1996 from The Oregon Graduate Institute of Science & Technology and has since worked on video data types for Informix Software, on a CORBA application server for Oracle Corporation and as a senior technical consultant for the interactive web services firm AGENCY.COM .
See you in Orlando!
Here's a headline you don't see every day:
Some folks from Quallaby are putting together a STUG in Boston - check it out, as they meet tonight - Colin Putney put out an announcement:
The Smalltalk group at Quallaby (where I work) is organizing a get-together of Smalltalk folks in a couple of weeks. I'd like to invite all Squeakers to the first meeting of the Boston Area Smalltalk Users' Group. There's no agenda; the first meeting will be to gauge interest, get to know each other and plan further activities.
BASTUG Inaugural Meeting:
Monday, April 25, 2005, 7:30 pm.
Not Your Average Joe's (coffee shop)
1727 Massachusetts Ave, Lexington, MA
If you're in the neighbourhood, drop by and say hello. Feel free to contact me off-list if you need more information.
Lileks has a fun bleat up today - the part that really struck me was his experiences with a couple of vendors (Best Buy and Marshall Fields, but it could be any large corp.). The trouble he ran into is common to companies where individual employees have no stake in the results - the Dilbert problem of "the pay's the same no matter what I do". Here's the punchline:
Lesson: from Best Buy to Marshall Field’s, it’s the same problem. One day a company is responsive, quick, savvy. Then one day it’s one percent bigger than it was before, and something happens. They’re the IRS. They’re the Pentagon. They’re an organization slowly ground into ruin by a thick busy level of managers, some of whom are in charge of extracting point-of-sale contact info, others who are going to make their bones on a store-wide phone-system overall. Elephants playing patty-cake.
When the people you deal with have no idea why they are asking the questions they ask, it ends up being a problem. Something to consider at acquisition time, I think.
Slashdot points to what you have to call Extreme Gaming:
"Wired reports about four skydivers who decided to give the Nintendo DS wireless capabilities a try while they were freefalling. 'The four sky divers proved that an ad hoc network set up using the wireless functions of a Nintendo DS works perfectly at distances of nearly 400 feet while falling 120 miles an hour,' states the article."