Planet Smalltalk

July 03, 2015

Torsten Bergmann - Morphic ScrumBoard, part 3: WebSocket SVG export

a new video demonstrating the new features of the ScrumBoard built with Pharo.

ESUG news - ESUG 2015, 12th Innovation Technology Awards

Have you written innovative Smalltalk? The developers of any Smalltalk-based software can enter by submitting a 3-5min video of their software. Entrants demo their systems in a session at the end of Monday July 13th 2015, after which the conference attendees vote. (A vote consists in providing a sorted list of 3 preferred pieces of software.)

The top 3 teams with the most innovative software will receive, respectively, 500 Euros, 300 Euros and 200 Euros. The results are announced in the Awards ceremony that is held during the social event.

Applicants should provide the following information on the conference registration server. Once you have registered your personal info, an 'Awards' menu allows submitting your software. You can provide this information when you first register, or login again later and update your details.

Info to provide:

  • Name of the software
  • Licence information (free, shareware, or commercial)
  • Name of the Smalltalk dialect used
  • Name, Affiliation and Country of developers

Besides, it would be great if the submission could include:

  • URL for a video (3-5 min) showing a screencast / demo of the software
  • URL for downloading the software or at least a runnable demo
  • Deadline: July 12

Any Smalltalker can apply (students, companies, ...). The presented piece of code/software should be written in Smalltalk or directly support Smalltalk (e.g. Smalltalk VM). All Smalltalk dialects are accepted. The applicant should be "strongly related" to the presented code, be it as an author, as owner of the copyright/copyleft, or as an official representative of the copyright/copyleft owner.

Jordi Delgado - ESUG 2015 REMINDER: 12th Innovation Technology Awards

ESUG 2015, 12th Innovation Technology Awards

Have you written innovative Smalltalk? The developers of any Smalltalk-based software can enter by submitting a 3-5min video of their software. Entrants demo their systems in a session at the end of Monday July 13th 2015, after which the conference attendees vote. (A vote consists in providing a sorted list of 3 preferred pieces of software.)

The top 3 teams with the most innovative software will receive, respectively, 500 Euros, 300 Euros and 200 Euros. The results are announced in the Awards ceremony that is held during the social event.

Applicants should provide the following information on the conference registration server. Once you have registered your personal info, an 'Awards' menu allows submitting your software. You can provide this information when you first register, or login again later and update your details.

Info to provide:

Besides, it would be great if the submission could include:

Any Smalltalker can apply (students, companies, ...). The presented piece of code/software should be written in Smalltalk or directly support Smalltalk (e.g. Smalltalk VM). All Smalltalk dialects are accepted. The applicant should be "strongly related" to the presented code, be it as an author, as owner of the copyright/copyleft, or as an official representative of the copyright/copyleft owner.

Torsten Bergmann - ESUG 2015, 12th Innovation Technology Awards

July 02, 2015

Pharo Weekly - Events, Gestures and Recognisers

With the new OS window architecture coming a reality, we are starting to be able to do really nice interactive things ;)

Thanks Thales for the sponsoring. Thanks JB Arnaud and Merwan Ouddane for their energy and dedication. Pharo is getting great because of you.


Pharo News - Report Pharo Sprint

<p>Friday, June 12 there was a Pharo sprint / Moose dojo. It was a nice event with more than 15 motivated sprinters. With the help of candies, cakes and chocolate, huge work has been done:</p> <p>Pharo:</p><ul><li> 21 issues have been integrated for Pharo5!</li><li> 2 are ready for Pharo4</li><li> ... and work on issues that have not been closed</li></ul> <p>Moose:</p><ul><li> Telescope has been ported to work with Moose 5.1</li><li> visualizations of Moose have been (partially) migrated in Telescope</li><li> there is work in progress to update and improve MooseChef (more generic queries)</li></ul> <p>If you organize sprints, feel free to give feedback and to post pictures!</p> <p><figure><img src="/files/posts/sprint2.jpg"></img><figcaption></figcaption></figure> <figure><img src="/files/posts/sprint1.jpg"></img><figcaption></figcaption></figure></p>

Pharo News - Report Pharo Sprint

<p>Friday, June 12 there was a Pharo sprint / Moose dojo. It was a nice event with more than 15 motivated sprinters. With the help of candies, cakes and chocolate, huge work has been done:</p> <p>Pharo:</p><ul><li> 21 issues have been integrated for Pharo5!</li><li> 2 are ready for Pharo4</li><li> ... and work on issues that have not been closed</li></ul> <p>Moose:</p><ul><li> Telescope has been ported to work with Moose 5.1</li><li> visualizations of Moose have been (partially) migrated in Telescope</li><li> there is work in progress to update and improve MooseChef (more generic queries)</li></ul> <p>If you organize sprints, feel free to give feedback and to post pictures!</p> <p><figure><img src="/files/posts/sprint2.jpg"></img><figcaption></figcaption></figure> <figure><img src="/files/posts/sprint1.jpg"></img><figcaption></figcaption></figure></p>

Torsten Bergmann - Vizualising epidemiological Model with Pharos GT Tools

Using GTInspector for vizualising a migration multi-species epidemiological model: see here

Torsten Bergmann - A fast table for Pharo

Andres Valloud - Camp Smalltalk Portland 2015 --- registration is open!

Camp Smalltalk Portland 2015 in beautiful Oregon is go for August 21st through the 23rd!  (and if you arrive earlier on the 20th that's cool too)  Please register for the event here --- help us by filling in the questions so you can get your event shirt.  And also see that we're having a BBQ with live music on Saturday.  You can't miss it!

July 01, 2015

Pharo Weekly - Another Quake Like Editor

Hello Everyone,

I started making a Quake style level editor using Woden. I made an initial demo in this video:

https://youtu.be/YDLwGNlAy5U

I am creating an user interface similar to the one present in Blender. Currently I have these commands:

G: Grab tool
S: Scale tool
E: Expand tool
X: Delete selected
Shift-A: Add block

Greetings,
Ronie

Torsten Bergmann - Yaqe - Yet Another Quake Editor for Pharo

Ronie is working on a Quake style level editor using Woden (World Dynamic Engine for Pharo), a with a user interface similar to the one present in Blender. Video is below and code is here.


 

June 30, 2015

ESUG news - Camp Smalltalk PDX --- August 21st through the 23rd

Camp Smalltalk Portland 2015 is go for August 21st through the 23rd! (and if you arrive earlier on the 20th that's cool too) Please register for the event here:

https://www.picatic.com/event14352674835773927

Help us by filling in the questions so you can get your event shirt. And also see that we're having a BBQ with live music on Saturday.

Torsten Bergmann - Interactive Table with Pharo

Interactive table support in Pharo (thanks to the new OS window architecture). Thanks Thales for the sponsoring!

 

Torsten Bergmann - Example of Recognizer with Pharo

Torsten Bergmann - Modern Events Touch and Gestures in Pharo

Torsten Bergmann - Camp Smalltalk Portland 2015

Camp Smalltalk Portland, August 21st through the 23rd: Register here.

Andres Valloud - Camp Smalltalk Portland 2015

Dear artful programming enthusiasts,

The Pacific Northwest Smalltalk crew would like to invite you to Camp Smalltalk PDX this summer.  Come join us August 21-23 in beautiful Portland, Oregon!

We all know coding is a lot of fun, and that the best coding is done with the delete key.  Accordingly, Camp Smalltalk PDX will be at Portland’s CTRL-H hackerspace, http://www.ctrlh.org.

There is no set schedule, but of course we all have strong interests.  Some of the areas that will surely be covered include:

* Smalltalk on small devices, such as Scratch on Raspberry PI
* Web frameworks such as Seaside
* Virtual machine implementations
* Data processing applications
* Language design, Smalltalk and beyond

If you are curious about Smalltalk, feel free to drop by and give Smalltalk a try.

And yes, there are also the well known regulars --- we all know who you are :).  It’s time to catch up and plot inventing our future.

Feel free to contact us directly if you have questions regarding travel or accommodations.  Also, if you know you will be coming and you haven’t completed our survey yet, doing so will help us coordinate the infrastructure around the event: http://goo.gl/forms/XVLOLRe8OF.  For event information, see here: http://www.pdx.st/.  As the dates get closer, additional organization information may become available here: http://wiki.squeak.org/squeak/811.


See you in Portland!

Torsten Bergmann - ESUG 2015

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.