Planet Smalltalk

November 18, 2017

Benoit St-Jean - Small is beautiful

Vous trouvez qu’il est temps de mettre votre image au régime et de réduire sa taille avant de déployer votre application?

Tout est maintenant prêt et documenté pour réduire la taille de votre image Pharo à partir de la Pharo-minimal image!  Toutes les instructions sont dans ce document merveilleusement écrit!


Classé dans:Pharo, Smalltalk Tagged: déploiement, image, minimal, minimale, Pharo, Smalltalk, stripping

November 17, 2017

Bert Freudenberg - Emulating Smalltalk-76

If you got as excited as me about Dan Ingalls' live Smalltalk-76 demo on an actual 1970's Xerox Alto, you may have wanted to try it yourself. This is actually possible, and here is how:

First, you need an emulator for the Alto computer. Ken Shiriff posted a nice piece on how to run ContrAlto on Windows. It is written in C# and I got it to work on my Mac using Mono. So here's a step-by-step:

  1. Install Mono from http://www.mono-project.com/download/
  2. Download ContrAlto-mono.zip from https://github.com/livingcomputermuseum/ContrAlto/releases
  3. Download this Smalltalk-76 disk image: http://www.bitsavers.org/bits/Xerox/Alto/disk_images/chm/xmsmall.zip
  4. Unzip both ContrAlto-mono.zip and xmsmall.zip in the same folder.
  5. In a terminal, change to the ContrAlto directory and run mono Contralto.exe. This opens the Alto screen in a new window, and the emulator control in the terminal. 
  6. (if you get an error about a missing SDL library at this point, install that via homebrew)
  7. At the emulator's ">" prompt, type load disk 0 xmsmall.dsk and then start:
    $ mono Contralto.exe
    ContrAlto v1.2.2.0 (c) 2015-2017 Living Computers: Museum+Labs.
    Bug reports to joshd@livingcomputers.org

    You are at the ContrAlto console.  Type 'show commands' to see
    a list of possible commands, and hit Tab to see possible command completions.
    >load disk 0 xmsmall.dsk
    Drive 0 loaded.
    >start                  
    Alto started.

    >
  8. In the Alto screen window, type resume xmsmall.boot to start up Smalltalk-76:
      
  9. And now you should see Smalltalk-76 running!
  10. There is no explicit "save" option. The OOZE object swapping system continuously writes objects to the disk. Use "quit" from the main menu to flush all objects back to disk.
Note that you will need a 3 button mouse to properly interact with the system. On my MacBook, I installed MagicPrefs to emulate a third mouse button. After installing, in MagicPref's "MacBook Trackpad" section, for "Three Finger Click" choose "Middle Click".

You will also need some keyboard shortcuts to access the special characters in Smalltalk-76:
ctrl A             ≤ (less or equal)
ctrl B             bold
ctrl C             user interrupt
ctrl F             ≡ (identical)
ctrl G             ◦ (index operator)
ctrl I             italic
ctrl N             ≠ (not equal)
ctrl O             ↪ (quote)
ctrl Q             ⇑ (return)
ctrl R             ≥ (greater or equal)
ctrl S             's (eval operator)
ctrl T             ┗  (prompt)
ctrl U             ¬ (unary minus)
ctrl X             clear emphasis
ctrl /             ⇒ (if then)
ctrl =             ≡ (identical)
ctrl shift =       ≠ (not equal)
ctrl \             ≠ (not equal)
ctrl ]             ⌾ (create point)
ctrl [             ◦ (index operator)
ctrl :             ⦂ (open colon)
ctrl '             ↪ (literal quote)
ctrl <             ≤ (less or equal)
ctrl >             ≥ (greater or equal)
shift -            ¬ (unary minus)
cursor down        doit (in dialog view)
To learn Smalltalk-76, the User Manual is a good starting point:
http://xeroxalto.computerhistory.org/Filene/Smalltalk-76/.document.press!1.pdf

Have fun!

November 16, 2017

Pharo Weekly - Willow web

Hi,

We’re happy to announce the general availability of Willow and it’s related projects in the Web Stack ecosystem hosted at https://github.com/ba-st/.
Willow is a Web Interaction Library that eases the burden of creating AJAX-based web applications. The project goals are:

  • Provide a Smalltalk protocol for the interactive behavior of web components
  • Reify the pieces of a web application to improve reuse
  • Offer a simple and polymorphic protocol for different front-end frameworks.

It’s MIT licensed and built on top of the Seaside Web Framework providing a set of composable components and easier AJAX interaction. It’s intented to work alongside the RenoirSt DSL to define the CSS of your application.

This is a multi-release announcement of the following related projects:

  • Willow v4.0.0 : Core features, components and commands
  • Willow-Bootstrap v4.0.0 : Bootstrap 3 integration, components and plugins
  • Willow-JQueryUI v4.0.0 : JQuery UI integration and components.
  • Willow-SpinKit v1.0.2 : Spinner components
  • Willow-Playground v1.0.0 : An interactive presentation introducing the project and two example applications: Web Based Test Runner and Live Docs.
  • RenoirSt v3.3.0 : CSS DSL. [ Latest Changes: Updated Seaside dependencies (for the Seaside extensions groups) and added Pharo 7 to the build matrix. ]

SemanticUI integration is still a work in progress.

We’ve started working on a more complete tutorial and a Pharo booklet.

Anyone interested in joining our ba-st projects is welcome

Regards,

Gabriel Cotelli, Maxi Tabacman and all the contributors.Regards,

Gabriel Cotelli, Maxi Tabacman and all the contributors.


Pharo Weekly - Bloc Beta 01

Feenk announced Bloc beta 01
We are happy to announce #bloc beta01 for @pharoproject:
https://github.com/pharo-graphics/Bloc

Bloc will radically change the perception of Pharo. 🙂


November 15, 2017

Cincom Smalltalk - Do you have “use it or lose it” budget remaining for 2017?

Don’t Lose Out on Budget Planning  Next Year.  Use What You Have  Before It’s Too Late! In “Five Tips for ‘Use It or Lose It’ Budgets”, Eric Thomas of CIO Insight discusses some ways that […]

The post Do you have “use it or lose it” budget remaining for 2017? appeared first on Cincom Smalltalk.

November 12, 2017

Pharo Weekly - Pharo-Chrome as a scraping solution

Most of the web pages I want to scrape use javascript to construct the
DOM, which makes Soup. XMLHTMLParser, etc. useless.

I’ve extended Torsten’s Pharo-Chrome library and use that to navigate
the DOM in a way similar to Soup:

https://github.com/akgrant43/Pharo-Chrome

This gets around the issue with javascript since it waits for the
browser to load the page, run the javascript and construct the DOM.

HTH,
Alistair


November 11, 2017

Pharo Weekly - Easy I18N for Pharo

Need an easy translation framework for your Pharo application
with no external dependency?

Then check out the I18N project:

  http://smalltalkhub.com/#!/~TorstenBergmann/I18N

Docu and examples can be found on the same page, screenshot
is attached.

Bye
T.

Pharo Weekly - Bloc’s feenk log

Hi,

Over the past couple of weeks Alex worked on stabilizing a first beta01 version for Pharo 6.1:
https://twitter.com/feenkcom/status/929031849879461889

This is available as a beta01 tag in the pharo61 branch here:
https://github.com/pharo-graphics/Bloc/tree/beta01

The main readme was updated with instructions and links:
https://github.com/pharo-graphics/Bloc

An overview of the improvements:
– improved animations support that also works for scaling
https://twitter.com/feenkcom/status/927617393194610693
– improved debugging support for transformations
https://twitter.com/feenkcom/status/926040946130612224
– support for programatic testing of bloc mouse events:
https://twitter.com/feenkcom/status/925672206763511808
– updated MemoryGame tutorial:
http://files.pharo.org/books-pdfs/booklet-Bloc/2017-11-09-memorygame.pdf
https://github.com/pharo-graphics/Tutorials
– extended examples that offer a 52% coverage
– new Bloc world menu for easily accessing Bloc examples and reseting the Universe

Cheers,
The feenk team


November 10, 2017

Pharo Weekly - Another example of invoking a REST/JSON web service – resolving User-Agent strings

In one of our web applications, when a user logs in, we give some meta/context information, like this:

You are user /users/4 in entity context /entities/0 for T3 using timezone Europe/Brussels [offset -1]
Last login Fri Nov 10 2017 15:15:46 from 80.89.7.35 using Safari 11 on Mac OS X 10
Your login count is 10,375

The last login info functions as a soft security measure. In it, the part after using, ‘Safari 11 on Mac OS X 10’, is computed from the (previous) User-Agent string of the web browser when the user last logged in. But these strings are quite complex. There exist web services that parse these complex user agent strings and extract all possible information out of them, including the high level description used above.

The previous solution stopped working and I configured a new one today [https://www.whatismybrowser.com], the core implementation of which I would like to share as yet another example.

(ZnClient new
systemPolicy;
url: ‘https://api.whatismybrowser.com/api/v2/user_agent_parse&#8217;;
accept: ZnMimeType applicationJson;
headerAt: ‘x-api-key’ put: ‘8cf7cee797f3c68d59055eac96778000’;
contentReader: [ :entity | entity ifNotNil: [ NeoJSONObject fromString: entity contents ] ];
contentWriter: [ :object | ZnEntity json: object asString ];
contents: ({ ‘user_agent’ -> ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/604.3.5 (KHTML, like Gecko) Version/11.0.1 Safari/604.3.5’ } as: NeoJSONObject);
post) parse at: ‘simple_software_string’.

unnamed.png

 

You have to create an account and insert your own API key. NeoJSON must be loaded.
Using #systemPolicy and #accept: makes this call throw an exception unless valid JSON is returned in a 2XX response. NeoJSONObject is a convenient way to use the NeoJSON infrastructure. The #parse message accesses the property by the same name (via a DNU), as does the #at: message (for keys that cannot be written as message sends).

 


November 09, 2017

Torsten Bergmann - YandexTranslator for Pharo

An implementation for the Yandex rest translation service for Smalltalk. Code is here: https://github.com/matias-pierobon/YandexTranslator

Torsten Bergmann - Lazaro - Screen reading for Pharo

A set of adapters for most of the famous and popular screen readers. This package allows you to use a screen reader with Pharo. Code is here: https://github.com/matiasmelendi/Lazaro

November 08, 2017

Torsten Bergmann - Winter - Develop games in Pharo

Project "Winter" from Alvaro Piorno is the new and updated version of "Storm" from Esteban Lorenzano. It is a 2D game development framework using FFI with Chipmunk2D Physics Engine. Code is on GitHub: https://github.com/apiorno/Winter

November 07, 2017

Cincom Smalltalk - Cincom® ObjectStudio® 8.9 and  Cincom® VisualWorks® 8.3 Are Here!

The wait is over! The Personal Use License versions are now available. It is our pleasure to bring you the current version of Cincom Smalltalk™. This release includes the releases of […]

The post Cincom® ObjectStudio® 8.9 and  Cincom® VisualWorks® 8.3 Are Here! appeared first on Cincom Smalltalk.

November 05, 2017

Pharo Weekly - [Pharo 7.0a] next enhancements

Report period: 23 October 2017 to 5 November 2017

* 20632-Rename-PluggableSortFunction-to-CollatorBlockFunction
>> PluggableSortFunction is renamed to CollatorBlockFunction

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

Thanks to dionisiydk

* 20634 missing super messages in set up and tear down in kernel tests unit tests
>> Add missing super messages in #setUp and #tearDown in Kernel-Tests
>>
>> https://pharo.fogbugz.com/f/cases/20634/Missing-super-messages-in-setUp-and-tearDown-in-Kernel-Tests-unit-tests

Issue URL: https://pharo.fogbugz.com/f/cases/20634 missing super messages in set up and tear down in kernel tests unit tests
PR URL: https://github.com/pharo-project/pharo/pull/432
Diff URL: https://github.com/pharo-project/pharo/pull/432/files

Thanks to astares

* 20623-Tests-in-the-CI-should-say-the-Architecture-and-the-OS
>> Adding the node name if running in JENKINS.
>>
>> It fixes
>>
>> https://pharo.fogbugz.com/f/cases/20623/Tests-in-the-CI-should-say-the-Architecture-and-the-OS

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

Thanks to tesonep

* 20633-Update-Tonel-version
>> Upgrading Tonel version to 1.0.3.
>>
>> Fixes issue https://pharo.fogbugz.com/f/cases/20633/Update-Tonel-version

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

Thanks to tesonep

* 20629-wrong-FuelPlatform-Pharo-Core-package-loading
>> https://pharo.fogbugz.com/f/cases/20629/wrong-FuelPlatform-Pharo-Core-package-loading

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

Thanks to pavel-krivanek

* 20630-The-package-Files-Prompt-is-not-loaded
>> https://pharo.fogbugz.com/f/cases/20630/The-package-Files-Prompt-is-not-loaded

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

Thanks to pavel-krivanek

* 20628-Categories-definition-in-exported-Tonel-must-be-symbols-not-strings
>> https://pharo.fogbugz.com/f/cases/20628/Categories-definition-in-exported-Tonel-must-be-symbols-not-strings
>>
>> – Converts category names from strings to symbols
>> – Remove unused packages
>>
>> “`
>> delete mode 100644 src/BaselineOfHermes/BaselineOfHermes.class.st
>> delete mode 100644 src/BaselineOfHermes/package.st
>> delete mode 100644 src/Files-Prompt/DummyUIManager.extension.st
>> delete mode 100644 src/Files-Prompt/FileAlreadyExistsException.extension.st
>> delete mode 100644 src/Files-Prompt/FileDoesNotExistException.extension.st
>> delete mode 100644 src/Files-Prompt/MorphicUIManager.extension.st
>> delete mode 100644 src/Files-Prompt/NonInteractiveUIManager.extension.st
>> delete mode 100644 src/Files-Prompt/UIManager.extension.st
>> delete mode 100644 src/Files-Prompt/package.st
>> delete mode 100644 src/FuelPlatform-Pharo-Core/FLPharoPlatform.class.st
>> delete mode 100644 src/FuelPlatform-Pharo-Core/package.st
>> delete mode 100644 src/Hermes-Ring/FiBitsLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiCompiledMethodLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiEphemeronLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiFixedLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiImmediateLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiPointerLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiVariableLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiWeakVariableLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/HERingBinder.class.st
>> delete mode 100644 src/Hermes-Ring/HERingToHermesBuilder.class.st
>> delete mode 100644 src/Hermes-Ring/RFiClass.extension.st
>> delete mode 100644 src/Hermes-Ring/RFiEnvironment.extension.st
>> delete mode 100644 src/Hermes-Ring/RFiMethod.extension.st
>> delete mode 100644 src/Hermes-Ring/RFiTrait.extension.st
>> delete mode 100644 src/Hermes-Ring/package.st
>> delete mode 100644 src/Hermes-Tests-External-Package/AClassToBeExtracted.class.st
>> delete mode 100644 src/Hermes-Tests-External-Package/AClassToBeExtractedFactory.class.st
>> delete mode 100644 src/Hermes-Tests-External-Package/HETeSimpleClassWithComplexTraits.extension.st
>> delete mode 100644 src/Hermes-Tests-External-Package/TSimpleTraitToBeExtracted.trait.st
>> delete mode 100644 src/Hermes-Tests-External-Package/package.st
>> delete mode 100644 src/Hermes-Tests/HEAbstractBinaryClassBuilderTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEExportedLiteralTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEExportingClassTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEExportingMethodTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEExportingPackageFromRingTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEExportingPackageTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEExportingTraitTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEInstallWholePackageTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEInstallerTest.class.st
>> delete mode 100644 src/Hermes-Tests/HETeSimpleClass.class.st
>> delete mode 100644 src/Hermes-Tests/HETeSimpleClassWithComplexTraits.class.st
>> delete mode 100644 src/Hermes-Tests/HETeSimpleClassWithTraits.class.st
>> delete mode 100644 src/Hermes-Tests/THEATraitUsingOthers.trait.st
>> delete mode 100644 src/Hermes-Tests/THEOneTestTrait.trait.st
>> delete mode 100644 src/Hermes-Tests/THEOtherTestTrait.trait.st
>> delete mode 100644 src/Hermes-Tests/package.st
>> delete mode 100644 src/Network-Url/package.st
>> delete mode 100644 src/Ring-Navigation/RGMethodDefinition.extension.st
>> delete mode 100644 src/Ring-Navigation/package.st
>> “`

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

Thanks to pavel-krivanek

* 20626-Fixing-Tests-in-CI
>> Fixing some tests related with the refactoring in FileStream.
>>
>> Fixes issue
>>
>> https://pharo.fogbugz.com/f/cases/20626/Fixing-Tests-in-CI

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

Thanks to tesonep

* 20616-Convert-file-format-to-tonel
>> sources converted.
>>
>> closes case 20616

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

Thanks to estebanlm

* 20574-FFITypeArray–annonymousClassCreator-doesnt-handle-pointer-types-correctly
>> fix case #20574

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

Thanks to estebanlm

* 20589-update-iceberg-to-062
>> closes case #20589

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

Thanks to estebanlm

* 17299 sleep longer than a second in the delay scheduler

Issue URL: https://pharo.fogbugz.com/f/cases/17299 sleep longer than a second in the delay scheduler
PR URL: https://github.com/pharo-project/pharo/pull/197
Diff URL: https://github.com/pharo-project/pharo/pull/197/files

Thanks to zecke

* 20599 make kernel independent of deprecated file stream
>> This PR introduces the following changes:
>> – Extracted file creation for st and cs files into CodeExporter class
>> – removed usages of StandardFileStream and MultiByteFileStream
>> – Modularised StandardFileStream>>defaultAction to be in a separate package (depends on UI)

Issue URL: https://pharo.fogbugz.com/f/cases/20599 make kernel independent of deprecated file stream
PR URL: https://github.com/pharo-project/pharo/pull/415
Diff URL: https://github.com/pharo-project/pharo/pull/415/files

Thanks to guillep

* 20155-Browse-implementers-of-in-Nautilus-doesnt-parse-source-code-properly-for-methods-in-a-block
>> Fixes 20155 using a modificaton of teh code in the Bug report. The second commit removes what appears to be dead code; if this one casues trouble, it oculd be dropped. (Since the removed methods send unimplemented messages, they are unlikely to help!)

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

Thanks to apblack

* 20609-defaultBackgroundColor-should-be-removed-from-Object
>> move defaultBackgroundColor from Object to Morph

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

Thanks to dionisiydk

* 20577-Cleanup-Object-inspection-protocol
>> replace #explore users with #inspect.
>> move inspectorClass and Object>>inspector into Spec-Inspector
>> Object>>explore is deprecated

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

Thanks to dionisiydk

* 18391-Debugger must guard against actions on process termination
>> added guards so the debugger doesn’t send stepping messages to nil contexts. (This was the cause of the freezing because it would loop until the context was dead).
>>
>> Now the debugger closes when we are stepping out of a ‘terminal’ context instead of showing a ‘nil doesNotUnderstand: isDead’ exception. (It notifiies the user through an inform that the debugging session is finished)

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

Thanks to Marmat21

* 20576-add-simplified-DADependenciesHTMLPublisher
>> https://pharo.fogbugz.com/f/cases/20576/add-simplified-DADependenciesHTMLPublisher
>>
>> add DADependenciesHTMLPublisher from Tool-DependencyAnalyser-HTMLReport-ChristopheDemarey.1.mcz

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

Thanks to pavel-krivanek

* 20547-missing-assertidenticalTo-and-denyidenticalTo-object-identity-equality
>> https://pharo.fogbugz.com/f/cases/20547/missing-assert-identicalTo-and-deny-identicalTo-object-identity-equality
>>
>> add assert:identicalTo: and deny:identicalTo:

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

Thanks to pavel-krivanek

* 20604-Metacello-Platform-is-dependent-on-Metacello-Bitbucket
>> https://pharo.fogbugz.com/f/cases/20604/Metacello-Platform-is-dependent-on-Metacello-Bitbucket

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

Thanks to pavel-krivanek

* 20615-add-packages-for-MetacelloCommandLineHander-into-baselines
>> https://pharo.fogbugz.com/f/cases/20615/add-packages-for-MetacelloCommandLineHander-into-baselines

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

Thanks to pavel-krivanek

* 20581-Manually-resolved-dependencies-in-manifests-need-update
>> https://pharo.fogbugz.com/f/cases/20581/Manually-resolved-dependencies-in-manifests-need-update
>>
>> update manually resolved dependencies

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

Thanks to pavel-krivanek

* 12160-Should-we-move-asUrl-to-Zinc-package
>> https://pharo.fogbugz.com/f/cases/12160/Should-we-move-asUrl-to-Zinc-package

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

Thanks to pavel-krivanek

* 20584-SortFunction-should-not-use-block-in-collator
>> SortFunction is now abstract. It is refactored and splitted on two extra subclasses:
>> SortByPropertyFunction to collate objects using property defined by selector or one arg block.
>> PluggableSortFunction represents collator using two args block.
>>
>>
>> So subclasses implement single method #threeWayCompare:with: where they define own collarion logic independently from specified direction.
>> Old method #collate:with is now main method which taks into account three way comparison and direction. Subclasses do not supposed to redefine it.
>> And #value:value: method just convert collation result into the bool (returns is it negative or not).
>> All functions implements #= and #hash methods. So selector based functions can be used in application caches.
>> Also now applications are able to implement own sort functions instead of using selectors or blocks which improves reusability.

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

Thanks to dionisiydk

* 20602 file locator local directory should be inside image directory
>> UserLocalDirectory should be placed in imageDirectory by default.
>>
>> https://pharo.fogbugz.com/f/cases/20602/FileLocator-localDirectory-should-be-inside-image-directory

Issue URL: https://pharo.fogbugz.com/f/cases/20602 file locator local directory should be inside image directory
PR URL: https://github.com/pharo-project/pharo/pull/419
Diff URL: https://github.com/pharo-project/pharo/pull/419/files

Thanks to dionisiydk

* 20613-Improve-some-UUID-comments
>> Improve some UUID comments

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

Thanks to svenvc

* 20598 update configuration command line handler to use metacello
>> A first implementation of a CommandLineHandler for Metacello.
>>
>> It provides the ability to install projects using Configuration or Baseline.
>>
>> It comes with unit tests.
>>
>> After a discussion with @Ducasse , the ConfigurationCommandLineHandler was not modified in order to not break scripts using it. It should be deprecated once this handler provides enough features.

Issue URL: https://pharo.fogbugz.com/f/cases/20598 update configuration command line handler to use metacello
PR URL: https://github.com/pharo-project/pharo/pull/416
Diff URL: https://github.com/pharo-project/pharo/pull/416/files

Thanks to juliendelplanque

* 20610-Class-comments-displaying-is-failing-
>> https://pharo.fogbugz.com/f/cases/20610/Class-comments-displaying-is-failing
>>
>> fix RubCommentAnnotationDisplayer>>#fontToUse

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

Thanks to pavel-krivanek

* 20592-SizeInMemory-is-not-updated-to-handle-32-and-64-bits-for-WordLayout
>> Fixing sizeInMemory to handle properly WordLayout objects.
>> Also fixing the tests to handle both 32 and 64 bits.

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

Thanks to tesonep

* 20587-remove-UIThemeWatery
>> https://pharo.fogbugz.com/f/cases/20587-remove-UIThemeWatery

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

Thanks to pavel-krivanek

* 20551-Improve-way-how-Spec-presenters-are-linked-with-domain-models
>> https://pharo.fogbugz.com/f/cases/20551/Improve-way-how-Spec-presenters-are-linked-with-domain-models

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

Thanks to pavel-krivanek

* 20600 rename opal compiler encoder from opal encoder to encoder
>> This can be tested through a boostrap, or by using this do it instead of loading the changes:
>> OpalEncoder withAllSubclassesDo: [ :sub | sub rename: (sub name allButFirst: 4)].
>>
>> This cannot be tested through merge (Changes in the kernel).

Issue URL: https://pharo.fogbugz.com/f/cases/20600 rename opal compiler encoder from opal encoder to encoder
PR URL: https://github.com/pharo-project/pharo/pull/404
Diff URL: https://github.com/pharo-project/pharo/pull/404/files

Thanks to clementbera

* 19609-FileReferencebase-should-be-before-last-separator
>> https://pharo.fogbugz.com/f/cases/19609/FileReference-base-should-be-before-last-separator

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

Thanks to pavel-krivanek

* 19746-WeakValueDictionary-has-counter-intuitive-behavior
>> https://pharo.fogbugz.com/f/cases/19746/WeakValueDictionary-has-counter-intuitive-behavior

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

Thanks to pavel-krivanek

* 20606-AlienSunitperformTest-is-failing
>> https://pharo.fogbugz.com/f/cases/20606/AlienSunit-performTest-is-failing
>>
>> ignore prefix

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

Thanks to pavel-krivanek

* 20595-The-Bootstrap-process-should-log-the-command-line-command-executed
>> Adding the trace option to the bash scripts

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

Thanks to tesonep

* 20537 Better class tagging in package ProfStef-Tests-Traits
>> – add some tags like “Mocks”, “Traits” and “Tests” to the package “ProfStef-Tests-Traits”
>> and move the classes into them so we better group them for browsing
>>
>> https://pharo.fogbugz.com/f/cases/20537/Better-class-tagging-in-package-ProfStef-Tests-Traits

Issue URL: https://pharo.fogbugz.com/f/cases/20537 Better class tagging in package ProfStef
PR URL: https://github.com/pharo-project/pharo/pull/359
Diff URL: https://github.com/pharo-project/pharo/pull/359/files

Thanks to astares

* 20597 Rename-old-Compiler-encoder-to-LegacyEncoders
>> … Encoders (aka the OpalEncoders) to be named Encoder, and the old compiler encoder nobody use to be called whatever people want (I name them legacyEncoder).
>>
>> Since EncoderForLongForV3 has never worked, and EncoderForSistaV1 is not compliant with the old compiler version present in Pharo, I also remove them.

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

Thanks to clementbera

* 20578-add-BaselineOfMonticello-and-BaselineOfMetacello
>> https://pharo.fogbugz.com/f/cases/20578/add-BaselineOfMonticello-and-BaselineOfMetacello
>>
>> – add package Metacello-PharoExtensions
>> – move class side utility methods from BaselineOfPharoBootstrap there for general use
>> – add BaselineOfMonticello
>> – add BaselineOfMetacello
>> – list them in BaselineOfIDE to have them in the image

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

Thanks to pavel-krivanek

* 20583-introduce-system-dependencies-test
>> https://pharo.fogbugz.com/f/cases/20583/introduce-system-dependencies-test
>>
>> introduce SystemDependenciesTest

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

Thanks to pavel-krivanek

* [Bug]: Fix Issue 16136 – DateModel: Handle nil Sanely
>> I’ve been using this fix in production for two years, so it should be relatively reliable

Issue URL: https://pharo.fogbugz.com/f/cases/%5BBug%5D: Fix Issue 16136
PR URL: https://github.com/pharo-project/pharo/pull/394
Diff URL: https://github.com/pharo-project/pharo/pull/394/files

Thanks to seandenigris

* 20567-Instance-side-LayoutFramefractions-fractionsOrNil-offsets-should-be-deprecated
>> Fixed all the missing users and deprecate these methods!!!

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

Thanks to Ducasse

* 20596-Zinc-should-not-use-asBytesDescription-as-it-is-deprecated
>> Zinc is using #asBytesDescription. It should not be used as it is deprecated.
>> This error is affecting all the users of Zinc. Ex: Smalltalk CI

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

Thanks to tesonep

* 20026-Diff-has-incorrect-positions-red-and-green-colors-of-changed-text
>> The patch difference should have the cr character. If the patch has multiple lines and it does not have the CR, the resulting highlight is shifted a character per line.
>>
>> Issue: [https://pharo.fogbugz.com/f/cases/resolve/20026/Diff-has-incorrect-positions-red-and-green-colors-of-changed-text](https://pharo.fogbugz.com/f/cases/resolve/20026/Diff-has-incorrect-positions-red-and-green-colors-of-changed-text)

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

Thanks to tesonep

* 20569-Update-Layout-class-comment
>> better class comment

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

Thanks to Ducasse

* 20557-Update-Zinc-and-Zodiac
>> https://pharo.fogbugz.com/f/cases/20557/Update-Zinc-and-Zodiac
>>
>> merge packages:
>> Zodiac-Tests-SvenVanCaekenberghe.18
>> Zinc-Character-Encoding-Core-SvenVanCaekenberghe.54
>> Zinc-Character-Encoding-Tests-SvenVanCaekenberghe.35
>> Zinc-HTTP-SvenVanCaekenberghe.469
>> Zinc-Resource-Meta-Core-SvenVanCaekenberghe.65
>> Zinc-Resource-Meta-Tests-SvenVanCaekenberghe.38
>> Zinc-Tests-SvenVanCaekenberghe.243
>> Zinc-Zodiac-SvenVanCaekenberghe.40

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

Thanks to pavel-krivanek

* 20580-ValueChanged-should-be-moved-to-System-Model
>> https://pharo.fogbugz.com/f/cases/20580/ValueChanged-should-be-moved-to-System-Model
>>
>> move ValueChanged to the package System-Model

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

Thanks to pavel-krivanek

* 20575-TextMorph-cannot-work-without-code-completion-temporary-solution
>> https://pharo.fogbugz.com/f/cases/20575/TextMorph-cannot-work-without-code-completion-temporary-solution
>>
>> safer access to code completion

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

Thanks to pavel-krivanek

* 20573-BaselineOfMorphic-should-include-System-Identification
>> https://pharo.fogbugz.com/f/cases/20573/BaselineOfMorphic-should-include-System-Identification
>>
>> move System-Identification to the BaselineOfMorphic

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

Thanks to pavel-krivanek

* 20546-There-is-no-denyequals-method-in-TestCase-
>> https://pharo.fogbugz.com/f/cases/20546
>>
>> – simulate TAssertable flattening
>> – use different unexpected equality error message
>> – add denyCollection:equals:

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

Thanks to pavel-krivanek

* 20560-Fix-instance-veriables-for-Spec-presenters-ending-with–model
>> https://pharo.fogbugz.com/f/cases/20560/Fix-instance-veriables-for-Spec-presenters-ending-with-model
>>
>> fix some presenters instance veriables with wrong names

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

Thanks to pavel-krivanek

* 20564-Spec-Core-must-be-Morphic-independent
>> https://pharo.fogbugz.com/f/cases/20564/Spec-Core-must-be-Morphic-independent

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

Thanks to pavel-krivanek


November 02, 2017

Pharo Weekly - LiteratureResearcher – where graphs, PDFs, and BibTex happily live together

Hi everyone,

I was experimenting in the last few weeks with my take on literature research. For me, the corpus of scientific papers form an interconnected graph, not those plain lists and tables we keep in our bibliographies. So, here is the first prototype that has Google Scholar integration for search, can fetch PDFs from IEEE and ACM, extracts metadata from PDFs – all this results in hyperlinked PDFs!

See a demo here: https://youtu.be/EcK3Pt_WnEw
Also slides from the SCG seminar here: http://scg.unibe.ch/download/softwarecomposition/2017-10-31-Leuenberger-ILE.pdf

I plan on packaging it, so that those who are interested can check it out themselves (help wanted!). Currently, it only works on macOS.

What do you think of my approach? Which use cases should be added?

Cheers,
Manuel


November 01, 2017

October 31, 2017

Cincom Smalltalk - Cincom Smalltalk™ Director, Suzanne Fortman, to Speak at Smalltalks 2017

FAST (Fundación Argentina de Smalltalk) will be hosting its Smalltalks 2017 Conference on November 8-10 at Universidad Nacional de La Plata, Argentina. This marks the 11th year that FAST has […]

The post Cincom Smalltalk™ Director, Suzanne Fortman, to Speak at Smalltalks 2017 appeared first on Cincom Smalltalk.

October 30, 2017

Torsten Bergmann - Trapping Unix Signals in Pharo

A new library that allows you to trap Unix signals in Pharo. Basically it uses UFFI to register a callback on the C library function signal()

October 29, 2017

Pharo Weekly - Pharo Tips & Tricks booklet

Hi guys

I just published a new little booklet on Pharo tips and tricks!
Feedback and contributions are welcome as usual.
Stef

Pharo Weekly - _beginnings_ of a wrapper for OpenSSL

Hi all,

I’ve put up the _beginnings_ of a wrapper for OpenSSL on STH:

Metacello new
baseline: ‘OpenSSL’;
smalltalkhubUser: ‘PierceNg’ project: ‘OpenSSL-Pharo’;
load.

Verified on Pharo 6 32- and 64-bit.

My near term goal is to wrap enough libcrypto functionality to implement the
client-side of Let’s Encrypt.

I meant to put it up on GH, for the ease of forking and PRs, but I couldn’t get
Iceberg to work, and gitfiletree also failed to load, so STH it is. ¯\_(ツ)_/¯

Collaboration welcome.

PierceNg


Pharo Weekly - Trapping Unix signals within Pharo

Hi,

I made a small tool to trap unix signals within Pharo. I uploaded then to github.
is very easy to use and it will allow you to trap any signal and do what you want 😉
Esteban

Pierce Ng - OpenSSL wrapper for Pharo

I've put up the beginnings of a wrapper for OpenSSL on STH:

Metacello new
  baseline: 'OpenSSL';
  smalltalkhubUser: 'PierceNg' project: 'OpenSSL-Pharo';
  load.

Verified on Pharo 6 32- and 64-bit.

My near term goal is to wrap enough libcrypto functionality to implement the client-side of Let's Encrypt.

I meant to put it up on GH, for the ease of forking and PRs, but I couldn't get Iceberg to work, and gitfiletree also failed to load, so STH it is for now.

Collaboration welcome.

October 27, 2017

Pharo Weekly - [ANN] Iceberg 0.6.2 backported to Pharo 6.1

Hi,

I backported lastest Iceberg version to Pharo 6.1 to allow people to benefit for latest changes.
This version has an important amount of tweak and fixes, but most important is the inclusion of tonel file format (this is default for Pharo 7.0, optional for Pharo 6.1) and introduces a file-per-class format.
The advantages of this format has everything to do with the speed of access (is easier to reconstruct a package like) and the space on disk (methods are usually small but minimum space in disk is usually 4k so we waste a lot of space). Is also a better format for SSD disks.

To backport Iceberg 0.6.2 I also needed to backport latest version of Metacello, so Pharo 6.1 and Pharo7+ users now also have the latest version of it available 🙂

cheers!

 

Esteban


ESUG news - UK Smalltalk User Group Meeting - Monday, October 30th

PharoLambda: Smalltalk running serverless on AWS

The next meeting of the UK Smalltalk User Group Meeting will be on Monday, 30th October.

We'll meet at The City Pride, London (http://www.cityprideclerkenwell.co.uk/) at 7pm.

Tim Mackinnon will show how recent Pharo advances with a small footprint 64bit image allow for Smalltalk to run happily on AWS Lambda and power things like an Alexa skill. While serverless architecture is interesting in its own right, the neat twist is using standard Smalltalk tooling to "~live" debug a failed execution and step through a post mortem stack.

We will take a peak at the GitLab CI setup to deploy an Alexa application, look at how a simple lambda function can be hooked up and then discuss how we might leverage other Smalltalk strengths in a serverless world.

If you'd like to join us, you can just show up at the pub. You can also sign up in advance at the meeting's Meetup page: https://www.meetup.com/UKSTUG/events/244451089/.

See you there!

Smalltalk Jobs - Smalltalk Jobs – 10/27/17

The Pharo project needs an engineer for 1 year.  Contact Stéphane Ducasse for more info:

Engineer Position 1 year

INRIA RMoD are looking for a full-time engineer for helping with
developing Pharo in the context of IoT.The focus of this job is “Pharo
on embedded and mobile devices for the internet of things”

With Pharo, we have developed over the last two years an interactive,
remote development environment. It allows embedded, headless software
running on typical raspberry pi class hardware to be developed and
debugged in an interactive way. It allows programmers to explore and
change running headless embedded programs from their desktop
development machine.

The next step will be to extend this infrastructure to cover the use
case of industrial use: Deployment. We want to build a middle-ware to
manage, authenticate and script deployed Pharo embedded installations.

The engineer will help to develop the Pharo IoT infrastructure,
especially with a focus on industrial use:

·I mprove Pharo for a platform with an industrial focus.
· Work on a middleware to manage deployed Pharo instances.
·Realize two small demos: First, as an industrial IoT example, a demo
deployed on 20+ devices. Demo 2: Pharo deployed on multiple mobile
autonomous robots.
·Help with creating a website for PharoIOT.

We are looking for a candidate with some prior experience with Pharo.
In addition:

· Knowledge in Dynamic Languages (Pharo is a plus but not required)
·Experience with embedded development is a plus but not required
·English

Work in a research lab, but no paper writing, no teaching, no
administration. In addition:

Centrally located (one hour from Paris, 1h20 from London, 35 min from Brussels)
Try a lot of good beer (our office is just 10km from the border to Belgium)
Program with Pharo all day!
Lille is an active city but not expensive (lot of students…),
centrally located with good connections by train to everywhere
(including CDG and Brussels airports).

Duration: 12 + 12 months
Starting date: Feb or March 2016
Salary: 2600-3200 euros brut (french brutto = potentially one month of
taxe per year) / month, depending on experience – (56000 Euros paid by
the employer before any taxes).
Location: Lille (no remote job possible)


Filed under: Employment