All Projects → feenkcom → gt4gemstone-old

feenkcom / gt4gemstone-old

Licence: MIT license
The Glamorous Toolkit for remote work with Gemstone/S

Programming Languages

smalltalk
420 projects
shell
77523 projects

Projects that are alternatives of or similar to gt4gemstone-old

Grease
The Grease Portability Library
Stars: ✭ 12 (-14.29%)
Mutual labels:  pharo, gemstone
metacello
Metacello is a package management system for Smalltalk
Stars: ✭ 79 (+464.29%)
Mutual labels:  pharo, gemstone
SIXX
SIXX is an XML serializer/deserializer written in Smalltalk. The purpose is to store and load Smalltalk objects in a portable, dialect-independent XML format.
Stars: ✭ 14 (+0%)
Mutual labels:  pharo
Python3Generator
A toolkit to generate Python 3 source code from Pharo.
Stars: ✭ 25 (+78.57%)
Mutual labels:  pharo
Winter
Winter is a 2D game engine for Pharo Smalltalk
Stars: ✭ 43 (+207.14%)
Mutual labels:  pharo
SmalltalkVimMode
Vim Mode for Playground, System Browser, Debugger in Pharo.
Stars: ✭ 39 (+178.57%)
Mutual labels:  pharo
Cruiser
A Pharo Tool to package applications
Stars: ✭ 41 (+192.86%)
Mutual labels:  pharo
PetitParser
Petit Parser is a framework for building parsers.
Stars: ✭ 39 (+178.57%)
Mutual labels:  pharo
iPharo
Pharo Smaltalk kernel for Jupyter
Stars: ✭ 32 (+128.57%)
Mutual labels:  pharo
Telescope
Telescope is an engine for efficiently creating meaningful visualizations
Stars: ✭ 26 (+85.71%)
Mutual labels:  pharo
awesome-pharo-ml
List of projects, books, booklets, papers, and applications related to machine learning, AI, data science in Pharo
Stars: ✭ 56 (+300%)
Mutual labels:  pharo
kendrick
Domain-Specific Modeling for Epidemiology
Stars: ✭ 43 (+207.14%)
Mutual labels:  pharo
msgpack-smalltalk
MessagePack serialization library for various Smalltalk dialects / msgpack.org[Smalltalk]
Stars: ✭ 22 (+57.14%)
Mutual labels:  pharo
Willow
The Web Interaction Library that eases the burden of creating AJAX-based web applications
Stars: ✭ 41 (+192.86%)
Mutual labels:  pharo
MatplotLibBridge
A bridge to provide the ability to Pharo user to use Python's Matplotlib.
Stars: ✭ 20 (+42.86%)
Mutual labels:  pharo
ReStoreForPharo
Relational database persistence for Pharo objects
Stars: ✭ 29 (+107.14%)
Mutual labels:  pharo
OpenAPI
A pharo implementation of OpenAPI 3.0.1
Stars: ✭ 20 (+42.86%)
Mutual labels:  pharo
protobuf-smalltalk
Protocol buffers support for Smalltalk
Stars: ✭ 14 (+0%)
Mutual labels:  pharo
Pharo-SQLite3
Community-owned official SQLite3 binding for Pharo
Stars: ✭ 19 (+35.71%)
Mutual labels:  pharo
sparta
Sparta is a canvas on top of Skia.
Stars: ✭ 28 (+100%)
Mutual labels:  pharo

gt4gemstone Build Status

gt4gemstone is the Glamorous Toolkit for remote work with Gemstone/S. It is a project developed by feenk.com.

Installation

The gt4gemstone tools require code to be installed both on the client and on the server images. To create a new client containing the latest version, after installing GsDevKit, do the following from the $GS_HOME folder:

cd $GS_HOME/shared/repos
git clone https://github.com/feenkcom/gt4gemstone.git
createClient -t pharo Gt4Gemstone -l -v Pharo5.0 -s gs_333 -z $GS_HOME/shared/repos/gt4gemstone/.smalltalk.ston
startClient Gt4Gemstone -s Gt4Gemstone

For creating a new stone containing the latest version use:

createStone -u http://ws.stfx.eu/4TIV0I28KZ6O?format=text -i Gt4Gemstone -l Gt4Gemstone Gt4Gemstone 3.3.3

For installing gt4gemstone in a stone that has GsDevKit installed see gt4gemstone server instalation using GsDevKit.

For installing gt4gemstone in a stone doesn't have GsDevKit see gt4gemstone server instalation without GsDevKit.

For installing and configuring GsDevKit on Windows see GsDevKit Windows Installation.

Once you installed gt4gemstone you can take at a look at some examples of how to use a gemstone client.

Connecting to a stone

gt4gemstone comes with a session manager that can be opened from the World menu. This manager allows you to create connections to stones based on session descriptions. By default it uses the session descriptions present in the GsDevKit installation.

Remote Playground

A remote Pharo Playgrond that works on a remote stone is created using the context menu of a selected session. This playground has a distinct blue border and provides actions for executing and inspecting code remotely.

Alternatively opening a Pharo Playground can be achived using the following API:

gtClient := GtGsMinimalClient forDefaultSessionDescription.
gsPlayground := (GtGsPlayground forGemstoneClient: gtClient).
gsPlayground openEmpty.

Inspecting objects

gt4gemstone further comes with a moldable inspector that allows you to inspect objects using multiple presentations.

Debugger & Editor

Custom object view

gt4gemstone uses GTInspector and allows every object to have multiple views. A similar API can be used to create views for Pharo and GemStone objects. For example, an AddressBook object can have a view to show the list of contacts from the address book. The following code creates this view both for an AddressBook object stored either in Pharo or GemStone:

gtGsInspectorAContactsOn: aComposite
   <gtInspectorPresentationOrder: 5>

   aComposite table
      title: 'Contacts';
      display: [ self contacts ];
      column: 'Name' evaluated: [ :aContact | 
         aContact fullName ] width: 150;
      column: 'Telephone' evaluated: [ :aContact | 
         aContact address telephone fullNumber ]

The first screenshot shows this view on an instance of an AddressBook object stored in GemStone and the second on an instance from Pharo:

Utility scripts

Updating the code of gt4gemstone in a Gemstone stone:

gtClient := GtGsMinimalClient forSessionDescriptionNamed: SCIGemStoneServerConfigSpec defaultSessionName.
gtClient evaluateCommandStream: 'project load Gt4Gemstone' readStream .
gtClient evaluateCommandStream: 'commit' readStream.

Evaluating and inspecting a remote command:

gtClient performStringRemotelyAndInspect: '40+2'.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].