sts2007

STIC General Meeting

May 1, 2007 19:51:33.079

Here we are at 6 PM on Tuesday, and it's time for the STIC event. Bob Nemec has introduced Georg Heeg, the new executive director of the council - you can read Georg's thoughts on this over here, on his blog. Here's his evening summary:

The STIC board is made up members from Cincom, Gemstone, and Instantiations. So - what does STIC do now?

  • Organizes Smalltalk Solutions
  • Provides Websites
  • STIC does some level of user group coordination

STIC has a slightly different mission from user groups: STIC tries to raise the awareness of Smalltalk beyond the Smalltalk community. What are Georg's goals?

Improve awareness and visibility of Smalltalk in the industry

Bear in mind: STIC is a volunteer organization. What you do for STIC you do for Smalltalk in general. So back to Bob Nemec, for what happened over the last year.

A year ago, we had some issues - finances were messy, websites were stagnant or non-existant. The finances are now documented, and there are websites:

We lost stic.org - there were issues with our domain registrar. The new STIC site can take payments for individual members. Upstairs, there's a Squeak booth (set up with the help of Chris Cunnington, a complete Smalltalk newbie). Which points the way to the future: STIC can help mostly by getting help from the Smalltalk community :)

Next, a few words from each board member - my thoughts are all over my blog all the time, so no need to repeat them here :) Ed Klimas (Instantiations) spoke about the actual cost (in terms of function points) of converting an application from Smalltalk to something else (and, as I've said here before, such conversions are rarely justified, regardless of which languages and directions are involved). Ed has data behind that point, that come from a variety of sources - Steve McConnell and Capers Jones being two of them.

So using that, given a 3000 function point system, Smalltalk will take 50-60 person months, while Java will take 300 person months. The dollar cost differential there is obvious. At a micro level, Java will give you numbers on the order of 20 function points per man month, even for high end developers. Smalltalk can crank you as high as 100. Ed has discussed these numbers directly with Capers Jones, and he wasn't surprised. Moreover, Java and .NET developers aren't cheaper than Smalltalkers anymore :)

Crunching Ed's numbers, for a new application, Smalltalk will be 2x to 3x cheaper in terms of $$. What about conversion? Bear in mind that testing now consumes half of the development schedule - and in a conversion, testing is going to be a very big piece. Now we get to errors per function point:

  • Smalltalk: 0.14 per function point
  • Java: 0.50 per function point

Note how much "static typing" helps :) Further, Eiffel on that list was at 0.21 per function point (Haskell was at 0.18). So much for that. So: an experienced developer injects 100+ defects per KLOC. Only half will be found by a compiler - so in a typical conversion - you end up with more code (and thus, more errors). Which gets back to something I've said: a conversion forces you to stand still (feature-wise) for the duration of your conversion, and it adds errors you don't have now. Bottom line: Converting from Smalltalk to X (whatever X is) makes no economic sense. The slides will be available on the Instantiations site shortly.

Technorati Tags:

 Share Tweet This

sts2007

Interfacing with C

May 1, 2007 19:51:20.804

Last talk of the day (not counting the STIC event later), and it's Michael Lucas-Smith talking about Smalltalk and C interfacing. First question: Why do we bother with C? C is the "standard" level of access to operating systems, databases, libraries, etc. It's what you use if you want to reuse.

There are two main ways to interface: wrap an interface into the VM via primitives (relink/recompile the VM), or use a foreign interface (like DLLCC). There's a third way: Recompile the foreign library such that it can talk to you. This is the best way to get C++ apps (that don't have a C API) to have an interface. Python does this heavily, and has some partial automation in that direction.

VisualWorks:

  • C Header Parser (has limitations, more or less dated to the K&R spec)
  • You end up doing the interface "by hand"
  • VW does have good error handling with calls out to C, and can handle threading C calls.

VisualAge:

  • C functions defined in a large pragma definition
  • Structs are subclasses of OSObject or OSPtr

Squeak, Dolphin, and VW are similar in terms of how they talk to C - Squeak does have the interesting VMMaker thing.

GNU Smalltalk:

  • Limit description of the interface
  • Modify the VM by including the definition and recompiling
  • In your Smalltalk code you basically add a primitive

Smalltalk/X:

  • Dynamically compiles C code inline in a Smalltalk method - you can write C code in your methods

So - how do other languages do this? Python uses BOOST - allows you to make calls at the Python level very easily. Perl is mostly similar - open the DLL and then call the C API you want to hit. Ruby is the second worst (Only Java is worse). You recompile the C library with additional macros, and then make calls. The Ruby folks don't seem to mind though - they do lots of C interfacing.

C# - no structure information from the header file at all. You import the DLL and specify the entry points (basically, a separate manifest file from the header file). Somewhat similar to the way VW works (at a high level).

Java - the hardest to integrate.

  • Modify the DLL
  • Write an interface library
  • Java will fix up the arguments based on this "middle man"

Lisp - somewhat similar to the way Perl and Python does it. (Aside - varies by implementation?) Scheme is the same, but with different names.

Forth - they have a header file parser, like VW, but it works better. However, it looks like moth Forth programs statically link libraries rather than use dynamic linking. There are also a lot of Forth implementations.

What about COM, .NET (etc)? The VW COM interface subclasses of COMInterface (usually IUnknown) which does a DNU to do dynamic lookups. The calls are easy to make. The DotNetConnect - you subclass off DotNETObject, actual calls are done using the C interface (as with DLLCC). Some Lessons:

Don't Reinvent the Wheel - we interface to C because the libraries already exist. For instance: LibXSLT. VW has an XSL library, but is not standard compliant (created pre-standard) - and thus does not work with XSL "in the wild". Much of the open source code out there is cross platform, so you don't lose anything if that's true. Even if it's single platform, that may not matter for your project.

Sometimes, you need to Reinvent the Wheel - LibTidy only worked on win32 and Linux, and was unstable. The Mac and Unix versions were only command line, not DLL. The end result: time might have been better spent writing a Smalltalk version.

Don't use C interfaces - if you can use a command line stdin/stdout interface, you may be better off just doing that.

Don't use C - Sometimes you're better off just writing the application in Smalltalk. Used to use LibASpell for spell checking in the XML Editor (but it was slow). Redoing it in Smalltalk with a better algorithm was simpler and better.

Use C - When you come across a library that's worth it (Michael's example: BerkeleyDB). In the process of doing this, a few bugs cropped up - issues with fragmentation in FixedSpace, for example.

Most slowness in C interfacing (VW) is from garbage created as a side effect. Michael's suggestion? Allocate on the stack for C Calls, as C does. Another lesson: don't use ephemerons for C objects, as this just spikes the GC harder.

What ends up happening? People implement an interface to the little bit of a library that they need access to, and no more (because dealing with the header files is so hard). Many of the libs Michael has built are pieces of the Windows API. So why is this hard? C Parser grammar is kind of insane. C is a partially context bound grammar. The C pre-processor is powerful enough to play towers of hanoi! C++ is completely context bound grammar. C++ templates are virtually impossible to deal with, and C and C++ ABIs have deficiencies:

  • size and alignment of data types
  • layout of structured types
  • calling conventions (cdecl, pascal, etc)
  • register usage conventions
  • interfaces for runtime arithmetic support
  • object file formats

C++ has these, and adds more (name mangling!). Also exception handling, invoking constructors/destructors, layout, alignment and padding of classes, and layout and alignment of virtual tables. Interestingly, intel has fixed this in x86 64 :)

SWIG (Simplified Wrapper and Interface Generator). Has its own syntax for describing interfaces. Generates a compiled version for an existing language - need to create own for each language. Python BOOST is similar, done better for Python only (now). Works for C++, allows calling back and forth from Python and C++. GCC-XML outputs an XML manifest prior to compilation - complete reflection for C/C++. No need to parse header files with this. Pyste is a combination of BOOST and GCC-XML to build Python/C++ interfaces. There's also C++Filt - claims to be able to de-mangle names. If it works, you could automate interfaces to C++.

Wishlist:

  • Smalltalk modeling
  • Stack allocation
  • ANSI C compliant parsing
  • All common and OS libs pre-parsed and delivered withVW
  • C++ interfacing
  • C++ reflection
  • Automatic generation of classes based off C structures and functions that use those structures

Technorati Tags: ,

 Share Tweet This

sts2007

3D CAD in Smalltalk

May 1, 2007 19:51:09.650

Next up: Aik Siong Koh with a talk about 3D CAD and Motion Simulation. The motivation driving him is that UIs in general seem to be moving in this direction (virtual reality games, Croquet, Second Life). Why Smalltalk? CADSM is very complex - Smalltalk is time tested and simpler. VisualWorks gives him platform independence.

What is freeCAD?

  • Basic 3D CAD with advanced motion simulation
  • Imports DXF (AutoCAD) and STEP (ISO Standard format) files

You can grab this stuff at askoh.com. Cool - he tried running this stuff on the OLPC an hour ago, and freeCAD worked - meaning, VW works there :)

Looks like the rest is a demo, so your best bet is to download it and try it yourself. The math problems are gbeing solved using StMath, which is part of the overall package (you can get that in the public store). Future work?

  • Improve GUI and Solid Modeling
  • Port to Squeak and Croquet
  • Port to OLPC
  • Motion add-ons for other CADs
  • Control robots and CNC machines
  • Finite Element Analysis
  • Computational Fluid Dynamics
  • System simulation (Modelica)

He's looking for volunteers to help out :)

Technorati Tags:

 Share Tweet This

sts2007

VA Smalltalk Roadmap

May 1, 2007 19:50:57.878

What's coming for VA? Windows Vista support and support for SuSe Linux look like the two main things. They'll have direct support for User Account Control (including registry access, file access, etc). VA Smalltalk makes use of the standard Vista manifest for this stuff. Setting up Envy servers still requires admin access rights.

They have support for Aero if you turn on the Vista theme support - that's done in the application manifest file. This support is in VA 7.5 and up only. The SuSe linux support is the same as RedHat - the new thing is formal support. They now have large address support (up to 3 GB in Windows). You need to link VA Smalltalk executables with specific switches.

They've added Oracle 10 support. That includes BLOB and CLOB support. There's also been a lot of bug repair in the Oracle and DB layer support.

They've upgraded the documentation for Web Services, including a Web Services Demo. This includes a set of tools to make the process of building WS* stuff easier. They've made loading the Refactoring browser and "Mastering Envy" extensions to it simpler (at the Envy load level). They are also including the SUnit Browser, and plan to integrate it into the RB.

Envy/QA is now part of the base, rather than an additional purchase. Interesting side note in a discussion of goodies/contributions - there's no free download available, so you need to contact Instantiations if you would like to contribute.

The browser has gotten an icon refresh, such that they look better on Windows and Linux. As to the future?

  • Seaside - needs continuations which VA does not have. They are looking to either change VA contexts, or do some image level work that would emulate and get them "close"
  • Web Services - XML Editor, Wizard tools, diagnostic tools
  • IDE Enhancements - a lot of consolidation of formerly extra tools into the base. On Windows, move to Windows controls for tools.
  • Installation - Consolidate the installers for client/server (Envy) into one. Work more seamlessly with Windows Vista UAC. Work on supported Unix/Linux w/o manual intervention
  • Documentation - Update docs to PDF or Windows CHM. Investigate the future of F1 help.

Since version 7 (2004), they've had over 5000 downloads, about 2000 active users, over 200 active customers. Support is mostly moved from the old IBM forums to Instantiations own site. Pricing is still the same as it's been.

Technorati Tags:

 Share Tweet This

sts2007

There is no Spoon - O/R in OLTP Systems

May 1, 2007 19:50:44.490

This morning's talk is with Thomas Gagne, who is the technical lead for InStream Services. Thomas is going to talk about how they use databases, and how they map objects into them. Thomas has an interesting take on this field: his assertion is that there is no Object/Relational impedance mismatch. You can read Thomas' take at his blog.

Big Statemements

  • The database is the biggest object in the system
  • The database is the most important object in the system - everything else is cosmetic
  • The database is not invisible

The database is a Semantic Persistence Store (SPS) - a self contained component for managing data. Other examples of an SPS: X.500 Directory Services, Domain Name Service (DNS).

Another concept: Message Oriented:

  • Communicate between two loosely components
  • Characterized as the message having its own identity
  • Its own Object
  • Believed by Alan Kay to be very important

So what is the O/R impedance mismatch? The attempt to map tables and columns to objects and methods. At the bottom, OO and RDB are similar but fundamentally different. In Thomas' shot, there is no separation between the OO and Relational people - the same staff handle the applications and the database.

So why are we here? Assertion: The impedance mismatch does not exist in OLTP systems. OLTP is loosely coupled and highly cohesive. Observations:

  • Business came before the technology
  • The technology is there to assist people

Smalltalk Rules:

  • Private Data
  • Activation via message sending (late binding being important)

How is an SPS like a Smalltalk Object? It's a subclass of a more general database. It can dehydrate and rehydrate. It's a state object, it's a singleton. The database is reflective (you can ask the database questions about its structure). Reacts poorly to tight coupling - changes to internal data can be hidden behind an API.

How do they differ? A database does not enforce API only access (variables are public by default). So now Thomas is off to an example - a simple banking application with four methods: login, logout, add money, remove money. The idea is that by giving the database an API (stored procedures in this case), you isolate it from changes at the application level. They don't have application level SQL at all - they have "guarded" the database with a stored procedure API.

Technorati Tags: ,

 Share Tweet This

development

Platform: King, or Irrelevant?

May 1, 2007 19:50:29.129

There are two interesting pieces of news out this week that could lead to different ideas of what the future of development is going to look like:

  • The Microsoft announcement of cross platform support for the CLR, which includes improved dynamic language support. Add in the JRuby work (and the presumed JVM improvements for dynamic languages), and you start to think that it's all about two platforms
  • Amazon just re-priced Elastic Computing - bandwidth charges dropped.

The first case leads you think that the VM platforms matter a lot - the second makes you wonder whether they matter at all. If you use S3 and ECL, no one knows (or cares) what you are running, so long as it scales sufficiently. And it will scale sufficiently either via work on your end, or the virtual throwing of more hardware (ECL VM instances) at it.

I don't know how it will come out, but I don't think it's as simple as "it's all about the platform".

Technorati Tags:

 Share Tweet This

podcast

Industry Misinterpretations 33: Smalltalk Solutions

May 1, 2007 0:53:21.063

We recorded today's podcast at Smalltalk Solutions, in the room where the Coding Contest was wrapping up - download the podcast to get the results. We had all of us - myself, Dave, Michael, and James Savidge together in one place for the first time ever, and we also had a pretty full audience to play off of. We discussed today's talks at the show, the Coding Contest, and some news from Gemstone. Check it out - it was a lot of fun to do this week!

Technorati Tags: ,

Enclosures:
[http://www.cincomsmalltalk.com/audio/2007/industry_misinterpretations-04-30-07.mp3 ( Size: 6090248 )]

 Share Tweet This

sts2007

Scrum with Joseph Pelrine: Part 2

April 30, 2007 15:51:19.242

Heh - Being late from lunch to the first part, I missed the opening, where Joseph ran a video of an unmanaged - but efficient - traffic intersection. No lights, no signs, seeming chaos - but no accidents, and continuous flow.

So on to Scrum Practices:

  • Iterations of 1 to 4 weeks
  • Team builds functionality that includes product backlog and meets Sprint goals
  • Team self-organizes to achieve goals
  • Team conforms to existing standards and conventions
  • Abnormal termination of Sprint:
    • Team can cancel Sprint if the goal of the Sprint is deemed to be unattainable
    • Product owner can cancel based on external circumstances changing

An interesting heuristic for Sprint length: How long can management shut up and allow the team to work? Another interesting comment: "The purpose of meetings is to keep people from taking responsibility".

Product Owner:

  • Takes ownership of the backlog
  • Can be influenced by committees, management, customers, sales (etc)
  • Responsible for ensuring that the most important business functionality is delivered first
  • Ensures that one (and only one) set of requirements drives the project
  • Eliminates the confusion of multiple bosses, interference, etc

Scrum Teams:

  • Cross Functional
  • Selects the iteration goal and specific work results
  • responsible for committing to work
  • Self organizing
  • Authority to do whatever is required to meet goals
  • Open, co-located space
  • Demos work results to the Project Owner

Ideal team size: Seven +/-2. That's the largest size that can sit at a table and all engage in one conversation.

Scrum Master:

  • Responsible for establishing Scrum practices and rules
  • Representative to management
  • Representative to team
  • A coach
  • Engineering and Development skills
  • Agile version of IT project manager

The Lead developer really can't be in this role, due to conflict of interest issues. A Scrum Master can be defined as a "Servant Leader".

There are few roles and few practices - Scrum is low overhead. There's a Product Planning Meeting, where requirements emerge. From that, a product backlog gets put together - this consists of functional and non-functional requirements. Anyone can add to the backlog, but the Product Owner is the only one who prioritizes.

Estimates for work - like produce - have a "sell by" date, and that date is the end of a Sprint. At the end of a Sprint, the estimate will either be past (i.e., functionality delivered), or need revisiting. Joseph recommends this book: "Agile Estimation and Planning" by Mike Cohn, as a good source of information about how to do agile planning.

Scrum Planning Meetings:

  • What's on the backlog
  • What are the Team Capabilities (who can do this?)
  • What are the Business Conditions?
  • How stable is the technology? What's Changed?
  • Executable Product Increment (what did we do last Sprint)

The goal is to plan the next sprint.

Daily Scrum Meeting:

  • 15 minute status update - trick to get people there on-time: last in talks first
  • Same place/time every day
  • Meeting room
  • "chicken and pigs"
  • Three questions:
    • What did you do yesterday
    • What will you do today
    • Do you have any impediments blocking your progress?
  • Impediments and Decisions

Another thing here - Joseph recommends lightweight tools. Index Cards, Spreadsheets, web-based equivalents for distributed teams.

Sprint Review

  • What did we do?
  • Retrospective
  • New priorities set
  • Team devises solution to most vexing problems

Common complaints as to why "it won't work for us"

  • We don't have the right people
  • Requires business involvement
  • Project is too big for Agile
  • Project is too complex for Agile

In all these cases, there's a business problem. You know you're doing Scrum when "things come together" - you realize that you can start a project without all information, the team starts to work as a team of developers.

Technorati Tags:

 Share Tweet This

podcasting

Podcast Reminder

April 30, 2007 14:36:00.151

Head on over to room 201F around 5PM for today's StS 2007 Podcast. Michael, Dave, James, and I will discuss the show, the contest, and anything else that comes up - including any audience questions that get thrown at us :)

Technorati Tags: ,

 Share Tweet This

sts2007

Scrum with Joseph Pelrine

April 30, 2007 14:11:13.373

I walked into this one late - the pub we hit for lunch wasn't really ready for a sudden flood of 20 people :) So - I came in to hear Joseph talking about "retrospective coherence", which we discussed in this podcast awhile back.

Here's a good question: "How long from here to Ottawa?" - Answer: 4 hours. The problem: how many implicit assumptions are built into that answer (by car, with what kind of traffic, in what kind of weather, etc.).

What is Agility

  • It's not just going faster with less process
  • It's a discipline

We call it the art of the possible. In fixed price contracts, customers don't get to change their minds (except later, at an additional cost. In an agile contract, customer pays for every iteration, can change direction after every iteration, and gets a running (viable) system after each iteration. If you do this right, you can start delivering value in as little as 2 weeks.

Scrum is a system for managing work in a socially complex domain. One where there is uncertainty due to unfairness/emergence issues (technology change is an example of the latter). It's been around since 1990, and doesn't say anything at all about the engineering process itself. Interestingly enough, it can be used in a fully CMM level 5 fashion (making it Enterprisey ready :) ).

Interestingly enough, one of the first software product uses of Scrum was at Easel on the Enfin product (Enfin is the predecessor of Cincom's ObjectStudio). One of the biggest priorities of Scrum is keeping the product backlog open as a living document. It needs to be revisited at the end of each iteration and updated to reflect new information. So with that, we have the first break - we'll go through the Scrum practices after the break. So - stay tuned for the next post :)

Technorati Tags:

 Share Tweet This

sts2007

Ruby on Rails

April 30, 2007 11:57:45.549

So part 2 - Ruby on Rails. First - use the packager and install Rails. "What is Rails?" Rails is a wrapper around a bunch of other little frameworks. The core is made up of ActiveRecord and ActionPack. ActiveRecord is a simple O/R mapping pattern. ActionPack implements the web-facing piece, implementing an MVC pattern for the web. The big thing to remember about Rails is this:

Convention over Configuration

One of the results of this is that using Ruby, you don't end up arguing over things like "which db framework, which directory structure...", etc. etc. So the first step - create an ActiveRecord subclass for the first bit of the domain, and then use some Ruby code to create a table for it. The class Chad created has more fields, but you get the idea:

 

class CeateContacts < ActiveRecord::Migration
	def self.up
	       create_table :contacts do | t |
	       t.column :first_name, :string
	       t.column :last_name, :string
		 t.column :created_at, :datetime
	end
end

def self.down
	drop.table :contacts
end

end

Class Contact < ActiveRecord::Base
end


That last bit does the class to table mapping. That's it - by following this convention, we have the mapping. Note that we didn't worry about primary keys, SQL (etc, etc). You can name various columns in ways that will automatically map to the database in intelligent ways.

There's a nice log being kept for you that saves a record of your database interactions; this can be useful for figuring out what SQL is being created, and where you may need to tweak.

Some more code - a controller (the handler for actions on the back end). There would typically be a view here for rendering, but we are just being simple (like my web examples in my screencasts :) )


class ContactsController < ApplicationController
def index
	@contacts = Contact.find(:all)
	render :text => @contacts.inspect
end

Now a new View HTML Page (in its own directory structure spot) to handle the rendering. Like web toolkit (and other web frameworks), there's a way to embed Ruby code in pages


<html>
<body>
	<h1>Contacts!</h1>
	<ul>
	<% @contacts.each do | contact | %>
		<li><%= contact.first_name %><%= contact.last_name %></li>
	<% end %>
	</ul>
</body>
</html>

Simply change the controller to eliminate the specific rendering using inspect. The framework also handles giving you basic forms for editing domain objects based on the Ruby and DB definitions. There are a number of built in things for pagination, number of items per page (etc, etc).

With respect to code generation, Chad finds it to be mostly useful for "getting started" and setting up the initial scaffolding.

Technorati Tags:

 Share Tweet This

sts2007

Ruby For Smalltalkers

April 30, 2007 10:25:59.035

Well - the network situation this year is marginally better. I can actually get to a hotspot, but I have to pay $13 (CDN) for a day pass. That gives me network access as I sit here in the "Ruby for Smalltalkers" tutorial with Chad Fowler.

So - to get started on that, Chad's pointing out that Ruby is a lot like Smalltalk, albeit without the image or tools. So for instance - in the interactive interpreter, you can list the methods for a Ruby class, similarly to what you could do in an inspector. Interesting side point here - Ruby is serving as a "gateway drug" for a lot of companies - so it may help get other niche languages - Smalltalk, Erlang, Lisp, etc.

On to Ruby: Variable types

  • $variable - begins with a $, so it's global
  • local variables (scoped to the area they are defined in - method, class, etc)
  • Pop an @ sign at the front - you get an instance variable
  • Class variables exist as well
  • Constants exist as well - assignments that begin with a capital letter are Constant (and global)

Heh: "Java is written for Stupid People". Does not mean that all Java developers are stupid; rather, it means that Java attempts to protect you from yourself, such that intelligent developers get frustrated with the shackles.

One of the interesting shortcuts possible in Ruby is that "self" can be an implicit receiver of methods. So instead of:

"Smalltalk"
self print.
you can do

print

Which would be the same as:

self.print

Another interesting thing: I can, within a method, invoke super (without the method name or arguments), and have all of the arguments sent to the current method implicitly sent up. That also means that you can't have super invoke a method other than the one of the same name as the one you're in (which, while it would be bad practice most of the time in Smalltalk, is possible).

So here's a class definition with some methods:

 

class SomeClass

  def make_one
	superclass.new
  end

  def a_method(a_parameter, another = 123)
	@local_here = "whatever"
  end
end


So what about naming conventions for methods and/or parameters? There really aren't widespread conventions there. If you're looking at a class and set of methods, how do you tell what arguments the methods take? Documentation, source (etc).

The most interesting part of this session is how the audience is interacting with Chad - it's like twins that have never met, have some differences, but get along famously.

Back to Ruby - conditionals in Ruby are syntax. They have if-then-else and elseif. Some examples:

 

if a > b
	puts "yes"
elsif b > c
	puts "asdf"
else
	puts "no"

unless 2 > 1
	puts "abcd"
end

puts "it is" if 2 > 1

puts "hi" unless false

while a > b
	puts "yes"
end

for i in (0..2) do
	puts i
end


This is all different than Smalltalk, but then again, likely much more comfortable for people coming in from Java (etc). Another example:

 

1.upto(10) do | num |
	puts num*2
end

Is like

1 to: 10 do: [:num |
	Transcript show: num*2].


to define a block (closure):

the_block = lambda do | num |
	puts num * 2
end

1.upto(10, &the_block)

or invoke the block:

the_block.call(123)


Blocks cannot be serialized. At this point, there was a rather long trip down a rathole as to why Ruby blocks can be used the way they are, and I have to admit I zoned out on that - Why they are structured the way they are is less relevant than the simple fact that they are set up that way. So we're taking a break here, and we'll get on to Rails afterwards. I'll push that as a separate post.

Technorati Tags:

 Share Tweet This

smalltalk

Smalltalk training on CD-ROM

April 30, 2007 9:25:44.373

Dave Buck is making his training material available on CD:

As an alternative to or in addition to instructor-led training, Simberon will be providing Smalltalk training on CD-ROM.
 Share Tweet This

travel

In Toronto

April 30, 2007 7:20:49.974

I made it to the (rather small) hotel last night, and now it's time to hunt up some breakfast.

 Share Tweet This

PR

Bad PR Defined

April 29, 2007 23:33:35.719

I would have thought that Sony was full up on bad PR, but boy - was I ever wrong. They staged a promotion for "Gods of War II" that included a freshly slaughtered goat:

Electronics giant Sony has sparked a major row over animal cruelty and the ethics of the computer industry by using a freshly slaughtered goat to promote a violent video game.

The corpse of the decapitated animal was the centrepiece of a party to celebrate the launch of the God Of War II game for the company’s PlayStation 2 console.

I'd love to know which genius at Sony thought that would be a good idea...

Technorati Tags: ,

 Share Tweet This

travel

And Away we go

April 29, 2007 19:03:43.660

Next Stop: Toronto. Signing off the BWI WiFi, and heading to Air Canada. See you there!

 Share Tweet This

DRM

Speaking of copyrights...

April 29, 2007 13:54:10.081

Here's a tip for those clever folks who use DRM to keep us law abiding people from legally using stuff we paid for on a variety of devices we own: If you send out a "take-down" letter to someone who's posted AACS keys for a DVD online, don't include those keys in the urls you send along with the take-down. You already look stupid; no need to make it even more obvious.

Technorati Tags:

 Share Tweet This

travel

Heading to Toronto

April 29, 2007 12:44:34.250

I'll be heading off to Smalltalk Solutions this evening - one of the things I'd like to know is where people are headed after the dinner mentioned here. I arrive at the airport around 9:30, so I'll be way to late for the meal itself. Any pointers?

Technorati Tags:

 Share Tweet This

Silt

Category Search Fixed for IE

April 29, 2007 11:16:24.893

Silly me thinking that Microsoft would have fixed their Javascript implementation for IE7. I have a test for the category menu that sends variant Javascript down depending on the browser, and it wasn't working for IE7. Now that I have stopped looking specifically for IE6, it works again. Sigh.

 Share Tweet This

copyright

Looking at Copyrights

April 29, 2007 8:33:01.126

Reading my ongoing commentary about DRM, you might come to the conclusion that I'm against the whole idea of copyright. Not so much - and I think Dare Obasanjo just summarized the rationale behind copyright far better than I could - in a piece that does a take-down on TechDirt's "information wants to be free" take on the matter.

The arguments on TechDirt seem to boil down to this: "I like stealing music, so let me construct an argument that rationalizes my behavior". My anti-DRM stance is different; I think that the music industry is doing immense damage to itself by treating their entire customer base like criminals. That doesn't mean that I think we ought to live down to their theory.

Technorati Tags:

 Share Tweet This

PR

Adventures in Negative PR

April 28, 2007 20:25:13.080

It looks like the folks over at Skype (owned by EBay) - have allowed a lawyer to play at PR:

Skype lawyer Seema Sharma emailed blogger Jan Geirnaert Friday afternoon. She told him his popular skype-watch.com and skype-gadgets.com blogs put him in legal jeopardy.

Boy, that theory of operation worked so well for Warren Kremer Paino, and again for JL Kirk and Associates. Now it looks like Seema Sharma has stepped up to play "just how bad can I make my company look?" Do lawyers actually understand the way things work now? I can certainly understand Skype being concerned over the possible confusion with an unaffiliated site using their name - but would it have been too hard to try a soft approach first? A polite phone call by a non-lawyer - with some reasonable accommodation reached - would have been a lot smarter. Consider how Microsoft dealt with Mike Rowe, for instance. They started off stupid, but understood what was happening fairly quickly. If Skype has any sense, they'll slap the lawyer down and send in PR - stat.

Technorati Tags: ,

 Share Tweet This

books

Blink

April 28, 2007 16:06:14.317

I just finished reading Malcolm Gladwell's "Blink", and it was one of the most compelling little reads I've had in awhile. Gladwell does a great job of breaking down the way we make "snap judgments" - and how they can be both better and worse than a considered opinion - depending on things like visual cues, the overall flow of information, and our pre-existing (and not necessarily conscious) prejudices. It's a book that will make you ponder the way you think and act.

 Share Tweet This

podcasting

Come to our next Podcast

April 28, 2007 14:47:20.946

The next edition of "Industry Misinterpretations" is going to be recorded on Monday afternoon, after the coding contest at Smalltalk Solutions - so if you would like to come by and throw us some questions, come to room 201F at the convention center at 5PM. I'm not sure how long we'll go - we don't normally record for more than 40 minutes or so. See you there!

Technorati Tags: ,

 Share Tweet This

law

Patent Lawsuits are not a Business Strategy

April 28, 2007 10:33:27.631

SCO learns that concentrating on legal matters - as opposed to the core business - isn't really much of a strategy after all. Unless being De-Listed from Nasdaq was what they were after...

Technorati Tags:

 Share Tweet This

logs

Weekly Log Analysis: 4/28/07

April 28, 2007 10:12:43.714

Time for the weekly look at the logs - BottomFeeder downloads perked up to 191/day last week:

PlatformBottomFeeder Downloads
Windows453
Update260
Linux x86142
Sources119
Mac X114
CE ARM51
Mac 8/949
HPUX30
Solaris26
Linux Sparc24
AIX22
Windows98/ME14
SGI13
Linux PPC11
ADUX5
CE x861

HTML page traffic was up a bit - the Mozilla usage was, too:

ToolPercentage of Accesses
Mozilla50%
Internet Explorer37.7%
MSN Bot5.9%
Other1.6%
Opera1.9%
Ocelli1.5%
MSRBOT1.4%

The syndication traffic was up a bit as well - that distribution:

ToolPercentage of Accesses
Internet Explorer25.8%
Mozilla17.2%
BottomFeeder15.3%
Net News Wire5.1%
BlogLines4.6%
Google Feed Fetcher4.5%
Vienna3.7%
Other3.6%
FeedOnFeeds3.5%
Safari RSS2.8%
NewsGator2.3%
Strategic Board Bot2%
Liferea1.4%
Akregator1.2%
XML-FeedPP1%
Python1%
MSN Bot1%
Jakarta1%
JetBrains1%
RSS Bandit1%
Opera1%

It's interesting to see the syndication stats for IE go up, while the HTML accesses for it stay about the same. Not sure what that means :)

 Share Tweet This

esug2007

ESUG 2007 Call For Participation

April 27, 2007 22:09:39.261

I won't be able to attend ESUG 2007 this year, but other Cincomers will be there. If you're interested in speaking, they've just made a call for participation:

15th International Smalltalk Joint Conference - Call for Contributions

August 25 - 31, 2007 - Lugano, Switzerland


For the past 14 years, the European Smalltalk User Group (ESUG) has organised the International Smalltalk Conference, a lively forum on cutting edge software technologies that attract people from both academia and industry for a whole week. The attendees are both engineers using Smalltalk in business and students and teachers using Smalltalk both for research and didactic purposes.

As every year, this year's edition of the largest European Smalltalk event will include the regular Smalltalk developers conference with renowned invited speakers, a Smalltalk camp that proves fruitful for interactions and discussions. Besides, this year will be held the 4th edition of the Innovation Technology Awards where prizes will be awarded to authors of best pieces of Smalltalk-related projects. Last, but not least the event includes as usual a research conference which was renamed this year into "International Conference on Dynamic Languages". This reflects the widening of the scope of this conference to enable cross-fertilization with research conducted using other dynamic languages.

You can support the ESUG conference in many different ways:

  • Sponsor the conference. New sponsoring packages are described here
  • Submit a talk, a software or a paper to one of the events. See below.
  • Attend the conference. We'd like to beat the previous record of attendance (116 people at Köthen, Germany in 2004)!
  • Students can get free registration and hosting if they enroll into the the Student Volunteers program. See below.

The conference features the following events:

  • Camp Smalltalk
  • Developers Forum
  • Research Forum
  • Technology Forum

Developers Forum : International Smalltalk Developers Conference


This year we are looking for YOUR experience on using Smalltalk. The list of topics includes, but is not limited to the following:

  • XP practices
  • Development tools
  • Experience reports
  • Model driven development
  • Web development
  • Team management
  • Meta-Modeling
  • Security
  • New libraries & frameworks
  • Educational material
  • Embedded systems and robotics
  • SOA and Web services
  • Interaction with other programming languages

Submissions due on 30th of May 2007

Notification of acceptance on 15 of June 2007

More information is available here

Research Forum : International Conference on Dynamic Languages


Smalltalk is one of the oldest object-oriented languages, but its conception and programming environment can still be considered as a design pearl and as a beacon in the realm of programming languages and programming environments. The bulk of its modern contenders are still lacking many of the features that Smalltalkers find both mundane and essential. Nevertheless, as software engineering practices and new application fields evolve, Smalltalk should keep up. This concerns the language, its implementation technology, its programming tools as well as the software development culture it supports. The research forum invites scientific articles that report on original research conducted in and/or for Smalltalk. The list of topics includes, but is not limited to the following:

  • Aspects, Aspect languages and Applications
  • Ambient Intelligence, Ubiquitous & Pervasive Computing
  • Embedded Systems
  • Compilation Technology, Optimization, Virtual Machines
  • Formalizations
  • Language Engineering, Extensions
  • Model Driven Engineering
  • Programming in the Large, Design, Architectures, Components
  • Development Environments
  • Program Analysis
  • Reflection and Metaprogramming
  • Testing
  • Agile Techniques
  • Web Services & Internet Applications

More information is available here

Technology Forum


We are proud to announce the 4th Innovation Technology Awards. The top 3 teams with the most innovative software will receive, respectively, 500 Euros, 300 Euros and 200 Euros during an awards ceremony at the conference. Developers of any Smalltalk-based software are welcome to compete.

More information is available here

Student Volunteer Program


If you are a student wanting to attend ESUG, have you considered being a student volunteer? Student volunteers help keep the conference running smoothly; in return, they have free accommodations, while still having most of the time to enjoy the conference.

More information is available here

Noury on behalf of the ESUG board


Dr. Noury Bouraqadi - Enseignant/Chercheur

ARMINES - Ecole des Mines de Douai - Dept. I.A.

http://csl.ensm-douai.fr/noury

European Smalltalk Users Group Board

http://www.esug.org

 Share Tweet This

cst

About image builds

April 27, 2007 15:10:53.964

You can file this under "you learn something new every day". Yesterday, I posted on automated image builds - and had a bunch of people point out to me that you can save/restore repository information with stuff that's already lying around in the image. To wit: see the image below:

After you export that, the build script changes as follows:


| fname list |

"do initial parcel load"
#(
        '$(VISUALWORKS)\database\oraclethapiexdi.pcl'
        '$(VISUALWORKS)\contributed\postgresql\storeforpostgresql.pcl'
        '$(VISUALWORKS)\store\storefororacle.pcl'
        '$(VISUALWORKS)\contributed\sunit\sunitui.pcl'
        '$(VISUALWORKS)\parcels\rbsunitextensions.pcl'
        '$(VISUALWORKS)\net\netclients.pcl'
) do: [:each |
        Parcel loadParcelFrom: each].

"read in Repository Information"
Store.RepositoryManager importRepositoriesFromXmlOn: 'repositories.xml' asFilename  readStream.

"connect to Store"
profile := Store.RepositoryManager repositories 
	detect: [:each | 'cincomsmalltalk' = each name] 
	ifNone: [nil].
profile ifNil: [^self].
Store.DbRegistry connectTo: profile.

"load a bundle"
(Store.Bundle newestVersionWithName: 'RSSBuilding') loadSrc.

"disconnect"
Store.DbRegistry disconnect.

"save image"
ObjectMemory saveAs: 'team' thenQuit: false

See that one liner for reading in repository information? That's the change. Now, there is a -settings option, but here's the problem: If the settings file has repository information, and you haven't loaded in any Store drivers... you have a chicken/egg issue. So instead, I just have the one liner that reads in repository settings files in the build script.

 Share Tweet This

screencast

Smalltalk Daily 4/27/07: Automating an image build, redux

April 27, 2007 14:56:59.583

Based on the comments I got on yesterday's post, you can tell that I missed a feature of the product - the ability to save/restore Store Repository information is built in - so you don't need to extra bit of code I used. With that in mind, I've done a "correction" Smalltalk Daily, which adds that information.

Technorati Tags:

 Share Tweet This

tv

The Doctor is coming back

April 27, 2007 12:13:58.769

SciFi Wire reports that the summer will have watchable TV - Dr. Who is returning July 6th.

 Share Tweet This

rss

RSS To Email: The Syndication Breakout

April 27, 2007 11:33:26.077

Rogers Cadenhead notices an interesting bit of syndication news:

The largest email-based RSS service was sold to NBC Universal this week, an event that's curiously absent from the tech press. Randy Charles Morin's R-Mail was purchased by the entertainment network for an undisclosed amount.
The service has 50,000 users, 100,000 subscriptions and sends out more than 50,000 e-mails per day, according to DMW Daily , though I suspect a zero's missing from the last figure. When I wrote about R-Mail last August , it had 20,000 users.

This kind of thing could be the breakout from niche to general that syndication advocates (myself included) have been expecting. An awful lot of corporate staff "live" in email - and this is an easy way to reach them.

 Share Tweet This

sts2007

StS 2007 Daily Update: Application Frameworks

April 27, 2007 8:04:31.496

Arden Thomas is giving a talk on application frameworks at Smalltalk Solutions. If you remember Roby's "Slam Dunk" presentations, this will be familiar:

This talk and short demonstration discusses the experience of choosing and using an application framework for Smalltalk based development. Discussed are factors such as what an application framework is, what it should do for us and some criteria for selection. Two known frameworks are contrasted and discussed, and an example of the chosen framework is given. Finally, the experience of years of use of the chosen framework, its advantages and disadvantages are discussed.

See you in Toronto!

Technorati Tags:

 Share Tweet This

media

Print: Shifting Roles

April 26, 2007 18:14:07.976

Jason Calacanis has boiled down the entire problem that print media has to a small paragraph:

I think that people may have underestimated exactly how dead print is as a NEWS carrier--and why. Print is dead in the news role because it can't keep up with the conversation--not because people don't like print per se.

That's pretty much it. The reporters at the NY Times, the WaPo (etc) still want to be breaking stories. The problem is, they can't accomplish that in print - and like any other mature business (RIAA, anyone?), they are having trouble adapting to the new reality.

Technorati Tags: ,

 Share Tweet This

cst

Automating Development image Builds

April 26, 2007 18:01:36.613

I did a screencast yesterday on automating the build of a development image; after fielding a few questions, I figured I'd post the relevant scripts. First, I use this workspace script to save my Store Repository profiles out to disk:


fname := 'connects.txt' asFilename writeStream.
Store.RepositoryManager.Repositories do: [:each |
	1 to: each class allInstVarNames size do: [:evar |
		| obj |
		obj := each instVarAt: evar.
		obj isNil 
			ifTrue: [fname nextPutAll: 'nil']
			ifFalse: [fname nextPutAll: obj].
		fname nextPut: $,].
	fname nextPut: Character cr].
	fname close.

That saves my repository information out to a simple, comma/CR delimited flat file. With that, I can automate the build of a development image with a script like the one below (obviously, the mix of parcels and store package/bundles will vary):

| fname list |

"do initial parcel load"
#(
        '$(VISUALWORKS)\database\oraclethapiexdi.pcl'
        '$(VISUALWORKS)\contributed\postgresql\storeforpostgresql.pcl'
        '$(VISUALWORKS)\store\storefororacle.pcl'
        '$(VISUALWORKS)\contributed\sunit\sunitui.pcl'
        '$(VISUALWORKS)\parcels\rbsunitextensions.pcl'
        '$(VISUALWORKS)\net\netclients.pcl'
) do: [:each |
        Parcel loadParcelFrom: each].


"read in Repository settings"
fname := 'connects.txt' asFilename readStream.
list := OrderedCollection new.
[fname atEnd]
	whileFalse: [
		| prof str line i |
		line := fname upTo: Character cr.
		str := line readStream.
		prof := Store.ConnectionProfile new.
		i := 1.
		[str atEnd]
			whileFalse: [
				|  next |
					next := str upTo: $,.
				next = 'nil' ifTrue: [next := nil].
				prof instVarAt: i put: next.
				i := i + 1].
		list add: prof].
	fname close.
	list do: [:each |
		Store.RepositoryManager addRepository: each].

"connect to Store"
profile := Store.RepositoryManager repositories 
	detect: [:each | 'cincomsmalltalk' = each name] 
	ifNone: [nil].
profile ifNil: [^self].
Store.DbRegistry connectTo: profile.

"load a bundle"
(Store.Bundle newestVersionWithName: 'RSSBuilding') loadSrc.

"disconnect"
Store.DbRegistry disconnect.

"save image"
ObjectMemory saveAs: 'team' thenQuit: false

It probably makes sense to split the individual sections out, and to create "manifest" files of parcels/package to load - but you get the idea. This is a nice, simple way to automate a build - and you don't even need to "doIt" after starting your image. Instead, start the base visual.im as follows:

visual visual.im -filein build-team.st

That's it - works nicely for me

Technorati Tags:

 Share Tweet This

sts2007

My Smalltalk Solutions Presentation: The Roadmap

April 26, 2007 13:21:08.333

I'll be giving a roadmap presentation at Smalltalk Solutions this year - if you can't attend, you can at least have a look at my presentation (PDF). I'll be happy to answer questions about it as well - and, if we have network connectivity at the podcast next Monday, I'll field queries from the IRC channel. If you want to ask questions for the podcast, we'll be doing that at 5:15 PM Monday. I don't have anything in place to stream it live though :/

Update: Link to the PDF is fixed.

Technorati Tags: , ,

 Share Tweet This

screencast

Smalltalk Daily 4/26/07: Debugger Update

April 26, 2007 12:46:02.751

The Debugger has gotten a facelift in VW 7.5 - and it's used in both ObjectStudio 8 and VW now. So, today's Smalltalk Daily does a light update of the debugger, noting what each of the toolbar's functions are.

Technorati Tags: ,

 Share Tweet This

security

Security By Stupidity, Part Duh

April 26, 2007 11:53:05.428

Here's a security tale that will either make you laugh out loud, or pull your hair out (depending on whether you live in Europe and whether you care about Windows *cough* security *cough*). If you have Windows Vista installed in Europe, you can't lock out USB devices unless you install Windows Media Player. Why?

The ability to block read/write access to removable storage devices via Group Policy depends on the presence of the Portable Device Enumerator Service, which is not installed by default in the Vista Business N edition. We discovered this because we accidentally installed this version of the operating system on our test machines. Vista Business N is a Europe-only edition that complies with the EU mandate that Windows Media Player be decoupled from the operating system.
Unfortunately, the Portable Device Enumerator Service comes with Windows Media Player rather than with the base Vista operating system, so the N versions of Vista won't get the feature without installing the Windows Media Player or kludging together a different workaround.

Some people are going to sniff an evil plan from MS here, but I seriously doubt it. I'll echo something I heard Doc Searls say on last week's TwIT podcast - "Never ascribe to malice what can be explained by incompetence".

Technorati Tags:

 Share Tweet This

management

A Bump on the way to SAAS

April 26, 2007 11:38:26.905

Eric Lundquist notes a possible bump in the road on the way to "Software as a Service" nirvana: The difference in cost for vendors between traditional product sales and those of server farms. He says this about the traditional license route:

Selling software was once such an easy job. Since most of your costs were associated with creating your first copy of the software, you knew that if you had even a moderately successful product, you could make a lot of money, as every subsequent copy would cost only pennies but would be sold for dollars. Companies that got the formula correct -- Microsoft comes immediately to mind -- enjoyed revenues and profit margins that were the envy of the entire business world.

That over-simplifies a bit - in particular, you do have the ongoing development and maintenance tasks (it's not as if Word 1.0 is still shipping, unchanged). However, you still have this cost with SAAS - you can update online apps more easily, but you still need to staff on hand to do that work. So in this sense, the two are the same. There is an additional cost, however:

The second consequence is the capital investment hangover. Financial analysts have no patience and will not look favorably on big capital investments that do not drive immediate service revenues. Technology executives will have to learn what steel mill executives discovered long ago: Capital investment is not a one-time event. That server farm you built last year will soon require another big round of investment to stay current and efficient.

The cost for a large server farm dwarf the costs of the machines you buy for your staff - which is why I think this cost isn't really going to be borne directly by most companies looking to build out services to sell. Rather, they'll be going to Google, or Amazon, or Joyent, and paying a utility fee to have them host their services. What this change is going to do is push the move to a utility model even harder.

Update: Nick Carr has another post on this, and links to Ralph Koster, who has some ideas of his own.

Technorati Tags: ,

 Share Tweet This

STIC

STIC Wants your feedback

April 26, 2007 9:33:12.451

Georg Heeg is asking for feedback at the Tuesday night STIC session. The room is TBD, but it will be at 6 PM at Smalltalk Solutions. If you head over to room 201F for the podcast - around 515 or so - we'll be able to tell you by then.

Technorati Tags: ,

 Share Tweet This

sts2007

StS 2007 Daily Update: SSL and X.509

April 26, 2007 8:17:59.641

Martin Kobetic will be giving one of the last talks at StS 2007, on SSL and X.509 in Cincom Smalltalk:

In this talk we will go through the process of securing a web server using SSL protocol and X.509 Certificates. We will discuss certificates and why they are needed and how to use them with SSL protocol to achieve various security objectives. As time permits we will conclude with a discussion of various practical aspects and performance considerations. Everything will be discussed in the context of live demonstrations using VisualWorks.

See you in Toronto!

Technorati Tags:

 Share Tweet This

tv

So Here's my "Lost" Question

April 25, 2007 23:02:16.309

There aren't any spoilers here if you're worried about that - I have a simple question though: Do the writers have answers up their sleeves, or is this more like "X-Files", where they are just making it up as they go along, dropping some plot points into the ocean, and creating new ones like mad? At the moment, I'm leaning more towards the "X-Files" theory.

 Share Tweet This

cst

April Smalltalk Digest is Online

April 25, 2007 17:49:34.814

The April Smalltalk Digest is online now.

Technorati Tags:

 Share Tweet This

open source

Open Source Theories

April 25, 2007 13:52:18.787

Nick Carr has a provocative take on Open Source development - taken from the perspective of the individual developer. I'm not sure I'd go as far as Nick does with this, but it's worth a few moments thought - and I think he's absolutely correct that the software market is driving faster and faster away from license revenue and toward a service model.

 Share Tweet This

screencast

Smalltalk Daily 4/25/07: Automating an Image Build

April 25, 2007 13:40:25.225

On today's Smalltalk Daily, we build up a base development image again - but this time, we script the entire process. It turns out that you can have the system file in a Smalltalk script at startup with the -filein argument - and that allows us to fully automate image builds.

Technorati Tags:

 Share Tweet This

sts2007

StS 2007 Daily Update: Extreme UI Testing

April 25, 2007 12:27:54.363

Mid afternoon on Wednesday at StS 2007, Niall Ross will be talking about Extreme UI Testing:

Standard eXtreme programming emphasises the great importance of test-driven development - of the model layer of an application. Testing the UI layer, whether while developing it or afterwards, is treated much more lightly: prominent advocates of XP have suggested it can be largely and safely ignored. Experience taught the author that ignoring UI testing has costs. He therefore developed patterns that, with little extra coding, extend XP tests to the UI layer. He uses these in his projects, including in his open-source project, where portability of the tests across dialects is also of value. The talk will briefly overview UI testing approaches in Smalltalk and then present the patterns in detail. It will end with a discussion to share experiences and approaches.

See you in Toronto!

Technorati Tags:

 Share Tweet This

rss

Better UIUC VW Wiki Feed

April 25, 2007 10:02:50.131

I've updated the feed for the UIUC VW Wiki - each item should now show up with the associated content.

 Share Tweet This

web

Web Heretics Spread

April 25, 2007 7:53:38.837

Avi reports on the spread of his "heretical" ideas about web development: William Harford’s Phaux, a Seaside-like framework for PHP.

Technorati Tags:

 Share Tweet This

media

The End of Exclusive Access

April 25, 2007 7:49:20.638

Here's an interesting resolution to yesterday's dustup between Wired and Jason Calacanis - they did the interview, as part of Calacanis' podcast. The take away here: the media no longer get to control all aspects of the conversation.

 Share Tweet This

podcasting

Ad Hoc Panel Podcast

April 24, 2007 23:16:01.978

David, Michael, James, and I have decided to do a podcast right after the coding contest wraps up on Monday - we'll hang out in the room and record it. If anyone wants to show up as an audience and ask questions, feel free - it could be fun!

So figure around 5:15 - 5:30 pm in Room 201F. See you there!

Technorati Tags:

 Share Tweet This

books

A break from history

April 24, 2007 22:36:53.807

I took a break from the history reading for a day to gulp down a quick techno-thriller: "Space Wars". It's a near future look at what might happen if the US' space platforms (spy satellites, etc) were successfully attacked. Not deep, but enjoyable enough, and a quick read.

 Share Tweet This

media

Wired hits Bottom, Digs

April 24, 2007 16:00:37.512

I have to say, I sympathize with Jason Calacanis on this interview thing - here's his comment on a request for an interview from Wired:

A WIRED journalist pinged me for some comments on Michael Arrington and his A-list blogger status. I told the journalist to send me the questions by email and he refused. He said Dave Winer did the same thing.
Journalists have been burning subjects for so long with paraphrased quotes, half quotes, and misquotes that I think a lot of folks (especially ones who don't need the press) are taking an email only interview policy. (Mark Cuban did this long ago).

Dave Winer weighed in as well, and while I don't often agree with him, I think he's correct about this. Here's the thing: take some subject you are conversant in, and then start paying attention to media reports on that subject. How often do you notice:

  • The reporters are just completely out in left field, with no clue as to the subject matter
  • People the reporters interview complaining about being misquoted?

I've gotten to the point where I'm extremely skeptical of media reporting in general, unless I trust the specific reporter. For people who are in the public eye, it's worse - any contact with the media is an opportunity to be misunderstood or misquoted - or to have your work described badly because the reporter simply has no clue about the subject matter.

So what's up with the title? Well, here's how Wired responded:

Calacanis Won't Do Phone Interview -- Cowardly

Jason McCabe Calacanis is complaining about a Wired reporter who wants to do an interview with him, but refuses to do it via email. He says it's "ironic" that a magazine covering the digital age refuses to use email for its interviews.

Yeah, I can see where that response is going to ratchet my trust in your magazine right up there - perhaps all the way to the level of respect that I reserve for my local highway department.

Technorati Tags:

 Share Tweet This

humor

Smalltalk on the Road

April 24, 2007 15:23:56.088

Tim Bray sent me this photo from Vancouver - it reminds me of something PC Magazine used to do, where they would run pictures that juxtaposed computer/internet services with mundane things that weren't related. So anyway, I'd like to thank Tim for sending this - it brightened my day :)

 Share Tweet This

PR

Google Becoming Dull

April 24, 2007 15:06:12.794

I agree with Doc Searls about Google's renaming of Froogle:

This is a perfect example of Branding As Camouflage. Or worse, as a mask.
Google's product search may have moved past price shopping alone. But Froogle was a great name. First, it was fun. Second, it actually meant something . So what if it meant only part of what product search is about?

I also agree with him that this is a lot like what Microsoft would do - give a product a dopey name that fits in with "corporate standards". Of course, the run of the mill marketroids like the change - which tells you all you need to know about this being a bad idea.

I asked my wife about this, because I've never used Froogle, and she uses it a lot. Her reaction went from:

Huh?

to:

What were they thinking?

So the closed loop of marketing/PR types think this is brilliant; the average person who might actually remember the name "Froogle"? Not so much. The new name - "Google Product Search" - sounds more like an OED entry than a name. I suspect Google went and hired some "professional" marketing types. Here's some free advice: Change the name back, and fire the automatons who came up with this idea.

Technorati Tags: ,

 Share Tweet This

itNews

The beginning of Utility Computing?

April 24, 2007 12:32:20.831

If James Governor is right (and I think he is) - then internal IT shops are probably doomed:

Finally it strikes me we may be about to see something entirely new in the industry. Twitter is emerging as a core lightweight Web infrastructure but unlike earlier Web companies isn’t buying and building out its own infrastructure. Twitter is a hosted architecture of participation. Unlike first web wave companies, Google as poster child, this is On Demand purchasing.

Amazon was early with their elastic computing initiative, and I'm not sure that Sun has the right target for their "data center in a box" idea - but it looks like IT infrastructure is moving away from being a local concern. Back in the early days of electricity, "everyone" bought a generator - that didn't scale well, and the entire model moved to a carrier one. I think we are starting to see the same thing in IT infrastructure, only with a lot more competition. I suspect that companies that keep their IT internal - unless their needs are very, very unique - are going to be spending a lot more money than their competitors.

 Share Tweet This

screencast

Smalltalk Daily 4/24/07: Moving to a New Release

April 24, 2007 12:06:18.168

On today's Smalltalk Daily, we move from VW 7.4.1 to VW 7.5 - the new non-commercial release went live on the site yesterday. We go through building up a new base image, which also involves going back to some of the components we loaded a very long time ago.

Technorati Tags:

 Share Tweet This

sts2007

StS 2007 Daily Update: Home Automation with Smalltalk

April 24, 2007 8:20:02.691

Smalltalk Solutions is coming up fast - if you register now, you can see talk like this one: using Smalltalk to automate your home:

During the remodeling of our house, we installed various home automation components using the KNX/EIB, X10 and serve@home technologies. After the installation, it became clear, that we needed an advanced control system in order to manage and integrate the various systems. This presentation will cover the implementation, the communication and the results of developing a home automation control system in Smalltalk.

See you in Toronto!

Technorati Tags:

 Share Tweet This
-->