So what do you do if you're the CEO of a $65 million software company that's losing money, losing market share and -- worst of all -- has a stock that's lost 99% of its value in the space of two years? If you're Darl McBride of The SCO Group, you file a billion-dollar lawsuit against IBM. Then drop the product you've staked your future on. Then send threatening letters to about 1,500 of your biggest potential customers. Then announce a deal with Microsoft. Result: SCO's stock is up 500% since January. Sort of takes the mystery out of why SCO is taking wild swings at the Linux it championed just months ago, doesn't it?
From the Smalltalk IRC Channel:
"Developers are like simple chemicals (no, not because they're cheap and smelly)"
"In the right combination, they can make miracles. Screw up the mix, and you can blow up a city"
Denise Howell has posted Bill Gates' and Steve Jobs' remarks on her weblog. Should I post my own coverage soon, now that Denise (and others in the audience) are filing their own stories? Why shouldn't I?
Looks like it's going to get increasingly difficult to keep things off the record as time goes by.
I thought my battery backup for the Linux box was hosed - but it's not. After I had the power supply replaced awhile back, I plugged it into one of the power ports that isn't backed up by the battery. Sigh.....
From this otherwise interesting C:Net article about the Sun v JBoss thing, comes the following choice quote:
Enforcing J2EE compliance is important, because IT buyers care about being able to move Java applications to different systems, said Ted Schadler, an analyst at Forrester Research. ..
False. Complete, and utter bullshit. The overwhelming majority of J2EE development is being done in bespoke systems, where the deployment platform is decided a long time before development even begins. Cross-deployment is never an issue. Cross-compatibility of developer skills is important, so you have a bigger pool of development talent to hire from, but developers are far easier to adapt to incompatibilities than software is.
Which leads me to note -
- It's easier to train Smalltalkers than Java developers
- Smalltalk is more productive
- Most people aren't using EJB anyway, for a variety of good reasons
So, exactly why would you use Java instead of Smalltalk? Oh yeah, because of the ease of finding all those highly skilled, fresh out of college OO experts. But there's an even better comment over at the Fishbowl on analysts:
Marcus J. Ranum comes up with a nice summary of Gartner on the firewall-wizards mailing-list. You've got to understand that most of the input into Gartner is from briefings arranged by the marketing departments of companies that are paying them to listen to their briefings. Basically, Garter sits at the apex of the hype food-chain; they consume pure hype and produce little s****-pellets of hype that is [sic] as dense as neutronium.
hehe. Well, you all know what I think.....
I consider skinnability to be a good reason to not use a program. Skinnability almost always means complete lack of standard controls, and useability that as been viciously compromised just so that some 13 year old boy can more easily graft on a bunch of stuff he scanned from an H.R. Giger calendar.
Go read the whole thing, especially the link above - it's a well thought out rant....
Yesterday, a storm interrupted my power - and I finally realized why the UPS wasn't keeping the Linux box up. Well, it turned out the storm did some damage after all. At first, when I noticed that the Linux box was off the net, I thought I had lost an ethernt card. But then I noticed that none of the wired devices were on the LAN either. After a bit of investigation, I discovered that the hub in the basement was the issue - removd that, and all was well again. Well, almost. Turns out one of my cables is bad, so one of the Replays is off the LAN. Sigh....
A lot of people have been commenting on MS' announcement that IE will soon (after the next service pack) stop shipping as a standalone product outside of the OS. This raises some interesting questions - does IE for the Mac go away then, or are they only talking about Windows? What about the AOL deal? Bitworking has some interestingt thoughts on why this might not be such a bright idea:
And let's not forget that upgrading the operating system costs money, versus downloading a new free browser off the web. If Microsoft thinks customers, given the choice of upgrading their operating system or changing to a different browser, are going to choose to pay money to upgrade their operating system, then someone needs to check what they're drinking in Redmond.
The impact also stretches to beyond Microsoft. If you are one of those banks that has an "IE only" web presence, you have to ask yourself how many people are going to upgrade their operating systems versus moving their money to a new bank. I know people that have switched banks for much less.
Yeah, my upgrade from ME to XP was hardly seamless. In fact, it wasn't so much an upgrade as a re-install from scratch...
Ongoing asks an interesting question - how do you know how many individuals are subscribed to your feed? First off, why do you care? Well, because subscribers are more committed to your content than the occasional browser - it's the same issue that people tracking websites have - people who come back time and again are more interesting to you (from a business perspective):
Well, OK, but I think that from a crass business point of view, someone who comes to ongoing because they're subscribed to my feed is worth more than someone who followed a link from anywhere out there, in exactly the same way that a subscriber is worth more to a magazine than a newsstand sale. So I continue to think that RSS is qualitatively distinguishable from the general ebb and flow of Web traffic, and if we could track it, that would be a good thing.
In this whole discussion, the fact that some users simply hate the idea of being tracked comes up. Ongoing cites an emailer:
I absolutely refuse to *store* any cookies on my computer that do not benefit me, but some web site owner or advertizer. I absolutely refuse to *use* cookies on any of my own sites - *unless* they're cookies that actually benefit the user (such as for storing configuration options for a bug tracker). And it would be nice if I sold enough books through my associationship with Amazon to cover the cost of hosting - but I don't. Even though I provide a lot of extra information and short reviews. But NO ads, and NO cookies. NO RSS-user ids either. Not ever. And that's a promise.
This is a serious thing to work through - vendors on the web (just like anywhere else) need to advertise their wares in order to sell, while at the same time, they need to minimize the amount of irritation said advertising causes end users. For instance, the recent trend towards what I call "page turds" - those on page popup ads. The ones that offer me a chance to close them - I don't mind those. The ones that don't - I hate them with a passion.
This isn't a new problem though - TV and Radio advertisers have been trying to deal with this for decades.
A reader sent me an interesting link trail:
Start at GotDotNet, Microsoft's .NET evangelism site. Select the Blogs link on the left. Select Don Box's blog. You may or may not know Don. He's an author of those really boring, yet thick, Microsoft technical books. I think he made a name for himself in the COM days.
Scroll down Don's blog to Microsofties and the XML Way.
Doug is using Squeak for XML processing. So there you have it. From Microsoft's .NET evangelism site right to Squeak. Clearly .NET is simply a false face to Smalltalk.
After a reader request, I've made a few updates to the blog site:
- The Archives - By default, the archive page now shows the current month. There are navigation links for going back and forward - I'll be adding an interface to allow more specific navigation without url editing as well
- The Archives - layout has also been changed. I removed the poster name (since it's always me), and added a link to the category for the post
- Single item views - there's now a link to the next and previous items whenever you are viewing a single item
There's one more request, to allow the hiding of the blogroll and link lists. I'll get to that as well, but I have some other pressing work at the moment...
Then take a look at this:
The best fares are still going to be either booking in advance and staying a Saturday night or Air Canada have introduced new web fares that are for low cost domestic travel only and the fares are very low but are still on a first come, first serve basis.
If you have a minimum of 10 people travelling, we can register your meeting/convention with Air Canada and that will give you generous discounts on their regular fares (not weekend excursions or web fares) and would be applicable for travellers coming from outside of Canada. If your numbers are tight and some people venture ahead and book on the web before all is set up, their bookings will not count towards your minimum numbers.
Via Matt Croyden:
Shares of International Business Machines Corp. IBM.N were halted on Monday in over-the-counter trading, pending news.
IBM said in a statement shortly after the halt it is the subject of an investigation by the U.S. Securities and Exchange Commission. It said the probe is related to revenue recognition in 2000 and 2001.
I heard rumors about this last year; guess they had some weight....
Via Linux Today, Infoworld's Ed Foster tells us what the next tech suit will look like:
"Semi-Unabridged Webster Corp., publishers of the Semi-Unabridged Webster Dictionary of 1923, today announced it has granted a license of English language intellectual property rights to Microsoft Corporation. The licensing deal makes Microsoft the first company to ensure its products and services will be in copyright compliance with the use of English.
"'We are very grateful for Microsoft's acknowledgement of our intellectual property rights and for their support in our efforts to make English available to all for a reasonable licensing fee,' said Preston Gates Ellis, CEO and General Counsel for the recently-formed Semi-Unabridged Webster (SUW). Ellis acknowledged that Microsoft received a particularly favorable licensing due to its 'small investment' in his company, but declined to provide detailed numbers..."
- VERSION A: SCO does own the Unix code. IBM took out a license for AIX. The court finds that IBM violated the license and IBM loses its case. SCO then asserts its intellectual property rights and goes after all Linux companies and users of Linux for fees. Confusion reigns. Linux dies.
- VERSION B: SCO pays no attention to code ownership and concentrates on contract violations with IBM. SCO wins, and uses the victory as a precedent to go after the tainted code used by others. Corporations panic and flock to Microsoft.
- VERSION C: IBM decides to stall the proceedings. It's using David Boies' old law firm. As the battle drags on, the Linux movement loses momentum, then dies.
- VERSION D: The case is thrown out of court because it has no merit, and SCO has no platform to stand on because it doesn't own the code. This is what the Linux community is hoping for. Good luck.
He's forgotten the most likely scenario and trumpeted up some really unlikely ones. The most likely outcome? IBM buys SCO and the whole thing goes away. Unless, of course, the rabbit hole goes deeper than we thought - in which case, SCO is just screwed, because an IBM payoff is their entire business strategy right now...
Smalltalk Solutions 2003 Would like to announce its technical conference schedule.
To view this year's complete technical conference schedule please go to the presentations site
Additionally, tutorials are available for $100USD each. To view the tutorial schedule, please go to the tutorials site
To register for the show, please visit our site at www.smalltalksolutions.com
Don't forget, early registration ends June 13th, 2003. See you all in Toronto!
For additional information please contact: Joy Murray
XML is pretty explicitly a rejection of an aspect of OO practice that Norm touches on only briefly: encapsulation. Everything accessible all the time is pretty clearly a hallmark of XML work. You can hide things if you want to, but it takes a lot more effort
I just posted updated schedule information on the show - and some people have asked about the fact that the site has the schedule as July 13-16, while all the technical schedules start on the 14th. The 13th (Sunday) is only for early registration (5 pm - 7pm) and exhibitor setup. The show itself is from July 14 - 16.
One of the content management tools is supporting RSS. Guess it's standard :)
Rain, rain, and more rain. The only positive to all this is that the air conditioning for our upstairs is out, and this nasty weather pattern is holding the temperature down. Bleah
Here's something I didn't expect to see:
Sammy Sosa of the Chicago Cubs was ejected when umpires found illegal cork in his shattered bat during Tuesday's 3-2 Interleague win over the Tampa Bay Devil Rays.
Sosa broke his bat in the first inning on a grounder to second base with Chicago runners at second and third.
But crew chief Tim McClelland examined the bat along with the three other umpires immediately after the out was called and the run scored.
Huh. Sammy Sosa isn't somone I would have suspected of that kind of thing....
via Manageability comes an interesting exchange on Java and language features:
We are catering to the Java culture, while trying to manage things well on the technical side at the same time. In general, once can contrast the Scheme-like philosophy of using a small number of very general constructs, with the more mainstream approach of having a great many highly specialized constructs, as in C or Modula style languages.
Java is clearly in the latter camp. Most Java developers are happy to have dedicated, narrowly focused solutions that are tailored to a specific problem. I am keenly aware of the drawbacks of such an approach, but I don't see it changing very quickly.
Dumbing down the language at the expense of providing more powerful expressions is a way of preserving a wider audience. However, is it the only way of supporting communities?
The interesting thing to me is that Java, while very popular, is not as widely used as VB, nor as widely used as Cobol once was. If they were aiming for simplicity, they missed.
In a traditional large corporate IT department the following happens when the CIO asks why a project went from green to red since the last program review meeting:
- The program manager who owns the project would dig through his email for the last couple project status reports (most likely an attached Word doc form).
- The program manager would then call the PM to get additional details of the problem.
- The PM would likely dig through HIS email to find the right thread from his development team.
- The PM and development team would likely pull together a meeting to ensure that they have a clear risk management plan and communicate that back to the program office (in a widely cc:ed email)
- The program manager asks a couple questions, updates a batch of cross-project timeline graphics and reworks their Powerpoint deck for the next program review meeting.
Now lets look at a blogged IT organization:
- Each developer and/or development team would keep a project blog with RSS.
- The PM would subscribe to all those blogs and would publish a roll-up blog with links to details of various issues.
- The program manager would subscribe to the RSS feeds for every project or team that impacts his project portfolio and would publish his own blog.
- The Powerpoint deck would now have live links to blog entries at the program office level.
Interesting idea. You would have to get all the project leads to participate - but then again, you have to do that anyway. I think it's likely that the RSS feed and tracking that you can get out of that would be the biggest value; you might well get the same benefit from a Wiki if you had a proper RSS feed coming out of it.
Who said anything about SOAP? DCOM/SOAP/CORBA are based on a myth. They're based on a myth that one day you'll just expose things and not care about performance and some how the loose coupling will work. Again...
So what should we all use to develop scalable crossplatform applications ?
The problem is that these toys (CORBA/et al) are solving a problem that isn't particularly hard and ignoring the hard stuff. The hard part is the business side. The second hard part is the granularity of the data (meaning if you send NAME and I need FIRST and LAST_NAME, then anything we have is a leaky abstraction). CORBA is too much of a big fat heavy overcomplicated beast with incompletely compatible implementations to be of much use. DCOM == Windows only. SOAP is too slow. But the protocol isn't the hard part and in a world dominated by Java is the smallest part of the concern. This isn't to say that we don't need to have a distributed information exchange protocol. Its just that CORBA is freaking useless and overly complex and inflexible. SOAP is XML...it is FAT. DCOM is as freaking useless as CORBA unless you are a Micksee in a land of Micksees. I haven't seen one thats worth its salt yet.
That's not the funny part. He's saying that one should use Java for all distributed applications (presumably because proxies are so easy in Java - snort). Ok, so Java is the one true language for this guy - fair enough, everyone has their language opinions. The funny part comes further down, when he lets loose with this:
Of course arguing this with CORBAites, is like arguing for giving up Hebrew to a band of Orthodox Jews... Like trying to tell the whole world to give up their spoken languages for Lojban.. . or worse, like arguing giving up the idea that SmallTalk is the OneTrueLanguage to a bunch of SmallTalk zealots.
ROTFL. First, learn to spell the language before you make fun of it - it's Smalltalk. Second, wasn't there a part above in this post where you implied that Java is the one true language for distribution? So who's the fanatic here?
And by the way, using CORBA doesn't need to be complex. Oh sure, if you use blunt instruments like Java or C++, it surely is. Some of us prefer the power tools, but to each his own - enjoy your sharpened sticks :)
Looks like personality problems have cropped up on the JBOSS team. Via Matt Croyden comes word of a large fork in the project:
8:00 am -- Seven consultants for The JBoss Group publicly announced the immediate termination of their contracts and the foundation of their new company, Core Developers Network. Their charter "is to provide a commercial infrastructure to enable open source contributors to deliver their professional expertise to the marketplace, independent of their contributions to open source projects".
Matt worries that this might create uncertainty around Open Source development, but I doubt it. People are people, and personality conflicts are nothing new.
A reader comments that the field isn't level (i.e., costs are far lower for the offshore teams). Bob Lewis responds:
And an offshoring firm might complain, "Do you know the advantages American firms have? It isn't even close to a level playing field. First of all, they're located just down the street from their clients. They can take the decision-makers to play golf any time they want. Beyond that, there's still a lot of cultural bias in the United States, and it's a lot easier for a U.S.-based company to place people who know the culture in front of their clients than it is for us.
"Not only that, but all the code, and the entire user interface for every application that runs in a U.S. company is written in English. For American programmers that's their native language. For all of our staff it's their second or third language, but it all still has to be written as if we were Americans. And speaking of language, Americans speak a wide variety of them. Have you ever tried to communicate with a New Yorker? They speak so fast it makes my ears hurt ... and they've apparently never encountered the letter 'R', either."
Get the picture? It's smart for companies to exploit their natural advantages over their competitors. That doesn't mean the playing field is tilted. It means American companies ... and individual programmers ... had better wake up and start finding ways to exploit their own advantages, of which there are many if we only had the wit to use them.
About right - the field isn't level in either direction - depending on how well you sell the advantages you have, the glass will either be half empty or half full. This is going to play out just like manufacturing did 20-30 years ago, so developers are just going to have to buckle down and figure out how best to deal with it. whining isn't going to accomplish a lot.
It's June 4th, and I live in Maryland. So why the heck do I need the heat on in the house? Yeesh....
In an earlier life I engaged in a war with an enemy known as "6502 machine code". Via Don Park I found Crass - a 6502 cross assembler written in Python. I don't know whether to applaud, laugh or cry. I think I'll cry.
a 6502 assembler, in Python. Some peoplejust have eway, way too much free time on their hands :)
This one hit me at work. I was modifying the facade of the subsystem I'm working on. I needed to go from: public RegistrationId register(User user, String param1, String param2) to public RegistrationId register(User user, String param1, Long param2). I wanted to do this without breaking anyone else's code, so I deprecated the first method, wrote the second, and checked it in.
I figured that was a pretty safe bit of interface evolution. I was wrong. Half an hour later, I was informed I'd broken the build.
The problem was: "null" was a valid value for param2. Because null has an indeterminate type, the compiler couldn't tell which of the two selectors was being referred to by the calling code. New code could get around this by casting null to the appropriate type: (foo.register(myUser, "blah", (Long) null);), but existing code didn't have that cast.
Now a set of unit tests would have discovered this problem easily enough, whereas the "safe" type checking couldn't. Also note the casting solution used for new code. Yes, this example makes me see the inherent safety in static typing, yes......
It gave 'all rights and ownership' to SCO (actually to the Santa Cruz Operation) but retained all patents and copyrights. "This agreement is kind of murky.... You end up with a lot of questions, to put it mildly." -Shankland/Cnet 6/5/03
Does this rabbot hole have a bottom?
I've been busy working on some potential partner deals today, and in between all of that, working on the blog - the posting tool in particular. I've actually posted a version of it up with the dev builds for BottomFeeder - it works as a plugin, and also uses any relevant information in BottomFeeder for things like trackbacks, pingbacks, etc. The tool supposedly supports the Blogger API and the MetaWebLog API, but I only have my own implementations of those to test against - and I don't use them in production anyway.
So it boils down to this - do you want to be constrained in terms of flexibility or provably, formally, "correct" at some probably academic level? I'll take flexibility thank you very much!
... Here is a bold statement. By 2010 "compilers" will be a quaint anachronism. A throwback to the days when illusions of speed and illusions of correctness held sway over real speed (massive parallelism such as XGrids) and flexibility-based-design.
Y. B. Normal talks about one of the common knocks on Lisp - the syntax:
This is bound to come up every now and then. Graham Glass writes:
LISP was an incredible work of art. so simple and so reflexive. but an absolutely crap syntax that doomed it.
In response, he got some of the expected "stupid, the syntax is what makes Lisp so powerful" comments (which I'll not link to), and some interesting ones (see his comments page). This debate comes every often, with Lisp gurus telling everybody else not to worry about the syntax and that they'll get used to it, and everybody else saying how they like Lisp, except for its syntax.
You hear some of the same about Smalltalk. Scratch the surface of this complaint, and you'll almost alwaysfind "but why can't it use curly braces and semi-colons like a normal language?" Inertia explains everything you need to know about this complaint.
I've been working on the posting tool for this blog the last two days,and it's finally in a state I'm mostly happy with. I'm bundling it as a plugin with BottomFeeder now as well. That means I will now shift back to Bf, for some work I've been letting slide. I still neeed to have a look at the NullSoft installer, and have some work to do on various other bits that need cleanup.
I run the dev version of BottomFeeder so that I can tell what I've messed up as I go. Recently, I noticed that a bunch of blogs I read regularly didn't seem to be updating. Taking a look, I found flaws in my module support, which is the biggest new thing in the development code. I'm now fixing those flaws; there will likely be a number of new dev builds posted today.
SCO has come up with a document that appears to refute Novell's claim to the Unix copyrights that SCO is holding over the Linux community's head. But if SCO only learned of this document yesterday, it can't have been the basis for its billion dollar lawsuit against IBM or its threats against other Linux vendors and users. "A SCO paralegal found the amendment Thursday in a filing cabinet, Stowell said."
This is just getting stranger and stranger.
I have another Cincomer interested in running a blog - internally at first. That meant that I had to make the tools more easily usable by someone who isn't me :). I now have a start on that, and we'll see how it goes next week.
A reader pointed me to this interesting column. It traces the history of development, from the pre-assembly days to the present. I liked this comment on the invention of high level languages:
With Fortran and the languages that followed, programmers finally had the tools they needed to get into really serious trouble. By the 1960s large software projects were notorious for being late, overbudget and buggy; soon came the appalling news that the cost of software was overtaking that of hardware. Frederick P. Brooks, Jr., who managed the OS/360 software program at IBM, called large-system programming a "tar pit" and remarked, "Everyone seems to have been surprised by the stickiness of the problem."
Heh. The article examines AOP, patterns, and XP as follow ons from OOP; it's not detailed, but does make a few points. The summary is perhaps the best part of the whole thing, with this observation:
After several weeks' immersion in the how-to-program literature, I am reminded of the shelves upon shelves of diet books in the self-help department of my local bookstore. In saying this I mean no disrespect to either genre. Most diet books, somewhere deep inside, offer sound advice: Eat less, exercise more. Most programming manuals also give wise counsel: Modularize, encapsulate. But surveying the hundreds of titles in both categories leaves me with a nagging doubt: The very multiplicity of answers undermines them all. Isn't it likely that we'd all be thinner, and we'd all have better software, if there were just one true diet, and one true programming methodology?
Cynical or observant?
Yes, shipping code that is too slow to deal with is a problem. However, this post gives me the willies:
I was very excited to see two great articles on MSDN starting to address the performance implications of managed code. For the last two years there has not been a lot of information on what managed operations actually cost. There has always been the Managed Profiling API for the hardcore but the general tendency in .NET is to make things radically easier for the programmer ("Let Go and Let the Runtime") and abstract things away to the level where some forget that there is even a runtime. Forgetting about some of this and not understanding GC, Finalizers, and the basics of the CLR leads to many problems including bad performance.
summarized by this:
The second article, Writing Faster Managed Code: Know What Things Cost goes even further with tables showing times for each of the IL primitives! I love the way Jan starts this:
Don't do it. Instead, stand up and pledge along with me:
"I promise I will not ship slow code. Speed is a feature I care about. Every day I will pay attention to the performance of my code. I will regularly and methodically its speed and size. I will learn, build, or buy the tools I need to do this. It's my responsibility."
This is putting the cart way, way before the horse. The old adage applies:
- Make it work
- Make it fast
Modify the second part with - if it matters. Worrying about how fast code is while you write it is a recipe for dangerously unmaintainable code. Create natural code, and if there are problems - use a profiler. See if what you think is slow is actually what's slow. In many cases, it won't be. The very last thing you should consider while writing code is how much it "costs" in performance terms - at least for the vast majority of business applications. Yes, there are exceptions. No, most of us aren't involved in development of one of those exceptions. If this is the sort of advice Microsoft is peddling, I foresee a plethora of unmaintainable monsters coming down the .NET pike.