I've done my first podcast - an interview with Rowan Bunning, the Product Manager for Software With Style. We spoke for almost 12 minutes, and I've just gotten the audio put together for download. We spoke in a room that had something of an echo, which accounts for the sound. The interview is an mp3 file, so it should be easy to grab.
I was asked during my presentation today why I don't use Captchas on my blog comment forms. Well, I answered that I've never liked them. Had I seen this, I would have had a better answer - it's a job offer:
I will provide a piece of software that will display CAPTCHA's - you will provide the service of solving them for one 50 hour week. Post your price and internet connection type.
Right now, the bidding is under $1 an hour. At that price, it will be well worth the spammer's time to pay.
We started the tour in the square in "the new town" (dating from the 14th century - "old town is older"). In that square there's a statue of King Wenceslaus (yes, from the carol):
The afternoon social event at ESUG this year was a walking tour of Prague. We had an excellent tour guide, and saw a lot of interesting things - and she filled us in with local color along the way. I've posted a few shots of the Charles Bridge (named for Charles IV, a medieval King of the area). The bridge is about a third of a mile long, and dates from the 13th century.
That's looking back at the tower by the statue of Charles. Here's another:
That's looking at the far end from old town, into the area where Prague Castle is.
That's an interesting spot - people touch the engravings on the right and left (you can see how polished they are as a result) and make wishes. When I took this shot, there was a long line looking to do that :)
I just liked that statue - I think the "crown of thorns" is in Hebrew.
I took these two shots near the hotel the other day - it was my first indication that I was in the former communist bloc :
That's a statue of Soviet Marshal Koniev, who was called (by the Soviets) - "the savior of Prague". Martin Kobetic, who's originally from this area, translated the text below for me. The gist of it is to name Koniev as a great hero of the Soviet Union and Czechoslovakia.
|Noury Bourqadi is doing a talk on ubiquitous computing - i.e., Smalltalk on, or communicating with, various devices (small devices, mostly). The main thing - devices have become diversified and mobile (phones, PDAs, etc). Additionally, the type of wireless connection varies (WiFi, Bluetooth, etc).|
Building software to deal with these devices and communications protocols is getting more and more complex, which delays product delivery. Goals? Help developers build for these environments. Some assumptions UbiquiTalk makes:
- Dynamic set of devices - devices can join/leave the network at any time
- Software may be added/removed/suppressed at any time
- Network may be Ethernet, WiFi, Bluetooth...
- Very heterogeneous hardware mix with varying specs
UbiquiTalk is middleware. It's a framework for domain objects and UI. It handles unanticipated remote interactions and heterogeneous hosts. A host can be anything with a network interface, and a service is anything that can be reached remotely. There are application services and middleware services.
For the middleware, you get a services registry, automatic host discovery remote communications, and on-demand deployment at runtime. On the framework side, there's code to handle and configure all of that stuff.
- Remote Communication: must be IP based
- Automatic Discovery: detects connect/disconnect
- Services Registry: White pages (name), Yellow pages (description)
- On demand deployment at runetime: (to do) - automated download and installation of services clients
- Application Entry Points
- Reactive or proactive
- 3 parts: provider, client (typically GUI), administration
- GUI: Targeting various devices
Thus far, there are two implementations: PCs (desktop/laptop), and PDAs.They are actively looking for partners, and there's a fair amount of future work to do. I didn't get the middle of this talk - jet lag caught up with me, and I fell asleep :/
Here's a shot of the hotel lobby as people chatted after the day's talks:
And here are Martin Kobetic and Suzanne Fortman:
You can track Cincom's Press Releases in your news aggregator again - subscribe here. Powered by Cincom Smalltalk, of course :)
|Next up, after a coffee break: Code Optimization with Adriaan van Os of Soops. He's working on their rule-based data warehouse application - a decentralized coupling of the electricity markets (Netherlands) with VW. The latter is calculation intensive.|
Optimization is hard, and it's hard to predict where the problems are. Sometimes, you can make an application harder to extend and maintain after optimization. You can also run into problems with platform specific code (using tools like VW).
Advice: Concentrate on the design first, and optimize if you have to. To analyze:
Time millisecondsToRun: ["code here"]
If you do timings, run the test multiple times and average. Things that will pop out: LargeInteger use, running into the allocation ceiling. It's still hard to get consistent results. When you do see the profiler, you need to filter out areas you don't care about.
bear in mind as well - there are "special" selectors in VW (and other Smalltalks) which get optimized. You can actually change that - look in DefineOpcodePool for details. There are also optimized selectors that will be inlined - see MessageNode class.
Even with all this, trust the results you get from actual profiling and timing - don't make assumptions about what "should" be faster.
It helps to keep Blocks "clean" - declare variables in the innermost scope, don't return from inside them. With numbers, avoid fractions and large integers unless you can't, and use Doubles. Also, this:
10.0 * 10
is faster than
10 * 10.0
Put the higher generality first. With collections, avoid intermediate collections and repeated iterations. Pre-size them if you know "about" how big they should be.
Another thing to bear in mind: optimization "tricks" (like message A is faster than message B) can change across releases of your Smalltalk product. It also helps to pick the right collection (i.e., IdentitySet or Set, IdentityDictionary/Dictionary) based on what keys you plan to use.
If you have lots of conditional statements, you might well have too few classes and too little polymorphism. If you need a "case" statement, put the common cases at the top.
Caches often help, but keep them simple, and make lookups fast. You don't want to give back in lookup.
For Gemstone, most of this applies, but there are a few more things:
- Objects may be on disk, not in memory
- make use of identity because of that
- Objects may be distant (network/disk) - minimize copying/replicating
- GC is harder with shared objects
Now he's giving some examples, with results. I'm not copying that all down :) The idea here is, check the results!
Recommendation: Travis Griggs' StS talk.
It's after lunch, and Lukas Renggli is up to talk about Seaside. This is a simple 10 steps "getting started with Seaside" demo. So for this, there's no templating, no "clean" urls, and most state is shared. That's not the way Seaside has to be done, but it's a simple way to get started. I don't have the ESUG DVD handy, which is too bad - there's a pre-built Seaside image on that CD (along with the Squeak VM).
The demo is a simple "To Do" app - two classes - ToDoItem and ToDoList. The demo is going to take that to the web with Seaside.
Seaside apps are built out of components - Views and Controllers. Components keep their state in instance variables. Yes, this is an example of MVC at work.
Step 1: Create a ToDoListView class. Add the boilerplate to register the application, and you get a base application in your browser at the name you registered. To get some content, you override the method #renderContentOn: to get some application speciic content. Rendering is a read-only phase (meaning: don't change state in this method!).
"assumes a model has been defined" renderContentOn: html html self model title. "class method " renderClass "answer the specific render class here"
Note - this uses new APIs in Seaside. From here, you can start customizing the render method (and having the domain handle rendering for each component) as you wish - so you can get a list, etc. With a simple rendering, we get this:
The html object understands a bunch of things, so you can ask it to push out things like divs, css, etc via built in protocol. For instance:
html div class: 'title' with: self model title.
Built into Seaside are a bunch of convenience things in the browser that allow you to look at what's going on in the browser.
To get interactivity, you define callback methods. So:
html anchor callback: [self inform: anItem due] with: anItem title.
That will create a link, with the title showing. When the link is clicked, the callback block will fire. So what about forms?
"there's no need to specify #text: for submit buttons if you want the default" html form: [html textInput value: text callback: [:value | text := value]. html submitButton text: 'Save'].
There are convenience methods for the various html form elements - checkboxes, etc. Now, component replacement: Call
"Assumes the creation of ToDoItemEditor, which will know how to render itself" edit: anItem self call: (ToDoItemEditor new model: anItem) "using an answer" edit: anItem result := self call: (ToDoItemEditor new model: anItem copy). result ifNil: [^self]. self model items replaceAll: anItem with: result.
You can nest components as much as you want. What are the benefits of Seaside?
- Talked about Web apps
- No url fiddling
- No state serialization
- Implemented complex workflow
- separated design and logic
The Los Angeles Smalltalk User's Group is meeting:
Monday September 11, 2006
7:00 pm - 9:00 pm
High Tech High, Los Angeles - Meeting Room
17111 Victory Blvd
Lake Balboa, CA, 91406
There is usually an after meeting at Jerry's Deli on Ventura and Petit in Van Nuys that goes on to an indeterminate time.
If there is a problem getting there call Darius Clarke, Mike Klein or John Dougan for assistance. The phone numbers are in the LASTUG contacts database on Yahoo!.
Technorati Tags: smalltalk
Next, some quick demos of various tools. Object History, which lets you keep track of things like past breakpoint history with an object (Francois Pujols)
Next, Dakar Testing, which extends SUnit and the RB (Karsten Kusche and Damien Cassou - both students) - all of the code they showed is in the public store.
Next, Alexandre Bergel on Realtalk - connecting Smalltalk to small devices (sensors with ~ 4k of storage) and driving/reading them:
Stefan Donolf on the MediaGenix SuperModel, which they use to capture the different models they use in their apps (domain, storage, XML, et. al.). They've done this in order to automate the generation of standard UI forms from their models.
Ed Foster shines a spotlight on an interesting clause in the Microsoft Windows XP EULA:
17. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL MICROSOFT OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, PUNITIVE, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF PROFITS OR CONFIDENTIAL OR OTHER INFORMATION, FOR BUSINESS INTERRUPTION, FOR PERSONAL INJURY, FOR LOSS OF PRIVACY, FOR FAILURE TO MEET ANY DUTY INCLUDING OF GOOD FAITH OR OF REASONABLE CARE, FOR NEGLIGENCE, AND FOR ANY OTHER PECUNIARY OR OTHER LOSS WHATSOEVER) ARISING OUT OF OR IN ANY WAY RELATED TO THE USE OF OR INABILITY TO USE THE SOFTWARE, THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT OR OTHER SERVICES, INFORMATON, SOFTWARE, AND RELATED CONTENT THROUGH THE SOFTWARE OR OTHERWISE ARISING OUT OF THE USE OF THE SOFTWARE, OR OTHERWISE UNDER OR IN CONNECTION WITH ANY PROVISION OF THIS EULA, EVEN IN THE EVENT OF THE FAULT, TORT (INCLUDING NEGLIGENCE), MISREPRESENTATION, STRICT LIABILITY, BREACH OF CONTRACT OR BREACH OF WARRANTY OF MICROSOFT OR ANY SUPPLIER, AND EVEN IF MICROSOFT OR ANY SUPPLIER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Next, Ed explains what that means:
In plain English, what this paragraph means of course is that Microsoft isn't responsible for any damages caused by their software. But because the list of things the company is not responsible for includes breach of contract, LinuxAdvocate's article points out that this also means "Microsoft is not liable even if they break the terms of this agreement." I must have read this damage limitation paragraph half a dozen times, since it's common to many of Microsoft's EULAs, but that little irony had escaped me.
That's the sort of thing I'd expect from a loan shark, not from a vendor. Wow.
And, of course, the new logo:
The specific color choices there are mine :)
After a good night's sleep, all I need is coffee :) First up today is Martin Kobetic, who's going to reprise his Smalltalk Solutions talk on Cryptography. He's going to cover various algorithms that we've implemented in Cincom Smalltalk, and how to use them with other systems.
That's Martin on the left, starting his talk
Martin's giving a background on public key algorithms - the basic points are:
- Hard to derive the private key from the public key
- The keys are based on hard problems
The system is simple to use: You encrypt with the public key, and you decrypt with the private key. This way, anyone can encrypt, but only people with the private key can read the messages. Using this:
keys := RSAKeyGenerator keySize: 512. allice := RSA new publicKey: keys publicKey. msg := 'Hello World' asByteArrayEncoding: #utf8. msg := alice encrypt: msg. bob := RSA new privateKey: keys privateKey. msg := bob decrypt: msg. plain := msg asStringEncoding: #utf8.
Of course, you need to cooperate to generate the private key. You use the public key to establish a private key, and then you need to manage that. The above is just an example using RSA; we also support Diffie-Hellman and others.
There's also support for digital signing and hash functions, which can be used for:
The idea behind digital signatures is that they are authentic, non-reusable, and unalterable. You sign with a private key, and then verify with the public key. You get a boolean response as to the authenticity of the message.
"sign" alice := RSA new privateKey: keys privateKey. msg := 'Hello World' asBytArray. sig := alice sign: msg. sig asHexString. "verify" bob := RSA new publicKey: keys publicKey. bob verify: sig of: msg.
We also support DSA, including the newer modifications to it. Using DSA is the same as RSA (above), using class DSA instead.
Alexandre Bergel (with help from other people like Stephanne Ducasse, and Colin Putney, who isn't here), is up to talk about the OmniBrowser framework - which he describes as a meta framework for building browsers. The examples are all in Squeak, but there is code for this in VW.
Here's Alexandre starting the talk:
The OmniBrowser consists of three main notions:
- Nodes - what my domain is
- MetaGraph - how do I navigate my domain?
- Actors - how do I interact with my domain?
Along with Filters and Definitions for describing and filtering nodes. There are some limitations:
- Navigation has to follow the left to right flow
- Would be difficult to implement Whiskers (Squeak) or the RB (VW, et. al)
On the other hand, lots of current Squeak tools have been built using this: changes, implementors, senders, variables, version... and a number of others.
Aaron Swartz has done some yeoman's work on how Wikipedia has gotten written. First, he presents Jimbo Wales' view - which is that 20% of the people on the site have done 80% of the work:
So did the Gang of 500 actually write Wikipedia? Wales decided to run a simple study to find out: he counted who made the most edits to the site. "I expected to find something like an 80-20 rule: 80% of the work being done by 20% of the users, just because that seems to come up a lot. But it's actually much, much tighter than that: it turns out over 50% of all the edits are done by just .7% of the users ... 524 people. ... And in fact the most active 2%, which is 1400 people, have done 73.4% of all the edits." The remaining 25% of edits, he said, were from "people who [are] contributing ... a minor change of a fact or a minor spelling fix ... or something like that."
Aaron was skeptical, so he decided to take a few samples and investigate. He chose the Alan Alda page first:
To investigate more formally, I purchased some time on a computer cluster and downloaded a copy of the Wikipedia archives. I wrote a little program to go through each edit and count how much of it remained in the latest version. † Instead of counting edits, as Wales did, I counted the number of letters a user actually contributed to the present article. If you just count edits, it appears the biggest contributors to the Alan Alda article (7 of the top 10) are registered users who (all but 2) have made thousands of edits to the site. Indeed, #4 has made over 7,000 edits while #7 has over 25,000. In other words, if you use Wales's methods, you get Wales's results: most of the content seems to be written by heavy editors.
But when you count letters, the picture dramatically changes: few of the contributors (2 out of the top 10) are even registered and most (6 out of the top 10) have made less than 25 edits to the entire site. In fact, #9 has made exactly one edit -- this one! With the more reasonable metric -- indeed, the one Wales himself said he planned to use in the next revision of his study -- the result completely reverses.
I don't have the resources to run this calculation across all of Wikipedia (there are over 60 billion edits!), but I ran it on several more randomly-selected articles and the results were much the same. For example, the largest portion of the Anaconda article was written by a user who only made 2 edits to it (and only 100 on the entire site). By contrast, the largest number of edits were made by a user who appears to have contributed no text to the final article (the edits were all deleting things and moving things around).
The upshot: An "Army of Davids" (to steal a metaphor :) ) creates the content, while a small cadre of editors cleans it up and does follow on work. That's pretty much how I always thought of it, and it's cool to see that someone has gone out and investigated. I hope Wales is listening, because the current ideas about locking the site down more run counter to this reality.
|Well, I'm finally here at the conference. The room has a bit too much of an echo - it's kind of hard to pick up speakers with an accent (and, I expect that means that non-English speakers will have trouble picking up people like me. Oh well).|
Anyway, the current talk is from Dr. Michael Prasse, on modularizing the ObjectLens. It could certainly stand some of that; I recall my first stint as a consultant, trying to use the Lens programmatically (instead of via the Forms Editor). Not only was it not fun, but support (this was back in the PPS days) told me that such usage wasn't supported.
You can imagine my reaction :)
Anyway - the lens is a fairly simplistic O/R layer, in that it maps a single class to a table - you can't store objects of different classes in the same table (polymorphism comes via foreign key mapping). Instance variable map straight to columns. Usage is fairly straightforward:
aLensSession add: anObject
aLensSession remove: anOBject
You can write queries using Smalltalk #select:. You get transaction support and proxies. You save the db mapping information declaratively in a spec (like a window spec). The dataSpec is too monolithic - what Michael is doing is creating a more modular set of specs, which allows for easier reuse across similar applications. Back in my SE demo days, this would have been highly useful (and, I can recall a number of Lens projects I consulted on that would have been a lot easier).
He's got modified tools that support these changes as well - pretty cool stuff.
I've finally gotten to my hotel - I'm at the Crowne Plaza in Prague. I have no idea how to get from here to the conference hotel, so I'll have to work that out. It's always a long trip when you fly overnight...
I'm reading a post from the head lemur, on the general topic of communication, online communities, and splogs - it's pretty good stuff, but I do have a small, technically oriented nit:
It is about the lost opportunity to engage in dialogue. You cannot comment from a news reader, aggregator, social links page, you have to come here. This is where engagement and dialogue takes place. That is at the end of the day, what it is all about. The internet is the one place where it is easier to ask permission that ask forgiveness.
That's not entirely true. There aren't a ton of blogs that support the CommentAPI, but they do exist (this is one of them). Heck, I follow the comment trail (on the Smalltalk blogs) in my aggregator, and I do nearly all of my commenting from the aggregator. In fact, of the 280 feeds that I subscribe to, 48 support the CommentAPI (meaning, I can comment directly from my aggregator). I discovered that via a simple script in my BottomFeeder runtime:
supportingFeeds := RSSFeedManager default getAllMyFeeds select: [:each | | items allows | items := each allItems. allows := items detect: [:eachItem | eachItem commentAPIUrl notNil] ifNone: [nil]. allows notNil]
So in fact, if your blogging software and aggregator software line up on features, you can comment without punching through to the HTML page.
Which is truly a side point in the context of the entire post, which I encourage you to read. It's great stuff about the damage done by sploggers:
Because of the ease of creation, open formats, and the astonishing number of applications written to capture RSS, splogs were born. Their whole purpose is to game the system, by creating sites that people will go to, click on ads, and make money for sploggers on other peoples work. These people are not adding to the great conversation or contributing to the web. They are stealing content, setting up self referring networks, all to steal money from advertisers, and breed anger and mistrust.
Go ahead, read the whole thing :)
Technorati Tags: community
Technorati Tags: social+software
I'd call this report on the abundance of obesity progress, actually - having more obese people than malnourished ones is a huge step forward in historical terms:
The world now has more fat people than hungry ones, according to World Health Organisation figures, with more than a billion overweight people compared to 800 million who are undernourished.
Which is not to say that widespread obesity is a good thing - simply better than the historical norm.
I'm not a fan of government regulation - either for or against net neutrality - but I am opposed to unadulterated BS. That's exactly what the telcos are spewing with this ad (unintentionally hilarious if you know anything about the subject). Click the link here to watch it (you need Flash installed).
What I love most is the notion that net neutrality is mumbo jumbo intended to allow rich silicon valley tech firms to bilk us. Umm, yeah - I live in constant fear of those outfits. What's Google going to do, beyond throw too many ads my way? I'm not even sure who this ad is intended to convince. Everyone who's ever had a phone bill to pay knows about "interesting" fees the telcos come up with.
Technorati Tags: net+neutrality
Jeff Jarvis hopes that the real estate cartel is getting disintermediated:
The Times story focuses on Redfin, a new brokerage in California and Washington only, unfortunately, that will list sellers’ homes for $2,000 flat and will rebate two thirds of its commission (thus usually 2 percent of the selling price) to buyers. Redfin does all this -- how else? -- by taking advantage of the internet and of the monopolistic pricing of multiple listing service members.
The Times reports that some sellers’ agents refuse to show homes to people coming from Redfin. I’d call that anticompetitive and perhaps even antitrust behavior. Watch and I’ll bet that MLSes will get opened up and then, once any of us can list and find homes on our own, the whole game is over. Bye-bye overpriced agents.
I won't be selling (or buying) a home anytime soon, but I like the sound of this. Just like the music business, real estate is a field that is ripe for some cleanup.
The airport security experience: the illusion of security and the complete absence of judgement. I forget to clear my bag of things like toothpaste, as I've had those kinds of toiletries in there for years. Well, that was a mistake. Just out of orneriness, I asked the supervisor if he could show me, in writing, where liquids are banned (yes, I knew ahead of time about the ban. I had forgotten to clear my bag). That generated two responses:
- No, the list is classified
- A local cop was called, who told me to keep my opinions to myself
Now, I tend to get irritated when I'm told to shut up (this has gotten me in trouble more than once). Still, having state and federal agents tell me what I can and cannot say truly torques me off. It's not like I was making threats, or claiming to have bad things - all I wanted was written proof of the ban. I understand security people getting jumpy about "jokes" at the checkpoint - it's like yelling fire in a theater. I get that. What torques me off is being told that the list of banned substances is classified, and being told that I'm not allowed to express an opinion about that.
The thing is, this isn't limited to airports. My daughter's school has a blanket ban on drugs. That sounds reasonable, until you realize that it includes things like Midol (which a teenage girl might need from time to time), and cough drops. Why do they do that? Well, it's simpler than asking teachers and administrators to actually engage their brains and make judgement calls. Girl with Midol? Ok. Person out back with narcotics? Not ok. Sadly, they are unwilling to make that kind of judgement call, so they just ban everything. Which means this: If my daughter has a cough, I have to go to my doctor and get a written note before I can send her in with a few Ricolas. I can't just send a parent's note, and the Ricola's would have to sit in the nurse's office. Sudden coughing fit? No longer a simple thing to fix, because the school system is unable or unwilling to apply judgement.
It's a societal problem, and the application of it at airports is just a noticeable symptom.
|I'm about to head out the door to ESUG 2006 - and it's going to be a long flight. I leave here (Baltimore) at 2PM. Then I get to sit in New York for 3 hours, while I wait for my 6PM flight. That arrives in Brussels at 7:30 AM tomorrow - and then I have 2 hours to wait for the final leg, the Prague.|
I finally arrive at 11:20 AM tomorrow. Ugh. On the return next week, I go back through London (and boy, I hope that doesn't get ugly).
Other than the travel, it should be a good trip. I've never been to Prague before, and I'm actually taking a good camera with me. I'm looking forward to some site seeing, and to a good conference. See you there!
I like the Mac a whole lot better than my PC, but there are still a few areas of wonkiness. This morning, I killed the Finder by double clicking on the 2 GB USB icon on the desktop.
Now, that seemed odd to me - the first thing I thought was "oh crap, what now?" However, I recalled that I had ejected a "phantom" CD yesterday, and then it clicked. After rebooting the machine (thank you, ssh access!), I plugged the USB stick back in. Sure enough, it came up as both a drive icon and a CD icon. The trouble comes if I eject the "phantom" CD. That turns off the USB stick, but it still looks like it's on.
Some kinds of wonkiness are not limited to Windows...
This may be the dumbest negative PR thing I've seen yet: A UK senior citizen was told that she was too old for internet service:
After walking the Great Wall of China and making plans for a trip to Russia, Shirley Greening-Jackson thought signing up for a new internet service would be a doddle.
But the young man behind the counter had other ideas. He said she was barred - because she was too old.
The 75-year-old would only be allowed to sign the forms for the Carphone Warehouse's TalkTalk phone and broadband package if she was accompanied by a younger member of her family who could explain the small print to her.
Can you imagine being in the meeting at corporate where they came up with that policy? They weren't even smart enough to start backpedaling once they started getting media inquiries:
When her case came to light on Radio 4's You And Yours last week, Carphone Warehouse admitted it had adopted an over-70 rule.
But the firm insisted it was not a blanket policy and claimed the guidance was to protect the elderly. A spokeswoman said: "It is not our policy to refuse business from adult customers of any age group. However, we do ask our agents to use their discretion when dealing with older customers."
She added that the discretionary rule had been introduced in response to complaints that staff had mis-sold products last year.
I hope they're looking for a new set of PR people, because the ones they have are too stupid to live.
Ralph Johnson talks about architecture, design, and implementation
When I saw the headlines - Myspace selling unprotected mp3s - I thought that maybe we had a game changing event happening:
In a direct challenge to Apple’s iTunes, MySpace has announced its intention to sell songs from the 3 million unsigned bands on MySpace.com. Even more surprising: the songs will be sold as unprotected MP3s, free from DRM. MySpace co-founder Chris DeWolfe told Reuters: “Everyone we’ve spoken to definitely wants an alternative to iTunes and the iPod. MySpace could be that alternative.”
That sounds interesting, and it definitely looks like a way for unknown bands to get a leg up - which is something I posted on the other day. However, reality set in by paragraph 2:
Mashable readers won’t be surprised to learn that the new feature will be powered by Snocap, the music distribution service from Napster founder Shawn Fanning. Snocap only recently launched a MySpace music player, which allows users to buy unprotected songs via Paypal. Snocap charges the artists a small distribution fee, and most of the tracks are DRM-free. Unlike the fixed-price model of iTunes, artists on Snocap set their own price. Once the service is live, DeWolfe wants to add copyright-protected songs from major record companies, and it’s rumored that MySpace has spoken to EMI regarding the move.
The pricing model looks interesting - a real market will open up that way, if Myspace goes through with that model. My cynicism kicked in with the major label bit - and copyright protection. That will mean yet another DRM scheme, and who knows what devices it will and won't work with.
Even with that, this is interesting news. If nothing else, it's punching some holes through the current layer of value subtracting middle men in the music industry.
Technorati Tags: DRM
It's the end of another week, and the effective end of summer here in the US. School has either started (or is starting Tuesday), which is it - you can tell by the way all the community pools close or sharply reduce hours. Anyway: the logs for last week. BottomFeeder downloads proceeded at a decent clip, 214 per day:
Those look mostly normal, slight uptick for Windows. On to the HTML page accesses:
|Tool||Percentage of Accesses|
Those look the same as usual. With IE slowly creeping up, I guess it's a good thing that some of the templates here support IE better. Finally, the RSS accesses:
|Tool||Percentage of Accesses|
|Net News Wire||7.9%|
|Google Feed Fetcher||3.9%|
|RSS 2 Email||1%|
And that's a wrap on another week. I'm heading to Esug tomorrow, and to a party this afternoon - posting will be fairly light
Joel Spolsky follows up on yesterday's FUD, and immediately steps into the quicksand:
Since we are not blub programmers, we like closures, active records, lambdas, embedded SQL a la LINQ, etc. etc. and so those are the kinds of features we put into Wasabi.
You have to love that - "we are not blub programmers". As opposed to everyone else who reads his blog, apparently. From yesterday:
These debates are enormously fun and a total and utter waste of time, because the bottom line is that there are three and a half platforms (C#, Java, PHP, and a half Python) that are all equally likely to make you successful, an infinity of platforms where you're pretty much guaranteed to fail spectacularly when it's too late to change anything (Lisp, ISAPI DLLs written in C, Perl), and a handful of platforms where The Jury Is Not In, So Why Take The Risk When Your Job Is On The Line? (Ruby on Rails).
He spends the rest of the post trying to backpedal from yesterday's silliness, and trying to explain why the approach they use is a good one. For instance:
Should you write your own compiler? Maybe, if you're doing something that's different enough from the mainstream and if there's no good off-the-shelf technology for your problem. There's a good chance that the domain you're working in could really use a domain-specific language.
Sure Joel, bug tracking systems are so very, very far outside the mainstream of development. No one else has ever thought to write such an application. At the end of the day, he's really saying this: he and his team are just soooo brilliant that they can handle this extra complexity. The rest of you? Nah, you can't handle it (or worse, you might be able to compete with him, especially if you set up shop somewhere less expensive than NYC) - so you dummies better stick with Java (et. al.).
To quote Bugs Bunny: What a Maroon.
Update: Chris Petrilli piles on with some good points.
Technorati Tags: FUD
The second worldwide Cincom Smalltalk User Conference is approaching. The conference will be held in Frankfurt, Germany, December 5-7:
December 05-07, 2006
Moevenpick Hotel Frankfurt City
More details can be found here.
If you want to ensure you’ll be on the mailing list for further details on the user conference and/or the workshop, please e-mail firstname.lastname@example.org.
So Joel and friends invented their own language, which has to reasonably compile to three and a half different ones. Yes, they're building their Serious Business Stuff application on a 1-off, closed language. So please do as I say, not as I do, dammit. And pick something mainstream and "safe".
I swear I couldn't make this stuff up even if I tried. Joel, you're my new hero of irony. And as soon as you start selling those t-shirts with "Serious Business Stuff", I got green ready to flow. Short of that, I'd take a red teddy bear with the embroidering "Someone is Going to Get Fired".
Oh, and let me address something that I wasn't specific about in my post on this - his FUD on Smalltalk (and Lisp, Ruby, etc)
Last summer when we had a group of interns build Copilot, we had to decide what language to use for new code. I know that typically on new projects there's a long evaluation period where you decide what technology to use, along with lots of debates that include some crazy person actually wasting quite a lot of time evaluating Squeak and Lisp and OCaml and lots of other languages which are totally, truly brilliant programming languages worthy of great praise, but just don't have the gigantic ecosystem you need around them if you want to develop web software.
So let me get this straight, Joel: having one of your developers build a custom language (bus count: 1) is a better idea (with a bigger "ecosystem") than using Smalltalk? Or Lisp? Or Ruby? Sheesh, I'd call that stupid, but I'd be insulting all the stupid people that way. This goes down from stupid, straight into stoooopid.
Let me know how things work out on that when your Wasabi guy moves on to the next great opportunity.
Technorati Tags: FUD
Stories like this are just fascinating to me. The studios are getting nervous, because Apple wants to offer movies for download, and Wal-Mart is unhappy with what that will do to the wholesale prices (Wal-Mart is the major retail vendor for DVDs in the US).
The Elephants can dance on this one, and the prices should fall for consumers either way. That's a good thing.
Well, I wonder about this: Tom Foremski passes on a tidbit from Waggner Edstrom, the PR firm that works with Microsft (and has for quite awhile):
Paul Abrahams works very closely with Microsoft and is in Seattle on a regular basis, advising the software giant on many strategic aspects of its operations. I haven't heard from Paul in a while, so it was a delightful surprise when he called me just an hour ago.
What he wanted to tell me was that he had written a column for the UK PR Week trade publication on blogging. "I've mentioned you in it," he said. "But I've basically said, regarding all this stuff about blogs, I just don't get it..."
Either Waggoner is trying to be cute, or there's some delicious irony there, given how open Microsoft has been with blogging.
Update: Waggener Edstrom responds
New Hitwise findings indicate that MySpace sent more US traffic to online retail sites last week than MSN search, the third largest search engine on the web. That’s big news, as it’s tangible evidence that youth oriented online social networking is a market driver of serious proportions.
The Hitwise report puts Yahoo! as the source of 4.69 percent of traffic to online retail sites, MySpace as 2.53 percent and MSN search at 2.33 percent for the week ending August 26th. Google leads the pack at 14.93 percent.
I guess the commenters under my earlier post on this were on to something :)
Technorati Tags: social+software
Joel Spolsky gives development advice that boils down to this: whatever you do, don't try anything different - you wouldn't want a competitive advantage or anything:
Last summer when we had a group of interns build Copilot , we had to decide what language to use for new code. I know that typically on new projects there's a long evaluation period where you decide what technology to use, along with lots of debates that include some crazy person actually wasting quite a lot of time evaluating Squeak and Lisp and OCaml and lots of other languages which are totally, truly brilliant programming languages worthy of great praise, but just don't have the gigantic ecosystem you need around them if you want to develop web software. These debates are enormously fun and a total and utter waste of time, because the bottom line is that there are three and a half platforms (C#, Java, PHP, and a half Python) that are all equally likely to make you successful, an infinity of platforms where you're pretty much guaranteed to fail spectacularly when it's too late to change anything (Lisp, ISAPI DLLs written in C, Perl), and a handful of platforms where The Jury Is Not In, So Why Take The Risk When Your Job Is On The Line? (Ruby on Rails).
Yep, be like everyone else, building on exactly the same frameworks - there's the ticket.
Ironically, it seems that in his own shop, he doesn't exactly follow his own advice:
Hmmm - a custom development language that is specifically designed to solve their problems. Hmmm.
It used to be that companies could quietly bury costs in a contract, secure in the knowledge that few would notice - and that the only pressure they would face would be a few cranky (snail) mails.
Those days are gone, thanks to the net - blogs and podcasts in particular. I heard about Verizon and BellSouth deciding to keep bozo charges on their DSL bills after a regulatory change - and there was plenty of other noise about it - Engadget fills us in:
In case you haven't been following the exciting world of telecom regulation lately (and really, why would you?), the FCC recently mandated that DSL providers no longer have to pay into the Universal Service Fund that's meant to subsidize rural and low-income phone service (and that may induce all kinds of pork-barrel spending, but that's a whole other story right there). Anyway, the elimination of this surcharge was supposed to be passed along to consumers in the form of lower monthly bills -- and many companies, including AT&T and Qwest, did just that -- but the sneaky suits over at Verizon and BellSouth decided to keep charging customers almost the exact same fee, though for different reasons. Verizon claimed that it had "developed new operating costs" in the previous year, justifying this so-called "supplier surcharge," while BellSouth began calling theirs a "regulatory cost recovery fee" -- even though the USF contribution regulation no longer existed.
These are the kinds of stupid vendor tricks that used to work, and don't work any longer. There are still plenty of suits out there that haven't caught up yet though.
I have to admit: watching the Red Sox meltdown has been a real pleasure. As a Yankee fan, it's especially enjoyable (even more so after 2004). It seems that this guilty pleasure is not limited to Yankee fans though:
But the Red Sox losing five straight to the Tampa Bay Devil Rays and Kansas City Royals, then following that with two six-game losing streaks, the first including that five-act meltdown against the New York Yankees, the second still going as this is written -- and if I type fast enough the losing streak will still only be six when I finish: It's not a Yankees swan dive but we'll take it around here as the next best thing, the fall of the Evil Empire Mini-Me.
This is fun because, aside from watching your own team win and luxuriating in the schadenfreude of witnessing a Yankees loss, nothing is more fun than watching the Red Sox disintegrate.
Well, except for that part about the Yankees, yeah :)
I went through the style sheets, and changed all the absolute font sizes to percentages - which makes the text resize option in IE work for the blogs here. I may not have the various sizes perfect yet; I'll have to systematically go through and eyeball it
Update: I restored the original themes for water, air, impact, fire, and plastics - they just looked wrong. I'll have to do a lot more testing. So, if you use IE and want to resize text, I'd recommend using the Cincom, Cst, or Stic themes.
Nick Carr quotes Ryan Carson on social software:
I just don’t have time to use all of these amazing apps, and I’m guessing you might not too. I’m a fairly typical web citizen. I’m 28, married, make a reasonable wage, own a house and I have a few close friends. You’d think I’d be a web app company’s dream, but I’m not. How come? I’d love to add friends to my Flickr account, add my links to del.icio.us, browse digg for the latest big stories, customise the content of my Netvibes home page and build a MySpace page. But you know what? I don’t have time and you don’t either.
I think I have to agree with that. I started using del.icio.us about a year ago; I stopped after a few weeks, because the extra effort didn't seem worth it. Heck, I only just started using technorati tags in my blog posts recently, and I've had support for it in my posting tool for awhile.
The current mix of social software seems to me a lot like the last big fad, which centered around services like LinkedIn. Other than responding to other people's requests for a link, I haven't had anything to do with it. The bottom line is, these things take effort to use. Not tons, but effort. It's simpler to just not bother.
I'm sure that some people find these apps useful and compelling. I'm not one of them though, and I'd guess that most people aren't.
Ed Foster classifies Comcast's inability to properly handle blacklists as a preview of non-neutrality. The problem:
A reader who is a Comcast broadband customer had a disturbing experience recently. "I'm at a total loss about how to handle this situation," the reader wrote. "An e-mail to me from a friend got bounced apparently by Comcast. He resent it to my G-Mail account so I could see it. It said that his message was "Blocked for abuse. Please send blacklist removal requests to email@example.com ' among other stuff. So apparently there exists a Comcast blacklist that I cannot control that stops e-mails and that requires my correspondents to ask to be permitted to send me messages."
I like his summary better than his introduction - there, he figures that this is almost certainly incompetence. I wouldn't be surprised if it's fear of a lawsuit. Say customer A gets a message (or more than one) from someone, and he complains to Comcast that the message is "hate mail". I can definitely see scared management talking to overly excitable lawyers first, and blocking an entire domain. I can see the same thing happening with overly aggressive spam filters.
Heck, here at Cincom, the spam filters have been improperly tuned - they were junking all mails that had snippets of Smalltalk code in them. That made things real easy for support, I can assure you.
The root of this problem has very little to do with neutrality, and everything to do with an over-reliance on automation. Spam detection tools are just that: tools. I think too many shops just crank up the settings and never bother to look at the results - they never realize what the false positive rate looks like. That's a management issue, not a technical one.
Technorati Tags: net+neutrality
Here's a problem for the upcoming PS3 that Sony can't do much about: manufacturing problems with the laser components:
Things are looking dicey for both HD DVD and Blu-ray, because a key component has suddenly become scarce: blue laser diode yield rates are only 30% according to Nichia, a company responsible for 80% of the blue laser diode supply. The diodes are used in both HD DVD and Blu-ray players, and the shortfall will severely limit the number of players that can be shipped.
It could be even worse: if this rumor is true, then the PS3 will be delayed (at least in quantity) past Christmas:
Sources said only Pioneer and Plextor are currently able to maintain shipments of products using the blue diodes, with Toshiba soon joining them. Another source says any new models using those diodes might be postponed until 2007.
Hat tip Scoble.
Scoble has corrected a post where he got on someone's case for copying his content:
UPDATE: Looked like Elliott Back was the author of that site, but now I learn he just wrote the software (Elliott just called me and says he’s not involved). This guy John Comokaz (firstname.lastname@example.org) is bothering Elliott too, by dragging his Elliott’s name through the mud. I just did a whois lookup and found the guy who does the crazyfactor site is John Comokaz.
Looking through Scoble's comments, a bunch of people praise this Back guy (I wonder if any of them are sock puppets). Here's the thing: the software he wrote serves one purpose - to create splogs that steal other people's content. That makes him just as low as the sploggers in my book. I'm with Doc Searls on this one.
Technorati Tags: splog
John Dvorak thinks that the move of Google's CEO to Apple's board could signal a Sun/Apple merger:
As soon as Google CEO Eric Schmidt was named to the board of directors at Apple some mild speculation ensued suggesting that he'd eventually become CEO of Apple. After all, Schmidt, unlike many other high-profile CEOs, is not one to join every board that has an opening.
In fact Schmidt may have been brought in as the set-up pitcher for what may finally be the often rumored merger between Apple and Sun. Schmidt would quietly be Sun's inside man on the negotiations although technically he's be a neutral party since he doesn't actually work for Sun.
I'll believe that when I see it - and I think it would be a cluster you know what of absolutely epic proportions. If it happened, the first thing you would see would be savage cuts on the Sun side of the house, in order to stop the bleeding. That would lead to the all too common (in merger situations) middle management warfare. I've lived through a smaller version of that, and believe me - no one wins.
Here's my prediction: if such a merger does take place, the combined company will be smaller than either one within 5 years.
This is the vision that keeps the RIAA up at night:
Imagine a world where musicians keep the copyright to their music and make $5 or $6 per album sold instead the current $1 or $2. This is a model being proposed by Terry McBride, CEO of Nettwerk Music Group. With sales of CDs continuing a downward spiral, he realizes that the music industry needs to make some changes.
Right now, there are a gazillion middle men (most of whom subtract value) in the music business, and the upshot is that artists collect virtually nothing from CD sales. Here's what could change that:
McBride’s model calls for artists to record under their own labels. They retain ownership of their music. Companies like Nettwerk take the place of all of the different players who are typically involved in selling CDs. This means any profit has a much smaller split, with all involved able to take more home. In addition, keeping the copyright in one place makes it easier to sell songs to advertising agencies, to approve free downloads for promotion, or to do whatever it takes to market the music. Every move doesn’t require multiple approvals.
That would be like a breath of fresh air in the industry, and it's exactly what the RIAA doesn't want. They want the status quo, so that they and all their middle men can continue to subtract value and rake in profits.
Technorati Tags: DRM
Markus Denker has announced a Smalltalk gathering in Bern, Switzerland on October 28th:
SSUG is organizing a Smalltalk Gathering. We invite all Smalltalkers to join this event to share their enthusiasm and knowledge about Smalltalk.
University of Bern - IAM Bern, Switzerland
Here is some information on how to get there:
Sat 28h of October 2006 -- 9:30am until ...
email : email@example.com
If you plan to attend, please register on the Wiki
Send Markus an email in order to get the Wiki password.
Technorati Tags: smalltalk
There's an interesting bug in the VW menu editor that crops up if you have Pollock loaded and want to add message catalog information to a menu item. Here's a screen shot of the tool I'm talking about:
There's a lookup key and catalog specified for that item, but they don't show (and, if you try to enter them, they don't stick. Again, this only happens if you have Pollock loaded. As it happens, there's a method added to class UserMessage that looks like this:
evaluate ^self asString
That interferes with showing the catalog data. The fix? Simply comment out the code, which makes the method return self. In the next build of Pollock, this method will be going away - it turns out to be legacy code (ironic, given that Pollock is still in development).
I expect that most people won't run into this, but if you have Pollock loaded, you will.
Technorati Tags: smalltalk
Apple's UNIX (who knows what it'll be called by then) will overtake commercial Linux in rate of revenue growth by the end of 2007. By mid-2008, Apple's sales of systems with factory-installed Apple UNIX will exceed the total combined sales of x86 systems factory-shipped with commercial Linux. At the end of the decade, we'll find that Apple UNIX has overtaken commercial Linux as the second most popular general client and server computing platform behind Windows.
This is a good thing. Microsoft has desperately needed competition to wake them up from their somnolence, and it looks like they're going to get it.
Technorati Tags: apple
This is kind of neat: STIC has decided to make [ | ] an official logo for Smalltalk. In Smalltalk geek circles, people sometimes refer to themselves as "Knights of the Square Bracket" :)
As part of the Smalltalk Central initiative, the Smalltalk Industry Council now advocates for the use of [|] (bracket, vertical bar, bracket), as in: '[|] Powered by Smalltalk'. [|] represents a unique aspect of Smalltalk syntax, it's easy to include in both graphic and text based content, and, over time, will become a recognized logo.
Count me in!
Technorati Tags: stic
Lee Gomes of the WSJ has dug into YouTube, and come up with some fascinating statistics - head on over there for them, or check Steve Rubel's post for a quick summary. Here's the part that still makes me wonder:
YouTube videos take up an estimated 45 terabytes of storage -- about 5,000 home computers' worth -- and require several million dollars' worth of bandwidth a month to transmit.
Those costs are one reason that some predict YouTube will collapse under the sheer weight of providing a haven for every teenager with a cellphone camera eager to be famous for 15 minutes of video.
I've been wondering about those costs for awhile - it seems to me that unless they start charging a subscription fee, or start selling ads on the TV model (i.e., patched into every uploaded video), there's simply no way they can stay afloat for the long haul. Am I wrong? What am I missing here?
Technorati Tags: business