In the context of this post, "Web 2.0" means what David Pogue uses it for here - a mechanism that allows sunlight into a company, and also allows feedback from people outside the firm:
When a company embraces the possibilities of Web 2.0, though, it makes contact with its public in a more casual, less sanitized way that, as a result, is accepted with much less cynicism. Web 2.0 offers a direct, more trusted line of communications than anything that came before it.
It's not just blogging, either. It could be podcasts. Or videos. (One blender company has quintupled its sales by posting hilarious amateur videos at WillItBlend.com.) Permit the public to make mash-ups using your company's characters, logos, music or products. Let's have some more inside looks: at your product design cycles, your focus groups, your rejected designs, your employee cubicle videos.
Yes, you'll have to moderate this stuff. Yes, it means spending money with no immediately visible return on investment. Yes, it's more work for everyone.
But you'll gain trust, goodwill and positive attention. You'll put a human face on your company. And you'll learn stuff about your customers that you wouldn't have discovered any other way.
Which is exactly right. The old closed style works for a very small number of firms (only Apple comes to mind) - and most likely, your firm doesn't have a Steve Jobs clone running the ship. Given that, it's a good idea to let people in and show them that you aren't a "big, faceless company".
Take us, for example - head over here. We have a lot of people blogging on our site, many of them not Cincom employees. We like the idea of getting the Smalltalk community involved and engaged, and this is one of the ways we're doing that. While that particular approach might not work for you, it's a good idea to find something that will.
I love those Java guys at Sun - they're kind of cute when they try to talk smack:
Scripting languages are ideal for smaller programs but Java is the choice for larger programs, he said. "As your program grows in size, the lack of strong typing basically kills your ability to handle a very large program and so you don't find the million-line Perl program," he said. One-million-line Java programs are plentiful, Click said. Strong typing refers to the capability of knowing the type of memory objects.
First, most million line programs are a mistake. The fact that Java has lots of them says nothing good about the language; the fact that it takes that much code to achieve something useful says something else entirely. Second, most of the large applications they are talking about are database bound - meaning that the raw execution speed of the code is mostly irrelevant.
Take a live example of a big app written in one of the languages these guys are throwing rocks at - Twitter. Everyone knows they had initial scaling problems, but those have gone away - and the app is still written in Ruby. Gee, why do you suppose that is? Could it be that they went and tuned the database layer, and got their load balancing situation under control? I Rather suspect that a Twitter on J2EE wouldn't exist yet, because some of the million lines of code required would still be being written.
Here's another small clue for those guys - most of the containers floating around the planet are shipped with Smalltalk code. A large proportion (possibly a majority) of the chips being built are in factories controlled in large measure by Smalltalk systems. A ton of the more profitable trading on Wall Street, by one of the most prestigious (and successful) firms there is done in Smalltalk. The firms that haven't been able to catch them? Yeah, those guys use J2EE, mores the pity.
Micro-benchmarks are pretty irrelevant, and you would think Sun's big honchos would know that. However, when you realize that J2EE is a huge pile of steaming manure weighing down the people unfortunate enough to be using it, I guess it makes sense to shout "but our arithmetic is really fast!".
Smalltalk Solutions is coming up in June - Registration has been open for awhile now (yes, we are aware that you might be surprised by our efficiency this year :). Interested in sponsoring the show? You can sign up as a sponsor here. Bear in mind that STIC members get a discount - sign up for STIC as an individual member here
Participants in the Coding Contest - the finalists attending the conference will be eligible for a discount. You can sign up now, and STIC will reimburse you after the conference. See you in Reno!
Technorati Tags: smalltalk
Today's Smalltalk Daily picks up where we left off yesterday, and adds in the menu component (which will display our post filtering options with url links). This involves adding the filtering code, and the rendering code for the menu UI. If you want to access a different part of the tutorial, go here.
Ruby and other gems describes a fascinating framework built by Gemstone, a New York outfit you probably never heard of. I personally think that something like this might be huge in terms of making Rails scale effortlessly to really big problems.
Interestingly enough, Gemstone is located in Portland, OR (not NY) - not terribly far from Tim, as it happens. Also, it already takes an OO language into some really huge places - like container shipping and financial trading. That OO language would be Smalltalk though :)
|I just finished one of the most melancholy books I've ever read: "The Proud Tower", by Barbara Tuchman. It's a study of society in the West during the time from 1890-1914 (i.e., the run up to WWI). It's not a history of the politics of that era, although it does touch on that in a few areas - notably, the rise of the anarchists, the rise of the socialists, and the decline (relative to the lower classes) of the British aristocracy.|
However, that's not all that gets talked about. German music, in the person of Richard Strauss, gets a chapter. The evolution of the US in the post-frontier era comes out, through the eyes of an unreconstructed 19th century conservative, Speaker of the House Thomas B. Reed. The peace movement and the two major peace conferences that took place - and the forces that arrayed against them.
I found the last chapter, titled "The Death of Jaures", the saddest section. Here you have the rising tide of working class power, coming up politically through the socialist parties in Europe. Some of the leaders of that movement had starry-eyed notions of an end to nationalism, and - via the unified action of labor across borders - the prevention of war. As Tuchman points out, French labor was French first, German labor was German first (and so on) - the dream of unified action without regard to borders was just that, a dream.
It's a great book, and I came away from it with a much better feel for that era. I also came away with a lot of skepticism about claims (regardless of where they come from) about how the world is "worse than ever". That notion seems to be a constant across all eras.
Technorati Tags: history
I've had support in BottomFeeder for downloading files via HTTP for quite some time, but it's always involved some hacking. In VW 7.6, it still requires some coding, but - with a hat tip to Martin Kobetic - a lot less hacking. First, you'll want to download this small parcel, which contains one class - DownloadBuildHandler (A subclass of HttpBuildHandler).
Once you have that, all you need is something like this:
'http://www.cincomsmalltalk.com/audio/2008/industry_misinterpretations80.mp3' asURI envelopeReadStreamDo: [ :stream || target | target := 'industry_misinterpretations80.mp3' asFilename writeStream binary. [ DownloadBuildHandler readFrom: stream to: target. ] ensure: [ target close ] ].
Obviously, you might want some more prettiness, like a progress bar, or, at the very least, a "wait while..." dialog. However, that's polish - the basic technique is above, and it's pretty easy.
Professional media would do well to listen to Doc Searls - he's got his finger on the pulse of where media should be going:
So now comes news from Michael O'Connor Clarke that the CBC is quietly releasing one of their most popular shows on BitTorrent. And that it's DRM free. As it ought to be.
As Doc says, major media here in the US is still mentally bound to the airwave and frequency idea (even as the analog spectrum is about to be reordered). They need to figure out that their current audience, which is bound by time and position is much, much smaller than their potential audience - which would be happy to watch them at times of their own choosing.
When I interviewed Dave for a recent FLOSS Weekly, I discovered that the IRTC had fallen into limbo, and was saddened by that. But apparently, my wish to have it revive was enough of a nudge for Dave to look in to it, and a few weeks later he announced that the IRTC was going to be revived. Even better, the new website would be written in Seaside, and that I had volunteered to help him with it. (No, he didn't ambush me... we had discussed this in email the previous day.)
Technorati Tags: smalltalk
As it happens, I ran across a situation requiring a "monkey patch" just this morning. A BottomFeeder user reported an issue reading this feed:
I fired up an image, and tried this code, to make sure that the problem wasn't some silly thing I was doing in my own code:
HttpClient new get: 'http://community.devexpress.com/blogs/alansplace/rss.aspx'
Sure enough, there was a problem in the base network code in the system - something about parsing headers. Now, the correct answer here would be to go to the root of the problem, figure out the parsing error, and fix that. I could also just decide this - in the world of feed readers, cookies simply aren't that critical. So, I overrode the inherited method and did this (and yes, it's a hack):
parse: rfc822Stream "Override to handle errors" self source: rfc822Stream asStream. value := [self doParse: rfc822Stream] on: Error do: [:ex | nil].
However, from a patching perspective, even a full fix by me would still be a patch on library code. Either way, I have to deliver a work-around to deployed clients. So what would the purist suggest in this case? Tell people in the field that they have to wait? Derive a secondary network library in order to avoid patching system code? My solution seems more pragmatic, especially since it's versioned in its own package, and - like other such patches in the past - will disappear as soon as a proper update comes from Cincom engineering.
Communications has evolved more in the last 10 years than it has in the previous 100
I see that assertion a lot, but I don't think it holds up. Why? Well, I was thinking about this last night before bed. Let's ponder the communications field 30 years ago, when I was in high school. Sure, there's more person-to-person going on now, but the spread of information hasn't changed that much since 1978 - at least, not if you compare it to the changes between 1878-1908.
People like to say that "change is accelerating", but they're simply wrong. There's nothing going on now that compares to the wrenching changes that took place at the close of the 19th century. That was the time when the industrial revolution really caught hold, and great masses of people left the farm (and centuries of nearly identical manual labor) for urban life.
We like to think our era is uniquely changing, but it's simply not true. Compared to the time 100 years ago, things now are incremental in nature. Pick up nearly any book on the late 19th century and you'll see what I mean.
The network installer has been updated - thanks to some quick work from Bob Westergaard (Thanks Bob!), things are working again. The problem was as I expected it: I had an out of synch installer map and installer executable. You can head on over there now and get going!
The music industry is getting more reality delivered to them, from Wal-Mart: the retailer is telling the industry that $15.99 for a CD is ridiculous, and that a price cut will be coming - or else they can kiss shelf space goodbye. Why do they need to care? Rolling Stone has this:
In the past decade, Wal-Mart has quietly emerged as the nation's biggest record store. Wal-Mart now sells an estimated one out of every five major-label albums. It has so much power, industry insiders say, that what it chooses to stock can basically determine what becomes a hit. "If you don't have a Wal-Mart account, you probably won't have a major pop artist," says one label executive.
I think the labels are in the "meeting people on their way back down" phase. They didn't make any friends on the way up, either.
It's a pretty simple thing, all Seaside 2.8 in the latest release of Cincom Smalltalk. No database work, and a very simple domain (blog server), so as to allow a complete focus on the Seaside aspect.
Engadget reports that Sony seems to have (finally) learned from their mistakes:
Sony BMG boss, Rolf Schmidt-Holtz, was just quoted in an interview saying that Sony BMG is "working on an online music subscription service." The service would cost between €6 to €8 per month (about $9 to $12) when launching later in the year and provide full access to its entire music catalog. He goes on to say that customers could own "some songs" even after the subscription was canceled. Interesting on it's own, right? Now the kicker: it will work "for all digital players, including Apple's iPod." That means DRM-free unless Apple agrees to license its FairPlay DRM... which it won't.
You have to meet the customer where he is, not where you think he ought to be. Sony spent years doing the latter.
I have to apologize: either the network installer is broken, or - far more likely - I've made a mistake in copying files around on the server. In the interim, I've pulled the Network Installer option from the download page - you'll need to grab the entire ISO or the individual files.
Again, I apologize for this, and I'll have things fixed up as soon as possible!
When your management theory starts with denial:
But the key thing, Watkins argues, is that SSDs are just too expensive, and will be for a long time. Just look at the MacBook Air. There are two versions of the Apple laptop, one with an 80 GB hard drive for $1,800, and one with a 64 GB SSD for $3,100. Why pay so much more for less storage? It's not a difficult choice.
"Realistically, I just don't see the flash notebook sell," Watkins says. "We just don't see the proposition."
Certainly. For the frequent flying executive, that extra battery life afforded by an SSD is meaningless. Right. It's even better when denial is followed up with patent trolling:
But in case flash prices continue to plummet and the flash drives really do catch on, Watkins has something else up his sleeve. Heâs convinced, he confides, that SSD makers like Samsung and Intel (INTC) are violating Seagate's patents. (An Intel spokeswoman says the company doesn't comment on speculation.) Seagate and Western Digital (WDC), two of the major hard drive makers, have patents that deal with many of the ways a storage device communicates with a computer, Watkins says. It stands to reason that sooner or later, Seagate will sue - particularly if it looks like SSDs could become a real threat.
And the translation: "We aren't smart enough to try and compete in that market - we believe a strategy of suing all and sundry will benefit consumers a lot more".
Sheesh - is Watkins taking dance lessons from the RIAA? Remind me to avoid Seagate products from here on out.
Update: Speaking of SSDs, look what I stumbled on within minutes: A Toshiba announcement of a laptop with a 128 GB SSD (Japan only at first, but still). I think Seagate is starting to quiver over the foreseeable end of the spinning HD era.
Technorati Tags: stupidity
With the first product release out that supports Seaside, I thought it might be useful to do a set of introductory screencasts on Seaside. So for the next few days, I'll be doing a small example application that covers just Seaside - not the Active Record work that is still ongoing, not wizards and database, just Seaside.
So, today we get started with that - and you'll want this zip file to follow along. It includes a parcel with the minimal domain model that's used throughout this series of screencasts. The topic? The same thing I covered at SPA2008 in my tutorial there: a simple blog server. Grab part one of the screencast series here.
Gilad Bracha on extending system code:
One way of achieving this would be to actually go and add the necessary methods to the class Symbol, so that symbols could behave like parsers. I know otherwise intelligent people who are prepared to argue for this approach. As I said, Smalltalkers would call these additions extension methods, but I find the more informal term monkey patching conveys a better intuition.
Typically, one wants to deliver a set of such methods as a unit, to be installed when a certain class or library gets loaded. So these changes are often provided as a patch that is applied dynamically. Not a problem in Smalltalk or Ruby or Python (though I gathered from the Pythoners in Krakow that they, to their credit, frown on the practice).
Apparently, there is a need to explain why monkey patching is a really bad idea. For starters, the methods in one monkeyâs patch might conflict with those in some other monkeyâs patch. In our example, the sequencing operator for parsers conflicts with that for symbols.
Hmm. First, version control systems exist partly for that reason - to let developers look at exactly those kinds of conflicts. Second, would Bracha rather see developers in Smalltalk (et. al.) use the same kind of "support class" nonsense that Java developers have been locked into for years?
Sure, you can get in trouble with conflicting extensions - in BottomFeeder, I ran into exactly that problem when I started using Antony Blakey's improved Look and Feel policy. Here's the thing though: I spoke to Antony, and, after we talked a bit, we dealt with the problem. So let me see: my solution involved more and better communication between developers. Bracha's involves "just say no".
Call me crazy, but I think my approach seems far more practical in the real world. At the end of the day, his approach comes from the school of thought I like to call "the library developer is god".
Hat tip Patrick Logan
Now that the latest Cincom Smalltalk is out, I've released the latest BottomFeeder - version 4.5.
What's new? The upgrade to VW 7.6, and this - you can share subscriptions for podcasts with iTunes more easily now (Windows and Mac). I'll be adding more functionality in that direction over time.
Andres Valloud has started posting video from Smalltalks 2007 to YouTube.
As promised, here's the video for the "Is Software Practice Advancing?" panel from SPA 2008. I've got the video available three ways:
This podcast is taken from the panel discussion at SPA2008: "Is Software Practice Advancing?" The panel was moderated by John Daniels, and started with a small group. After about 20 minutes, they asked volunteers from the audience to join by submitting names to a random pick - Peter Deutsch got picked first, and I followed a few minutes later. I'll also have video from this panel later on; I have to get it saved down to a reasonable size first.
It was a fun conversation, with the debate topic centered on whether things have improved in terms of software practices over the last 15 years. There was a fair amount of skepticism on the panel, and it was a lively discussion.
As always, please send feedback to email@example.com - or visit us on Facebook or Ning. You can subscribe in iTunes, and please try and cast a vote for the podcast over at Podcast Alley. One caveat about this edition; it's long, about 74 minutes. I usually keep the episodes shorter than that, but I didn't want to break this panel discussion into parts.
We have been interviewing candidates for a bit now, but we still have 3 open slots for Smalltalkers:
If you're interested, go ahead and send an email to firstname.lastname@example.org/ We're doing some big stuff with Smalltalk here, and - as Randal Schwartz is saying - this is a fun time to be involved.
Technorati Tags: smalltalk
This week, I have a panel discussion from SPA 2008: "Is Software Development Advancing?" It was a fun discussion, and a little over 30 minutes in, I got invited onto the panel. That was an interesting aspect of the panel; as topics came up, they asked for volunteers for the panel, we put our names on cards, and they picked one. It was fun, and I'll also be releasing the video. Stay tuned!
Now that we have this facility, I was disappointed with how behind the entire prerequisites UI was... so I've updated it and published to public store as NewPrerequisiteEngine 34. I'll post up some screenshots of it. It's nothing fancy, in fact, it's a major simplification over the old UI. But it lets you force prerequisites, mark prerequisites that are there as optional - and of course, compute.
Technorati Tags: cincom smalltalk
Patrick Logan makes a good point: dynamic languages are productive, but they are even more so if you have good tools. Adding class extensions stop being "monkeypatching" if you have tools that support the idea:
People developing large systems in dynamic languages, and people providing dynamic languages being used to build large systems have to also realize this:
You are no longer working with a "scripting" language. You need to demand and provide really good tools. Examples can be found on the internets, read about the Smalltalk and Lisp environments from way back when. Someday you can become as smug as we are, or maybe as brilliant as the people who made them for us.
I've seen a lot of bad ideas, but this is way up there on the ick-o-meter:
For only $50, Sony will uninstall some of the trial software it loads onto new Vaio laptops.
Fire up those browsers and FTP clients: ObjectStudio 7.1.3NC and VisualWorks 7.6NC are ready for download. We'll have ObjectStudio 8.1 NC ready soon; we're running through the last bits of Vista certification now.
For VW 7.6 and the forthcoming OS 8.1, Seaside is now supported - and Vista is supported for both products (Microsoft certification is pending for ObjectStudio).
If there is any year for Smalltalk to regain a commercial visibility, this will be it. I mean, look at all the things coming together:
- the OLPC XO is putting Smalltalk into the hands of thousands of young kids
- Cincom and Gemstone are stepping up to support Seaside in a big way
- Gemstone is offering the single-instance free commercial license and GLASS quickstart appliance
- Squeak's license is finally getting cleaned up
- Seaside is reaching a nice level of maturity
- Seaside running on GNU Smalltalk for those that want a command-line environment
- Croquet is maturing, even being adopted as a commercial "virtual meeting" space
- Ruby on Rails has reestablished dynamic languages as useful for the web
He's right - from command line and files to full bore environments, Seaside has it all, and it runs portably across all major Smalltalk implementations. On the relational database side, that connection is handled by GLORP - which is also OSS and portable.
Come on in, the water is fine :)
Technorati Tags: seaside
I find this post endlessly amusing. Consider Firefox - a large C/C++ application that's been plagued over the years by memory bloat and leaks. So now we see one of the lead developers touting the progress they've made - by building a poor man's garbage collector:
Some leaks are harder to fix than others. One of the most difficult ones is where two objects have references to each other, holding each other alive. This is called a cycle, and cycles are bad. In previous versions, we've used very complex and annoying code to manually break cycles at the right times, but getting the code right and maintaining it always proved to be difficult. For Gecko 1.9, we've implemented an automated cycle collector that can recognize cycles in the in-memory object graph and break them automatically. This is great for our code as we can get rid of lots of complexity. It is especially significant for extensions, which can often inadvertently introduce cycles without knowing it because they have access to all of Firefox's internals. It isn't reasonable to expect all those authors to write code to manually break the cycles themselves.
There are collectors out there for C and C++ (not to mention languages that come with that already implemented) - so I guess the older question I could ask is, will they end up with most of a Lisp system built by the time they're done :)
Technorati Tags: garbage collection
As usual, SPA 2008 was a great event - and I'd like to thank everyone involved who helped make it that way - but especially Eoin Woods, who has made it possible for me to bring a Smalltalk tutorial to SPA for two years now. I'm already looking forward to next year. Thanks everyone, and I'll see you all again in St. Neots.
Technorati Tags: smalltalk