java

IBM reduced presence at Java One?

June 14, 2003 23:35:44.303

A friend of mine who attended Java One said that the whole vendor area was smaller than he expected - this may well just be a sign of the ongoing down turn in vendor participation at trade shows. Still, this story from InfoWorld is interesting:

This year, IBM dropped its sponsorship of the show after last year being a platinum sponsor, which is the highest level available, and had a reduced presence on the show floor where it demonstrated its Rational developer tools and Pervasive Computing offerings, but omitted its popular WebSphere product line.

IBM speakers also kept a small footprint at the event, appearing in none of the keynote addresses and in only about a dozen of the more than 400 technical sessions

So does it mean anything? Hard to say.

 Share Tweet This

examples

New Base Image build for Bf

June 14, 2003 12:31:26.726

I've noticed that BottomFeeder could, with enough feeds, start taking up large amounts of RAM. Running in a development environment showed that I wasn't generating any leaks, so it was either MemoryPolicy, ObjectMemory settings, or both. I've been twiddling with the MemoryPolicy settings for a couple of weeks now (with some good help from Terry Raymond) - but that wasn't solving the whole problem.

Then it occurred to me what was probably happening - premature tenuring. VisualWorks allocates new objects in Eden (and uses the two survivor spaces to manage new objects). When survivor space fills up, and new objects aren't ready to die yet - they survivors have to go somewhere to make room for the new stuff. That somewhere is Old Space. So what if you allocate a lot of new objects quickly, and they keep filling up the survivor spaces? You'll get rapid tenuring of objects that would otherwise die. These end up in Old space, where they won't die until you your system runs against a memory limit (either the one imposed by MemoryPolicy or a hard system limit). At that point, you'll see the compaction and GC icons a lot if the allocation pattern continues, because those new and survivor spaces still aren't big enough - and growth is capped. I've talked about this issue before; this is kind of a continuation of that earlier post.

So what do you do? You go look at ObjectMemory class - #spacesAtStartup:. I had to create a new base for this because changing the settings here require an image save, and BottomFeeder (and most end user Smalltalk apps) never save the image at runtime. What the settings allow you to do is scale the various space sizes up. Now, why is this a problem in an application like BottomFeeder?

Consider what BottomFeeder does - every N minutes, it wakes up and trawls through your subscriptions, looking for new content. That means do an HTTP query (grab text). Parse the results into an XML document (a largish new object). Then create item objects from the xml, and check against what we have (more new objects). I am currently subscribed to 140 channels, which makes for a lot of new objects - fairly quickly - during an update scan. So with eden and the survivor spaces set to their default sizes, lots of these objects end up in old space, which is not where they should be - none of them are really "permanent" from an application perspective.

I ended up sending this message as part of the new build:

ObjectMemory sizesAtStartup: #(10.0 10.0 3.0 1.0 1.0 2.0 1.0).

The important numbers are the first two - they ask the system to make eden and the survivor spaces 10x bigger than they normally would be - and with that increased size, there's less chance of premature tenuring. This is an important thing to keep in mind for all kinds of applications - what looks like an application level memory leak may well have a system level root. Now, it's always a good idea to look at what's going on before you start mindlessly twiddling these numbers - if you have a dependency issue, where lots of objects are ending up in the DependentsFields shared variable, for instance, you have an entirely different problem. So keep this technique in mind, but look at the behavior of your application before applying it.

 Share Tweet This

cst

NC app back online

June 14, 2003 11:32:56.824

I upgraded this server from V 7 to vW 7.1 yesterday, and that meant a few changes to the applications here - one critical one to the piece that reads in the initialization files, since I had made a change to that application a few months ago. I got everything updated except the NC app. Sorry for the problem; it's all better now

 Share Tweet This

development

Another UML rant

June 14, 2003 10:12:29.637

Ara Abrahamian lets loose with a UML rant:

Imho the biggest problem of UML and MDA-based software development is that, well, the code isn't even close to what you've diagrammed! I mean take a look at buildings around you. It's easy to map what the architect drew on his board to the real tangible building. With UML the diagrams are something the designer guy draws and understands but the real program has very little resemblance to it! The designer prefers to speak a more engineering-oriented language, UML, while the masons (developers) don't like or understand it because they have to build the damn building and the architecture they are given by the modeling guy is so different from what they build. They speak two different languages. That said there is value in a engineering-oriented bureaucratic approach too, after all the civilization is built by architects rather than masons, right? So fix the gap otherwise just shut up and don't preach it :-)

I can't say I disagree with his assessment of the value of UML...

 Share Tweet This

java

Gosling - tunnel vision visionary

June 13, 2003 19:42:44.316

So Slashdot has a story on Jackpot, Gosling's latest take on devlopment. It's occurred to him that having the program parse tree around makes things like refactoring easier. Gee, he could have called Don and John and had them explain it. I bet they would have even been willing to use small words.

Even if his view is limited to Java, you don't suppose he's ever heard of Eclipse or IntelliJ?

 Share Tweet This

itNews

Safari explained

June 13, 2003 17:18:07.204

 Share Tweet This

general

Shootout tests

June 13, 2003 16:48:02.964

I stumbled across this site and decided to take a crack at implementing Smalltalk tests - I started with package Shootout (in the public store. Have a look at the package comment.

 Share Tweet This

management

More Condensed Wisdom

June 13, 2003 12:12:00.833

I just read all the recent posts on Steveen Smith's site. I blogged this one earlier, but there are other excellent posts there. Go have a look.

 Share Tweet This

management

Condensed Wisdom

June 13, 2003 11:48:17.439

I spotted this on Being Effective:

My ability to be an effective change agent depends completely on my ability to influence my teammates and management. They aren't going to do anything differently just because I say so.

I need creditability with people who are managers. And that creditability takes many forms -- it could be about my knowledge and skills; it could be about who I am as a person; it could be about a shared interest. Whatever it is, that person will invest more time in communication with me than someone else.

Let's say I have creditability with Noel who is a third-level manager. Now I have periodic opportunities to make proposals to Noel. If our interactions create a return for Noel, I'll continue to have opportunities to speak with him. Otherwise, I'll lose access.

One way I can lose access to Noel is to tell him that things aren't working because he doesn't know what is really happening. That's like yelling "Fire!" in a crowded building. You are going to get arrested.

Yeah, I've wasted plenty of time complaining about things that just deflate me in the eyes of management. It's too easy to do - all you need to do is feel strongly about something, and then fail to translate it into language that the other guy can deal with. pick your battles

 Share Tweet This

blog

Another server hiccup

June 13, 2003 10:38:26.912

There was another brief server hiccup this morning - I just updated the application server that runs this site from VW 7 to VW 7.1. Sorry for any inconvenience this may have caused...

 Share Tweet This

itNews

Wired - Sun is in trouble

June 13, 2003 8:38:27.234

Wired has a story on Sun's problems. The basic problem is simple:

Share prices of nearly every publicly traded Silicon Valley firm have plummeted since 2000, of course, but few have fallen as precipitously as Sun's. As of early May, its stock, down 94 percent from a 2000 high, was trading pretty much exactly where it was in 1996, when the computer maker was in the early arc of its dotcom-fueled rocket ride. In its heyday, Sun sometimes sold as much as $5 billion worth of computer equipment, software, and services in a single quarter, but over the past few years quarterly revenue has dropped to nearly half that. Revenue fell an additional 10 percent in the first three months of 2003, marking the eighth consecutive quarterly decline.

The interesting thing, to me, is the "build it and they will come" attitude that sems to pervade Sun's strategy - Java is simply the biggest part of that view. Heres's the attitude in all its glory:

Forget the stock price and flagging sales, he argues, and focus on Sun's record of innovation. Technology, he insists, will turn the company around. He talks up a next-generation chip potentially 30 times faster than the microprocessors currently running Sun's most powerful machines. He and his team also point to a pair of software initiatives, N1 and Project Orion, that some of the company's biggest brains are hard at work on. "With all we've got up our sleeves, mate," declares Andy Lark, the New Zealand-born marketing chief, "we've got the competition quaking in their boots." That's quintessential Sun: The tech industry is ready to write off the computer maker, but McNealy and company are smugly imagining future glory.

I've seen this "our technology is so good that nothing else matters" business theory before - at ParcPlace. ParcPlace didn't have nearly the pile of cash that Sun does, but it also didn't have the burn rate. I suspect that what Sun needs more than anything else is what ParcPlace needed - new executive management. ParcPlace got it too late, and it's looking more and more like Sun will suffer the same fate. Watch the Java crowd be utterly baffled by this, since they still seem unclear on the "who controls Java" concept.

 Share Tweet This

blog

Oops

June 12, 2003 22:38:04.996

I was trying a quick update of the blog, and it took longer than I thought - if you got an error, it's because of the twiddling I as doing...

 Share Tweet This

smalltalk

Andy Bower explains immutability

June 12, 2003 16:46:20.043

If you've wondered why VW 7 made strings immutable, read this explanation of the concept by Andy Bowers of Object-Arts:

The literal String object that contained the characters ($s $m $a $l $l $t $a $l $k) is still there it is just that you have replaced the first indexed element of the object with $S. Then anything that referred to that String will now be referring to the new form, i.e. 'Smalltalk'.

So in LearningWorks, and earlier versions of some modern Smalltalks, you could try this:

string1 := 'smalltalk'.
string2 := string1.
string1 at: 1 put: $S.

string1 "Display it" -> 'Smalltalk'
string2 "Display it" -> 'Smalltalk'

While it looks like two variables, string1 and string2 have been oddly modified by this seemingly innocous act of modifying one of them this is not really the case. The key point is that Smalltalk treats variables differently from other languages. I only really "got" this point originally when someone explained that Smalltalk variables don't actually contain the object data (as they do in C++ for eg.) but actually they are "slots" that hold pointers to their objects. So effectively, Smalltalk variables are a bit like references in C++ (if that helps). So in the example above, string1 and string2 are holding a reference to the same object (the literal string 'smalltalk').

You might then wonder why modern implementations have made the modification of literal strings illegal. Well an example from early Dolphin Smalltalk might serve to illustrate this:

You may already know that you can use the #, message to concatenate one or more Strings together (in fact you can use this message to concatenate any sequenceable collections).

string1 := 'Smalltalk', ' is ', 'Great'.

However, if you take a look at the implementation of the #, message in SequenceableCollection then you'll see that, because it has to take a copy of the source string each time, then this might become rather inefficient for a large number of concatenations. So, most of the time, you'll be advised to use Streams when concatenating large amounts of text. This is how you do it:

stream := WriteStream on: String new.
stream
    nextPutAll: 'Smalltalk';
    nextPutAll: ' is ';
    nextPutAll: 'Great'.
string1 := stream contents.

This may seem a rather long-winded procedure to tag a few strings together but, trust me, it's not really that bad in practice. Anyway, the point of this anecdote is that the above is almost the same as:

stream := WriteStream on: ''.
stream
    nextPutAll: 'Smalltalk';
    nextPutAll: ' is ';
    nextPutAll: 'Great'.
string1 := stream contents.

And we found that several of the Dolphin developers used this form and got into a terrible mess. To be honest, I'm not sure it was their fault since I think that some early Smalltalk texts may have suggested it. So, what is wrong with creating a WriteStream on a literal empty string? Well, possibly nothing in some Smalltalk implementations. However, when we were designing Dolphin we took a leaf out of IBM Smalltalk's book and decided that it would be a good idea to share identical literal strings wherever possible. So, if you use the same literal string in more than one place in a method we only create one instance of the string and both places that use it share the same object. We also discovered that in the entire image there were initially a lot of empty literal string ('') objects. Hence, we made the Dolphin compiler, when it saw '' inside some Smalltalk source, always refer the same single instance of THE empty literal string (i.e. there is only one empty literal string object in the entire image).

This means that, if you did a (WriteStream on: ''), you would be writing over the top of the contents of the single empty literal string. This in turn meant that, if you ran the above code, every reference to an empty string in the entire system would suddenly turn into a reference to "Smalltalk is Great". Although most of our users would have agreed with the general sentiment of this phrase, few who tried the above code snippet would have agreed with it when their code browsers suddenly started filling the contents of empty methods with "Smalltalk is Great"!!

Anyway, the result is that Dolphin now throws an "Attempt to update read-only object" exception if any attempt is made to modify a literal string. I believe that the recent change to VisualWorks to throw an exception in similar circumstances now brings all the mainstream Smalltalks into line with one another.

I hope this helps rather than hinders....

Best Regards,

Andy Bower Object Arts Ltd.

 Share Tweet This

BottomFeeder

Aggregators and security

June 12, 2003 16:30:41.779

Mark Pilgrim pulled an interesting stunt the other day. By sticking a script into the description tag, any aggregator that

  • Uses a full browser
  • And does not strip out script tags

is open to all kinds of interesting exploits. BottomFeeder is immune.

 Share Tweet This

java

Unintended Irony

June 12, 2003 10:39:55.045

Sun posts some irony:

Innovation happens everywhere. That's the nature of life. Alas, it just so happens that it often gets ignored or otherwise overrun by various kinds of steamrollers

Yeah, that Java steamroller has developers everywhere using sub-standard solutions.....

 Share Tweet This

development

The HTML is bad out there

June 12, 2003 10:34:59.380

Via Jeff Zeldman comes this report on the sorry state of HTML. 99.29% of the documents in their sample were not valid HTML. Wow.

 Share Tweet This

smalltalk

SIXX News

June 12, 2003 9:10:52.260

Spotted in cls and the vwnc mailing list:

SIXX 0.1g is now available for all major Smalltalks - Squeak, VW, and Dolphin XP. http://www.mars.dti.ne.jp/~umejava/smalltalk/sixx/index.html

For Squeakers, there is also a SAR version

SIXX is a XML serializer/deserializer for Smalltalk. You can exchange almost all Smalltalk objects among images.

0.1g improvements:

  • SixxReadStream can now read corrupt SIXX files with best effort (recovery mode).
  • Now SIXX avoids sending readFrom: with String parameter.
  • A SIXX Time generation test fix for different locales.

SIXX is driven by many users' feedback. I would like to say thank you to all of the contributors...

Cheers,


[:masashi | ^umezawa]

 Share Tweet This

law

we may get a GPL test

June 12, 2003 8:36:30.570

The SCO suit may give us a test of the GPL. CNet reports that SCO GPL'd their unix by shipping it with bits of Linux in it:

Several organizations argue that SCO Group's shipment of a Linux product undermines its current attack on the operating system's intellectual-property underpinnings, but SCO says the argument is baseless.

SCO says proprietary source code underlying Unix has been illegally copied into the Linux kernel. SCO critics argue that because the company shipped a Linux product under an open-source license, that Unix code no longer is proprietary.

But SCO, which has staked its future on its Unix intellectual property and how it's licensed, believes opening the source code would require a deliberate act the company didn't in fact undertake

Two things come to mind. First, will this mean a legal test of the GPL? If so, it should be interesting to see how that falls out. Second, I'd like to see SCO apply that "deliberate act" theory to the other side of their suit.

 Share Tweet This

development

Tim Bray gets the performance thing

June 12, 2003 8:30:10.465

Tim Bray points out the correct steps to good code:

Once you get past that pledge, the order of this essay goes quickly off the rails. Gray deals out several thousand words of detailed and useful information about performance issues in CLR, and only halfway through the essay does he introduce the "CLR Profiler" and give advice on how to measure what your code is actually doing. This is probably wrong, because I think the way to write fast code is simple and has been well-known for a long time. Here it is:

  1. Design and code your app, trying hard not to do anything really stupid, and striving for flexibility.
  2. If it's fast enough, don't worry any more.
  3. If it's slow, get out your profiler and measure things until you understand where the problem is.
  4. Fix the problem, which may well require major refactoring, but that's OK because that's probably coming at you pretty soon anyhow with the next batch of requirements. Furthermore, you couldn't have avoided it because nobody is smart enough to predict where the bottlenecks will be in a complex application before it's running.

That's a perfect summary of how to go about getting a clean, maintainable application that is as fast as it needs to be.

 Share Tweet This

java

The JVM as a Common Platform?

June 12, 2003 8:23:06.731

I see that Sun is still not getting it at Java One. Via Simon Phipps comes this statement from Jonathan Schwartz's keynote:

The threshold that we call someone a developer, is going to be dropped significantly ... Sun have historically treated the developer with respect. Giving them the attention and kudos they solely craved. Java developers are real developers; they don't want to be labelled with the Microsoft VB/Marco crowd. Sun will have to be very careful in how they are going to take this forward without alienating and devaluing the current developer base

This comes in the context of talking about expanding the base of Java developers. That's just brilliant - a call to attract mor people that calls the users f the most popular toolset "not real programmers". This is actually one of the many reasons I dislike Sun more than MS - they come across as far more arrogant. Simon believes that the answer is to expand the range of languages on the JVM:

My personal view is that the way to expand the developer community is not to 'drop the threshold' but rather to expand the range of languages that target the Java platform. That's why the discussion in this morning's keynote concerning the embrace of programming languages like PHP and Jython (Sean will be pleased!) is so important. PHP and Jython programming isn't dumbed-down - it's just the use of the tools that are fit for the job, and embracing a wider range of tools simply expands the scope rather than lowers the bar.

There are two problems with this:

  • The JVM is just horrible for dynamic languages (Smalltalk, Lisp, et. al.). I suppose most of the Java elite doesn't care, but they should - interest iin dynamic languages seems to be increasing. Watch Sun continue to not get it here
  • As Ted Leung points out, this many languages idiom is what MS is pushing. Ted says: One of the supposed benefits of Java is that there is only one language that you need to know

 Share Tweet This

blog

Another sign that blogs are going mainstream

June 11, 2003 20:50:59.605

PC Magazine has noticed the blogosphere:

Once the pastime of only dedicated Internet surfers and amateur writers, blogs (short for Weblogs) have become mainstream. More people than ever are getting news, information, and opinions from them. Similarly, blog writers are becoming more diverse, including traditional journalists, soldiers in the field, citizens in a disaster area or war zone, and average people yearning to express themselves. In many cases, content can be compelling because it is so personal and timely.

 Share Tweet This

smalltalk

Smalltalk and the Wayback Machine

June 11, 2003 20:41:53.447

Jump into the wayback machine (courtesy of Bob Westergaard), and have a look at Smalltalk in 1977 - when a California high school student used it to build a flight simulator!

 Share Tweet This

development

Roundup on the performance topic

June 11, 2003 13:08:14.453

Sam Gentile posted a great summary of the whole discussion, which I had originally commented on here. It's a solid wrap up with lots of good links - check it out

 Share Tweet This

events

IBM at Smalltalk Solutions

June 11, 2003 11:32:24.488

From John O'Keefe:

IBM will once again sponsor and participate in the Smalltalk Solutions conference. The conference is being held at the Crown Plaza Toronto Centre in Toronto, Canada. The show starts promptly at 8:30 a.m. Monday, July 14th, and includes three full days of keynotes, tutorials, experience reports and exhibits from various Smalltalk vendors and users.

IBM will present a session on Smalltalk Development Tools for Eclipse, a new addition to this already rich development environment. This talk will examine IBM's direction for an open-source Smalltalk environment.

At the IBM booth, there will be demonstrations of VisualAge Smalltalk Web Services framework, integration with WebSphere and other new features that help Smalltalk developers be successful.

You will also have the opportunity to talk with the lead developer on the new Smalltalk Development Tools for Eclipse.

For additional information on Smalltalk Solutions 2003, including how to register, please go to http://www.smalltalksolutions.com.

John O'Keefe IBM Smalltalk Group

 Share Tweet This

development

Another Static Typing thing

June 11, 2003 8:43:33.420

Manageability seems to have a preference for loosely coupled, dynamically typd systems - in the abstract - but comes down on the static side for tool reasons. Hmmm -

If you recall however, my arguments were not for more correctness rather it was a realization that being more explicit allows a compiler to do a lot of the thinking for you. That is, the navigation, auto completion, on the fly checking, quick fix capabilities that you find in Eclipse and IDEA outweigh the productivity benefits of any dynamic typed language. People who program in both environments know this as a fact.

Navigation? You mean like senders/implementers, etc? Invented in Smalltalk. On the fly checking? I can run my tests before, during and after I write the code, and fix any issues on the fly. Quick Fix? I apply quick fixes to Smalltalk apps that are deployed. I love the "know this for a fact" when it's clear that he knows very little about dynamic systems - or perhaps, his knowledge is woefully out of date....

 Share Tweet This

java

Java "Church and State"

June 11, 2003 8:39:07.524

Via Managability I saw this from Richard Gabriel of Sun:

Many of Sun's Java activities have never made a profit and never were intended to. This had always been justified by the phrase, "Church versus State." "State" was the part of Sun trying to make money with Java, and "Church" was the part that pushes and maintains the values Java represents. And the latter was never intended to make money. Think of how many companies would ever embrace an idea like "Church?"

That's interesting, and quite a few people have been reassured by this comment (based on things I see blogged). If Sun's revenues continue to have trouble, it will be very interesting to see the reaction if/when Sun can no longer support this.

 Share Tweet This

itNews

IT Consultants - dying breed?

June 11, 2003 8:22:09.868

Loosely Coupled has an interestting take on the rise SOA (Service Oriented Architecture), and its implications for IT consultants:

His implication that IT consultants will simply be able to turn to business process consulting is misleading. Business consultants, not IT consultants, will perform business process consulting (as they always have done). If IT consultants want to hold onto their livings when integration work disappears, they'll have to do more than retrain: they'll have to join a completely different profession.

hmm. I tie this all in with the trend towards outsourcing and offshore work more than I do with SOA. As the mega IT shops get "right sized" - and much of the work disappears offshore - what are the large body shops going to do? I suspect that they are going to bleed. Stop and think about that for a moment - because there are some larger implications. A lot of people seem to think that open source projects will thrive in this environment, but I'm not so sure. A lot of the big OS projects are funded by big companies - like IBM - that get a lot of their money from services. If the outsourcing wave impacts that, OS will be one of the things impacted by the ripples. It's all guesswork at this point, but there's little doubt that a sea change is happening in the IT sector. The go go days of the 90's are not coming back.

 Share Tweet This

tv

Eric Clayberg gets his 15 minutes

June 11, 2003 0:47:14.607

I got my 15 seconds of fame earlier this year - now Eric Clayberg gets his airtime - but for a decidedly non-Smalltalk topic:

If you ever wondered what kinds of non-Smalltalk hobbies Smalltalker's enjoy...

http://www.smalltalksystems.com/clayberg/arcade/arcade.htm

On December 12th of last year, a production crew from HGTV descended on my basement to film a segment for their upcoming special, "Incredible Basements". They were here for nine hours and recorded about three hours of tape which was condensed down to a six minute segment in the show (my basement is one of seven segments). Here are some pics I took the day they were here:

http://www.smalltalksystems.com/clayberg/arcade/HGTV/

HGTV's "Incredible Basements" will air this coming Sunday, June 15th at 9:00pm (both EST and PST): http://www.hgtv.com/hgtv/spcl_prsntn/episode/0,1806,HGTV_3909_22534,00.html

I tried to place a few recognizable Smalltalk artifacts around my basement and office, but I don't know whether any of those shots made the cut. LMK what you think, if you get a chance to see it!

Tune your DVRs...

 Share Tweet This

BottomFeeder

Updated TypeLess in BottomFeeder

June 10, 2003 21:20:45.075

I've updated the TypeLess plugin for BottomFeeder to the latest code released by the TypeLess guys. There are a bunch of fixes, not all of them visible. It's been pushed out both in the 2.9 and the 3.0 dv stream, so enjoy!

 Share Tweet This

smalltalk

So much for bloat

June 10, 2003 12:30:26.002

Periodically, people make comments about the bloat of Smalltalk. In fact, just recently Sam Ruby left this rather uninformed comment on my blog, which talks about the supposedly abysmal performance of Smalltalk. This is of a piece with the theory that Smalltalk is bloated.

I ran up against this in development recently - BottomFeeder was continuously growing - after a day of running, it was chewing 150+ MB! That wasn't acceptable, so I built a clean dev image with Bf loaded (just one of the many cool things about Smalltalk - real live objects). After a few updates it was clear that I wasn't leaking memory at the application level - I thought I might have

  • Extra XML docs from the read/update loop
  • Extra RSS Items from the same thing

Nope. Turned out to be a combination of two things. First, I had to play with the memory growth parameters. That solved some of my problem, but BottomFeeder was still growing slowly. Then it dawned on me - The Transcript!.

For development purposes, we toss lots of messages to the Transcript - it's an easy way to see what a feed or item has without stopping the update process. The problem is, I left that in the runtime - so as each update loop ran, the Transcript grew. I have a lot of feeds, so it grew a fair bit. Combine that with the generous memory settings I had on by default, and it was easy to see how the application just kept growing and growing. Now it's much better - I just had a look, and it's standing at 26MB. That's pretty nifty, especially after I saw this post, where SharpReader was consuming 74 MB for that user. I'm feeling pretty good about Bf's memory consumption now.

 Share Tweet This

itNews

Dave Thomas on saving your job

June 10, 2003 12:14:44.547

Via Gordon Weakliem comes this link to Dave Thomas' site - follow that to this prsentation, which has some concrete proposals. Good reading there.

 Share Tweet This

development

Offshore and ROI

June 10, 2003 8:29:22.379

I've posted on this before - the whole ugly issue of outsourcing. This post makes a lot of sense to me:

To someone like myself, who's been in the computer business for more than a quarter of a century (and always in demand), the prospect of becoming unemployable at 40-something is downright frightening. In the current IT labor market, I'm too expensive to hire. A company can get five people offshore for the cost of one of me.

Now, the standard reaction here would be to call for action to block this trend, legislate against it, restore things to the way they used to be. But, pragmatist that I am, I think that's an exercise in futility. The market does what the market does - it's that simple. The only way to influence the market is to offer a better value proposition

That's about right - if you think legislation the the way to go, go look at how well that workd out for the large steel firms that started getting slapped around in the 70's - they spent mountains of money on legislation, and still got waxed. Ron Hitchens is onto the better answer:

The offshore operations, of necessity to keep costs down, will become rigidly structured, assembly line operations (if they aren't already). You need an accounting system? Fine they can do that and do it very well. Inventory? Financials? No sweat, done it a million times. But if you need highly customized, innovative, ground-breaking stuff; software that's integral and vital to a new hardware device or business process or biological model or whatever, you need a tightly focused team onsite that can adapt and react and make it work right now.

It strikes me that this pattern echoes the Agile vs. DBUF debate. Offshore by its very nature has a high communication latency and the customer, almost by definition, is disconnected from the development process. This favors the Big Design UpFront approach. For well-understood business processes, like accounting, inventory, etc, this can and surely will work out fine.

And for the more custom jobs? It'll work out just as well for the offshore guys as it has for the large IT shops here. If you think all work is going to trend towards the assembly line - well, I have this bridge....

Go read the whole thing

 Share Tweet This

java

Sun - almost like getting it

June 10, 2003 8:14:40.576

Via Ted Leung, I see that Sun has created a community site with blogs and wikis. It's a lot like gotdotnet.com from MS- except that MS, having a larger cluestick, has RSS feeds. That's Sun for you - they always understand exactly half of any good idea that stumbles by them...

 Share Tweet This

BottomFeeder

Another Small BottomFeeder Mod

June 10, 2003 2:33:30.685

I had noticed recently that as BottomFeeder ran, the memory consumption slowly rose - over the course of a day it was closing in on 100MB, after starting out around 34 MB. I spun up a development image with the application running to see if I had a leak - and I didn't. So it was back to the MemoryPolicy tuning drawing board.

In this case, there are two variables of interest to us:

  • growthRegimeUpperBound - this is checked when the system is trying to decide, in the abstract, whether it should scavenge memory or grow. It's a soft limit on upwards growth
  • memoryUpperbound - this is the hard limit - whatever this is set to (SmallInteger maxVal by default), the system won'tgo beyond.

You want to be very careful with these. Set them too low, and you could get thrashing or completely unresponsive applications. Set them too high and you could have an application that cheerfully allocates its way to complete ownership of your system. Here's what I did for BottomFeeder - I created two new settings, under the memory tab in the settings tool. The soft limit can't be set lower than 32MB, and the hard limit can't be set lower than 40 MB. They default to 40MB and 96 MB respectively; you can twiddle them to better suit how much space you want Bf to take up on your system.

 Share Tweet This

events

Richard Stallman to Speak in DC

June 9, 2003 22:28:40.953

via Matt Croyden, we get news that Richard Stallman will speak in the DC area:

WhenThursday June 12, 6:10pm
WherePhillips Hall, Rm 415, The George Washington University, 801 22nd Street, Washington, DC

 Share Tweet This

smalltalk

Another Smalltalk?

June 9, 2003 18:03:52.377

Alan Knight's comment here led me to ambrai.com - not a lot of details, but it looks like a native Macintosh Smalltalk is busy being born!

 Share Tweet This

blog

Updated the blog code

June 9, 2003 17:12:56.011

I've put new snapshots of the blog code here on the Wiki. In particular, I've got Windows executable for the blog and the blog posting tool. The settings arenot nearly as easy to set up as I would like, and there's a lot of cruft there as well - I've mostly just added stuff as I've needed it.

 Share Tweet This

development

Bug Reporting

June 9, 2003 8:24:44.920

I found myself wanting to disagree with this post, but instead came away thinking it made a lot of sense. Charles Miller points out the potential issues with systems that allow voting on bug priorities:

This leads to a dilemma. If the software writers do not have the courage of their convictions, they will waste time fixing bugs that should be low priority, but that attract the attention of a vocal minority: (Linux or Mac users, for example1). If the writers stick to their guns, they will be feeding a public resentment among users that will spill over into newsgroups, user groups, Slashdot, you name it. The "This is the most voted-on, commented-on bug, why isn't it fixed!" syndrome comes into play.

While you don't want to ignore users - after all, they pay your salary - you don't want to be swayed by a small (but loud) minority either. Go read the whole thing and see what you think...

 Share Tweet This

general

IRC or blog?

June 9, 2003 8:08:27.784

Manageability compares IRC to blogs - and I think he has a misunderstanding:

IRC is like a chat room but with more listeners at a given time. Not everyone really speaks, in fact the vast majority are lurkers. This got me thinking of the inefficiency of it all. See with blogging I've been averaging 534 unique visitors a day, however if I wanted the same kind of audience for IRC, I would have to be online 24 hours a day.

The two really aren't the same, and you don't us them for the same thing. I'm on the Smalltalk IRC channel all the time - and it's really not the same thing as blogging. IRC allows for instant communications - it's especially useful (IMHO) for those of us who work at home - it works like a virtual "water cooler". During the day, it affords an opportunity for conversation if I want it to. It also allows me to interact with people all across the globe. The bottom line is, sometimes you want asynchronous; other times you want synchronous. It all depends on the nature of the conversation.

 Share Tweet This

blog

It's been a year

June 8, 2003 22:55:52.926

I just realized that I've been blogging for a year now. When I started this, I had no idea where it would go, and I had virtually no traffic - during the first few months I had this running, I was getting in the single digits of unique visitors per day. Then in August, one of that handful of readers asked me about an RSS feed - and my response back was - "what's RSS?"

Skip forward, and I not only know what RSS is, I'm crazy enough to work on BottomFeeder - a VisualWorks based RSS Reader. The blog unwittingly exposed me to the whole range of things going on in the Blogosphere - I now have 135 subscribed feeds in BottomFeeder, and can't imagine trying to keep up in this field without an aggregator. And it all started with the blog, and a small question about providing an RSS feed. It's been a great year!

 Share Tweet This

events

CMM or Agile - WOAD debates it

June 8, 2003 19:56:43.889

Here's the announcement for the next WOAD meeting - note that they are asking for RSVPs!

WOAD Thursday 6/19 - Agile Programming and the CMM - Note: this WOAD is a Thursday - Space WILL be limited to those who RSVP.

WHATWOAD (Washington Object-Oriented Architecture and Design)
WHENThursday, June 19th, 2003 at 7:00 PM
WHEREBest Western of Rockville (in the Restaurant)
DINNERBuffet $12.50 (includes tax $ tip - to get the space, we have to eat)
TOPICAgile Programming and the CMM: Anti-Matter and Matter or Reconcilable Differences?
SPEAKERDavid Kane

The Department of Defense and many other government agencies have made investments in the Capability Maturity Model (CMM). Increasingly, it is common for CMM capability to be required of bidders for RFP's. However, while the CMM has been a focal point for process improvement for the past decade, there has been a surge in interest in "lightweight" or "agile" methodologies such as eXtreme Programming, Adaptive Programming, SCRUM and Crystal. At first glance, these agile methodologies would appear to be at odds with the goals and approaches of the CMM. Make no mistake -- there are major differences. The CMM is often described as replacing the cowboy programmers archetype with repeatable processes, while the Agile Manifesto specifically calls for an emphasis of people over process. Ironically, if you examine many of these agile processes in detail, you find most, if not all of the characteristics of a "mature" software development organization. How do we resolve this conflict? Is there a role for agile methods in major government software development activities?

About Our Speaker:

David Kane is a Software Architect at SRA International in Fairfax Virginia. He is an author of Software Architecture: Organizational Principles and Patterns from Prentice Hall. Additionally David has authored numerous articles and talks for process conferences and publications. He has developed and taught courses in XML, Java and Software Architecture as well. David is currently developing genomics software for the Laboratory of Molecular Pharmacology in the National Cancer Institute of the National Institutes of Health. David's Home Page

RSVP

Put WOAD-RSVP in the subject line. RSVP by email to. Space WILL be limited to those who RSVP.

LAST WOAD / Handouts: In April, WOADees participated in the first WOAD Patterns Game. Participants of all levels found the game fun and educational. A few handouts from the game will be available for those attending the June WOAD meeting.

DIRECTIONS TO WOAD: Just off 270 FROM THE SOUTH: Take your best route to 270 North. Take the 2nd ramp at the Route 28exit (exit 6B) (Darnstown/Poolsville). This will put you on Route 28 going the opposite direction from Ledo's. Cross over 270 (one light) and turn right just before the second stop light (Shell gas station on your left, Best Western sign on your right). This will take you onto a long driveway for Best Western. Park and join us in the restaurant.

FROM THE NORTH: Take your best route to 270 South. Take the Route 28 exit. Turn right at the light. This will put you on Route 28 heading the opposite direction from Ledo's. Turn right just before the first stop light (Shell gas station on your left, Best Western sign on your right). This will take you onto a long driveway for Best Western. Park and join us in the restaurant.

This looks like it will be interesting - I plan to attend, taking notes!

 Share Tweet This

smalltalk

Keith Ray - Smalltalk is like Esperanto

June 8, 2003 16:43:32.244

Keith Ray makes some points about Smalltalk that more of us in the Smalltalk community should be paying attention to.

 Share Tweet This

development

Software that other people can use

June 8, 2003 16:24:56.533

One of the things that the BottomFeeder project has really gotten across to me is how hard the finishing touches of a softtware project are. Building something suitable for your own use is easy. Whatever warts or issues the software has - you'll be willing and able to just overlook them. Once you decide to let other people start usiing your software, the rules change - dramatically. The sharp corners become obvious - the issues you consider irrelevant start to loom large.

This hit home for me again at the end of last week. One of the marketing folks here at Cincom has decided to run an internal blog as a way of sharing project information between and among groups - pretty much what this post was all about. So what I had to do is package up my blog and blog posting stuff in a way that someone else could make use of. Fortunately, the whole BottomFeeder project gave me some worthwhile experience (and packaging tools) for this. So yesterday, I got the blog and the blog posting tool packaged up as double clickable Windows applications. All I'll really have to do is help the interested party get the ini files set up, and they should be good to go. I've also got it all set to start up from a base image that loads the appropriate parcels, so getting updates out will be simple.

Everyone who develops software should really go through the experience of releasing code for other people's use - there's really no other way to have a solid appreciation for the difficulties, both large and small.

 Share Tweet This

law

SCO shows some cards

June 8, 2003 10:32:40.186

SCO has shown some cards in the Linux fight:

PARK RIDGE, Ill. -- SCO Group revealed the foundation of its legal battle with the Linux community, when it rolled out evidence of large blocks of Linux code that it contends were stolen from Unix. Analysts who saw the samples of the allegedly stolen code said the evidence is damaging and that SCO Group has a formidable legal case.

"If everything SCO showed me today is true, then the Linux community should be very concerned," said Bill Claybrook, research director for Linux and open-source software at the Aberdeen Group (Boston).

The see-saw keeps tipping back and forth in this one. The reason SCO has gone this route is made clear later in the article:

SCO contends that by co-opting code from Unix, Linux has severely damaged SCO's intellectual property. According to some estimates, the company collected annual revenue of between $200 million and $250 million on Unix System 5 software before the rise of Linux. After Linux reached the mainstream, those revenue figures dropped to about $60 million a year.

It's all about trying to get license revenue. Will it work? Who knows - I'm not even going to try to make predictions involving the US legal system...

 Share Tweet This

development

Premature optimization

June 7, 2003 12:09:24.465

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.

 Share Tweet This
-->