Torsten Bergmann | 29 Jan 18:51 2015

Create window group for Playground

Previous (and still included) Workspace, Transcript and Nautilus 
provide Window grouping by selecting "Create window group" from the 
window menu and then dragging two windows onto each other. 
They are grouped together in one single window then and each one 
gets a tab.

Looks like Playground does not support this feature yet - so currently
I end up with many many windows which for me is a step backwards
compared to working with workspaces in Pharo 3.0

What is necessary to provide this for the Playground so we have a 
common behavior for all the tools and a cleaner desktop?


Max Leske | 29 Jan 12:27 2015

[SO] Error in PointerDetective

Ben, have you tried PointerDetective lately? :)

Torsten Bergmann | 29 Jan 09:20 2015

[ANN] PUnQLite NoSQL database project updated


are you in need for really simple out of image persistency?

If you like to use a small RDBMS solution with Pharo then there is the embeddable SQLite
shared library and NBSQLite3 project [1] to access it. Combine it with Glorp [2] and you do 
not have to fight too much with SQL.

On the other end of persistency world there are the so called "NoSQL databases" and beside 
Mongo and all the others that require special setup etc. there is this wonderful small UnQLite 
embeddable database [3] that similar to SQlite world only requires a simple library.

Thanks to Masashi Umezawa there is a nice wrapper for Pharo already to access this 
tiny embeddable NoSQL database called "PUnQLite" [4] and [5], also including access to 
the Jx9 machinery of UnQLite. It is really cool that he made this available.

This week I updated "PUnQLite" a little bit:
   - refactored the Native boost wrapper for UnQLite (using shared pools, ...)
   - documented classes
   - added a help topic
   - fixed a bug in cursors when accessing the keys in an empty database
   - and finally added a small spec based tool to work with a database file (see attached screenshot) 
     One can use it to open an unqlite database, show the key value pairs and remove or add entries.

If you are in latest Pharo 4 already you can load all of that right from the config browser. Be aware
that you need the external unqlite shared library which is downloaded and extracted into a folder
"pharo-vm" when loading the config.

For instance on Windows it automagically downloads a file "pharo-vm/unqlite.dll" below your
image directory and you just have to copy this shared library file to the folder where your 
VM (Pharo.exe) resides. Havent tried on other OS platforms.

From the Pharo side using the UnQLite database basically works like having some kind
"external dictionary" in a database file. Just run that in a workspace:

db := PqDatabase open: 'comments.db'.
db disableAutoCommit.
db transact: [
Object subclasses do: [:cls | | key | 
    key := cls asString.
    db at: key put: cls comment ]
db close.

Then open the "Database Browser" from the world menu and open the "comments.db" file.
You can browse the keys and values, remove entries or add new. A filter for the keys
is also included. Nothing fancy but hope you like it or find it usable.

Couldnt make it to PharoConf 2015 but I hope all participants enjoy their time there. 
Keep the others updated by using the #pharodays2015 on Twitter. Have fun!


stepharo | 29 Jan 07:49 2015
Mariano Martinez Peck | 28 Jan 23:44 2015

DarkTheme, Pharo3 and GTSpotter [WAS] Re: HELP WANTED: improve Dark Theme

On Fri, Jan 23, 2015 at 9:30 AM, Aliaksei Syrel <> wrote:
3) Fix spotter theming (currently ignores dark theme)

I added DarkTheme to spotter. Update to check and you can also take a look how theming mechanism works in GT.
There is UITheme>>spotterWidgetThemer that returns themer object for Spotter and to add custom theme she needs to override it in her own theme like it is done in Pharo3DarkTheme>>spotterWidgetThemer.
It allows to customize widgets deeply and reduces mess in themes :)

I cannot make it work by no means :(  but I would love to! 

Do you know the exact steps to have a Pharo 3.0 with GTSpotter and DarkThem working?

Thanks a lot in advance, 


On Fri, Jan 23, 2015 at 1:19 PM, kilon alios <> wrote:
I think roassal can do that 

On Fri, Jan 23, 2015 at 2:05 PM, Esteban Lorenzano <> wrote:

On 23 Jan 2015, at 12:53, Torsten Bergmann <> wrote:

now I have to figure out how to display svg icons in pharo… but this is what I was looking for :)


Gesendet: Freitag, 23. Januar 2015 um 12:24 Uhr
Von: "Sven Van Caekenberghe" <>
An: "Pharo Development List" <>
Betreff: Re: [Pharo-dev] HELP WANTED: improve Dark Theme

On 23 Jan 2015, at 12:03, Esteban Lorenzano <estebanlm <at>> wrote:


The Dark Theme is a standard theme upcoming in Pharo4, but as you might noticed, is still far from perfect.
I would like to take some actions on it but I do not have a lot of time this days, so I thought on asking for help :)

What I think is needed?

1) There are some bugs (for example in the search window, cmd+f in text panes)
2) Icon-set is not prepared for dark backgrounds. Now, this is a problem in eclipse itself who didn’t had a dark-theme either until recently. Now, I know they added a dark-theme and a corresponding set of icons (a set that can be displayed correctly both in white and black backgrounds), but I cannot find the icons. So if someone knows where they are, I’ll gladly replace them.

3) Fix spotter theming (currently ignores dark theme)

I know in an ideal world we will have our own set of icons, but that requires a lot of effort and design talent… so in the mean time, I think eclipse icons are doing a good job :)


Noury Bouraqadi | 28 Jan 16:12 2015

Recover lost changes | Where are class definitions?


I tried recovering code lost when an image quits without saving.
But, in the "Recent changes", I don't see class definitions.

I tesed this in Pharo 3 latest and in Pharo 4 latest too.

Is there an option to display them? I guess they are hidden with other "DoIts", but I can't figure out  how to
display them back.


Sven Van Caekenberghe | 28 Jan 14:43 2015


Hi Thierry, Onil,

First let me iterate what I wrote last week, the OSM stuff in Roassal is very cool, very well written. Great work.

Since I have some experience with OSM maps, tiles and serving them, I had a look to see if I could optimise the
tile drawing/loading, which is visibly a bit slow, one would assume because of the loading of the tiles
over the network.

I just committed (based on code that I wrote some time ago):

Name: Roassal2-SvenVanCaekenberghe.719
Author: SvenVanCaekenberghe
Time: 28 January 2015, 2:31:50.462461 pm
UUID: 0978fb6a-d6d0-4d86-a9ae-1f2f83a0b6a2
Ancestors: Roassal2-AlexandreBergel.718

Experimental branch.

Introduction of TROSMTileProvider to optimize getting OSM tiles, adds one shared memory cache and a local
file system cache, predefines and reuses 6 http clients spread over different hosts.

Modifies TROSMShape>>#getTile: and adds TROSMShape>>#tileNamed:

The strange thing is though, that I can optimise the loading (as benchmarked separately), but in most cases
(not when they are in the memory cache, but when they are in the file cache) the drawing still has the same
pauses as before - which I don't understand, at all. But it is a bit hard to explain.

Anyway, Thierry, I will see you tomorrow and the day thereafter and I hope I can show you what I mean.



Marcus Denker | 28 Jan 14:09 2015

[Pharo4][Slots] Migration of instances now Slot-aware


Thanks to Max, the instance migration when changing a class with existing instances is now
aware of slots.

e.g., you can 

Object subclass: #A
	slots: { #iv => TestSlot }
	classVariables: {  }
	category: ‘Playground'

do A new, change iv, then change the definition to a normal instance var:

Object subclass: #A
	slots: { #iv  }
	classVariables: {  }
	category: ‘Playground'

==> instance is migrated while keeping the value.

TODO (to have a first complete version)
	-> hidden slots (slice needs another pass)
	-> build hook
	-> call #initialize: on all Slots after #new when requested.


GitHub | 28 Jan 14:00 2015

[pharo-project/pharo-core] f9c715: 40467

  Branch: refs/heads/4.0
  Commit: f9c7159f3f3faf346eeda2ee6b6b0777f78dacbd
  Author: Jenkins Build Server <board@...>
  Date:   2015-01-28 (Wed, 28 Jan 2015)

  Changed paths:
    A Kernel.package/ClassDescription.class/instance/slots/
    A Kernel.package/ClassDescription.class/instance/slots/
    A ScriptLoader40.package/ScriptLoader.class/instance/pharo - scripts/
    A ScriptLoader40.package/ScriptLoader.class/instance/pharo - updates/
    M ScriptLoader40.package/ScriptLoader.class/instance/public/
    A Slot-Tests.package/SlotMigrationTest.class/instance/tests/
    A Slot-Tests.package/SlotMigrationTest.class/instance/tests/
    A Slot-Tests.package/SlotMigrationTest.class/instance/tests/
    A Slot.package/LayoutAbstractScope.class/instance/accessing/
    M Slot.package/PharoClassInstaller.class/instance/migrating/
    A Slot.package/PointerLayout.class/instance/accessing/
    A Traits.package/TClassDescription.class/instance/private/

  Log Message:
14801 Migration with slots

GitHub | 28 Jan 14:00 2015


  Branch: refs/tags/40467
stepharo | 28 Jan 11:51 2015

Supporting Start up around Pharo

Hi guys

if you are considering to create a start up around Pharo, we could find 
one year financial support
if this is serious and that you would like to come to work around Lille 
or France.