Planet Smalltalk

August 25, 2016

Pharo Weekly - Custom GTDebugger for Seaside

As presented at ESUG on Monday, we now have a custom GTDebugger for Seaside. This was built by Andrei as an initial experiment.
As we do not know much about Seaside-specific debugging problems, we asked a couple of Seaside users to describe issues that would be useful to be addressed in the debugger, and Andrei allocated some 4h to construct some of these in an custom debugger for Seaside.
Two of the issues that popped up are:
– get a quick view of the current request context
– get an overview of the current component nesting
They are now addressed like depicted in the screenshot below.seaside-debugger.png
You should look at this debugger as a beginning. Beside the current basic extensions one added value is that we now have the scaffolding to build more. Please take a look at it and let’s try to identify more concrete issues that might be addressed. It would be great if this would be taken over by the Seaside community.
The debugger can be loaded on top of a Pharo 6.0 with Seaside inside like this:
Gofer new
    smalltalkhubUser: ‘Moose’ project: ‘GToolkit’;
    package: ‘GT-SeasideDebugger’;
    load.
#GTSeasideDebugger asClass register
Cheers,
Doru

Eliot Miranda - We are very happy to make the following announcement

Hi, We are very happy to make the following announcement: Lam Research, a leading supplier of wafer fabrication equipment and services to the global semiconductor industry, is an experienced user of the Smalltalk programming language. Smalltalk is a key component in Lam’s software control system for a broad range of the equipment it manufactures. Tudor […]

Pharo Weekly - More Enhancements

60193
18980 QA v3.2.5
https://pharo.fogbugz.com/f/cases/18980

18903 CriticBrowser browser senders broken
https://pharo.fogbugz.com/f/cases/18903

18970 Add missing class comments for some RBToken classes
https://pharo.fogbugz.com/f/cases/18970
60192
18936 RBParser allows pragmas after method code
https://pharo.fogbugz.com/f/cases/18936

18829 Add a RefactoringFramework System HelpTopic
https://pharo.fogbugz.com/f/cases/18829

18955 DoubleLinkedList and its test should be in its own package
https://pharo.fogbugz.com/f/cases/18955

60191
18967 wrong title for “add trait” dialog
https://pharo.fogbugz.com/f/cases/18967

18954 ClassTest>>#testMethodsReferencingClass and testMethodsReferencingClasses should not use external packages
https://pharo.fogbugz.com/f/cases/18954

18975 copy sort –> sorted
https://pharo.fogbugz.com/f/cases/18975

18976 SmallDictionary>>#associationAt:ifPresent: is not implemented
https://pharo.fogbugz.com/f/cases/18976

60190
18972 Group browse scoped class sync
https://pharo.fogbugz.com/f/cases/18972

18964 support for <sampleInstance>
https://pharo.fogbugz.com/f/cases/18964
60189
18957 Class copy should not change the name of the instance variables
https://pharo.fogbugz.com/f/cases/18957

18434 Metacello-ProfSef classes sends wrong methods
https://pharo.fogbugz.com/f/cases/18434

18959 Create a class with a not existing trait does not suggest to create a new trait
https://pharo.fogbugz.com/f/cases/18959

18969 RBParser gets stuck in an endless loop if literal array contains an error
https://pharo.fogbugz.com/f/cases/18969
60188
18158 MessageSend should not care about obsolete classes
https://pharo.fogbugz.com/f/cases/18158
60187
18953 remove Regex dependency from SplitJoinTest>>#testSplitJoinBoundaryCases
https://pharo.fogbugz.com/f/cases/18953

18916 simplify asSlotCollection for bootstrap
https://pharo.fogbugz.com/f/cases/18916

18938 Remove RBClassInstVarNotInitializedRule, it is a bad rule
https://pharo.fogbugz.com/f/cases/18938
60186
18949 reduce direct references to OpalCompiler
https://pharo.fogbugz.com/f/cases/18949

18951 Add helper methods to get all assignment nodes of a slot
https://pharo.fogbugz.com/f/cases/18951

18952 adopt some extensions of AST-Core from Reflectivity
https://pharo.fogbugz.com/f/cases/18952
60185
18944 misspackaged Intege r>> readFrom: radix:
https://pharo.fogbugz.com/f/cases/18944

18945 do not require a Text in MockSourceEditor
https://pharo.fogbugz.com/f/cases/18945

18937 RBRefactoryTestDataApp and RBSmallintTestObject #fileBlocks sends undefined #asFilename
https://pharo.fogbugz.com/f/cases/18937

60184
18940 simplify deferFlushDuring:
https://pharo.fogbugz.com/f/cases/18940

18942 workaround: fix adding ivars to classes with class vars
https://pharo.fogbugz.com/f/cases/18942

18939 New critic for catching redundant periods after statements
https://pharo.fogbugz.com/f/cases/18939
60183
18917 simplify trait name validation for bootstrap
https://pharo.fogbugz.com/f/cases/18917

18941 ClassBuilderWarning should not override defaultAction
https://pharo.fogbugz.com/f/cases/18941

60182
18602 Dependency-Analyzer v1.19
https://pharo.fogbugz.com/f/cases/18602

18925 cleanup InMidstOfFileinNotification
https://pharo.fogbugz.com/f/cases/18925

60181
16789 RBUnaryAccessingMethodWithoutReturnRule refers to #nodes instead of #statements
https://pharo.fogbugz.com/f/cases/16789

18894 RBPatternParser should respect RBErrorNode when parsing pattern blocks II
https://pharo.fogbugz.com/f/cases/18894

18928 ambigous isArray for RBArrayNode
https://pharo.fogbugz.com/f/cases/18928

18914 Improve MethodClassifier classification based on selector parts
https://pharo.fogbugz.com/f/cases/18914

18888 Move Pharo bootstrap rule to Renraku model
https://pharo.fogbugz.com/f/cases/18888

60179
18910 MNU: OrderedCollection>>parent: when trying to rewrite a tree with RBParseTreeRewriter
https://pharo.fogbugz.com/f/cases/18910

18911 unify property API of CompiledMethod with all the others (Class, AST…)
https://pharo.fogbugz.com/f/cases/18911

18912 update comment Deprecation
https://pharo.fogbugz.com/f/cases/18912

60178
18907 Prevent LanguageEnvironment sublclasses to be in startup list
https://pharo.fogbugz.com/f/cases/18907

18906 SessionManager default should store the new instance when no default defined
https://pharo.fogbugz.com/f/cases/18906

18908 Prevent Symbol subclasses to be in startup list
https://pharo.fogbugz.com/f/cases/18908

60177
18909 Monkey broken because System-CommandLine-TextSupport unloaded in 60164
https://pharo.fogbugz.com/f/cases/18909

18866 Rename protocol window title is ambiguous
https://pharo.fogbugz.com/f/cases/18866

60176
18897 Monkey crashing with MessageNotUnderstood: VTermOutputDriver>>color256:
https://pharo.fogbugz.com/f/cases/18897
60175
18891 MethodFinderTest>>#testGreaterThanANumber is dependent on order
https://pharo.fogbugz.com/f/cases/18891

18889 CriticsBrowser “BlockCannotReturn”
https://pharo.fogbugz.com/f/cases/18889

18896 add support for ignored fields in structures
https://pharo.fogbugz.com/f/cases/18896

18898 Sista Encoder update for release.
https://pharo.fogbugz.com/f/cases/18898
60174
18890 Parser cant not parse faulty or unfinished blocks with return caret
https://pharo.fogbugz.com/f/cases/18890

18893 MCStWriterTest>>#expectedClassMethodDefinition will always fail on bootstrapped image
https://pharo.fogbugz.com/f/cases/18893

18892 simplify isBlockReturn: to use encoder
https://pharo.fogbugz.com/f/cases/18892

60173
18887 QA 3.2.4
https://pharo.fogbugz.com/f/cases/18887

60172
18878 MNU ReINvocationSequenceRule isArchitecturalRule
https://pharo.fogbugz.com/f/cases/18878

18886 parsing an unfinished block with invalid expressions in its body should not create only a single parse error node
https://pharo.fogbugz.com/f/cases/18886

18883 SystemReporter calls deprecated #name on MCWorkingCopy
https://pharo.fogbugz.com/f/cases/18883
60171
18875 RBRemoveClassRefactoring applicable despite showing a warning
https://pharo.fogbugz.com/f/cases/18875

18793 Add CTGrid
https://pharo.fogbugz.com/f/cases/18793

18876 Rename BinaryFileStream >> setAtEnd -> setToEnd
https://pharo.fogbugz.com/f/cases/18876

60170
18816 Failing test: ChangesBrowserTest.testInitializeWidgets
https://pharo.fogbugz.com/f/cases/18816

18846 <script:> and <script> pragmas do not always work
https://pharo.fogbugz.com/f/cases/18846

18782 Add DateAndTime class>>readFrom:defaultOffset:
https://pharo.fogbugz.com/f/cases/18782

18870 Delivery preparation hook for announcement
https://pharo.fogbugz.com/f/cases/18870

60169
18861 TaskbarMorph reports damage outside its own area
https://pharo.fogbugz.com/f/cases/18861

18868 Announcements subscription should supports exclusion like exceptions by minus
https://pharo.fogbugz.com/f/cases/18868

18867 MetaceloPackageSpec workingCopyNameFor call name which could lead to deprecation warning when current version is array
https://pharo.fogbugz.com/f/cases/18867

18865 can not open critics browser on a package from nautilus package pane menu
https://pharo.fogbugz.com/f/cases/18865

60168
18856 After Epicea integration: “an OmReference(Pharo_2elhj7i:199) not found in OmSessionStore”
https://pharo.fogbugz.com/f/cases/18856

17710 rename variable do not update class template
https://pharo.fogbugz.com/f/cases/17710

18855 reduce calls on #compiledMethod in RGMethodDefinition
https://pharo.fogbugz.com/f/cases/18855

18860 cleanup after running RGMethodDefintionTest
https://pharo.fogbugz.com/f/cases/18860

60167
18858 #testUndeclared fails: missing ivars in RadioButtonModel
https://pharo.fogbugz.com/f/cases/18858

18821 format code creates invalid pragma statement
https://pharo.fogbugz.com/f/cases/18821

18843 #digitLength is implemented in SmallInteger and in BigInteger but not in Integer
https://pharo.fogbugz.com/f/cases/18843

60166
18763 Update CriticBrowser to the latest Renraku changes
https://pharo.fogbugz.com/f/cases/18763

18781 Do it in File Browser text pane yields MNU: RubTextEditor>>doIt
https://pharo.fogbugz.com/f/cases/18781

18857 #hasSpecialSelector:ifTrueSetByte: can be removed
https://pharo.fogbugz.com/f/cases/18857
60164
18854 Unload System-CommandLine-TextSupport
https://pharo.fogbugz.com/f/cases/18854

60163
18831 Integrate new Epicea version
https://pharo.fogbugz.com/f/cases/18831

18768 Inlined method const could be implemented by metalinks
https://pharo.fogbugz.com/f/cases/18768

18835 Update RBParser-Nodes class comments
https://pharo.fogbugz.com/f/cases/18835

60162
18836 Second cleaning of Spec-Polywidgets and adding test
https://pharo.fogbugz.com/f/cases/18836

18845 Move MIMEHeaderValue from Mail to MIME package
https://pharo.fogbugz.com/f/cases/18845

18749 QA v3.2.1
https://pharo.fogbugz.com/f/cases/18749
60161
18749 QA v3.2.1
https://pharo.fogbugz.com/f/cases/18749

18845 Move MIMEHeaderValue from Mail to MIME package
https://pharo.fogbugz.com/f/cases/18845

60160
18840 Cleaning of Spec-example, adding their tests
https://pharo.fogbugz.com/f/cases/18840

18848 Traits do not show up when using sendersOfIt
https://pharo.fogbugz.com/f/cases/18848

18802 Versionner puts a MCLazyVersionInfo(package name) instead of the package name
https://pharo.fogbugz.com/f/cases/18802

60159
18844 Move String>>#join: to correct protocol
https://pharo.fogbugz.com/f/cases/18844

18838 ScrollSyncExample seems dont really work
https://pharo.fogbugz.com/f/cases/18838

18769 Add test for Spec-Core-Widgets
https://pharo.fogbugz.com/f/cases/18769

18841 Margin improvements
https://pharo.fogbugz.com/f/cases/18841


August 24, 2016

Pharo Weekly - Updated OpenCL bindings

Hi,

I have just finished updating the OpenCL bindings and the VirtualGPU to use the UnifiedFFI in Pharo 5. All of the examples have been tested in Mac OS X El Capitan 10.11.6.
Best regards,
Ronie
P.S: Do not confuse the VirtualGPU with the AbstractGPU. The AbstractGPU is an abstraction layer above Vulkan, Direct3D 12 and Metal. The AbstractGPU is used as the foundation for Woden 2.

Torsten Bergmann - ESUG 2016 - First slides

First slides of ESUG 2016 are available on Slideshare.

Later all the slides, videos and all will be archived on http://www.esug.org/data/ESUG2016/

Pharo Weekly - Windows Installer

PhyloclassTalk includes a Windows Installer written in Unicode NSIS.
It has two generators for this: A code generator written in Pharo to generate the NSIS script, and an image builder batch script which downloads image from ZeroConf, loads everything through Metacello, and launches NSIS to generate the executable file.

Hernan Morales


August 22, 2016

Torsten Bergmann - ESUG 2016, 13th Innovation Technology Awards - Kit

Kit (Programming for the rest of us) is one of the candidates for the ESUG Technology Awards

Torsten Bergmann - ESUG 2016, 13th Innovation Technology Awards - Educational Bureau

Educational Bureau (using Phratch based on Pharo) is one of the candidates for the ESUG Technology Awards. Video is here.

Torsten Bergmann - ESUG 2016, 13th Innovation Technology Awards - Woden 2 Game System

Woden 2 Game System is one of the candidates for the ESUG Technology Awards

Pharo News - [ANN] Agile Visualisation Book released

<p>Alexandre writes:</p> <p>&quot; It is a great pleasure to announce the release of Agile Visualization. Agile Visualization is a book about the Roassal Visualization engine.</p> <p>Paperback, eBook (PDF), and a free HTML format chapters are available from <a href="http://AgileVisualization.com">http://AgileVisualization.com</a> The book has 235 pages and covers the essential aspects of Roassal. Copies of the book will be sold at ESUG’16. Screenshots and codes contained in the book were produced on Pharo. However, most of the covered code and topics _equally_run on VisualWorks (from version 7.4 (!)).</p> <p>We would like to thank all the contributors and users of Roassal who have deeply impacted and shaped Agile Visualization. The book is dedicated to the Smalltalk community at large. Big big thanks to our sponsors, Lam Research, Object Profile, and ESUG. </p>

August 21, 2016

Cincom Smalltalk - Follow Along with #ESUG16 Updates from Twitter

Last year, we followed along with attendees at the European Smalltalk User Group Conference through Twitter, providing live updates from folks attending the conference and posting things on Twitter. We […]

The post Follow Along with #ESUG16 Updates from Twitter appeared first on Cincom Smalltalk.

August 19, 2016

Torsten Bergmann - Cuis now runs on Spur!

Additionally to Squeak and Pharo now also Cuis Smalltalk runs on the faster Spur version of the virtual machine. Nice!

August 18, 2016

Pharo Weekly - Examples and Examplar methods now reconciled!

Hi all

I implemented the <examplar> to behave as suggested by Torsten in thread more than a year ago if I got it correctly and it is available in less than 5 min (I loved it). An examplar is JUST a class method returning an instance. For example🙂, here I just define a class method returning a grid object.

CTGrid class >> grid22
<examplar>
“self grid22”
| grid1 |
grid1 := self new: 2.
grid1 atRow: 1 atColumn: 1 put: 1.
grid1 atRow: 1 atColumn: 2 put: 3.
grid1 atRow: 2 atColumn: 1 put: 2.
grid1 atRow: 2 atColumn: 2 put: 4.
^ grid1

You can use this method as any class method in the past. NOTHING new!!
So in particular your test can use it to build a fixture (yes reuse). You can use this method in several test cases (yes reuse).

Now nautilus supports nicely <examplar> methods: you can execute them and get a cool GTInspector open on them. So this is similar to the method exampleSomething pattern from Nautilus point of view.

And now people can use exampleSomething to create/open/display… their lovely examples (that may not return instances) – no stress you have the example you always liked (me too). And we get examplar methods that must return an instance but can behave as example from Nautilus perspective. So a nice win/win:

Better documentation of classes, better code reuse, nice integration and dead simple implementation: One class, 3 methods, no more  :)

If you want to try

https://pharo.fogbugz.com/f/cases/18964/support-examplar

If you want to try you can load the CTGrid packages.

ScriptLoader new unloadPackageNamed: ‘Collections-Grid’.
ScriptLoader new unloadPackageNamed: ‘Collections-Grid-Tests’.
“Because there were not good and will be removed from the image”
Gofer it
url: ‘http://smalltalkhub.com/mc/StephaneDucasse/Containers/main&#8217;;
configurationOf: ‘Grid’;
loadStable

Click on class side of CTGrid and press the triangle and yes you get an inspector on this instance.

Stef


Smalltalk Jobs - Smalltalk Jobs – 8/18/16

There is a Smalltalk/Java job in the auto industry near Ingolstadt.  You need:

  • Smalltalk, Java, and SQL.
  • XML
  • REST interfaces
  • Either freelance or permanent.
  • Experience in the auto sector and with large customers.

Link.


Filed under: Employment

Pharo News - [ANN] Moose 6.0

<p>We are happy to announce version 6.0 of the Moose Suite, the platform for software and data analysis built in Pharo: <a href="http://moosetechnology.org/#install">http://moosetechnology.org/#install</a></p> <p>The key highlights are:</p><ul><li> It is based on Pharo 5.0 including the latest version of the Glamorous Toolkit.</li><li> It includes the SmaCC parsing framework together with parsers and abstract syntax trees for Java, JavaScript and Swift.</li><li> Roassal2 comes with several enhancements.</li><li> Famix features a new and generic query API engine.</li><li> Moose Finder and GTInspector come with more custom presentations and visualizations.</li><li> SmaCC comes with a dedicated debugger.</li><li> The debuggers for Glamour, PetitParser and Announcements received a new update.</li><li> DeepTraverser is an order of magnitude faster.</li></ul> <p>Extra highlights:</p><ul><li> Roassal2 is documented in a brand new book: http://agilevisualization.com</li><li> jdt2famix is a new open-source importer for Java: https://github.com/girba/jdt2famix</li></ul>

Pharo News - [ANN] Moose 6.0

<p>We are happy to announce version 6.0 of the Moose Suite, the platform for software and data analysis built in Pharo: <a href="http://moosetechnology.org/#install">http://moosetechnology.org/#install</a></p> <p>The key highlights are:</p><ul><li> It is based on Pharo 5.0 including the latest version of the Glamorous Toolkit.</li><li> It includes the SmaCC parsing framework together with parsers and abstract syntax trees for Java, JavaScript and Swift.</li><li> Roassal2 comes with several enhancements.</li><li> Famix features a new and generic query API engine.</li><li> Moose Finder and GTInspector come with more custom presentations and visualizations.</li><li> SmaCC comes with a dedicated debugger.</li><li> The debuggers for Glamour, PetitParser and Announcements received a new update.</li><li> DeepTraverser is an order of magnitude faster.</li></ul> <p>Extra highlights:</p><ul><li> Roassal2 is documented in a brand new book: http://agilevisualization.com</li><li> jdt2famix is a new open-source importer for Java: https://github.com/girba/jdt2famix</li></ul>

August 17, 2016

BioSmalltalk - PhyloclassTalk was used to solve a homicide

PhyloclassTalk, an open-source phylogeographic text-mining system based in BioSmalltalk, was used in veterinary forensics to solve a homicide! The September 2016 issue of Legal Medicine includes an article which fully describes the case in detail. PhyloclassTalk was used to narrow blasted sequences of the species (Canis Familiaris) and extract proper meta-data (Breed names) from NCBI's GenBank. A hand-crafted database of dog breeds was built and integrated into a PhyloclassTalk repository to classify (by breed name) and observe the ones located in Argentina, where the sample of and individual was found in a crime scene. Finally it was also used to build and export the results to Arlequin format. PhyloclassTalk paper is almost completed, meanwhile a beta release of the software can be downloaded from its web site.