Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
July 2014
- 1178 messages
Re: [Pharo-dev] [DEV] Systemd socket activation patch for the VM
by Sebastian Sastre
this is really good!
sebastian
o/
> On 08/07/2014, at 11:08, Max Leske <maxleske(a)gmail.com> wrote:
>
> Hi folks
>
> As promised a long time ago my colleague Nik Lutz has finalized the patch for the VM that enables socket activation with Systemd. I will quickly go over what the patch is supposed to achieve, how we plan to use socket activation and what (minimal) changes are necessary.
>
>
> Systemd Socket Activation:
> Systemd opens a (network-) socket and waits for connections. When the first client connects the assotiated service (VM) is started. Systemd indicates via environment variable (LISTEN_FDS) that it opened a network socket.
>
> Detailed documentation on socket activation with Systemd can be found here: http://0pointer.de/blog/projects/socket-activation.html
>
>
> Our scenario for socket activation:
> At Cmsbox we have hundereds of images running on a server, all of which listen on a dedicated network port for incoming connections. The server is powerful enough to run all these processes concurrently, especially since not every image receives requests all the time.
> With socket activation we could further lower the server load and free up resources for images with a high request rate. Images that donât receive any requests for a specified amount of time can be suspended automatically and reactivated when a request comes in.
>
>
>
> The VM Patch:
> The attached patch tries hard to be minimal. It defines a new socket type (ProvidedTCPSocketType) which you will also find in the image (Socket>>newSystemd). ProvidedTCPSocketType is special in that it can refer to an existing TCPSocket and does not necessarily entail the creation of a new socket.
>
>
> The changes in the image:
> - Socket>>newSystemd tries to open a new Systemd socket.
> - TCPListener>>haveSystemdAssignedPort tests if the LISTEN_FDS environment variable has been set by Systemd for the current process.
> - TCPListener>>primEnvironmentAtSymbol is a utility method that we need to check for the environment variable (IMPORTANT: copied from OSProcess; uses the OSProcess plugin)
> - TCPListener>>pvtNewListener: has been modified to include the check for the Systemd port. If the socket has been assigned by Systemd, use a Systemd socket, a TCP socket otherwise
>
> Quick Howto:
> - Adapt path to vm and image in pharo@.service
> - Take a Seaside image and FileIn systemd.cs (tested with http://seaside.st/distributions/Seaside-2.8.4.zip)
> - Save as 9999.image
> - Copy pharo@.service and pharo@.socket to /etc/systemd/system
> - As root run:
> systemctl daemon-reload
> systemctl start pharo(a)9999.socket
> - Open http://localhost:9999/seaside/config
>
> [- systemctl stop pharo(a)9999.socket]
>
> -> Upon connection pharo(a)9999.socket starts: pharo(a)9999.service (which would start .../9999.image)
>
> You can see this in action in the following screencast: http://youtu.be/MVPLZNKg5j8
>
>
> We hope that this patch (or some version of it) will find its way into the VM. If you have any questions please feel free to ask.
>
>
> Cheers,
> Max (on behalf of Nik and the rest of Netstyle.ch)
>
>
> <systemd.cs>
> <pharo@.service>
> <squeak-svn.diff>
> <pharo@.socket>
>
July 9, 2014
Re: [Pharo-dev] Smalltalk Syntax in a Postcard contest
by Hernán Morales Durand
I forgot to add
each ast allChildren anySatisfy: [ : node | node isCascade ]
which in that case, there is no method in the Pharo 3 image. Maybe a
package out there...
Anyway, who can load all packages? :)
Hernán
PS: One problem with StackExchange is there are very few smalltalkers
registered.
2014-07-08 21:20 GMT-03:00 Hernán Morales Durand <hernan.morales(a)gmail.com>:
> Hello Martin,
>
> I have refined the search a little bit, and we have a new winner with
> Stephane Ducasse as author in annotations.
>
> PSMCMergeMorph>>model: aMerger
> "Set the model and update the window."
>
> |grouped sorted|
> super model: aMerger.
> grouped := aMerger operations
> groupBy: [:o | o targetClassName ifNil: [o shortSummary]]
> having: [:g | true].
> sorted := OrderedCollection new.
> grouped keys asSortedCollection do: [:k |
> sorted addAll: ((grouped at: k) asSortedCollection: [:a :b | a
> shortSummary <= b shortSummary])].
> self patchMorph model: sorted
>
> This is the code I have used:
>
> | allMethods |
> allMethods := SystemNavigation default allMethods.
> UIManager default displayProgress: 'Scanning all methods...'
> from: 1
> to: allMethods size
> during: [ : bar | | current |
> current := 0.
> allMethods select: [ : each |
> current := current + 1.
> bar value: current.
> each ast arguments notEmpty and: [
> (each ast allChildren anySatisfy: #isAssignment) and: [
> (each ast allChildren anySatisfy: #isBlock) and: [
> each ast temporaries notEmpty and: [
> each ast superMessages notEmpty and: [
> (each ast allChildren anySatisfy: [ : node | node isMessage
> and: [ node selector isUnary ] ]) and: [
> (each ast allChildren anySatisfy: [ : node | node isMessage
> and: [ node selector isBinary ] ]) and: [
> (each ast allChildren anySatisfy: [ : node | node isBlock and:
> [ node arguments size = 2] ]) and: [
> (each ast allChildren anySatisfy: [ : node | node isBlock and:
> [ node arguments size = 1] ])
> ] ] ] ] ] ] ] ] ] ].
>
> Cheers,
>
> Hernán
>
>
>
> 2014-07-08 18:48 GMT-03:00 MartinW <wm(a)fastmail.fm>:
>
> I removed the question, but only after it was already marked to be closed
>> by
>> several people. Their argument was, that the question was "to broad".
>> Once a
>> discussion like this starts on Stackexchange sites there's always a herd
>> behavior that's hard to stop.
>>
>> Can you share the code you used for your search, Hernán?
>>
>>
>> Hernán Morales Durand wrote
>> > The contest is gone?
>> >
>> > Anyway, the closest useful method I have found by iterating all ASTs in
>> > standard 3.0 image :
>> >
>> > - Declares arguments
>> > - Has assignment
>> > - Has sequence
>> > - Has blocks with 0 and 2 arguments
>> > - Declares temporaries
>> > - Has binary messages
>> > - Has unary messages
>> > - Has keyword messages
>> > - Has super messages
>> > - Has cascade
>> > - Has return
>> > - Uses String and Integer
>>
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://forum.world.st/Smalltalk-Syntax-in-a-Postcard-contest-tp4766793p4767…
>> Sent from the Pharo Smalltalk Developers mailing list archive at
>> Nabble.com.
>>
>>
>
July 9, 2014
Re: [Pharo-dev] Smalltalk Syntax in a Postcard contest
by Hernán Morales Durand
Hello Martin,
I have refined the search a little bit, and we have a new winner with
Stephane Ducasse as author in annotations.
PSMCMergeMorph>>model: aMerger
"Set the model and update the window."
|grouped sorted|
super model: aMerger.
grouped := aMerger operations
groupBy: [:o | o targetClassName ifNil: [o shortSummary]]
having: [:g | true].
sorted := OrderedCollection new.
grouped keys asSortedCollection do: [:k |
sorted addAll: ((grouped at: k) asSortedCollection: [:a :b | a
shortSummary <= b shortSummary])].
self patchMorph model: sorted
This is the code I have used:
| allMethods |
allMethods := SystemNavigation default allMethods.
UIManager default displayProgress: 'Scanning all methods...'
from: 1
to: allMethods size
during: [ : bar | | current |
current := 0.
allMethods select: [ : each |
current := current + 1.
bar value: current.
each ast arguments notEmpty and: [
(each ast allChildren anySatisfy: #isAssignment) and: [
(each ast allChildren anySatisfy: #isBlock) and: [
each ast temporaries notEmpty and: [
each ast superMessages notEmpty and: [
(each ast allChildren anySatisfy: [ : node | node isMessage
and: [ node selector isUnary ] ]) and: [
(each ast allChildren anySatisfy: [ : node | node isMessage
and: [ node selector isBinary ] ]) and: [
(each ast allChildren anySatisfy: [ : node | node isBlock and:
[ node arguments size = 2] ]) and: [
(each ast allChildren anySatisfy: [ : node | node isBlock and:
[ node arguments size = 1] ])
] ] ] ] ] ] ] ] ] ].
Cheers,
Hernán
2014-07-08 18:48 GMT-03:00 MartinW <wm(a)fastmail.fm>:
> I removed the question, but only after it was already marked to be closed
> by
> several people. Their argument was, that the question was "to broad". Once
> a
> discussion like this starts on Stackexchange sites there's always a herd
> behavior that's hard to stop.
>
> Can you share the code you used for your search, Hernán?
>
>
> Hernán Morales Durand wrote
> > The contest is gone?
> >
> > Anyway, the closest useful method I have found by iterating all ASTs in
> > standard 3.0 image :
> >
> > - Declares arguments
> > - Has assignment
> > - Has sequence
> > - Has blocks with 0 and 2 arguments
> > - Declares temporaries
> > - Has binary messages
> > - Has unary messages
> > - Has keyword messages
> > - Has super messages
> > - Has cascade
> > - Has return
> > - Uses String and Integer
>
>
>
>
>
> --
> View this message in context:
> http://forum.world.st/Smalltalk-Syntax-in-a-Postcard-contest-tp4766793p4767…
> Sent from the Pharo Smalltalk Developers mailing list archive at
> Nabble.com.
>
>
July 9, 2014
Re: [Pharo-dev] Suspending a Process
by Eliot Miranda
Hi Nicolai,
On Tue, Jul 8, 2014 at 7:19 AM, Nicolai Hess <nicolaihess(a)web.de> wrote:
> I want to create a process doing some work and call #changed on a Morph.
> I want to start/suspend/resume or stop this process.
> But sometimes, suspending the process locks the UI-Process,
> and I don't know why. Did I miss something or do I have to care when to
> call suspend?
>
> Wrapping the "morph changed" call in
> UIManager default defer:[ morph changed].
> Does not change anything.
>
> Here is an example to reproduce it.
> Create the process,
> call resume, call supsend. It works, most of the time,
> but sometimes, calling suspend locks the ui.
>
> p:=[[true] whileTrue:[ Transcript crShow: (DateAndTime now asString). 30
> milliSeconds asDelay wait]] newProcess.
>
p resume.
> p suspend.
>
If you simply suspend this process at random form a user-priority process
you'll never be able to damage the Delay machinery you're using, but
chances are you'll suspend the process inside the critical section that
Transcript uses to make itself thread-safe, and that'll lock up the
Transcript.
ThreadSafeTranscript>>nextPutAll: value
accessSemaphore
critical: [stream nextPutAll: value].
^value
So instead you need to use a semaphore. e.g.
| p s wait |
s := Semaphore new.
p:=[[true] whileTrue:[wait ifTrue: [s wait]. Transcript crShow:
(DateAndTime now asString). 30 milliSeconds asDelay wait]] newProcess.
wait := true.
30 milliSeconds asDelay wait.
wait := false.
s signal
etc...
HTH
regards
> Nicolai
>
--
best,
Eliot
July 9, 2014
Re: [Pharo-dev] Smalltalk Syntax in a Postcard contest
by MartinW
I removed the question, but only after it was already marked to be closed by
several people. Their argument was, that the question was "to broad". Once a
discussion like this starts on Stackexchange sites there's always a herd
behavior that's hard to stop.
Can you share the code you used for your search, Hernán?
Hernán Morales Durand wrote
> The contest is gone?
>
> Anyway, the closest useful method I have found by iterating all ASTs in
> standard 3.0 image :
>
> - Declares arguments
> - Has assignment
> - Has sequence
> - Has blocks with 0 and 2 arguments
> - Declares temporaries
> - Has binary messages
> - Has unary messages
> - Has keyword messages
> - Has super messages
> - Has cascade
> - Has return
> - Uses String and Integer
--
View this message in context: http://forum.world.st/Smalltalk-Syntax-in-a-Postcard-contest-tp4766793p4767…
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
July 8, 2014
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/40075
Home: https://github.com/pharo-project/pharo-core
July 8, 2014
[pharo-project/pharo-core] 85f511: 40075
by GitHub
Branch: refs/heads/4.0
Home: https://github.com/pharo-project/pharo-core
Commit: 85f511a2fd31947739978c8b0522b7db8dfb3bb5
https://github.com/pharo-project/pharo-core/commit/85f511a2fd31947739978c8b…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2014-07-08 (Tue, 08 Jul 2014)
Changed paths:
A Balloon.package/BalloonCanvas.class/README.md
A Balloon.package/BalloonCanvas.class/definition.st
A Balloon.package/BalloonCanvas.class/instance/accessing/aaLevel.st
A Balloon.package/BalloonCanvas.class/instance/accessing/aaLevel_.st
A Balloon.package/BalloonCanvas.class/instance/accessing/deferred.st
A Balloon.package/BalloonCanvas.class/instance/accessing/deferred_.st
A Balloon.package/BalloonCanvas.class/instance/accessing/ensuredEngine.st
A Balloon.package/BalloonCanvas.class/instance/balloon drawing/drawBezier3Shape_color_borderWidth_borderColor_.st
A Balloon.package/BalloonCanvas.class/instance/balloon drawing/drawBezierShape_color_borderWidth_borderColor_.st
A Balloon.package/BalloonCanvas.class/instance/balloon drawing/drawCompressedShape_.st
A Balloon.package/BalloonCanvas.class/instance/balloon drawing/drawGeneralBezier3Shape_color_borderWidth_borderColor_.st
A Balloon.package/BalloonCanvas.class/instance/balloon drawing/drawGeneralBezierShape_color_borderWidth_borderColor_.st
A Balloon.package/BalloonCanvas.class/instance/balloon drawing/drawGeneralPolygon_color_borderWidth_borderColor_.st
A Balloon.package/BalloonCanvas.class/instance/balloon drawing/drawOval_color_borderWidth_borderColor_.st
A Balloon.package/BalloonCanvas.class/instance/balloon drawing/drawRectangle_color_borderWidth_borderColor_.st
A Balloon.package/BalloonCanvas.class/instance/balloon drawing/fillRectangle_basicFillStyle_.st
A Balloon.package/BalloonCanvas.class/instance/converting/asBalloonCanvas.st
A Balloon.package/BalloonCanvas.class/instance/copying/postCopy.st
A Balloon.package/BalloonCanvas.class/instance/drawing-ovals/fillOval_fillStyle_borderWidth_borderColor_.st
A Balloon.package/BalloonCanvas.class/instance/drawing-polygons/drawPolygon_fillStyle_.st
A Balloon.package/BalloonCanvas.class/instance/drawing-polygons/drawPolygon_fillStyle_borderWidth_borderColor_.st
A Balloon.package/BalloonCanvas.class/instance/drawing/fillColor_.st
A Balloon.package/BalloonCanvas.class/instance/drawing/fillOval_color_borderWidth_borderColor_.st
A Balloon.package/BalloonCanvas.class/instance/drawing/fillRectangle_color_.st
A Balloon.package/BalloonCanvas.class/instance/drawing/frameAndFillRectangle_fillColor_borderWidth_borderColor_.st
A Balloon.package/BalloonCanvas.class/instance/drawing/frameAndFillRectangle_fillColor_borderWidth_topLeftColor_bottomRightColor_.st
A Balloon.package/BalloonCanvas.class/instance/drawing/line_to_width_color_.st
A Balloon.package/BalloonCanvas.class/instance/initialization/initialize.st
A Balloon.package/BalloonCanvas.class/instance/initialize/flush.st
A Balloon.package/BalloonCanvas.class/instance/initialize/resetEngine.st
A Balloon.package/BalloonCanvas.class/instance/private/ifNoTransformWithIn_.st
A Balloon.package/BalloonCanvas.class/instance/private/image_at_sourceRect_rule_.st
A Balloon.package/BalloonCanvas.class/instance/testing/isBalloonCanvas.st
A Balloon.package/BalloonCanvas.class/instance/testing/isVisible_.st
A Balloon.package/BalloonCanvas.class/instance/todo/drawString_from_to_in_font_color_.st
A Balloon.package/BalloonCanvas.class/instance/todo/drawString_from_to_in_font_color_underline_underlineColor_strikethrough_strikethroughColor_.st
A Balloon.package/BalloonCanvas.class/instance/todo/paragraph_bounds_color_.st
A Balloon.package/BalloonCanvas.class/instance/transforming/colorTransformBy_.st
A Balloon.package/BalloonCanvas.class/instance/transforming/preserveStateDuring_.st
A Balloon.package/BalloonCanvas.class/instance/transforming/transformBy_.st
A Balloon.package/BalloonCanvas.class/instance/transforming/transformBy_during_.st
R Balloon.package/FillStyleTest.class/README.md
R Balloon.package/FillStyleTest.class/definition.st
R Balloon.package/FillStyleTest.class/instance/running/setUp.st
R Balloon.package/FillStyleTest.class/instance/tests/testIsTransparentWithNoColor.st
R Balloon.package/FillStyleTest.class/instance/tests/testIsTransparentWithNonTransparentColors.st
R Balloon.package/FillStyleTest.class/instance/tests/testIsTransparentWithTranslucentColor.st
R Balloon.package/FillStyleTest.class/instance/tests/testIsTransparentWithTransparentColor.st
M Compiler.package/Compiler.class/definition.st
R Morphic-Base.package/BalloonCanvas.class/README.md
R Morphic-Base.package/BalloonCanvas.class/definition.st
R Morphic-Base.package/BalloonCanvas.class/instance/accessing/aaLevel.st
R Morphic-Base.package/BalloonCanvas.class/instance/accessing/aaLevel_.st
R Morphic-Base.package/BalloonCanvas.class/instance/accessing/deferred.st
R Morphic-Base.package/BalloonCanvas.class/instance/accessing/deferred_.st
R Morphic-Base.package/BalloonCanvas.class/instance/accessing/ensuredEngine.st
R Morphic-Base.package/BalloonCanvas.class/instance/balloon drawing/drawBezier3Shape_color_borderWidth_borderColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/balloon drawing/drawBezierShape_color_borderWidth_borderColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/balloon drawing/drawCompressedShape_.st
R Morphic-Base.package/BalloonCanvas.class/instance/balloon drawing/drawGeneralBezier3Shape_color_borderWidth_borderColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/balloon drawing/drawGeneralBezierShape_color_borderWidth_borderColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/balloon drawing/drawGeneralPolygon_color_borderWidth_borderColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/balloon drawing/drawOval_color_borderWidth_borderColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/balloon drawing/drawRectangle_color_borderWidth_borderColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/balloon drawing/fillRectangle_basicFillStyle_.st
R Morphic-Base.package/BalloonCanvas.class/instance/converting/asBalloonCanvas.st
R Morphic-Base.package/BalloonCanvas.class/instance/copying/postCopy.st
R Morphic-Base.package/BalloonCanvas.class/instance/drawing-ovals/fillOval_fillStyle_borderWidth_borderColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/drawing-polygons/drawPolygon_fillStyle_.st
R Morphic-Base.package/BalloonCanvas.class/instance/drawing-polygons/drawPolygon_fillStyle_borderWidth_borderColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/drawing/fillColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/drawing/fillOval_color_borderWidth_borderColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/drawing/fillRectangle_color_.st
R Morphic-Base.package/BalloonCanvas.class/instance/drawing/frameAndFillRectangle_fillColor_borderWidth_borderColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/drawing/frameAndFillRectangle_fillColor_borderWidth_topLeftColor_bottomRightColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/drawing/line_to_width_color_.st
R Morphic-Base.package/BalloonCanvas.class/instance/initialization/initialize.st
R Morphic-Base.package/BalloonCanvas.class/instance/initialize/flush.st
R Morphic-Base.package/BalloonCanvas.class/instance/initialize/resetEngine.st
R Morphic-Base.package/BalloonCanvas.class/instance/private/ifNoTransformWithIn_.st
R Morphic-Base.package/BalloonCanvas.class/instance/private/image_at_sourceRect_rule_.st
R Morphic-Base.package/BalloonCanvas.class/instance/testing/isBalloonCanvas.st
R Morphic-Base.package/BalloonCanvas.class/instance/testing/isVisible_.st
R Morphic-Base.package/BalloonCanvas.class/instance/todo/drawString_from_to_in_font_color_.st
R Morphic-Base.package/BalloonCanvas.class/instance/todo/drawString_from_to_in_font_color_underline_underlineColor_strikethrough_strikethroughColor_.st
R Morphic-Base.package/BalloonCanvas.class/instance/todo/paragraph_bounds_color_.st
R Morphic-Base.package/BalloonCanvas.class/instance/transforming/colorTransformBy_.st
R Morphic-Base.package/BalloonCanvas.class/instance/transforming/preserveStateDuring_.st
R Morphic-Base.package/BalloonCanvas.class/instance/transforming/transformBy_.st
R Morphic-Base.package/BalloonCanvas.class/instance/transforming/transformBy_during_.st
R Morphic-Base.package/extension/Bezier3Segment/class/example1.st
R Morphic-Base.package/extension/Bezier3Segment/class/example2.st
A OpalCompiler-Core.package/AbstractCompiler.class/class/settings/compilerSettingsOn_.st
R Polymorph-Tools-Diff.package/PSMCPatchMorph.class/class/as yet unclassified/forPatch_.st
R Polymorph-Tools-Diff.package/PSMCPatchMorph.class/class/as yet unclassified/usedByDefault.st
R Polymorph-Tools-Diff.package/PSMCPatchMorph.class/class/as yet unclassified/usedByDefault_.st
A Polymorph-Tools-Diff.package/PSMCPatchMorph.class/class/instance creation/forPatch_.st
A Polymorph-Tools-Diff.package/PSMCPatchMorph.class/class/settings/defaultMonticelloDiffToolsSettingOn_.st
A Polymorph-Tools-Diff.package/PSMCPatchMorph.class/class/settings/usedByDefault.st
A Polymorph-Tools-Diff.package/PSMCPatchMorph.class/class/settings/usedByDefault_.st
A Polymorph-Tools-Diff.package/PSMCPatchMorph.class/instance/accessing/selectedMessageName.st
A Polymorph-Tools-Diff.package/PSMCPatchMorph.class/instance/actions/compositeText.st
R Polymorph-Tools-Diff.package/PSMCPatchMorph.class/instance/as yet unclassified/changesMenu_.st
R Polymorph-Tools-Diff.package/PSMCPatchMorph.class/instance/as yet unclassified/compositeText.st
R Polymorph-Tools-Diff.package/PSMCPatchMorph.class/instance/as yet unclassified/loadMethodSelection.st
R Polymorph-Tools-Diff.package/PSMCPatchMorph.class/instance/as yet unclassified/newChangeTreeMorph.st
R Polymorph-Tools-Diff.package/PSMCPatchMorph.class/instance/as yet unclassified/selectedMessageName.st
A Polymorph-Tools-Diff.package/PSMCPatchMorph.class/instance/instance creation/newChangeTreeMorph.st
A Polymorph-Tools-Diff.package/PSMCPatchMorph.class/instance/menus/loadMethodSelection.st
A Polymorph-Tools-Diff.package/PSMCPatchMorph.class/instance/protocol/changesMenu_.st
R Polymorph-Widgets.package/ExtendedTabPanelBorder.class/README.md
R Polymorph-Widgets.package/ExtendedTabPanelBorder.class/definition.st
R Polymorph-Widgets.package/ExtendedTabPanelBorder.class/instance/as yet unclassified/frameRectangle_on_.st
A ScriptLoader40.package/ScriptLoader.class/instance/pharo - scripts/script75.st
A ScriptLoader40.package/ScriptLoader.class/instance/pharo - updates/update40075.st
M ScriptLoader40.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
R Settings-Compiler.package/CompilerSystemSettings.class/README.md
R Settings-Compiler.package/CompilerSystemSettings.class/class/settings/compilerSettingsOn_.st
R Settings-Compiler.package/CompilerSystemSettings.class/definition.st
R Settings-Polymorph.package/PSMCSystemSettings.class/README.md
R Settings-Polymorph.package/PSMCSystemSettings.class/class/settings/defaultMonticelloDiffToolsSettingOn_.st
R Settings-Polymorph.package/PSMCSystemSettings.class/definition.st
Log Message:
-----------
40075
13509 PSMCSystemSettings --> move to class
https://pharo.fogbugz.com/f/cases/13509
13511 Move CompilerSettings to OpalCompiler package
https://pharo.fogbugz.com/f/cases/13511
13507 ExtendedTabPanelBorder is dead code
https://pharo.fogbugz.com/f/cases/13507
13512 Move BalloonCanvas to Balllon Package
https://pharo.fogbugz.com/f/cases/13512
http://files.pharo.org/image/40/40075.zip
July 8, 2014
Re: [Pharo-dev] [Article] Elegant Pharo Code
by Sven Van Caekenberghe
Hi Paul,
On 08 Jul 2014, at 21:33, Paul Davidowitz <pdavidow(a)fastmail.fm> wrote:
> Very nice, except all this could be done in Ruby, also elegantly.
> The Smalltalk advantage is the live image, and that's where the focus
> should be.
I was hoping to get some discussions around this article - there is this sentence in the beginning: 'How would you tackle these problems using your favourite language ?'.
Coming back to your point, IMHO, it is very hard to explain what I find so nice about Pharo/Smalltalk: it is a combination of different elements, not one single thing. I did mention the live objects idea. Another thing that I find important is that you can look at the source code of anything very easily, effortlessly, including the implementation of all tools.
I do not know enough about Ruby to make authoritative comparisons, but since it is based on Smalltalk and Lisp, is dynamic and interactive, you obviously have a point: Ruby is in the right general area.
Personally I do *not* like Ruby's more complex syntax (the convenience aspects, the unnecessary syntactic sugar).
I also do not think a stock Ruby install/shell can do the same things as easily out of the box, but of course, Ruby will come much closer that say Java.
Sven
July 8, 2014
Re: [Pharo-dev] [Article] Elegant Pharo Code
by kilon alios
Ruby and Pearl look very ugly to me.
Programming languages are primarily personal preference.
Pharo advantages to me at least are far more than live image, its live
coding which by the way is different from live image, the IDE tools, the
factor that is all Pharo objects even when you do assembly coding inside
Pharo , the libraries of course and last but not least the community.
I could name also thousands more advantages that I have found in the
implementation that I really like as well others I don't. Devil , as they
say, is in the details. Details are everything , generalisations have
little meaning.
Lovely article Sven , keep them coming. I think Pharo would definitely
benefit from a cookbook working as a database where pharo coders can use to
find example code the easy way.
But even articles like this can help a lot, I just wish that there was a
Pharo wiki to keep these links and see them buried in Pharo news.
PS: Sven I am making my own Pharo book called Pharo Universe where I want
to put things that are not part of PBE or PFTE which can be find here
https://github.com/kilon/Pharo-Universe and here
https://ci.inria.fr/pharo-contribution/job/PharoUniverse/ . May I have
permission to use your articles as chapters for my book ? I will fully
credit you and link back to your blog posts of course :)
On Tue, Jul 8, 2014 at 10:33 PM, Paul Davidowitz <pdavidow(a)fastmail.fm>
wrote:
> Very nice, except all this could be done in Ruby, also elegantly.
> The Smalltalk advantage is the live image, and that's where the focus
> should be.
>
>
July 8, 2014
Glorp, DBXTalk and SQLServer
by Torsten Bergmann
Hi,
I wanted to play a little bit with Glorp for Pharo. Therefore I installed/created
an MSSQL Server database locally using SQLEXPRESS. SQL Server runs locally (127.0.0.1)
on standard port 1433 via TCP/IP. Connecting from various DB tools is possible
and works.
Now in Pharo3.0 Latest update: #30851 I installed Glorp:
Gofer it
squeaksource: 'MetacelloRepository';
package: 'ConfigurationOfGlorpDBX';
load.
Then, for installing Glorp for OpenDBX just execute:
(((Smalltalk at: #ConfigurationOfGlorpDBX)
perform: #project)
perform: #version: with: #stable)
load
At the location of the Pharo VM I extracted the OpenDBX binaries for
Windows. To be precise I grabbed the OpenDBX-1_5_0_dlls.zip from
http://web.archiveorange.com/archive/v/a1gO5ZoJReyXr6T4n5m7
and extracted it in the VM directory so the dlls could be found.
I also renamed/placed the "libsybdb-5.xxx" from the same location
as "libsybdb-5.dll" to the VM directory. If this will not be the case
one will get an error that this dll is missing at the first connect attempt.
(looks like this was linked wrongly)
So far so good.
When I now try to connect using the following expression:
NBPharoOpenDBX installAsCurrent.
sqlsrvrLogin := (Login new)
database: (SQLServerPlatform new );
username: 'sa';
password: 'password';
secure: false;
connectString: '127.0.0.1:1433_MYSHINYNEWDB'.
accessor := DatabaseAccessor forLogin: sqlsrvrLogin.
accessor login
I get an DBXRecoverableError with 'Connecting to server failed'.
When I check the log in #openConnection: I can see that the binding failed although the
values are correct and work with other tools:
'odbx_bind: called with values: handle = a NBOpenDBX_OdbxTO( 0xC9E648 ) database = MYSHINYNEWDB
userName = sa userPassword = password'
Any comments? Anyone got a RDBMS outside of Postgress running with DBXTalk/Glorp on Pharo?
I also tried with SQLite3Platform - but the parsing logic does not handle local (SQLite3)
files and always expects "hostname:portNumber_db-name" like patterns.
Thanks
T.
July 8, 2014