Planet Squeak

blogs about Squeak, Pharo, Croquet and family
planet squeak - planet squeak es - planet squeak jp - planet croquet - planet squeak code - planet smalltalk

December 10, 2017

PharoWeekly

Nested JSON REST

> I guess part of what I’m interested in are patterns for hooking
> NeoJSON up to parse a REST response into objects to build a wrapper
> around a REST service. I see a chapter in Enterprise Pharo, which I’ll
> get to that soon.  Perhaps I was premature asking before reading that,
> but its good to have a few paths to explore.

Here is a recent example http://forum.world.st/Another-example-of-invoking-a-REST-JSON-web-service-resolving-User-Agent-strings-tt5017489.html

Thanks Sven.  That helped a lot.   I’d like to report success.
It may be useful to others to see how to progressively build up to parsing a Nested JSON REST
1. First parse the JSON into simple Dictionaries…
(ZnClient new
    url: ‘https://bittrex.com/api/v1.1/public/getmarkets‘;
    enforceHttpSuccess: true;
    accept: ZnMimeType applicationJson;
    contentReader: [ :entity | NeoJSONReader fromString: entity contents ];
get) inspect.
==>Dictionary(
      ‘success’ ==> true
      ‘message’ ==> ”
      ‘result ‘ ==> an Array(a Dictionary(‘BaseCurrency’->’BTC’ ‘BaseCurrencyLong’->’Bitcoin’)
… a Dictionary(‘BaseCurrency’->’ETH’ ‘BaseCurrencyLong’->’Ethereum’)
2. Then parse the first level response into a real object…
Object subclass: #BittrexResponse
    instanceVariableNames: ‘success message result’
    classVariableNames: ”
    package: ‘Bittrex’
(ZnClient new
   url: ‘https://bittrex.com/api/v1.1/public/getmarkets‘;
   enforceHttpSuccess: true;
   accept: ZnMimeType applicationJson;
   contentReader: [ :entity |
       (NeoJSONReader on: entity readStream)
mapInstVarsFor: BittrexResponse ;
         nextAs: BittrexResponse ];
      get) inspect.
==>BittrexResponse
      success => true
      message => ”
      result => an Array(a Dictionary(‘BaseCurrency’->’BTC’ ‘BaseCurrencyLong’->’Bitcoin’)
… a Dictionary(‘BaseCurrency’->’ETH’ ‘BaseCurrencyLong’->’Ethereum’)
Or alternatively…
(ZnClient new
   url: ‘https://bittrex.com/api/v1.1/public/getmarkets‘;
   enforceHttpSuccess: true;
   accept: ZnMimeType applicationJson;
   contentReader: [ :entity | |reader|
   reader := (NeoJSONReader on: entity readStream).
   reader for: BittrexResponse do: [:m|
           m mapInstVar: #success.
           m mapInstVar: #message.
           m mapInstVar: #result ].
    reader nextAs: BittrexResponse ];
   get) inspect.
==>BittrexResponse
      success => true
      message => ”
      result => an Array(a Dictionary(‘BaseCurrency’->’BTC’ ‘BaseCurrencyLong’->’Bitcoin’)
… a Dictionary(‘BaseCurrency’->’ETH’ ‘BaseCurrencyLong’->’Ethereum’)
3. Finally parse into real objects the nested level holding the data you really want…
Object subclass: #Market
    instanceVariableNames: ‘MarketCurrency BaseCurrency MarketCurrencyLong BaseCurrencyLong MinTradeSize MarketName IsActive Created Notice IsSponsored LogoUrl’
   classVariableNames: ”
   package: ‘Bittrex’
(ZnClient new
   url: ‘https://bittrex.com/api/v1.1/public/getmarkets‘;
   enforceHttpSuccess: true;
   accept: ZnMimeType applicationJson;
   contentReader: [ :entity | |reader|
   reader := (NeoJSONReader on: entity readStream).
   reader for: BittrexResponse do: [:m|
            m mapInstVar: #success.
            m mapInstVar: #message.
           (m mapInstVar: #result) valueSchema: #ArrayOfMarkets].
           reader for: #ArrayOfMarkets customDo: [ :mapping | mapping listOfElementSchema: Market ].
reader mapInstVarsFor: Market.
      reader nextAs: BittrexResponse ];
   get) inspect.

==>BittrexResponse
      success => true
      message => ”
      result => an Array(a Market(LTC) a Market(DOGE) a Market(VTC) a Market(PPC) a Market(FTC) a Market(RDD)
… Market(POWR) a Market(BTG) a Market(BTG) a Market(BTG) a Market(ADA) a Market(ENG) a Market(ENG))
WhooHoo!
A couple of things remaining:
* The instance variables of Market currently start with an upper-case to match the JSON fields.
  Lower-casing the first letter breaks things.
  What strategies can be used to conform here to Smalltalk conventions?
  Or is it easy enough to live with it?
* In various posts I’ve seen mention of a class-side method #neoJsonMapping:
   but there is no explanation of this in the Enterprise Book.
   How might #neoJsonMapping: come into the picture for my use case above?
cheers -ben

by Stéphane Ducasse at December 10, 2017 07:26 AM

About REST clients

Hi Ben,

I’ve made a few REST Clients

http://smalltalkhub.com/#!/~pdebruic/Stripe
http://smalltalkhub.com/#!/~pdebruic/Tropo
http://smalltalkhub.com/#!/~pdebruic/SegmentIO

And the elasticsearch one but its been advanced mostly lately by Sho Yoshida
(https://github.com/newapplesho) here
https://github.com/newapplesho/elasticsearch-smalltalk

He has also made REST clients for Twilio, AWS, SendGrid, Salesforce, and
Mixpanel among others.

Norbert Hartl made one for Mandrill (Mailchimps transactional email service)
http://smalltalkhub.com/#!/~NorbertHartl/Mandrill

And Francois Stephany made one for Postmark (another transactional email
service) http://smalltalkhub.com/#!/~PharoExtras/Postmark

So those are some examples of different approaches.

I also started/made a cross platform web client wrapper (just wraps calls to
ZnClient or WebClient on Squeak)
http://smalltalkhub.com/#!/~pdebruic/HTTPAPIClient

But IIRC I only used it in the Stripe API client.

Hope this gives you some ideas about how to approach your own solution

Paul


by Stéphane Ducasse at December 10, 2017 07:23 AM

December 09, 2017

Hernan Morales

Territorial: A new package for Geographical Information Retrieval for Smalltalk

Territorial is a Smalltalk library for Geographical Information Retrieval (GIR) in geopolitical objects. It was originally designed for a Phylogeographic Information Retrieval system based in BioSmalltalk. There will be no scripts in this post, everything is explained in the Territorial User Manual (PDF). The Territorial library has two locations: SmalltalkHub is where I will commit latest

by Hernán (noreply@blogger.com) at December 09, 2017 06:43 PM

PharoWeekly

GT Mondrian: Mondrian on top of Block

Hi,

We are happy to announce, a graph visualization engine built on top of Bloc.

It is similar to the original Mondrian and the Mondrian from Roassal, but it is different in that it is built directly out of Bloc elements. This is interesting because it allows us to combine typical widgets with visualizations. The other interesting thing about it is that it validates the design of Bloc: right now, the implementation has 509 lines of code (excluding graph-specific layouts). The goal is to make visualization a first class citizen and an integral part of the IDE.

The key ingredient that made this happen is that Bloc can now treat graph layouts, such as tree or force based, behave under the same rules as typical widget layouts, such as grid or flow. The challenge comes from the fact that a graph layout depends on the notion of edges between elements, and we did not want to have elements know about edges in the core of Bloc.
The solution was to split the mondrian-doctypical edge implementation in graph visualization libraries into two distinct concepts:
• Line is an element that draws the connections.
• Edge defines constraints imposed by connections between elements.


Thus, edges form constraints, and constraints are what layouts deal with. That is one reason why elements in bloc have the ability of defining layout-specific constraints. Using this, we can nicely define edges between elements as a plugin to Bloc, but still be able to connect arbitrary elements. What’s more, it turns out that we need constraints for other layouts as well. For example, an element in a grid layout might specify the span.

 
The API of GT Mondrian is similar to the one from Roassal, but there are a few differences as well. These are described in the Pillar documentation available in the GitHub repo.
The best way to experience GT Mondrian and its documentation is to load the GToolkit as described here:
https://github.com/feenkcom/gtoolkit
If you download the GT code through Iceberg, the documentation can be experienced live by inspecting:
‘./pharo-local/iceberg/feenkcom/gtoolkit-visualizer/doc/mondrian/index.pillar’ asFileReference
The Feenk team

by Stéphane Ducasse at December 09, 2017 07:40 AM

December 08, 2017

Torsten Bergmann

Pharo Mastodon

A Pharo API for Mastodon.

Code is here: https://github.com/estebanlm/pharo-mastodon

by Torsten (noreply@blogger.com) at December 08, 2017 07:19 PM

Pharango

Pharango - a http connector for Pharo and arango db.

Code is here: https://github.com/Valtena/Pharango

by Torsten (noreply@blogger.com) at December 08, 2017 07:17 PM

PharoWeekly

(the kernel of) a Framework for genetic algorithms

Hi,

I just implemented (the kernel of) a Framework for genetic algorithms (https://en.wikipedia.org/wiki/Genetic_algorithm) in Pharo.
Some of you could be dealing with optimisation problems. So maybe it could be useful for you.
I implemented some basic functionalities : monoobjecitve, multi objective, a crossover and mutation operators, uniform selection… I also implemented some basic exemples ( mono/multi knapsack and travelling salesman)
I still need to provide some documentation but there are lot of tests so it is easy to see how it works. I will add more operators from time to time.
The code is intended to be as easy to reuse as possible. It is on Smalltalkhub : http://smalltalkhub.com/#!/~Alidra/GeneticAlgorithmsFramework/
Please take a look and tell me what you think. I will be pleased to help if you think the Framework can apply to your problem. just let me know 🙂
Abdelghani

by Stéphane Ducasse at December 08, 2017 02:22 PM

Report period: 24 November 2017 to 8 December 2017

* 20734-Nested-Structures-using-Platform-longs-fails
>> Adding implementation of platform dependent longs in FFIExternalStructureReferenceHandle.
>>
>> Fixes https://pharo.fogbugz.com/f/cases/20734/Nested-Structures-using-Platform-longs-fails

Issue URL: https://pharo.fogbugz.com/f/cases/20734
PR URL: https://github.com/pharo-project/pharo/pull/519
Diff URL: https://github.com/pharo-project/pharo/pull/519/files

Thanks to tesonep

* 20847 Super setUp need to be called in various test classes (Part 2)
>> – call super setUp in HiNodesAndLinksIteratorWithOneLinkModelTest
>> – call super setUp in GuideTest
>> – call super setUp in SMTPClientTest
>> – call super setUp in SocketStreamTest
>> – call super setUp in SocketTest
>> – call super setUp in ZipArchiveTest
>> – call super setUp in TonelRepositoryTest
>> – call super setUp in SlotMethodRecompilationTest
>> – call super setUp in SmalllintManifestCheckerTest
>> – call super setUp in OmSessionStoreNameStrategyTest
>> – call super setUp in PharoBootstrapRuleTest
>> – call super setUp in PharoIssueTest
>> – call super setUp in PharoTutorialTestGoOnMockTutorial
>> – call super setUp in PharoTutorialTestNavigation
>> – call super setUp in UUIDGeneratorTest
>> – call super setUp in TestObjectsAsMethods
>> – call super setUp in TutorialPlayerTestWithMockTutorial
>> – call super setUp in PNGReadWriterTest
>> – call super setUp in PragmaTest
>> – call super setUP in QuotedPrintableMimeConverterTest
>> – call super setUP in RandomTest
>> – call super setUP in RectangleTest
>> – call super setUP in RecursionStopperTest
>> – call super setUp in ResumableTestFailureTestCase
>> – call super setUp in MTDependencyTest
>> – call super setUp in MTDevelopmentWorkfowTestWithXMLParser
>> – call super setUp in NautilusTest
>> – call super setUp in NautilusUITest
>> – call super setUp in SimpleTestResourceTestCase
>> – call super setUp in SUnitTest
>> – call super setUp in SimpleTestResource
>> – call super setUp in GTDebuggerSmokeTest
>> – call super setUp in GTPlaygroundBasicTest
>> – call super setUp in GTSpotterCandidatesListTest
>> – call super setUp in ZdcPluginSSLSessionTest
>> – call super setUp in ZnStaticFileServerDelegateTests
>> – call super setUp in ZnStaticFileServerDelegateTests
>> – call super setUp in GLMAnnouncementPropagationTest
>> – call super setUp in GLMAnnouncerTest
>> – call super setUp in GLMExplicitBrowserCopyTest
>> – call super setUp in GLMPagerModelTest
>> – call super setUp in GLMUpdateMorphicTest
>> – call super setUp in GLMPagerMorphTest
>>
>> https://pharo.fogbugz.com/f/cases/20847/Super-setUp-need-to-be-called-in-various-test-classes-Part-2

Issue URL: https://pharo.fogbugz.com/f/cases/20847 Super setUp need to be called in various test classes (Part 2)
PR URL: https://github.com/pharo-project/pharo/pull/593
Diff URL: https://github.com/pharo-project/pharo/pull/593/files

Thanks to astares

* 20840 Super setUp need to be called in various test classes (Part 1)
>> – call super setUp in AbstractNautilusUITest
>> – call super setUp in AndreasSystemProfilerTest
>> – call super setUp in ArrayTest
>> – call super setUp in AssociationTest
>> – call super setUp in ASTCacheResetTest
>> – call super setUp in BagTest
>> – call super setUp in Base64MimeConverterTest
>> – call super setUp in BuilderManifestTest
>> – call super setUp in CairoUTF8ConverterTest
>> – call super setUp in ChangesBrowserTest
>> – call super setUp in ChangeSetClassChangesTest
>> – call super setUp in ClassRenameFixTest
>> – call super setUp in ClassTest
>> – call super setUp in TraitsResource
>> – call super setUp in CollectionValueHolderTest
>> – call super setUp in CommandLineArgumentsTest
>> – call super setUp in CopyVisitorTest
>> – call super setUp in FreeTypeCacheTest
>> – call super setUp in HashAndEqualsTestCase
>> – call super setUp in HeapTest
>> – call super setUp in SortedCollectionTest
>> – call super setUp in SortHierarchicallyTest
>> – call super setUp in SetTest
>> – call super setUp in StackTest
>> – call super setUp in StringTest
>> – call super setUp in SymbolTest
>> – call super setUp in FloatArrayTest
>> – call super setUp in SHStyleElementTest
>> – call super setUp in HistoryIteratorTest
>> – call super setUp in IntervalTest
>> – call super setUp in OrderedCollectionTest
>> – call super setUp in LazyTabGroupTest
>> – call super setUp in MatrixTest
>> – call super setUp in RPackageTestCase
>> – call super setUp in ScheduleTest
>> – call super setUp in SendsDeprecatedMethodToGlobalRuleTest
>> – call super setUp in MorphTest
>> – call super setUp in MorphicEventHandlerTest
>> – call super setUp in MorphicAdapterTest
>> – call super setUp in MorphicUIBugTest
>> – call super setUp in CircleMorphTest

Issue URL: https://pharo.fogbugz.com/f/cases/20840 Super setUp need to be called in various test classes (Part 1)
PR URL: https://github.com/pharo-project/pharo/pull/590
Diff URL: https://github.com/pharo-project/pharo/pull/590/files

Thanks to astares

* 20838 Super setUp need to be called in System-SessionManager package tests
>> – call super setUp in SessionErrorHandlingTest
>> – call super setUp in SessionManagerRegistrationTest
>> – call super setUp in SessionManagerUnregistrationTest
>>
>> https://pharo.fogbugz.com/f/cases/20838/Super-setUp-need-to-be-called-in-System-SessionManager-package-tests

Issue URL: https://pharo.fogbugz.com/f/cases/20838 Super setUp need to be called in System
PR URL: https://github.com/pharo-project/pharo/pull/588
Diff URL: https://github.com/pharo-project/pharo/pull/588/files

Thanks to astares

* 20839 Super setUp need to be called in NECompletion-Tests
>> – call super setUp in NECControllerTest
>> – call super setUp in NECOverrideModelTest
>> – call super setUp in NECUntypedModelTest
>>
>> https://pharo.fogbugz.com/f/cases/20839/

Issue URL: https://pharo.fogbugz.com/f/cases/20839 Super setUp need to be called in NECompletion
PR URL: https://github.com/pharo-project/pharo/pull/589
Diff URL: https://github.com/pharo-project/pharo/pull/589/files

Thanks to astares

* 20826 Super setup need to be called in DependencyAnalyser tests
>> – call super setUp in DADependencyCheckerTest
>> – call super setUp in DAMessageSendAnalyzerTest
>> – call super setUp in DAPackageCycleDetectorTest (with some formatting cleanups in setUp)
>> – call super setUp in DAPackageCycleTest
>> – call super setUp in DAPackageDependencyTest
>> – call super setUp in DAPackageDependencyWrapperTest
>> – call super setUp in DAPackageRelationGraphDiffTest
>> – call super setUp in DAPackageRelationGraphTest (with some formatting cleanups in setUp)
>> – call super setUp in DAPackageTest (with some formatting cleanups in setUp)
>> – call super setUp in DATarjanAlgorithmTest (with some formatting cleanups in setUp)
>> Also add some tags to to better categorize the test classes in package “Tool-Dependency-Analyse-Test”

Issue URL: https://pharo.fogbugz.com/f/cases/20826 Super setup need to be called in DependencyAnalyser tests
PR URL: https://github.com/pharo-project/pharo/pull/579
Diff URL: https://github.com/pharo-project/pharo/pull/579/files

Thanks to astares

* 20791-World-menu-help-not-shown-in-the-menu
>> Set balloonText after the spec’s help.

Issue URL: https://pharo.fogbugz.com/f/cases/20791
PR URL: https://github.com/pharo-project/pharo/pull/575
Diff URL: https://github.com/pharo-project/pharo/pull/575/files

Thanks to luque

* 20830 Super setup need to be called in Monticello tests and other cleanups (comments, tags)
>> – call super setUp in MCChangeNotificationTest
>> – call super setUp in MCClassDefinitionTest
>> – call super setUp in MCDictionaryRepositoryTest
>> – call super setUp in MCDirectoryRepositoryTest
>> – call super setUp in MCFileInTest
>> – call super setUp in MCMczInstallerTest
>> – call super setUp in MCMethodDefinitionTest
>> – call super setUp in MCPatchTest
>> – call super setUp in MCSnapshotBrowserTest
>> – call super setUp in MCSnapshotTest
>> – call super setUp in MCStWriterTest
>> – call super setUp in MCVersionTest
>> – call super setUp in MCSnapshotResource (test resource)
>>
>> – categorize the three test methods in MCPackageManagerTest
>> – Add a comment to uncommented MCTestCase
>> – Add a comment to uncommented MCRepositoryTest
>> – Add a comment to uncommented MCSnapshotResource
>> – Add a comment to uncommented MCMockDependency
>>
>> – add some tags to structure the many test classes in the package better
>>
>>
>> https://pharo.fogbugz.com/f/cases/20830/Super-setup-need-to-be-called-in-Monticello-tests-and-other-cleanups-comments-tags

Issue URL: https://pharo.fogbugz.com/f/cases/20830 Super setup need to be called in Monticello tests and other cleanups (comments, tags)
PR URL: https://github.com/pharo-project/pharo/pull/583
Diff URL: https://github.com/pharo-project/pharo/pull/583/files

Thanks to astares

* 20816 Typo in DateAndTimeEpochTest and DateAndTimeUnixEpochTest tearDown
>> fix typo
>>
>> https://pharo.fogbugz.com/f/cases/20816/Typo-in-DateAndTimeEpochTest-and-DateAndTimeUnixEpochTest-tearDown

Issue URL: https://pharo.fogbugz.com/f/cases/20816 Typo in DateAndTimeEpochTest and DateAndTimeUnixEpochTest tearDown
PR URL: https://github.com/pharo-project/pharo/pull/572
Diff URL: https://github.com/pharo-project/pharo/pull/572/files

Thanks to astares

* 20822 Cleanup AbstractKeymappingTest
>> – override #isAbstract as it is an abstract test superclass
>> – call super setUp
>> – call super tearDown
>> – set default to nil in tearDown to avoid further referencing

Issue URL: https://pharo.fogbugz.com/f/cases/20822 Cleanup AbstractKeymappingTest
PR URL: https://github.com/pharo-project/pharo/pull/577
Diff URL: https://github.com/pharo-project/pharo/pull/577/files

Thanks to astares

* 20820 Better formatting of TestSuite setUp
>> – one blank instead of two
>> – format to be more readable
>>
>> https://pharo.fogbugz.com/f/cases/20820/Better-formatting-of-TestSuite-setUp

Issue URL: https://pharo.fogbugz.com/f/cases/20820 Better formatting of TestSuite setUp
PR URL: https://github.com/pharo-project/pharo/pull/574
Diff URL: https://github.com/pharo-project/pharo/pull/574/files

Thanks to astares

* 20825 Super setUp need to be called in Opal Compiler tests
>> – call super setUp in OCBytecodeDecompilerTest
>> – call super setUp in OCClosureCompilerTest
>> – call super setUp in OCCompilerExceptionTest
>> – call super setUp in OCCompilerNotifyingTest
>> – call super setUp in OCCompilerTest

Issue URL: https://pharo.fogbugz.com/f/cases/20825 Super setUp need to be called in Opal Compiler tests
PR URL: https://github.com/pharo-project/pharo/pull/578
Diff URL: https://github.com/pharo-project/pharo/pull/578/files

Thanks to astares

* 20819 Fix variable assignment in RBScanner>>stripComment
>> https://pharo.fogbugz.com/f/cases/20819/Fix-variable-assignment-in-RBScanner-stripComment

Issue URL: https://pharo.fogbugz.com/f/cases/20819 Fix variable assignment in RBScanner>>stripComment
PR URL: https://github.com/pharo-project/pharo/pull/573
Diff URL: https://github.com/pharo-project/pharo/pull/573/files

Thanks to astares

* Fix potential dangling reference to a released FT_Face
>> This is issue https://pharo.fogbugz.com/f/cases/20776/Potential-dangling-ref-to-freed-FT_Face
>>
>> Technical details:
>>
>> A cairo_font_face could still be referenced from external heap and further used.
>> Thus we must NOT release the FT_Face until the external reference count drops to 1.
>>
>> Thus the CairoFontFace is not a good place for retaining a strong reference to the FT2Face, because the reference will vanish as soon as the Smalltalk object is garbage collected, while some external cairo_font_face still point on it.
>> It’s better to have the strong reference in the executor, and avoid garbageCollecting the executor while there are external references to the resource data…
>>
>> The solution is to use a specific CairoFontFaceExecutor.
>> If the resource is shared, then we have no other choice than regularly polling the ref count in a new Process.
>> This process must stop whenever the session change.
>>
>> Please review carefully and pass some tests.

Issue URL: https://pharo.fogbugz.com/f/cases/Fix potential dangling reference to a released FT_Face
PR URL: https://github.com/pharo-project/pharo/pull/565
Diff URL: https://github.com/pharo-project/pharo/pull/565/files

Thanks to nicolas-cellier-aka-nice

* 20821 Remove unused ivar from RBKeywordToken and RBIdentifierToken
>> Remove
>> – unused ivar stopPosition in RBIdentifierToken and
>> – unused ivar stopPosition in RBKeywordToken
>>
>> https://pharo.fogbugz.com/f/cases/20821/Remove-unused-ivar-from-RBKeywordToken-and-RBIdentifierToken

Issue URL: https://pharo.fogbugz.com/f/cases/20821 Remove unused ivar from RBKeywordToken and RBIdentifierToken
PR URL: https://github.com/pharo-project/pharo/pull/576
Diff URL: https://github.com/pharo-project/pharo/pull/576/files

Thanks to astares

* 20828 Super setup need to be called in Versionner tests
>> – call super setUp in MBAbstractTest
>> – call super setUp in MBPackageInfoTest
>>
>> https://pharo.fogbugz.com/f/cases/20828/Super-setup-need-to-be-called-in-Versionner

Issue URL: https://pharo.fogbugz.com/f/cases/20828 Super setup need to be called in Versionner tests
PR URL: https://github.com/pharo-project/pharo/pull/581
Diff URL: https://github.com/pharo-project/pharo/pull/581/files

Thanks to astares

* 20829 Super setup need to be called in Spec tests
>> – call super setUp in MorphicLabelAdapterTest
>> – call super setUp in MorphicTreeAdapterTest
>> – call super setUp in SpecInterpreterTest
>> – call super setUp in SpecTestCase
>>
>> https://pharo.fogbugz.com/f/cases/20829/Super-setup-need-to-be-called-in-Spec-tests

Issue URL: https://pharo.fogbugz.com/f/cases/20829 Super setup need to be called in Spec tests
PR URL: https://github.com/pharo-project/pharo/pull/582
Diff URL: https://github.com/pharo-project/pharo/pull/582/files

Thanks to astares

* 20827 Super setUp need to be called RBParseTreeRewriterTest and RBParseTreeSearcherTest
>> – call super setUp in RBParseTreeRewriterTest
>> – call super setUp in RBParseTreeSearcherTest

Issue URL: https://pharo.fogbugz.com/f/cases/20827 Super setUp need to be called RBParseTreeRewriterTest and RBParseTreeSearcherTest
PR URL: https://github.com/pharo-project/pharo/pull/580
Diff URL: https://github.com/pharo-project/pharo/pull/580/files

Thanks to astares

* 20814 Add release check that we have no protocols left without methods
>> Check that we have no protocols left without methods
>>
>> https://pharo.fogbugz.com/f/cases/20814/Add-release-check-that-we-have-no-protocols-left-without-methods

Issue URL: https://pharo.fogbugz.com/f/cases/20814 Add release check that we have no protocols left without methods
PR URL: https://github.com/pharo-project/pharo/pull/570
Diff URL: https://github.com/pharo-project/pharo/pull/570/files

Thanks to astares

* 20815 Add a release test ensuring that there are no empty packages in the i
>> Add a release test ensuring that there are no empty packages in the image left
>>
>> https://pharo.fogbugz.com/f/cases/20815/Release-check-so-that-we-have-no-empty-packages-left

Issue URL: https://pharo.fogbugz.com/f/cases/20815 Add a release test ensuring that there are no empty packages in the i
PR URL: https://github.com/pharo-project/pharo/pull/571
Diff URL: https://github.com/pharo-project/pharo/pull/571/files

Thanks to astares

* 20786-halt-messages-are-not-highlighted-in-red-as-the-other-flavours-of-halt-messages
>> Added haltIfNil to the selectors to be highlighted by HaltIconStyler.
>> Changed the structure of the shouldStyleNode method’s code to increase clarity.

Issue URL: https://pharo.fogbugz.com/f/cases/20786
PR URL: https://github.com/pharo-project/pharo/pull/569
Diff URL: https://github.com/pharo-project/pharo/pull/569/files

Thanks to dupriezt

* 20781-update-to-iceberg-064
>> closes issue #20781

Issue URL: https://pharo.fogbugz.com/f/cases/20781
PR URL: https://github.com/pharo-project/pharo/pull/560
Diff URL: https://github.com/pharo-project/pharo/pull/560/files

Thanks to estebanlm

* 20793-During-Bootstrap-if-a-baseline-installation-fails-it-should-cancel-the-process
>> This PR introduces two changes to handle the errors during the bootstrap:
>>
>> 1. The Whole process now has a timeout of 60 minutes.
>> 2. After initializing the world in BaselineOfMorphic the UIManager is restored to the correct UIManager depending the system state. If it is headless then the NonInteractiveManager is used, otherwise the MorphicUIManager.

Issue URL: https://pharo.fogbugz.com/f/cases/20793
PR URL: https://github.com/pharo-project/pharo/pull/567
Diff URL: https://github.com/pharo-project/pharo/pull/567/files

Thanks to tesonep

* 20800-do-not-open-welcome-window-for-now
>> https://pharo.fogbugz.com/f/cases/20800/do-not-open-welcome-window-for-now
>>
>> do not open the welcome window

Issue URL: https://pharo.fogbugz.com/f/cases/20800
PR URL: https://github.com/pharo-project/pharo/pull/568
Diff URL: https://github.com/pharo-project/pharo/pull/568/files

Thanks to pavel-krivanek

* 20786-halt-messages-are-not-highlighted-in-red-as-the-other-flavours-of-halt-messages
>> Created HaltColonIconStylerClass, to style `halt:` message nodes with red highlighting in code browsers.

Issue URL: https://pharo.fogbugz.com/f/cases/20786
PR URL: https://github.com/pharo-project/pharo/pull/564
Diff URL: https://github.com/pharo-project/pharo/pull/564/files

Thanks to dupriezt

* 20782-CompiledCode-misses-an-abstract-sourcePointer-method
>> introduced CompiledCode>>sourcePointer as an abstract method

Issue URL: https://pharo.fogbugz.com/f/cases/20782
PR URL: https://github.com/pharo-project/pharo/pull/561
Diff URL: https://github.com/pharo-project/pharo/pull/561/files

Thanks to LucFabresse

* -20785/Fix-the-names-of-uploaded-bootstrap-zip-files
>> https://pharo.fogbugz.com/f/cases/20785/Fix-the-names-of-uploaded-bootstrap-zip-files

Issue URL: https://pharo.fogbugz.com/f/cases/
PR URL: https://github.com/pharo-project/pharo/pull/563
Diff URL: https://github.com/pharo-project/pharo/pull/563/files

Thanks to pavel-krivanek

* 20783-upload-temporary-building-files-into-a-separate-repository
>> https://pharo.fogbugz.com/f/cases/20783/upload-temporary-building-files-into-a-separate-repository

Issue URL: https://pharo.fogbugz.com/f/cases/20783
PR URL: https://github.com/pharo-project/pharo/pull/562
Diff URL: https://github.com/pharo-project/pharo/pull/562/files

Thanks to pavel-krivanek

* 20777-Fix-instVarAt-instVarAt-put-comment
>> https://pharo.fogbugz.com/f/cases/20777/Fix-instVarAt-instVarAt-put-comment
>>
>> http://forum.world.st/Problem-with-primitive-instVarAt-instVarAt-put-what-should-we-do-td5036631.html

Issue URL: https://pharo.fogbugz.com/f/cases/20777
PR URL: https://github.com/pharo-project/pharo/pull/559
Diff URL: https://github.com/pharo-project/pharo/pull/559/files

Thanks to clementbera

* 20772 – Unused temps in MBConfigurationInfo, MethodDictionaryTest,…
>> Fix unused temps in
>>
>> MethodDictionaryTest>>#testIdentityKeyAtNonExistantValueReturnsFailBlock
>> MBConfigurationInfo>>#buildStringOrText
>> MBPackageInfo>>#versions
>> MCFileTreeRepository class>>#parseName:extension:
>> MCWorkingCopyBrowser>>#addRepositoryToPackage
>> MethodDictionaryTest>>#testGrowPreservesElements

Issue URL: https://pharo.fogbugz.com/f/cases/20772
PR URL: https://github.com/pharo-project/pharo/pull/557
Diff URL: https://github.com/pharo-project/pharo/pull/557/files

Thanks to astares

* 20745-cleanup-unused-methods-OCOptimizedBlockScope
>> cleanup unused methods OCOptimizedBlockScope
>>
>> https://pharo.fogbugz.com/f/cases/20745/cleanup-unused-methods-OCOptimizedBlockScope

Issue URL: https://pharo.fogbugz.com/f/cases/20745
PR URL: https://github.com/pharo-project/pharo/pull/556
Diff URL: https://github.com/pharo-project/pharo/pull/556/files

Thanks to MarcusDenker

* 20700-translateToUTC-does-not-work-on-Month-and-Year
>> 20700 translateToUTC does not work on Month and Year
>>
>> Update Year>>starting:duration: and Month>>starting:duration: to keep the supplied DateAndTime’s offset.
>>
>> Add automated tests to Year, Month and Week to confirm correct operation.

Issue URL: https://pharo.fogbugz.com/f/cases/20700
PR URL: https://github.com/pharo-project/pharo/pull/545
Diff URL: https://github.com/pharo-project/pharo/pull/545/files

Thanks to akgrant43

* 20770-Open-WelcomeHelp-window-at-startup
>> https://pharo.fogbugz.com/f/cases/20770/Open-WelcomeHelp-window-at-startup
>>
>> open WelcomeHelp on startup

Issue URL: https://pharo.fogbugz.com/f/cases/20770
PR URL: https://github.com/pharo-project/pharo/pull/555
Diff URL: https://github.com/pharo-project/pharo/pull/555/files

Thanks to pavel-krivanek

* 20769-DateAndTime-now-returns-summer-time-in-winter-France-time-zone
>> https://pharo.fogbugz.com/f/cases/20769/DateAndTime-now-returns-summer-time-in-winter-France-time-zone
>>
>> add missing startup list registrations

Issue URL: https://pharo.fogbugz.com/f/cases/20769
PR URL: https://github.com/pharo-project/pharo/pull/553
Diff URL: https://github.com/pharo-project/pharo/pull/553/files

Thanks to pavel-krivanek

* 19304-anyOne-comment-should-be-improved
>> https://pharo.fogbugz.com/f/cases/19304/
>>
>> improve #anyOne comment

Issue URL: https://pharo.fogbugz.com/f/cases/19304
PR URL: https://github.com/pharo-project/pharo/pull/552
Diff URL: https://github.com/pharo-project/pharo/pull/552/files

Thanks to pavel-krivanek

* 20768-remove-GLMWatcherMorphicTest
>> https://pharo.fogbugz.com/f/cases/20768/remove-GLMWatcherMorphicTest
>>
>> remove GLMWatcherMorphicTest

Issue URL: https://pharo.fogbugz.com/f/cases/20768
PR URL: https://github.com/pharo-project/pharo/pull/551
Diff URL: https://github.com/pharo-project/pharo/pull/551/files

Thanks to pavel-krivanek

* 20738 dictionarystore string generates incorrect source code when a negative number is in values

Issue URL: https://pharo.fogbugz.com/f/cases/20738 dictionarystore string generates incorrect source code when a negative number is in values
PR URL: https://github.com/pharo-project/pharo/pull/538
Diff URL: https://github.com/pharo-project/pharo/pull/538/files

Thanks to juliendelplanque

* 20767-Decrease-retry-times-for-failing-jobs
>> https://pharo.fogbugz.com/f/cases/20767/Decrease-retry-times-for-failing-jobs

Issue URL: https://pharo.fogbugz.com/f/cases/20767
PR URL: https://github.com/pharo-project/pharo/pull/550
Diff URL: https://github.com/pharo-project/pharo/pull/550/files

Thanks to pavel-krivanek

* 20758-Slot-should-have-explicit-property-definingClass2
>> definingClass is added to Slot.
>> It is initialized in ClassDescription>>superclass:layout:
>> SlotIntegrationTest>>testSlotsAreInitializedWithDefiningAnonimousClass covers that initialization is performed.
>>
>> https://pharo.fogbugz.com/f/cases/20758/Slot-should-have-explicit-property-definingClass

Issue URL: https://pharo.fogbugz.com/f/cases/20758
PR URL: https://github.com/pharo-project/pharo/pull/543
Diff URL: https://github.com/pharo-project/pharo/pull/543/files

Thanks to dionisiydk

* 20747-Date-comparisons-without-time-zone
>> 20747 Date comparisons without time zone
>>
>> Add time zone independent comparisons to Date.

Issue URL: https://pharo.fogbugz.com/f/cases/20747
PR URL: https://github.com/pharo-project/pharo/pull/544
Diff URL: https://github.com/pharo-project/pharo/pull/544/files

Thanks to akgrant43

* 20766-Increase-priority-of-FreeType-initialization
>> https://pharo.fogbugz.com/f/cases/20766/Increase-priority-of-FreeType-initialization
>>
>> increase priority of FreeType initialization

Issue URL: https://pharo.fogbugz.com/f/cases/20766
PR URL: https://github.com/pharo-project/pharo/pull/548
Diff URL: https://github.com/pharo-project/pharo/pull/548/files

Thanks to pavel-krivanek

* 20699-Convenience-method-for-creating-typed-buffers-to-pass-by-ref-through-FFI-
>> https://pharo.fogbugz.com/f/cases/20699/Convenience-method-for-creating-typed-buffers-to-pass-by-ref-through-FFI

Issue URL: https://pharo.fogbugz.com/f/cases/20699
PR URL: https://github.com/pharo-project/pharo/pull/508
Diff URL: https://github.com/pharo-project/pharo/pull/508/files

Thanks to estebanlm

* 20759 Unused temps in Metacello classes
>> Fix unused temps
>>
>> MetacelloMCProjectSpec>>#determineCurrentVersionForLoad
>> MetacelloToolBox class>>#defaultTopic:for:
>> MetacelloToolBox>>#commitBaselineOfMethod
>> MetacelloToolBox>>#commitMethod
>> MetacelloToolBox>>#updateVersionMethodForVersion:projectAttributes:updateProjects:updatePackages:versionSpecsDo:
>> MetacelloToolBoxConstructor>>#extractSymbolicVersionSpecsFor:
>> MetacelloVersionSpec>>#configMethodOn:last:indent:
>> MetacelloMCVersion>>#executeLoadFromArray:
>> MetacelloMCVersionValidator>>#validateProjectVersionLoad:loads:
>> MetacelloMemberListSpec>>#mergeSpec:
>> MetacelloPackageSpec>>#currentPackageLoaded:notLoaded:using:
>> MetacelloPackageSpec>>#mergeSpec:
>> MetacelloProject>>#version:
>> MetacelloScriptEngine>>#lookupProjectSpecFor:
>> MetacelloSemanticVersionNumber class>>#fromString:forPattern:

Issue URL: https://pharo.fogbugz.com/f/cases/20759 Unused temps in Metacello classes
PR URL: https://github.com/pharo-project/pharo/pull/546
Diff URL: https://github.com/pharo-project/pharo/pull/546/files

Thanks to astares

* 20763 ExternalAddress>>finalize should be in finalization protocol
>> Put finalize into finalization category to satisfy ProperMethodCategorizationTest
>>
>> https://pharo.fogbugz.com/f/cases/edit/20763/ExternalAddress-finalize-should-be-in-finalization-protocol

Issue URL: https://pharo.fogbugz.com/f/cases/20763 ExternalAddress>>finalize should be in finalization protocol
PR URL: https://github.com/pharo-project/pharo/pull/547
Diff URL: https://github.com/pharo-project/pharo/pull/547/files

Thanks to astares

* 20061-Explicit-isAbstract-is-needed-instead-of-using-hasAbstractMethods-in-tools2
>> https://pharo.fogbugz.com/f/cases/20061/Explicit-isAbstract-is-needed-instead-of-using-hasAbstractMethods-in-tools
>>
>> Few things are done:
>> – Behavior and friends define isAbstract method with optimized logic.
>> It gives 50 milliseconds for the test:
>> [50 timesRepeat: [ PluggableTextMorph isAbstract]] timeToRun.
>> 50 items is much more then we able to see in browser class list. So it should not affect browser speed.
>> – BehaviorTest>>testIsAbstract
>> – CompiledMethod>>isAbstract is now take into account traits explicit and implicit requirement.
>> – Nautilus uses #isAbstract instead of hasAbstractMethods to mark abstract classes

Issue URL: https://pharo.fogbugz.com/f/cases/20061
PR URL: https://github.com/pharo-project/pharo/pull/541
Diff URL: https://github.com/pharo-project/pharo/pull/541/files

Thanks to dionisiydk

* 20740-Work-Needed-isAbstract-not-working-correctly-on-64bit
>> Fixed markerOrNil to work on both bytecode sets for 64 bits and 32 bits.
>>
>> https://pharo.fogbugz.com/f/cases/20740

Issue URL: https://pharo.fogbugz.com/f/cases/20740
PR URL: https://github.com/pharo-project/pharo/pull/537
Diff URL: https://github.com/pharo-project/pharo/pull/537/files

Thanks to clementbera

* 20176-Error-in-ByteArraybooleanAt
>> Fix ByteArray>>#booleanAt: to actually return true when the byte at the querried position in the ByteArray is a non-zero integer

Issue URL: https://pharo.fogbugz.com/f/cases/20176
PR URL: https://github.com/pharo-project/pharo/pull/539
Diff URL: https://github.com/pharo-project/pharo/pull/539/files

Thanks to dupriezt

* 20756-Secondary-selections-are-dark-after-switch-to-the-white-theme-in-Pharo-7
>> https://pharo.fogbugz.com/f/cases/20756/Secondary-selections-are-dark-after-switch-to-the-white-theme-in-Pharo-7
>>
>> change default secondary selection color

Issue URL: https://pharo.fogbugz.com/f/cases/20756
PR URL: https://github.com/pharo-project/pharo/pull/540
Diff URL: https://github.com/pharo-project/pharo/pull/540/files

Thanks to pavel-krivanek

* 20690-assertequals
>> https://pharo.fogbugz.com/f/cases/20690/assert-equals
>>
>> – swap actual and experted sides in comparig inside assert:equals:
>> – deprecate assert:descriptionBlock:

Issue URL: https://pharo.fogbugz.com/f/cases/20690
PR URL: https://github.com/pharo-project/pharo/pull/533
Diff URL: https://github.com/pharo-project/pharo/pull/533/files

Thanks to pavel-krivanek

* 20729-Monticello-history-browser-should-enable-diffing-with-parent
>> This is issue https://pharo.fogbugz.com/f/cases/20729/Monticello-history-browser-should-enable-diffing-with-parent
>> Such option is really handy when cherry picking changes from other branches
>> Pick the implementation from Squeak (fbs, eem) and adapt to Pharo

Issue URL: https://pharo.fogbugz.com/f/cases/20729
PR URL: https://github.com/pharo-project/pharo/pull/513
Diff URL: https://github.com/pharo-project/pharo/pull/513/files

Thanks to nicolas-cellier-aka-nice

 


by Stéphane Ducasse at December 08, 2017 02:12 PM

December 07, 2017

PharoWeekly

HaltManager: The friend of the debugger

Hello,

I have developed a package to assist developers managing their halts and breakpoints: HaltManager.

HaltManager provides a window showing all the breakpoints and halt messages of the system, and allows one to toggle them on/off with a simple click. Halt messages can also be toggled via source code rewriting. The deactivation/reactivation feature is available in all code browsers, not only in the HaltManager window.

Metacello new
  baseline: 'HaltManager';
  repository: 'github://dupriezt/HaltManager/src';
  load

It is available here, with installation instructions and pictures: https://github.com/dupriezt/HaltManager

Feedback welcome.

Cheers,
Thomas Dupriez

 

33613913-2e9b59de-d9d6-11e7-944a-7de40071eb67.jpg


by Stéphane Ducasse at December 07, 2017 08:02 PM

December 06, 2017

Torsten Bergmann

HaltManager for Pharo

Want to better manage your debugging breakpoints in Pharo?

Then use HaltManager. Source code and docu is on GitHub: https://github.com/dupriezt/HaltManager

by Torsten (noreply@blogger.com) at December 06, 2017 11:37 PM

Pierce Ng

Creating an X.509 certificate request

From within Pharo:

| rsa |
rsa := LcRSA generateKey: 2048.
LcX509Request new
  setSubject: 'www.samadhiweb.com';
  setPublicKey: (LcEvpPublicKey setRSA: rsa);
  sign;
  asString

The output is an X.509 certificate request, suitable for Let's Encrypt:

Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: CN=www.samadhiweb.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:b6:c4:94:dc:83:4c:8f:92:6c:8c:f5:e4:3a:66:
                    b9:6a:90:e8:51:aa:58:da:e4:ea:3a:59:1d:78:96:
                    14:ab:83:23:2f:20:45:13:70:88:8d:b5:93:8c:18:
                    c5:78:70:c9:b3:8e:e3:f4:66:64:9c:9d:78:b9:dc:
                    9b:2b:e1:6d:06:d0:b4:6a:83:94:4e:6e:27:dd:12:
                    7f:79:b2:a1:67:ed:96:bb:29:fd:dd:dd:78:5a:8c:
                    c1:8f:83:8f:f7:c8:b1:52:d2:8b:de:9f:6b:31:9c:
                    1f:b7:99:34:83:c1:e6:9d:d4:10:59:ff:bd:32:9f:
                    0a:8c:e2:3b:06:8c:6c:60:24:e2:89:6c:1f:d4:97:
                    c0:e2:77:44:98:31:d8:3f:41:29:e0:ac:ef:56:fb:
                    7c:a5:55:94:45:51:3d:b6:4e:5b:e7:1b:05:7c:7e:
                    0b:1d:cc:a3:88:30:7a:98:51:c7:64:cf:d6:29:f1:
                    16:86:00:b4:72:10:1a:c7:77:16:9d:94:c3:4e:fc:
                    83:63:e5:d7:09:d6:40:cb:d4:26:7e:3e:c7:e4:64:
                    7f:7e:1c:af:53:68:24:f5:5c:a6:79:76:2f:cf:29:
                    bf:9c:3d:3e:38:00:5e:9d:a6:f3:92:09:9b:eb:e4:
                    b4:24:ca:a3:d9:ed:6e:ed:bd:06:af:40:fe:7b:f3:
                    50:c7
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha256WithRSAEncryption
         4a:21:79:18:51:92:2c:d7:cd:ac:f0:f3:bc:6e:53:f3:de:72:
         11:56:ce:f3:e1:71:61:a5:8a:cb:95:4f:31:36:1e:65:50:09:
         39:71:95:a2:a5:30:c6:fc:36:29:7f:6e:86:1f:2a:52:a9:b8:
         55:39:b2:82:b6:67:84:b3:35:2b:be:57:5f:fd:7e:a5:b1:b9:
         ab:20:65:d7:20:68:97:14:0f:13:30:1d:54:c9:7f:55:0d:58:
         0a:14:2d:5b:80:57:a0:6a:73:31:6d:64:52:43:d1:6d:c2:3b:
         8f:88:25:9a:6e:50:52:1d:f8:66:c0:d7:ed:85:be:ef:8b:63:
         20:c1:48:e4:d2:30:6c:cf:07:27:bb:a7:56:82:8a:7d:c7:fe:
         73:29:f1:4a:f4:18:77:0e:56:48:20:41:08:e5:2e:2c:07:67:
         16:e3:9c:d5:c3:0e:02:17:c4:11:5c:01:19:20:4b:c9:e2:37:
         3b:14:02:90:77:d2:17:1d:62:24:cc:5b:1c:b0:c9:48:71:02:
         c6:ff:d8:5e:57:30:bb:da:c7:73:4d:40:ed:b2:8f:a1:2c:07:
         d6:58:22:94:7f:ff:bc:94:38:23:30:fb:0c:51:53:6c:13:f6:
         dc:92:9e:c8:67:fa:ed:3b:e7:1a:1d:00:6e:5c:f6:c5:27:7c:
         d7:76:5a:78

by Pierce Ng at December 06, 2017 09:35 PM

December 05, 2017

Torsten Bergmann

Pharo at Dev Conf

Christophe Demarey will present agile programming in Pharo at

by Torsten (noreply@blogger.com) at December 05, 2017 08:58 AM

StarfallNight

A little game implemented using Bloc in Pharo 6.1. 3 jewels drop from the top.


You can move it left and right by left arrow key and right arrow key respectively. You can rotate the order of the jewels by the up arrow key. The down arrow key will drop the jewels on-to the floor. If the pile of the jewels stack on the floor have 3 or more of the same kind of jewels in a row, column or diagonal, they will vanish out and the jewels on the vanished one will fall down to the floor (or another jewel), which may cause another vanish of jewels.

This game was implemented to learn how to use Bloc. The source code is available at github https://github.com/tomooda/StarfallNight/

by Torsten (noreply@blogger.com) at December 05, 2017 08:50 AM

Pharo Newsletter

The Pharo newsletter archive is now available on:

http://newsletter.pharo.org

If you like you can help with content or own articles for the newsletter.

by Torsten (noreply@blogger.com) at December 05, 2017 08:48 AM

TypeLWidgets for Pharo

A demo of 2 retro analog meters. The left meter monitors system status. The blue hand shows CPU load, the red for memory space and the short black for GC. The right meter shows activities of the mouse.The blue hand shows x position of the mouse cursor, the red for y position and the short black at the bottom for mouse buttons.

TypeLWidgets for Pharo is an open source library distributed at https://github.com/tomooda/TypeLWidgets under the MIT license.


by Torsten (noreply@blogger.com) at December 05, 2017 08:46 AM

PharoWeekly

http://newletter.pharo.org

Hi,

the newsletter archive is now available on

newsletter.pharo.org

which is more easy to remember.

Thanks Marcus for setting up the redirect!

Bye


by Stéphane Ducasse at December 05, 2017 06:55 AM

December 04, 2017

PharoWeekly

Pharo at Dev Conf

Christophe Demarey will present agile programming in Pharo at http://bordeaux.ncrafts.io/

 


by Stéphane Ducasse at December 04, 2017 05:54 PM

Bloc and GT update

Hi,

Here is an update of the work on Bloc and GT:

Bloc:
– Bezier curves (cubic and quadratic).
https://twitter.com/feenkcom/status/934765444464021504
https://twitter.com/feenkcom/status/934856909001252865

– Dragging is now possible through a BlDragHandler that can be attached to any element.

– Pixel accurate line heads and tails
https://twitter.com/feenkcom/status/936704646290305025

– More flexible scalable element.
https://twitter.com/feenkcom/status/934003681539907585

– Improved scalability of the rendering. For example, on Mac, we are on par with the speed of Firefox.
https://twitter.com/feenkcom/status/931462535861108736

– Sparta is now able to load custom fonts.
https://twitter.com/feenkcom/status/930919637214285824

– Text insertion works now much better. Deletion and Selection still require more work.

– The rope data structure can now be better inspected.
https://twitter.com/feenkcom/status/937298739584172032

– Sparta/Moz2D has a visual loader that also provides more specific details in case of errors.
https://twitter.com/feenkcom/status/936501909581688832

– Moz2D is now installed by default on Linux 64b.

GT:

– The GT Visualizer sub-project now contains two tools:

— GT Mondrian is a graph visualization engine that is both performant and shows how Bloc works well for visualizations. More details in a follow up post.
https://twitter.com/feenkcom/status/937682660704563202

— GT Connector is a new tool for browsing connected examples. More details about it in a follow up post.
https://twitter.com/feenkcom/status/936109463462965248

Enjoy,
The feenk team


www.tudorgirba.com
www.feenk.com


by Stéphane Ducasse at December 04, 2017 05:53 PM

December 03, 2017

PharoWeekly

Network Extras…

 

Hi. I just committed the latest version of Douai’s team package NetworkExtras. It includes support for multicast socket, and splitting/reconstruting data to send over UDP data larger than datagrams/IP packets size (MTU).

Gofer it
    smalltalkhubUser: 'CAR' project: 'ReusableBricks';
    configurationOf: 'ReusableBricks';
    loadBleedingEdge

Comments are welcome.

BTW, I run tests only on Mac.
Noury Bouraqadi

by Stéphane Ducasse at December 03, 2017 08:04 PM

December 02, 2017

PharoWeekly

Pharo newsletter archive

Every month one cool newsletter about our lovely community and system!

Register! Just visiting http://www.pharo.org

The archives are here

https://us11.campaign-archive.com/home/?u=6f667565c2569234585a7be77&id=048680a940

Pharo crew


by Stéphane Ducasse at December 02, 2017 07:22 AM

November 29, 2017

PharoWeekly

A little pref script for Pharo70alpha

StartupPreferencesLoader default executeAtomicItems: {
StartupAction
name: ‘Git Settings’
code: [
FileStream stdout
cr; nextPutAll: ‘Setting the ssh credentials’; cr.
Iceberg enableMetacelloIntegration: true.
IceCredentialsProvider useCustomSsh: true.
IceCredentialsProvider sshCredentials
username: ‘git’;
publicKey: ‘/Users/ducasse/.ssh/id_rsa.pub’;
privateKey: ‘/Users/ducasse/.ssh/id_rsa’.
IceCredentialsProvider
plaintextCredentials: (IcePlaintextCredentials new username: ‘Ducasse’; password: ‘XXXX’ ; yourself ).
IceRepository
shareRepositoriesBetweenImages: true;
sharedRepositoriesLocationString:       ‘/Users/ducasse/Workspace/FirstCircle/ActiveResearch/Pharo/PharoCodeBase/’.
Iceberg showSystemRepositories: true.
IceRepository registry
detect: [ :each | each name = ‘pharo’ ]
ifFound: [ :repo | repo location: ‘/Users/ducasse/Workspace/FirstCircle/ActiveResearch/Pharo/PharoCodeBase/pharo’ asFileReference ].
FileStream stdout cr; nextPutAll: ‘Finished’; cr ].
}.


by Stéphane Ducasse at November 29, 2017 08:55 AM

November 28, 2017

PharoWeekly

Simple VoxelSpace engine

Hi,
I tried to port and optimize the extremely simple VoxelSpace engine into Pharo.

https://github.com/pavel-krivanek/VoxelSpace

How to load
Metacello new
  baseline: ‘VoxelSpace’;
  repository: ‘github://pavel-krivanek/VoxelSpace/src’;
  load.
How to run
Copy maps into the image directory and then evaluate:
VoxelSpaceMorph new openInWindow.
No external library is required. If you have some next ideas how to improve the rendering performance with the same image quality, please let me know.
VoxelSpace.png
Cheers,
— Pavel

by Stéphane Ducasse at November 28, 2017 09:04 PM

November 27, 2017

Torsten Bergmann

VoxelSpace

VoxelSpace - a simple Voxel raster graphics rendering engine written in Pharo:

https://github.com/pavel-krivanek/VoxelSpace

by Torsten (noreply@blogger.com) at November 27, 2017 05:50 PM

November 25, 2017

Germán Arduino

Lanzamos nopic !

En nuestro blog de seguridad anunciamos el lanzamiento de nuestro nuevo producto nopic.




by Germán Arduino (noreply@blogger.com) at November 25, 2017 04:15 PM

PharoWeekly

What about contributing?

Here is the testimony of Astares regularly contributing to Pharo 70.
What is not visible in the list are the many enhancements happening also on Calypso, Bloc,  Grease and many many others.
Nonetheless the core image still needs love from more people. Remember even the smallest change can make a difference and shape the future. Also “a contribution per day keeps bad systems away”.
Even one contribution per week or month.

So jump in – the water is just fine!

Bye
T. (aka astares)


by Stéphane Ducasse at November 25, 2017 07:02 AM

November 23, 2017

Torsten Bergmann

New Video on Quuve - a web application written in Pharo

A new video from http://www.debrispublishing.com about the highlights of Quuve - an application written in Pharo.


by Torsten (noreply@blogger.com) at November 23, 2017 11:29 PM

PharoTech Talk Nov. 21 - DiscordSt - accessing Discord from Pharo

The video from this weeks TechTalk on Pharo (in higher quality). The talk was about Discord access from Pharo. Code is on GitHub:

  https://github.com/JurajKubelka/DiscordSt

by Torsten (noreply@blogger.com) at November 23, 2017 10:48 PM

PharoWeekly

[PHARO 7.0A] NEXT ENHANCEMENTS 2

eport period: 5 November 2017 to 23 November 2017eport period: 5 November 2017 to 23 November 2017
*  20739-Remove-dead-stream-primitives     >> https://pharo.fogbugz.com/f/cases/20739/Remove-dead-stream-primitives
Issue URL: https://pharo.fogbugz.com/f/cases/20739      PR URL: https://github.com/pharo-project/pharo/pull/524      Diff URL: https://github.com/pharo-project/pharo/pull/524/files
Thanks to clementbera
*  20645-Windows-rebuildFieldAccessors-problem     >> Fixing the creation of annonymous classes for FFITypeArray.      >> It was affecting all the platforms.     >>      >> Issue: https://pharo.fogbugz.com/f/cases/20645/Windows-rebuildFieldAccessors-problem
Issue URL: https://pharo.fogbugz.com/f/cases/20645      PR URL: https://github.com/pharo-project/pharo/pull/521      Diff URL: https://github.com/pharo-project/pharo/pull/521/files
Thanks to tesonep
*  20735-ComposablePresenter-classowneron-is-missing-the-initialization-call     >> https://pharo.fogbugz.com/f/cases/20735/ComposablePresenter-class-owner-on-is-missing-the-initialization-call
Issue URL: https://pharo.fogbugz.com/f/cases/20735      PR URL: https://github.com/pharo-project/pharo/pull/517      Diff URL: https://github.com/pharo-project/pharo/pull/517/files
Thanks to pavel-krivanek
*  Fix the sign of FloatNegativeZero     >> Like any other zero, the sign of Float negativeZero should be zero…     >> Introduce signBit to differentiate Float negativeZero from Float zero.     >>      >> This is issue https://pharo.fogbugz.com/f/cases/19629/0-0-sign-answers-1-should-be-zero     >>      >> Note that this PR does not implement isSignMinus which is not strictly necessary.     >> If it’s for ISO 10967 compliance, then there will be other functions missing.     >> Maybe open a new issue for this one?
Issue URL: https://pharo.fogbugz.com/f/cases/Fix the sign of FloatNegativeZero      PR URL: https://github.com/pharo-project/pharo/pull/515      Diff URL: https://github.com/pharo-project/pharo/pull/515/files
Thanks to nicolas-cellier-aka-nice
*  20717-Duplicities-of-themes-in-the-list-2     >> https://pharo.fogbugz.com/f/cases/20717/Duplicities-of-themes-in-the-list     >>      >> alternative version by Torsten
Issue URL: https://pharo.fogbugz.com/f/cases/20717      PR URL: https://github.com/pharo-project/pharo/pull/499      Diff URL: https://github.com/pharo-project/pharo/pull/499/files
Thanks to pavel-krivanek
*  20730 Unused temps in FileReferenceTest, FLHeaderSerializationTest, FLHookedSubstitutionTest, FT2GlyphRenderer, …     >> Fix unused temps in     >>      >> FileReferenceTest>>#testRename     >> FileReferenceTest>>#testDeleteAllChildren     >> FileReferenceTest>>#testHasChildren     >> FileReferenceTest>>#testHasDirectories     >> FileReferenceTest>>#testHasFiles     >> FLHeaderSerializationTest>>#testAdditionalObjects     >> FLHookedSubstitutionTest>>#testAvoidRecursion     >> FT2GlyphRenderer>>#loadSurfaceTransform     >> FT2GlyphRenderer>>#loadUnicode:     >> FileDialogWindowTest>>#testIssue6406     >> FileReferenceTest>>#testDeleteAll
Issue URL: https://pharo.fogbugz.com/f/cases/20730 Unused temps in FileReferenceTest, FLHeaderSerializationTest, FLHookedSubstitutionTest, FT2GlyphRenderer, …      PR URL: https://github.com/pharo-project/pharo/pull/510      Diff URL: https://github.com/pharo-project/pharo/pull/510/files
Thanks to astares
*  20731 Unused temps in HDCoverageReport and HDLintReport     >> fix unused temps     >>      >> HDCoverageReport>>#generatePackage:method:on:     >> HDLintReport>>#generateClass:source:on:     >>      >>      >> https://pharo.fogbugz.com/f/cases/20731/Unused-temps-in-HDCoverageReport-and-HDLintReport
Issue URL: https://pharo.fogbugz.com/f/cases/20731 Unused temps in HDCoverageReport and HDLintReport      PR URL: https://github.com/pharo-project/pharo/pull/511      Diff URL: https://github.com/pharo-project/pharo/pull/511/files
Thanks to astares
*  20732 Unused temps in HistoryNodeTest     >> fix unused temps     >>      >> HistoryNodeTest>>#testTwoConsecutiveCloseGroup     >> HistoryNodeTest>>#testTwoGroups     >>      >> https://pharo.fogbugz.com/f/cases/20732/Unused-temps-in-HistoryNodeTest
Issue URL: https://pharo.fogbugz.com/f/cases/20732 Unused temps in HistoryNodeTest      PR URL: https://github.com/pharo-project/pharo/pull/512      Diff URL: https://github.com/pharo-project/pharo/pull/512/files
Thanks to astares
*  20733-update-bootstrap-emulation     >> https://pharo.fogbugz.com/f/cases/20733/update-bootstrap-emulation
Issue URL: https://pharo.fogbugz.com/f/cases/20733      PR URL: https://github.com/pharo-project/pharo/pull/516      Diff URL: https://github.com/pharo-project/pharo/pull/516/files
Thanks to pavel-krivanek
*  20384-Converted-rules-to-Renraku-architecture-2     >> Let’s try this one, it should work
Issue URL: https://pharo.fogbugz.com/f/cases/20384      PR URL: https://github.com/pharo-project/pharo/pull/445      Diff URL: https://github.com/pharo-project/pharo/pull/445/files
Thanks to Uko
*  20727-WeakAnnouncerTesttestWeakDoubleAnnouncer-should-be-long     >> https://pharo.fogbugz.com/f/cases/20727/WeakAnnouncerTest-testWeakDoubleAnnouncer-should-be-long     >>      >> increse timeouts and decrease amount of explicit GC calls
Issue URL: https://pharo.fogbugz.com/f/cases/20727      PR URL: https://github.com/pharo-project/pharo/pull/509      Diff URL: https://github.com/pharo-project/pharo/pull/509/files
Thanks to pavel-krivanek
*  Avoid costly & useless LargeInteger arithmetics when raisedToFraction will be inexact     >>      >> This example was raised in https://pharo.fogbugz.com/f/cases/20432/vm-crash-when-using-rairedTo-with-fractions     >> (2009/2000) raisedTo: (3958333/100000)     >>      >> The fix is importing the changes from http://source.squeak.org/trunk/Kernel-nice.1111.diff
Issue URL: https://pharo.fogbugz.com/f/cases/Avoid costly & useless LargeInteger arithmetics when raisedToFraction will be inexact      PR URL: https://github.com/pharo-project/pharo/pull/506      Diff URL: https://github.com/pharo-project/pharo/pull/506/files
Thanks to nicolas-cellier-aka-nice
*  20723 Unused temps in AthensDemoMorph, Alien, AthensBalloonEngine, AthensBezier3Scene, AthensCairoPathBuilder     >> Fix unused temps in     >>      >> AthensDemoMorph>>#figure9:     >> Alien class>>#newCString:     >> AthensBalloonEngine>>#drawImage:transform:     >> AthensBezier3Scene>>#renderOn:     >> AthensCairoPathBuilder>>#calcCenter:end:angle:     >> AthensDemoMorph>>#figure10:     >> AthensDemoMorph>>#figure2:     >> AthensDemoMorph>>#figure3:     >> AthensDemoMorph>>#figure6:
Issue URL: https://pharo.fogbugz.com/f/cases/20723 Unused temps in AthensDemoMorph, Alien, AthensBalloonEngine, AthensBezier3Scene, AthensCairoPathBuilder      PR URL: https://github.com/pharo-project/pharo/pull/503      Diff URL: https://github.com/pharo-project/pharo/pull/503/files
Thanks to astares
*  20724 Unused temps in EditorFindReplaceDialogWindow>>#update:     >> fix unused temp
Issue URL: https://pharo.fogbugz.com/f/cases/20724 Unused temps in EditorFindReplaceDialogWindow>>#update:      PR URL: https://github.com/pharo-project/pharo/pull/504      Diff URL: https://github.com/pharo-project/pharo/pull/504/files
Thanks to astares
*  20725 Unused temps in DosTimestampTest, Decompiler, DiskStore, DosTimestampTest, DateTest     >> Fix unused temps in     >>      >> DosTimestampTest>>#testFromDateAndTime     >> Decompiler>>#statementsTo:     >> DiskStore>>#rename:to:     >> DosTimestampTest>>#testAsDateAndTime     >> DateTest>>#testPrintFormat
Issue URL: https://pharo.fogbugz.com/f/cases/20725 Unused temps in DosTimestampTest, Decompiler, DiskStore, DosTimestampTest, DateTest      PR URL: https://github.com/pharo-project/pharo/pull/505      Diff URL: https://github.com/pharo-project/pharo/pull/505/files
Thanks to astares
*  20722 Unused temps in KMShortcutTest, KMDispatcher, KMKeymapTest     >> Fix unused temps in     >>      >> KMShortcutTest>>#testComplexChainMatches     >> KMDispatcher>>#dispatch:     >> KMKeymapTest>>#testExecute     >>      >> https://pharo.fogbugz.com/f/cases/20722/Unused-temps-in-KMShortcutTest-KMDispatcher-KMKeymapTest
Issue URL: https://pharo.fogbugz.com/f/cases/20722 Unused temps in KMShortcutTest, KMDispatcher, KMKeymapTest      PR URL: https://github.com/pharo-project/pharo/pull/502      Diff URL: https://github.com/pharo-project/pharo/pull/502/files
Thanks to astares
*  20720 Unused temps in Object, OCASTCheckerTest and OCASTClosureAnalyzerTest     >> Fix unused temp vars     >>      >> Object>>#split:     >> OCASTCheckerTest>>#testDoubleRemoteAnidatedBlocks     >> OCASTCheckerTest>>#testExamplePrimitiveErrorCode     >> OCASTCheckerTest>>#testExampleSelf     >> OCASTCheckerTest>>#testExampleSuper     >> OCASTCheckerTest>>#testExampleThisContext     >> OCASTCheckerTest>>#testInstanceVar     >> OCASTCheckerTest>>#testNoRemoteBlockArgument     >> OCASTCheckerTest>>#testNoRemoteBlockReturn     >> OCASTCheckerTest>>#testNoRemoteBlockTemp     >> OCASTCheckerTest>>#testNoRemoteMethodTemp     >> OCASTCheckerTest>>#testOptimizedBlocksAndSameNameTemps     >> OCASTCheckerTest>>#testSingleRemoteDifferentBlocksSameArgumentName     >> OCASTCheckerTest>>#testSingleRemoteMethodArgument     >> OCASTClosureAnalyzerTest>>#testDoubleRemoteAnidatedBlocks     >> OCASTClosureAnalyzerTest>>#testExampleBlockArgument     >> OCASTClosureAnalyzerTest>>#testExampleSimpleBlockLocalWhile     >> OCASTClosureAnalyzerTest>>#testExampleSimpleBlockNested     >> OCASTClosureAnalyzerTest>>#testExampleWhileModificationBefore     >> OCASTClosureAnalyzerTest>>#testNestedBlocksRemoteInBlockCase2     >> OCASTClosureAnalyzerTest>>#testNestedBlocksRemoteInBlockCase3     >> OCASTClosureAnalyzerTest>>#testNoRemoteBlockArgument     >> OCASTClosureAnalyzerTest>>#testNoRemoteReadInBlock     >> OCASTClosureAnalyzerTest>>#testNoRemoteReadNestedBlocks     >> OCASTClosureAnalyzerTest>>#testOptimizedBlockReadInBlock     >> OCASTClosureAnalyzerTest>>#testOptimizedBlockWriteInBlock     >> OCASTClosureAnalyzerTest>>#testOptimizedBlockWriteInNestedBlock     >> OCASTClosureAnalyzerTest>>#testOptimizedBlockWriteInNestedBlockCase2     >> OCASTClosureAnalyzerTest>>#testOptimizedBlockWriteInNestedBlockCase3     >> OCASTClosureAnalyzerTest>>#testOptimizedBlockWriteInNestedBlockCase4     >> OCASTClosureAnalyzerTest>>#testOptimizedBlockWrittenAfterClosedOverCase1     >> OCASTClosureAnalyzerTest>>#testOptimizedBlockWrittenAfterClosedOverCase2     >> OCASTClosureAnalyzerTest>>#testSingleRemoteDifferentBlocksSameArgumentName     >> OCASTClosureAnalyzerTest>>#testSingleRemoteMethodArgument     >> OCASTClosureAnalyzerTest>>#testSingleRemoteReadNestedBlocks     >> OCASTClosureAnalyzerTest>>#testWrittenAfterClosedOver
Issue URL: https://pharo.fogbugz.com/f/cases/20720 Unused temps in Object, OCASTCheckerTest and OCASTClosureAnalyzerTest      PR URL: https://github.com/pharo-project/pharo/pull/500      Diff URL: https://github.com/pharo-project/pharo/pull/500/files
Thanks to astares
*  20721 Unused temps in ProtoObject>>#pointersToExcept:     >> Fix unused temps in ProtoObject>>#pointersToExcept:
Issue URL: https://pharo.fogbugz.com/f/cases/20721 Unused temps in ProtoObject>>#pointersToExcept:      PR URL: https://github.com/pharo-project/pharo/pull/501      Diff URL: https://github.com/pharo-project/pharo/pull/501/files
Thanks to astares
*  20715 Unused temps in RBRefactoringChangeTests, RPackageClassesSynchronisationTest, RPackageIncrementalTest, …     >> Remove unused temps in      >>      >> RBRefactoringChangeTests>>#testPerformAddRemoveClassMethod     >> RPackageClassesSynchronisationTest>>#testReorganizeClassByAddingExtensionProtocol     >> RPackageClassesSynchronisationTest>>#testReorganizeClassByAddingNewProtocolDoesNothing     >> RPackageExtensionMethodsSynchronisationTest>>#testAddMethodInExtensionCategoryNotExistingCreateANewPackage     >> RPackageExtensionMethodsSynchronisationTest>>#testAddMethodInExtensionCategoryNotExistingCreateANewPackageAndInstallsMethodInIt     >> RPackageExtensionMethodsSynchronisationTest>>#testModifyMethodByChangingCode     >> RPackageIncrementalTest>>#testAddClassAfterMethods     >> RPackageIncrementalTest>>#testAddClassAfterMethodsAtMetaclassToo     >> RPackageIncrementalTest>>#testMethodAddition     >> RPackageIncrementalTest>>#testPrivateClassRegisterUnregister     >> RPackageIncrementalTest>>#testRemoveClassAfterMethods     >> RPackageIncrementalTest>>#testRemoveClassRemovesExtensions     >> RPackageIncrementalTest>>#testRemoveExtensionMethodRemovesExtensionsFromRPackage     >> RPackageMethodsSynchronisationTest>>#testModifyMethodByMovingFromClassicCategoryToClassicCategoryDoesNothing     >> RPackageMonticelloSynchronisationTest>>#testUnloadMCPackageRemovesRPackage     >> RPackageMonticelloSynchronisationTest>>#testUnregisterMCPackageKeepsRPackage     >> RPackageOrganizer>>#systemClassRemovedActionFrom:     >> RBRefactoringChangeTests>>#testPerformAddRemoveMethod     >> RBRefactoringChangeTests>>#testPerformAddRemoveMethodInteractively     >> RPackageClassesSynchronisationTest>>#testRecategorizeClassRegisterTheClassMethodsInTheNewPackage     >> RPackageClassesSynchronisationTest>>#testRecategorizeClassWithMetaClassMethodsRegisterAllClassMethodsInTheNewPackage     >> RPackageClassesSynchronisationTest>>#testRenameClassUpdateClassDefinedInTheParentPackage     >> RPackageClassesSynchronisationTest>>#testRenameClassUpdateClassDefinedSelectorsInTheParentPackage     >> RPackageClassesSynchronisationTest>>#testRenameClassUpdateClassExtensionSelectorsInTheExtendingPackages     >> RPackageClassesSynchronisationTest>>#testRenameClassUpdateMetaclassDefinedSelectorsInTheParentPackage     >> RPackageClassesSynchronisationTest>>#testRenameClassUpdateMetaclassExtensionSelectorsInTheExtendingPackages     >> RPackageClassesSynchronisationTest>>#testRenameClassUpdateOrganizerClassExtendingPackagesMapping     >> RPackageClassesSynchronisationTest>>#testRenameClassUpdateOrganizerClassPackageMapping
Issue URL: https://pharo.fogbugz.com/f/cases/20715 Unused temps in RBRefactoringChangeTests, RPackageClassesSynchronisationTest, RPackageIncrementalTest, …      PR URL: https://github.com/pharo-project/pharo/pull/495      Diff URL: https://github.com/pharo-project/pharo/pull/495/files
Thanks to astares
*  20716 Unused temps in MetacelloConfigurationResource, MetacelloCoreSymbolicVersionTest, MetacelloPackagesSpecTestCase, MetacelloMCProj     >> Remove unused temps from     >>      >> MetacelloConfigurationResource>>#project     >> MetacelloCoreSymbolicVersionTest>>#testBasicBleedingEdgeVersion     >> MetacelloCoreSymbolicVersionTest>>#testBasicStableVersion     >> MetacelloCoreSymbolicVersionTest>>#testBleedingEdgeMethod     >> MetacelloCoreSymbolicVersionTest>>#testStableVersionMethod     >> MetacelloPackagesSpecTestCase>>#testRemoveGroupB     >> MetacelloPackagesSpecTestCase>>#testRemoveGroupC     >> MetacelloMCProjectSpecTestCase>>#testMCProjectMergeSpec
Issue URL: https://pharo.fogbugz.com/f/cases/20716 Unused temps in MetacelloConfigurationResource, MetacelloCoreSymbolicVersionTest, MetacelloPackagesSpecTestCase, MetacelloMCProj      PR URL: https://github.com/pharo-project/pharo/pull/497      Diff URL: https://github.com/pharo-project/pharo/pull/497/files
Thanks to astares
*  20714-atatput–atatifAbsentPut-should-not-use-Dictionary     >> https://pharo.fogbugz.com/f/cases/20714/at-at-put-at-at-ifAbsentPut-should-not-use-Dictionary     >>      >> use “self species” instead of hardcoded Dictionary
Issue URL: https://pharo.fogbugz.com/f/cases/20714      PR URL: https://github.com/pharo-project/pharo/pull/496      Diff URL: https://github.com/pharo-project/pharo/pull/496/files
Thanks to pavel-krivanek
*  20709-do-not-create-pharo-core-symlink-during-the-image-building     >> https://pharo.fogbugz.com/f/cases/20709/do-not-create-pharo-core-symlink-during-the-image-building
Issue URL: https://pharo.fogbugz.com/f/cases/20709      PR URL: https://github.com/pharo-project/pharo/pull/492      Diff URL: https://github.com/pharo-project/pharo/pull/492/files
Thanks to pavel-krivanek
*  20603-Integration-of-new-bytecode-set-Sista-V1-by-default-green-tests
Issue URL: https://pharo.fogbugz.com/f/cases/20603      PR URL: https://github.com/pharo-project/pharo/pull/484      Diff URL: https://github.com/pharo-project/pharo/pull/484/files
Thanks to clementbera
*  20707 Unused temps in WindowsStore, WaitfreeQueue, VersionnerProjectPanel,      >> Fix unused temp vars in     >> – WindowsStore>>#checkName:fixErrors:     >> – WaitfreeQueue>>#size     >> – VersionnerProjectPanel>>#config:     >> – VersionnerProjectPackagesPanel>>#removeSelectedPackage     >> – VSSetDescriptionCommand>>#executeWithMessage:     >>      >>      >> https://pharo.fogbugz.com/f/cases/20707/Unused-temps-in-WindowsStore-WaitfreeQueue-VersionnerProjectPanel
Issue URL: https://pharo.fogbugz.com/f/cases/20707 Unused temps in WindowsStore, WaitfreeQueue, VersionnerProjectPanel,       PR URL: https://github.com/pharo-project/pharo/pull/490      Diff URL: https://github.com/pharo-project/pharo/pull/490/files
Thanks to astares
*  20711 Unused temps in RubTextEditor, RubParagraph, RubMethodEditingExample, ReflectiveMethod, RxMatcher     >> Remove unused temps in     >>      >> ReflectiveMethod>>#recompileAST     >> RubMethodEditingExample>>#open     >> RubParagraph>>#selectionRectsFrom:to:     >> RubSelectorChooserMorph>>#drawCommonPrefixAreasOn:     >> RubTextEditor>>#addDeleteSelectionUndoRecord     >> RubTextEditor>>#correctFrom:to:with:     >> RubTextEditor>>#exchangeWith:     >> RxMatcher>>#currentState
Issue URL: https://pharo.fogbugz.com/f/cases/20711 Unused temps in RubTextEditor, RubParagraph, RubMethodEditingExample, ReflectiveMethod, RxMatcher      PR URL: https://github.com/pharo-project/pharo/pull/494      Diff URL: https://github.com/pharo-project/pharo/pull/494/files
Thanks to astares
*  20704-remove-garbageCollect-from-PharoClassInstallermigrateClassestousing     >> https://pharo.fogbugz.com/f/cases/20704/remove-garbageCollect-from-PharoClassInstaller-migrateClasses-to-using     >>      >> remove explicit garbage collection
Issue URL: https://pharo.fogbugz.com/f/cases/20704      PR URL: https://github.com/pharo-project/pharo/pull/489      Diff URL: https://github.com/pharo-project/pharo/pull/489/files
Thanks to pavel-krivanek
*  20708 Unused temps in TSequencedConcatenationTest and TextEditor     >> Remove unused temps in     >> TextMorph>>#handleKeystroke:     >> TSequencedConcatenationTest>>#testStreamContents     >> TSequencedConcatenationTest>>#testStreamContentsProtocol     >> TextConverter>>#next:putAll:startingAt:toStream:     >> TextConverter>>#nextPutAll:toStream:     >> TextEditor>>#addDeleteSelectionUndoRecord     >> TextEditor>>#addTypeInUndoRecord     >> TextEditor>>#correctFrom:to:with:     >> TextEditor>>#dispatchCommandOn:return:     >> TextEditor>>#dispatchOn:     >> TextEditor>>#mouseUp:     >> TextEditor>>#replace:with:and:     >> TextEditor>>#unapplyAttribute:
Issue URL: https://pharo.fogbugz.com/f/cases/20708 Unused temps in TSequencedConcatenationTest and TextEditor      PR URL: https://github.com/pharo-project/pharo/pull/491      Diff URL: https://github.com/pharo-project/pharo/pull/491/files
Thanks to astares
*  20710 Unused temps in StringMorph, SimpleGridExample, SmalltalkEditor, SHMethodEditingMode, SelectorChooserMorph     >> Remove unused temps from     >>      >> StringMorph>>#drawOnAthensCanvas:     >> SimpleGridExample>>#treeMorph     >> SmalltalkEditor>>#internalCallToBrowseIt     >> SHMethodEditingMode>>#open     >> SelectorChooserMorph>>#drawCommonPrefixAreasOn:
Issue URL: https://pharo.fogbugz.com/f/cases/20710 Unused temps in StringMorph, SimpleGridExample, SmalltalkEditor, SHMethodEditingMode, SelectorChooserMorph      PR URL: https://github.com/pharo-project/pharo/pull/493      Diff URL: https://github.com/pharo-project/pharo/pull/493/files
Thanks to astares
*  20697-Give-some-love-to-SocketAddress     >> SocketAddress is hardly used in the system.     >> It is possible to use it more and add some functionality to it.     >> Comments and test could be improved as well.     >>      >> https://pharo.fogbugz.com/f/cases/20697/Give-some-love-to-SocketAddress
Issue URL: https://pharo.fogbugz.com/f/cases/20697      PR URL: https://github.com/pharo-project/pharo/pull/486      Diff URL: https://github.com/pharo-project/pharo/pull/486/files
Thanks to svenvc
*  20702-Add-comments-to-hashMultiply     >> https://pharo.fogbugz.com/f/cases/20702/Add-comments-to-hashMultiply     >>      >> use hashMultiply comments provided by Nicolas Celler with some modifications
Issue URL: https://pharo.fogbugz.com/f/cases/20702      PR URL: https://github.com/pharo-project/pharo/pull/487      Diff URL: https://github.com/pharo-project/pharo/pull/487/files
Thanks to pavel-krivanek
*  20703-typo-in-WelcomeHelp     >> https://pharo.fogbugz.com/f/cases/20703/typo-in-WelcomeHelp     >>      >> fix typo
Issue URL: https://pharo.fogbugz.com/f/cases/20703      PR URL: https://github.com/pharo-project/pharo/pull/488      Diff URL: https://github.com/pharo-project/pharo/pull/488/files
Thanks to pavel-krivanek
*  20647-SortFunction-should-be-composable     >> Make SortFunction composable     >>      >> https://pharo.fogbugz.com/f/cases/20647/SortFunction-should-be-composable     >>      >> Note: impossible to use iceberg to do the commit     >> incomprehensible interface / unexpected failures / unclear error messages
Issue URL: https://pharo.fogbugz.com/f/cases/20647      PR URL: https://github.com/pharo-project/pharo/pull/440      Diff URL: https://github.com/pharo-project/pharo/pull/440/files
Thanks to nicolas-cellier-aka-nice
*  19942-Glamour-Morphic-Renderer-Spotter-is-only-dead-code     >> Glamour-Morphic-Renderer-Spotter is only dead code?     >>      >> https://pharo.fogbugz.com/f/cases/19942/Glamour-Morphic-Renderer-Spotter-is-only-dead-code
Issue URL: https://pharo.fogbugz.com/f/cases/19942      PR URL: https://github.com/pharo-project/pharo/pull/480      Diff URL: https://github.com/pharo-project/pharo/pull/480/files
Thanks to MarcusDenker
*  20696-enable-bootstrapping-from-outside-the-repository     >> https://pharo.fogbugz.com/f/cases/20696/enable-bootstrapping-from-outside-the-repository
Issue URL: https://pharo.fogbugz.com/f/cases/20696      PR URL: https://github.com/pharo-project/pharo/pull/485      Diff URL: https://github.com/pharo-project/pharo/pull/485/files
Thanks to pavel-krivanek
*  20689-Make-Pharo-bootstrap-independent-on-source-repository     >> https://pharo.fogbugz.com/f/cases/20689/Make-Pharo-bootstrap-independent-on-source-repository
Issue URL: https://pharo.fogbugz.com/f/cases/20689      PR URL: https://github.com/pharo-project/pharo/pull/479      Diff URL: https://github.com/pharo-project/pharo/pull/479/files
Thanks to pavel-krivanek
*  20693-Incorrect-basename-of-empty-relative-path     >> 20693 Incorrect basename of empty relative path     >>      >> – Modify Path and subclasses to return the current directory for an empty relative path.     >> – Add PathTest>>testBasenameNoParent to confirm correct behaviour.
Issue URL: https://pharo.fogbugz.com/f/cases/20693      PR URL: https://github.com/pharo-project/pharo/pull/481      Diff URL: https://github.com/pharo-project/pharo/pull/481/files
Thanks to akgrant43
*  20678-selecting-of-a-method-version-causes-DNU     >> Adding this message as a way of having polymorphism with the different versions of Message Browser     >>      >> Issue https://pharo.fogbugz.com/f/cases/20678/selecting-of-a-method-version-causes-DNU
Issue URL: https://pharo.fogbugz.com/f/cases/20678      PR URL: https://github.com/pharo-project/pharo/pull/482      Diff URL: https://github.com/pharo-project/pharo/pull/482/files
Thanks to tesonep
*  20686-disabling-of-FreeType-fonts-should-set-bitmap-Source-Pro-fonts     >> https://pharo.fogbugz.com/f/cases/20686/disabling-of-FreeType-fonts-should-set-bitmap-Source-Pro-fonts     >>      >> set bitmap source pro fonts after disabling of FreeType
Issue URL: https://pharo.fogbugz.com/f/cases/20686      PR URL: https://github.com/pharo-project/pharo/pull/476      Diff URL: https://github.com/pharo-project/pharo/pull/476/files
Thanks to pavel-krivanek
*  19291-suspendedEventHandler-property-seems-unused     >> suspendedEventHandler property seems unused     >>      >> https://pharo.fogbugz.com/f/cases/19291/suspendedEventHandler-property-seems-unused
Issue URL: https://pharo.fogbugz.com/f/cases/19291      PR URL: https://github.com/pharo-project/pharo/pull/466      Diff URL: https://github.com/pharo-project/pharo/pull/466/files
Thanks to MarcusDenker
*  20685-Do-not-use-hardcoded-URLs-in-system-baselines     >> https://pharo.fogbugz.com/f/cases/20685/Do-not-use-hardcoded-URLs-in-system-baselines     >>      >> use repository URL of the baseline package for loading of other baselines from the same repository
Issue URL: https://pharo.fogbugz.com/f/cases/20685      PR URL: https://github.com/pharo-project/pharo/pull/475      Diff URL: https://github.com/pharo-project/pharo/pull/475/files
Thanks to pavel-krivanek
*  20166-wrong-cliprect-on-transformed-athens-canvas     >> https://pharo.fogbugz.com/f/cases/20166/wrong-cliprect-on-transformed-athens-canvas     >>      >> fix proposed by Nicolai Hess
Issue URL: https://pharo.fogbugz.com/f/cases/20166      PR URL: https://github.com/pharo-project/pharo/pull/477      Diff URL: https://github.com/pharo-project/pharo/pull/477/files
Thanks to pavel-krivanek
*  20264-Date-gtInspectorDetailsIn-is-incorrectly-using-a-Block-for-the-title-so-selection-is-not-remembered     >> Fix GT Inspector usage: title’s should not be blocks but pure Strings for  them to be remembered as selected in the UI     >>      >> Improve several GT Inspector views in small details (especially Socket)     >>      >> Touched Date, Time, DateAndTime, Duration, Socket, ZnMessage, ZnHeaders and ZnMimePart views.     >>      >> https://pharo.fogbugz.com/f/cases/20264/Date-gtInspectorDetailsIn-is-incorrectly-using-a-Block-for-the-title-so-selection-is-not-remembered
Issue URL: https://pharo.fogbugz.com/f/cases/20264      PR URL: https://github.com/pharo-project/pharo/pull/471      Diff URL: https://github.com/pharo-project/pharo/pull/471/files
Thanks to svenvc
*  20679-Reloading-of-OSWindow-SDL2-causes-Tonel-parsing-error     >> https://pharo.fogbugz.com/f/cases/20679/Reloading-of-OSWindow-SDL2-causes-Tonel-parsing-error     >>      >> fix broken UTF8 character
Issue URL: https://pharo.fogbugz.com/f/cases/20679      PR URL: https://github.com/pharo-project/pharo/pull/473      Diff URL: https://github.com/pharo-project/pharo/pull/473/files
Thanks to pavel-krivanek
*  20676 Categorize uncategorized methods in classes starting with K     >> Categorize uncategorized methods     >>      >> No change in behavior, only categorization     >>      >>      >> https://pharo.fogbugz.com/f/cases/20676/Categorize-uncategorized-methods-in-classes-starting-with-K
Issue URL: https://pharo.fogbugz.com/f/cases/20676 Categorize uncategorized methods in classes starting with K      PR URL: https://github.com/pharo-project/pharo/pull/470      Diff URL: https://github.com/pharo-project/pharo/pull/470/files
Thanks to astares
*  20674 Categorize uncategorized methods in classes starting with J     >> Categorize uncategorized methods in     >>  – JobProgressBarMorph     >>  – JoinSection     >>  – JoinSide
Issue URL: https://pharo.fogbugz.com/f/cases/20674 Categorize uncategorized methods in classes starting with J      PR URL: https://github.com/pharo-project/pharo/pull/468      Diff URL: https://github.com/pharo-project/pharo/pull/468/files
Thanks to astares
*  20677-Improve-system-dependencies-tests     >> https://pharo.fogbugz.com/f/cases/20677/Improve-system-dependencies-testss     >>      >> clean system dependencies testing
Issue URL: https://pharo.fogbugz.com/f/cases/20677      PR URL: https://github.com/pharo-project/pharo/pull/472      Diff URL: https://github.com/pharo-project/pharo/pull/472/files
Thanks to pavel-krivanek
*  20673 Categorize uncategorized methods in classes starting with H     >> Categorize uncategorized methods in     >> – HEFraction     >> – HEScaledDecimal     >>      >> Only categorization, no change in behavior
Issue URL: https://pharo.fogbugz.com/f/cases/20673 Categorize uncategorized methods in classes starting with H      PR URL: https://github.com/pharo-project/pharo/pull/467      Diff URL: https://github.com/pharo-project/pharo/pull/467/files
Thanks to astares
*  20675 Categorize uncategorized methods in classes starting with D     >> Categorize uncategorized method in DatePresenter
Issue URL: https://pharo.fogbugz.com/f/cases/20675 Categorize uncategorized methods in classes starting with D      PR URL: https://github.com/pharo-project/pharo/pull/469      Diff URL: https://github.com/pharo-project/pharo/pull/469/files
Thanks to astares
*  20671-Extend-system-dependencies-tests-on-whole-image     >> https://pharo.fogbugz.com/f/cases/20671/Extend-system-dependencies-tests-on-whole-image     >>      >> dependency testing for whole image
Issue URL: https://pharo.fogbugz.com/f/cases/20671      PR URL: https://github.com/pharo-project/pharo/pull/464      Diff URL: https://github.com/pharo-project/pharo/pull/464/files
Thanks to pavel-krivanek
*  20670-unused-var-in-generateDefaultFileOutResultsName     >> unused var in #generateDefaultFileOutResultsName     >>      >> https://pharo.fogbugz.com/f/cases/20670/unused-var-in-generateDefaultFileOutResultsName
Issue URL: https://pharo.fogbugz.com/f/cases/20670      PR URL: https://github.com/pharo-project/pharo/pull/465      Diff URL: https://github.com/pharo-project/pharo/pull/465/files
Thanks to MarcusDenker
*  20668-add-breakpoints-menu-to-Nautilus-segment-icons     >> https://pharo.fogbugz.com/f/cases/20668     >>      >> fix breakpoints placement for wrapping text
Issue URL: https://pharo.fogbugz.com/f/cases/20668      PR URL: https://github.com/pharo-project/pharo/pull/463      Diff URL: https://github.com/pharo-project/pharo/pull/463/files
Thanks to pavel-krivanek
*  20055-immediateByteSubclass-is-deadcoe     >> immediateByteSubclass: is deadcoe     >>      >> https://pharo.fogbugz.com/f/cases/20055/immediateByteSubclass-is-deadcoe
Issue URL: https://pharo.fogbugz.com/f/cases/20055      PR URL: https://github.com/pharo-project/pharo/pull/462      Diff URL: https://github.com/pharo-project/pharo/pull/462/files
Thanks to MarcusDenker
*  20263-Debugger-DoesNotUnderstandDebugAction-is-missing-a-defaultHelp-method-so-hover-help-shows-missing     >> Debugger DoesNotUnderstandDebugAction is missing a #defaultHelp method so hover help shows missing     >>      >> https://pharo.fogbugz.com/f/cases/20263/
Issue URL: https://pharo.fogbugz.com/f/cases/20263      PR URL: https://github.com/pharo-project/pharo/pull/460      Diff URL: https://github.com/pharo-project/pharo/pull/460/files
Thanks to MarcusDenker
*  17654-SpecPreDebugWindow-and-subclasses-relies-on-doesNotUnderstand-delegation-to-find-the-stackPane     >> SpecPreDebugWindow and subclasses relies on #doesNotUnderstand delegation to find the stackPane     >>      >> https://pharo.fogbugz.com/f/cases/17654
Issue URL: https://pharo.fogbugz.com/f/cases/17654      PR URL: https://github.com/pharo-project/pharo/pull/461      Diff URL: https://github.com/pharo-project/pharo/pull/461/files
Thanks to MarcusDenker
*  20363-ThemeIconsdownloadTo-has-an-argument-which-is-never-referenced-in-code     >> fix for https://pharo.fogbugz.com/f/cases/20363/ThemeIcons-downloadTo-has-an-argument-which-is-never-referenced-in-code
Issue URL: https://pharo.fogbugz.com/f/cases/20363      PR URL: https://github.com/pharo-project/pharo/pull/453      Diff URL: https://github.com/pharo-project/pharo/pull/453/files
Thanks to MarcusDenker
*  20667-Be-able-to-install-breakpoints-by-clicking-on-segment-icons-area     >> https://pharo.fogbugz.com/f/cases/20667/Be-able-to-install-breakpoints-by-clicking-on-segment-iconc-area     >>      >> click on segment icons area adds breakpoint at the beginning of the line
Issue URL: https://pharo.fogbugz.com/f/cases/20667      PR URL: https://github.com/pharo-project/pharo/pull/459      Diff URL: https://github.com/pharo-project/pharo/pull/459/files
Thanks to pavel-krivanek
*  20582-atat-messages-call-errorKeyNotFound     >> Fix for at:at: messages call errorKeyNotFound.     >> – use errorKeyNotFound:     >>      >> https://pharo.fogbugz.com/f/cases/20582/at-at-messages-call-errorKeyNotFound
Issue URL: https://pharo.fogbugz.com/f/cases/20582      PR URL: https://github.com/pharo-project/pharo/pull/454      Diff URL: https://github.com/pharo-project/pharo/pull/454/files
Thanks to MarcusDenker
*  20664-set-the-display-size-sooner     >> https://pharo.fogbugz.com/f/cases/20664/set-the-display-size-sooner
Issue URL: https://pharo.fogbugz.com/f/cases/20664      PR URL: https://github.com/pharo-project/pharo/pull/458      Diff URL: https://github.com/pharo-project/pharo/pull/458/files
Thanks to pavel-krivanek
*  20499-Examples-in-GlamourPresentationModel-should-have-no-gtExamplePragma     >> 20499     >> Examples in GlamourPresentationModel should have no <gtExamplePragma>     >>      >> https://pharo.fogbugz.com/f/cases/20499
Issue URL: https://pharo.fogbugz.com/f/cases/20499      PR URL: https://github.com/pharo-project/pharo/pull/455      Diff URL: https://github.com/pharo-project/pharo/pull/455/files
Thanks to MarcusDenker
*  20662-displaying-method-versions-in-Nautilus-causes-DNU     >> https://pharo.fogbugz.com/f/cases/20662/displaying-method-versions-in-Nautilus-causes-DNU     >>      >> add clearUndoManager to DiffPresenter
Issue URL: https://pharo.fogbugz.com/f/cases/20662      PR URL: https://github.com/pharo-project/pharo/pull/457      Diff URL: https://github.com/pharo-project/pharo/pull/457/files
Thanks to pavel-krivanek
*  20661-Fixing-test-from-debugger-should-mark-test-as-green-when-proceed-     >> Now runCaseForDebug: removes passed test case from errors and failures.     >> This logic is not inside addPass: method directly to not affect bug suite result collecting because it can become slow if it will clean errors and failures for every green test.     >> Maybe in future we can improve this part.     >>      >> https://pharo.fogbugz.com/f/cases/20661/Fixing-test-from-debugger-should-mark-test-as-green-when-proceed
Issue URL: https://pharo.fogbugz.com/f/cases/20661      PR URL: https://github.com/pharo-project/pharo/pull/456      Diff URL: https://github.com/pharo-project/pharo/pull/456/files
Thanks to dionisiydk
*  20611-leftover-logCr-debug-logging-in-GLEmptyBrickarea     >> remove left over debug code     >> https://pharo.fogbugz.com/f/cases/20611/leftover-logCr-debug-logging-in-GLEmptyBrick-area
Issue URL: https://pharo.fogbugz.com/f/cases/20611      PR URL: https://github.com/pharo-project/pharo/pull/452      Diff URL: https://github.com/pharo-project/pharo/pull/452/files
Thanks to MarcusDenker
*  20552-Breakpoints-stay-in-the-breakpoints-browser-even-after-their-method-is-recompiled     >> Issue URL: https://pharo.fogbugz.com/f/cases/20552/Breakpoints-stay-in-the-breakpoints-browser-even-after-their-method-is-recompiled     >> Breakpoint class now subscribes to the MethodChanged announcement, and remove from its list the breakpoints from methods that get recompiled.     >> Also added a test for this behaviour.
Issue URL: https://pharo.fogbugz.com/f/cases/20552      PR URL: https://github.com/pharo-project/pharo/pull/447      Diff URL: https://github.com/pharo-project/pharo/pull/447/files
Thanks to dupriezt
*  20657-Command-B-in-playground-does-not-work-the-save-way-as-printit     >> https://pharo.fogbugz.com/f/cases/20657     >>      >> try to select line if no AST node found
Issue URL: https://pharo.fogbugz.com/f/cases/20657      PR URL: https://github.com/pharo-project/pharo/pull/450      Diff URL: https://github.com/pharo-project/pharo/pull/450/files
Thanks to pavel-krivanek
*  19972-Implementers-code-pane-undo-goes-too-far     >> Clearing the undo history when changing the selected method in the list.     >> Also adding a way of clearing this history from the TextPresenter
Issue URL: https://pharo.fogbugz.com/f/cases/19972      PR URL: https://github.com/pharo-project/pharo/pull/451      Diff URL: https://github.com/pharo-project/pharo/pull/451/files
Thanks to tesonep
*  20656-Nautilus-comment-panel-got-broken-by-asLayoutFrame-cleans     >> https://pharo.fogbugz.com/f/cases/20656     >>      >> fix  layout frame fraction
Issue URL: https://pharo.fogbugz.com/f/cases/20656      PR URL: https://github.com/pharo-project/pharo/pull/449      Diff URL: https://github.com/pharo-project/pharo/pull/449/files
Thanks to pavel-krivanek
*  20650-Release-cleanup-failures     >> https://pharo.fogbugz.com/f/cases/20650/Release-cleanup-failures
Issue URL: https://pharo.fogbugz.com/f/cases/20650      PR URL: https://github.com/pharo-project/pharo/pull/448      Diff URL: https://github.com/pharo-project/pharo/pull/448/files
Thanks to pavel-krivanek
*  20648-Provide-Bitmap-variant-of-Source-Code-fonts     >> https://pharo.fogbugz.com/f/cases/20648/Provide-Bitmap-variant-of-Source-Code-fonts     >>      >> based on PR https://github.com/pharo-project/pharo/pull/439
Issue URL: https://pharo.fogbugz.com/f/cases/20648      PR URL: https://github.com/pharo-project/pharo/pull/441      Diff URL: https://github.com/pharo-project/pharo/pull/441/files
Thanks to pavel-krivanek
*  20644-Load-Bitmap-DejaVu-fonts-from-data-files-instead-of-a-Fuel-file     >> https://pharo.fogbugz.com/f/cases/20644/Load-Bitmap-DejaVu-fonts-from-data-files-instead-of-a-Fuel-file
Issue URL: https://pharo.fogbugz.com/f/cases/20644      PR URL: https://github.com/pharo-project/pharo/pull/439      Diff URL: https://github.com/pharo-project/pharo/pull/439/files
Thanks to pavel-krivanek
*  20643 Dark and light theme should not be version specific     >> Rename Pharo3DarkTheme into PharoDarkTheme     >> Rename Pharo3Theme into PharoLightTheme     >> and deprecate empty subclasses like Pharo3DarkTheme     >> and Pharo3Theme (but keep them for compatibility)
Issue URL: https://pharo.fogbugz.com/f/cases/20643 Dark and light theme should not be version specific      PR URL: https://github.com/pharo-project/pharo/pull/438      Diff URL: https://github.com/pharo-project/pharo/pull/438/files
Thanks to astares
*  Care on dirty package OpalTools     >> https://pharo.fogbugz.com/f/cases/20642/Care-on-dirty-package-OpalTools     >>      >> fix dirty package extension to be in OpalCompiler-Tools
Issue URL: https://pharo.fogbugz.com/f/cases/Care on dirty package OpalTools      PR URL: https://github.com/pharo-project/pharo/pull/437      Diff URL: https://github.com/pharo-project/pharo/pull/437/files
Thanks to astares
*  20520 Package “OpalTools” should be “OpalCompiler-Tools”     >>  Rename package OpalTools -> OpalCompiler-Tools     >>      >> https://pharo.fogbugz.com/f/cases/20520/Package-OpalTools-should-be-OpalCompiler-Tools
Issue URL: https://pharo.fogbugz.com/f/cases/20520 Package “OpalTools” should be “OpalCompiler      PR URL: https://github.com/pharo-project/pharo/pull/436      Diff URL: https://github.com/pharo-project/pharo/pull/436/files
Thanks to astares
*  Stupid use of asLayoutFrame should be eliminated first pass.     >> Fuck my image just crashed again! ;(((((((((((((((((((((((
Issue URL: https://pharo.fogbugz.com/f/cases/Stupid use of asLayoutFrame should be eliminated first pass.      PR URL: https://github.com/pharo-project/pharo/pull/434      Diff URL: https://github.com/pharo-project/pharo/pull/434/files
Thanks to Ducasse
*  20640 Categorize uncategorized methods in classes starting with “P”     >> Categorize methods.     >>      >>      >> So only categorization – no change in behavior
Issue URL: https://pharo.fogbugz.com/f/cases/20640 Categorize uncategorized methods in classes starting with “P”      PR URL: https://github.com/pharo-project/pharo/pull/433      Diff URL: https://github.com/pharo-project/pharo/pull/433/files
Thanks to astares


by Stéphane Ducasse at November 23, 2017 10:13 AM

November 22, 2017

PharoWeekly

Deploying app: a first journey

Hi,

In in the past days, in the context of the Smalltalks 2017 conference, I talked about my attempt to deploy on   production using the minimal image of Pharo .

My goal was prepare an inmutable or staless minimal image for deploy, without sources nor changes files.

The results are exposed in this  tutorial.

The size of the image is 16 MB and it has loaded Seaside.

Just I have a pendeing issue: the staless image but everything else is done and working.

Gabriel Sor

by Stéphane Ducasse at November 22, 2017 08:34 PM

Advent of Code with Pharo?

You want to play with the advent of code … 2017 (here is http://adventofcode.com/2016)

https://github.com/juliendelplanque/AdventOfCode2017WithPharo

Stef


by Stéphane Ducasse at November 22, 2017 08:10 PM