Here's an all too common story on dealing with customer service people. This poor guy had AOL, but I've had this conversation before (MSN). Not to mention the heck I went through trying to convince Sonic Blue's tech support that yes, in fact, my new replay tv was not functioning properly. I really wonder about this problem. Does the typical Help Desk staffer have a script and a guy with a rifle watching to make sure he doesn't go off message? Sheesh...
Here's an interesting article. The author makes the contention that languages and operating systems are converging:
A couple of months ago, at the Lightweight Languages Workshop 2002, Matthew Flat made a premise in his talk: Operating system and programming language are the same thing (at least "mathematically speaking"). I find this interesting and has a lot of truth in it. Both OS and PL are platforms on which other programs run. Both are virtualizing machines. Both make it easier for people to write applications (by providing API, abtractions, frameworks, etc.) Intro, Isolation, Perl The difference between the two, Matthew continued, is that OS focuses more on non-interference--or isolation between OS processes. The main task of a multiuser OS is to let several users use the computer simultaneously. Thus, it is important that no user can take over the machine or use up its resources permanently. Also, no processes shall be able to terminate other processes, peek into their resources, or do any other things that violate privacy unless it is permitted by the OS security policy. On the other hand, PL focuses on expressiveness and cooperation. PL provides high level constructs and facilities so that one can write programs in less time and with less amount of effort. 10 lines of higher level PL code might be equivalent to 100 to 1000 lines of machine/lower level language code. Additionally, PL provides means for people to share reusable code through the concepts of modules, shared libraries, components, etc. As time progresses, OS'es are becoming more like PL. And vice versa. OS now provides more and more ways for cooperation/sharing: IPC, threads, COM, etc. PL now provides ways to do isolation: sandboxing, processes, etc. However, in all programming languages that I am currently using (Perl, Python, Ruby), none of them had been designed from the ground up to do isolation. Thus, none of the isolation mechanisms really work well.The whole article is worth reading, and there's also a slashdot thread on this. This is interesting for Smalltalkers - after all, Smalltalk started out as an OS...
If you have not yet moved to VW 7, you probably want to get the new 5i.4 engines.
More evidence that I update the blog software frequently - a change to an api I made yesterday broke the comments page. What learned from this is, senders/implementors does not tell you everything once you start slapping code on ssp pages...
Go to Amazon and buy some clothes. Come back later, and you'll find this in the recommendations
Thank goodness for 2 hour delays after light snowfalls here in Maryland - I needed the sleep. It's something to do with baking. What I cannot figure out is why my wife always decides to bake after 11 pm. So off she goes, making something good (I have no complaints about the results), and it gets finished sometime after 1 am. There's always a good excuse - all I know is, it makes for late nights. This works for her - she just stays in bed. I, on the other hand, stumble out of bed, hook up the caffeine IV, and get my daughter ready to catch the bus. So here I am, yawning and catching up on feeds, news and USENET when I stumble on this post on Sam Ruby's web log. I see this:
I've been trying for days to subscribe to Ted Leung's RSS feed using Radio's aggregator. What I have been getting is:Well, I can't resist. I added the feed with no problems to BottomFeeder. I feed better already..."Can't subscribe to the channel. The most likely cure is to check the URL in a web browser and see if you can get it to read the feed. The following message probably won't help you figure out what went wrong, but we include it here because it might. "Assignment over existing table object "s" is not allowed. Delete the object first, or use table.assign to override protection."
Dave took a look at the code tonight, and addressed a number of updating issues. I had created an MNU with some new support I was adding for textinput (part of the RSS standard), and fixed that as well. The build is up.
Simplicity. If your policy is Radio Silence, every employee understands it and can follow it. If your policy is in any way complicated, nobody is sure what to do and things leak. Doesn't advance buzz and publicity help? I don't know. A little, but not as much as nonadvance publicity. I'm inclined to think that publicity that comes out when you can't actually buy the product is 90% wasted. Remember that incredibly big burst of Segway publicity about a year ago" With Jeff Bezos and Steve Jobs talking about how "IT" was going to revolutionize the entire universe? Cities would be reconfigured. OK, so, we all talked about the Segway, but nobody could buy one, so it's not clear that it was publicity well-spent. And it certainly seems like the same amount of publicity would have helped more if it appeared when every Walmart has Segways in stock.I'm going to have to sit back and think about this one...
I stumbled on this post detailing some job troubles related to blogging. I can relate to that; Some of my wilder ravings about industry analysts raised a few eyebrows with my employer. Still, I'm posting on a server owned by my employer, so I have to be more careful.
A few days ago I posted a question as to the utility of trackback/pingback. Well, I just added Trackback capability to the blog. I did that because it's a far simpler mechanism, and didn't require XML-RPC support. I'm looking around - apparently Roger Whitney did some work on this. In the meantime, trackback is operational here. See the bottom of each post for the trackback link.
Gordon Weakliem writes:
Today, I'm wishing for a way to do closures in .NET or Java. I have a bunch of SOAP calls and I'd like to save off, parameters and all, and invoke later, without writing any code, or very much. I've been itching to pick up Python again, but all this is sparked by a need to do some testing, and I've got a deadline. I'll probably end up doing this the hard way.Here's his post Well, look no further than VisualWorks Smalltalk. We have a full SOAP implementation, and Smalltalk, of course, has closures. A neat aside on this is a topic that came up on comp.lang.smalltalk the other day - Cees de Groot wanted to do a demonstration of pushing a Smalltalk process out of a Windows box and then running it - from where it left off - on a different OS. A few messages later, and he had his demo using BOSS (a binary object serializer). That would work ;-)
I spoke at the New York Smalltalk User's Group meeting last night, and gave this presentation. There were 30+ people in attendance, and a lot of conversation - questions came up, and discussion on the points I was discussing flowed freely. Of course, this was a mostly friendly audience - but even so, the conversation was excellent. The point that seemed to resonate most was this:
How to Fail with the Rational Unified Process: Seven Steps to Pain and Suffering Three RUP experts have identified patterns of failure when using RUP and written an excellent paper that elucidates them in depth: Larman, Craig, Kruchten, Philippe el al. How to Fail with the Rational Unified Process: Seven Steps to Pain and Suffering. Valtech Technologies and Rational Software, 2001. In order to ensure absolute misunderstanding and failure in RUP adoption, we provide the following checklist or score sheet. Of course, the more points scored, the more successful the RUP failure. You know you didn't understand the RUP when:And the beauty of it is, he lifted this checklist from the Rational site! Go read the whole post.
We are confident that by ... applying the checklist of misunderstandings, your adoption of the RUP and iterative development will be a spectacular mess.
- You think that inception = requirements; elaboration = design; and construction = implementation.
- You think that the purpose of elaboration is to fully and carefully define models, which are translated into code during construction.
- You think that only prototypes are created in elaboration. In reality, the production-quality core of the risky architectural elements should be programmed in elaboration.
- You try to define most of the requirements before starting design or implementation.
- You try to define most of the design before starting implementation.
- A "long time" is spent doing requirements or design work before programming starts.
- An organization considers that a suitable iteration length is measured in months, rather than weeks.
- You think that the pre-programming phase of UML diagramming and design activities is a time to fully and accurately define designs and models in great detail, and of programming as a simple mechanical translation of these into code.
- You try to plan a project in detail from start to finish, allocating the work to each iteration; you try to speculatively predict all the iterations, and what will happen in each one.
- An organization wants believable plans and estimates for projects before they have entered the elaboration phase.
- An organization thinks that adopting the RUP means to do many of the possible activities and create many documents, and thinks of or experiences the RUP as a formal process with many steps to be followed.
I've just finished the presentation to the NYC STUG, and it started a fascinating conversation. I'll post details later; right now I have to find my way back to the train station!
I am headed off to the NY Smalltalk User's group meeting, NC CD's in hand. Follow this link for details and directions to the meeting.
In fact, the same controversy that happened 10, 15, and 20 years ago in the manufactoring sector. I can't find the original story online (at least not free - this link will lead you to pay options), but here's something I got in email:
A wellspring of resentment is gushing among information technology workers as employers ship more computer jobs overseas - often to India - and bring foreign workers here. The job export, a stunning reversal of the late-90s demand for local IT employees, is raising questions about the industry's future and sending more U.S. workers into a downwardly mobile spiral. Businesses in the Hartford area alone have terminated hundreds of American IT employees and consultants in the past year, under pressure to boost profits and please shareholders. And more layoffs are on the way. Companies such as Aetna, ING Group and CIGNA say that they must find cheaper IT labor to keep their costs down and compete, and that Indian companies offer a well-trained and eager pool of talent. The U.S. employers also like the overnight staffing that stems from the time difference between countries.I remember these stories - about other industries - from the 70's and 80's. Not sure what can be done about it - protectionism rarely works out the way you want it to. For more commentary, I did find a link to some feedback to the original newspaper story
Slashdot has a story on the AMD FAB30 plant in Dresden, Germany. I wonder how many of the readers know that AMD FAB plants run on Smalltalk?
The Loosely Coupled Blog has an interesting post on the transparency of apis. It's done in the context of URI's, and the question he raises is, should a URI be a well defined interface into a site's functionality, or should it be an opaque thing, freeing the site designer's to change the URI namespace at will?
Apparently it's a bad idea if ignorant users like you or I can decipher how a URI works. That is, we shouldn't be allowed to look in the location bar of our browser and be able to see, for example, that http://www.google.com/search?hl=en&q=SOAP is a request to Google to search (/search) in the English language (?hl=en) for the term SOAP (&q=SOAP). According to Tim-Berners Lee, the original creator of the WorldWide Web and still head of its leading standards body, the W3C, that's too transparent. He - along with many other influential figures in the technology world - believes that "a Web application's URI namespace should be opaque," writes Jon Udell this week in his InfoWorld column. The purpose of Berners-Lee's opacity axiom, Jon explains, "was to ensure that a service provider can always reorganize a namespace without fear of breaking clients that depend on that namespace." In other words, Google should be free, for example, to insert new elements in front of the &q= operator (which indeed it often does) - or even to change it to, say, &query= (which to my knowledge it never has) - without having to worry about the potential effect on systems that interact with it. Heaven forbid, after all, that anyone should be able to link to Google's, or Amazon's, or any other provider's URI in ways that the system's designers hadn't originally thought of. That might lead to - horror of horrors - unintended consequences.Go read the whole post - it's worth it. IMHO, transparency in this area is good - the more people there are who can make use of your content, the better.
I posted on this yesterday, and immediately contacted the DC User's group. It looks like they are interested in a presentation! So I'll be doing that sometime in February. Cool!
Until I noticed where it was posted. See the story talking about how Windows might be the most secure OS.
According to a new Aberdeen Group report, open-source solution Linux has surpassed Windows as the most vulnerable OS, contrary to the high-profile press Microsoft's security woes receive. Furthermore, the Aberdeen Group reports that more than 50 percent of all security advisories that CERT issued in the first 10 months of 2002 were for Linux and other open-source software solutions. The report muddles the argument that proprietary software such as Windows is inherently less secure than open solutions. And here's another blow to the status quo: Proprietary UNIX solutions were responsible for just as many security advisories as Linux in the same time period. Could Windows be the most secure mainstream OS available today?The report is from one of the analyst groups, and the site touts Windows. So take it for what it's worth...
Ezboard has well over 10 million registered members and runs on 150 servers .. All Smalltalk.. And the technology improves constantly... We have built some pretty cool stuff using a basic image and BOSS files as our flat file databaseWell, I guess the BOSS file back end for this blog isn't so unreasonable ;-)
I just had an odd bug reported. In BottomFeeder, select an item, and then in the html pane, click a link. Then click the link again. Notice how nothing happens? BottomFeeder uses Twoflower for the html widget. The problem is, the Twoflower machinery keeps track of the page its currently on, and then doesn't submit a request if it's already on the requested page. This is probably ok if you are browsing with Twoflower, but most BottomFeeder users are launching an external browser - in which case, a mystifying nothing is just bad. I've just overridden the code in question, and verified that it works as expected. I'll eventually push a new dev build up.
Here's an idea - XP started out in Smalltalk (on the C3 project, specifically). XP and Agile Methodologies are getting a lot of buzz right now - and there are a growing number of XP user groups around the US and the world. One thing that would help get the word out on Smalltalk is a little pro-active behavior - take a look at the list, and see if there's an XP group near you. Then see if they would be open to a talk on Smalltalk and XP - you could go in and demonstrate the support for XP in Smalltalk - SUnit, the Refactoring Browser, etc. I think we all need to go outside the group more and be proactive. Thoughts?
Resolved: whenever I see someone in the grocery store pick up an Old El Paso Taco Pizza kit, and they seem to be debating the purchase, I will spring forward, knock the box from their hand and shout RUN! POISON GAS STREAMING IN FROM THE JERSEY MARSHES! They will leave the store, and forget all about the Taco Pizza kit. I will have done my part.It's well worth reading the whole thing. This is the same guy who wrote The Gallery of Regrettable Food, a truly funny send up of 50's food.
I changed the way comments show up in the RSS feed - new ones show up with a link back to the original entry. Unfortunately, the relative url (which is used for the posting itself) does not work and play well with the RSS feed. I have a fix, and will be posting it in a few
Smalltalk is the most mature object-oriented language on the market. Most other OO language implementations, ranging from Object COBOL to Java, have drawn inspiration from Smalltalk. (If you're not already familiar with what object-orientation means, see the OO page for a basic tutorial.) One of the distinctive features of Smalltalk (versus, say, Java) is that it does not require type specifications for variables and arguments. If you look at a typical Java or C++ program listing, you'll see that a great deal of space is taken up by type definitions, and related stuff such as casting (which is required, for example, to use Java collection classes). Some people argue that strong typing makes programs more reliable. Most Smalltalkers believe that the visual clutter necessitated by strong typing, and the fact that it complicates the language syntax, more than offset its advantages. In Smalltalk, the programmer just focuses on the semantics of the problem, writes simpler code faster, and has more time left for user feedback and testing.
Charles Monteiro put out this notice for the STUG meeting this Wednesday, January 15th:
This should be a good time, and it sounds like Charles has gotten RSVP's from a fair number of non-Smalltalkers. If you are going to be in NY, stop by and say hi!
Extreme Programming in Smalltalk
James Robertson, Product Manager for Cincom Smalltalk will repeat a recent presentation he gave at an XP conference in Brazil. Extreme Programming was developed in Smalltalk circles , join us and get an insight into why.
Date January 15th Location Suite LLC offices Address 440 9th Avenue, 8th Floor Time - 6:00pm to 6:30 pm Open house Time - 6:30pm to 8:00 pm Main Event
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 Monteiro with subject line of: NYC Smalltalk Jan 15th. Our meetings are opened to the general public. Invite a friend ! To join our mailing list simply send mail to: NYC STUG Any questions send mail to: Charles Monteiro Charles
I can definitely identify with this strip. Scott Adams got that about right...
I've been reading about Trackback and Pingback. The idea is to semi-automate the process whereby a site owner (in particular here, a blogger) gets notified about links to their content. The huh from me comes up due to site logs - what exactly is provided by these things (other than a whole lot of messaging) that you can't already dig out of your server logs? I've built some rough VW tools for parsing logs, and a few minutes in a workspace gets me all the information I could ever want about people referring to the various parts of my site. Gathering this information via the logs chews no additional bandwidth, uses information that's being gathered already, and means very little new code to write. So other than the buzzword bit, what's the point? I don't get it.
Well, it seems that I have egg on my face with this release. Awhile back in the Dev build cycle, I had changed the monolithic save file format to binary (BOSS) from XML. I released 2.6 yesterday, but I had not gone back and tried it out on a 2.5 XML format save file. That's what users are for - to point out how much testing I didn't do :-( I have uploaded a fresh build that fixes the problem - I tested on an XML save file from a user, and on one of my binary save files. All should be well now. My apologies for not catching this before I announced the release. Visit the BottomFeeder Home Page to get it
Have a look at this register story - there's been an attempt to have the DMCA laws prevent third parties from selling replacement inkjet cartridges. Follow the links at the end of the story as well - the DMCA seems to be being stretched in all sorts of directions. For my wife's color HP printer, the cost of two replacement cartridges can be nearly half the original cost of the printer! No wonder the printer vendors want to muscle out the competition...
I've often wondered about the odd pauses IE will sometimes have when browsing. There are times I've had to go so far as to start up a new instance. So I was interested when I stumbled across this post from last December. The author is talking about 5 year old behavior, but I still see those symptoms. I've seen others comment on IE oddness as well - have a look here, for instance. So what gives? Is IE specifically optimized for IIS, or is there something else going on here?
Here's a story about China filtering blogs out.
"Bloggers" from all over China are reporting that they are unable to access their on-line journals or "blogs". Journals hosted at Blogspot.com and other blog providers have joined a growing list of sites blocked by Chinese authorities. An anonymous blogger in Henan Province said, After talking to other Blogspot users all over China it seems that the ban is present throughout the entire country. I know that a lot of people have blogs and that they will not be pleased to see their personal journals taken away for unknown political reasons. . . Initial scans indicate that blogspot.com is being blocked by IP number at the international gateway level.Who knew that all this online blathering would get noticed?
BottomFeeder 2.6 is finally released. Check the main site for download information and the changelog. Enjoy!
This is just too funny:
For three months, staffers at Piqua, Ohio's Flesh Public Library, which is named after the man who donated the land for the library, Leo Flesh, worked on the library's new website. But when the big day came in early December and director James Oda assembled the entire staff to premiere the finished site - www.fleshpublic.lib.oh.us - the library's computer system denied him access. The Internet filtering system used by the library to protect children from pornography had blocked the site because the url contained the words "flesh" and "public." As Oda later told the Dayton Daily News, "We banned ourselves."I found this here
The Family Room TV is over a decade old, and has a bum picture tube. Off we go to find a replacement. We are looking in the 45" and up range. Suggestions?
I prefer verbose logging too. I've been working with WebSphere Application Developer during the last year and I've never used the debugger. However verbose logging - IMHO - should be considered as a form of debugging too. Sure, it's not the boring act of step-by-step stumbling through control structures and loops glaring at a huge set off watches, but instead it focuses on what is important in a certain context (if logging is done properly) and is works much faster, because the result simply stays in the form of a log which one can take all the time needed to examine. An important pro of verbose logging to traditional debugging is that proper log statements preferably combined with assertions which validate the state of an object at runtime also provide very usefull documentation of a program. The remaining contra is extra code slowing down execution, even dramatically depending on the log format (imagine the time needed to format date/time information for each 5 or so lines of code). Comes to my mind the fact that object oriented languages use runtime linkage for virtual methods at great scale. Hence it should be possible to keep two versions of code, one containing debugging code and one that has been cleaned - eg. by a modified class loader for example, whic removes all calls to a classes from a certain package. This should enable switching at runtime from a clean non-logging version to a logging-version, if a certain condition is met. For example during a suspicious error, or simply a flag a user can set at the moment he or she detects a bug. This means that even production versions of software could be equiped with shiploads of logging possibilities having nearly no affection at all to their execution speed.What is it with the C syntax crowd that generates "pride" in not using a debugger? In this case, it seems again to be the huge over-emphasis on early optimization - the code must run as fast as possible, even if we have no metrics on how fast is necessary. So there this guy goes, blinders firmly attached, happily unaware that tools exist that could make him a better developer. In fact, there they are, just beyond his grasp...
I posted a new survey last week - the topic is categorization of code. With the introduction of Namespaces and Store in 5i, a lot of people voiced concern over how code should/could be organized - by namespace, by category, by parcel, by package (etc.). Here's your chance to let us know what you think. Thanks!
A few weeks ago, I stopped using my Linux box as a router and bought a Linksys router. Since then, my wife's XP box has steadfastly refused to see the home LAN. It can ping, and do TCP/IP operations - just none of the Windows networking things. Since my Linux box and my Windows ME (bleah) box still talk, I don't think it't my fault. feel the ease of use...
I have been asked why I slam Sun and Java so much, and pay less attention to Microsoft. Partly, it's due to my low level of trust in anti-trust law in general - i.e., I don't have a lot to say about the monopoly case. On the language/development level, I think there's a big difference. Sun's mantra is all platforms, so long as you use Java. Microsoft's is any language, so long as you use Windows. To me it's clear which is the nearer term risk to anyone who favors Smalltalk. But there's more - read this
The technologists have won a rare victory over the marketeers at Microsoft this week: the latest renaming of the next release of Windows Server 2003 has removed the ".NET" branding that was first attached to the product in June 2001 - the original launch date of Microsoft's .Net strategy. The move is significant because, instead of attempting to push Windows as the default platform for .Net, Microsoft will now promote its flagship server platform as "Microsoft .NET Connected", a badge that third-party vendors will also be able to earn. As the Register's John Lettice explains:Does this make Microsoft all warm and fuzzy? Heck no. I liked the way Alan Knight put it on the IRC Channel the other day - MS, IBM, Sun (et. al.) are like Godzilla rampaging through Tokyo, and the best we can do is try not to get stepped on. They might sometimes knock down a wall in a way that helps us, but it will likely be an accident. In any case, this is why I slam Sun more often - Sun's current efforts, if successful, would be more damaging to Smalltalk than Microsoft's current efforts would be if they succeed."This logo will indicate 'its ability to easily and consistently connect disparate information, systems, and devices to meet customers' people and business needs (regardless of underlying platform or programming language).' That last bit may have some significance - is it perhaps more important that Windows has fallen off .NET than that .NET has fallen off Windows?"Some significance indeed. The move relegates Windows to the status of just another server platform within the .Net Framework, Microsoft's umbrella architecture for web services, confirming that .Net is now more strategically important to Microsoft than Windows. How long before some version of Linux earns the "Microsoft .NET Connected" badge? That day may be closer than anyone expects - I predict it will be in the first half of 2004.