Planet Smalltalk

June 29, 2015

Torsten Bergmann - Squeak Website

Squeak Smalltalk got a fresh new look on the

 http://squeak.org

website,

The Weekly Squeak - Check out the New Squeak Website

SqueakWeb

A lot of work has gone into the new Squeak.org website.  Go check it out!

Nice work to everyone that worked on it, it’s beautiful and well organized!

[announcement on Squeak-dev]

Dear Smalltalkers

I am pleased to announce new look of the Squeak Website

http://squeak.org

Personally, I want to thank Fabio Niephaus, who invested a lot of effort into the new site.

Best regards

-Tobias Pape


Torsten Bergmann - MetaBorg

MetaBorg, a framework for building board games. Read more here and browse code here.

Pierce Ng - UnQLite Jx9

I’m playing with Masashi Umezawa’s PunQLite wrapper for unQLite. UnQLite provides both a key-value store and, interestingly, a JSON document store based on an embedded programming language named Jx9.

Here’s an example Jx9 program:

if (db_exists("students")) {
  db_drop_collection("students");
}
db_create("students");
$s = { name: "james", age: 26 };
db_store("students", $s); 
$sid = $s.__id;

And here’s Smalltalk code to execute the above Jx9 program:

| j db |

j := '...'. "Above Jx9 program."

db := PqDatabase openOnMemory.
[   db jx9Do: [ :exe |
        exe compile: j.
    exe execute.
    Transcript show: exe @ 'sid' asString; cr ]
] ensure: [ db close ]

PunQLite supports extracting values from an executed Jx9 program, as in “exe @ ‘sid’” above. PunQLite currently does not support UnQLite’s APIs for exchanging JSON objects between Smalltalk and an Jx9 program which provide functionality similar to parameter binding in SQL APIs. That means Jx9 programs, including data to be stored, has to be constructed from strings… As OWASP says about NoSQL injection:

Because these NoSQL injection attacks may execute within a procedural
language , rather than in the declarative SQL language, the potential
impacts are greater than traditional SQL injection. 

June 27, 2015

Pharo Weekly - DragPanels: Floating palette windows with drag-and-drop in Morphic

Morphic offers everything needed to create highly interactive applications in Pharo. It is however, difficult to find out how to actually create those applications. Morphic tutorials provide a starting point, and are not very good at showing how the different features interact and are supposed to be used together. Morph has lots of methods, and some of them are not in the method category where you might expect them. The result is that most Morphs in Pharo do not use much of what Morphic has to offer.

Wouldn’t it be great if there would be some sample code, showing how Morphic can be used to great effect?

Well, here is some code that takes a first step towards that goal.
DragPanels shows how to create a floating palette, filled with
wells that support dragging a property towards a target. It shows how to combine drag-and drop with click: and context menu actions, and show  to give UI feedback when over a well and when holding the mouse down over an element that reacts to click:.

You can see the code in action here:
https://vimeo.com/131889858

The color panel shows some colors. If you don’t set the allowDropBlock,
it will work with any morph that responds to #color: (like the world).
By clicking on the plus, you can add more colors to the panel. The panel has a context menu to restore the default values.

ColorPanel withSevenPaleColors
allowDropBlock: [ :source :target |
target class = CardMorph ];
openInHand

The people panel shows avatars belonging to an email addres. By default it uses gravatar for them, and caches the images.

PeoplePanel new
defaultValues:
#(‘stephan@stack.nl
serge.stinckwich@gmail.com
nicolas.anquetil@inria.fr
thierry.goubier@gmail.com
stephane.ducasse@inria.fr
marcus.denker@inria.fr‘);
allowDropBlock: [ :source :target |
target class = CardMorph ];
openInHand

When dropping, the dragSource sends #color: resp. #email: to the  target by default. By setting the dropSelector of the DragWell this
can be overridden.

You can try the code by do-ing

Gofer new
smalltalkhubUser: ‘StephanEggermont’ project: ‘Dragpanels’
package: ‘DragPanels';
load.

It is used in (a work in progress)

Gofer new
smalltalkhubUser: ‘StephanEggermont’ project: ‘Documentation’
package: ‘CardsMorphic';
load.

Stephan

p.s.

On the wishlist are
– add more color palettes
– add a dark theme, refactoring the colors
– add a small close cross in the title bar of the palette
– define the dropSelector in the panel, not the well
– support different sized wells, refactoring the sizes
– make the mouseOver rectangle color content dependent
– add pharo contributors as an avatar source
– add a configuration


June 26, 2015

Torsten Bergmann - Roassal - New Preview for ESUG 2015

ObjectProfile is working hard on new Roassal visualizations. A preview of what will be presented will be found in this video.

Torsten Bergmann - Morphic Scrum Board Part 2 - DragPanels

Torsten Bergmann - Roundtrip

When I use Eclipse and Java I still like the nice eUML2 AddOn Tools as they allow to define quickly a conceptual model in UML. It's also the only tool I've found for Java that is able to support roundtrip engineering and that allows you to keep close to the code while still doing modeling.

DynaCase for Pharo looks promising but such roundtrip tools are still missing in the Pharo tools universe.

Torsten Bergmann - Demo stories

Tudor gave a demo on demoing stories including a demonstration of Spotter. Video is here.

Torsten Bergmann - Sonar importer for Moose

June 25, 2015

Pharo Weekly - Choose your high goal and tell its story through the system that you build

Hi,

I gave last week a talk at NDC Oslo on “Don’t demo facts. Demo stories!”. While the talk is less technical, I did exemplified the message by demoing Spotter in comparison with the search support from Eclipse. https://vimeo.com/131632605
There are several things I would like to emphasize.
I compared our solution with an “industry standard” one. We often think our system as being niche and perhaps not mature enough. We need to change that perception about our work. We build state of the art.
One thing that I did not mention explicitly in the talk is the size of the implementation. The Spotter implementation is 3500 lines of code — and that it is so large because it currently comes with its own widgets. Furthermore, the extensions average 8 lines per custom processor (including the method header and the pragma). This is orders of magnitude smaller than what is typically out there, and it is precisely the reason why we can compete even if we are fewer.
But, to get out there and compete we have to set that high goal for ourselves. For example, with GT we do not want to compete. We want to outcompete. So can you.
While details are important, high goals require us to get away from those details. Only polishing details will tend to limit you to incremental improvements. We need to jump from time to time. But, these jumps are hard. On the one hand, it is hard to find the right jump and convince people to jump with you. On the other hand, they are hard to predict. For example, Spotter would have not been predictable one year ago.
Yet, dry goals are not enough to keep us going. We need stories that make us dream. And the beauty is that Pharo breaths such a story. We should not limit ourselves to that story only. For example, with GT we want to reinvent the developer experience by making the developer be able to mold visual tools to her context because that is the only effective way to build sustainable systems. This little point of view will turn the IDE upside down, and this is only possible in a system like Pharo.
Choose your high goal and tell its story through the system that you build. And remember that Pharo already offers a beautiful story to start from.

Pharo Weekly - Sonar importer for Moose

Hi,

I would like to announce that I developed a Sonar importer to get sonar data into a Moose model.

It imports the list of metrics and projects available in the Sonar repository.

On demand, it imports chosen metrics for all the projects. I let you see the tests and documentation to check the behavior of this importer.

The configuration is on the Pharo catalog, so it is very easy to load it (else the repo is here).

The importer is based on the public Sonar REST API Version 3.7.2, but should work with recent ones.

Don’t hesitate to contribute if you want to add new features, the project is in public access!

Cheers,

Vincent


Torsten Bergmann - Unified IDE

Lots of new editors for JavaScript appear - Atom, Brackets, ... and now Nuclide.

The web page of the last one tells us that Nuclide is a "A unified IDE". Hey - wake up! It is just a fancy editor - nothing more and I really wonder if these guys have ever see a real unified IDE with browsers, refactoring tools, test runner etc.

June 24, 2015

Pharo Weekly - Pharo is pulsing steady and regular

50133
15831 Replace PluggableTextMorph with RubScrolledTextModel in Nautilus for source code
https://pharo.fogbugz.com/f/cases/15831

15832 Integrate new FastTable
https://pharo.fogbugz.com/f/cases/15832
50132
15568 removeClass does not work for Last modified/Most viewed DynamicGroups
https://pharo.fogbugz.com/f/cases/15568

15827 Update Rubric
https://pharo.fogbugz.com/f/cases/15827

15272 RBPatternMessageNode>>match:inContext: SubscriptOutOfBounds
https://pharo.fogbugz.com/f/cases/15272
50131
12728 requestImplementorToInline: is missing in NautilusRefactoring
https://pharo.fogbugz.com/f/cases/12728

15828 NECController must check that its editor morph is not nil before unsubscribing from it
https://pharo.fogbugz.com/f/cases/15828

15826 Clean up discouraged uses of SourceFiles and friends (10)
https://pharo.fogbugz.com/f/cases/15826

50130
15825 Move Reflectivity changes from Opal into a Opal translator subclass (part1)
https://pharo.fogbugz.com/f/cases/15825

15824 Clean up discouraged uses of SourceFiles and friends (9)
https://pharo.fogbugz.com/f/cases/15824

50129
15823 Clean up discouraged uses of SourceFiles and friends (8)
https://pharo.fogbugz.com/f/cases/15823
50128
15818 Clean up discouraged uses of SourceFiles and friends (7)
https://pharo.fogbugz.com/f/cases/15818

50126
15813 Reflectivity: #value for ReturnNodes
https://pharo.fogbugz.com/f/cases/15813

50125
15812 MessageNotUnderstood: RGMethodDefinition>>ast (Suggestions expects it)
https://pharo.fogbugz.com/f/cases/15812

15791 Cleanup Script actions for methods
https://pharo.fogbugz.com/f/cases/15791

15557 New PackageManifests should be classes, not instances
https://pharo.fogbugz.com/f/cases/15557

50124
15809 Update Rubric
https://pharo.fogbugz.com/f/cases/15809
50123
15806 Clean up NautilusRefactoring
https://pharo.fogbugz.com/f/cases/15806

15805 support #newValue on assignmentNode + cleanups
https://pharo.fogbugz.com/f/cases/15805

15807 Revisiting RBUnpackagedCodeRule
https://pharo.fogbugz.com/f/cases/15807

15801 MorphTreeMorph improvement
https://pharo.fogbugz.com/f/cases/15801

50122
15801 MorphTreeMorph improvement
https://pharo.fogbugz.com/f/cases/15801
50121
15799 replace last #gather: reference
https://pharo.fogbugz.com/f/cases/15799

15800 Fix concurrency problem with RemoteString
https://pharo.fogbugz.com/f/cases/15800

15795 Playground enter does not work well anymore
https://pharo.fogbugz.com/f/cases/15795

15793 Better comment for Margin
https://pharo.fogbugz.com/f/cases/15793

13463 Monticello Browser doesnt scroll packages correctly
https://pharo.fogbugz.com/f/cases/13463

50120
15789 Progress with reifications
https://pharo.fogbugz.com/f/cases/15789

7367 Nautilus Colors “not in this package” methods differently on instance/class sides
https://pharo.fogbugz.com/f/cases/7367

15794 Clean up discouraged uses of SourceFiles and friends (5)
https://pharo.fogbugz.com/f/cases/15794
50119
15788 Clean up discouraged uses of SourceFiles and friends (4)
https://pharo.fogbugz.com/f/cases/15788

15785 Fix do it etc in class comment in Nautilus
https://pharo.fogbugz.com/f/cases/15785
50117
15783 First cleanup of Workspace
https://pharo.fogbugz.com/f/cases/15783

15778 The meaning of command-click (apple-click) on class names changed from Browse class to References to class
https://pharo.fogbugz.com/f/cases/15778

15779 Clean up discouraged uses of SourceFiles and friends (3)
https://pharo.fogbugz.com/f/cases/15779

15724 RB lint rules should not directly query the system dictionary
https://pharo.fogbugz.com/f/cases/15724
50116
15754 New Code Critic for unary “accessing” methods without explicit returns
https://pharo.fogbugz.com/f/cases/15754

15739 lastKeystroke broken
https://pharo.fogbugz.com/f/cases/15739

15146 Spec TabManagerModel>>selectedTab: aTab manipulates with Morphic tab
https://pharo.fogbugz.com/f/cases/15146

15781 Fix TraitMethodDescriptionTest>>testArgumentNames
https://pharo.fogbugz.com/f/cases/15781
50115
15776 Clean up discouraged uses of SourceFiles and friends (2)
https://pharo.fogbugz.com/f/cases/15776

15681 Manifest-CriticBrowser
https://pharo.fogbugz.com/f/cases/15681

15775 remove some “halt” that where left over
https://pharo.fogbugz.com/f/cases/15775

50114
15765 OrderedCollection>>#at: and #at:put is slow
https://pharo.fogbugz.com/f/cases/15765

15753 wrong styling for comments
https://pharo.fogbugz.com/f/cases/15753

15770 Methods are in wrong protocol on ThemeIcons
https://pharo.fogbugz.com/f/cases/15770

15711 The File Browser has a Context Menu “Workspace with Contents”. It opens an Edit Window (String Morph), but not a Workspace …
https://pharo.fogbugz.com/f/cases/15711
50113
15276 radioUnselectedFormContents and radioSelectedFormContents broken in Pharo3UIThemeIcons
https://pharo.fogbugz.com/f/cases/15276

15766 remove explicit isKindOf: PluggableTextFieldMorph in rubric
https://pharo.fogbugz.com/f/cases/15766

15767 remove explicit isKindOf: PluggableTextFieldMorph
https://pharo.fogbugz.com/f/cases/15767

50111
15761 remove package Tool-Browser-Old
https://pharo.fogbugz.com/f/cases/15761

14614 FileList is not working
https://pharo.fogbugz.com/f/cases/14614

15640 Call to obsolete method in LinearGradientPaint class
https://pharo.fogbugz.com/f/cases/15640
50110
15746 clean up RPackage-SystemIntegration
https://pharo.fogbugz.com/f/cases/15746

15681 Manifest-CriticBrowser
https://pharo.fogbugz.com/f/cases/15681

15718 Remove StringHolder
https://pharo.fogbugz.com/f/cases/15718

15532 Methods in Object category drag and drop should be a Morphic extension
https://pharo.fogbugz.com/f/cases/15532
50109
15660 Add String methods for removing prefix/suffix
https://pharo.fogbugz.com/f/cases/15660

15756 Move FileStream usages to File and Friends
https://pharo.fogbugz.com/f/cases/15756

15759 Remove debug code from ASMJit
https://pharo.fogbugz.com/f/cases/15759

15718 Remove StringHolder
https://pharo.fogbugz.com/f/cases/15718
50108
15740 openInWorld: aPasteUpMorph raises MNU PasteUpMorph>>startSteppingSubmorphsOf:
https://pharo.fogbugz.com/f/cases/15740

15726 unimplemented methods for new change list
https://pharo.fogbugz.com/f/cases/15726

15720 RubTextEditor references StringHolder
https://pharo.fogbugz.com/f/cases/15720
50107
15741 PluggableTextMorphWithLimits should be removed
https://pharo.fogbugz.com/f/cases/15741

15749 RB: Dont Add Parens Around Lit Array Elements
https://pharo.fogbugz.com/f/cases/15749

15751 catalog (with spotter) needs to show projects after classes and packages
https://pharo.fogbugz.com/f/cases/15751

15752 make browsing versions of removed methods working again
https://pharo.fogbugz.com/f/cases/15752
50106
15745 add API to enumerate AST nodes
https://pharo.fogbugz.com/f/cases/15745

15747 cleanup tools to get rid of undeclared
https://pharo.fogbugz.com/f/cases/15747

15748 Reflectivity: fixes for reifications
https://pharo.fogbugz.com/f/cases/15748

15703 integrate new Catalog Browser
https://pharo.fogbugz.com/f/cases/15703

50105
15735 Start to move RPackage-SystemIntegration to into RPackage
https://pharo.fogbugz.com/f/cases/15735

15744 CatalogBrowser moved to PharoExtras
https://pharo.fogbugz.com/f/cases/15744

15742 Small clean up in ChangesBrowser
https://pharo.fogbugz.com/f/cases/15742

50104
15636 PharoTutorial contents
https://pharo.fogbugz.com/f/cases/15636

15731 Kill the last two #asTimeStamp methods
https://pharo.fogbugz.com/f/cases/15731

15734 More tests for reifications
https://pharo.fogbugz.com/f/cases/15734


Cincom Smalltalk - Smalltalk Digest: June Edition

The June edition of The Cincom Smalltalk Digest is available now.

Pharo News - Job Offer | 1 year Post-Doc/Research & Teaching Assistant

<p>A 12 months position for a post-doc/Research &amp; teaching assistant is available at Ecole des Mines de Douai (France). Applicants should have a PhD degree.</p> <p>Find out more about the work at Ecole des Mines (Pharo and Robotics) at <a href="http://car.mines-douai.fr">http://car.mines-douai.fr</a>.</p> <p>Contact <a href="http://car.mines-douai.fr">Noury Bouraqadi</a> for more information.</p>

Pharo News - Job Offer | 1 year Post-Doc/Research & Teaching Assistant

<p>A 12 months position for a post-doc/Research &amp; teaching assistant is available at Ecole des Mines de Douai (France). Applicants should have a PhD degree.</p> <p>Find out more about the work at Ecole des Mines (Pharo and Robotics) at <a href="http://car.mines-douai.fr">http://car.mines-douai.fr</a>.</p> <p>Contact <a href="http://car.mines-douai.fr">Noury Bouraqadi</a> for more information.</p>

June 22, 2015

Torsten Bergmann - Babelsberg/S

allows for Object-Constraint Programming in Squeak. Check it out here (based on Squeak) or read about the JS variant here.

Torsten Bergmann - ARM Cog Spur JIT VM

Eliot provides new Cog VM binaries.

What is cool about it this time: the busy VM developers now added the ARMv5/ARMv6 Cog Spur JIT VM! It has been tested on Raspberry Pi running Raspbian - feel free to help testing also on other ARM based Linux systems.

Read more here and here or just download and try:




Note that this is for ARM v5/v6 and v7 systems. And before I forget to mention: if you quickly need a 64bit VM for ARM v8 architecture just send $1,000,000 to Tim

Torsten Bergmann - SeSSE - Seaside with Server-Sent Events

SeSSE is a small library for supporting Server-Sent Events (SSE) on Seaside.

Torsten Bergmann - Elasticsearch and Smalltalk

Elasticsearch is a highly scalable open source Java search engine that stores data in a structure optimized for language based searches.

Elasticsearch can be used to search all kinds of documents. Just download and run. Here is a short intro on how to run it. If you want to use it from Smalltalk then have a look at this project.

Smalltalk Jobs - Smalltalk Jobs – 6/21/15

  • Fremont, CASoftware Engineer 2 at Lam Research
    • Required Skills:
      • MS/BS in EE/CS or related fields
      • Working knowledge of object-oriented design methods and languages – C++, Smalltalk preferred
      • Basic knowledge of real-time operating system, hardware and software interface, real-time control, motion control
      • Basic knowledge of at least 1 communication protocol
  • Toronto, ON, CanadaSoftware Developer IV at Ontario Teachers’ Pension Plan
    • Required Skills:
      • Computer Science or Engineering degree or equivalent education
      • Minimum 6 years programming experience in Java or equivalent
      • High degree of expertise and sound practical knowledge of current programming and automated testing techniques
      • Strong practical experience and knowledge of object oriented analysis, design, and development
      • Strong understanding of Agile Development
      • Strong working knowledge of Java
      • Web Services,
      • Application Servers
      • Relational databases and object-relational mapping
      • Git
      • Continuous Integration
      • Web technologies including JavaScript libraries and frameworks
      • Web application development frameworks
      • CSS frameworks
      • Recognized expert in a particular technical area
    • Wanted Skills:
      • Smalltalk
Good luck with your job hunting,
James T. Savidge

View James T. Savidge's profile on LinkedIn

This blog’s RSS Feed


Filed under: Employment Tagged: jobs, Smalltalk, Smalltalk jobs

June 21, 2015

Smalltalk Jobs - Smalltalk Jobs Europe – 6/21/15

Two jobs:

Searchlite.nl is looking for a java developer, but they do mention Smalltalk in the ad.  The job is in Berlin for a half year.  They want English.   Berlin is a cool place.

The second job also wants Java and is with Camline.com, and, again is in Germany.  This time it is a bit north of Munich.   This one expects German as well as English.

Good luck!


Filed under: Employment

Smalltalk Jobs - Smalltalk Jobs – 6/20/15

A move to a new address in real life has delayed my contributions to this blog for a couple of weeks, but I am in the process of catching-up with the postings in areas of the world that I have responsibility for. This is the first part of clearing my backlog, and I think one or two more postings will come from me in the days to come. Thank you for your patience.

  • Warren, NJTechnical Manager (two positions available) at Chubb
    • Required Skills:
      • College degree, specialized training or equivalent work experience
      • 5 – 7 years progressive experience with thin client systems and applications development including systems/ application analysis and design
      • Expertise in Java / Smalltalk application development and maintenance
      • Experience with the project lifecycle and the application development lifecycle
      • Knowledge of design and programming techniques
      • Experience with staff augmentation within the IT Industry
      • Knowledge of version and revision control practices and procedures
      • Hands on knowledge of the Java programming language
      • Strong written and verbal communication skills with the ability to interact with all levels within the organization
      • Experience leading a team of application developers
      • Experience with providing guidance and direction to staff
      • Experience in initiating, conducting and facilitating discussions with multiple stakeholders, and ability to translate the results and issues at hand to the business and to the IT teams
      • Excellent written and verbal communication skills
  • Warren, NJTechnical Specialist – IBM VisualAge Smalltalk through IGATE
    • Required Skills:
      • Bachelor’s degree in Computer science or equivalent, with minimum 10+ yrs of relevant experience
      • 8+ years of experience on IBM VisualAge Smalltalk
      • Strong OOPS Concepts
      • Strong design and development skills on Smalltalk
      • Knowledge of Smalltalk version 8.5
      • Knowledge of Smalltalk Server
      • Knowledge of writing Web Services in Smalltalk
      • Ability to create high level (Conceptual) and Low Level design
      • Ability to use strong industry knowledge to relate to customer needs and dissolve customer concerns and high level of focus and attention to detail
    • Wanted Skills:
      • Insurance domain knowledge will be an advantage particularly Property & Casualty.
    • Additional listings: IGATE, IGATE, Lorventech Solutions, Lorventech Solutions
  • Warren, NJTechnical Lead – Smalltalk through IGATE
    • Required Skills:
      • Bachelor’s degree in Computer science or equivalent, with minimum 4 yrs of relevant experience
      • 4 to 8 years of experience on IBM VisualAge Smalltalk
      • Strong OOPS Concepts
      • Strong design and development skills on Smalltalk
      • Knowledge of Smalltalk version 8.5
      • Knowledge of Smalltalk Server
      • Knowledge of writing Web Services in Smalltalk
      • Strong good communication and coordination skills
      • Possess strong design and analytical skills
      • Should be self-starter and possess stretch mindset
      • Provide technical leadership to project team consisting of customer and IGATE team
    • Wanted Skills:
      • Insurance domain knowledge will be an advantage particularly Property & Casualty.
    • Additional listings: IGATE
Good luck with your job hunting,
James T. Savidge

View James T. Savidge's profile on LinkedIn

This blog’s RSS Feed


Filed under: Employment Tagged: jobs, Smalltalk, Smalltalk jobs

June 19, 2015

Pharo Weekly - NeoConsole

Hi,

NeoConsole is a small, standalone package that offers a command line (a.k.a. a REPL) interface to a headless Pharo image.

It contains a number of extendable commands and metrics that allow you to execute arbitrary Pharo code for result (introspection and debugging) or side effect (to manipulate the live, running image). There is a history mechanism, you can refer to previous evaluation results and there is a primitive describe mechanism (like a one level inspect). The metrics system allows you to consult a number of predefined values. There is decent error handling.

Here is a screencast showing how this feels in practice:

  https://www.youtube.com/watch?v=tAtYff6_X_4

The movie shows how to start from scratch, downloading Pharo, installing NeoConsole, running a headless image with the REPL installed in the background. Next, an HTTP server is added to the image and later a specific response is added as well. (You can speed up the movie, if you want).

Obviously this has been done before, and this is not the definitive solution in this area. For example, readline support (allowing you to edit your input) would be fantastic. A true command line inspector and debugger would be super as well. These are standard features in Lisp and would be totally possible in Pharo too.

I just needed this for myself, liked the result and thought it would be worth sharing.

Sven

PS: 

Security warning: this service opens up your image for access to those with access to your local network (i.e. those logged in to your machine), without any further authenication, allowing them to do absolutely anything. Think and make sure that you know what you are doing.




Torsten Bergmann - NeoConsole

Sven provides a nice demo that shows how to use his new project NeoConsole, a command line (REPL) interface, to interact with and control a running, headless Pharo image.

The video also shows how to start from scratch, downloading Pharo, installing NeoConsole, running a headless image with the REPL installed in the background. Next, an HTTP server is added to the image and later a specific response is added as well.

Short summary: Pharo is well suited for maintaining cloud and web based applications as it allows live interaction even after deploying.


 

June 17, 2015

Torsten Bergmann - Dr. Geo 15.07

is available. Some of the features are shown in pictures here.