Monthly Archives: April 2016

New OpenGL bindings for Pharo 5

Hello,

I made new OpenGL bindings for Pharo 5 using the UFFI (Available at: http://smalltalkhub.com/#!/~ronsaldo/UFFIOpenGL ).
Unlike the old NBOpenGL, these new bindings make a heavy use of OSWindow SDL2 which is integrated and enabled by default in the Pharo 5 image. These bindings do not provide a way to create an OpenGL context or to create a Morphic window using OpenGL unlike NBOpenGL.
For testing quickly OpenGL in Pharo 5, it should be enough to do the following in the playground:
(ConfigurationOfOSWindow project version: #stable) load: ‘WithOpenGLAndExamples’.
(Smalltalk at: #OSGLExampleBasic3) new.
As for Woden, it is now working in Pharo 5 with the UFFI. For loading Woden in a Pharo 5 image, is enough to do the following in the playground (Also available at the Woden Smalltalkhub page):
Gofer new smalltalkhubUser: ‘ronsaldo’ project: ‘Woden’; package: ‘ConfigurationOfWoden’; load. (Smalltalk at: #ConfigurationOfWoden) loadBleedingEdge.
For an example the following script should be executed in a Playground:
WDFPSSimpleExample6 new open.
Greetings,
Ronie

Happy with Pharo 50 release!

Hi guys,

This is just to let you know I am very happy with Pharo 5.0 upcoming release. I was already used quite a lot for other projects (OSSubprocess etc), but a couple of days ago, I started to develop my client’s app (Quuve) and so far so great. It only took me an hour or so to update all my dependencies in my Metacello conf (I have a lot of dependencies). So..thanks for all those who have been updating their confs!
I was already familiar with all the GT tools so I was happy with that. I really notice a speed up (I guess in big part thanks to Spur) and so far it was quite robust. I also noticed some memory leak fixing…as previously in 4.0 I was re-building images all the time because I get to 500MB in no time. Right now I keep using the same image as for several days and so far no problem with memory.
Finally…let me say…. if for Pharo 6.0 we finally get Git support directly integrated into the image and we get expected Sista speedup, I think it will be the best release ever hahahahha.
Thanks for all your efforts and congratulations for the upcoming release. I am already enjoying it since several weeks already.

A nano tuto on Command Line …

pharo Pharo.image  --list 

will give you the command lines available, then 

pharo Pharo.image  aCommand --help 

will give you the subcommands possible

in your case, you want something like this: 

pharo Pharo.image eval “99 factorial”

cheers, 
Esteban

Pharo Monthly Newsletter April 2016

Pharo Monthly Newsletter April 2016

The Pharo Community is busy preparing the release of Pharo5 for May. We got so busy that we forgot to send out a newsletter for March…

For this April Newsletter, we have three topics:

  1. The Pharo MOOC
  2.  Pharo Consortium: Membership Matching Campaign
  3. Pharo Days Report

To get Pharo related news every day, follow us on twitter @pharoproject.

Pharo MOOC
The Pharo MOOC is a new online course about Live Object Programming in Pharo.

The MOOC starts with over 2000 registrations on May 2nd. Register today!

Membership Matching Campaign
The Pharo Board is proud to announce a special campaign for attracting new Consortium Members during 2016.
A new fund has been created from which the Consortium will receive the equivalent of one yearly membership fee for every new member, and the increment in yearly fees for every upgrading member. For example, if a new company joins the Consortium as a Silver member (2000 EUR / year), the fund will contribute a one-time amount of 2000 EUR to the Consortium. Similarly, if a company upgrades from Bronze (1000 EUR / year) to Gold (4000 EUR / year), the fund will contribute a one-time amount of 3000 EUR.

This campaign will take place until the end of 2016, or until the fund is depleted. Currently, the fund totals 21000 EUR, a sum which is graciously supported by three companies: LabWare, Object Profile and Fenk.
http://pharo.org/news/membership-matching-campaign

Pharo Days
Pharo days were organised on Thursday March 31 & Friday April 1 in Namur (Belgium). It was a great moment to encounter other Pharo programmers, to feel community spirit, to discuss about the Pharo ecosystem and the improvment of the language, listen many interesting talks about various themas.

The schedule was interesting: We were lucky to listen talks about Seaside 3.2, data formats and protocols, Unified FFI, Bloc, Spur, etc. If you didn’t go to Namur, all the slides will be available on this website soon.

Many photographies and a video are already available on the web:

Thanks to the event organizers for their incredible work. The Pharo Days took place in a beautiful place (Le cercle de Wallonie).

Arff Generator for Pharo

Hello everyone,

For a university project in ”Datamining and Datawarehousing”, I have to convert data stored as text files in different formats to the Weka[1] ARFF format[2].

I did it with Pharo of course! 🙂

So, I wrote this little project [3] to share what I have done with you, just in case someone else needs to export data from Pharo objects to an ARFF string for further analysis with Weka.

Cheers,

Julien

Links:

[1] Weka’s website: http://www.cs.waikato.ac.nz/ml/weka/

[2] ARFF format spec: https://weka.wikispaces.com/ARFF

[3] Arff generator for Pharo: https://github.com/juliendelplanque/Arff

Soup1.8 [ANN] Introspect web content

Hi,

I added a few GT inspector extensions to Soup and cleaned up a little bit. Released as a new version 1.8 of Soup - you will find easily in Catalog 
for Pharo 5 or by opening Spotter and entering "Soup" to load.

As the attached screenshots shows you now have a nice way to introspect 
the structure of a web page as a tree in the inspector or see the 
attributes of tags/nodes in a table.

Thx
T.

soup.png

Pillar 3.0.0 release

Hi everybody,

I’m happy to announce the latest release of Pillar.

This release has been possible because of the hard work of Damien Cassou, Cyril Ferlicot, Damien Pollet, Stephan Eggermont, Yann Dubois, Thibault Arloing and Lukas Komarek.

What did it bring and what are the largest changes ?

  • Addition of an AsciiDoc Exporter
  • LaTeX exporter:
    • external links now produce footnotes
    • replace \begin{code}{} with \begin{listing}[language=XXXX]
    • replace \ct with \code
    • use \textasciitilde instead of \texttildelow to represent a ~ character in Pillar
    • SBALaTeX writer for sba book (by Damien Pollet) https://github.com/cdlm/sbabook
  • HTML exporter:
    • default template charset is UTF-8
  • Features: For more  you can see Pillar documentation at https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book-result/PillarChap/Pillar.html
    • hideable scripts with the option hideable.
      •  e.g., [[[hideable=true
        with a parameter in pillar.conf “scriptHide”=true this text will be hidden.
        ]]]
      • It’s, for example useful if you’re a teacher and you want to have two versions of your document, one with solutions (for you) and one without (for students)
    • auto anchor for headers
      • e.g, in a level configuration
        “level1”:{
        “numbering”=true,
        “autoAnchor”=true
        }
        there will be an automatic creation of an anchor for headers of level 1.
      • It’s useful when you want to link a title in the text, for example for a table of contents
    • header capitalization in a level configuration with options: capitalize, capitalizeEnglish, uppercase, lowercase
      •  ex: “level1”:{
        “capitalization”:”uppercase”
        }
        Will render all headers of level 1 to Uppercase.
      • It’s useful if you want all headers of a same level to be capitalize likewise
      • e.g., if you have “==i am a level 1 header” with “capitalizeEnglish” it will produce “<h2>I Am a Level 1 Header<\h2>”

Cheers,

Thibault

Zinc: much more than HTTP server

Although Zinc HTTP Components is a framework for HTTP with full featured client and server implementations, it has long contained two sub packages that are independent of HTTP or even networking: Zinc-Resource-Meta (which implements URL and MimeType) and Zinc-Character-Encoding (for all kinds of character encoding).

While implementing the Pharo Unicode project, I made a couple of changes to Zinc-Character-Encoding.

The ZnCharacterEncoder hierarchy was refactored a bit with the introduction of ZnUTFEncoder and ZnEndianSensitiveUTFEncoder while a new encoder was added: ZnUTF32Encoder.

This means all official Unicode encoders, UTF-8, UTF-16 and UTF-32 are now supported. See the chapters ‘3.9 Unicode Encoding Forms’ and ‘3.10 Unicode Encoding Schemes’ in http://www.unicode.org/versions/Unicode8.0.0/ch03.pdf

The API of the encoders was also extended to not only work between characters and bytes, but also between integer Unicode code points and bytes.

A refactoring was done regarding streams as well with the introduction of ZnEncodedStream and ZnEncoded[Read|Write]Stream above ZnCharacter[Read|Write]Stream and the addition of ZnCodePoint[Read|Write]Stream.

Summary: some new features, all public API remains the same.

Sven

Metronomic improvements

50694
18010 CompiledMethod>>#hasBreakpoint speedup
https://pharo.fogbugz.com/f/cases/18010

18011 QA async task flood
https://pharo.fogbugz.com/f/cases/18011

50693
17697 Badly encoded icon data
https://pharo.fogbugz.com/f/cases/17697

50692
18005 speed up Nautilus tests
https://pharo.fogbugz.com/f/cases/18005

50691
17999 Four tests failing in SmalllintManifestCheckerTest
https://pharo.fogbugz.com/f/cases/17999

16560 test runs: open debugger on failing tests
https://pharo.fogbugz.com/f/cases/16560

50690
18003 multiple usage in the weak subscriptions to the local announcers in the system
https://pharo.fogbugz.com/f/cases/18003

50689
18001 GToolkit version 3.19
https://pharo.fogbugz.com/f/cases/18001

50688
17998 Update Athens to latest
https://pharo.fogbugz.com/f/cases/17998

50687
17984 Method pane of Nautilus does not honor test methods of abstract unit test classes (and lets them run instead)
https://pharo.fogbugz.com/f/cases/17984

17970 String Utility method “repeat:”
https://pharo.fogbugz.com/f/cases/17970

50686
17983 Update GTSpotter to latest version that reduces memory leaks
https://pharo.fogbugz.com/f/cases/17983

50685
17975 #hierarchyClassTree sort by #name instead of #printString
https://pharo.fogbugz.com/f/cases/17975

17995 load rubric 2.19
https://pharo.fogbugz.com/f/cases/17995
50684
17989 QualityAssistant v2.6.3 (memory leak fix)
https://pharo.fogbugz.com/f/cases/17989
50683
17985 Package and methods icon cache are references nautilus instance which shows them first time
https://pharo.fogbugz.com/f/cases/17985

17964 Remove usage of Announcer in MultistateButtonMorph for the action to be done when clicked
https://pharo.fogbugz.com/f/cases/17964

17986 Nautilus uses old EventManager to subscribe on historyChanged which never garbage collected
https://pharo.fogbugz.com/f/cases/17986

17966 garbage subinstance of SystemWindow at image startup
https://pharo.fogbugz.com/f/cases/17966

17987 RubFindReplaceService produce leak subscriptions
https://pharo.fogbugz.com/f/cases/17987

50682
17015 Failing test: SetTest>>#testAllSetsAreHealthy
https://pharo.fogbugz.com/f/cases/17015

17979 (MessageDialogWindow new text: Hello) open should work
https://pharo.fogbugz.com/f/cases/17979

17897 Slot method used by Nautilus but not implemented
https://pharo.fogbugz.com/f/cases/17897
50681
17284 Rubric SubscriptOutOfBounds error
https://pharo.fogbugz.com/f/cases/17284

17972 Remove depended in MorphTreeNodeMorph on deletion
https://pharo.fogbugz.com/f/cases/17972

17968 a window should not be the top window after its deletion
https://pharo.fogbugz.com/f/cases/17968

50680
17804 –no-default-preferences does not work on the latest Pharo 5
https://pharo.fogbugz.com/f/cases/17804
50679 Moose

Addresses cases:
– case 17679
– case 17936
– case 17931
Other updates:

– made the width of the sequenceable number items to be 50
– examples for SharedQueue, CatalogProject
– specify an after: message in GTExamples

50678
17950 Improve Collection Sequenciable comments ver2
https://pharo.fogbugz.com/f/cases/17950

16947 Class-side Inst Var “#name” Makes It Too Easy to Break System
https://pharo.fogbugz.com/f/cases/16947

17841 Creating a class from a debugger/during compilation doesnt create a record in .changes file
https://pharo.fogbugz.com/f/cases/17841

50677
17945 TextEditor setEmphasisHereFromTextForward: broken for empty text
https://pharo.fogbugz.com/f/cases/17945

17943 It is not possible to write [ in Nautilus on the french keyboard layout
https://pharo.fogbugz.com/f/cases/17943

17937 Monticello does not fully unload packages
https://pharo.fogbugz.com/f/cases/17937

17621 Failing test SizeInMemoryTest>>#testSizeInMemoryOfByteObjects
https://pharo.fogbugz.com/f/cases/17621
50675
17930 MenuModel>>fromSpec: fails to open a PluggableMenuSpec if it contains a subMenu
https://pharo.fogbugz.com/f/cases/17930

17932 Natuilus “Class” button no longer shows if theres anything on the class-side
https://pharo.fogbugz.com/f/cases/17932

17929 Missing parenthesis around condition (testAsCommaStringMore)
https://pharo.fogbugz.com/f/cases/17929
50674
17632 Can not remove classes that are referenced
https://pharo.fogbugz.com/f/cases/17632

17923 SUnit Rules
https://pharo.fogbugz.com/f/cases/17923

17699 Finders code pane allows to save code with invalid syntax
https://pharo.fogbugz.com/f/cases/17699

17926 Improve Pharo Project Catalog Loading
https://pharo.fogbugz.com/f/cases/17926

17780 “Analyzing Packages” progress should not be shown when running package critics
https://pharo.fogbugz.com/f/cases/17780

50672
16775 Class Button is in the wrong state sometimes
https://pharo.fogbugz.com/f/cases/16775

17871 Slots need to be notified when they changed
https://pharo.fogbugz.com/f/cases/17871

16373 Methods called but not implemented in SUnit
https://pharo.fogbugz.com/f/cases/16373

50671
17904 Update athens 3.9
https://pharo.fogbugz.com/f/cases/17904

17912 QualityAssistant v2.6.2
https://pharo.fogbugz.com/f/cases/17912

50668
17909 Update Rubric to 2.16
https://pharo.fogbugz.com/f/cases/17909

50665
17218 needs to use new spec drag n drop transfer models
https://pharo.fogbugz.com/f/cases/17218

17823 Critic browser is not dark theme friendly
https://pharo.fogbugz.com/f/cases/17823

17898 RPackage>>#isDirty speedup
https://pharo.fogbugz.com/f/cases/17898
50664
17901 Morph#>>openCenteredInWorld do not use Display
https://pharo.fogbugz.com/f/cases/17901

14107 Truncated text on text lists with bold font
https://pharo.fogbugz.com/f/cases/14107

17885 ThemeChanged improvements
https://pharo.fogbugz.com/f/cases/17885
50662
Moose

50661
17891 creating of a new method in “no messages” category does not update methods list in Nautilus
https://pharo.fogbugz.com/f/cases/17891

16309 ThreadSafeTranscript>>examples doesnt work anymore
https://pharo.fogbugz.com/f/cases/16309

16922 Nautilus: Using class pane menu entry “Add class” can cause problems
https://pharo.fogbugz.com/f/cases/16922

17878 KM calls to unimplemented methods
https://pharo.fogbugz.com/f/cases/17878
50663
17782 RPackageOrganizer data do not full correspond to the newely generated ones
https://pharo.fogbugz.com/f/cases/17782

15893 Nautilus refresh not fine enough
https://pharo.fogbugz.com/f/cases/15893

14528 OSWindow: move tests out of package
https://pharo.fogbugz.com/f/cases/14528

17893 CompiledMethod>>hasLiteralThorough: does not work properly for GlobalVariables
https://pharo.fogbugz.com/f/cases/17893
50660
17869 add support for indirect calls
https://pharo.fogbugz.com/f/cases/17869

50659
17872 simulation mirror primitive100 for perform with superclass is not working
https://pharo.fogbugz.com/f/cases/17872

17873 Simple Test Cases for String (continued)
https://pharo.fogbugz.com/f/cases/17873

Object centric debugging

Hello.
I glad to present very simple implementation of object centric debugging based on Ghost and ObjectVirus projects.
You can try it by:
Metacello new
smalltalkhubUser: ‘Pharo’ project: ‘Ghost’;
configuration: ‘Ghost’;
version: #development;
load: ‘ObjectCallHalt’
With this package you can ask any object to #haltOnNextCall and It adds new button in debugger “Run to next self send”.
Best regards.
Denis