development

Murphy's law at Joel on Software

January 26, 2003 0:23:07.067

If you don't read Joel on Software, then go and read this now. It's an amazing series of bad events...

 Share Tweet This

development

RSS Is a Web Service Continued

January 26, 2003 8:16:17.806

THis idea of RSS as The Web Service we have Now seems to be common. I posted on this a few days ago, and yesterday I made some additional comments. Now I've just spotted Matt Croyden's Blog, and he's been making the same kind of noises:

Jeremy Allaire notes that there have been over 10,000 sightings of RSS Web Services spotted in the wild:
As I've been reading and writing today I've come to a somewhat obvious conclusion: there's been an explosion of 'web services' in the past year, and it has nothing to do with SOAP, WSDL and such standards as described in the industry but with the ascending role of RSS and RDF as XML data and syndication formats.
Jeremy has a point. Another interesting tidbit from his post:
Today's count of RSS feeds from Syndic8.com: 10408 feeds Today's count of SOAP APIs from xMethods.com: 275 APIs
That's a huge difference.

 Share Tweet This

itNews

Packaged Applications - Not all they're cracked up to be?

January 26, 2003 12:19:34.954

Infoworld has a big story this week on packaged applications and their hidden costs.

A NOSTRUM of the late '90s was to dump internally developed, custom applications in favor of packaged applications. But the hidden costs of those packaged apps are coming back to haunt many companies that implemented them too hastily. The motivation behind that lurching, tectonic shift was the horror generated by over-budget attempts to build systems internally. An entire generation of in-house programmers was pulled from projects and thrown at ERP and CRM systems -- or out the door -- because executives believed that packaged apps would fix the problem of hidden costs. "Companies that had been building their own software for 40 years started thinking maybe they didn't need all those people, and that was a sign of something bigger: a crisis of confidence," says Tom DeMarco, a Camden, Maine-based principal at Atlantic Systems Guild and co-author of Peopleware. DeMarco thinks the rush to packaged software was accelerated by organizations losing confidence in their ability to invest wisely in IT and the creeping belief that original works of code were merely a cost, not an investment. But the hidden-costs problem didn't go away with the adoption of packaged apps, which can hide even more expenses.
That's an understatement. Very few companies take packaged applications as-is. Instead, they customize. This has two problems:
  1. The application is now forked from your vendor's version, making upgrades harder
  2. The application wasn't necessarily written with the kinds of customizations you had in mind
I see this at Cincom - we have an internal bug tracking system that is a heavily customized version of (an external vendor's software) product. We are now 2 or 3 versions out of date, because our internal staff could not upgrade the product and the customizations in synch with the vendor. The vendor can't support our version with normal support, since it's so heavily customized. So we spend precious dollars on support of an out of date application. I'm not beinging this up to embarass our IT group; it's hardly a unique problem. My point is that, in general, packaged applications end up being at least as much trouble to maintain and upgrade as custom ones. While you may become dependent on a particular version of a development tool or set of libraries, upgrading - given source - is typically a resource issue. With a packaged application, you likely don't have source, and API's you depend on could disappear. You can end up just as far down the river. Basically, TANSTAAFL. Here's another interesting snippet from the article:
"If companies were feeling defeated by custom software, then packaged software has proven an even greater defeat. The fiasco with Oracle last year indicates that even upgrading a package isn't affordable," DeMarco adds, referring to the snarled application-migration problems last August that purportedly cost Agilent more than $100 million.
Read the whole article - it's thought stimulating.

 Share Tweet This

itNews

Outsourcing Trends?

January 26, 2003 12:39:39.652

Infoworld has a thought provoking story on outsourcing. The conventional wisdom seems to be that 40% or more of IT jobs could be outsourced by 2005:

AS MANY AS 35 percent to 45 percent of U.S. and Canadian IT workers will find themselves replaced by contractors, consultants, offshore technicians and part-time workers by 2005, according to a report issued this week by New Canaan, Conn. based Foote Partners. And though some analysts and IT labor experts said those figures, while eye-popping, may not be far-fetched, four high-level IT managers said the predictions probably won't apply to their companies. For them, outsourcing hasn't proved to be a lower-cost alternative to keeping IT inside corporate walls. "While there are times where I'd love to throw something to the outsourced den, so far we've found that it wouldn't be cost-effective for us," said Amy Courter, vice president of IT at Valassis Communications Inc., a Livonia, Mich. based marketing services firm. "We do everything in-house," said John Studdard, senior vice president and chief technology officer at Lydian Trust Co. in Palm Beach Gardens, Fla. "The reason we've been successful in light of 9/11 and the economy and the bursting of the dot-com bubble is that we're in control of our own destiny and not locked into long-term contracts that may or may not be relative to our business anymore."
I can state pretty unequivocally from my experience (see my ReplayTV support saga that outsourced level one support is a fine way to irk customers - they get to deal with distant support people who are empowered to do nothing except follow a tightly controlled script. Still, it looks a lot like application development could be going the same way manufacturing went 20 and 30 years ago:
Nevertheless, David Foote, president and chief research officer at Foote Partners and a Computerworld columnist, said American companies "can't afford to do application development in the U.S. anymore. The nature of the business has changed." Foote said he based his estimates on surveys his company conducted last year with 1,880 private-sector and government employers, which were asked what percentage of their future IT workforces will be in-house vs. external.
Discouraging though that sounds, I expect the effort to be tried. I also expect that it won't go nearly as well. Software development is not nearly as well understood a field as is manufacturing - in most respects, an assembly line doesn't care where it's located. Software development is different - it's a communications heavy field, and I question the ability of development staffs 12 hours (in time zone) away to adequately communicate with the end users. Agile Development and XP are a response to the seeming inability of local development groups to communicate well; somehow I doubt that adding language and time barriers will improve that.

 Share Tweet This

blog

Whoops!

January 26, 2003 17:05:27.308

I had a nasty layout issue with the blog that Roger Whitney pointed out to me. After some investigation, I found out that the code I was using to place trackback, pingback, and comment links was just atrocious. I fixed that and patched the server, and the presentation should be back to normal now. Thanks Roger!

 Share Tweet This

general

This is just pathetic

January 26, 2003 17:42:19.823

The intelligent folks at my local WB station had a sports event earlier today - a college hoops game. Ok, I set up the Replay to record Angel long in case the show got started late. The bozos at WB ran the show 1/2 hour early. Early!??? What's up with that? It's bad enough that the college basketball season bounces the show from one day to the next - but now I can't make any kind of educated guess at all as to the airtime. Sheesh.

 Share Tweet This

development

WOAD Meeting this week

January 26, 2003 21:40:49.079

Victor Goldberg pointed me to a meeting of the Washington (DC) Object Oriented Architecture and Design Group this week:

WOAD 1/28 - Java Impossible : What can't be done with Java and how to do it anyway RSVP quickly to reserve a seat. Space WILL be limited to those who RSVP. WHAT: WOAD (Washington Object-Oriented Architecture and Design) WHEN: Tuesday, Jan 28th, 2002 at 7:00 PM WHERE: Best Western of Rockville (in the Restaurant) DINNER: Buffet $12.50 (includes tax $ tip - to get the space, we have to eat) TOPIC: Java Impossible SPEAKER: Michael Trachtman Already excited about a talk on "Java Impossible"! Or are you wondering why in the world WOAD is doing a bits and bytes language talk? Even if you don't code, if you design, architect or manage anything in the Java or J2EE space, you need to know what can and can't be done. This will be fun and given WOAD, controversial. Michael will present prepared challenges with solutions and invite new challenges. Some of the topics that Michael will discuss include how to create a distinction between "public" and "published". We'll also discuss how to make a simple general mechanism for creating light weight transactions in Java, and show their use in enforcing Design By Contract and Componentization in Java. For new challenges, bring your toughest problems, give them to Michael and build toward a solution. We'll welcome challenges from Java gurus and .Net folks alike. Challenges with solutions are of course especially welcome. The only restriction is that the challenges should useful.
Well. I have one, and I've been discussing others on the IRC Channel. My first question: I have a web log where the daily entries are stored as serialized object files (to disk). I need to add attributes to the objects that are serialized to disk. At the same time, I need to
  1. Make the change to the running server - i.e., Not take the server down
  2. Not modify any of the existing serialized object files as part of the change
In VisualWorks, I have actually done this - the files are BOSS files, and you can add code to any object that allows for schema migration of existing objects. I last did this when I added pingback and trackback support to the blog - and most of the data files are still in the older format, as they haven't been resaved in the newer format. I'll be curious to see how a Java solution to that works out.

 Share Tweet This

general

Laptops - possible security flaw

January 27, 2003 8:03:59.160

Picked this thought up today.

But there is one SQL Server box that I almost forgot about: my laptop. I tend to connect to all sorts of foreign networks with my laptop. Had I done so with an unpatched SQL Server running on my laptop, I would have brought the Slammer worm back home behind my ISA server firewall. Then all hell would have broken loose. So the lesson here is: beware of laptops. They can easily subvert the security provided by your network's perimeter defenses. And make sure you patch ALL SQL servers regardless of whether they are behind your firewall or not!
Yeah, I run mine all over too. I should be more careful....

 Share Tweet This

development

Prototype in ST First?

January 27, 2003 8:16:48.001

I've seen this idea in cls recently, and now in this article on O'Reilley: Prototype in (Smalltalk, Python), then build in Java.

I like programming problems where you think, "There has to be something really interesting over there, but I can't see it clearly." All you can do is move one step over there, with a small bit of code, and start exploring to see it more clearly. And maybe it actually wasn't there, it was over here. Or it had a different shape than you thought initially. Maybe it wasn't interesting at all, and you didn't waste a lot of time. The danger of planning is that you plan for the contingencies you know about, but by definition you don't plan for things you don't know you'll encounter. So when you do encounter an unexpected event in your programming endeavor, you have to fix many interfaces and change multiple method signatures. If you've already committed to your original plan and that's no longer where you're going, then you have a problem. I'm not particularly worried by the fact that people say you can prototype more easily in Python, but eventually the Java version makes it easier to build a robust large system. You can prototype in Python. Once you've explored the space more, you can do the planning and design that the Java version requires. If you start writing in Java knowing as little as you did when you started writing the Python version, you'll waste way more time exploring than actually building the system you'll eventually build.
Here's a hot tip - just build the system in Smalltalk or Python. If you skip the (unproductive) porting step, how much further along would you be?

 Share Tweet This

blog

Reworked the blog presentation...

January 27, 2003 13:34:34.997

I spent some time this morning fighting HTML tables...... After I pulled out what little hair I have left, I got rid of the table I was using for the main view (the entries). I now just have the links and blogroll at the bottom, and a link to it (and back from it). This should make the display cleaner in most browsers....

 Share Tweet This

smalltalk

All of us evangelizing Smalltalk...

January 27, 2003 14:42:47.388

Would do well to read this article on VHS vs. Betamax.

VHS won because "the whole product" did what people wanted at a price they were willing to pay. And when people use the VHS vs. Beta analogy, they are not indicating a market failure but their own ignorance.
Definitely worth pondering

 Share Tweet This

security

File under "Whoops!"

January 27, 2003 20:46:13.023

Looks like Microsoft doesn't always take its own medicine:

Microsoft's policy of relying on software patches to fix major security flaws was questioned Monday after a series of internal e-mails revealed that the software giant's own network wasn't immune from a worm that struck the Internet last weekend. The messages seen by CNET News.com portray a company struggling with a massive infection by the SQL Slammer worm, which inundated many corporate networks Saturday with steady streams of data that downed Internet connections and clogged bandwidth. "All apps and services are potentially affected and performance is sporadic at best," Mike Carlson, director of data center operations for Microsoft's Information Technology Group, stated in an e-mail sent at 8:04 a.m. PST Saturday to other members of Microsoft's operations groups. "The network is essentially flooded with traffic, making it difficult to gather details concerning the impact."
Well, there's some rich irony for you. The exploited flaw is a year old - and even MS' internal IT group had not patched the various SQL Server db's they run. Oops.

 Share Tweet This

development

Hosting the CLR or the JVM?

January 27, 2003 21:43:29.821

I saw this interesting post, which I'm extracting in its entirety:

Cameron Purdy wrote,
So I saw this interesting blog entry. The interesting thing with .NET is that you can actually run the JVM inside the .NET process and use a product like JNBridge to semi-transparently access the one from the other. The best of the Java world easily available in .NET, sans the web services overhead. Could that mean software-level peer-to-peer clustering for .NET? (Heh.) Stay tuned.
It goes the other way, too. The CLR can be hosted from a process started by the Java bootstrapper, just as well. For example, I've got some JNI code called from a webapp that loads the CLR and calls into the ASP.NET runtime. At this point, all I'd need to do is (a) build the appropriate HttpRequest class in .NET that knows how to extract the HTTP request data from the servlet HttpServletRequest and HttpServletResponse objects (as well as a few associated others), and (b) set up the webapp to map .aspx, .ashx, .asmx and a few other extension types to a servlet that does this call-transition, and lo and behold, we have ASP.NET running behind a Tomcat front-end. Depending on how the bindings take shape, you could conceivably have shared session state between both environments, all running in-process. The fact that both environments have a well-documented interface for hosting their respective managed environments and that both environments run entirely in-process is what makes this possible. (About the only thing left, then, is to bind in the Python runtime and we've got just about every language in use today covered. Of course, that process will consume about 100,000 megs of physical memory, but hey, memory's cheap, right? :-) )
So that gets me thinking.... What about from VisualWorks? I take the above stuff as glossing over the difficulties and making it sound too easy, but still....

 Share Tweet This

analysts

Analysts blogging now?

January 28, 2003 9:32:14.092

This is interesting - Jupiter Research has some of their analysts blogging now. If this is a trend, it's likely a good one - the more feedback people looking at the industry get, the better. I think Jupiter is doing the right thing here!

 Share Tweet This

smalltalk

Smalltalk Solutions

January 28, 2003 16:35:19.808

I guess I'm going to give a talk on the Web log at Smalltalk Solutions. This whole blog started as a way for me to express opinions and rant in public ;-) Over time, it got a lot more complex than that - the whole web log could be taken as an exercise in scope creep - the addition of an RSS Feed, comments, a comment RSS Feed, support for Trackback and Pingback - it's gotten a lot like normal projects. Next up, I'll have to go fill out the abstract....

 Share Tweet This

java

The "Java Impossible" Talk

January 29, 2003 0:09:06.910

I drove down to Rockville for the WOAD meeting, where the speaker was giving a talk on things that are "impossible" in Java - and for which he was going to show solutions. First problem: He wanted to show how to emulate the C++ friend feature. This was somewhat amusing to me - here's a language with all these levels of call security, and the first thing we talk about is how to get around it. Anyhow - the solution involved creating an exception object, peering up the stack, taking the name of the calling method's package as a string argument, and then checking whether the calling package was allowed to call in. It was a page of complex code. As opposed to, say, thisContext in VisualWorks. With which one could create arbitray call leve security.... Ok, then we went on to Design by Contract. What he wanted here was to be able to create an object, and ensure that the object created was valid - i.e., that the object is in a valid state after the multi-part constructor was called. This involved the creation of a lightweight transaction framework. The transaction framework involved caching a copy of the object for rollback, and custom copying code. As opposed to, say - block closures, ensure: and become:. The solution wandered along for 8 pages, most of it code. I was kind of stunned, actually. This is how Java developers look to solve these problems? Last, he brought up a lock question - a desire to have what amounts to a timed semaphore. I've seen such creations in Smalltalk. His assertion was that it's not possible in Java. At the end of all this, it just seemed like everything in Java took so much work. The interesting thing was, lots of the people I spoke to are using Java at work, but actually interested in Python, or Ruby, or Zope. I handed out a number of NC CD's. I got the distinct impression that this group uses Java, but has no great love of it....

 Share Tweet This

news

Sale! Sale!

January 29, 2003 10:25:52.553

First there was the town for sale. Now, ebay is selling an IT staff:

Complete staff of ZDNet Tech Update, formerly a vital division of one of the top ten highest-trafficked sites on the Web, currently available to instantly implement professional Web site or print magazine. (...) Resumes available to highest bidder. Bidders should be prepared to make a total annual commitment for salary and benefits in the high six figures. Sellers will also consider contract work. Please e-mail any questions before bidding.
Whoa. I'm waiting for the first country to be sold on ebay. Picked up via Reflective Surface

 Share Tweet This

itNews

Another Linux Adoption

January 29, 2003 11:01:19.301

Looks like my Linux Replacing Unix theory is getting traction. During Linux World, IBM announced that Unilever was adopting Linux. Unilever has been and HPUX and AIX shop, according to ComputerWorld (who did not provide an electronic version of their cover story...). Looks like the Unix vendors are shifting to Linux - HP and IBM figured this out awhile ago. Sun has a different problem, since the bulk of their revenue comes from their proprietary hardware - and IMHO, there are fewer and fewer reasons to consider buying Sparc and Solaris instead of intel and Linux. It's going to be an interesting next couple of years for them.

 Share Tweet This

general

Smalltalk Tolkien ref of the day

January 29, 2003 12:56:35.679

From Travis Griggs via the Smalltalk IRC:

Three types for the Lispy-things up there so high. Seven for the Fortran in their days bygone. Nine for the Algol ones, doomed to try. Just One Type for the Code Lord all alone, in the land of Smalltalk where the messages fly.

One Type to rule them all, One Type to find them, One Type to bring them all and so enlightened bind them.

 Share Tweet This

java

Sun says - we are doomed, doomed...

January 29, 2003 13:17:18.470

Sun says here that Java's survival depends on the injunction forcing MS to ship Java:

In a court filing, Sun Microsystems claims that a federal judge's order to include its Java programming language in Microsoft's is imperative to prevent Java from extinction.
It's nice to see Sun taking responsibility for their own success instead of gaming the court system. Oh, wait....

 Share Tweet This

general

Google Toolbar for the Browser

January 29, 2003 17:44:50.334

Maybe I'm the last person to notice this, but the Google Toolbar is pretty cool! Steve Waring referenced it on his blog, and it's a neat thing to have installed. Highly recommended.

 Share Tweet This

development

Building Large Projects

January 29, 2003 20:12:45.636

How many of us have seen large projects crash and burn? How many have seen them turn into Death Marches? I would guess that most of us have. Dewayne Mikkelson writes about this on his weblog:

This is really frustrating. True, but frustrating. I've got alot of thoughts about why this is true. Most of them break down when I start trying to draw parallels to very large construction and other engineering projects (avionics, etc.) Perhaps the fundamentally abstract nature of what we're doing removes the ability to "rely" on lower level component results. (i.e. when a die is milled you can test whether its shape, size, and material strengths are within acceptable tolerances.) Is there even an analog in software? Are there just unknowns at even the smallest component level that "prevent" us from architecting aggregate systems without exponentially reducing reliability? Are these issues Architectural? Design? or do they have to do with the nuts & bolts code-monkey work? Of course it's at the very least a combination of the three. But it SHOULD be possible to design reliability criteria that we can blast a component with and see if it holds up.
IIRC, This is the exact problem that Agile Methods and XP are solving. Write Unit tests, all the time, every time. Make sure that the bar is green, all the time, every time. Too many of us (myself included) simply don't do this. We then have constant small problems on our own projects. These become large problems on medium sized projects, and become absolute killers on large projects. This is where, IMNSO, death marches come from - problems crop up all the time, and it takes huge amounts of extra work to crawl past the problems.

 Share Tweet This

development

Words of Wisdom on Comments

January 29, 2003 20:17:12.089

Travis Griggs came up with a fascinating summary of the inherent problems with reliance on comments:

In reality, I'm not so much against the idea of class extension comments, as the percolating push to "comment more". Comments lie. Code doesn't. Good comments are really helpful, and usually very hard to find amongst all the others. I haven't noticed that encouraing programmers to use more hooks to comment stuff improves the situation.
That's brilliant, actually - Comments lie. Code doesn't

 Share Tweet This

news

Ebay Auction of staff pulled

January 29, 2003 21:40:46.830

This morning I pointed out an odd ebay sale. Now the Register is reporting that it's been pulled - and that it might have been a hoax:

A spokesperson for Ebay told us that the listing fell foul of a technicality. "We do advertise professional services," he told us. "But the reason we removed it was that it contained wording that made it appear that there was a price to be determined. It appeared that winning bidder would have to determine what the individual would be paid." Gallows humor from insiders, or a prank? The debt-laden tech behemoth, which had run up $2.4 billion in accumulated deficits last fall, employs 1,500 staff and laid off five per cent of its workers a fortnight ago.
It was amusing while it lasted...

 Share Tweet This

general

Busy today...

January 30, 2003 11:40:36.079

I'm building client tools for posting to the blog, and for editing existing items already posted. On top of that, I will be teaching a Smalltalk class - I use Squeak with 8-10 year olds. They have a blast, and there's no way I could get anywhere using something like Java with this age group. So posting will be light until later on...

 Share Tweet This

blog

Progress on the client tools...

January 30, 2003 15:01:53.633

I've been working on client tools for the blog - I want the ability to edit the existing entries, and to post new ones, from a client GUI. I've made fairly decent progress on that front, but I'm not quite done yet. Later tonight the first post from a VW client (instead of straight from the browser) should show up.

 Share Tweet This

smalltalk

Smalltalk in Ottawa - Feb 3

January 30, 2003 17:39:25.583

If you'll be in Ottawa Feb 3rd, come see Martin Kobetic talk about security and cryptography in VW.

This talk will introduce some basic cryptographic algorithms and techniques that are available in the VW Security library and then show how these are used in SSL to achieve various security objectives. The session should conclude with demonstration of the VW SSL implementation and it's application in VW HTTPS support. The meeting will be held in Room 5115, Herzberg Laboratories (building 13 on the map at http://www.carleton.ca/cu/campus/map.htm). Pay-parking is available in Lot 1, 2, and parking meters can be found along University Drive. Free parking is available across Bronson Avenue opposite Lot 5.
Enjoy!

 Share Tweet This

general

Fragility...

January 30, 2003 23:28:17.667

A few days ago, I saw this post over on Reflective Surface. This evening, there was a horrible accident right across the street from me. I didn't see it, but I heard it. Some guy came down the street very fast - a witness called it close to 100 mph. He took out the mailbox (serving 10 houses), a number of small trees, and landed in the neighbor's garden. The neighbor was lucky he didn't land in the living room - we was apparently airborne on the way to the garden. I ran out as soon as I heard the commotion, phone in hand. At least three other people had already called 911, so I went over and helped get the injured guy out of the car - it was starting to catch fire. The homeowner put the fire out, and then someone got blankets for the injured guy. He was in shock - he had no idea where he was, or how he had gotten there. The police and ambulance arrived very quickly, and got things under control. It certainly got me thinking - the way that car came down the street, it could easily have landed in my house. Other than the driver, no one was hurt, which was very fortunate, all things considered. Mail delivery will be a pain, but that's a small price...

 Share Tweet This

BottomFeeder

BottomFeeder developments

January 31, 2003 2:14:47.908

I've posted a new dev build up - there are some more bug fixes (still shaking out from the save file format change), and a change to slim mode. Slim mode no longer has a menu - it instead has a small toolbar with three menu options - toggle online status, toggle slim mode status, and quit. The builds are getting more stable - we should be ready for a release soon.

 Share Tweet This

development

Wikis and REST

January 31, 2003 9:51:43.917

Steve Waring is worried about Wikis and REST:

From: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1 Safe: "... the convention has been established that the GET and HEAD methods SHOULD NOT have the significance of taking an action other than retrieval ..." Idempotent: " ... the side-effects of N > 0 identical requests is the same as for a single request. The methods GET, HEAD, PUT and DELETE share this property ..." Dolphin Wiki The Dolphin wiki provides links for the user to change the state of the Wiki, for example; "Delete this page". These links cause the Browser to make a GET request. The most obvious problem that results from this is the badly behaved spiders that turn up every couple of months, ignore the robots file, and do a "wiki-wipe". The spiders are at fault for ignoring the robots file, however they are not at fault for the way they follow the links, as they can expect GET requests to be both safe and idempotent.
I don't think the VW Wiki suffers from this (although other things, like the URL construction metaphor, are problematic). However, it's not as if I've looked that deeply into the Wiki code either. I suspect that this problem will only get larger as time goes by - Trackback started out as a GET interface. Perhaps this is why it changed to a POST...

 Share Tweet This

blog

Blogs and actual work

January 31, 2003 9:58:12.859

Here's an interesting article on CNET about blogs and their utility for getting the word out. Hey, I thought I was just pontificating!

Web logs (commonly known as "blogs"), message boards and other online forums are becoming increasingly important vehicles for developers to attract customers--and development talent--well before an application even enters the beta stage. Mitch Kapor, founder of software pioneer Lotus and creator of its breakthrough 1-2-3 spreadsheet program, started a development blog early on in his quest to build a smarter personal information manager. He said the blog has been a vital conduit for him to communicate with users about the project and to solicit their ideas. "Some of the world's smartest software people are interested in this project and communicating with me," Kapor said. "The more open feedback there is, the better we can incorporate those ideas into the product."
While I'm sure my readership is smaller than Mitch's, I do get good feedback from this forum - both in email and comments. Keep the cards and letters coming, as the saying goes...

 Share Tweet This

smalltalk

Smalltalk in NYC - Februray

January 31, 2003 10:15:37.291

The NYC Smalltalk User's Group is as active as usual:

Feb 3rd, Introduction to Smalltalk emphasizing on: Writing Sunits and collection api The fundamentals of Smalltalk can be easily taught in less than an hour. We will help install a Smalltalk IDE for those guests that bring their laptops. This will be a hands-on presentation with emphasis on the creation of Sunits and review of the collection api. Date: Feb 3rd
Location: NYPC Offices at the New Yorker Hotel, 15th Floor
Time: 6:00pm to 7:00pm
Directions: take E or C to 34th (Penn Station), get off at 34th & 8th RSVP is requested. Please send mail to: charles@ocit.com with subject line of: NYC Smalltalk Feb 3rd

 Share Tweet This

smalltalk

Smalltalk in NY - More in February!

January 31, 2003 10:20:00.061

The NY Smalltalk User's Group has more cool events coming:

Feb 19th, Main Event: Eclipsing Eclipse Eclipsing Eclipse We will present a compelling case which will argue that the VisualWorks 7 IDE may very well eclipse Eclipse. The argument will be based on the following comparison points: Extensibility Refactoring Support for XP Immediacy Ease of use Responsiveness Community support The presentation will include review of the Refactory Browser, Sunit integration, the new StarBrowser and its powerful classifications and other conveniences. Date: February 19 Location: Suite LLC offices Address: 440 9th Avenue, 8th Floor Time: 6:30pm to 7:00pm Open House Main Event: 7:00to 8:30 pm Directions: Take E or C train to 34th (Penn Station) walk to corner of 34th and 8th. Walk up one block to 9th. RSVP is requested. Please send mail to: charles@ocit.com with subject line of: NYC Smalltalk February 19. Our meetings are opened to the general public. Invite a friend! To join our mailing list simply send mail to: nycsmalltalk-subscribe@yahoogroups.com Any questions send mail to: charles@ocit.com

 Share Tweet This

general

24x7 workday...

January 31, 2003 11:17:54.661

Mark Pilgrim writes that he works too much. I can definitely identify with this:

I used to have a home life; now I have a home office. I used to come home from work and bitch about it for twenty minutes and get it out of my system and have the rest of the night for myself. I used to punch a clock. I didn't make anything, I didn't produce anything, I didn't write anything, I just punched a clock and when I was done I was done and I went home or out or somewhere else, anywhere else, because it was after work and that's what you did after work. Now there is no after work, there is no before work, there is no work day, no office, no clock. There is only one long continuous 24-hour day that is always work, always office, and I never punch in and I never punch out
Yes, a home office is a mixed blessing. No travel or commute, but work is always right there - it is so easy to just do one more small thing - and based on the people I see on the IRC Channel at odd hours, I am hardly the only one doing just one more thing late at night. I think I worked less when I traveled, to be honest.... Hat tip to Matt Croyden

 Share Tweet This

blog

Client Side Posting

January 31, 2003 15:37:03.791

After some fits and starts, I have client side posting and update capability - the data extraction from the POST was different in my test env (TinyHTTP) than in the server (CGI-Relay and Apache connected to VW). After compensating for that, it all seems to be working nicely.

 Share Tweet This

BottomFeeder

Client Tools and BottomFeeder

January 31, 2003 22:05:08.863

Now this is cool! After tweaking the blog client tools package to minimize its reliance on other packages, I modified BottomFeeder to allow plugin loading. Bf now looks for plugin parcels, which use a simple API to add themselves to the Bf menubar. I'm posting this from the client blog tool, started from BottomFeeder as a plugin. Very cool, and something that can be updated separately. If I can get the Typeless folks to package up the IRC tool as a loadable parcel, that could be added as well.

 Share Tweet This

BottomFeeder

BottomFeeder new DEV Build up

January 31, 2003 22:32:56.206

I just posted on the client tools and BottomFeeder integration through plugins - now I've got the new dev build posted. In slim mode, the menubar disappears, so as to allow for smaller shrinking. The 2.7 release is getting closer....

 Share Tweet This

smalltalk

Games in VW

February 1, 2003 1:13:13.927

For those wondering whether it's possible to create games in Smalltalk, have a look here:

The objective of this game is to control the flow of traffic in an "insect" city. The size of the city to control is approximately 5 by 5 squares. The city has streets, and the streets are either one way or two way. The streets can have any orientation.

Different kind of insects move along the streets. Each insect has a different shape and speed. There could be up to approximately one hundred insects at a given time. Traffic lights are at each intersection of two streets, and the bugs can only get across an intersection if the traffic light is green.

The insects get into the city and travel around for a while following some path, and then they get out of the city. The player scores one point when each bug gets out of the city. If the player gets X points, he wins this level and advances to the following one which consists of a more difficult city with heavier traffic and more traffic lights to control.

If one traffic light stays in red for too long, it is likely that a long line of bugs will be waiting until the light switches to green. If the line gets too long, some insects will be not able to get into the city. The reason for this is that the line will end outside the borders of the screen. When this happens the player gets 1 penalty point. The game ends when the player gets N penalty points. What the player does is control the traffic lights, switching each of them from red to green and vice versa. In the easiest levels a good strategy is to have the traffic lights synchronized among parallel streets. This strategy could not be so good in more advanced levels with a more complicated city topology.

Looks cool!

 Share Tweet This

news

What a horrible way to wake up

February 1, 2003 12:32:11.772

I get up with thoughts no more complex than "coffee". My wife flips on the TV, and there it is - the shuttle Columbia apparently disintegrated on re-entry. It's a sign of the times that we live in that my first thoughts were whoa - sabotage. But that's probably not the case. Seven good people dead, and at the moment, no one knows why. With the size of the pieces being recovered, who knows if we'll ever figure it out.

 Share Tweet This

development

Prototyping and Refactoring

February 1, 2003 12:41:05.729

While trying not to think about Columbia this morning, I came across This post from Ted Leung:

I've noticed something since I've started using Eclipse -- I tend to refactor my code a lot as I understand it. Eclipse's refactoring tools take out a fair amount of the pain associated with using a language like Java for prototyping. As I've started to play with Python, I find myself reliving some of my Lisp experience at MIT. I find the Python code to be very succint and easy to read -- I find that I don't mind the use of space / indentation as syntax. Since I indented my lisp code all over, so I find that I am not noticing this at all. The notation that python provides for lists and maps is one of the things that is making me very productive. The combination of list comprehensions and slice notation is very powerful and makes programs shorter. These two notions are things that Java could benefit from, but there's almost no chance that we'll see them, because Sun is so committed to not evolving Java the language. If Java had macros, we could implement some of this stuff nicely.

I guess the tools in Java are getting decent enough that developers there are starting to see how productive they could be, if only....

Things like Python and Ruby are starting to open a lot of eyes. Now what we need is to start getting some of those eyes to take a look at Smalltalk - a lot of what they are yearning for already exists...

 Share Tweet This

BottomFeeder

BottomFeeder plugins

February 1, 2003 13:36:42.959

Now this is cool. Michael Lucas-Smith published a version of Typeless (A VW IRC Client) in a single bundle, with a post load action integrating with BottomFeeder's new plugin capability. So now I'm posting to my blog from BottomFeeder, and hanging out in the IRC with the new plugin. This is really cool! Rich Demers (the guy doing doc for BottomFeeder) has been talking about making it a network hub - it's starting to approach that now!

 Share Tweet This

community

Why Smalltalk gets a facelift

February 1, 2003 16:05:19.805

Why Smalltalk has gotten a facelift - go check it out!

 Share Tweet This

BottomFeeder

Changed the Bf Plugin API

February 1, 2003 17:15:38.880

After talking to Michael Lucas-Smith on the IRC, we decided that my simple plugin interface was - too simple. The menu picks generated were the class name, and that really wasn't what anyone would want. So I changed the API to be more flexible. Now, plugin parcels should have a postload action that uses this kind of code:

#{RSS.RSSFeedViewer} ifDefinedDo: [[:cls |
	cls
		registerPluginClass: SomeClass
		startupMessage: startupMethodName
		label: labelString].

This makes it a bit easier for anyone wanting to add a plugin.

 Share Tweet This

development

Runtime and plugins

February 2, 2003 11:13:39.934

So I have plugins working for BottomFeeder, and a reasonable API for them. Last night, I added an XML manifest file to the server, so that plugins could be detected at runtime, and downloaded.

This is cool, but it raises an issue in my mind. Sure, Parcels in VW can be loaded over top of themselves. However, I've seen problems when the changes are significant enough - and it's quite possible that the end user could be using a plugin and download a new version while the thing is loaded and in use. What I decided on for now was the safest route - if the user has the plugin in question loaded, then the code will download, but not load. the user will be warned by a dialog that the new code has been installed, but will not be loaded until BottomFeeder is restarted.

I guess my question is, does this seem reasonable?

 Share Tweet This

development

Iterating towards the right answer...

February 2, 2003 15:03:43.139

Catching up on feeds, I spot this post over at Gordon's web log:

Dare has a new post on shortcomings in the XSD type system. Write the paper, Dare, I'd love to read it. Dare made the point that XSD doesn't map well into OO type systems without adding AOP; for instance, when mapping simple type facets. I'm not sure that this is necessarily a disadvantage, I think that it's just exposing the reality that OO type systems are a poor fit for a lot of real world data. When mapping that data into OO, you have the choice of either loosely typing the data, using AOP techniques, or working up a clumsy mapping in OO. I've seen and done all 3, long before XSD and before I ever started using XML. The same goes for impedance mismatches between XSD and Relational data; people have struggled with OO-Relational mappings for even longer than XSD-Relational. It doesn't help that some people insist that XML is the best and only form to store data, when they're just making work for themselves. At the end of the day, property files, INI files, relational databases, and whatever else still have their place. I'm interested in understanding the difficulties in performing those mappings, but I'm not ready to reject XSD out of hand.

So now just take the next logical step - reject manifest typing. IMHO, the world is starting to see the inherent lack of scalability in manifest type systems - they tend to be too rigid. What you really need is dynamic typing - possibly with type inferencing.

 Share Tweet This

smalltalk

New Smalltalker Blog

February 2, 2003 16:02:30.448

Go visit this new blog - hat tip to Steve Waring for pointing out Jerry's new blog. Welcome!

 Share Tweet This

blog

You may have noticed

February 2, 2003 18:19:02.414

That there was a problem with my comments feed. The ID I was attaching to the link for lookup belonged to the comment, not to the owning post. With the way comments are organized, that wasn't going to work. I've fixed it up now, so you should see working links for all new comments

 Share Tweet This
-->