Emacs Extensions for
GE Smallworld Magik Development

Screen-casts, tutorials, and productivity tools for Magik programmers who use Emacs. From tab-mode and code folding to the Magik Debugger and object inspector — explore features built by a developer, for developers.

Learn More
HydePark Consulting Screen-casts on YouTube RSS via FeedBurner

Nine screen-casts published between November 2010 and January 2011 — covering everything from ECB mode to the Tree Item GUI control. Read the story behind the project →

Get in Touch

Using Emacs ERC and EWW for Magik Community Resources

Magik development often depends on knowledge that sits outside a formal language reference. A useful method may appear in an old discussion, a Smallworld deployment note, a code repository, or a colleague’s explanation of an unfamiliar class. Emacs can bring many of these resources into the same working environment through ERC, its Internet Relay Chat client, and EWW, its text-oriented web browser.

ERC is suited to live conversation. It can connect a developer with a team channel, an IRC network, or a community room where Magik programmers exchange implementation ideas. EWW serves a different purpose: it provides a lightweight way to read documentation, news, tutorials, and repository pages without leaving Emacs or opening a graphical browser.

This approach is especially practical when Magik code is being maintained alongside GIS systems, database integrations, and long-running enterprise applications. A developer can inspect a method, search a resource, copy a relevant example, and record a decision while staying close to the source code and the Emacs tools used for navigation.

For Australian teams, the arrangement also helps bridge distance and working hours. A consultant in Brisbane may need to follow a conversation started in Perth, while a Melbourne-based developer may work with colleagues in the United Kingdom or North America. Saved links, searchable chat history, and plain-text pages make that collaboration easier to revisit.

Why ERC Fits Magik Collaboration

ERC provides a persistent chat workspace inside Emacs. After connecting to an IRC server, each channel appears as an Emacs buffer, alongside Magik source buffers, a shell, a debugger, or an object inspection window. This makes it possible to discuss a class hierarchy or database collection without repeatedly switching applications.

A channel can be used for several kinds of technical exchange. A developer might paste a short method, describe an unexpected result from a query, or ask whether a behaviour belongs to Magik itself or to the surrounding Smallworld configuration. The conversation remains available as a buffer, so useful explanations can be searched with ordinary Emacs commands.

ERC also supports practical chat features such as nick completion, notifications, timestamps, logging, and commands for joining or leaving channels. These features matter when a community is active across different time zones. A Sydney developer can read overnight discussion before the local workday begins, then add a focused reply instead of asking the group to repeat earlier details.

Chat history should be treated as technical material rather than an unlimited archive. Avoid posting customer data, production credentials, proprietary source code, or screenshots containing personal information. Australian organisations may have obligations under the Privacy Act 1988, and internal security policies can impose stricter controls than the public service itself.

Finding Magik Conversations Through ERC

The most valuable ERC setup begins with a small number of well-defined spaces. A team channel might cover current project work, while a broader Magik or GIS channel can hold language questions and implementation patterns. Keeping those purposes separate reduces noise and makes later searches more useful.

When asking for help, include the Magik version, the relevant class or method, the expected result, and the actual error or output. A compact reproducible example is more effective than a general request for assistance. If the issue concerns collection analysis, explain the collection type and the operation being applied; if it involves database access, identify the query boundary without exposing sensitive records.

Emacs users can make chat a source of personal documentation. Important ERC messages can be copied into an Org file, a project knowledge base, or a version-controlled notes directory. Add a date, the applicable Smallworld release, and a link to the original discussion where possible. This turns informal advice into a traceable reference for future maintenance.

A useful convention is to summarise the answer after the discussion has settled. For example, record that a particular method is preferred because it preserves collection order, or that a debugger symptom comes from a configuration issue rather than from the Magik runtime. Short summaries prevent valuable community knowledge from disappearing into a fast-moving chat stream.

Reading Web Resources With EWW

EWW is a text browser built into Emacs. It is well suited to pages that contain documentation, headings, code examples, issue discussions, and simple navigation. Use M-x eww, enter a page address, and move through the rendered content with familiar Emacs commands. Links can be followed and pages can be revisited from the EWW history.

For Magik programmers, EWW can provide a focused reading path through language notes, extension documentation, release information, and community-maintained repositories. The uncluttered display removes advertising, visual panels, and unrelated interface elements, which is useful when comparing a method example with code in an adjacent buffer.

The Magik Emacs features category is a natural starting point for learning how Emacs can support Magik work. Articles covering code folding, method navigation, debugging, object inspection, and collection analysis can be read beside the source files they describe. That proximity encourages experimentation: read a technique, try it on a small example, and keep the working command in project notes.

EWW is less capable with heavily scripted sites, complex authentication flows, and interactive documentation that depends on client-side JavaScript. When a page does not render correctly, use a normal browser for that particular resource, then return to EWW for stable text pages. The aim is a fast technical reading workflow, not a replacement for every browser feature.

Building A Reliable Resource Workflow

A simple workflow can connect live discussion with durable documentation. Start in EWW when looking for a reference or repository page. Move to ERC when an interpretation needs confirmation from other developers. Once the answer is known, save the relevant command, code fragment, or explanation in an Org file linked to the project.

Use consistent file names and tags for local notes. Tags such as magik, smallworld, debugging, collections, and database make a growing library easier to search. Include the source URL, access date, software version, and a brief statement of what was verified. This is particularly valuable in consultancy work, where a technique may be reused across several client environments.

Community knowledge can also support delivery management. A technical discovery may need to become a task, a risk, or a maintenance note rather than remaining in chat. Teams that use a project tracking platform can transfer the agreed action into a visible work item, attach the relevant reference, and assign responsibility without turning ERC into a project register.

For Australian businesses, document ownership and retention rules should be clear. A public explanation may be copied into internal notes under an appropriate licence, but client-specific material should remain within approved systems. Check contractual confidentiality terms, copyright permissions, and the organisation’s records policy before exporting chat logs or storing third-party documentation in a shared repository.

Practical Emacs Configuration Choices

ERC and EWW do not require a large configuration. Begin with readable fonts, sensible line wrapping, visible timestamps, and a predictable buffer naming scheme. A developer who can quickly identify #magik, a project channel, and an EWW documentation buffer will gain more value than one who installs many features that are rarely used.

ERC notifications should be selective. Alerts for direct mentions and important project channels are useful, while notifications for every message can interrupt debugging and code review. Set away status when stepping into a meeting or concentrating on a production issue, and use a short profile description so other participants know whether you are available.

For EWW, consider commands that open links in a separate buffer and preserve the current page. Saving a page’s address in Org is generally safer than relying on browser history. If a reference is likely to change, quote only the small section needed for context and record the version or revision identifier.

Network reliability also influences the experience. Australia’s NBN performance varies between premises and plans, and mobile connections can be less stable during travel between regional offices or field locations. Keep essential Magik documentation available locally, and do not assume that a live IRC connection will remain available during every site visit. Offline notes can preserve the working context until connectivity returns.

Keeping Community Knowledge Useful

A healthy Magik community depends on precise, respectful exchange. State uncertainty clearly, distinguish an observed result from a proposed explanation, and avoid presenting a workaround as a language rule until it has been tested. When correcting an answer, explain the relevant version or configuration difference rather than simply replacing it.

Searchability improves when participants use concrete terms. Include class names, method names, error text, collection types, and release identifiers in messages where appropriate. Avoid posting a long unstructured transcript when a short summary will do. These habits benefit both current colleagues and developers who later search archived discussions through IRC logs or a documentation index.

Moderators and technical leads should establish boundaries around credentials, customer identifiers, licence-restricted material, and production data. The Australian Signals Directorate’s Essential Eight is a useful security reference for broader organisational controls, although community chat configuration still needs to follow the employer’s own risk assessment. Multi-factor authentication, password managers, and approved networks remain important even when the conversation seems informal.

Review saved notes periodically. Mark obsolete advice, update links, and identify examples that apply only to a particular Smallworld release. A compact, maintained library of Magik resources will outperform a large collection of unverified snippets. When a solution has been tested in a real environment, record the conditions and result so another developer can reproduce it.

Set up one ERC channel for focused Magik discussion and one EWW-based reading routine for documentation and repositories. Add a small, searchable notes file, apply your organisation’s privacy and security controls, and turn proven answers into maintainable project knowledge. This gives Australian Magik teams a practical way to learn together across offices, time zones, and client environments while keeping Emacs at the centre of daily development.

Core Features

Tab Mode & ECB

Quick tab switching and Emacs Code Browsing mode for navigating Magik codebases efficiently.

Magik Smeller

Code analysis tool that helps identify potential issues in Magik source files.

Code Folding

Hide/Show mode for collapsing and expanding Magik code blocks to focus on what matters.

Visual Bookmarks

Quick visual bookmarks for jumping between key locations in your Smallworld session buffers.

Object Inspector

Inspect Magik objects and display them in an Emacs Deep Print buffer for detailed examination.

Magik Debugger

Set breakpoints and monitor slots and variables directly from within Emacs.

Development Tools

Direct links between Emacs and the Smallworld Development Tools application, including Click Monitor.

Screen-casts & Tutorials

Dark code editor window with syntax-highlighted Magik source code in muted blues and greys, conveying a focused development environment

Screen-cast 1: Tab Mode, ECB & More

Covers tab-mode, ECB, Magik Smeller, code folding, visual bookmarks, pragma toggling, moving code, external editor, and MS Explorer.

November 7, 2010
Split-pane Emacs interface with multiple buffers open, warm amber and navy tones against a dark background

Screen-cast 5: Object Inspection & Deep Print

Inspect a Magik object, prompt for an expression evaluated within a Smallworld session, and display results in a Deep Print buffer.

January 16, 2011
Debugging interface with breakpoint markers and variable watch panels in subdued teal and charcoal tones

Screen-cast 7: Magik Debugger

Useful tools for application developers: Object Inspector and Magik Debugger with breakpoints and slot/variable monitoring.

January 2011
Tree control GUI element with expandable branches rendered in clean greys and muted blues on a light background

Screen-cast 9: Tree Item GUI Control

Tree Item is a GUI control providing extensive facilities for displaying lists with rows, columns, trees, and in-place editing.

January 20, 2011