Planet Smalltalk

November 27, 2014

Torsten Bergmann - Visual Design Inspector for Pharo

Vidi is a visual Design Inspector for Pharo. Read more details at:

 http://vidi.inf.usi.ch

To try out you can grab a premade image from CI or check
the project on GitHub.

Dont know about the status - I guess work is currently still in progress.
But I was already able to check some own projects with it. Nice!

November 26, 2014

Torsten Bergmann - PaymentFont for Seaside

The “PaymentFont for Seaside” project is a small Seaside wrapper for the PaymentFont project.

Torsten Bergmann - Pharo HTTP fundamentals

November 25, 2014

Pharo Weekly - NetGen – Open Street Map Roassal Demo

Hi all,

We are pleased to announce a wireless sensor network animation demo in Pharo, Roassal and OpenStreetMap.

https://github.com/OnilGoubier/Cirela

The release contains 2 packages:
1. Cirela-OSM Package consists of the visualization of geographical information using roassal with  OpenStreetMap as background.
2. Cirela-Netgen-Sim: this package allows the execution of a synchronous and concurrent Wireless Sensor Network (WSN) simulation program [1] from Pharo. Outputs of the simulation are then animated on a map visualizing the locations of the simulated sensors.

A video of the animated wireless sensor network simulation:

https://www.youtube.com/watch?v=sMB7DG-lbiU

Another video showing Cirela-OSM:

https://youtu.be/6zoGIsQaGUo

A word about CIRELA

CIRELA (Communication and Information technology for REsiLience to disAsters) is a non profit NGO aiming at providing open source solutions to monitor and prevent natural and environmental disasters. Currently we are focusing on wireless sensor network monitoring and warning systems.

[1] This program is generated in Occam by NetGen, from B. Pottier et al. (UBO)

Regards,

Onil


November 24, 2014

Benoit St-Jean - Smalltalk en vrac (2)…

Pharo

Une démo de l’extension OpenStreetMap pour Roassal/Pharo

Une démo de CIRELA pour Roassal/Pharo

Annonce des diagrammes de Kiviat pour Roassal/Pharo

Hubcap, un browser pour SmalltalkHub

Encryption : Blowfish pour Pharo.

Nireas : un gestionnaire de thèmes pour Pharo

OnScreenKeyboard : un clavier virtuel pour Pharo

Divers

Un debugger à distance pour Context (anciennement Spoon)

Résultats d’un sondage sur Smalltalk

 

 


Classé dans:Smalltalk Tagged: Blowfish, CIRELA, clavier, Context, debugger, encryption, Hubcap, Kiviat, Nireas, OnScreenKeyboard, OpenStreetMap, Pharo, Roassal, SmalltalkHub, sondage, Spoon

Pharo Weekly - On Screen Keyboard

Hi,

I created the first version of a virtual keyboard morph for Pharo. To
try it, evaluate:

Gofer it
     url: 'http://www.smalltalkhub.com/mc/PavelKrivanek/OnScreenKeyboard/main';
     package: 'OnScreenKeyboard';
     load.

OnScreenKeyboard new open.

Currently it doesn't work well together with completion morphs so
please disable code completion.

Features:
- splitted int two parts
- compact look
- swipe up to write uppercase letter
- swipe left to do backspace
- swipe down to write special character
- swipe right to write numbers and other special characters
- swipe up right to press combination with ctrl (e.g. ctrl+p)
- swipe down right to press combination with alt
- press Kb button to move the keyboard up and down on the screen
- press shift/alt/ctrl keys to hold them (e.g. for selecting text with
cursor keys and shift)

Feel free to send patches and improvements directly to the project
repository :-)

OnScreenKeyboardPavel

Benoit St-Jean - SciSmalltalk 0.16

On a récemment fait l’annonce de la sortie de la version 0.16 du package SciSmalltalk.  SciSmalltalk est un package scientifique/mathématique qui, à l’origine, était basé sur le code Smalltalk que l’on retrouvait dans l’excellent ouvrage de Didier H. Besset Object-oriented Implementation of Numerical Methods.


Classé dans:Smalltalk Tagged: librairie, numérique, scientifique, SciSmalltalk, Smalltalk

November 23, 2014

Essence# - New Release of Essence#: Omega-1 (Alpha Build 24)

The Omega-1 release contains bug fixes and internal improvements, and also includes preliminary support for networking using sockets. There will be a series of “Omega-N” releases, all of which will focus on implementing whatever is necessary in order to fully conform to the ANSI Smalltalk standard.

The name “Omega” is a reference to “the Alpha and the Omega,” because the builds in the Omega release series will be the final set of builds before the project status is promoted to Beta.

Download Omega-1 (Alpha Build 24)

To download the latest release, navigate to the DOWNLOADS page on CodePlex. There’s a download link in the upper left corner of the DOWNLOADS page, labeled Essence#_Omega-1_Setup.exe. Using it will get you a program that will install the Omega-1 release of Essence# to any location you choose on your computer. Please see the documentation page on the CodePlex site for more information on how to use Essence#, such as the installation instructions and instructions on how to run scripts written in Essence#.

The Omega-1 release adds classes to the Essence# Standard Library that represent the fundamental classes in the .Net Base Class Library for sending and receiving data over the IP protocol.  The Essence# Standard Library will be installed by the installer program attached to this release. It may also be obtained separately fromGitHub.

None of the utility scripts that aid in developing Essence# code were changed in this release. For more information on the scripts, please see the documentation.


Pharo Weekly - Nireas: A theme manager for Pharo

Hello pharoers , I would like to present to you my latest project and a good excuse to learn Spec. First I would like to thank Nicolai for his help and all other people who helped me out understand Spec. Of course I am still learning :)

So , Nireas is a theme manager for Pharo 4. What this means is that Nireas takes the dark theme and by presenting you with an easy to use gui allows you to change the colors on the fly to adjust the theme to your own preferences and habits.
This is an example
you can see the Nireas GUI on the bottom, the Nautilus on the left has the default dark theme colors, the one on the right has the color selected by Nireas.
You can find instructions on how to install Nireas and how to use here
Unfortunately the last one the scroll bar color seems to have no effect, I will have to look into it, but the other options work fine. Please note also that you will have refresh issues so its advisable to close existing windows and reopen them so they update properly to the new colors.
Please try this tool inside a new fresh pharo 4 image, this code is very experimental and has been known to crash Morphic. So use with caution.
Nireas implements its own theme subclassing the dark theme, the big diffirence here is that it defines color to be independent and dynamic so the theme can be , well, …. themable :D
Nireas does not change anything inside Pharo so it can be installed safely.
I would like to take this tool further to allow of course deeper customisations that goes beyond just customising colors, meaning change the look and feel of Pharo. But this means unfortunately/fortunately that some things will have to change inside Pharo and Pharo will have to become much more dynamic GUI wise to make dynamic themes much easier to implement.
Nireas is part of my Ephestos project, so this is why it appears inside an Ephestos menu and hopefully I will keep working it as customising Pharo GUI is something that I find really interesting and fun,
As always comments, insults, worship and rage is more than welcomed. 8LDSy22nPnkalQ2rem9vqgvQIrfc4pjPFa6cAPkC-fQ

November 22, 2014

Pharo Weekly - SciSmalltalk v0.16

Dear all,

we are to happy to announce SciSmalltalk v0.16

SciSmalltalk is a Smalltalk project, similar to existing
scientific libraries like NumPy, SciPy for Python or SciRuby for Ruby.
SciSmalltalk already provide the following basic functionalities:

- complex and quaternions extensions,
- random number generators,
- fuzzy algorithms,
- Didier Besset's numerical methods,
- Ordinary Differential Equation (ODE) Solver.

Version 0.16 includes updates from Werner Kassens to several packages,
the work Nicolas Cellier about arbitrary precision floats.

SciSmalltalk project web page is here:
https://github.com/SergeStinckwich/SciSmalltalk
All the code is available under the MIT licence.

We have more than 563 green unit tests and we run a CI job here:
https://ci.inria.fr/pharo-contribution/job/SciSmalltalk/

This version should work on Pharo 3.0/4.0 and also Squeak 4.5 (to
be confirmed).

We are looking for more code contributions and also tests, documentation !
Join the mailing-list : https://groups.google.com/forum/#!forum/scismalltalk

November 21, 2014

Pharo Weekly - [ANN] Hubcap – a SmalltalkHub API and browser for Pharo

Hi,

as I wanted to browse the SmalltalkHub contents directly from within Pharo image
I wrote a simple browser:

  Gofer it
     url: 'http://www.smalltalkhub.com/mc/TorstenBergmann/Hubcap/main';
     configurationOf: 'Hubcap';
     loadDevelopment.

Attached is a screenshot. Works on Pharo 4.0. Still not finished but maybe it is 
already useful to others as well.

One can access the tool from the world menu, implementation lives in 
"Hubcap-Tools" package. The UI shows and allows to filter users, shows
their projects and packages. Special icons display the state (loaded, 
modified, public writable, ...). One can load from the UI or open Monticello tools.

The "Hubcap-Core" package includes an API to query STHub and write
expressions like:

   HubClient new allProjectsForUserNamed: 'TorstenBergmann' 

   HubClient new hasUserNamed: 'TorstenBergmann'

So "Hubcap-Core" may be usefull to people who want to build other tools
that depend on STHub infos. Basic documentation lives on 

 http://www.smalltalkhub.com/#!/~TorstenBergmann/Hubcap

and as class comment on ConfigurationOfHubcap.

Beware: the tool is sill not optimized, any clicking involves a query 
to STHub (hope STHub will not crash when many people use it). API
may still undergo changes in the future.

Also teams are not yet supported as STHub still returns an MNU error 
in the REST interface: http://www.smalltalkhub.com/hub/teams?term=Pharo
Anyone able to fix that?

Thanks to Stephan Eggermonts who gave me the initial idea with some code
I've found in "Deprecation finder" and to Sven for the easy to use NeoJSON
package.

Contributors can just commit, the project is public.
sthubbrowser
Bye
T.

Torsten Bergmann - Kiviat support in Roassal

Roassal for Pharo now supports Kiviat-Diagramms. Read more here and have a look at the picture.

November 20, 2014

Torsten Bergmann - Spur 64

Spur VM for Pharo, Squeak and Newspeak is also progressing in the 64 bit area. Another milestone is described here.

The Weekly Squeak - Spur in 64!

bits

From Eliot Miranda:

Hi All,

I’m pleased to say that today the simulator got as far as redrawing the
entire display and finishing the start-up sequence for a bootstrapped
64-bit Spur image. That means it correctly executed over 26 million
bytecodes. So at least a 64-bit Spur Stack VM is not too far off.

best,
Eliot


ESUG news - [ANN] Cincom ObjectStudio 8.6 and VisualWorks 8.0

"It is our pleasure to bring you the current version of Cincom Smalltalk. Cincom continues to provide high value and low cost with a rapid return on investment at low risk, allowing you to win more business, operate efficiently and deliver as promised.

The current releases of ObjectStudio 8.6 and VisualWorks 8.0 are major releases and contain recent past improvements as well as new “millennial” changes that include revamped frameworks that were originally done before 2000, but are now being overhauled for big improvements in the products. These “millennial” changes include Text2, SourceCode Editor 2 and UISkinning (Look & Feel 2) for the Foundation tools as well as VisualWorks applications. ObjectStudio also has a “millennial” change in its next generation user interface."

More information here

Torsten Bergmann - Wireless Sensors Network simulation in Pharo

A demonstration of a sensor network overlayed over a map and animated. Read more about it here.


Hernán Morales Durand - Smalltalk Survey Report

Introduction

The content of this post is a survey report of a Smalltalk questionnaire. The purpose of this report is to determine the opinion of developers about Smalltalk related topics. A limit of 10 questions was imposed to the survey because of the SurveyMonkey Free Account limitations.

The survey was anonymous and contained partially structured questions with open-ended questions where participants could add thoughts or missing options. The survey was conducted from 11/10/2014 to 30/10/2014. Only the first week of the survey non-smalltalk forums were privileged. The information below summarize statistics:

Survey Statistics

(Click the following figures to open the whole image)

Question 1 highlights

  • Smalltalk was not listed as an option in the valid responses.
  • This question was mostly directed to non-smalltalkers.

Question 2 highlights

  • Goal of the question was to determine a general attitude towards the technology.
  • There is a good reception of Smalltalk, although respondents where scarce (22).
  • This question was mostly directed to non-smalltalkers.

Question 3 highlights

  • The idea was the same as Question 2, but focused towards a professional level of choice.
  • This question was directed to both smalltalkers and non-smalltalkers.

Question 4 highlights

  • The question tried to determine the Smalltalk platforms most used.
  • This question was mainly directed to smalltalkers.
  • Unsurprisingly, Pharo, VisualAge and VisualWorks seem to be the most deployable environments.
  • More recent or commercial projects like S8, Smalltalk MT or LSW are almost unknown.
  • The respondents also noted Amber as ocasionally used or prototyped/deployed a product.

Question 5 highlights

  • This question is similar to Question 4, but focused on the current use.
  • Products like VisualSmalltalk and Smalltalk/X, both considered (technically) excellent Smalltalk flavors, keep almost unused.

Question 6 highlights

  • This question addressed four technology aspects: Usability, Speed, Community Health and Overall.
  • There is a notable unsatisfaction at the Community level for most Smalltalk communities.
  • The old fallacy of Smalltalk being slow seems to be almost refuted by a general satisfaction in execution speed.
  • Maybe unexpectedly, the usability award was for VisualSmalltalk.

Question 7 highlights

  • All respondents answered this question.
  • Besides the expected noise towards libraries for common application scenarios, there is a considerable interest in Data Science (Visualization, Mining, etc).
  • Some respondents noted missing options like X-language invocation: SOAP, CORBA, MQ, REST and Good modern library support - easy call outs to native code or library wrappers.

Notes

Screengrab is a Firefox add-on which saves complete pages as images. And if you ever create a SurveyMonkey and don't want to pay to download results, is better to bookmark Screengrab.

Craig Latta - debugging remote exceptions works

a debugger for a remote unhandled exception

a debugger for a remote unhandled exception

I have debugging working for remote unhandled exceptions. My motivating use case was debugging messages not understood by the Context console’s embedded web server. The console is a headless app. In development, I run it with a remote-messaging connection to a headful system. Now, when there is an unhandled exception (like a message not understood), the exception requests that the headful system open a debugger (as its default action).

Before opening the debugger, the headful system replaces the sender of the first relevant context on the headless system with the last relevant context on the headful system, hiding all the remote-messaging-related contexts in between. The picture above shows an example of this. On the headful system, I sent “zork” to an object on the headless system. The debugger shows a continuous context stack which spans the two systems. This all works with little special handling in the debugger because of the complete transparency of remote messaging. It doesn’t matter that the contexts and methods that the debugger is manipulating happen to be remote.


November 19, 2014

Stefan Marr - SOM Performance Numbers

Today, I got a few more benchmarks running to get a better idea of where RTruffleSOM and TruffleSOM stand in terms of their absolute performance.

Measuring performance is always a tedious exercise, especially when trying to compare something to established systems.

So, what do we compare a simple Smalltalk like SOM to? Let’s go with Java and HotSpot as being widely regarded as ‘the’ state-of-the-art system, when it comes to dynamic compilation. Of course this means cross-language benchmarking. To minimize the apples and oranges aspect of such an undertaking, I transcribed most of the SOM benchmarks we got to Java 8. That means, I am using lambdas if that seems a good and somewhat idiomatic choice. Counting loops are just plain for loops of course, but iterations over collections can be nicely expressed with Java’s lambdas. The first interesting insight was that the old Java version of two of the larger benchmarks, namely Richards and DeltaBlue actually got a little faster. Even so, the new versions use getters/setters and lambdas everywhere, performance did not drop. I have to admit, I kind of hoped that HotSpot is going to struggle just a little bit, to make the SOM look a little better. But no, unfortunately, ‘good OO code’ seems to be somethings that HotSpot can appreciate.

Enough introduction, let’s look at the numbers:

Performance results for SOM, normalized the the results for Java 8 with HotSpot in server mode. Lower is better.

RTruffleSOM is the SOM version based on RPython with a meta-tracing just-in-time compiler. On average, RTruffleSOM is 4.7x slower than Java8 (min. 1.8x, max. 10.7x). So, there is still quite a bit of room for improvement. TruffleSOM is SOM implemented using Oracle Lab’s Truffle framework running on top of a JVM with the Graal JIT compiler. It is about 2.7x slower than Java8 (min. 3%, max. 4.7x). The Mandelbrot benchmark reaches Java’s performance, while some of the others are still quite a bit slower. Overall however, for a ‘simple’ interpreter, I think the 3x-slower-than-Java range is pretty good.

Of course, this is the performance after warmup and over multiple iterations. The plot is a box plot, and as you can see, the results are reasonably stable after warmup. Unfortunately, there are applications out there that might not run hot code all the time. So, one more question would be, how good are the interpreters?

So, let’s compare to the Java interpreter, which is used by giving Java the -Xint command-line option:

Performance results for SOM, normalized the the results for Java 8 with HotSpot in interpreter mode. Lower is better.The results here are not comparable to the pervious results. For the moment, the benchmarks use different parameters to avoid too long runtimes.

For RTruffleSOM, we see a 6x slowdown compared to the Java8 interpreter (min. 1.7x, max. 15.8x). The TruffleSOM interpreter is slightly faster, showing only a slowdown of 5.6x (min 1.9x, max. 13.5x). However, we run TruffleSOM on top of a JVM, so it still benefits from HotSpot’s just-in-time compiler. I also need to point out that both SOMs are run without their respective jit-compilation frameworks built in. For RTruffleSOM, this means we use a binary without meta-tracing support, and TruffleSOM runs on top of HotSpot without Graal. This means, these numbers are best-case interpreter numbers. Especially TruffleSOM is much slower in the interpreter mode on top of Graal since it records extensive profiling information to enable good JIT compilation, which leads to multiple factors slowdown in the worst case.

Overall, I am pretty happy with the performances of the little SOM interpreters. RTruffleSOM is roughly 5k lines of code and TruffleSOM about 10k LOC and still, both reach the same order of magnitude of performance as Java.

 

November 18, 2014

ESUG news - [ANN] SciSmalltalk v0.16

we are to happy to announce SciSmalltalk v0.16

SciSmalltalk is a Smalltalk project, similar to existing scientific libraries like NumPy, SciPy for Python or SciRuby for Ruby. SciSmalltalk already provide the following basic functionalities:

  • complex and quaternions extensions,
  • random number generators,
  • fuzzy algorithms,
  • Didier Besset's numerical methods,
  • Ordinary Differential Equation (ODE) Solver.

Version 0.16 includes updates from Werner Kassens to several packages, the work Nicolas Cellier about arbitrary precision floats.

SciSmalltalk project web page is here. All the code is available under the MIT licence. We have more than 563 green unit tests and we run a CI job here

This version should work on Pharo 3.0/4.0 and also Squeak 4.5 (to be confirmed).

We are looking for more code contributions and also tests, documentation ! Join the mailing-list.

Cincom Smalltalk - Cincom ObjectStudio 8.6 and Cincom VisualWorks 8.0 Are Here!

It is our pleasure to bring you the current version of Cincom Smalltalk. Cincom continues to provide high value and low cost with a rapid return on investment at low risk, allowing you to win more business, operate efficiently and deliver as promised.

Cincom Smalltalk - New Product Information Readily Available on the Cincom Smalltalk™ Website

The Cincom Smalltalk product line, which includes Cincom® ObjectStudio® and Cincom® VisualWorks®, is constantly being updated and improved upon so that the products stay competitive and technologically advanced to attract and bring in new accounts, and to help our clients achieve their goals and simplify the complexity of their businesses.

Torsten Bergmann - Smalltalk-on-Rails

The goal of this project is to provide an object-oriented scripting environment for web applications running on Ruby-on-Rails.