Archive for the Context Category

a detailed description of Context’s object memory visualization tools

Posted in Appsterdam, consulting, Context, Smalltalk, Spoon with tags , , , , , , , on 22 October 2012 by Craig Latta

direct graphical mapping of the object memory

When I got the current Context snapshot down to about 450 kilobytes, I realized that I could render it as a reasonably-sized picture (within 800 by 600 pixels). I was interested in doing this mostly because I’d never seen a graphical representation of the Smalltalk object memory before. As I proceeded, I found it enabled some pretty useful things.

simulator movies

In Squeak, I made an 8-bit-per-pixel bitmap, put the snapshot bytes into it linearly, and displayed it. It looked like a very peculiar sort of confetti… It wasn’t hard to see a few vague patterns, though. I instrumented the Squeak virtual machine simulator so that it would stop every so often to render a picture. I also chose the color of each pixel based on the class of the object of the corresponding byte.

I ran the simulator through the first 3000 instructions a Context object memory goes through after resuming, stopping after every 50 instructions to render a picture. (The simulated Context system went through its startup routine of reconnecting over the network to a headful system, so that one may browse it via remote messaging.) I put the pictures together into a 30-frames-per-second movie, a new picture every four frames. So here’s an example of extreme slow-motion; in the course of two seconds one sees roughly the first eight microseconds of execution time (as measured on my hardware).

exploring the space

But why just look at the pictures? I changed the normal picture viewer event handler so that when you click on a pixel, a cached simulator tells you more about the object of which the corresponding byte is a part. Coupled with an on-screen magnifying glass, this has turned out to be a valuable tool for finding more objects to delete from the Context snapshot.

Finally, I augmented the simulator to export graphs of all the reference relationships between all the objects in the system. Rummaging around in them in 3D is a lot of fun.

Please feel free to explore the graph data yourself and let me know if you find anything interesting. :) There are 8,628 objects (labelled) and 28,449 connections. It’s in a format for use with the Walrus graph visualizer (a lovely thing!).

I think this stuff gives new meaning to the old jargon phrase “smalltalk image”. :)

Context 3 beta 2 (“Usable By Humans”) released

Posted in Appsterdam, consulting, Context, Naiad, Smalltalk, Spoon with tags , , , , , , on 19 October 2012 by Craig Latta

Context 3 beta 2 is released. This one includes the development environment memory from the 3 alpha 3 release, startable from the webpage that the app automatically opens. A remote system browser onto the history memory opens automatically. You can also shut down the development environment from the webpage. It should be fairly easy to get into trouble with this release…

Next, I’ll set up a third memory, a minimal environment which will become Squeak 5. I’ll write instructions for creating unit tests for each package in our community, and imprinting the code run by those tests into the minimal memory, thereby creating a module. We can work toward a release where all the packages anyone might want to load are served by some online history memory, with package metadata searchable with Google.

Context 3 beta 1 released

Posted in Appsterdam, consulting, Context, Naiad, Smalltalk, Spoon with tags , , , , , , on 12 September 2012 by Craig Latta

I’ve released Context 3 beta 1. This is another “ignition check” release. On the Mac, the intended sequence of events is:

  • You double-click on the app.
  • The app is an AppleScript which starts an embedded Context virtual machine, which resumes a web server. The AppleScript also opens a web browser on the web server’s welcome page.
  • The welcome page tells you what to do next (but it currently refers to things which don’t exist).

I’m working on the equivalent magic for Microsoft Windows and GNU/Linux for the next release; suggestions welcome.

Please let me know if the startup sequence works for you, and any questions or comments you have. This is an exciting release, because it’s the first one that could be the basis for a self-supporting community.

Thanks!

Craig

screenshot of Context launcher website

Posted in Appsterdam, consulting, Context, Naiad, Smalltalk, Spoon with tags on 30 August 2012 by Craig Latta

the Spoon launcher website

A description of the default Context workflow.

Posted in Appsterdam, consulting, Context, Naiad, Spoon with tags on 22 August 2012 by Craig Latta

Well, it took a while to evolve into clarity, but here it is…

You get Context by downloading a ZIP file from the net. You install Context by unzipping the ZIP file and putting the resulting all-in-one app folder where you want it to be. You start Context with a simple platform-dependent gesture (on Mac, you double-click the app).

This starts a history memory. This memory can…

  • …speak with web browsers. It presents a simple control interface for starting and stopping the other memories in the app (called “subject memories”), and discovering other memories on the net.
  • …speak with FTEs (Favorite Text Editors). It presents itself as a filesystem via a WebDAV server, so that a person can use their Favorite Text Editor to control the subject memories, edit classes and methods, and evaluate expressions.
  • …speak with the subject memories, to keep track of their development changes.
  • …speak with remote memories, to obtain their modules.

This is available in Context 3 alpha 5, which I plan to release in time for the Camp Smalltalk event in Gent, Belgium on 24 August 2012, ahead of the European Smalltalk Users Group conference the next week.

Context 3 alpha 4 released

Posted in Appsterdam, Context, Naiad, Spoon with tags on 16 August 2012 by Craig Latta

Hi–

I’ve released Context 3 alpha 4, just to fix some VM problems with 3a3. It’s at:

https://dl.dropbox.com/u/15188004/spoon/Spoon-3-alpha-4.zip

Please fire it up and let me know that it starts. We’ve tried it on:

  • Mac OS X 10.8 (Mountain Lion)
  • Ubuntu GNU/Linux 12.04 64-bit
  • Ubuntu GNU/Linux 12.04 32-bit
  • Windows XP SP3
  • Windows 7 64-bit
  • Windows 8

Thanks!
Craig

Context weekend 19 May 2012

Posted in Context, Naiad, Spoon with tags on 15 May 2012 by Craig Latta

FYI, this weekend I’ll be preparing some documentation for Context, and would be happy to converse in-depth about it here and elsewhere online.

Context presentation fly-through, version two

Posted in Appsterdam, Context, Naiad, Spoon with tags on 17 March 2012 by Craig Latta


I’ve made a new version of the Context presentation… check out the fly-through trailer and the slides. I’ll be presenting it at the next Appsterdam Wednesday lunch lecture, and I hope to post a video of that presentation. Thanks in advance for any feedback!

Context presentation 2012-02-26

Posted in Context, Naiad, Spoon with tags on 26 February 2012 by Craig Latta

This is the first complete version of the Context presentation, with slides and narration.

Context presentation 2012-02-24

Posted in Context, Naiad, Spoon with tags on 24 February 2012 by Craig Latta

This is a fly-through of my next presentation about Context (netjam.org/context). I hope to present it at the next Pharo conference, 24-25 May 2012 in Lille, France.