It turns out that there was a problem with the 3.8 builds if they were being installed for the first time. I've fixed that bug - so if you downloaded BottomFeeder and couldn't get it working, try grabbing the stuff I just uploaded. My apologies for this error
One of the improvements I made in BottomFeeder in the last release was in memory consumption - it's lower now. Why is that? The answer gets into the configuration of ObjectMemory. One of the best things you can do is to read the class side comments in class ObjectMemory. In general, VisualWorks divides memory into 7 "zones" that are managed by the VM. The key for this problem lies in the following definition:
NewSpace is used to house newly created objects. It is composed of three sub-spaces: an object-creation space (Eden) and two SurvivorSpaces. When an object is first created, it is placed in Eden. When Eden starts to fill up (i.e., when the number of used bytes in Eden exceeds the scavenge threshold), the scavenger is invoked and those objects housed in Eden and the occupied SurvivorSpace that are still reachable from the system roots are copied to the unoccupied Survivor Space. Thereafter, those objects that survive each scavenge will be shuffled by the scavenger from the occupied SurvivorSpace to the unoccupied one, until such time that the aggregate size of these survivors threatens to make the scavenge pause excessively long (i.e., when the number of used bytes in SurvivorSpace exceeds the tenure threshold), whereupon the scavenger will attempt to speed up subsequent scavenges by moving some of the older surviving objects from NewSpace to OldSpace. We say that such objects are being 'tenured' to OldSpace.
New objects get created in eden, and then bounced to a survivor space. If the survivor spaces get filled too quickly, then objects get tenured into Old Space. Now, Old Space is the only part of Smalltalk memory that grows at runtime - and in garbage collection terms, the scavenger doesn't look to clean it up unless it's in extremis. So... if you create a lot of objects quickly - and don't have enough new space for them - they get tenured. This tends to grow memory that you really don't need. That's exactly what BottomFeeder was doing.
During the update cycle, here's what happens if a site gets queried:
- Fetch the XML source for the page
- Parse the XML Source into an XML document
- Convert the XML document into a feed object with items
- Process the items against what we already have for that feed, adding any new ones to it
That's repeated for each feed that gets updated. That's a lot of new objects, particularly if you have threaded updates on. In 3.7 and prior releases, New Space was too small - so lots of the transient objects (the XML document, the raw page source, etc) were being tenured as new space filled. With 3.8, I made sure that New Space is bigger. This had a big impact - I subscribe to 295 feeds, and it means that Bf now consumes 25MB less than it used to - and all just by looking at how my application used memory.
There can be big wins here for any application - both in footprint and performance. Have a look at the documentation for class ObjectMemory, and do some experimenting with the method #sizesAtStartup:
Q: "In recent years, there's been a lot of people clamoring to reform and restrict intellectual-property rights. It started out with just a few people, but now there are a bunch of advocates saying, 'We've got to look at patents, we've got to look at copyrights.' What's driving this, and do you think intellectual-property laws need to be reformed?
A: "No, I'd say that of the world's economies, there's more that believe in intellectual property today than ever. There are fewer communists in the world today than there were. There are some new modern-day sort of communists who want to get rid of the incentive for musicians and moviemakers and software makers under various guises. They don't think that those incentives should exist.
That's throwing a bone over to the RIAA and MPAA folks who want to make the very notion of P2P illegal. Microsoft has an entirely different problem with Open Source, and I think I outlined the shape of that problem here. I guess Gates wants big allies for this fight, and the music/movie industry has lots of dollars to throw around.
There's a scary connect the dots thing here:
"Intel has a new line of chips with DRM built in. This appears to be the very first DRM-enabled chip to hit the streets. This microprocessor is unlike others available, because the user doesn't have complete control over the thing, and your computer can (theoretically) betray you. For a while now, there have been computers (IBM ThinkPad) that won't boot unless you give the password, but you could always rip out the hard drive and read it, right? With this chip, the keys and RAM are on the chip, and the flash is encrypted, so this really looks locked up tight.
That's Hollywood's wet dream right there, and it sounds like Gates is willing to sign on - in order to get allies in his fight against Open Source.
The submission deadline for Smalltalk Solutions is in less than two weeks! All submissions should be received by January 15, 2005.
Smalltalk Solutions is a premiere venue for Smalltalk enthusiasts, researchers, and professionals to meet and exchange ideas. We are currently accepting proposals for all varieties of talks involving Smalltalk technology and other areas of interest to Smalltalkers. We're looking forward to an excellent conference, and need your participation to maintain the high technical level of the conference!
This year's conference will take place in Orlando, Florida, June 27-29 2005. Presentations may be in the form of:
- Technical Presentations
- Experience Reports
- Technology Demonstrations
- Half-day Tutorials
In addition to the normal tracks, this years conference will feature a business track-including presentations with a greater emphasis on business than on pure technology.
Proposals should be submitted by email to Alan Knight at firstname.lastname@example.org and should include the following information:
- Contact Information
- Type of Presentation
- Title of Presentation
- Brief Abstract
- Short Biography of the Presenter(s)
- Desired Length
- Any constraints on date/time
- Any other information of importance in evaluating the proposal
Submissions should be received by January 15, 2005. Note that submissions with incomplete information may be rejected - particularly if bio or abstract information is missing.
See you there!
But, here's what I really want: A Tablet PC on my coffee table that is hooked up via either BlueTooth, WiFi, or infrared to my home entertainment center.
I can't stand choosing programs on my TV. The remote control is just such a bad place for interactivity. A Tablet PC would make so much more sense for choosing shows that you want to record and all that.
Some things that a PC would support very well? Well, Maryam and I travel every two weeks so we need a way to tell our TV -- remotely -- to record shows. Plus I'd love to share recordings with myself when I'm remote and away from the TV. For instance, we were gone for two weeks over Christmas. I would have killed to see West Wing and other shows. My brother-in-law doesn't have a PVR and we were never home during prime time.
And we haven't even gotten into all the futuristic stuff like home-automation systems (I'd like to see a video of everyone who comes to my front door, or be able to turn on and off lights remotely via the Internet). If I have a Media Center hooked up to my TV I'll also be able to move video from my TV onto my SmartPhone (Greg Reinacker, founder of NewsGator, for instance, has the same phone I do and he showed me that he had moved West Wing onto his phone and was able to watch that on the five-hour plane ride across country).
Scoble misses a number of things here, as does Searls. People will happily hook up computers to their TV's - in fact, they already are. What they won't hook up is a PC, or anything that's even vaguely like a PC. TiVos, ReplayTV, the rebranded PVRs being shipped by cable companies? Those are all computers. But unlike a PC, they are single purpose, consumer grade equipment that's easy to use. Do they get infected with viruses? No. If they crash, do you have to intervene? No (yes, I know that you have to call support on occasion. See this post, for example). When people hook something up to their entertainment system, they expect simplicity - plug the cables in, turn it on, and go. The last thing they expect is the madness of the PC. See here for a longer rant on this subject.
Scoble misses something else though - the ease of moving stuff around. He says he wants to be able to move shows from his PVR to his phone. First off, most people won't want to watch TV on a phone. Never mind that though - there's a simpler problem, and part of it is with his boss. The first ReplayTV's that shipped had a feature allowing transmission of content across the internet. It's mostly useless, due to the upstream bandwidth limitations that most of us have - but it was a glimpse of where things could have gone.
No such luck though - the happy folks at the MPAA couldn't pull the sticks out of their posterior lobes fast enough to realize what fair use means, and made sure to shut that avenue down. Now Gates is sucking up to those fools, and making sure that it won't ever be possible unless it's MS equipment all the way down - and even then, the DRM restrictions attached will force you to offer DNA samples into the front of your Media PC before you can do anything - assuming that it hasn't acquired a trojan horse that kills it by then. So Scoble wants a PC attached to his TV so that he can copy content via the net? Go talk to MS' lawyers to see why we can't do that already. If they can break away from their power lunches with the MPAA long enough to be bothered, that is.
I'm headed to California for a set of product planning meetings this week - I'll be out there from Monday to Thursday. This is our regular post-release meeting - we hold one every year at this time. It's always good to see the entire engineering team in one place, and have face to face discussions. There's been a lot of progress on OST and VW, and we expect to do a lot more - I'll be posting regularly while I'm there - if you have pet peeves to bring up, it would be a good idea to pop into the Smalltalk IRC Channel and let me know.
For all you gaming geeks out there, the script below scrapes Dork Tower into a local RSS feed:
| writer content str rest out | contentBlock := [:builder :chunk | | stream base link | base := 'http://archive.gamespy.com/comics/dorktower/'. stream := ReadStream on: chunk. link := stream upTo: $". builder link: base, link. builder title: 'Dork Tower For: ', Core.Date today printString. builder description: '<img src="', (base, link), '">'. builder pubDate: Core.Timestamp now]. out := 'dorkTower.xml' asFilename writeStream. [writer := RSS20_SAXWriter new output: out. writer prolog. writer startRSS. writer startChannel. writer title: 'Dork Tower Feed'. writer link: 'http://archive.gamespy.com/comics/dorktower/'. writer description: 'Dork Tower Feed'. writer pubDate: Core.Timestamp now. writer startItem. writer title: 'Dork Tower For: ', Core.Date today printString. content := 'http://archive.gamespy.com/comics/dorktower/' asURI valueStream contents. str := content readStream. str upToAll: 'images/comics'. rest := str throughAll: '>'. contentBlock value: writer value: rest. writer endItem. writer endChannel. writer endRSS] ensure: [out close].
Sam Gentile has a revelation while learning Python - and I think his explanation of his former bias explains a lot of how people talk past each other on dynamic typing:
VBScript, on the other hand, is a weakly typed language because you can concatenate the string '12' and the integer 3 to get the string '123', and then treat that as the integer 123, all without any explicit conversion. Also, unlike VBScript, Python will not allow you to reference a variable that has never been assigned a value. Then it hit me. I have been (naively) biased against late/dynamically bound languages because of the crap that is VBScript. This is coupled with Everything Is An Object. This is the kind of type system that has flexibility but certain safety at the same time and I can deal with that. It may not mean much to others but it unlocks a huge door for me.
Tim Bray reports that Sun is interested in an oxymoron - binary XML:
There are a lot of people at Sun who are convinced that some sort of binary XML representation is a good idea. I've never been convinced, but they're serious; they've drafted a proposal and are working on getting it standardized; informally it's called the "Fast Infoset" and officially it's "ITU-T Rec. X.891 | ISO/IEC 24824-1". I've been particularly dubious because it's built on ASN.1, which I've had bad experiences with. But those mostly had to do with broken or unavailable software, and that objection may be moot, because as Eduardo Pelegri-Llopart writes, they're shipping an Open Source implementation. Eduardo also tells me they're getting lots of interest from outside of Sun. Hey, as long as whenever someone tells me "I interchange XML" that means they're willing to interchange streams of Unicode characters with angle brackets, I'm OK.
Binary XML... hey, wait a sec - if we wanted efficient data transfer, couldn't we have stayed with, oh I don't know - an existing standard - IIOP maybe? The supposed point of XML is that it's textual. If you're going to lose that, why invent a new protocol? Do the folks at Sun just have way, way too much free time on their hands?
There are already compelling legal uses for file sharing using BitTorrent; for example: distributing Linux ISO images. There is another use that makes all the sense in the world to me: I would watch more network TV if I could watch shows when I wanted. Why don't TV networks submit lower resolution copies WITH COMMERCIALS of their shows as torrents?
The problem is, they don't want to adapt themselves to new technology; they want to outlaw it and maintain the current status quo...
Scoble talks about following conversations through the blogosphere - which is something that technorati is designed to do. As to why you would want to follow conversations this way, I wrote about that here. Scoble puts it this way:
For instance, I Technorati the new General Motors blog and I get to see everyone who links to the GM blog.
Why do that? Well, I find that corporate blogs only give you one side of the story and I wanna find the people who are giving the other side of the story. I also want to figure out if there are blogs on the topics of cars that I should listen to. That's actually how I was reminded about the Autoblog, for instance, which I linked to yesterday.
Thus far, I've found PubSub to be better at this kind of tracking than technorati, but technorati is fast. If you want to track commentary on something, you really have to use a number of tools. Here's what I use:
It's important to find out what people are saying about your product and/or services - a single negative review can spread bad words of mouth in ways that seem to violate the laws of nature - and if you don't notice that, how do you expect to respond to it?
This is very cool - the Library of Congress is putting thousands of Civil War battle maps and diagrams on the net. This is great news for people like me, who are fascinated by that period in American history.
Chris Petrilli points to some hypocrisy at Sun with respect to their upposed championing of Open Source:
The FreeBSD Foundation, funded largely by donations from the devoted community around its open source UNIX operating system, received some bad news shortly before Christmas. Sun Microsystems has announced it is revoking FreeBSD's SCSL license, which permits the project to ship Java support with the OS.
One thing people need to keep in mind is that corporations exist to make money for their shareholders. In that light, Open Source should be seen as a tactic (and a highly successful one at at that) for firms like IBM - they have been making huge piles of service dollars while portraying themselves as "the good guys". The difference between Sun and IBM here is one of marketing acumen; IBM has it, while Sun clearly doesn't. Heck, I consider Microsoft to be refreshingly honest about Open Source - they don't like it, and they don't really make any bones about it. I like that better than the "friend of the people act" I see in IBM's advertising of Linux...
I'm up early (durn timezone changes) and getting ready for our annual Smaltalk planning meeting. There's been a lively discussion on the vwnc mailing list of late, so I'm going in with some good feedback from the community.
Here's a note from Charles Monteiro on the NYC STUG:
Rob Fossella will be speaking about his adventures with XSL and VisualWorks and compare them to a previous implementation of his demo in Java. Also time permitting we will hear stories about his time at Avesta and the various characters he spend time with there.
In February, James Robertson will stop by and give a presentation on VisualWorks 7.3 and Product Roadmap for 2005.
Our meetings are opened to the general public. For more info, please visit:
Apple chief Steve Jobs announced the Mac mini Tuesday at the Macworld trade show. There are two versions of the mini--both without keyboards, monitors or mice--that will be available starting Jan. 22 for $499 and $599.
No monitor or keyboard, but this is a small price point - seems Apple's not conceding the low end.
Jumping into the Wayback machine, we discover that the first Mac rumor involved Smalltalk:
Aug 21 1982, 3:17 am show options
From: RUTG...@sri-unix - Find messages by this author
Date: Sat Aug 21 06:17:06 1982
Local: Sat, Aug 21 1982 6:17 am
Subject: Good rumors
Reply | Reply to Author | Forward | Print | Individual Message | Show original | Report Abuse
From: Ron <FISCHER at RUTGERS>
I have heard from a reliable source that there will be a SmallTalk-80
implementation for the Apple "Lisa." There is however some question
as to whether it will be fast enough. This aside from the problem of
what Xerox will decide to do with SmallTalk as a whole (sell it,
public domain, etc.).
This lends weight to arguments that the "Lisa" will have a fabulous
graphic display. I believe it was mentioned here that it is supposed
to cost about $10k. This is unfortunately becoming a "market price"
for workstations, i.e. personal machine of reasonable power with
Anyone want to expand on the "MacIntosh" rumor, that there will be a
stripped down Lisa built for home use (or at the least be cheaper)?
Please reply to WORKS at RUTGERS also.
If you are interested in GLORP, but don't know where to get started - check out Roger Whitney's tutorial:
It was written for students so it may be a bit too detailed for some. It does cover the basics and should help people avoid some of the problems I had learning Glorp from the unit tests.
I'm wondering if the VW Wiki at UIUC is a spam casualty. It's been offline all day (I fixed a bunch of spam last night). There's one wiki still up on the UIUC site, the Camp Smalltalk Wiki. Hit Recent Changes and scroll down - see how many pages have been changed recently? That's a Wiki that barely gets any traffic or changes; it's all spam vandalism. It's really getting to the point where a few jerks are ruining it for the whole class.
Well well - looks like another search site is supporting syndicated searches - MSN. It's very early (alpha) at the moment, but this is good news.
Here's a question that came up at the planning meeting this morning, and it's one that should properly be addressed to the community. There are a number of items in the "preview" (beta) directory of the VisualWorks distribution. The way we currently run releases, we do the following:
- Major release in the late fall/early winter of the year
- Minor release in the late spring/early summer of the year
In a minor release, we try to address things that skipped the major release, bugs, and preview items. looking at the preview items, here's the list:
- 64-bit engines
- Database\TIGER (connect package for the Cincom database)
- Database\Supra (connect package for the Cincom database)
- Modtracking/ModificationManagement (a framework for dealing with tracking object changes/immutability for things like database operations, particularly OODBs)
- Opentalk/iiop (CORBA related)
- Packaging/base.im (part of the deployment simplification process)
- SmalltalkDoc (new documentation framework, to be integrated with the browsing tools)
- Unicode (display of arbitrary character sets w/o regard to the current locale)
The question I have here is - what do you think? If it was your call, which ones would you be most interested in seeing promoted out to a fully supported set?
Here are some new press releases from our German Smalltalk group - they are all in German:
"So, we had a problem, and it had a deceptively simple solution. This is exactly the kind of problem Word's Auto Formatter was designed to solve. The fancy name for Word's Auto Formatter is a "rule-based inference engine," which really means that it's like pattern matching on steroids. It takes into consideration the current state of the document, and interprets various keystroke input sequences in terms of a set of rules. It's designed to work very fast, so that users don't notice any effect on typing performance...."
"To summarize these rules, if the insertion point is:
- In an empty paragraph--always inserts a tab character;
- In the middle of a non-empty paragraph--always indents the whole paragraph; and
- In the first line of a paragraph:
- If there are no tab stops set, then indents the first line of the paragraph; or
- If there is a tab stop set, then inserts a tab character.... "
It gets better than that :) I really, really like this:
Personally, I'd like Tab to always be "Tab" and nothing else. Funnily enough, there's a solution for that as well. In order for 'Tab" to always be "Tab", you need to press "Ctrl+Tab". Now *that's* design ;)
I think the whole tool would work better if there was an option to unload the inference engine completely. It works only for short memo writing, and it absolutely sucks for anything more complex. Note to Microsoft - Word is awfully expensive for something suitable only for memos...
One of the big things we intend to deal with over the next release cycle is deployment. Right now, it's kind of painful to go from application in development to application in deployment - using RuntimePackager can be pretty complex. We had a talk about this today, and it looks like a solution will appear in preview in 7.3.1. If you look in the packaging directory, you'll see a base.im - which is a first cut at a runtime image, ready to deploy. What we intend to do is simplify deployment down to a straightforward script - you'll toggle some settings, tell the system what parcels should be loaded - and ten point the script at the base image. The script will run, preparing a deployable image (or executable on Windows). This should make it far, far easier to push a product out the door.
I got a lot of good feedback to this question on priorities - not so much in comments, but in the vwnc and vw-dev mailing lists. I'll be going over all of this with the engineers in the next little while; thanks!
People aren't good at mind-reading (another term for mind-reading is "making stuff up" -- see any comedy of errors for examples). Software is even worse at mind-reading. The worst features in Microsoft Word are those that attempt to do mind-reading... auto-formatting, auto-capitalization, auto-correction, etc.
Can we get an editor that follows the simple minded do what I tell you to dictum, or is that just asking too much? Like Keith, I recall older versions of Word as useful - and newer versions as being truly, truly irritating
Our Australian representative, Andrew McNeil, passed me some pictures of this year's engineering meeting:
A lot of today will be taken up by a "Camp VisualWorks" kind of thing - given the distributed nature of our team, it's not often that all of us get together in the same room.
Here's a shot from one of yesterday's breakout sessions, where a bunch of our guys were discussing plans for pending work:
The code name for the next major release of Cincom Smalltalk is... Syrto. For those of you wondering what that is, it's a traditional Greek dance:
We had a good set of discussions at our annual planning meeting. We hold them in an interesting little place - in a "skybox" conference room overlooking the basketball court at Santa Clara University in Santa Clara, California. Other than the echoing of the basketballs from the practices, it's a pretty nice location :)
This time, thanks to the avalanche of feedback I got in email to this request for feedback, I was able to let the entire team know what people thought about our priority list immediately - very cool.
We have more planning to do in the near future - Cincom is in the process of hiring two new team members for the Smalltalk group - a marketing manager and a business manager. This isn't unique to the Smalltalk group; Cincom is doing this for the other product lines as well. This will end my relative isolation as Product Manager - I'll have a few more tasks on my plate as we get to work charting the future of the Cincom Smalltalk product suite.
All in all, it was a good week (other than the cold I seem to have picked up), and I'm looking forward to a productive year. Come see us at Smalltalk Solutions in Orlando, Florida - we should have a lot more to say by then!
There's a Smalltalk meetup happening in DC next week - take a look over here and join us! Here are the specifics:
What: Washington Smalltalk January Meetup
When: Thursday, January 20 at 7:00PM
Where: Starbuck's Coffee (Chinatown)
800 7th St., NW
Washington DC 20001
Event Description:| members | members := Collection new. members addMembersFrom: 'meetup.com'. members do: [ :from | members do: [ : to | ( from =~ to ) ifFalse: [ from greet: to]]]
See you there - I'll have the latest Cincom Smalltalk non-commercial CD's on hand.
I've given a talk at Smalltalk Solutions for a few years now; typically, it's been one of two kinds of talks:
- A "demo" sort of talk, either on goodies, BottomFeeder, etc
- A "What's New in Cincom Smalltalk" kind of talk
This year, I've got something different planned - more of a business level talk. It's one thing for me to talk about BottomFeeder implementation details (like I did last year) - it's another thing entirely to talk about how I use BottomFeeder in my job. That's What I intend to do - talk about how I use BottomFeeder to keep track of the IT industry, Smalltalk related stuff - and more importantly, what kinds of things people are saying about our products. I'm hoping that StS won't be the first time I give this talk; I've got a few other applications out for earlier conferences. We'll see how it goes.
Here's an interesting article on the changing media landscape. It's not the case that blogs are replacing the MSM; rather, they are augmenting it and changing it (much like TV augmented and changed rasio - you don't see many radio dramas anymore, but radio is far from dead).
Blogs have created an innovator's dilemma for the media business. They (and other technologies such as RSS, podcasting etc.) have emerged because first and foremost they have lowered the barriers to entry. Secondly mainstream media have for the most part, become staid and homogenous, reporting broadly the same news and events. Blogs on the other hand tackle far more diverse issues and topics and of course provide a wider spectrum of opinion - though this may or may not be good depending on your point of view.
The major challenge for the media business is that as blogs become widely adopted there will be a change in the media mix. If a consumer reads blogs then they are likely to still read newspapers and magazines, watch TV and listen to the radio - but it's also likely that the proportionate mix will change. Perhaps the consumer will reduce TV time or read a smaller number of magazines. That's the challenge.
For Public Relations practitioners the challenge is about understanding that mix. You need to understand where your audience is and how they are finding information. Once you have that valuable information, you need to use it wisely and communicate using the tools your audience prefer. This is why it is so important that this profession steps up and embraces the changes taking place online.
Reaching your audience may be harder than you think though. I'll give you an example based on conversations I had with some of the engineers I was meeting with yesterday at our planning meeting. For me, blogs have made it possible to hear more opinions - I read far more about MS oriented and Java oriented development than I ever did before. I also read tons more political opinion with which I disagree. That's not the norm for everyone though. A number of the people I spoke to yesterday use the proliferation of sources to further isolate themselves - they live in an echo chamber filled only with agreeable opinions. It's far easier to do this now than it used to be.
Back when your only sources of technical opinions were written journals, you were confronted with technology that you might not work with regularly, or even know much about. Back before blogs and 500+ cable channels, political junkies only had things like "CrossFire" (or going furher back, "Point/CounterPoint"). Now, you can immediately locate favored content and ignore all else. There are obvious issues with this, but let's look at one in particular - reaching an audience with your marketing message:
How do you intend to get your point delivered, much less listened to?
If increasing numbers of your target audience live in self imposed echo chambers, how do you deliver an alternative point of view? That audience will get encouragement and reinforcement from other members of the "tribe", and will become increasingly ill disposed towards your alternative message. It's a real problem, and it's growing.
Julia Lerman points to an impressive failure in software development at the FBI. This sort of thing happens in the public sector and the private sector - most of us who work in and around the IT world have our own store of "war stories". Ironically, I'd guess that we hear about the public failures more often - in the private sector, the people who got fleeced seem to be far better at burying the bad news. I know about multiple failures that have never been reported publically...
Rob Fahrni points out that the Patriots are (not) working hard to get a home field advantage:
ESPN: " The team left the Gillette Stadium grass uncovered through Wednesday's rain and Thursday's fog. With more rain or snow expected Friday and freezing temperatures for the weekend, the Indianapolis Colts' prolific offense could find the footing funky in Sunday's playoff game."
Well, we can definitely say that Apple isn't all about great marketing - they step in the smelly stuff as well as the rest of us. Have a look at this WaPo story:
CAMBRIDGE, Mass. -- Nicholas M. Ciarelli was not even old enough to shave when he started getting under Apple Computer Inc.'s skin. As a 13-year-old middle-schooler, the New Woodstock, N.Y., native built a Web site in 1998 and began publishing insider news and rumors about Apple, using the alias Nick dePlume. Three years later, ThinkSecret.com was first to report that the company would debut a G4 version of the PowerBook laptop series. The product launched soon thereafter, along with ThinkSecret's reputation among Apple's legendarily zealous fans, generating millions of page views per month.
But after a series of letters warning the Web site to stop publishing proprietary information, Apple decided enough was enough. When Ciarelli scored yet another scoop in late December, by predicting the arrival of a new software package and a sub-$500 computer rolled out at this week's MacWorld Conference and Expo in San Francisco, the computer maker filed a lawsuit accusing him of illegally misappropriating trade secrets
The stupid part is that people like that are providing free advertising and marketing. They aren't costing Apple money; rather, they are creating buzz. I've seen the same behavior with fan sites for books and movies. The question you want to ask yourself when you decide to send the lawyers is this:
Will this make me look better, or make me look stupid?
I'll give you a personal example - this action by Sony sent me over to Nintendo for a Game Cube. Sure, it was only one sale, and PlayStation2 sales aren't suffering (far from it). On the other hand, did that action by Sony have any positive impact? Likewise, will Apple's suit have any positive impact?
It sounds like the wave of spam directed at the UIUC Wiki contributed to the downtime it had recently - the drive filled up! Every spam page added is a page cached on disk somewhere, and it adds up after awhile.
Rok Hrastnik is about to release an online book on RSS marketing:
I just wanted to let you know that the RSS e-book is finally ready.
The e-book will be launched on Tuesday, 18th of January, at app. 6PM CET
I was interviewed for the book - I've got early access to the material as well. Looks good so far - there's a lot there. I'll post a link as soon as it's public
David Buck reports on the next Ottawa Smalltalk User's group meeting, which will be held in conjunction with the local Python group's meeting. Sounds like fun
I love it when an idea comes all the way back around after a multi-year detour. Have a look at this post from Dave Roberts on binary XML:
Essentially, everybody is finally realizing that while XML is the first widely accepted data markup format, it's a pig. It's verbose and redundant, which makes it store poorly, transmit slowly, and parse, well, like a pig. Don't get me wrong, the original idea for XML was actually fine, but everybody has taken it way over the top and things like SOAP are just an abomination.
Well, one way to help XML while still retaining XML semantics is to make a binary version of it. While a compression program like gzip can reduce the overall transfer and storage size of an XML document, an XML parser would still have to deal with the XML textual format on either end of a transfer. And that textual XML format actually expands binary data carried in an XML document by forcing it into BASE64 format which does a 3-goes-to-4 encoding.
The reason XML took off had far more to do with the openess of Port 80 than with anything else. RSS? Nowhere without the open ports. SOAP? Nowhere without the open ports. So now we want to create a binary encoding for XML? Heck, why not just run a CORBA broker on port 80? We could have done that 7 years ago and called it a day...
Is there any information domain where the open, world-writable wiki model can't be beneficially applied?
We're sure to find out, as wikis and wiki-variants appear everywhere.
When frustrated with DMOZ, I've often wished for a more radically open web directory, with submissions and categorizations from anyone, at any time, like a wiki.
Community moderation would curb the worst abuses. Those wishes have been answered: the latest from the folks behind Wikipedia is Wikia, which applies the wiki philosophy to a search index of web sites.
I'm not sure that moderation is enough. Have a look at the Recent Changes page on the VW Wiki at UIUC - see all the "changes" over the last few weeks? There's been a flood of daily spam attacks, with the corresponding promotion of good versions of the pages back up. Gordon notes this:
Why not let any contributor instantly add sites -- even individual pages within sites -- and reorder the results of any search based on users' perception of sites' appropriateness to the query? Well, spammers and system-abusers and ranking-wars, I guess. But could open feedback systems be devised that keep those problems suitably in check? It's worth a try!
I don't know what the Wikipedia site does to prevent spam; maybe they have something like Spam Assassin hooked up on the back end. Relying on user moderation is an endless, thankless task though - and I rather suspect that the maintainers will run out of steam before the spammers do. It really, really sucks how the a******* have ruined the entire neighborhood this way.
The Titan probe landed successfully yesterday, and has started sending back data on what it's finding. I love this description of the terrain:
Data sent back by the Huygens space probe from the Saturnian moon Titan show a frozen, orange world shrouded in a methane-rich haze with dark ice rocks dotting a riverbed-like surface the consistency of wet sand, scientists said on Saturday.
Kudos to the European Space agency, Italian Space agency, and NASA for their work on this.
ComputerWorld reports another nail in the iTanium's coffin - no more Windows XP for that platform:
Microsoft Corp. has pulled the plug on a version of Windows XP for workstations running Intel Corp.'s Itanium 2 processor. The move follows the decisions by major hardware suppliers to stop building workstations based on the 64-bit chip.
I see that Larry O'Brien is all excited about AOP - specifically, about being able to wrap methods:
Aspects are classes whose methods are injected into existing programs at "join points," the most common of which are method entry and exit. Another way to put it is that aspects intercept method invocations and surround the existing method with new behavior. The other critical feature of aspects is that they do this without any modification of the existing source code whatsoever.
I love the way people using Java and .NET get all excited over things that were invented eons ago in Smalltalk (or in many cases, in Lisp). Take a look at this paper from John Brant, Don Roberts, and Ralph Johnson. That dates to the mid 90's, but if you look at the references at the bottom, you'll see that it's all based on previous work.
The excitement never ends for curly brace programmers, because the past simply doesn't exist...
I just ran across an interesting article by Allen Holub on Open Source, and some qualms he's developing over it:
My most recent experiences with Tomcat demonstrate my dilemma. The newest version of Tomcat was just plain broken. It didn't load and run custom tags correctly, for example. Though I could (in fact did) go to an earlier version, the fact that Tomcat wasn't subjected to even rudimentary regression testing is disturbing.
The next issue is one of documentation and developer attitude. I wanted to use a local-configuration-file mechanism that's pushed heavily in the documentation (context.xml), and I was deploying from the development directory using the Ant build.xml file that's shipped with Tomcat. This process simply doesn't work.
I started with the documentation to find a solution. Tomcat's documentation is virtually unusable, though. It's a hodgepodge of inadequate .html files. There's no way to print it. There's no real organizational principle, index or search mechanism. A lot of the documentation is written by developers for other developers, so it is sketchy at best, and incomprehensible to a new user.
This isn't surprising. A lot of the necessary, but "drudgery" related tasks for a software project simply don't get done unless someone is paying for them (either explicitly or implicitly). Documentation is one of the best examples - and before you point to Eclipse or Apache - look at the well funded foundations that back those projects - someone is paying for that drudge work. The same thing applies to usability related tasks (build procedures, UI, etc) - once the lead developer(s) have a system that works, they tend to stop - it's no longer an interesting problem, so it falls by the wayside. In a funded effort, you end up with complaints coming in that might affect revenue - so the problems tend to get addressed
Note that funding is separate from licensing - this isn't a failure of Open Source per se. It's endemic to Open Source simply because most Open Source projects are not funded. Allen hits the punch line here:
The bottom line is that you have to do a lot of work to use an open-source product like Tomcat. You have to test new versions rigorously; you have to compensate for inadequate documentation by using a high-volume mailing list that may or may not provide an answer in a day or two; you have to trust amateurish code, which you can't really repair yourself because your version will no longer be "standard." Even if you could repair the code, progress on your real project would slow down.
All of these problems translate directly to wasted time and wasted money. The Tomcat team has no incentive to fix any of this because they're not being paid and have no market pressure on them to improve quality or provide real customer support. I know that the open-source party line is that third parties will step up to fill these gaps, but then you're paying for the software, aren't you? So much for the price advantage.
There's a danger there even to funded open source efforts that Allen doesn't address - I wrote about that here. To summarize, take an open product of significant scale - JBoss, for example. You can buy service and support from the company itself, but getting the product itself is free. There's nothing stopping another entity from setting up support for that product at a lower price - and at lower cost. The JBoss group has to carry the cost of both developers and of support staff - a third party need only carry the cost of support. In a non-open licensed product, the vendor can still recover their costs via license sales, even if their support gets cannibalized. What's the Open Source vendor going to do in that case? I rather suspect that they'll get blown out of the water.
There's no free lunch for this stuff - if you expect to get everything for free, you might want to ask yourself why your company doesn't give its products away.
The comment spammers keep trying - there was a spate of it this afternoon - 15 on one post. The amazing thing is how much effort the guy doing it went through - he was using the web form, and it was clearly not a bot - because there was just over a minute between each spam post. I've added some more checking to the server that should put a stop to that kind of nonsense.
I decided to take a look at my RSS feed stats - it's been awhile since I looked at them, and I've increased my readership since then. There are four tools that dominate my feed stats right now:
|Net News Wire||21.5%|
That makes up almost 84% of my readership right there. I was a little surprised by the Net News Wire totals - that's a Mac tool, and the number of hits from that tool was near nil just a few months ago. Am I getting more Mac users, or are more people buying Macs? Or both?
I create content in part to promote my law firm, which I cannot do effectively if my contact info is removed. I do not participate in targeted advertising programs because the majority of advertisers that target the keyword 'trademark' are competitors. I cannot prevent such advertising when my page is reproduced and 'framed' by a third party.
Now have a look at his site - see that RSS feed icon? What does he think happens when people subscribe to it? Sheesh...
Darren Hobbes has just started re-examining Smalltalk, and is looking at VisualWorks. He was worried about threading, so I figured I'd point a few things out:
- VisualWorks is single threaded (in general; the VM runs a few threads for housekeeping purposes, and you can use native threads for external API calls)
- In VW, Smalltalk processes are "green" - i.e., they run within the context of the single heavyweight process
- In ObjectStudio, Smalltalk processes map directly to Windows threads
Interestingly enough, you get far, far better control and predictability with the green threads - and a VisualWorks app (like this blog, for instance) scales quite nicely. Our engineering group just ported Opentalk from VW to ObjectStudio, giving the two products better interoperability - and the single biggest problem was with the native threading. If a native thread dies, you lose the entire application - as opposed to a VW thread, where you log the problem and move on. Earlier today, I introduced a bug into the server with comment handling (I was putting a throttling system in place). I forgot to update the form page, and - as a consequence - every process trying to add a comment threw an exception. These simply got logged by the server, whic kept humming.
Here's another example of process usage - BottomFeeder. With the default settings, Bf spawns a new process for each http query done during the update cycle. I subscribe to 296 feeds now, so that can be a lot of processes. If those mapped to Windows threads, my machine would be brought to its knees - instead, I still have UI responsiveness.
Sometimes, you have to look beyond the conventional wisdom to see how scaling works - native threads are not the be-all, end-all that people think they are.