development
February 5, 2003 18:54:13.655
Here's a useful tip on using Apache without setting up any relays:
First, make sure that you build apache with proxy enabled (./configure --enable-proxy, for example). Then, add the following to your httpd.conf file. Modify the host name and URLs appropriately. Be sure to restart apache if you didn't already. Now, configure a TinyHttpServer (not an IPWebListener!) on the appropriate port (8008, in my example) and start it up. You should be able to reach your configure site by hitting apache with /configure/ as a path (note that the trailing slash is required).
When it's time to deploy you can look at further restricting who can access the /configure/ site as well as mapping urls like /shopping to /shopping/ (to avoid the problem of forgetting the trailing slash). mod-rewrite is good for this...
Read the whole thing
Share
BottomFeeder
February 5, 2003 13:40:58.804
I got a bug report from our Doc guy, Richer Demers this morning. It was related to Twoflower - printing was failing. Since Twoflower is embedded in BottomFeeder, I decided to have a look.
Two things needed to be done:
- Take account of what platform Bf starts on, and set the printing options accordingly at startip
- Make sure that Twoflower uses the appropriate printer object based on the platform
The code had been (inadvertantly) Windows specific, but no longer. While I was in there, I added printer support to BottomFeeder - you can now print the HTML Window from a toolbar button or menu pick. The output could stand some cleanup, but it works.
Share
blog
February 5, 2003 9:18:19.522
Share
development
February 5, 2003 9:13:33.666
Spotted in an email:
Having seen a great degree of programmer burn-out on 1.0, we have analysed the reasons for the same, and have concluded that the technology employed (Visual C ) was one of the major factors. We then started looking for alternatives. Cincom Smalltalk is one of the candidates that we are evaluating. My technical team is trying to implement a reference application using all the candidate technologies, for comparisons and metrics.
Come on in, the waters fine over here!
Share
development
February 5, 2003 0:27:54.530
I read Sam Gentile's Web log on a regular basis, and usually enjoy his point of view. So I was really happy to see this post on his blog:
My work lately led me quite naturally to the seminal book, Generative Programming: Methods, Tools, and Applications. I read most of the book yesterday in one sitting (yikes!) and although I found much of it tough going, I want to share one key insight I got. I have always had a lot of trouble understanding the Smalltalk argument as put forth on places like Wiki when I used to be there and indeed the real advantage of late binding languages. I always viewed the safety of static type checking as a given. Well, in Chapter 6 on Generic Programming, in the area of Overloading and Parametric versus Subtype Polymorphism, is the example that lays it bare before my eyes and makes me see it.
Go read the whole thing to see his example. It's always nice to see people understand where the Smalltalk crowd is coming from!
Share
development
February 5, 2003 0:13:27.641
I finally addressed a nasty problem in BottomFeeder. Some feeds - like Joel on Software's feed - use relative urls in the feed.
Now, IMHO, relative urls in a feed are a bug. However, as an aggregator provider, I get to grit my teeth and deal with bugs like this. So I dove into Twoflower code, and found that it had API's for this issue, and we just were not using the right one when setting up the HTML widget.
This would have been easier to deal with if the code we have for dealing with selection changes in the item list wasn't such an un-refactored mess. I haven't fixed that yet, but at least the mess now works. A new dev build is up, and feeds using relative urls should have working links and images now.
Share
BottomFeeder
February 4, 2003 15:14:55.624
I did some more tweaking here and there, and posted a new DEV Build.
I added a few more tags to my RSS Feed as well - each item now has a GUID. The GUID happens to be the timesatmp (in seconds format), which works quite nicely as a unique identifier. For comments, I slap the entry and comment timestamps together, with a colon between them. There are some back end things this simplifies for me....
Share
news
February 4, 2003 9:46:48.406
Here's an interesting story in the Register on Spam filters:
Designed to stop spam, the app has gone censorware-crazy, with MPs complaining that the system is 'stifling political debate'.
Paul Tyler, Lib Dem MP, told the BBC that the email filter is "now blocking parts of the Sexual Offences Bill being sent to parliamentary e-mail addresses. It also blocked a Liberal Democrat consultation paper on Censorship."
There's irony at work there. I don't yet trust spam filters. At my end, it's still easier to just delete them. Better filtering that tossed suspected Spam into a "spam" folder for my perusal would be nice, but this story demostrates the current limits on fully automating that process.....
Share
development
February 4, 2003 9:40:23.541
I've certainly opened a can of worms by adding plugin capability to BottomFeeder. How so? There are two ways:
- Plugins have to conform to whatever idiosyncracies that Bf has. The TypeLess plugin is a good example - it had to be modified to deal with some extensions added by the Aragon goodies. The Aragon goodies are used by Twoflower, which is the HTML presentation tool used by BottomFeeder.
- There's now the whole possible issue of an API. Before I added this capability, BottomFeeder was cheerfully "API Free"
The second point came up in conversation with the guy doing the BottomFeeder User's Guide, Rich Demers. He pointed out in an email that having a plugin API would be more useful if BottomFeeder itself had one. So I suppose one will have to be surfaced over the next few releases.
One thing is for sure - any software that is being used is never a still object - there are always changes.
Share
java
February 4, 2003 8:20:49.950
Things may not always go your way. Sun has invested enormous sums of cash on the various MS suits, with this one being the most critical to them, based on their reactions:
Microsoft received a reprieve on Monday from a court order requiring the company to ship Sun Microsystems' Java software.
The 4th U.S. Circuit Court of Appeals granted Microsoft a stay of a Jan. 21 decision from U.S. District Judge J. Frederick Motz in Baltimore, who gave the company 120 days to begin including Sun's latest Java runtime environment in every copy of Windows and Internet Explorer.
Earlier in the day, Microsoft had said that it would comply with Motz's order by beginning to ship an updated version of Windows XP Service Pack 1 that includes a more current Java Runtime Environment from Sun.
....
In a statement sent to reporters, Sun's vice president of legal affairs Lee Patch said: "We regret the 4th Circuit Court's decision. The preliminary injunctions granted by the district court will benefit consumers and the Java community's developers, enterprises and system vendors."
This is what happens when you bet the ranch on lawyers instead of on business plans - you put your fate in someone else's hands - never a great idea, IMHO. Now imagine how much better off Sun might be had they thrown that money into product development, marketing - anything remotely useful.
Share
development
February 3, 2003 21:43:23.283
I'm catching up on my feeds after a busy day of patching web apps, when I stumble on this entry on Matt Croyden's blog:
Rob Fahrni:
Charles Cook: "After writing a lot of C#, returning to C make me realize how unproductive C is." - This has been my experience as well. I'm looking forward to the day when I can spend most of my time implementing code in C#.
So just take the next step guys, start using Smalltalk, and be amazed that you ever got anything done over there in C-Land. It's progress though - at least the C language folks are slowly getting to see the benefits of a VM and Garbage Collection. Using Java or C# (peas in a pod, really) instead of Smalltalk is like using dull hand tools instead of power tools....
This is so true. It's painful to go back to C after coding for awhile in C#. It's just so easy to do so many things. I'll be spending a good bit of time in C# this semester, and for that, I am quite happy.
Share
general
February 3, 2003 19:07:16.210
Courtesy of Travis Griggs on the IRC Channel:
"So for many, many months I was using my OpenBSD machine thinking "Man oh man this looks like Windows. It even has a Start menu." Everything worked exactly as a Windows machine except for pokey games and the slight lags I'd notice once in a while"
"My dream was shattered when I realized I was just VNC'd to my Windows machine."
Time to step away from the keyboard...
Share
smalltalk
February 3, 2003 10:35:53.303
Hat tip to Alan Knight for spotting the Smalltalk reference in this NYT Article:
Microsoft's Web services technology is tailored for Windows. But the .Net technology is trying to appeal to a wide range of programmers by letting them write in many different computer languages, including Cobol, C++, Perl, Smalltalk, Java and C#, which is Microsoft's answer to Java. By contrast, the middleware of the non-Microsoft camp runs on any operating system, but it is geared toward Java programmers
There's the difference for Smalltalkers in a nutshell, btw. Have a look at the whole article - always good to get a Smalltalk ref in widely respected media.
Share
news
February 3, 2003 8:40:40.537
I've been pondering the shuttle loss. All the media outlets are talking about how long the program will be shut down, and how it will affect the ISS.
That got me thinking about a school trip I chaperoned recently - my daughter's class visited a local History of Flight museum. Back in the early days of flight, there was a ton of experimentation in airplanes. There were a lot of accidents as well, but things iterated towards stable designs pretty quickly. I can't help thinking that if space exploration more closely resembled early aviation - commercial instead of governmental, and lots of experimentation instead of huge monolithic programs, things would be further along.
If incremental design and development works in software, and worked for early aviation, why not for space?
Share
development
February 3, 2003 0:24:54.406
So a few hours ago, I notice that the IRC Plugin to BottomFeeder was having an odd problem - trying to pop up a private chat was causing exceptions. This was not happening if I loaded just TypeLess into an image. Somewhere, there was a protocol override
After some wandering through code, I found a truly ugly override in the Aragon Goodies - look at the code for #selectionIndex in MultiSelectionInList - which should answer a Set.
| s |
^(s := selectionIndexHolder value) isEmpty ifTrue: [[0] ifFalse: [[s detect: [[:i | true]].
this was the cause of my problem. The expected result for that method is a Set - and this returns an Integer! Aragin should have created a new method and used it instead of breaking all client code that relies on this. At this point, regardless of anything else I've ever said, I did want method level namespaces. I was able to work around it, by doing a check in the TypeLess code for the presence of Aragon. Speaking of ugly though, in looking at MultiSelectionInList, I found this Aragon extension:
initialize
| ldm context |
self listHolder: List new asValue.
ldm := Smalltalk at: #LensDataManager ifAbsent: [[^self selectionIndexHolder: Set new asValue].
context := thisContext.
[[context sender notNil and: [[(context receiver isKindOf: ApplicationModel) not]]
whileTrue: [[context := context sender].
(context receiver isKindOf: ldm)
ifTrue: [[self selectionIndexHolder: ((PluggableAdaptor on: Set new asValue)
getBlock: [[:m | m value]
putBlock: [[:m :v | (v isKindOf: Collection)
ifTrue: [[m value: v]
ifFalse: [[m value: (Set with: v)]]
updateBlock: [[:m :a :p | "a == #value"
false])]
ifFalse: [[self selectionIndexHolder: Set new asValue].
Ack! I know what's going on there, but I don't have to like it.... In any case, an updated IRC plugin parcel is on the site.
Share
blog
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
smalltalk
February 2, 2003 16:02:30.448
Share
development
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
development
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
BottomFeeder
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
community
February 1, 2003 16:05:19.805
Share
BottomFeeder
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
development
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
news
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
smalltalk
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
BottomFeeder
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
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
blog
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
general
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
smalltalk
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
smalltalk
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
blog
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
development
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
BottomFeeder
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
general
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
smalltalk
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
blog
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
general
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
news
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
development
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
development
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
general
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
java
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
general
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
itNews
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
news
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
java
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