Re: [Pharo-dev] [PROPOSAL] Put the WorldMenu in a Menu bar

2018-06-02 Thread H. Hirzel
On 6/1/18, Torsten Bergmann  wrote:
>
>>Guille & Cyril wrote>
>> > Since some decades now the default way to display a menu in
>> > applications
>> > is to have a bar at the top of the windows.
>
>
> Alistair wrote
>>> Instead of a menu bar at the top, which takes quite a bit of space,
>>> and as mentioned may not fit on a small screen how about a "Start"
>>button in the task-bar that pops up the menu a-la Windows
>
>
> So this basically reduces to the two UI options:
>
>  1. Should Pharo look like an application (and have the menu at the top)
>
>  2. Should Pharo look like an OS itself (with a primary "Start" menu in the
> taskbar as on Windows)
>
> Maybe we should support both styles using a setting.
>
> Bye
> T.
+1
>



Re: [Pharo-dev] Athens based game worked on windows and pharo 60 :)

2018-05-01 Thread H. Hirzel
Hello Stef

Is this Athens based game available somewhere?

Regards

Hannes

On 3/10/17, stepharong  wrote:
> Hi esteban
>
> Today during the labs at the university, we verified with the latest VM on
>
> windows that the athens based game that the students were improving is
> working with Pharo 60 (while some weeks ago when they tried it did not).
>
> Stef
>
>
> --
>
>



Re: [Pharo-dev] new pharo cheatsheet

2018-03-08 Thread H. Hirzel
Hello

Is the cheat sheet
http://files.pharo.org/media/pharoCheatSheet.pdf

up to date for Pharo 6.1 and Pharo 7?

In particular - the references to the main web sites, are they still OK?


MainWebSites
- Codehosting http://smalltalkhub.com
- Questions http://discord.gg/Sj2rhxn
- Blog http://pharoweekly.wordpress.com
- Contributors http://pharo.org/about
- Topics http://topics.pharo.org
- Consortium http://consortium.pharo.org
- Association http://association.pharo.org

Pharo Books

Pharo books are available at: http://books.pharo.org
Pharo By Example, Deep into Pharo, Enterprise Pharo: a Web
Perspective, Numerical Methods in Pharo, TinyBlog Tutorial,
Dynamic Web Development in Seaside (http://book.seaside.st)
More books http://stephane.ducasse.free.fr/FreeBooks

--Hannes

On 4/12/16, stepharo  wrote:
> Hi eliot
>
> I took everything into account except the
>
> Personally I very much /would/ include ". statement separator" in the
> reserved syntactic constructs table.  I might try and split the table into
> "syntax" ( "comment" ; . and ^ ) and "object constructors" tables
> (everything else).
>
>
> I have to digest it and now I should finish some other work for the mooc.
> I'm fighting a lot with the space :)
>
> Stef
>
>
> Le 12/4/16 13:35, Eliot Miranda a écrit :
>> In the "common constructs" conditionals and iterations tables, the Java
>> appears on the left and the Smalltalk on the right.  In other tables the
>> Smalltalk occurs on the left and the explanation appears on the right.
>> Hence, in the conditionals and iterations tables, put the Java on the
>> right.
>>
>> Personally I very much /would/ include ". statement separator" in the
>> reserved syntactic constructs table.  I might try and split the table into
>> "syntax" ( "comment" ; . and ^ ) and "object constructors" tables
>> (everything else).
>>
>> _,,,^..^,,,_ (phone)
>>
>>> On Apr 11, 2016, at 11:58 PM, stepharo  wrote:
>>>
>>> new syntaxsheet
>>>
>>>
>>> 
>>
>
>



Re: [Pharo-dev] Maybe better pinning messages? (inspired by [Pinning Objects in Pharo])

2017-09-14 Thread H. Hirzel
+1 for pinInMemory

It explains what it does.

On 9/14/17, Eliot Miranda  wrote:
> Hi Norbert,
>
>> On Sep 13, 2017, at 3:18 PM, Norbert Hartl  wrote:
>>
>>
>>> Am 14.09.2017 um 00:09 schrieb Eliot Miranda :
>>>
>>> Hi Denis,
>>>
>>> On Tue, Sep 12, 2017 at 9:29 AM, Denis Kudriashov 
>>> wrote:
 Hi Eliot.

 I know and I only talk about new messages. I am not trying to rethink
 full meta model of Smalltalk.
 By the way #class is very common message and it is handy to use short
 name. But pinning messages will be used rarely in very specific
 applications. So no much sense to preserve them in short version.
>>>
>>> Agreed.  So we have to decide whether to go with pinInMemory or
>>> pinObject, pinObject being suggested by Norbert because it matched
>>> isReadOnlyObject.  Personally I like pinInMemory.  Norbert, do you feel
>>> strongly about pinObject et al?
>>>
>> No I don't. It feels only good to me if there is a requirement not to
>> implement selectors that are likely to be used in user code. I'm ok with
>> pinInMemory although I asked myself where can it be pinned elsewhere if
>> not in memory. So the suffix in memory doesn't add anything but also moves
>> the selector out of user space.
>
> Well I think Denis' point is that pinInMemory removes ambiguity with pin for
> other uses and I agree.  So I for one am happy to change it to pinInMemory
> et al.
>
>>
>> Norbert
>>

 2017-09-12 18:05 GMT+02:00 Eliot Miranda :
> Hi Denis,
>
>
>> On Sep 12, 2017, at 2:39 AM, Denis Kudriashov 
>> wrote:
>>
>> I am really wonder guys. I thought you are not big funs of Object
>> protocol.
>> Current pinning messages are a new set of very generic messages in the
>> Object.
>
> Yes, and that's because this is a fundamental property of all
> non-immediate objects.  Do you object to the #class message?  Should it
> be #classObject because it might conflict with #class used in an
> educational or socioeconomic model?  All objects other than immediates
> can move.  Pinning stops that movement.  It applies generally.  So the
> protocol belongs in Object.
>
>
>>
>> About Norbert idea.
>> - bePinnedObject is not bad convention. But I would prefer the memory
>> suffix because it reflects the low level behaviour.
>>
>> 2017-09-11 14:16 GMT+02:00 Esteban Lorenzano :
>>> yes, me :)
>>>
>>> I do not see a reason to change them, tbh.
>>> for me they are comprensible as they are now and it does not adds
>>> more information pinInMemory or pinMemory.
>>>
>>> Esteban
>>>
>>>
 On 11 Sep 2017, at 11:56, Denis Kudriashov 
 wrote:

 Anybody else?

 2017-08-31 10:29 GMT+02:00 Pavel Krivanek
 :
>
>
> 2017-08-31 10:24 GMT+02:00 Denis Kudriashov
> :
>> Hi.
>>
>> We now have very generic message names:
>> - pin
>> - unpin
>> - setPinned:
>> - isPinned
>>
>> Problem that they collide with possible domain related names.
>> For example I implemented pinning of tabs in Calypso and I found
>> that I overrides #pin and #isPinned messages. Then I fix it with
>> different names.
>> Probably menus also uses pin word but without overrides
>>
>> What you think about renaming pinning messages? Something like:
>> - pinMemory
>
> I would use pinInMemory
>
> -- Pavel
>
>> - unpinMemory
>> - isMemoryPinned
>> - setPinnedMemory:
>> - pinMemoryDuring: (if we will introduce it)
>>
>> I think it is easy to do now because not much code uses pinning
>

>>>
>>

>>>
>>>
>>>
>>> --
>>> _,,,^..^,,,_
>>> best, Eliot
>>
>



Re: [Pharo-dev] Maybe better pinning messages? (inspired by [Pinning Objects in Pharo])

2017-09-12 Thread H. Hirzel
On 9/12/17, Denis Kudriashov  wrote:
> I am really wonder guys. I thought you are not big funs of Object protocol.
> Current pinning messages are a new set of very generic messages in the
> Object.
>
> About Norbert idea.
> - bePinnedObject is not bad convention.

>But I would prefer the memory
> suffix because it reflects the low level behaviour.
+1


> 2017-09-11 14:16 GMT+02:00 Esteban Lorenzano :
>
>> yes, me :)
>>
>> I do not see a reason to change them, tbh.
>> for me they are comprensible as they are now and it does not adds more
>> information pinInMemory or pinMemory.
>>
>> Esteban
>>
>>
>> On 11 Sep 2017, at 11:56, Denis Kudriashov  wrote:
>>
>> Anybody else?
>>
>> 2017-08-31 10:29 GMT+02:00 Pavel Krivanek :
>>
>>>
>>>
>>> 2017-08-31 10:24 GMT+02:00 Denis Kudriashov :
>>>
 Hi.

 We now have very generic message names:
 - pin
 - unpin
 - setPinned:
 - isPinned

 Problem that they collide with possible domain related names.
 For example I implemented pinning of tabs in Calypso and I found that I
 overrides #pin and #isPinned messages. Then I fix it with different
 names.
 Probably menus also uses pin word but without overrides

 What you think about renaming pinning messages? Something like:
 - pinMemory

>>>
>>> I would use pinInMemory
>>>
>>> -- Pavel
>>>
>>>
 - unpinMemory
 - isMemoryPinned
 - setPinnedMemory:
 - pinMemoryDuring: (if we will introduce it)

 I think it is easy to do now because not much code uses pinning

>>>
>>>
>>
>>
>



Re: [Pharo-dev] poor state of fuel

2017-09-11 Thread H. Hirzel
On 9/10/17, Norbert Hartl  wrote:
> Max,
>
> Just an update. Martin commited a new package that solves the
> encoding/decoding of SmallInteger and Character. Together with the patch
> from nicolas my dumps work again
>
> Norbert

You mean you managed to export Fuel objects in Pharo 4 and import them
in Pharo 6.1?

--Hannes


>> Am 29.08.2017 um 21:42 schrieb Max Leske :
>>
>> Thanks Tim.
>>
>> Norbert, I just saw that I have already created an issue for the 64-bit
>> problems. I don’t know whether tackling that will help you though. In any
>> case, I’ll see that we try to work on those problems.
>>
>> I can’t give you an exact timeline because I will be on holiday but I
>> guess I can make an integration by around mid September.
>>
>> Cheers,
>> Max
>>
>>
>>
>>> On 29 August 2017 at 16:09:06, Tim Mackinnon (tim@testit.works) wrote:
>>>
>>> As a small data point, a fuel file written out on AWS Lambda Linux (not
>>> sure what version - I think it's an ubuntu, but they don't really say),
>>> is readable on OS X 64bit .
>>>
>>> So it seems like you must have found something unusual.
>>>
>>> Tim
>>>
>>> Sent from my iPhone
>>>
>>> On 29 Aug 2017, at 11:13, Max Leske  wrote:
>>>
 Hi Norbert,

 We still maintain Fuel.

 I was not aware of the problem you describe. Could you open an issue on
 github (https://github.com/theseion/Fuel/issues) with a detailed
 explanation and, if possible, steps to reproduce the problem?

 Cheers,
 Max

> On 29 August 2017 at 11:04:34, Norbert Hartl (norb...@hartl.name)
> wrote:
>
> I'm migrating most of my projects to pharo 6.1 at the moment. I come
> from pharo 4, I skipped pharo 5. I use 64 bit which removes a lot of
> stuff that does not need to be installed and makes deployment better.
> That really feels much better.
>
> I use jenkins and there if a test fails a fuel dump is written to disk.
> The jenkins server is ubuntu linux with the vm of the opensuse build.
> My laptop has Mac OS and cannot read back those fuel dumps. I use the
> same image version on jenkins and my laptop. Both are 64bit.
>
> I asked that on discord and there was a mentioning that not only the 64
> bit fuel has problems. So I wanted to ask what is the state of fuel
> right now. I consider fuel one of the core technologies in pharo and it
> is sad if it just stops working.
>
> Any feedback is highly appreciated,
>
> Norbert
>
>



Re: [Pharo-dev] About Git support for windows

2017-09-11 Thread H. Hirzel
A note: Both variants below do not look nice because of the code
starting at the first column.


Some of the method body code lines start in the first column:

Morph class>>obtainArrowheadFor: aPrompt defaultValue: defaultPoint [
"Allow the user to supply a point to serve as an arrowhead size.
Answer nil if we fail to get a good point"
| result |
result := UIManager default request: aPrompt initialAnswer:
defaultPoint asString.
result isEmptyOrNil ifTrue: [^ nil].
^ [(Point readFrom: result readStream)] on: Error do: [:ex | nil].]

vs.

Morph class>>obtainArrowheadFor: aPrompt defaultValue: defaultPoint
[
"Allow the user to supply a point to serve as an arrowhead size.
Answer nil if we fail to get a good point"
| result |
result := UIManager default request: aPrompt initialAnswer:
defaultPoint asString.
result isEmptyOrNil ifTrue: [^ nil].
^ [(Point readFrom: result readStream)] on: Error do: [:ex | nil].
]







What about adding 4 leading spaces, easy to remove when parsing.


Morph class>>obtainArrowheadFor: aPrompt defaultValue: defaultPoint [
"Allow the user to supply a point to serve as an arrowhead size.
Answer nil if we fail to get a good point"
| result |
result := UIManager default request: aPrompt initialAnswer:
defaultPoint asString.
result isEmptyOrNil ifTrue: [^ nil].
^ [(Point readFrom: result readStream)] on: Error do: [:ex | nil].]

vs.

Morph class>>obtainArrowheadFor: aPrompt defaultValue: defaultPoint
[
"Allow the user to supply a point to serve as an arrowhead size.
Answer nil if we fail to get a good point"
| result |
result := UIManager default request: aPrompt initialAnswer:
defaultPoint asString.
result isEmptyOrNil ifTrue: [^ nil].
^ [(Point readFrom: result readStream)] on: Error do: [:ex | nil].
]

--Hannes

On 9/11/17, Stephane Ducasse  wrote:
> I read all the morph class and I like the ending ] at the beginning of
> the line (even if I know the rectangle concern for ifTrue beck
> formatting)
> Why because it identifies really well the end of a method.
>
> It is especially good for method finishing with conditionals.
>
> ]
>
> Esteban
>
> could you generate the same class with
>
> MethodDeclaration
>  [
>  
>  ]
>
> I would like to browse it to see how the eye catch fast.
>
> because
>
> MethodDeclaration
>  [
>  
> ]
> is not that nice
>
> so may be
>
> MethodDeclaration [
>  
> ]
>
> is a good compromise (because end of method is more important to spot that
> beginning.
>
> Stef
>
>



Re: [Pharo-dev] poor state of fuel

2017-08-30 Thread H. Hirzel
On 8/30/17, Tim Mackinnon  wrote:
> Actually in my case they are similar but not identical images.

Good to know a slightly different image still can cope with a fuel
file written by another image.

Probably the results depends on which types of objects you have written.

Not sure about the influence of changes in class definitions.

--Hannes

> The Lambda image is a minimal early 7.0 one - but it is beforecthe massive
> reworks that were announced. On top of this it has my project loaded.
>
> The OS X image is a fat 6.1 with the same project loaded. (So a superset).
>
> I am saving the walkback context.
>
> Fuel warns that images need to be similar for it to map objects - so my
> scenario fits that (the same image would be easier I assume).
>
> Tim
>
> Sent from my iPhone



Re: [Pharo-dev] poor state of fuel

2017-08-29 Thread H. Hirzel
On 8/29/17, Tim Mackinnon  wrote:
> As a small data point, a fuel file written out on AWS Lambda Linux (not sure
> what version - I think it's an ubuntu, but they don't really say), is
> readable on OS X 64bit .

By the same image or a different one?

--Hannes

> So it seems like you must have found something unusual.
>
> Tim
>
> Sent from my iPhone
>
>> On 29 Aug 2017, at 11:13, Max Leske  wrote:
>>
>> Hi Norbert,
>>
>> We still maintain Fuel.
>>
>> I was not aware of the problem you describe. Could you open an issue on
>> github (https://github.com/theseion/Fuel/issues) with a detailed
>> explanation and, if possible, steps to reproduce the problem?
>>
>> Cheers,
>> Max
>>
>>> On 29 August 2017 at 11:04:34, Norbert Hartl (norb...@hartl.name) wrote:
>>>
>>> I'm migrating most of my projects to pharo 6.1 at the moment. I come from
>>> pharo 4, I skipped pharo 5. I use 64 bit which removes a lot of stuff
>>> that does not need to be installed and makes deployment better. That
>>> really feels much better.
>>>
>>> I use jenkins and there if a test fails a fuel dump is written to disk.
>>> The jenkins server is ubuntu linux with the vm of the opensuse build. My
>>> laptop has Mac OS and cannot read back those fuel dumps. I use the same
>>> image version on jenkins and my laptop. Both are 64bit.
>>>
>>> I asked that on discord and there was a mentioning that not only the 64
>>> bit fuel has problems. So I wanted to ask what is the state of fuel right
>>> now. I consider fuel one of the core technologies in pharo and it is sad
>>> if it just stops working.
>>>
>>> Any feedback is highly appreciated,
>>>
>>> Norbert
>>>
>



Re: [Pharo-dev] Catalog statistics (Who know this projects?)

2017-08-21 Thread H. Hirzel
Hello Esteban

How did you produce the list below last year?

I am interested for Pharo 6.0/6.1 to have

a) a list of all projects in the catalog _with_ a description
b) a list of all projects in the catalog _without_ a description

Regards
Hannes

On 1/5/16, Esteban Lorenzano  wrote:
> So… I took a couple of minutes to do a small list of project description
> status:
>
> From a total of 379 projects currently in the catalog, just 115 have a
> description and/or keywords associated.
> Which means 264 are mysterious projects nobody can guess what are they
> about.
>
> I was thinking most of this projects would be in Unsorted (or Pharo 3), but
> I found that many are also on Pharo 5 and 4…. which is frankly unacceptable
> :)
> Even very important projects like Seaside or Garage and Glorp are not
> documented.
>
> So, please people… take a look at your projects and PLEASE, provide a
> description and proper keywords… Nobody can guess what is Aconcagua (besides
> a cool mountain in south america), or Telescope, etc., etc., etc.
>
> Here the list of non-documented projects:
>
>
> http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo50/main
> ---
> 'A4BP'
> 'Aconcagua'
> 'BootstrapMagritte'
> 'Chalten'
> 'CommandShell'
> 'Cormas'
> 'DependencyAnalyser'
> 'FamixJS'
> 'FontAwesome'
> 'Garage'
> 'GarageConnectionPool'
> 'GarageGlorp'
> 'Glorp'
> 'Grease'
> 'IniModules'
> 'Kendrick'
> 'Magritte3'
> 'MagritteMagic'
> 'MetaBoardBoard'
> 'MyFirstWebApp'
> 'NBOpenGL'
> 'NeoJSON'
> 'OSProcess'
> 'PetitParser'
> 'Phexample'
> 'Pier3'
> 'Pier3AddOns'
> 'ProcessWrapper'
> 'RewriteTool'
> 'Seaside3'
> 'SimplePersistence'
> 'Ston'
> 'Telescope'
> 'Woden'
> ‘Xtreams'
>
> http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo40/main
> ---
> 'AconcaguaDeluxe'
> 'AthensSVG'
> 'Autotest'
> 'CPanel'
> 'CreativeCommonsLive'
> 'DevFlow'
> 'EventRecorder'
> 'ExtendedNumberParser'
> 'ExternalWebBrowser2'
> 'FixedDecimal'
> 'Ghost'
> 'GraphViz'
> 'Gravatar'
> 'Hubcap'
> 'Infinity'
> 'Mandrill'
> 'Mathex'
> 'MemoryMonitor'
> 'MinimalConnectors'
> 'Mocketry'
> 'MongoTalk'
> 'NBSQLite3'
> 'NumericalMethods'
> 'ODBC'
> 'OSOSX'
> 'OSWindows'
> 'PackageDependenciesAnalysis'
> 'PharoLauncher'
> 'PlagueDoctor'
> 'Pomodoro'
> 'RemoteAnnouncement'
> 'SandstoneDb'
> 'Scheduler'
> 'ScriptManager'
> 'Shapes'
> 'SmallUML'
> 'Spreadsheet'
> 'Spy'
> 'StateSpecs'
> 'SuffixConditionals'
> 'Teachable'
> 'TestMock'
> 'Trees'
> 'Twilio'
> 'Vidi'
> 'VistaCursors'
> 'Viva'
> 'WiringPi'
> 'WorkingSet'
> 'XBase'
> 'sQuick'
> ‘sQuick_new'
>
> http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo30/main
> ---
> 'Actalk'
> 'Arduino'
> 'BabyMock2'
> 'CTranslator'
> 'DBPedia'
> 'DigitalOcean'
> 'Forum'
> 'Fuel'
> 'GTDebugger'
> 'GTInspector'
> 'GTInspectorCore'
> 'GTPlayground'
> 'GTPlaygroundCore'
> 'GTSpotter'
> 'GToolkit'
> 'GlamourCore'
> 'GlorpDBX'
> 'GraphET'
> 'InstanceEncoder'
> 'Marina'
> 'Mechanize'
> 'Memcached'
> 'Moose'
> 'Pastell'
> 'PharoOnlineHelp'
> 'ProfStef'
> 'PythonParser'
> 'RFB'
> 'Roassal3d'
> 'SQLite3'
> 'Smallapack'
> 'SmalltalkHub'
> 'Snapshotcello'
> 'SortFunctions'
> 'Spotlight'
> 'Stamp'
> 'Tide'
> 'VersionBrowser'
> ‘Versionner'
>
> http://www.squeaksource.com/MetacelloRepository
> ---
> 'AXAnnouncements'
> 'Adore'
> 'Aida'
> 'Ajp'
> 'Algernon'
> 'Alien'
> 'Amers'
> 'Announcements'
> 'AutomaticMethodCategorizer'
> 'BetaNineIPAddress'
> 'CAnalyzer'
> 'CairoGraphics'
> 'CampSmalltalkLondon'
> 'Cecinestpasunepomme'
> 'CharacterMap'
> 'Chronos'
> 'CloudforkAWS'
> 'Cog'
> 'Connectors'
> 'ContextS'
> 'Control'
> 'Country'
> 'Countryside'
> 'DBXBrowser'
> 'DBXTools'
> 'DependencyBrowser'
> 'DependencyView'
> 'EnhancedOmniBrowser'
> 'ExternalIconFamily'
> 'ExternalWebBrowser'
> 'FileMan'
> 'FileTree'
> 'Filesystem'
> 'GemTools'
> 'Gitocello'
> 'Glamour'
> 'Gofer'
> 'GoferProjectLoader'
> 'GoogleAnalytics'
> 'HPDF'
> 'HealthReportProducer'
> 'HelpSystem'
> 'ICal'
> 'InstancesBrowser'
> 'JQueryWidgetBox'
> 'JavaScriptAnalyzer'
> 'Jejak'
> 'Keymapping'
> 'Kozen'
> 'KyotoTycoonClient'
> 'MaBase'
> 'MaClientServer'
> 'Magma'
> 'Magmafy'
> 'Magritte'
> 'Magritte2'
> 'Magritte3AddOns'
> 'MagritteAddOns2'
> 'Metacello'
> 'MetacelloBrowser'
> 'MetacelloPreview'
> 'MockGemStone'
> 'Mondrian'
> 'Money'
> 'MonticelloRedirect'
> 'Murmansk'
> 'Nagare'
> 'NativeBoost'
> 'Neo4reSt'
> 'NewECompletion'
> 'NewInspector'
> 'NewOCompletion'
> 'Nile'
> 'NotificationsArea'
> 'O2'
> 'OCompletion'
> 'OPAX'
> 'ObjectMetaTools'
> 'OmniBrowser'
> 'OmniBrowserLukas'
> 'Orca'
> 'PagedReader'
> 'Pharo'
> 'PharoMorphicExtras'
> 'PharoNonCore'
> 'Phriak'
> 'Pier'
> 'Pier2'
> 'PierAddOns'
> 'PierAddOns2'
> 'PostMark'
> 'ProcessModel'
> 'Quaternion'
> 'REPL'
> 'Raphael'
> 'RatPack'
> 'RefactoringBrowser'
> 'RefactoringTools'
> 'RoelTyper'
> 'SIXX'
> 'SPort2'
> 'SandcastleThemes'
> 'Scamper'
> 'Scribo'
> 'Seafox'
> 'Seaside'
> 'Seaside28'
> 'Seaside28Examples'
> 'Seaside30'
> 'SeasideJSON'
> 'SeasideRest'
> 'SeasideTesting'
> 'SharedWorkspace'
> 'Shout'
> 'SimpleApplescript'
> 'SoapOpera'
> 

Re: [Pharo-dev] [squeak-dev] Fuel fails in squeak

2017-08-14 Thread H. Hirzel
According to
   https://travis-ci.org/theseion/Fuel
the tests are fine for the release version Squeak 5.1.

Could you post a code snippet which shows how it fails.

If you are using Squeak 6.0a, which version do you use?

--HH


On 8/14/17, henry  wrote:
> I loaded the latest Fuel from squeak source and it fails when materializing
> a Character from a FixedObjectCluster. Character class does not support
> basicNew.
>
> Helpful>??
>
> - HH



Re: [Pharo-dev] Smalltalk Internet Browser

2017-05-02 Thread H. Hirzel
On 5/2/17, p...@highoctane.be  wrote:
> On Tue, May 2, 2017 at 8:45 PM, H. Hirzel  wrote:
>
>> On 5/2/17, p...@highoctane.be  wrote:
>> > Here is a workable solution: Headless Chrome
>> >
>> > https://developers.google.com/web/updates/2017/04/headless-chrome
>> >
>> > This HN thread has some interesting things we could take inspiration
>> from.
>> >
>> > We can drive it from Pharo and grab the screen, and then show that in a
>> > Morph. Then capture clicks and send then to the headless chrome.
>> >
>> > Will not do everything, but can be decent.
>>
>> +1
>> Thanks for this link, Phil.
>>
>> Seems to be an exercise with some OSProcess calls.
>>
>
> More like REST calls ( https://w3c.github.io/webdriver/webdriver-spec.html
> ) against chromedriver executable driving headless chrome.

Ok, this makes it easier, in fact. Thanks for the clarification.

>
>>
>> The result might as well have an application for the testing of web
>> site rendering.
>>
>> Though there are many tools (e.g. http://phantomjs.org/) which do this
>> it is convenient to do the scripting in Smalltalk.
>>
>
> PhantomJS maintainer stepped down upon the news of ChromeHeadless becoming
> available.

Good to know.

--Hannes

> Phil
>
>>
>> --Hannes
>>
>>
>> >
>> > Phil
>> >
>> > On Sun, Apr 30, 2017 at 10:37 PM, askoh  wrote:
>> >
>> >> Yes. It is a novel way of remote desktop. Perhaps Craig can tell if it
>> >> can
>> >> do
>> >> the following.
>> >> I want to go to a web page, select a body of text and have Smalltalk
>> code
>> >> analyze the text in some way and return the answer in the browser or
>> >> in
>> >> the
>> >> Smalltalk app or file output. There should be two-way communication
>> >> between
>> >> app and browser. I would like to do live debugging too.
>> >>
>> >> Aik-Siong Koh
>> >>
>> >>
>> >> Hi Askoh,
>> >>
>> >>are you also aware of Snowglobe
>> >> https://thiscontext.com/2016/10/31/app-streaming-with-snowglobe/ ?
>> This
>> >> allows one to use a standard Smalltalk image running on the native Cog
>> VM
>> >> to
>> >> render in a web browser.
>> >>
>> >> _,,,^..^,,,_ (phone)
>> >>
>> >>
>> >>
>> >>
>> >> --
>> >> View this message in context: http://forum.world.st/
>> >> Smalltalk-Internet-Browser-tp4944879p4944998.html
>> >> Sent from the Pharo Smalltalk Developers mailing list archive at
>> >> Nabble.com.
>> >>
>> >>
>> >
>>
>>
>



Re: [Pharo-dev] Smalltalk Internet Browser

2017-05-02 Thread H. Hirzel
On 5/2/17, p...@highoctane.be  wrote:
> Here is a workable solution: Headless Chrome
>
> https://developers.google.com/web/updates/2017/04/headless-chrome
>
> This HN thread has some interesting things we could take inspiration from.
>
> We can drive it from Pharo and grab the screen, and then show that in a
> Morph. Then capture clicks and send then to the headless chrome.
>
> Will not do everything, but can be decent.

+1
Thanks for this link, Phil.

Seems to be an exercise with some OSProcess calls.

The result might as well have an application for the testing of web
site rendering.

Though there are many tools (e.g. http://phantomjs.org/) which do this
it is convenient to do the scripting in Smalltalk.

--Hannes


>
> Phil
>
> On Sun, Apr 30, 2017 at 10:37 PM, askoh  wrote:
>
>> Yes. It is a novel way of remote desktop. Perhaps Craig can tell if it
>> can
>> do
>> the following.
>> I want to go to a web page, select a body of text and have Smalltalk code
>> analyze the text in some way and return the answer in the browser or in
>> the
>> Smalltalk app or file output. There should be two-way communication
>> between
>> app and browser. I would like to do live debugging too.
>>
>> Aik-Siong Koh
>>
>>
>> Hi Askoh,
>>
>>are you also aware of Snowglobe
>> https://thiscontext.com/2016/10/31/app-streaming-with-snowglobe/ ?  This
>> allows one to use a standard Smalltalk image running on the native Cog VM
>> to
>> render in a web browser.
>>
>> _,,,^..^,,,_ (phone)
>>
>>
>>
>>
>> --
>> View this message in context: http://forum.world.st/
>> Smalltalk-Internet-Browser-tp4944879p4944998.html
>> Sent from the Pharo Smalltalk Developers mailing list archive at
>> Nabble.com.
>>
>>
>



Re: [Pharo-dev] Smalltalk Internet Browser

2017-04-29 Thread H. Hirzel
And for simple HTML pages this might be interesting

https://github.com/HPI-SWA-Teaching/Scamper  (8 contributors, 380 commits)

On 4/29/17, Denis Kudriashov  wrote:
> Hi.
>
> I remember Esteban integrated Chrome into Pharo. Would be interesting to
> know details.
>
> 2017-04-29 8:58 GMT+02:00 Nicolas Cellier <
> nicolas.cellier.aka.n...@gmail.com>:
>
>>
>>
>> 2017-04-29 4:11 GMT+02:00 askoh :
>>
>>> Being connected to the internet is going to be a necessity for any piece
>>> of
>>> software in the immediate future. So every Smalltalk development
>>> environment
>>> or application should have that capability as default. To push that
>>> envelop,
>>> every image should have a Smalltalk native Internet Browser. By
>>> developing
>>> that Internet Browser, we are demonstrating the power of Smalltalk.
>>> There
>>> is
>>> no reason why Smalltalk cannot be as intimate to the World Wide Web as
>>> Javascript. We can have the IDE in Smalltalk, Internet Browser in
>>> Smalltalk
>>> and a WWW language in Smalltalk. As is uniquely Smalltalk, every bit of
>>> code
>>> is visible, modifiable and debuggable. This supped up environment will
>>> grow
>>> and grow to be a full OS.
>>>
>>> How can we gather the relevant Smalltalk code and necessary plugins to
>>> make
>>> an Internet Browser? I remember Croquet had internet browser and video
>>> player. What is missing?
>>>
>>> All the best,
>>> Aik-Siong Koh
>>>
>>>
>>>
>> html5, javascript, etc... Good luck!
>> What is the size of teams for building Firefox, Safari or Edge?
>> Just browse https://github.com/mozilla for curiosity
>> For example, just the core: https://github.com/mozilla/gecko-dev
>> Not sure that the million $ that Tim is asking regularly would bring us
>> any close to those references.
>> You'll have to implement a bunch of technologies... At least, the good
>> point is that it would make sure that we have a truly open smalltalk ;)
>>
>>
>>
>>>
>>> --
>>> View this message in context: http://forum.world.st/Smalltal
>>> k-Internet-Browser-tp4944879.html
>>> Sent from the Pharo Smalltalk Developers mailing list archive at
>>> Nabble.com.
>>>
>>>
>>
>



Re: [Pharo-dev] saving an image on windows and opening it on mac problems

2017-04-26 Thread H. Hirzel
What about loading some TTF fonts into the image?

--Hannes

On 4/26/17, p...@highoctane.be  wrote:
> I'd say that one should clear all fonts being loaded, refresh the list of
> available fonts because they are on another location (and this should
> happen even moving from windows to windows), and switch back to a default
> font that is sure to be available.
>
> I got an issue with the "hack" font because the new version changed the
> file names of the fonts and the system died.
>
> That should already solve some problems.
>
> Phil
>
> On Wed, Apr 26, 2017 at 5:10 PM, Andrei Chis 
> wrote:
>
>> Any hints about how to handle Freetype fonts?
>> Right now I'm getting also some segmentation faults when opening on mac
>> an
>> image saved on windows, that seem related to Freetype fonts.
>>
>> On Wed, Apr 26, 2017 at 5:04 PM, p...@highoctane.be 
>> wrote:
>>
>>> You will also face serious fun with Freetype fonts.
>>>
>>> Phil
>>>
>>> On Wed, Apr 26, 2017 at 3:06 PM, Andrei Chis
>>> 
>>> wrote:
>>>
 Hi all,

 I saw that there are a few issues about images saved on an operating
 system not working when opened on other operating systems:
 - https://pharo.fogbugz.com/f/cases/19852/Unable-to-open-ima
 ge-in-OSX-after-it-has-been-updated-in-Windows
 - https://pharo.fogbugz.com/f/cases/19869/Infinite-loop-on-m
 ac-when-opening-an-image-saved-on-windows
 - https://pharo.fogbugz.com/f/cases/19272/Image-freezes-on-L
 inux-if-it-was-previously-saved-on-Windows
 - http://forum.world.st/Image-freezes-on-Linux-if-it-was-pre
 viously-saved-on-Windows-td4903258.html

 I gave the fix in case 19869 a try and with it I can save an image on
 windows and open it on mac, however, there are some side effects.
 First several folders having the following name are created in the
 image
 folder:

 '\Users\andrei\test-image'
 '\Users\andrei\test-image\pharo-local\'
 '\Users\andrei\test-image\pharo-local\ombu-sessions'

 Second, I can only open the image on man once. The second time I get
 the
 following stack:

 [31mPrimitiveFailed: primitive #createDirectory: in WindowsStore failed
 [0mWindowsStore(Object)>>primitiveFailed:
 WindowsStore(Object)>>primitiveFailed
 WindowsStore(DiskStore)>>createDirectory:
 WindowsStore(FileSystemStore)>>ensureCreateDirectory:
 WindowsStore(FileSystemStore)>>ensureCreateDirectory:
 WindowsStore(FileSystemStore)>>ensureCreateDirectory:
 WindowsStore(FileSystemStore)>>ensureCreateDirectory:
 WindowsStore(FileSystemStore)>>ensureCreateDirectory:
 WindowsStore(FileSystemStore)>>ensureCreateDirectory:
 FileSystem>>ensureCreateDirectory:
 FileReference>>ensureCreateDirectory
 OmSessionStore>>resetWithStoreNamed:
 OmSessionStore>>resetWithNextStoreName
 OmSessionStore>>store
 WeakMessageSend>>value
 WeakMessageSend>>cull:
 WeakMessageSend>>cull:cull:
 [ action cull: arg1 cull: announcer ] in LegacyWeakSubscription(WeakAnn
 ouncementSubscription)>>deliver: in Block: [ action cull: arg1 cull:
 announcer ]
 BlockClosure>>on:do:
 BlockClosure>>on:fork:
 LegacyWeakSubscription(WeakAnnouncementSubscription)>>deliver:
 [ tmp4 deliver: arg1 ] in SubscriptionRegistry>>deliver:to:startingAt:
 in Block: [ tmp4 deliver: arg1 ]
 BlockClosure>>ifCurtailed:
 SubscriptionRegistry>>deliver:to:startingAt:
 SubscriptionRegistry>>deliver:to:
 SubscriptionRegistry>>deliver:
 SystemAnnouncer(Announcer)>>announce:
 SystemAnnouncer>>announce:
 SystemAnnouncer>>snapshotDone:
 SessionManager>>snapshot:andQuit:
 [0m

 So it seems that OmSessionStore is not reset and holds a reference to a
 the windows path which it tries to create.

 Cheers,
 Andrei





>>>
>>
>



Re: [Pharo-dev] Mini Pharo -> JavaScript translator?

2017-03-10 Thread H. Hirzel
On 3/10/17, Alexandre Bergel  wrote:
> Hi!
>
> Is there a simple way to translate Pharo code into Javascript?
> There is Pharo JS, but I cannot load it in Pharo 6. There is the amber
> compiler, but I cannot find a version for Pharo.
>
> Amber takes the approach of translating everything into JavaScript,
> including the Smalltalk object model. While this is great for fan of
> bootstrapping images, it produces large javascript code.
>
> Is there a kind of Slang for JavaScript? I am looking for something
> minimal.
>
> Cheers,
> Alexandre


Hello Alexandre


Something like this
https://github.com/ympbyc/LittleSmallscript

or


http://wiki.squeak.org/squeak/5860 which refers to
http://www.squeaksource.com/@xxu3r2Ma7SbqJi3E/1j-SgMCf (74000 downloads).

People have used it successfully.

There is probably a Pharo port.

--Hannes



[Pharo-dev] Helvetia in Pharo?

2017-03-02 Thread H. Hirzel
Hello Doru

On 3/2/17, Tudor Girba  wrote:
.
> That said, I do want to have mechanisms that allow us to embed other
> languages and DSLs in our environment. In this area I prefer the approach
> put forward by Helvetia because it is not invasive and highly flexible (and
> now should even not be expensive to have anymore).

Just wondering what you mean by this.
Could you please elaborate a bit what you mean that it would now be
less expensive to have a Helvetia system in Pharo? The last time it
was implemented was in Pharo 1.1.2 **

Regards
Hannes

**http://scg.unibe.ch/research/helvetia



Re: [Pharo-dev] Understanding Spotter?

2016-01-11 Thread H. Hirzel
Does Pharo include a video player?

--Hannes

On 1/11/16, Stephan Eggermont  wrote:
> On 11-01-16 14:03, H. Hirzel wrote:
>> calls for a static web site  made with Pillar with embedded videos
>> made  to download in off-hours as a zip file and to put in an intranet
>> or distribute through USB...
>>
>> (or even to send by snail mail on an MicroSD card)
>
> Did you hear about that invention by those strange old-fashioned
> smalltalkers called an image? :) Web, puh, that's so 90s
>
> Stephan
>
>
>
>



Re: [Pharo-dev] Understanding Spotter?

2016-01-11 Thread H. Hirzel
On 1/9/16, stepharo  wrote:
> Thanks
> Now is there any chance that we can get a help?
> There are places (like the home of luc where the network is so slow that
> you cannot even think to
> watch something on Youtube :) - not talking about Africa.

calls for a static web site  made with Pillar with embedded videos
made  to download in off-hours as a zip file and to put in an intranet
or distribute through USB...

(or even to send by snail mail on an MicroSD card)

BTW a one page cheat sheet how to use Spotter would be a good thing to have.

--Hannes

> Stef
>
>
>
> Le 9/1/16 22:42, Tudor Girba a écrit :
>> You can find documentation with examples about GTSpotter on the
>> humane-assessment.com blog:
>> https://www.google.com/search?client=safari&rls=en&q=site:humane-assessment.com+gtspotter&ie=UTF-8&oe=UTF-8
>>
>> Specifically about finding Pragma usages, I just added a blog post:
>> http://www.humane-assessment.com/blog/spotting-pragmas-with-gtspotter
>>
>> Cheers,
>> Doru
>>
>>> On Jan 9, 2016, at 11:00 PM, stepharo  wrote:
>>>
>>> Hi
>>>
>>> Is there a help a student or idiot like me can read about how to find
>>> information with Spotter?
>>> For example
>>> We with luc wanted to find all the senders of variableSubclass: we
>>> tried # #senders and more... but gave up.
>>> Yesterday I wanted to find all the user of 
>>>
>>> May be I missed an obvious help that will enlighten me?
>>> I hope.
>>>
>>> Now without such help how can we expect students or users to discover the
>>> way we should
>>> use the tools?
>>>
>>> We were planning to do a video to explain Spotter but I'm slowly thinking
>>> to discard this video
>>> because we do not know.
>>>
>>> Stef
>>>
>> --
>> www.tudorgirba.com
>> www.feenk.com
>>
>> "Value is always contextual."
>>
>>
>>
>>
>>
>>
>
>
>



[Pharo-dev] About loading PetitParser into Pharo 5?

2015-12-31 Thread H. Hirzel
Hello

PetitParser (in Catalog) does not load yet in Pharo 5. It is tagged
with 'Pharo 4'.

The feedback message is that the installation was aborted.

Where can I check why it has been aborted?

Kind regards

Hannes



Re: [Pharo-dev] [ANN] Multiple Desktop support for Pharo 5

2015-12-21 Thread H. Hirzel
Hello Torsten

the desktops are named

'Desktop 1'
'Desktop 2'
'Desktop 3'.

Is it possible to change these names?

Regards
Hannes

On 8/27/15, Torsten Bergmann  wrote:
> Julien Delplanque provided this week a goodie to switch between
> "desktops" - but his initial solution was more or less hiding windows
> and not really switching between real Pharo worlds/desktops.
>
> I gave him some tips what could be done on the pharo-user list. Havent
> heard
> from him afterwards.
>
> Now I was able to spend a few hours on this topic myself and implemented
> a full multiple desktop solution myself.
>
> This works in Pharo 5 only (currently) and requires latest VM (at least on
> Windows)
> from files.pharo.org to get the keyboard shortcuts right.
>
> To try:
>
>   Gofer new
> smalltalkhubUser: 'TorstenBergmann' project: 'DesktopManager';
> configuration;
> loadDevelopment.
>
> The goodie has some nice features like keyboard navigation, world menu
> integration and even a custom spotter with preview of the desktops.
>
> Quick start:
> ===
>  - evaluate the above expression in a Pharo 5 image
>  - check the world menu "Desktop"
>  - you can press CTRL + D and then CTRL + A (= Desktop Add) to add a new
> desktop
>  - you can press CTRL + D and then CTRL + D (= Desktop Desktop) to open the
> overview
>  - you can press CTRL + D and then CTRL + P (= Desktop Previous) to navigate
> to the previous desktop
>  - you can press CTRL + D and then CTRL + N (= Desktop Next) to navigate to
> the next desktop
>
> The code is hopefully a good example on how to build a custom spotter,
> shortcuts, inspector extensions, ...
> Additionally all this is described in a new article including screenshots
> and a guide on how to use this new goodie:
>
>https://medium.com/@astares/multiple-desktops-for-pharo-5cbc46f3179f
>
> Actually the article took more time to write than coding but I hope
> it helps explaining Pharo and why it is a power tool.
>
> Project is on
> http://www.smalltalkhub.com/#!/~TorstenBergmann/DesktopManager
> Article and code is still subject to change.
>
> Have fun
> T.



Re: [Pharo-dev] Fuel materialization on spur

2015-12-16 Thread H. Hirzel
Is there a Pharo implementation? https://avro.apache.org/docs/1.2.0/

On 12/16/15, Robert Withers  wrote:
> Please consider Avro.
>
> robert
>
> On 12/16/2015 08:58 AM, H. Hirzel wrote:
>> If you want to move data to Java then you probably go for JSON or  a
>> particuar XML format.
>>
>> On 12/16/15, H. Hirzel  wrote:
>>> No, it is a Smalltalk format.
>>>
>>> On 12/16/15, Denis Kudriashov  wrote:
>>>> 2015-12-16 14:41 GMT+01:00 H. Hirzel :
>>>>
>>>>> It probably should be noted here as well that
>>>>>
>>>>> http://pharo.gemtalksystems.com/book/PharoTools/SIXX/
>>>>>
>>>> Just to know does java implementation  exists?
>>>>
>
> --
> . .. .. ^,^ best, robert
>
>



Re: [Pharo-dev] Fuel materialization on spur

2015-12-16 Thread H. Hirzel
If you want to move data to Java then you probably go for JSON or  a
particuar XML format.

On 12/16/15, H. Hirzel  wrote:
> No, it is a Smalltalk format.
>
> On 12/16/15, Denis Kudriashov  wrote:
>> 2015-12-16 14:41 GMT+01:00 H. Hirzel :
>>
>>> It probably should be noted here as well that
>>>
>>> http://pharo.gemtalksystems.com/book/PharoTools/SIXX/
>>>
>>
>> Just to know does java implementation  exists?
>>
>



Re: [Pharo-dev] Fuel materialization on spur

2015-12-16 Thread H. Hirzel
No, it is a Smalltalk format.

On 12/16/15, Denis Kudriashov  wrote:
> 2015-12-16 14:41 GMT+01:00 H. Hirzel :
>
>> It probably should be noted here as well that
>>
>> http://pharo.gemtalksystems.com/book/PharoTools/SIXX/
>>
>
> Just to know does java implementation  exists?
>



Re: [Pharo-dev] Fuel materialization on spur

2015-12-16 Thread H. Hirzel
It probably should be noted here as well that

http://pharo.gemtalksystems.com/book/PharoTools/SIXX/
(Smalltalk Instance eXchange in XML)
http://www.mars.dti.ne.jp/~umejava/smalltalk/sixx/index.html

allows to transfer data from one image version to another image
version / Smalltalk dialect.

The format is useful for long-term storage. It is actively maintained.

--Hannes

On 12/16/15, Mariano Martinez Peck  wrote:
> On Wed, Dec 16, 2015 at 10:17 AM, Sven Van Caekenberghe 
> wrote:
>
>> OK, thanks for the explanation, good to hear it.
>>
>> (But, just nitpicking, it still does not say officially 'you can safely
>> save your data in Fuel format and rest assured that you will always be
>> able
>> to read it back').
>>
>>
> No,  I can't say that (at least myself). It does mean it's not possible, it
> simply means that it will take some time to make it work and so if nobody
> does it, it won't work.
>
> However, note that the efforts seem to have been much smaller than years
> ago. For example, with very little changes, it's likely we could have
> manage automatically from Pharo 3.0 until now.
>
>
>> (Also, if there are compatibility problems between Pharo versions
>> (understandably Pharo's doing), how can there be compatibility with other
>> Smalltalk implementation, not that I expect any, but again, what is the
>> official word ?)
>>
>
> There is none compatibility with other Smalltalk versions in the sense that
> a serialized stream in one st could be materialized in another st.
>
> However, note that what we DO support is that Fuel works in every possible
> version of Pharo and in a wide range of latest squeak images.
>
>
>>
>> > On 16 Dec 2015, at 14:10, Mariano Martinez Peck 
>> wrote:
>> >
>> > Hi guys,
>> >
>> > I would like to say a couple of things:
>> >
>> > 1) Fuel format: Sven is right in the sense that Fuel has problems of
>> migrating to another Fuel version. However there is some explanation
>> needed here. Previously (years ago), a given Fuel version was not
>> compatible with previous versions because we were still
>> changing/improving
>> what we call Fuel format, that is, basically, how objects are written and
>> read from the stream. We have stopped with those optimization/changes
>> years
>> ago. So the "Fuel format" has been stable so far for a couple of years.
>> >
>> > 2) Fuel gets in the internals:  In Pharo 4.0 Fuel was not compatible
>> with Fuel from 3.0. I don't remember the exact detail but it was a change
>> in Pharo's Date (or DateAndTime I cannot remember).  Now the version that
>> should work in 5.0 changes the Characater serialization. What I want to
>> make clear here is that it's NOT that we are changing the fuel format 1)
>> as
>> years ago when Fuel as still evolving from this point of view. It's Pharo
>> changes that make our incompatibility. But that doesn't mean we cannot
>> fix
>> it.
>> >
>> > 3) Yes, compromises for speed: I think that both examples that break
>> compatibility in 4.0 (Date / DateAndTime change) and in 5.0 with Spur
>> (Character) is because we target speed. We do have special clusters for
>> both of those cases (Date and Character), and so, we get into it's
>> internals for performance reasons. If the internals change, then we
>> break.
>> This is why a text serializer for example may simply not break, because
>> it
>> continues using text representation that might not have been affected by
>> the underlaying internal representation.
>> >
>> > We will try to do a Pharo 40 - Pharo 5.0 (or spur actually)
>> compatibility.
>> >
>> > Best,
>> >
>> >
>> > On Wed, Dec 16, 2015 at 9:49 AM, Sven Van Caekenberghe 
>> wrote:
>> >
>> > > On 16 Dec 2015, at 13:46, Denis Kudriashov 
>> wrote:
>> > >
>> > > Hi.
>> > >
>> > > 2015-12-16 13:33 GMT+01:00 Sven Van Caekenberghe :
>> > > > On 16 Dec 2015, at 13:24, Clément Bera 
>> wrote:
>> > > >
>> > > > I don't know if SqueakV3 - Spur32 support is needed, however, I
>> think it is really important to be able to serialize and materialize
>> objects between 32 bits spur images and 64bits spur images.
>> > >
>> > > I don't know.
>> > >
>> > > Yes it would be nice, but since Fuel cannot even exchange data
>> > > between
>> different version itself (If I understand the situation correctly), why
>> should that have to work ?
>> > >
>> > > It is needed to use fuel as communication format between services
>> which run on different platforms. For example you can exchange data
>> between
>> 64bits server and 32bits android phone.
>> >
>> > What you want might not be the same to what it was designed for.
>> >
>> > I might be wrong, but that is how I understood it from discussion in
>> > the
>> past when moving data from one fuel version to another.
>> >
>> > Let's see what the Fuel guys have to say about this.
>> >
>> >
>> >
>> > --
>> > Mariano
>> > http://marianopeck.wordpress.com
>>
>>
>>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>



Re: [Pharo-dev] [Cuis] Sorting Unicode strings (Re: [Unicode] collation sequences (Re: [squeak-dev] Unicode Support))

2015-12-15 Thread H. Hirzel
On 12/15/15, Ben Coman  wrote:
> On Thu, Dec 10, 2015 at 12:37 AM, Todd Blanchard 
> wrote:
>> They are practically the same thing.
>>
>> ICU was developed by Taligent which was a joint venture between Apple and
>> IBM.  Makes sense that NSString and ICU's UnicodeString are pretty close
>> in implementation.  ICU was also ported to Java for Sun by IBM.  The point
>> is - this is a very elaborate chunk of code with far reach. If ICU is
>> wrong on some point - it is universally wrong and thus likely to be taken
>> as "right" as it is at least consistent.  I think re-implementing it is
>> folly TBH.  Just use it.
>
> Apple seem to have moved on from NSString to support Unicode in a
> different way in Switft...

Could you please give some more details?

I have read
https://www.objc.io/issues/9-strings/unicode/#nsstring-and-unicode
so far.

It says that an NSString object actually represents an array of
UTF-16-encoded code units.

This in contrast to Squeak / Pharo where a String is an
ArrayedCollection of 21 bit Unicode code points (transparently
optimizing to a ByteArray if the string only contains values of the
first code page).


>>
>>> On Dec 8, 2015, at 15:52, EuanM  wrote:
>>>
>>> Equally old are the NextStep Object C functions which are now embodied
>>> within MacOS X.
>>>
>>
>>
>
>



Re: [Pharo-dev] Unicode Support // e acute example --> decomposition in Pharo?

2015-12-10 Thread H. Hirzel
Hello Sven

On 12/9/15, Sven Van Caekenberghe  wrote:

> The simplest example in a common language is (the French letter é) is
>
> LATIN SMALL LETTER E WITH ACUTE [U+00E9]
>
> which can also be written as
>
> LATIN SMALL LETTER E [U+0065] followed by COMBINING ACUTE ACCENT [U+0301]
>
> The former being a composed normal form, the latter a decomposed normal
> form. (And yes, it is even much more complicated than that, it goes on for
> 1000s of pages).
>
> In the above example, the concept of character/string is indeed fuzzy.
>
> HTH,
>
> Sven

Thanks for this example. I have created a wiki page with it

I wonder what the Pharo equivalent is of the following Squeak expression

$é asString asDecomposedUnicode

Regards

Hannes



Re: [Pharo-dev] Unicode Support

2015-12-09 Thread H. Hirzel
See example with ANGSTROM

Abstract Characters (Unicode)
http://wiki.squeak.org/squeak/6256



On 12/9/15, Guillermo Polito  wrote:
>
>> On 8 dic 2015, at 10:07 p.m., EuanM  wrote:
>>
>> "No. a codepoint is the numerical value assigned to a character. An
>> "encoded character" is the way a codepoint is represented in bytes
>> using a given encoding."
>>
>> No.
>>
>> A codepoint may represent a component part of an abstract character,
>> or may represent an abstract character, or it may do both (but not
>> always at the same time).
>>
>> Codepoints represent a single encoding of a single concept.
>>
>> Sometimes that concept represents a whole abstract character.
>> Sometimes it represent part of an abstract character.
>
> Well. I do not agree with this. I agree with the quote.
>
> Can you explain a bit more about what you mean by abstract character and
> concept?
>
>>
>> This is the key difference between Unicode and most character encodings.
>>
>> A codepoint does not always represent a whole character.
>>
>> On 7 December 2015 at 13:06, Henrik Johansen
>>  wrote:
>>>
>>> On 07 Dec 2015, at 1:05 , EuanM  wrote:
>>>
>>> Hi Henry,
>>>
>>> To be honest, at some point I'm going to long for the for the much
>>> more succinct semantics of healthcare systems and sports scoring and
>>> administration systems again.  :-)
>>>
>>> codepoints are any of *either*
>>> - the representation of a component of an abstract character, *or*
>>> eg. "A" #(0041) as a component of
>>> - the sole representation of the whole of an abstract character *or* of
>>> -  a representation of an abstract character provided for backwards
>>> compatibility which is more properly represented by a series of
>>> codepoints representing a composed character
>>>
>>> e.g.
>>>
>>> The "A" #(0041) as a codepoint can be:
>>> the sole representation of the whole of an abstract character "A"
>>> #(0041)
>>>
>>> The representation of a component of the composed (i.e. preferred)
>>> version of the abstract character Å #(0041 030a)
>>>
>>> Å (#00C5) represents one valid compatibility form of the abstract
>>> character Å which is most properly represented by #(0041 030a).
>>>
>>> Å (#212b) also represents one valid compatibility form of the abstract
>>> character Å which is most properly represented by #(0041 030a).
>>>
>>> With any luck, this satisfies both our semantic understandings of the
>>> concept of "codepoint"
>>>
>>> Would you agree with that?
>>>
>>> In Unicode, codepoints are *NOT* an abstract numerical representation
>>> of a text character.
>>>
>>> At least not as we generally understand the term "text character" from
>>> our experience of non-Unicode character mappings.
>>>
>>>
>>> I agree, they are numerical representations of what Unicode refers to as
>>> characters.
>>>
>>>
>>> codepoints represent "*encoded characters*"
>>>
>>>
>>> No. a codepoint is the numerical value assigned to a character. An
>>> "encoded
>>> character" is the way a codepoint is represented in bytes using a given
>>> encoding.
>>>
>>> and "a *text element* ...
>>> is represented by a sequence of one or more codepoints".  (And the
>>> term "text element" is deliberately left undefined in the Unicode
>>> standard)
>>>
>>> Individual codepoints are very often *not* the encoded form of an
>>> abstract character that we are interested in.  Unless we are
>>> communicating to or from another system  (Which in some cases is the
>>> Smalltalk ByteString class)
>>>
>>>
>>>
>>>
>>> i.e. in other words
>>>
>>> *Some* individual codepoints *may* be a representation of a specific
>>> *abstract character*, but only in special cases.
>>>
>>> The general case in Unicode is that Unicode defines (a)
>>> representation(s) of a Unicode *abstract character*.
>>>
>>> The Unicode standard representation of an abstract character is a
>>> composed sequence of codepoints, where in some cases that sequence is
>>> as short as 1 codepoint.
>>>
>>> In other cases, Unicode has a compatibility alias of a single
>>> codepoint which is *also* a representation of an abstract character
>>>
>>> There are some cases where an abstract character can be represented by
>>> more than one single-codepoint compatibility codepoint.
>>>
>>> Cheers,
>>> Euan
>>>
>>>
>>> I agree you have a good grasp of the distinction between an abstract
>>> character (characters and character sequences which should be treated
>>> equivalent wrt, equality / sorting / display, etc.) and a character
>>> (which
>>> each have a code point assigned).
>>> That is besides the point both Sven and I tried to get through, which is
>>> the
>>> difference between a code point and the encoded form(s) of said code
>>> point.
>>> When you write:
>>> "and therefore encodable in UTF-8 as compatibility codepoint e9 hex
>>> and as the composed character #(0065 00b4) (all in hex) and as the
>>> same composed character as both
>>> #(feff 0065 00b4) and #(ffef 0065 00b4) when endianness markers are
>>> included"
>>>
>>> I's quite clear you confuse the 

Re: [Pharo-dev] Sorting Unicode strings (Re: [Unicode] collation sequences (Re: [squeak-dev] Unicode Support))

2015-12-07 Thread H. Hirzel
Thank you for the answers about the sorting sequence. I was just
wondering about something like

Ą̈ or ḁ̈

As it is a collation order given by the Unicode consortium let's take it as is.

--Hannes

On 12/8/15, Max Leske  wrote:
>
>> On 07 Dec 2015, at 23:58, Ben Coman  wrote:
>>
>> On Tue, Dec 8, 2015 at 3:54 AM, H. Hirzel 
>> wrote:
>>> Hello
>>>
>>> According to http://www.unicode.org/cldr/charts/27/collation/de.html the
>>> German
>>> phonebook sort order is
>>>
>>> a A ä Ä ą̈ Ą̈ ǟ Ǟ ạ̈ Ạ̈ ḁ̈ Ḁ̈ b B c C d D e E f F g G h H i I j J k K
>>> l L m M n N o O ö Ö ǫ̈ Ǫ̈ ȫ Ȫ ơ̈ Ơ̈ ợ̈ Ợ̈ ọ̈ Ọ̈ p P q Q r R s S ss ß t
>>> T u U ü Ü ǘ Ǘ ǜ Ǜ ǚ Ǚ ų̈ Ų̈ ǖ Ǖ ư̈ Ư̈ ự̈ Ự̈ ụ̈ Ụ̈ ṳ̈ Ṳ̈ ṷ̈ Ṷ̈ ṵ̈ Ṵ̈ v
>>> V w W x X y Y z Z
>>>
>>> I wonder why it looks like this. A lot of characters which never
>>> appear in a German text.
>>
>> Foreign residents?
>> cheers -ben
>
> There are lot of turkish and eastern european names in the german phone
> book, yes.
>
>>
>>>
>>> For Spanish there is 'traditional' and 'standard'
>>>
>>> http://www.unicode.org/cldr/charts/27/collation/es.html
>>>
>>> standarda A á Á b B c C d D e E é É f F g G h H i I í Í j J k K l
>>> L m
>>> M n N ñ Ñ ņ̃ Ņ̃ ṇ̃ Ṇ̃ ṋ̃ Ṋ̃ ṉ̃ Ṉ̃ o O ó Ó p P q Q r R s S t T u U ú Ú
>>> ü Ü v V w W x X y Y z Z
>>>
>>> traditional a A á Á b B c C ch Ch CH cĥ Cĥ CĤ cȟ Cȟ CȞ cḧ Cḧ CḦ cḣ
>>> Cḣ
>>> CḢ cḩ Cḩ CḨ cḥ Cḥ CḤ cḫ Cḫ CḪ cẖ Cẖ d D e E é É f F g G h H i I í Í j
>>> J k K l L ll Ll LL lĺ Lĺ LĹ lľ Lľ LĽ lļ Lļ LĻ lḷ Lḷ LḶ lḹ Lḹ LḸ lḽ Lḽ
>>> LḼ lḻ Lḻ LḺ m M n N ñ Ñ ņ̃ Ņ̃ ṇ̃ Ṇ̃ ṋ̃ Ṋ̃ ṉ̃ Ṉ̃ o O ó Ó p P q Q r R s
>>> S t T u U ú Ú ü Ü v V w W x X y Y z Z
>>>
>>> And French is not easily found
>>> http://www.unicode.org/cldr/charts/27/collation/index.html
>>> or seems to be defined elsewhere
>>>
>>> http://unicode.org/repos/cldr/tags/release-27/common/collation/fr.xml
>>>
>>> Suggestions and hints are welcome
>>>
>>> --Hannes
>
>
>


Re: [Pharo-dev] ANSICompatibility package

2015-09-08 Thread H. Hirzel
Jan,

have a look at

http://wiki.squeak.org/squeak/3172

ca 2800 tests

First thing to do would be to do an quick analysis of the porting effort.

The question is why do not need a ANSI compatibility package.

Grease
http://www.smalltalkhub.com/#!/~Seaside/Grease11
is also an issue to look into for creating portable code.

In the end the incompatible methods in Pharo are often not all that many.

This means that  what you mention as 'quick and dirty' is actually
quite a  good approach: You test the Smalltalk platform you are using
for the availability of certain methods and act accordingly.


--Hannes

On 9/8/15, Jan Vrany  wrote:
> On Tue, 2015-09-08 at 12:04 +0800, Ben Coman wrote:
>> On Tue, Sep 8, 2015 at 9:21 AM, Jan Vrany 
>> wrote:
>> > Hi,
>> >
>> > is there actually such a thing like ANSICompatibility package?
>> > (it has been mentioned here lately, but I cannot find it)
>> >
>> > Thanks, Jan
>> >
>>
>> I made it up for the purpose of discussion to see what interest it
>> generated.
>> Should we start one ?
>
> Well, let's put it this way: if there would be one, I'd use it and even
> contribute adding missing stuff. But I certainly have no time to start
> yet another project, having way too much on my plate already.
>
> So `(passes respondsTo: #removeAtIndex:) ifTrue:[...]` would do it.
> Quick and dirty, but no time and desire to fight Pharo :-)
>
> Cheers, Jan
>
>> cheers -ben
>>
>
>



Re: [Pharo-dev] Garage-OpenDBX does not load on Pharo 50 because it uses Timestamp

2015-09-02 Thread H. Hirzel
On 9/2/15, Marcus Denker  wrote:
>
>> On 02 Sep 2015, at 12:32, stepharo  wrote:
>>
>> Hi guille
>>
>> there is not stress. I just wanted to let you know.
>> I was wondering if just subclassing DateAndTime would not be enough for
>> now.
>
> Yes, as far as I remember Timestamp was just an empy subclass.
>
> We could:
>
> -> add it back to Deprecated50 or maybe even to a “Compatibility” package
 +1
> -> Write a Quality Check rule.
>
>> I will go back to code with Pharo 40
>>
>> stef
>>
>> Le 2/9/15 10:30, Guillermo Polito a écrit :
>>> If somebody can check it and fix it it would be good :). I've just
>>> started my new job and my evenings are busy looking for an apartment or
>>> staying in a hostel without a proper internet connection...
>>>
>>> If not, I think we can wait a bit. The first step should be enabling CI
>>> jobs for pharo5. Also, I do not think the intersection between 'people
>>> using garage opendbx' and 'people using pharo5' is that big to justify a
>>> rush.
>>>
>>> Guille
>>>
>>> El mié., 2 de sept. de 2015 a la(s) 10:12 a. m., stepharo
>>> mailto:steph...@free.fr>> escribió:
>>> for your info...
>>>
>>>  Garage-OpenDBX does not load on Pharo 50 because it uses Timestamp
>>>
>>> Stef
>>>
>>
>
>



Re: [Pharo-dev] Garage-OpenDBX does not load on Pharo 50 because it uses Timestamp

2015-09-02 Thread H. Hirzel
On 9/2/15, Sven Van Caekenberghe  wrote:
> But Timestamp was already removed completely from 4.0, why re-add it, even
> deprecated ?

Because it will be added in a compatibility layer package which is
only loaded by packages which need it. There might be other things in
the Pharo 5/4 compatibility package.

--HH

> I am sure many external packages are already modified, I know I did it for
> mine.

>> On 02 Sep 2015, at 13:19, Marcus Denker  wrote:
>>
>>
>>> On 02 Sep 2015, at 12:32, stepharo  wrote:
>>>
>>> Hi guille
>>>
>>> there is not stress. I just wanted to let you know.
>>> I was wondering if just subclassing DateAndTime would not be enough for
>>> now.
>>
>> Yes, as far as I remember Timestamp was just an empy subclass.
>>
>> We could:
>>
>> -> add it back to Deprecated50 or maybe even to a “Compatibility” package
>> -> Write a Quality Check rule.
>>
>>> I will go back to code with Pharo 40
>>>
>>> stef
>>>
>>> Le 2/9/15 10:30, Guillermo Polito a écrit :
 If somebody can check it and fix it it would be good :). I've just
 started my new job and my evenings are busy looking for an apartment or
 staying in a hostel without a proper internet connection...

 If not, I think we can wait a bit. The first step should be enabling CI
 jobs for pharo5. Also, I do not think the intersection between 'people
 using garage opendbx' and 'people using pharo5' is that big to justify a
 rush.

 Guille

 El mié., 2 de sept. de 2015 a la(s) 10:12 a. m., stepharo
  escribió:
 for your info...

  Garage-OpenDBX does not load on Pharo 50 because it uses Timestamp

 Stef

>>>
>>
>
>
>



Re: [Pharo-dev] Removing name from Object

2015-09-01 Thread H. Hirzel
On 9/1/15, stepharo  wrote:
> Hi guys
>
> I would love to see name removed from Object. It brings more problems
> than anything else.
> Any taker?
>
> Stef
>
>



Hi Stef

About

Object>>
name
"Answer a name for the receiver.  This is used generically in the
title of certain inspectors, such as the referred-to inspector, and
specificially by various subsystems.  By default, we let the object
just print itself out..  "

^ self printString


Are you refering to this

http://comments.gmane.org/gmane.comp.lang.smalltalk.pharo.user/21476?

Which other kinds of problems do you see with this method?

Could you elaborate a bit please why you want to remove Object>>name?

Regards

Hannes



Re: [Pharo-dev] [ANN] Multiple Desktop support for Pharo 5

2015-08-27 Thread H. Hirzel
Julien,

could you please describe the problem you had in Pharo 4.0 with more details?

--Hannes

On 8/27/15, Julien Delplanque  wrote:
>
>
> On 27/08/15 11:42, H. Hirzel wrote:
>> On 8/27/15, Torsten Bergmann  wrote:
>>> Hi Julien,
>>>
>>> sorry for "hijacking" the topic. But I got some time left while
>>> traveling
>>> allowing me to put my recommended puzzle pieces together myself and as I
>>> wrote the code was less time consuming compared to the article. The
>>> article
>>>
>>> should help others to investigate in the goodies code and learn how to
>>> do
>>> own
>>> inspector extensions, spotter models, ... in recent Pharo now. If there
>>> is
>>> something wrong with the implementation feel free to send me
>>> comments/corrections.
>>>
>>> Also note that the project on STHub is open for commits, so if you find
>>> something
>>> missing please add it. I would like to keep the "multiple desktops"
>>> metaphor
>>> instead of "multiple worlds" as it better fits what people know and
>>> expect.
>> +1
>>
>>> Additional info:
>>> 
>>> Meanwhile the job run that checks the configurations for the Catalog
>>> Browser.
>>> So in a fresh and updated Pharo 5 image you can just:
>>>
>>>   - hit SHIFT + ENTER to open the default Spotter
>>>   - enter "DesktopManager" as a search term to find the project
>>> automagically
>>>   - hit enter to load it
>>>
>>> So there is no need to rember cumbersome Gofer scripts anymore. Just
>>> type
>>> and go.
>>>
>>> After loading you can use the tool as written before:
>>>
>>>   - check the world menu "Desktop"
>>>   - you can press CTRL + D and then CTRL + A (= Desktop Add) to add a
>>> new
>>> desktop
>>>   - you can press CTRL + D and then CTRL + D (= Desktop Desktop) to open
>>> the
>>> overview (custom spotter for desktop selection)
>>>   - you can press CTRL + D and then CTRL + P (= Desktop Previous) to
>>> navigate
>>> to the previous desktop
>>>   - you can press CTRL + D and then CTRL + N (= Desktop Next) to navigate
>>> to
>>> the next desktop
>>>
>>> You can also use the world menu (see another screenshot attached).
>>>
>>> Hope it will become useful to others as well. We should have cared
>>> already
>>> back in 2010/2011 when
>>> Jochen and Sean raised the issue. On the other side with the nice
>>> moldable
>>> GT tools introduced now
>>> in Pharo 4/5 it was really easy to implement.
>> Does this mean that it is available in Pharo 4 as well?
>>
>>
> I tried it on pharo 4 and it doesn't works, it has the same problem as
> the one I had when implementing my version.
>
> Julien
>



Re: [Pharo-dev] [ANN] Multiple Desktop support for Pharo 5

2015-08-27 Thread H. Hirzel
On 8/27/15, Torsten Bergmann  wrote:
> Hi Julien,
>
> sorry for "hijacking" the topic. But I got some time left while traveling
> allowing me to put my recommended puzzle pieces together myself and as I
> wrote the code was less time consuming compared to the article. The article
>
> should help others to investigate in the goodies code and learn how to do
> own
> inspector extensions, spotter models, ... in recent Pharo now. If there is
> something wrong with the implementation feel free to send me
> comments/corrections.
>
> Also note that the project on STHub is open for commits, so if you find
> something
> missing please add it. I would like to keep the "multiple desktops"
> metaphor
> instead of "multiple worlds" as it better fits what people know and expect.

+1

>
> Additional info:
> 
> Meanwhile the job run that checks the configurations for the Catalog
> Browser.
> So in a fresh and updated Pharo 5 image you can just:
>
>  - hit SHIFT + ENTER to open the default Spotter
>  - enter "DesktopManager" as a search term to find the project
> automagically
>  - hit enter to load it
>
> So there is no need to rember cumbersome Gofer scripts anymore. Just type
> and go.
>
> After loading you can use the tool as written before:
>
>  - check the world menu "Desktop"
>  - you can press CTRL + D and then CTRL + A (= Desktop Add) to add a new
> desktop
>  - you can press CTRL + D and then CTRL + D (= Desktop Desktop) to open the
> overview (custom spotter for desktop selection)
>  - you can press CTRL + D and then CTRL + P (= Desktop Previous) to navigate
> to the previous desktop
>  - you can press CTRL + D and then CTRL + N (= Desktop Next) to navigate to
> the next desktop
>
> You can also use the world menu (see another screenshot attached).
>
> Hope it will become useful to others as well. We should have cared already
> back in 2010/2011 when
> Jochen and Sean raised the issue. On the other side with the nice moldable
> GT tools introduced now
> in Pharo 4/5 it was really easy to implement.

Does this mean that it is available in Pharo 4 as well?

> Thanks
> T.
>
>> Gesendet: Donnerstag, 27. August 2015 um 07:52 Uhr
>> Von: "Julien Delplanque" 
>> An: "Torsten Bergmann" , "Pharo Development List"
>> , "Any question about pharo is welcome"
>> 
>> Betreff: Re: [ANN] Multiple Desktop support for Pharo 5
>>
>> Hi,
>>
>> I was actually implementing this feature using your advices :
>> https://github.com/juliendelplanque/multiworlds.
>>
>> But yours looks better anyway.
>>
>> Julien
>>
>> On 27/08/15 03:19, Torsten Bergmann wrote:
>> > Julien Delplanque provided this week a goodie to switch between
>> > "desktops" - but his initial solution was more or less hiding windows
>> > and not really switching between real Pharo worlds/desktops.
>> >
>> > I gave him some tips what could be done on the pharo-user list. Havent
>> > heard
>> > from him afterwards.
>> >
>> > Now I was able to spend a few hours on this topic myself and
>> > implemented
>> > a full multiple desktop solution myself.
>> >
>> > This works in Pharo 5 only (currently) and requires latest VM (at least
>> > on Windows)
>> > from files.pharo.org to get the keyboard shortcuts right.
>> >
>> > To try:
>> >
>> >Gofer new
>> >  smalltalkhubUser: 'TorstenBergmann' project: 'DesktopManager';
>> >  configuration;
>> >  loadDevelopment.
>> >
>> > The goodie has some nice features like keyboard navigation, world menu
>> > integration and even a custom spotter with preview of the desktops.
>> >
>> > Quick start:
>> > ===
>> >   - evaluate the above expression in a Pharo 5 image
>> >   - check the world menu "Desktop"
>> >   - you can press CTRL + D and then CTRL + A (= Desktop Add) to add a
>> > new desktop
>> >   - you can press CTRL + D and then CTRL + D (= Desktop Desktop) to open
>> > the overview
>> >   - you can press CTRL + D and then CTRL + P (= Desktop Previous) to
>> > navigate to the previous desktop
>> >   - you can press CTRL + D and then CTRL + N (= Desktop Next) to
>> > navigate to the next desktop
>> >
>> > The code is hopefully a good example on how to build a custom spotter,
>> > shortcuts, inspector extensions, ...
>> > Additionally all this is described in a new article including
>> > screenshots
>> > and a guide on how to use this new goodie:
>> >
>> >
>> > https://medium.com/@astares/multiple-desktops-for-pharo-5cbc46f3179f
>> >
>> > Actually the article took more time to write than coding but I hope
>> > it helps explaining Pharo and why it is a power tool.
>> >
>> > Project is on
>> > http://www.smalltalkhub.com/#!/~TorstenBergmann/DesktopManager
>> > Article and code is still subject to change.
>> >
>> > Have fun
>> > T.
>>
>>



Re: [Pharo-dev] [Moose-dev] Re: Getting some tag in an HTML file

2015-08-13 Thread H. Hirzel
http://ss3.gemtalksystems.com/ss/Tabular.html

contains an application example of a SAX parser. You only pick what is
of interest.

On 8/14/15, Vincent Blondeau  wrote:
>  Hi,
>
> Look at the class side, there is the method parse: namespace: validation: .
> call this method instead of parse: with false in the two last arguments. It
> should work.
>
> Anyway, you should use the sax parser. It is faster and memory less
> consuming. It is very simple to get only one tag.
>
> Cheers
> Vincent
>
> Le 14 août 2015 01:31, Alexandre Bergel  a écrit :
>>
>> Hi!
>>
>> Together with Nicolas we are trying to get all the  … 
>> from html files.
>> We have tried to use XMLDOMParser, but many webpages are actually not well
>> formed, therefore the parser is complaining.
>>
>> Anyone has tried to get some particular tags from HTML files? This looks
>> like a classical thing to do. Maybe some of you have done it.
>> Is there a way to configure the parser to accept a broken XML/HTML
>> content?
>>
>> Cheers,
>> Alexandre
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>> ___
>> Moose-dev mailing list
>> moose-...@iam.unibe.ch
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> ___
> Moose-dev mailing list
> moose-...@iam.unibe.ch
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>



Re: [Pharo-dev] [Moose-dev] Re: GanttChartMorph openOn: aCollectionOfActivities ?

2015-08-03 Thread H. Hirzel
This worked fine. The code is very readable and easy to adapt once
there is an example. Thank you.

--Hannes

On 8/1/15, Alexandre Bergel  wrote:
> Sure, this is easy. Axis supports a method called #labelConversion: [
> :aNumericalValue | … ]
> You need to provide a bloc that returns a string.
>
> For example:
>
>
>
>   | data b s |
>   data := #(#(c1 0 5) #(c1 6 8) #(c2 0 5) #(c2 8 10) #(c3 0 10) #(c4 5 10)
> #(c5 5 8)).
>
>   b := RTTimeline new.
>   
>   s := RTTimelineSet new.
>   s objects: data.
>   s lineIdentifier: #first.
>   s start: #second.
>   s end: #third.
>   b add: s.
>   
>   b axisY
>   title: 'Task'.
>   b axisX
>   numberOfLabels: 10;
>   title: 'Week day';
>   labelConversion: [ :v | v \\ 7 + 1 ].
>   
>   b build.
>   ^ b view
>
> Does this help?
>
> Cheers,
> Alexandre
>
>
>
>> On Aug 1, 2015, at 12:48 AM, H. Hirzel  wrote:
>>
>> The SVG export accessible through the '...' menu works fine.
>>
>> A new question regarding the labeling of the x-axis.
>>
>> How do I specify that I want to see months
>>
>>8  9   10  11  12
>>
>> only?
>>
>> data := #( #(WP1 8 12)  #(WP2 8 10) #(WP3 10 11)
>> #(WP4 11 12)
>>
>>
>>
>> And is something like this possible?
>>
>>
>>8  9   10  11  12  1   2   3   4
>>
>>
>> --Hannes
>>
>>
>> On 7/31/15, Alexandre Bergel  wrote:
>>> The ‘…’ button, top right of a GTInspector that is showing a Roassal
>>> visualization.
>>>
>>> https://dl.dropboxusercontent.com/u/31543901/TMP/Screen%20Shot%202015-07-30%20at%2012.33.23%20PM.png
>>>
>>> Alexandre
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>> On Jul 30, 2015, at 2:25 PM, H. Hirzel  wrote:
>>>>
>>>> Which menu? Could you describe it verbally please where to click? The
>>>> picture did not come through.
>>>>
>>>> --Hannes
>>>>
>>>> On 7/30/15, Alexandre Bergel  wrote:
>>>>> Simply use the menu:
>>>>>
>>>>>
>>>>> Cheers,
>>>>> Alexandre
>>>>>
>>>>> --
>>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>>> Alexandre Bergel  http://www.bergel.eu
>>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>>
>>>>>
>>>>>
>>>>>> On Jul 30, 2015, at 11:59 AM, H. Hirzel 
>>>>>> wrote:
>>>>>>
>>>>>> Alexandre,
>>>>>>
>>>>>> This is really agile ... version 1005 of Roassal loaded and version
>>>>>> 305 of Trachel :-)
>>>>>>
>>>>>> The GANTT chart works fine, see screen shot.
>>>>>>
>>>>>> How do I export it as SVG code in Roassal?
>>>>>>
>>>>>> --Hannes
>>>>>>
>>>>>> On 7/29/15, Alexandre Bergel  wrote:
>>>>>>> Pure agile development: the latest version is the one that count.
>>>>>>> You need to update two packages: Roassal2 and Trachel.
>>>>>>>
>>>>>>> Cheers,
>>>>>>> Alexandre
>>>>>>> --
>>>>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>>>>> Alexandre Bergel  http://www.bergel.eu
>>>>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> On Jul 29, 2015, at 3:24 PM, H. Hirzel 
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Or a configuration? Which one?
>>>>>>>>
>>>>>>>> --HH
>>>>>>>>
>>>>>>>> On 7/29/15, H. Hirzel  wrote:
>>>>>>>>> Thanks for the updated GANTT script.
>>>>>>>>>
>>>>>>>>> My question was about the version of Roassal to load.
>>>>>>>>>
>>>>>>>>

Re: [Pharo-dev] [Moose-dev] Re: GanttChartMorph openOn: aCollectionOfActivities ?

2015-07-31 Thread H. Hirzel
And a more natural order of presentation without reordering the input?

data := #( #(prototype 8 12)
   #(web_publication 11 12)
   #(review 10 11)
  #(analysis 8 10)
  ).


On 8/1/15, H. Hirzel  wrote:
> The SVG export accessible through the '...' menu works fine.
>
> A new question regarding the labeling of the x-axis.
>
> How do I specify that I want to see months
>
> 8  9   10  11  12
>
> only?
>
> data := #( #(WP1 8 12)  #(WP2 8 10) #(WP3 10 11)
> #(WP4 11 12)
>
>
>
> And is something like this possible?
>
>
> 8  9   10  11  12  1   2   3   4
>
>
> --Hannes
>
>
> On 7/31/15, Alexandre Bergel  wrote:
>> The ‘…’ button, top right of a GTInspector that is showing a Roassal
>> visualization.
>>
>> https://dl.dropboxusercontent.com/u/31543901/TMP/Screen%20Shot%202015-07-30%20at%2012.33.23%20PM.png
>>
>> Alexandre
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>> On Jul 30, 2015, at 2:25 PM, H. Hirzel  wrote:
>>>
>>> Which menu? Could you describe it verbally please where to click? The
>>> picture did not come through.
>>>
>>> --Hannes
>>>
>>> On 7/30/15, Alexandre Bergel  wrote:
>>>> Simply use the menu:
>>>>
>>>>
>>>> Cheers,
>>>> Alexandre
>>>>
>>>> --
>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>> Alexandre Bergel  http://www.bergel.eu
>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>
>>>>
>>>>
>>>>> On Jul 30, 2015, at 11:59 AM, H. Hirzel 
>>>>> wrote:
>>>>>
>>>>> Alexandre,
>>>>>
>>>>> This is really agile ... version 1005 of Roassal loaded and version
>>>>> 305 of Trachel :-)
>>>>>
>>>>> The GANTT chart works fine, see screen shot.
>>>>>
>>>>> How do I export it as SVG code in Roassal?
>>>>>
>>>>> --Hannes
>>>>>
>>>>> On 7/29/15, Alexandre Bergel  wrote:
>>>>>> Pure agile development: the latest version is the one that count.
>>>>>> You need to update two packages: Roassal2 and Trachel.
>>>>>>
>>>>>> Cheers,
>>>>>> Alexandre
>>>>>> --
>>>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>>>> Alexandre Bergel  http://www.bergel.eu
>>>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>>>
>>>>>>
>>>>>>
>>>>>>> On Jul 29, 2015, at 3:24 PM, H. Hirzel 
>>>>>>> wrote:
>>>>>>>
>>>>>>> Or a configuration? Which one?
>>>>>>>
>>>>>>> --HH
>>>>>>>
>>>>>>> On 7/29/15, H. Hirzel  wrote:
>>>>>>>> Thanks for the updated GANTT script.
>>>>>>>>
>>>>>>>> My question was about the version of Roassal to load.
>>>>>>>>
>>>>>>>> Which one?
>>>>>>>> I just go for version 1000?
>>>>>>>>
>>>>>>>> See screenshot.
>>>>>>>>
>>>>>>>> --Hannes
>>>>>>>>
>>>>>>>> On 7/29/15, Alexandre Bergel  wrote:
>>>>>>>>>>> You should load the latest Roassal.
>>>>>>>>>>
>>>>>>>>>> How do I do that? I just loaded Roassal into a fresh Pharo4.0
>>>>>>>>>> image
>>>>>>>>>> and RTTimeLine is not included.
>>>>>>>>>
>>>>>>>>> We did some refactoring.
>>>>>>>>> Instead, you should do:
>>>>>>>>>
>>>>>>>>> -=-=-=-=-=-=-=-=
>>>>>>>>>   data := #(#(WP1 0 5) #(WP2 5 8) #(WP3 7 10)).
>>>>>>>>>
>>>>>>>>>   b := RTTimeline new.
>>>>>>>>>   
>>>>>>>>>   s := RTTimelineSet new.
>>>>>>&g

Re: [Pharo-dev] [Moose-dev] Re: GanttChartMorph openOn: aCollectionOfActivities ?

2015-07-31 Thread H. Hirzel
The SVG export accessible through the '...' menu works fine.

A new question regarding the labeling of the x-axis.

How do I specify that I want to see months

8  9   10  11  12

only?

data := #( #(WP1 8 12)  #(WP2 8 10) #(WP3 10 11)
#(WP4 11 12)



And is something like this possible?


8  9   10  11  12  1   2   3   4


--Hannes


On 7/31/15, Alexandre Bergel  wrote:
> The ‘…’ button, top right of a GTInspector that is showing a Roassal
> visualization.
>
> https://dl.dropboxusercontent.com/u/31543901/TMP/Screen%20Shot%202015-07-30%20at%2012.33.23%20PM.png
>
> Alexandre
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>> On Jul 30, 2015, at 2:25 PM, H. Hirzel  wrote:
>>
>> Which menu? Could you describe it verbally please where to click? The
>> picture did not come through.
>>
>> --Hannes
>>
>> On 7/30/15, Alexandre Bergel  wrote:
>>> Simply use the menu:
>>>
>>>
>>> Cheers,
>>> Alexandre
>>>
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>> On Jul 30, 2015, at 11:59 AM, H. Hirzel 
>>>> wrote:
>>>>
>>>> Alexandre,
>>>>
>>>> This is really agile ... version 1005 of Roassal loaded and version
>>>> 305 of Trachel :-)
>>>>
>>>> The GANTT chart works fine, see screen shot.
>>>>
>>>> How do I export it as SVG code in Roassal?
>>>>
>>>> --Hannes
>>>>
>>>> On 7/29/15, Alexandre Bergel  wrote:
>>>>> Pure agile development: the latest version is the one that count.
>>>>> You need to update two packages: Roassal2 and Trachel.
>>>>>
>>>>> Cheers,
>>>>> Alexandre
>>>>> --
>>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>>> Alexandre Bergel  http://www.bergel.eu
>>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>>
>>>>>
>>>>>
>>>>>> On Jul 29, 2015, at 3:24 PM, H. Hirzel 
>>>>>> wrote:
>>>>>>
>>>>>> Or a configuration? Which one?
>>>>>>
>>>>>> --HH
>>>>>>
>>>>>> On 7/29/15, H. Hirzel  wrote:
>>>>>>> Thanks for the updated GANTT script.
>>>>>>>
>>>>>>> My question was about the version of Roassal to load.
>>>>>>>
>>>>>>> Which one?
>>>>>>> I just go for version 1000?
>>>>>>>
>>>>>>> See screenshot.
>>>>>>>
>>>>>>> --Hannes
>>>>>>>
>>>>>>> On 7/29/15, Alexandre Bergel  wrote:
>>>>>>>>>> You should load the latest Roassal.
>>>>>>>>>
>>>>>>>>> How do I do that? I just loaded Roassal into a fresh Pharo4.0
>>>>>>>>> image
>>>>>>>>> and RTTimeLine is not included.
>>>>>>>>
>>>>>>>> We did some refactoring.
>>>>>>>> Instead, you should do:
>>>>>>>>
>>>>>>>> -=-=-=-=-=-=-=-=
>>>>>>>>data := #(#(WP1 0 5) #(WP2 5 8) #(WP3 7 10)).
>>>>>>>>
>>>>>>>>b := RTTimeline new.
>>>>>>>>
>>>>>>>>s := RTTimelineSet new.
>>>>>>>>s objects: data.
>>>>>>>>s lineIdentifier: #first.
>>>>>>>>s start: #second.
>>>>>>>>s end: #third.
>>>>>>>>b add: s.
>>>>>>>>
>>>>>>>>b axisX
>>>>>>>>numberOfLabels: 5;
>>>>>>>>labelRotation: -45;
>>>>>>>>labelConversion: [ :v | Date year: 2015 day: v ].
>>>>>>>>
>>>>>>>>d := RTVerticalTickLineDecorator new.
>>>>>>>>d shape line color: Color white.
>>>>&g

Re: [Pharo-dev] New methods for the String class

2015-07-30 Thread H. Hirzel
Where are the String extension packages available which were mentioned?

1.  Olivier Auverlot has all kind of string distance.
2. Hernan Morales has also a package extending string.
3.  ... more?

On 7/30/15, H. Hirzel  wrote:
> On 2/24/14, Eliot Miranda  wrote:
>> On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel
>> wrote:
>>
>>> Would be great to have: 'ConfigurationOfRoassal' chopCamel  =>
>>> #('Configuration' 'Of' 'Roassal').
>>>
>>
>> 'ConfigurationOfRoassal'  piecesCutWhere: [:a :b| a isLowercase and: [b
>> isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal')
>>
>> It's too trivial, surely.
>
> Nice piece of code. Not sure if it is too trivial.
>
> I have never seen #piecesCutWhere before. It is not in Cuis and
> Squeak. Must be a new Pharo method.
>
> --Hannes
>
>
>>
>>
>>>
>>> Alexandre
>>>
>>>
>>> On Feb 24, 2014, at 2:30 PM, Daniela Meneses 
>>> wrote:
>>>
>>> > Hi to all,
>>> >
>>> > As you may know I'm working on in some improvements for the String
>>> class. Until now I implemented some missing tests. Right now I'm looking
>>> forward to add new methods that could be useful based on Ruby API (
>>> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the
>>> methods that I'm planning to implement:
>>> >
>>> >   * chomp(separator=$/) -> new_str
>>> >   * chop() -> new_str
>>> >   * ljust(integer, padstr='') ->new_str
>>> >   * next -> new_str
>>> >   * partition(sep) -> [head, sep, tail]
>>> >
>>> > Could you help to find out if these methods are already available for
>>> the String class?
>>> >
>>> > If you have any idea of new methods for the string class, will be
>>> > really
>>> welcome.
>>> >
>>> > --
>>> > Cheers,
>>> > Daniela Meneses
>>>
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>
>>>
>>
>>
>> --
>> best,
>> Eliot
>>
>



Re: [Pharo-dev] New methods for the String class

2015-07-30 Thread H. Hirzel
On 2/24/14, Eliot Miranda  wrote:
> On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel
> wrote:
>
>> Would be great to have: 'ConfigurationOfRoassal' chopCamel  =>
>> #('Configuration' 'Of' 'Roassal').
>>
>
> 'ConfigurationOfRoassal'  piecesCutWhere: [:a :b| a isLowercase and: [b
> isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal')
>
> It's too trivial, surely.

Nice piece of code. Not sure if it is too trivial.

I have never seen #piecesCutWhere before. It is not in Cuis and
Squeak. Must be a new Pharo method.

--Hannes


>
>
>>
>> Alexandre
>>
>>
>> On Feb 24, 2014, at 2:30 PM, Daniela Meneses 
>> wrote:
>>
>> > Hi to all,
>> >
>> > As you may know I'm working on in some improvements for the String
>> class. Until now I implemented some missing tests. Right now I'm looking
>> forward to add new methods that could be useful based on Ruby API (
>> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the
>> methods that I'm planning to implement:
>> >
>> >   * chomp(separator=$/) -> new_str
>> >   * chop() -> new_str
>> >   * ljust(integer, padstr='') ->new_str
>> >   * next -> new_str
>> >   * partition(sep) -> [head, sep, tail]
>> >
>> > Could you help to find out if these methods are already available for
>> the String class?
>> >
>> > If you have any idea of new methods for the string class, will be
>> > really
>> welcome.
>> >
>> > --
>> > Cheers,
>> > Daniela Meneses
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>
>
> --
> best,
> Eliot
>



Re: [Pharo-dev] [Pharo-users] interview on .Net Rocks! about Moose, humane assessment, Pharo and GT

2015-07-30 Thread H. Hirzel
This basically means that Pharo 4.0 is no longer a Smalltalk IDE only.
Together with Roassal it is a data analysis application ...!

In a sense something like a spreadsheet but for general data, not only
data in tables.

--Hannes

On 7/30/15, Tudor Girba  wrote:
> Hi,
>
> Indeed, GTSpotter, GTPlayground and GTInspector come with Pharo 4.
>
> The GTDebugger is available in the Moose 5/5.1/6.0 images.
>
> Thanks for the notification. I will update the page.
>
> Cheers,
> Doru
>
>
>
> On Thu, Jul 30, 2015 at 10:12 PM, H. Hirzel 
> wrote:
>
>> Doru,
>>
>> Thank you for the links
>>
>> Is the glamorous Toolkit preinstalled in Pharo 4?
>>
>> In any case
>>
>>   http://gt.moosetechnology.org/
>>
>> needs to mention Pharo 4.
>>
>> --Hannes
>>
>> On 7/30/15, Tudor Girba  wrote:
>> > Hi,
>> >
>> > I had the pleasure of giving an interview for the .Net Rocks! podcast.
>> > It
>> > was quite fun and I managed to mention Moose, humane assessment, Pharo
>> and
>> > GT in 45 minutes. It was not as smooth as a presentation but I still
>> think
>> > it's a useful advertisement.
>> >
>> > Let me know what you think, and feel free to promote it further:
>> >
>> > https://dotnetrocks.com/default.aspx?showNum=1172
>> >
>> http://www.tudorgirba.com/blog/dotnetrocks-interview-moose-humane-assessment-pharo-gt-2015
>> >
>> > Cheers,
>> > Doru
>> >
>> > --
>> > www.tudorgirba.com
>> >
>> > "Every thing has its own flow"
>> >
>>
>>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
>



Re: [Pharo-dev] [Pharo-users] interview on .Net Rocks! about Moose, humane assessment, Pharo and GT

2015-07-30 Thread H. Hirzel
Doru,

Thank you for the links

Is the glamorous Toolkit preinstalled in Pharo 4?

In any case

  http://gt.moosetechnology.org/

needs to mention Pharo 4.

--Hannes

On 7/30/15, Tudor Girba  wrote:
> Hi,
>
> I had the pleasure of giving an interview for the .Net Rocks! podcast. It
> was quite fun and I managed to mention Moose, humane assessment, Pharo and
> GT in 45 minutes. It was not as smooth as a presentation but I still think
> it's a useful advertisement.
>
> Let me know what you think, and feel free to promote it further:
>
> https://dotnetrocks.com/default.aspx?showNum=1172
> http://www.tudorgirba.com/blog/dotnetrocks-interview-moose-humane-assessment-pharo-gt-2015
>
> Cheers,
> Doru
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
>



Re: [Pharo-dev] [Moose-dev] Re: GanttChartMorph openOn: aCollectionOfActivities ?

2015-07-30 Thread H. Hirzel
Which menu? Could you describe it verbally please where to click? The
picture did not come through.

--Hannes

On 7/30/15, Alexandre Bergel  wrote:
> Simply use the menu:
>
>
> Cheers,
> Alexandre
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>> On Jul 30, 2015, at 11:59 AM, H. Hirzel  wrote:
>>
>> Alexandre,
>>
>> This is really agile ... version 1005 of Roassal loaded and version
>> 305 of Trachel :-)
>>
>> The GANTT chart works fine, see screen shot.
>>
>> How do I export it as SVG code in Roassal?
>>
>> --Hannes
>>
>> On 7/29/15, Alexandre Bergel  wrote:
>>> Pure agile development: the latest version is the one that count.
>>> You need to update two packages: Roassal2 and Trachel.
>>>
>>> Cheers,
>>> Alexandre
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>> On Jul 29, 2015, at 3:24 PM, H. Hirzel  wrote:
>>>>
>>>> Or a configuration? Which one?
>>>>
>>>> --HH
>>>>
>>>> On 7/29/15, H. Hirzel  wrote:
>>>>> Thanks for the updated GANTT script.
>>>>>
>>>>> My question was about the version of Roassal to load.
>>>>>
>>>>> Which one?
>>>>> I just go for version 1000?
>>>>>
>>>>> See screenshot.
>>>>>
>>>>> --Hannes
>>>>>
>>>>> On 7/29/15, Alexandre Bergel  wrote:
>>>>>>>> You should load the latest Roassal.
>>>>>>>
>>>>>>> How do I do that? I just loaded Roassal into a fresh Pharo4.0 image
>>>>>>> and RTTimeLine is not included.
>>>>>>
>>>>>> We did some refactoring.
>>>>>> Instead, you should do:
>>>>>>
>>>>>> -=-=-=-=-=-=-=-=
>>>>>>  data := #(#(WP1 0 5) #(WP2 5 8) #(WP3 7 10)).
>>>>>>
>>>>>>  b := RTTimeline new.
>>>>>>  
>>>>>>  s := RTTimelineSet new.
>>>>>>  s objects: data.
>>>>>>  s lineIdentifier: #first.
>>>>>>  s start: #second.
>>>>>>  s end: #third.
>>>>>>  b add: s.
>>>>>>  
>>>>>>  b axisX
>>>>>>  numberOfLabels: 5;
>>>>>>  labelRotation: -45;
>>>>>>  labelConversion: [ :v | Date year: 2015 day: v ].
>>>>>>
>>>>>>  d := RTVerticalTickLineDecorator new.
>>>>>>  d shape line color: Color white.
>>>>>>  b addDecorator: d.
>>>>>>  b
>>>>>> -=-=-=-=-=-=-=-=
>>>>>>
>>>>>>
>>>>>>
>>>>>> The class RTTimelineExample contains many examples
>>>>>>
>>>>>> Let us know how it goes
>>>>>>
>>>>>> Alexandre
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> Alexandre
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Le 9 mai 2015 à 19:06, H. Hirzel  a écrit
>>>>>>>>> :
>>>>>>>>>
>>>>>>>>> Thank you for the examples, Alexandre!
>>>>>>>>>
>>>>>>>>> I have Pharo 4.0 with Roassal 2.0 installed (AlexandreBergel.718)
>>>>>>>>>
>>>>>>>>> I paste the following into a 'Playground' window and 'do it'.
>>>>>>>>>
>>>>>>>>> b := RTTimeLine new.
>>>>>>>>>
>>>>>>>>> b addEntry: (RTTimeLineEntry new identifier: #WP1; start: 0; end:
>>>>>>>>> 5).
>>>>>>>>> b addEntry: (RTTimeLineEntry new identifier: #WP2; start: 5; end:
>>>>>>>>> 8).
>>>>>>>>> b addEntry: (RTTimeLineEntry new identifier: #WP3; start: 7; end:
>>>>>>>>> 10).
>>>>>>>>>
>>>>>>>>&

Re: [Pharo-dev] [Moose-dev] Re: GanttChartMorph openOn: aCollectionOfActivities ?

2015-07-30 Thread H. Hirzel
Alexandre,

This is really agile ... version 1005 of Roassal loaded and version
305 of Trachel :-)

The GANTT chart works fine, see screen shot.

How do I export it as SVG code in Roassal?

--Hannes

On 7/29/15, Alexandre Bergel  wrote:
> Pure agile development: the latest version is the one that count.
> You need to update two packages: Roassal2 and Trachel.
>
> Cheers,
> Alexandre
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>> On Jul 29, 2015, at 3:24 PM, H. Hirzel  wrote:
>>
>> Or a configuration? Which one?
>>
>> --HH
>>
>> On 7/29/15, H. Hirzel  wrote:
>>> Thanks for the updated GANTT script.
>>>
>>> My question was about the version of Roassal to load.
>>>
>>> Which one?
>>> I just go for version 1000?
>>>
>>> See screenshot.
>>>
>>> --Hannes
>>>
>>> On 7/29/15, Alexandre Bergel  wrote:
>>>>>> You should load the latest Roassal.
>>>>>
>>>>> How do I do that? I just loaded Roassal into a fresh Pharo4.0 image
>>>>> and RTTimeLine is not included.
>>>>
>>>> We did some refactoring.
>>>> Instead, you should do:
>>>>
>>>> -=-=-=-=-=-=-=-=
>>>>data := #(#(WP1 0 5) #(WP2 5 8) #(WP3 7 10)).
>>>>
>>>>b := RTTimeline new.
>>>>
>>>>s := RTTimelineSet new.
>>>>s objects: data.
>>>>s lineIdentifier: #first.
>>>>s start: #second.
>>>>s end: #third.
>>>>b add: s.
>>>>
>>>>b axisX
>>>>numberOfLabels: 5;
>>>>labelRotation: -45;
>>>>labelConversion: [ :v | Date year: 2015 day: v ].
>>>>
>>>>d := RTVerticalTickLineDecorator new.
>>>>d shape line color: Color white.
>>>>b addDecorator: d.
>>>>b
>>>> -=-=-=-=-=-=-=-=
>>>>
>>>>
>>>>
>>>> The class RTTimelineExample contains many examples
>>>>
>>>> Let us know how it goes
>>>>
>>>> Alexandre
>>>>
>>>>>
>>>>>
>>>>>> Alexandre
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Le 9 mai 2015 à 19:06, H. Hirzel  a écrit :
>>>>>>>
>>>>>>> Thank you for the examples, Alexandre!
>>>>>>>
>>>>>>> I have Pharo 4.0 with Roassal 2.0 installed (AlexandreBergel.718)
>>>>>>>
>>>>>>> I paste the following into a 'Playground' window and 'do it'.
>>>>>>>
>>>>>>> b := RTTimeLine new.
>>>>>>>
>>>>>>> b addEntry: (RTTimeLineEntry new identifier: #WP1; start: 0; end:
>>>>>>> 5).
>>>>>>> b addEntry: (RTTimeLineEntry new identifier: #WP2; start: 5; end:
>>>>>>> 8).
>>>>>>> b addEntry: (RTTimeLineEntry new identifier: #WP3; start: 7; end:
>>>>>>> 10).
>>>>>>>
>>>>>>> b axisX numberOfLabels: 5.
>>>>>>> b
>>>>>>>
>>>>>>> I get the error message  that RTTimeLine is not known.
>>>>>>>
>>>>>>> What am I missing?
>>>>>>>
>>>>>>> --Hannes
>>>>>>>
>>>>>>>
>>>>>>>> On 5/8/15, Alexandre Bergel  wrote:
>>>>>>>> Hi Hannes!
>>>>>>>>
>>>>>>>> Here is a first shoot paired-programmed with Juraj using Roassal:
>>>>>>>>
>>>>>>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>>>>>> b := RTTimeLine new.
>>>>>>>>
>>>>>>>> b addEntry: (RTTimeLineEntry new identifier: #WP1; start: 0; end:
>>>>>>>> 5).
>>>>>>>> b addEntry: (RTTimeLineEntry new identifier: #WP2; start: 5; end:
>>>>>>>> 8).
>>>>>>>> b addEntry: (RTTimeLineEntry new identifier: #WP3; start: 7; end:
>>>>>>>> 10).
>>>>>>>>
>>>>>>>> b axisX numberOfLabels: 5.
>>>>>>>

Re: [Pharo-dev] About nextPutAll: $(

2015-07-30 Thread H. Hirzel
On 7/29/15, Eliot Miranda  wrote:
> On Sat, Jul 25, 2015 at 9:39 AM, Hernán Morales Durand <
> hernan.mora...@gmail.com> wrote:
>
>> In BioSmalltalk I use this pattern a lot:
>>
>> aStream
>> nextPutAll: self name
>> between: $[ -> $].
>>
>> so yes, that would be a nice inclusion for me :)
>>
>
> i don't like the allocation here; v slow.  why not nextPutAll:between:and:
> ?

+1

>
>>
>> Cheers,
>>
>> Hernán
>>
>>
>>
>>
>> 2015-07-24 17:48 GMT-03:00 stepharo :
>>
>>> HI
>>>
>>> while working on a lecture I saw that we have about 75 cases like:
>>>
>>> aStream nextPut: $(.
>>> 
>>> aStream nextPut: $).
>>>
>>>
>>>
>>> storeOn: aStream
>>> "Store a description of the elements of the complement rather than
>>> self."
>>>
>>> aStream nextPut: $(.
>>> absent storeOn: aStream.
>>> aStream nextPut: $); space; nextPutAll: #complement.
>>>
>>>
>>> printElementsOn: aStream
>>> aStream nextPut: $(.
>>> self size > 100
>>> ifTrue: [aStream nextPutAll: 'size '.
>>> self size printOn: aStream]
>>> ifFalse: [self keysSortedSafely
>>> do: [:key | aStream print: key;
>>>  nextPutAll: '->';
>>>  print: (self at: key);
>>>  space]].
>>> aStream nextPut: $)
>>>
>>> we have surroundedBy: aString
>>>
>>> surroundedBy: aString
>>> ^ self class streamContents: [ :s|
>>> s nextPutAll: aString.
>>> s nextPutAll: self.
>>> s nextPutAll: aString ].
>>>
>>> But only working on aString.
>>> To me it looks like it ia class for having it on stream.
>>>
>>> What do you think?
>>>
>>>
>>>
>>>
>>>
>>
>
>
> --
> _,,,^..^,,,_
> best, Eliot
>



Re: [Pharo-dev] [Moose-dev] Re: GanttChartMorph openOn: aCollectionOfActivities ?

2015-07-29 Thread H. Hirzel
Thanks for the updated GANTT script.

My question was about the version of Roassal to load.

Which one?
I just go for version 1000?

See screenshot.

--Hannes

On 7/29/15, Alexandre Bergel  wrote:
>>> You should load the latest Roassal.
>>
>> How do I do that? I just loaded Roassal into a fresh Pharo4.0 image
>> and RTTimeLine is not included.
>
> We did some refactoring.
> Instead, you should do:
>
> -=-=-=-=-=-=-=-=
>   data := #(#(WP1 0 5) #(WP2 5 8) #(WP3 7 10)).
>
>   b := RTTimeline new.
>   
>   s := RTTimelineSet new.
>   s objects: data.
>   s lineIdentifier: #first.
>   s start: #second.
>   s end: #third.
>   b add: s.
>   
>   b axisX
>   numberOfLabels: 5;
>   labelRotation: -45;
>   labelConversion: [ :v | Date year: 2015 day: v ].
>
>   d := RTVerticalTickLineDecorator new.
>   d shape line color: Color white.
>   b addDecorator: d.
>   b
> -=-=-=-=-=-=-=-=
>
>
>
> The class RTTimelineExample contains many examples
>
> Let us know how it goes
>
> Alexandre
>
>>
>>
>>> Alexandre
>>>
>>>
>>>
>>>> Le 9 mai 2015 à 19:06, H. Hirzel  a écrit :
>>>>
>>>> Thank you for the examples, Alexandre!
>>>>
>>>> I have Pharo 4.0 with Roassal 2.0 installed (AlexandreBergel.718)
>>>>
>>>> I paste the following into a 'Playground' window and 'do it'.
>>>>
>>>> b := RTTimeLine new.
>>>>
>>>> b addEntry: (RTTimeLineEntry new identifier: #WP1; start: 0; end: 5).
>>>> b addEntry: (RTTimeLineEntry new identifier: #WP2; start: 5; end: 8).
>>>> b addEntry: (RTTimeLineEntry new identifier: #WP3; start: 7; end: 10).
>>>>
>>>> b axisX numberOfLabels: 5.
>>>> b
>>>>
>>>> I get the error message  that RTTimeLine is not known.
>>>>
>>>> What am I missing?
>>>>
>>>> --Hannes
>>>>
>>>>
>>>>> On 5/8/15, Alexandre Bergel  wrote:
>>>>> Hi Hannes!
>>>>>
>>>>> Here is a first shoot paired-programmed with Juraj using Roassal:
>>>>>
>>>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>>> b := RTTimeLine new.
>>>>>
>>>>> b addEntry: (RTTimeLineEntry new identifier: #WP1; start: 0; end: 5).
>>>>> b addEntry: (RTTimeLineEntry new identifier: #WP2; start: 5; end: 8).
>>>>> b addEntry: (RTTimeLineEntry new identifier: #WP3; start: 7; end: 10).
>>>>>
>>>>> b axisX numberOfLabels: 5.
>>>>> b
>>>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>>>
>>>>>
>>>>>
>>>>> Here some slightly more elaborated example:
>>>>>
>>>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>>>   “One color per entry"
>>>>>   | b d |
>>>>>   b := RTTimeLine new.
>>>>>   b addEntry: (RTTimeLineEntry new identifier: #c1; start: 0; end: 5).
>>>>>   b addEntry: (RTTimeLineEntry new identifier: #c1; start: 6; end: 8).
>>>>>
>>>>>   b addEntry: (RTTimeLineEntry new identifier: #c2; start: 0; end: 5).
>>>>>   b addEntry: (RTTimeLineEntry new identifier: #c2; start: 8; end:
>>>>> 10).
>>>>>
>>>>>   b addEntry: (RTTimeLineEntry new identifier: #c3; start: 0; end:
>>>>> 10).
>>>>>
>>>>>   b addEntry: (RTTimeLineEntry new identifier: #c4; start: 5; end:
>>>>> 10).
>>>>>
>>>>>   b addEntry: (RTTimeLineEntry new identifier: #c5; start: 5; end: 8).
>>>>>
>>>>>   d := RTVerticalTickLineDecorator new.
>>>>>   d shape line color: Color white.
>>>>>   b addDecorator: d.
>>>>>   b axisX
>>>>>   numberOfLabels: 5;
>>>>>   labelRotation: -45;
>>>>>   labelConversion: [ :v | Date year: 2015 day: v ].
>>>>>
>>>>>   b shape color: (RTMultiLinearColorForIdentity new objects: b
>>>>> entries).
>>>>>   b
>>>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>>>
>>>>>
>>>>>
>>>>> One color per timeline
>>>>>
>>>>>
>>>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>>>   | b |
>>>>>   b := RTTimeLine new.
>&g

Re: [Pharo-dev] [Moose-dev] Re: GanttChartMorph openOn: aCollectionOfActivities ?

2015-07-29 Thread H. Hirzel
On 5/10/15, Alexandre Bergel  wrote:
> You should load the latest Roassal.

How do I do that? I just loaded Roassal into a fresh Pharo4.0 image
and RTTimeLine is not included.

--Hannes


> Alexandre
>
>
>
>> Le 9 mai 2015 à 19:06, H. Hirzel  a écrit :
>>
>> Thank you for the examples, Alexandre!
>>
>> I have Pharo 4.0 with Roassal 2.0 installed (AlexandreBergel.718)
>>
>> I paste the following into a 'Playground' window and 'do it'.
>>
>> b := RTTimeLine new.
>>
>> b addEntry: (RTTimeLineEntry new identifier: #WP1; start: 0; end: 5).
>> b addEntry: (RTTimeLineEntry new identifier: #WP2; start: 5; end: 8).
>> b addEntry: (RTTimeLineEntry new identifier: #WP3; start: 7; end: 10).
>>
>> b axisX numberOfLabels: 5.
>> b
>>
>> I get the error message  that RTTimeLine is not known.
>>
>> What am I missing?
>>
>> --Hannes
>>
>>
>>> On 5/8/15, Alexandre Bergel  wrote:
>>> Hi Hannes!
>>>
>>> Here is a first shoot paired-programmed with Juraj using Roassal:
>>>
>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>> b := RTTimeLine new.
>>>
>>> b addEntry: (RTTimeLineEntry new identifier: #WP1; start: 0; end: 5).
>>> b addEntry: (RTTimeLineEntry new identifier: #WP2; start: 5; end: 8).
>>> b addEntry: (RTTimeLineEntry new identifier: #WP3; start: 7; end: 10).
>>>
>>> b axisX numberOfLabels: 5.
>>> b
>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>
>>>
>>>
>>> Here some slightly more elaborated example:
>>>
>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>“One color per entry"
>>>| b d |
>>>b := RTTimeLine new.
>>>b addEntry: (RTTimeLineEntry new identifier: #c1; start: 0; end: 5).
>>>b addEntry: (RTTimeLineEntry new identifier: #c1; start: 6; end: 8).
>>>
>>>b addEntry: (RTTimeLineEntry new identifier: #c2; start: 0; end: 5).
>>>b addEntry: (RTTimeLineEntry new identifier: #c2; start: 8; end: 10).
>>>
>>>b addEntry: (RTTimeLineEntry new identifier: #c3; start: 0; end: 10).
>>>
>>>b addEntry: (RTTimeLineEntry new identifier: #c4; start: 5; end: 10).
>>>
>>>b addEntry: (RTTimeLineEntry new identifier: #c5; start: 5; end: 8).
>>>
>>>d := RTVerticalTickLineDecorator new.
>>>d shape line color: Color white.
>>>b addDecorator: d.
>>>b axisX
>>>numberOfLabels: 5;
>>>labelRotation: -45;
>>>labelConversion: [ :v | Date year: 2015 day: v ].
>>>
>>>b shape color: (RTMultiLinearColorForIdentity new objects: b
>>> entries).
>>>b
>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>
>>>
>>>
>>> One color per timeline
>>>
>>>
>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>| b |
>>>b := RTTimeLine new.
>>>b addEntry: (RTTimeLineEntry new identifier: #c1; start: 0; end: 5).
>>>b addEntry: (RTTimeLineEntry new identifier: #c1; start: 6; end: 8).
>>>
>>>b addEntry: (RTTimeLineEntry new identifier: #c2; start: 0; end: 5).
>>>b addEntry: (RTTimeLineEntry new identifier: #c2; start: 8; end: 10).
>>>
>>>b addEntry: (RTTimeLineEntry new identifier: #c3; start: 0; end: 10).
>>>
>>>b addEntry: (RTTimeLineEntry new identifier: #c4; start: 5; end: 10).
>>>
>>>b addEntry: (RTTimeLineEntry new identifier: #c5; start: 5; end: 8).
>>>
>>>d := RTVerticalTickLineDecorator new.
>>>d shape line color: Color white.
>>>b addDecorator: d.
>>>b axisX
>>>numberOfLabels: 5;
>>>labelRotation: -45;
>>>labelConversion: [ :v | Date year: 2015 day: v ].
>>>
>>>b shape color: (RTMultiLinearColorForIdentity new command:
>>> #identifier;
>>> objects: #(c1 c2 c3 c4 c5)).
>>>b
>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>
>>>
>>> Age of some classes:
>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>| b |
>>>b := RTTimeLine new.
>>>b extent: 500 @ 500.
>>>((RTShape withAllSubclasses sortedAs: #ageInDaysRounded) select:
>>> #hasMethods)
>>>do: [ :cls |
>>>e := RTTimeLineEntry new.
>>>e identifier: cls.
>>>e start: cls computeYoungestMethod ageInDays.
>>>e end: cls computeOldestMethod ageInDays.
>>>b addEntry: e ].
>>>b
>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>
>>>
>>>
>>> All these examples are in the Roassal time line example menu.
>>>
>>> This is still an early version. Let us know how it goes!
>>> https://www.facebook.com/ObjectProfile/posts/840542572699008
>>>
>>> Cheers,
>>> Alexandre
>>>
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>> On May 7, 2015, at 4:25 PM, H. Hirzel  wrote:
>>>>
>>>> Hello
>>>>
>>>> Has somebody done a GANTT chart?
>>>>
>>>>  GanttChartMorph openOn: aCollectionOfActivities
>>>>
>>>> ?
>>>>
>>>> Activities have
>>>> - id
>>>> - description
>>>> - start date
>>>> - end date
>>>> ?
>>>>
>>>> Regards
>>>>
>>>> Hannes
>>
>> ___
>> Moose-dev mailing list
>> moose-...@iam.unibe.ch
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>



Re: [Pharo-dev] Tiling Window Manager: Enable on load

2015-07-15 Thread H. Hirzel
On 7/14/15, Sean P. DeNigris  wrote:
> Any reason not to enable TWM by default? It seems clunky to have to dig
> into
> the settings to enable after loading the project...

+1


>
>
>
> -
> Cheers,
> Sean
> --
> View this message in context:
> http://forum.world.st/Tiling-Window-Manager-Enable-on-load-tp4837513.html
> Sent from the Pharo Smalltalk Developers mailing list archive at
> Nabble.com.
>
>



Re: [Pharo-dev] how to extend GTSpotter to handle XMLs

2015-07-12 Thread H. Hirzel
Hi Doru

This is indeed innovative!

How do I get this XML spotting feature into my Pharo 4.0 setup?

Kind regards

--Hannes

BTW I noticed as well the instructions
  http://www.humane-assessment.com/blog/searching-file-system-with-gtspotter/
and in particular the preview of pictures.

On 7/12/15, Tudor Girba  wrote:
> Hi,
>
> The default search options that come with GTSpotter are nice, but the power
> of a moldable tool like GTSpotter stems from how it can be extended by
> external packages.
>
> To get an idea of how this works in practice, you can find an example of
> how to make GTSpotter to extend the search through files with the ability
> of diving in an XML file in the XMLParser project.
>
> For example, the screenshot shows that we dived in an XML file, and in that
> file we can directly search for XML elements:
>
> [image: Inline image 2]
>
> Here are some more details of how this works:
> http://www.humane-assessment.com/blog/searching-xml-with-gtspotter/
>
> Remember that GTSpotter competes at the ESUG Innovation Awards :).
>
> Cheers,
> Doru
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
>



Re: [Pharo-dev] Main pillar web site?

2015-05-22 Thread H. Hirzel
Hello Cyril

I just saw your announcement about Pillar 0.56 : New features, new syntax

My suggestion is to the main pillar web site the information which
version of Pillar you describe there?

https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/PillarChap/Pillar.html

And  that you post the news about updates somewhere and refer to them
from the main pillar documentation website.

--Hannes

On 5/18/15, H. Hirzel  wrote:
> Luc,
>
> Thanks for the nice diagram showing Pillar in action.
>
> I suggest to include it on the pillar web site.
>
> And maybe you have some additional documentation. For example about the
> parser.
>
> --Hannes
>
> On 5/18/15, Luc Fabresse  wrote:
>> Hi all,
>>
>> As a teacher, I wrote a little Lab subject to introduce the Visitor
>> design
>> pattern to students using Pillar.
>> And I used the following fig to describe it.
>>
>> HIH,
>>
>> #Luc
>>
>> 2015-05-18 20:16 GMT+02:00 H. Hirzel :
>>
>>> Thank you.
>>>
>>> Is it possible to add a short paragraph about the
>>>
>>>  Rational
>>>
>>> for Pillar?
>>>
>>> It seems to be a text format for the PRnnn classes which is easy to
>>> parse.
>>>
>>> Which formats does the Pillar documentation tool chain read and which
>>> ones are generated?
>>>
>>> --Hannes
>>>
>>> On 5/4/15, Cyril Ferlicot  wrote:
>>> > Hi.
>>> > The documentation is now here:
>>> >
>>> https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/PillarChap/Pillar.html
>>> >
>>> > We're still updating the documentation so that still can change.
>>> >
>>> > On 4 May 2015 at 16:14, H. Hirzel  wrote:
>>> >> Thank you!
>>> >>
>>> >> Here is the summary
>>> >>
>>> >>
>>> >>
>>> >> Pillar documentation
>>> >> 
>>> >>
>>> >> Start page
>>> >> http://www.smalltalkhub.com/#!/~Pier/Pillar
>>> >>
>>> >>
>>> >> Documentation
>>> >> https://github.com/pillar-markup/pillar-documentation
>>> >>
>>> >>
>>> >>
>>> >> First Google hit
>>> >>
>>> https://ci.inria.fr/pharo-contribution/job/PharoProjectCatalog/HTML_Report/Pillar.html
>>> >>
>>> >> Leads to Pharo contribution CI server  (Confirm security exception,
>>> >> it
>>> is
>>> >> safe).
>>> >>
>>> >>
>>> >>
>>> >> Pillar tool chain repositories
>>> >> ---
>>> >>
>>> >> https://github.com/pillar-markup
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Cheers
>>> > Cyril Ferlicot
>>> >
>>> >
>>>
>>>
>>
>



Re: [Pharo-dev] Main pillar web site?

2015-05-18 Thread H. Hirzel
Luc,

Thanks for the nice diagram showing Pillar in action.

I suggest to include it on the pillar web site.

And maybe you have some additional documentation. For example about the parser.

--Hannes

On 5/18/15, Luc Fabresse  wrote:
> Hi all,
>
> As a teacher, I wrote a little Lab subject to introduce the Visitor design
> pattern to students using Pillar.
> And I used the following fig to describe it.
>
> HIH,
>
> #Luc
>
> 2015-05-18 20:16 GMT+02:00 H. Hirzel :
>
>> Thank you.
>>
>> Is it possible to add a short paragraph about the
>>
>>  Rational
>>
>> for Pillar?
>>
>> It seems to be a text format for the PRnnn classes which is easy to
>> parse.
>>
>> Which formats does the Pillar documentation tool chain read and which
>> ones are generated?
>>
>> --Hannes
>>
>> On 5/4/15, Cyril Ferlicot  wrote:
>> > Hi.
>> > The documentation is now here:
>> >
>> https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/PillarChap/Pillar.html
>> >
>> > We're still updating the documentation so that still can change.
>> >
>> > On 4 May 2015 at 16:14, H. Hirzel  wrote:
>> >> Thank you!
>> >>
>> >> Here is the summary
>> >>
>> >>
>> >>
>> >> Pillar documentation
>> >> 
>> >>
>> >> Start page
>> >> http://www.smalltalkhub.com/#!/~Pier/Pillar
>> >>
>> >>
>> >> Documentation
>> >> https://github.com/pillar-markup/pillar-documentation
>> >>
>> >>
>> >>
>> >> First Google hit
>> >>
>> https://ci.inria.fr/pharo-contribution/job/PharoProjectCatalog/HTML_Report/Pillar.html
>> >>
>> >> Leads to Pharo contribution CI server  (Confirm security exception, it
>> is
>> >> safe).
>> >>
>> >>
>> >>
>> >> Pillar tool chain repositories
>> >> ---
>> >>
>> >> https://github.com/pillar-markup
>> >>
>> >
>> >
>> >
>> > --
>> > Cheers
>> > Cyril Ferlicot
>> >
>> >
>>
>>
>



Re: [Pharo-dev] [Pharo-users] [SURVEY] Pillar input/output files.

2015-05-18 Thread H. Hirzel
On 5/4/15, Guillermo Polito  wrote:
> If I understand correctly... then, why the pillar.conf is not just a pillar
> file? (And the conf is the header if the file?) :)

That would be fine not to have a pillar.conf file but just a heard in
a regular pillar file
which does some configuration.

--Hannes


>
> El lun., 4 de may. de 2015 a la(s) 2:50 p. m., Damien Cassou <
> damien.cas...@inria.fr> escribió:
>
>>
>> Cyril Ferlicot  writes:
>>
>> > Hi,
>> > I'm currently working on the way we manage the input files and the
>> output files.
>> > The way we manage the files now makes hard some improvement of Pillar.
>> > That's why with Damien we though about makes some changes. The changes
>> > are big so I wanted to talk about that with you.
>> > We propose to have always 1 file with all the work inside. That can
>> > use the inputFile tag. For example:
>> >
>> > "${inputFile:Chapter1.pillar}$
>> >
>> > ${inputFile:Chapter2.pillar}$
>> >
>> > ${inputFile:Chapter3.pillar}$
>> >
>> > ${inputFile:Chapter4.pillar}$"
>> >
>> > And the option "separateOutputFiles" will now create 1 file each time
>> > we have a new Chapter. (!Level 1 header).
>> > That will make simpler the way to number everything and to create
>> > anchor because those 2 doesn't work well with the "separateOutputFile"
>> > option.
>> >
>> > What do you thing? That would be good with you?
>>
>> this change proposes to remove the option inputFiles from Pillar. Pillar
>> will now take only 1 Pillar input file that must include the rest. This
>> will simplify pillar.conf, this will simplify compile.sh, this will make
>> it easier for the author to understand the process, and this will
>> simplify Pillar's implementation. With this in place, we think we can
>> fix the problems with anchors and inter-chapter links.
>>
>> --
>> Damien Cassou
>> http://damiencassou.seasidehosting.st
>>
>> "Success is the ability to go from one failure to another without
>> losing enthusiasm." --Winston Churchill
>>
>>
>



Re: [Pharo-dev] Main pillar web site?

2015-05-18 Thread H. Hirzel
Thank you.

Is it possible to add a short paragraph about the

 Rational

for Pillar?

It seems to be a text format for the PRnnn classes which is easy to parse.

Which formats does the Pillar documentation tool chain read and which
ones are generated?

--Hannes

On 5/4/15, Cyril Ferlicot  wrote:
> Hi.
> The documentation is now here:
> https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/PillarChap/Pillar.html
>
> We're still updating the documentation so that still can change.
>
> On 4 May 2015 at 16:14, H. Hirzel  wrote:
>> Thank you!
>>
>> Here is the summary
>>
>>
>>
>> Pillar documentation
>> 
>>
>> Start page
>> http://www.smalltalkhub.com/#!/~Pier/Pillar
>>
>>
>> Documentation
>> https://github.com/pillar-markup/pillar-documentation
>>
>>
>>
>> First Google hit
>> https://ci.inria.fr/pharo-contribution/job/PharoProjectCatalog/HTML_Report/Pillar.html
>>
>> Leads to Pharo contribution CI server  (Confirm security exception, it is
>> safe).
>>
>>
>>
>> Pillar tool chain repositories
>> ---
>>
>> https://github.com/pillar-markup
>>
>
>
>
> --
> Cheers
> Cyril Ferlicot
>
>



Re: [Pharo-dev] Loading Pillar in 4.0

2015-05-18 Thread H. Hirzel
Any news on this?

--Hannes

On 5/12/15, Cyril Ferlicot  wrote:
> Hi,
> i'll correct that un the next version of pillar!
> Thank you.
>
> Le mardi 12 mai 2015, Sean P. DeNigris  a écrit :
>
>> Loading from the Configuration Browser gives:
>>
>> This package depends on the following classes:
>>   PRWarning
>> You must resolve these dependencies before you will be able to load these
>> definitions:
>>   PRParameterWarning
>>
>>
>>
>>
>> -
>> Cheers,
>> Sean
>> --
>> View this message in context:
>> http://forum.world.st/Loading-Pillar-in-4-0-tp4825915.html
>> Sent from the Pharo Smalltalk Developers mailing list archive at
>> Nabble.com.
>>
>>
>
> --
> Cheers
> Cyril Ferlicot
>



Re: [Pharo-dev] Transcript needs your love

2015-05-10 Thread H. Hirzel
On 5/10/15, Sven Van Caekenberghe  wrote:
>
>> On 10 May 2015, at 10:36, Esteban Lorenzano  wrote:
>>
>> +1
>>
>> let’s recapitulate:
>>
>> requirement is
>> - fast
>> - editable
>> - polymorphic with WriteStream
>> - and immediate to screen
>> from our perspective (pharo), it has to be also
>> - thread safe
>> - well designed.
>>
>> our constraints are:
>> - bad design of transcripts
>> - super naive implementation of text editors (this is, IMO, the reason why
>> transcripts are so slow: if you redraw all the window interior each time
>> you add a line, you are screw)
>
> Good summary!
+1

>> basically… we need a good log console (if it is a transcript or not, is
>> another discussion) :)
+1

As an independent pluggable package because not everybody does VM
development all the time.

There might be several of them focusing on different needs. And there
are already libraries claiming to be loggers. Might be used as a
start.


> Yes, that is really all there is to it
>
>> So… who proposes a solution?
>>
>> Esteban
>>
>>
>>> On 10 May 2015, at 00:40, Yuriy Tymchuk  wrote:
>>>
>>> For me saying that internals are not important as long as transcript does
>>> what is expected from it, is like saying that Parser being a subclass of
>>> Scanner and Compiler being as subclass of Parser is ok as long as it
>>> compiles source code. We already had that and it was bad.
>>>
>>> On the other hand it’s obvious that we don’t have enough resources to
>>> rewrite Pharo from scratch and we cannot leave issues as they are just
>>> because we cannot solve them perfectly now.
>>>
>>> I would say that Igor is correct saying that we need a better
>>> architecture, and Stef and Eliot are correct saying that we need tools
>>> that fulfill users’ needs. And we have to say: “ok now we hack this
>>> around, but we have to do this the right way one day”. Is anyone familiar
>>> with same-css[1] concept?
>>>
>>> Uko
>>>
>>> P.S. maybe my 2 cents are useless, but all the fight around this
>>> discussion is really strange for me. In Ukraine we have a saying that
>>> it’s better to be healthy and poor than sick and rich. Now I use to say
>>> that it’s better to be healthy and rich than sick and poor. And all the
>>> fight here was if it’s better to be healthy or rich. Definitely it’s
>>> better to be both, we cannot do that instantly but we can set goals and
>>> milestones, and find the optimal strategy.
>>>
>>>
>>> [1]: http://csswizardry.com/2013/04/shame-css/
>>>
 On 09 May 2015, at 16:17, Eliot Miranda 
 wrote:



 On Sat, May 9, 2015 at 5:29 AM, stepharo  wrote:
 Eliot

 I changed the transcript because it is not thread safe so I could use it
 at all to explain concurrent programming output.
 It was terrible.

 I don't see what that has to do with my usability point.  The transcript
 was
 a) a stream
 b) something that displayed its output immediately

 Those two features are essential.  If you change the transcript so that
 it no longer has those features you have broken it.

 Igor waffled on about internals, the desire to separate the UI from the
 stream, a point that has nothing to do with the utility of the
 transcript.  No you're going on about its thread-safety.  But no one is
 addressing my point.  And you have Clément telling you that he cannot
 develop the VM in Pharo because the transcript is broken, and you have
 others proposing various potentially error-prone work-arounds to get
 around the fact that the transcript is broken.

 Why won't anyone stand up and say yes, the transcript is broken and yes
 we will fix it?  This is dysfunctional.


 Stef


 Le 8/5/15 16:16, Eliot Miranda a écrit :

 Hi,

  if one uses a at doit transcript then no special action is required
 to get output to appear beyond sending flush to Transcript right?  So
 any solution that requires special action to get the moronic transcript
 to work us broken.  We should fix the transcript, not expect every
 application to work around a bug.

 Eliot (phone)

 On May 8, 2015, at 6:15 AM, Alain Rastoul 
 wrote:

 Le 08/05/2015 11:34, stepharo a écrit :
 Hi guys

 the Transcript in Pharo is that it's not asynchronous so I can't use it
 in VM development to show the current progress of the simulation. For
 example:
 1 to: 100 do: [ :i |
  0.1 seconds asDelay wait.
  Transcript show: 'x'. ]
 => on Squeak, this shows a x every 0.1 second in the Transcript
 => on Pharo, nothing happens during 10 seconds then all the x are
 shown.

 https://pharo.fogbugz.com/default.asp?15515
 Yes, as do it are evaluated in the World morphic process, running in a
 forked process or sending World doOneCycle in the loop solve the
 problem.

 Probably in squeak, in Transcript this is done somewhere un

Re: [Pharo-dev] GanttChartMorph openOn: aCollectionOfActivities ?

2015-05-09 Thread H. Hirzel
Thank you for the examples, Alexandre!

I have Pharo 4.0 with Roassal 2.0 installed (AlexandreBergel.718)

I paste the following into a 'Playground' window and 'do it'.

b := RTTimeLine new.

b addEntry: (RTTimeLineEntry new identifier: #WP1; start: 0; end: 5).
b addEntry: (RTTimeLineEntry new identifier: #WP2; start: 5; end: 8).
b addEntry: (RTTimeLineEntry new identifier: #WP3; start: 7; end: 10).

b axisX numberOfLabels: 5.
b

I get the error message  that RTTimeLine is not known.

What am I missing?

--Hannes


On 5/8/15, Alexandre Bergel  wrote:
> Hi Hannes!
>
> Here is a first shoot paired-programmed with Juraj using Roassal:
>
> -=-=-=-=-=-=-=-=-=-=-=-=
> b := RTTimeLine new.
>
> b addEntry: (RTTimeLineEntry new identifier: #WP1; start: 0; end: 5).
> b addEntry: (RTTimeLineEntry new identifier: #WP2; start: 5; end: 8).
> b addEntry: (RTTimeLineEntry new identifier: #WP3; start: 7; end: 10).
>
> b axisX numberOfLabels: 5.
> b
> -=-=-=-=-=-=-=-=-=-=-=-=
>
>
>
> Here some slightly more elaborated example:
>
> -=-=-=-=-=-=-=-=-=-=-=-=
>   “One color per entry"
>   | b d |
>   b := RTTimeLine new.
>   b addEntry: (RTTimeLineEntry new identifier: #c1; start: 0; end: 5).
>   b addEntry: (RTTimeLineEntry new identifier: #c1; start: 6; end: 8).
>
>   b addEntry: (RTTimeLineEntry new identifier: #c2; start: 0; end: 5).
>   b addEntry: (RTTimeLineEntry new identifier: #c2; start: 8; end: 10).
>
>   b addEntry: (RTTimeLineEntry new identifier: #c3; start: 0; end: 10).
>
>   b addEntry: (RTTimeLineEntry new identifier: #c4; start: 5; end: 10).
>
>   b addEntry: (RTTimeLineEntry new identifier: #c5; start: 5; end: 8).
>
>   d := RTVerticalTickLineDecorator new.
>   d shape line color: Color white.
>   b addDecorator: d.
>   b axisX
>   numberOfLabels: 5;
>   labelRotation: -45;
>   labelConversion: [ :v | Date year: 2015 day: v ].
>
>   b shape color: (RTMultiLinearColorForIdentity new objects: b entries).
>   b
> -=-=-=-=-=-=-=-=-=-=-=-=
>
>
>
> One color per timeline
>
>
> -=-=-=-=-=-=-=-=-=-=-=-=
>   | b |
>   b := RTTimeLine new.
>   b addEntry: (RTTimeLineEntry new identifier: #c1; start: 0; end: 5).
>   b addEntry: (RTTimeLineEntry new identifier: #c1; start: 6; end: 8).
>
>   b addEntry: (RTTimeLineEntry new identifier: #c2; start: 0; end: 5).
>   b addEntry: (RTTimeLineEntry new identifier: #c2; start: 8; end: 10).
>
>   b addEntry: (RTTimeLineEntry new identifier: #c3; start: 0; end: 10).
>
>   b addEntry: (RTTimeLineEntry new identifier: #c4; start: 5; end: 10).
>
>   b addEntry: (RTTimeLineEntry new identifier: #c5; start: 5; end: 8).
>
>   d := RTVerticalTickLineDecorator new.
>   d shape line color: Color white.
>   b addDecorator: d.
>   b axisX
>   numberOfLabels: 5;
>   labelRotation: -45;
>   labelConversion: [ :v | Date year: 2015 day: v ].
>
>   b shape color: (RTMultiLinearColorForIdentity new command: #identifier;
> objects: #(c1 c2 c3 c4 c5)).
>   b
> -=-=-=-=-=-=-=-=-=-=-=-=
>
>
> Age of some classes:
> -=-=-=-=-=-=-=-=-=-=-=-=
>   | b |
>   b := RTTimeLine new.
>   b extent: 500 @ 500.
>   ((RTShape withAllSubclasses sortedAs: #ageInDaysRounded) select:
> #hasMethods)
>   do: [ :cls |
>   e := RTTimeLineEntry new.
>   e identifier: cls.
>   e start: cls computeYoungestMethod ageInDays.
>   e end: cls computeOldestMethod ageInDays.
>   b addEntry: e ].
>   b
> -=-=-=-=-=-=-=-=-=-=-=-=
>
>
>
> All these examples are in the Roassal time line example menu.
>
> This is still an early version. Let us know how it goes!
> https://www.facebook.com/ObjectProfile/posts/840542572699008
>
> Cheers,
> Alexandre
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>> On May 7, 2015, at 4:25 PM, H. Hirzel  wrote:
>>
>> Hello
>>
>> Has somebody done a GANTT chart?
>>
>>   GanttChartMorph openOn: aCollectionOfActivities
>>
>> ?
>>
>> Activities have
>> - id
>> - description
>> - start date
>> - end date
>> ?
>>
>> Regards
>>
>> Hannes
>>
>
>



Re: [Pharo-dev] Pharo 4 & NeoCSV

2015-05-09 Thread H. Hirzel
Thank you for adding this for 'normal' people! Adding it was smooth

On 2/8/15, stepharo  wrote:
>
> Le 7/2/15 18:48, Sven Van Caekenberghe a écrit :
>>> On 07 Feb 2015, at 17:21, stepharo  wrote:
>>>
>>> sven I'm adding a menu to the configuration browser to define the
>>> corresponding repo in MC because I'm tired to add repo manually.
>> OK.
>>
>> I always just load a random small thing to get the repo defined ;-)
>
> :)
> I don't and imagine normal people do the same so now the UI is better
> Stef
>>
>>> Stef
>>>
>>> Le 7/2/15 14:19, Sven Van Caekenberghe a écrit :
 Hi Andreas,

 I added it.

 Sven

> On 07 Feb 2015, at 13:59, Andreas Wacknitz  wrote:
>
> I miss the configuration of NeoCSV in the configuration browser of
> Pharo 4. Is there any reason for the lack of it?
> NeoJSON is available, though…
>
> Regards
> Andreas

>>>
>>
>>
>
>
>



[Pharo-dev] GanttChartMorph openOn: aCollectionOfActivities ?

2015-05-07 Thread H. Hirzel
Hello

Has somebody done a GANTT chart?

   GanttChartMorph openOn: aCollectionOfActivities

?

Activities have
- id
- description
- start date
- end date
?

Regards

Hannes



Re: [Pharo-dev] Main pillar web site?

2015-05-04 Thread H. Hirzel
Thank you!

Here is the summary



Pillar documentation


Start page
http://www.smalltalkhub.com/#!/~Pier/Pillar


Documentation
https://github.com/pillar-markup/pillar-documentation



First Google hit
https://ci.inria.fr/pharo-contribution/job/PharoProjectCatalog/HTML_Report/Pillar.html

Leads to Pharo contribution CI server  (Confirm security exception, it is safe).



Pillar tool chain repositories
---

https://github.com/pillar-markup



[Pharo-dev] Main pillar web site?

2015-05-04 Thread H. Hirzel
Hello

Where is the main Pillar web site

Google for

   pillar Pharo

gives as first hit

https://ci.inria.fr/pharo-contribution/job/PharoProjectCatalog/HTML_Report/Pillar.html

which is an untrusted connection.
Is it safe to continue?

Regards

Hannes



Re: [Pharo-dev] PetitMarkdown

2015-05-03 Thread H. Hirzel
Hi Jan,

Thank you for your answer, in particular the PPMiniCommonMark example.

For me this is an interesting work, I can see a lot lot of application
areas in and out of the Pharo context. I'll have a closer look at your
implementation, in particular the test cases.

Have a good day

Hannes

On 5/3/15, Jan Kurš  wrote:
> Hi Hannes,
>
> I actually did not do any changes to the grammar, I wrote the grammar from
> scratch. The reason I did so was to have a proof of concept of my
> PetitParser extension for parsing indentation-sensitive grammars such as
> Markdown or Python.
>
> The most simplest example you can do is to evaluate following:
>
> PPMiniCommonMark new parse: '
> # Heading
>
> - list item
> - second list item
> '
> As a result, you will get HTML fragment, that corresponds to one heading
> and list of items. All the supported CommonMark syntax is covered in the
> tests, so what you don't see in the test, has to be implemented.
>
> CommonMark is kind of beast to parse, I had to do one big extension to
> parse it. It is to introduce the indentation stack (as described in
> http://scg.unibe.ch/research/indentParsing). You can see the indentation
> stack manipulation in PPMiniCommonMark rules such as: #prefix, #quoteBegin,
> #quoteEnd, #itemBullet and #itemEnd.
>
> Cheers,
> Jan
>
> On 3 May 2015 at 08:46, H. Hirzel  wrote:
>
>> Thank you Jan, for your work in enhancing PetitParser for Markdown. I
>> think I got what you did by loading PetitParser in Pharo 4.0.
>>
>> I found the examples PPMarkdownGrammarTest, category testing-documents.
>>
>> I also read http://scg.unibe.ch/research/indentParsing.
>>
>> Could you please elaborate a bit more about the changes you did to the
>> grammar and give some more usage examples?
>>
>> Regards
>>
>> Hannes
>>
>> On 4/14/15, Jan Kurš  wrote:
>> > Hey,
>> >
>> > I also created an indentation sensitive extension of PetitParser, I
>> > also
>> > included some examples including Markdown. If you load PetitParser, you
>> get
>> > the Markdown example as well.
>> >
>> > There is a short introduction to the indentation:
>> >
>> > http://scg.unibe.ch/research/indentParsing
>> >
>> > Cheers Jan
>> > On Apr 13, 2015 5:24 PM, "H. Hirzel"  wrote:
>> >
>> >> Are there any news on this?
>> >>
>> >> --Hannes
>> >>
>> >> On 12/28/14, Norbert Hartl  wrote:
>> >> > I found markdown parsers in smalltalkhub and in the configuration
>> >> browser.
>> >> >
>> >> > http://smalltalkhub.com/#!/~PharoExtras/PetitMarkdown/
>> >> > <http://smalltalkhub.com/#!/~PharoExtras/PetitMarkdown/>
>> >> >
>> >> > and the one in the configuration browser
>> >> >
>> >> > PPMarkdown
>> >> >
>> >> > If I understand it correctly both are rooted into work Camillo did.
>> The
>> >> one
>> >> > in PharoExtras looks newer to me. So I assume the best would be to
>> copy
>> >> the
>> >> > ConfigurationOfPetitMarkdown from PharoExtras to MetacelloRepo and
>> >> > remove
>> >> > the ConfigurationOfPPMarkdown. Right? Or are there any objections?
>> >> >
>> >> > Norbert
>> >>
>> >>
>> >
>>
>>
>



Re: [Pharo-dev] PetitMarkdown

2015-05-02 Thread H. Hirzel
Thank you Jan, for your work in enhancing PetitParser for Markdown. I
think I got what you did by loading PetitParser in Pharo 4.0.

I found the examples PPMarkdownGrammarTest, category testing-documents.

I also read http://scg.unibe.ch/research/indentParsing.

Could you please elaborate a bit more about the changes you did to the
grammar and give some more usage examples?

Regards

Hannes

On 4/14/15, Jan Kurš  wrote:
> Hey,
>
> I also created an indentation sensitive extension of PetitParser, I also
> included some examples including Markdown. If you load PetitParser, you get
> the Markdown example as well.
>
> There is a short introduction to the indentation:
>
> http://scg.unibe.ch/research/indentParsing
>
> Cheers Jan
> On Apr 13, 2015 5:24 PM, "H. Hirzel"  wrote:
>
>> Are there any news on this?
>>
>> --Hannes
>>
>> On 12/28/14, Norbert Hartl  wrote:
>> > I found markdown parsers in smalltalkhub and in the configuration
>> browser.
>> >
>> > http://smalltalkhub.com/#!/~PharoExtras/PetitMarkdown/
>> > <http://smalltalkhub.com/#!/~PharoExtras/PetitMarkdown/>
>> >
>> > and the one in the configuration browser
>> >
>> > PPMarkdown
>> >
>> > If I understand it correctly both are rooted into work Camillo did. The
>> one
>> > in PharoExtras looks newer to me. So I assume the best would be to copy
>> the
>> > ConfigurationOfPetitMarkdown from PharoExtras to MetacelloRepo and
>> > remove
>> > the ConfigurationOfPPMarkdown. Right? Or are there any objections?
>> >
>> > Norbert
>>
>>
>



Re: [Pharo-dev] PetitMarkdown

2015-04-13 Thread H. Hirzel
Are there any news on this?

--Hannes

On 12/28/14, Norbert Hartl  wrote:
> I found markdown parsers in smalltalkhub and in the configuration browser.
>
> http://smalltalkhub.com/#!/~PharoExtras/PetitMarkdown/
> 
>
> and the one in the configuration browser
>
> PPMarkdown
>
> If I understand it correctly both are rooted into work Camillo did. The one
> in PharoExtras looks newer to me. So I assume the best would be to copy the
> ConfigurationOfPetitMarkdown from PharoExtras to MetacelloRepo and remove
> the ConfigurationOfPPMarkdown. Right? Or are there any objections?
>
> Norbert



Re: [Pharo-dev] [ANN] WKHTML2PDF for Pharo

2015-01-07 Thread H. Hirzel
wkhtmltopdf runs fine on Linux; I have not tested it with Pharo though.

Can anybody confirm that it works with Pharo on Linux?

--Hannes

On 12/20/14, Torsten Bergmann  wrote:
>>Very interesting (especially for when we do have lots of tables and colors,
>> which I do happen to have a lot :-) ).
>
> Yes, combined with Mustache for templates it is a nice reporting solution.
>
>>Now, is it working on Linux?
>
> Havent tried, but should be possible out of the box
>
> Bye
> T.
>
>



Re: [Pharo-dev] [amber-lang] Amber 0.13 released!

2014-10-10 Thread H. Hirzel
On 10/10/14, Bernat Romagosa  wrote:
> These are great news. Congratulations to all!
>
> Any further info on how deploying works now?

Is Amber now creating a single
> compiled js file with the whole project?

YES.

Do

   amber init

to create a project 0.13 style.

This creates among a lot of other files a Gruntfile.js (http://gruntjs.com/).

With

 grunt deploy

on the command line
your project is transmogrifyed into a single JavaScript file called 'the.js'.

This means for deployment you only need

index.html and the.js

'the.js' contains only JavaScript. No Smtk sources.

A crucial feature to actually use Amber in projects.

So for me this is a much larger mile stone than the modest 0.13
version number implies.

--Hannes




> 2014-10-10 14:17 GMT+02:00 Nicolas Petton :
>
>> Hi!
>>
>> After three months of development we are happy to announce the release
>> of Amber 0.13.1 (skipping 0.13.0 for technical reasons). The team has
>> once again been busy improving Amber to make it rock more than ever!
>>
>> With 172 commits, this release brings several important improvements as
>> well as the usual bug fixes.
>>
>> Highlights:
>>
>> * Reworked cleaner DNU handling in core.
>> * `amber init` fully embraced as the way to create new project.
>> * Helios IDE is extracted and is now a project on its own.
>>   * It is included as dev-dependency in any new project by default.
>> * Movable data out of index.html:
>>   * list of production packages in deploy.js;
>>   * list of development packages in devel.js;
>>   * project amd mappings in local.amd.json;
>>   * libraries' amd mappings in lib_directory.amd.json.
>> * 'Batteries included' deployment via `grunt deploy`.
>> * 0.13.1 because of technical issues w/ 0.13.0 release process.
>>
>> Commits: https://github.com/amber-smalltalk/amber/compare/0.12.6...0.13.0
>> Issues:
>> https://github.com/amber-smalltalk/amber/issues?q=is%3Aissue+is%3Aclosed+milestone%3A0.13.0
>>
>> API changes:
>>
>> - Smalltalk side:
>>   * String >> asSelector is now String >> asJavaScriptMethodName
>>   * String >> asJavaScriptSelector is now String >>
>> asJavaScriptPropertyName
>>   * Collection >> ifEmpty:ifNotEmpty: family passes self to ifNotEmpty:
>> block
>>
>> - JavaScript side
>>   * smalltalk.selector is now smalltalk.st2js
>>   * smalltalk.convertSelector is now smalltalk.js2st
>>   * Smalltalk vm is now Smalltalk core
>>   * boot.js's .vm is now .api
>>   * amber load sets' .vm is now .api
>>   * Internal variables smalltalk/globals/_st are now $core/$globals/$recv
>>
>> Additions:
>>
>> + smalltalk.
>>   + accessJavaScript
>> + Object >>
>>   + postMessageTo:
>>   + postMessageTo:origin:
>> + Class >>
>>   + heliosClass
>> + SmalltalkImage >>
>>   + core
>> + amber/boot exports
>>   + api
>> + amber/{devel,deploy,lang} exports
>>   + api
>>
>> Removals:
>>
>> - ProtoObject class >>
>>   - heliosClass
>> - Object class >>
>>   - heliosClass
>>
>> I would like to thank Herbert for all his hard work on this release. He
>> has done a wonderful job as the new maintainer of Amber. Thank you!
>>
>> Nicolas
>> --
>> Nicolas Petton
>> http://nicolas-petton.fr
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "amber-lang" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to amber-lang+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Bernat Romagosa.
>
> --
> You received this message because you are subscribed to the Google Groups
> "amber-lang" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to amber-lang+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



Re: [Pharo-dev] [Pharo-users] PillarHub

2014-07-03 Thread H. Hirzel
On 7/2/14, J.F. Rick  wrote:
> Awesome. Not that I have time right now but I have always wanted to bring
> Swiki / AniAniWeb into the present. This would be the right foundational
> work to make this a useful reality.
>
> On a side note, I apologize for all the bad qualities of Pillar markup.
> Back in 1999, I created ComSwiki out of the beginning that was PWS Swiki
> (the first wiki to eschew camel case for links). One of the first things I
> did was to make changes to the markup to improve it. Of course, once we had
> some users and established content, all the decisions I made at that early
> point in the project were made permanent. Looking at Pillar, it pretty much
> uses the syntax I created back then (with a few improvements). I'm sure the
> markup just drifted through the Smalltalk community and was then adopted by
> Pillar. It's not a bad design but I've always felt that a better, more
> extensible syntax was possible. As usual, the good proved to be the enemy
> of the great.
>
> Cheers,
>
> Jeff

Jeff,

According to
https://github.com/pillar-markup/pillar-documentation

the Pillar document model is based on the Pier document model by Lukas Renggli

http://piercms.com/

Which might in turn be based on your Swiki model?

Noteworthy to check out these days is

https://github.com/GitbookIO/gitbook
https://www.gitbook.io/

and of course pandoc which converts from and to an amazing number of
markup formats
http://johnmacfarlane.net/tools.html

--Hannes

>
>
> On Wed, Jul 2, 2014 at 10:57 AM, p...@highoctane.be 
> wrote:
>
>>
>> Superb!
>>
>> Keep on pushing, that's how we can attain the critical momentum.
>>
>> Hopefully, I'll be able to show something from my side as well on the
>> commercial products front.
>>
>> Phil
>>
>>
>>
>> On Wed, Jul 2, 2014 at 10:00 AM, Sven Van Caekenberghe 
>> wrote:
>>
>>> Wow, amazing - great work !
>>>
>>> On 02 Jul 2014, at 09:28, Yuriy Tymchuk  wrote:
>>>
>>> > Hi everyone.
>>> >
>>> > I'm so excited that I cannot keep silent. Guys from Pharocloud have
>>> implemented online editor (and storage) for Pillar documents. This is
>>> really amazing, and you can check it out here:
>>> http://pillarhub.pharocloud.com/hub/pillarhub/about.
>>> >
>>> > They have a really nice plans, and now we can write pillar docs with
>>> live compilation and share them online.
>>> >
>>> > Cheers!
>>> > Uko
>>>
>>>
>>>
>>
>
>
> --
> Jochen "Jeff" Rick, Ph.D.
> http://www.je77.com/
> Skype ID: jochenrick
>



Re: [Pharo-dev] Pharo and Amber

2014-06-04 Thread H. Hirzel
Thank you for the link, Damien.

https://github.com/tide-framework/tide

tells me to do
TDDispatcher tideIndexPageUrl inspect

which leads to a 'subscript out of bounds error'.

Any suggestions?
How do I proceed to start the server and use Amber?

Regards
Hannes


On 6/2/14, Damien Cassou  wrote:
> On Sun, Jun 1, 2014 at 11:19 AM, Torsten Bergmann  wrote:
>> Is there an Amber-Pharo one click built with CI
>> to allow development with both (amber for client,
>> pharo on server).
>
>
> https://ci.inria.fr/pharo-contribution/job/Tide/
>
> --
> Damien Cassou
> http://damiencassou.seasidehosting.st
>
> "Success is the ability to go from one failure to another without
> losing enthusiasm."
> Winston Churchill
>
>



[Pharo-dev] TilingWindowManager -- WorldManager? [Pharo3.0]

2014-05-29 Thread H. Hirzel
Hello

I installed TilingWindowManager through the
MetacelloConfigurationBrowser  in Pharo 3.0.

The class comment of TWMWorldManager says

I provide an unlimited number of blank canvases on which to create...

"Add a world:"
WorldManager instance createOrSwitchToWorldNamed: 'JustAnotherWorld'.

"Return to the default world:"
 WorldManager instance createOrSwitchToWorldNamed: 'Pharo'.


However the global WorldManager is not known anymore. What do I need
to use instead?

Thank you for the answer in advance

Hannes



Re: [Pharo-dev] [Moose-dev] Roassal visualizing a corner of the Universe

2014-05-08 Thread H. Hirzel
Yes, I meant what Chris clarifies.
--HH

On 5/8/14, Chris Cunningham  wrote:
> So, Hannes may have been referring to optimizing the slow parts of the
> process in Native Boost directly instead of using an external library (if
> not, may I suggest it?).  It is possible that just a few tweaks using
> Assembler in the process would get the speed up to an acceptable level,
> which would be determined by profiling the performance.  Of course, that
> path requires someone on your project that can understand Assembler to get
> familiar with NativeBoost.
> -cbc
>
> On Thu, May 8, 2014 at 8:05 AM, Alexandre Bergel
> wrote:
>
>> We will surely review all the different options for interacting with
>> external libraries. Ronie is our local expert  :-)
>>
>> Currently, we have no preview of the Roassal book to share. Give us a
>> couple of months :-)
>>
>> Cheers,
>> Alexandre
>>
>>
>> On May 8, 2014, at 9:23 AM, H. Hirzel  wrote:
>>
>> > Interesting project, Alexandre!
>> >
>> > On 5/6/14, Alexandre Bergel  wrote:
>> >> Thanks Kilon for your nice words.
>> >> Currently, AstroCloud is a bit slow. For example, loading this image
>> takes
>> >> much more than it should. For now, speed is not our priority.
>> AstroCloud has
>> >> to be fast and we will make it fast. Probably relying on external
>> library is
>> >> the way to go.
>> >
>> > I assume you consider or have considered NativeBoost as well?
>> >
>> >>
>> >> Just to give a bit more context about why we are doing AstroCloud.
>> >> ALMA
>> is
>> >> the largest observatory on Earth, making it the largest astronomical
>> project
>> >> in existence (http://www.almaobservatory.org). This is what humanity
>> has
>> >> best to detect life outside Earth.
>> >> ALMA is made of 66 high-precision antenas making it possible to see
>> deep in
>> >> the universe. Unfortunately, there is no good software to process
>> >> these
>> >> immensely complex pictures. Some tool suite naturally exist, but they
>> were
>> >> not made for ALMA, making these existing tools largely suboptimal to
>> process
>> >> complex picture of ALMA.
>> >> Faviola’s dream (and mine) is to produce a tool ready to be consumed
>> >> by
>> >> astronomers to process ALMA pictures. Faviola and I are currently
>> seeking
>> >> for additional resources on making this happen.
>> >
>> >
>> >> Regarding your help about documenting Roassal. It is very welcome! In
>> one of
>> >> my previous post, I said that 2014 will be the year of documenting
>> Roassal.
>> >> A book is on its way.
>> >
>> >
>> >> We will need people to review it. So thanks!
>> >
>> > Preview of part of it on line?
>> >
>> >
>> > Regards
>> > Hannes
>> >
>> > ___
>> > Moose-dev mailing list
>> > moose-...@iam.unibe.ch
>> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>



Re: [Pharo-dev] Roassal visualizing a corner of the Universe

2014-05-08 Thread H. Hirzel
Interesting project, Alexandre!

On 5/6/14, Alexandre Bergel  wrote:
> Thanks Kilon for your nice words.
> Currently, AstroCloud is a bit slow. For example, loading this image takes
> much more than it should. For now, speed is not our priority. AstroCloud has
> to be fast and we will make it fast. Probably relying on external library is
> the way to go.

I assume you consider or have considered NativeBoost as well?

>
> Just to give a bit more context about why we are doing AstroCloud. ALMA is
> the largest observatory on Earth, making it the largest astronomical project
> in existence (http://www.almaobservatory.org). This is what humanity has
> best to detect life outside Earth.
> ALMA is made of 66 high-precision antenas making it possible to see deep in
> the universe. Unfortunately, there is no good software to process these
> immensely complex pictures. Some tool suite naturally exist, but they were
> not made for ALMA, making these existing tools largely suboptimal to process
> complex picture of ALMA.
> Faviola’s dream (and mine) is to produce a tool ready to be consumed by
> astronomers to process ALMA pictures. Faviola and I are currently seeking
> for additional resources on making this happen.


> Regarding your help about documenting Roassal. It is very welcome! In one of
> my previous post, I said that 2014 will be the year of documenting Roassal.
> A book is on its way.


>We will need people to review it. So thanks!

Preview of part of it on line?


Regards
Hannes



Re: [Pharo-dev] Smalltalk Impact

2014-01-16 Thread H. Hirzel
On 1/15/14, Marcus Denker  wrote:
>
> On 15 Jan 2014, at 09:04, Marcus Denker  wrote:
>>>
>>>
>> Etoys should have contributed to Squeak when they had the resources.
>> To secure their own future.
>>
>> “We are not payed to work on Squeak”, that is what I got told…

Probably correct at that time...

>> in a tone
>> as if my questions was the dumbest question one could have asked.
>>
>>  
> In hindsight, I think that the more aggressive reaction I got, the more it
> was a sign of me actually being right, but I did not understand that back
> than…

Difference in philosophy and priorities. Many people assume you can
build something new and well defined on an existing ground in spite of
a lot of idiosyncrasies and inconsistencies. Just by wrapping and
creating a DSL. But in Smalltalk the idiosyncrasies remain visible
whereas in most cases you might hide them behind an API.


> I just slowly and quietly despaired until I could not even sleep anymore at
> night.

And the history so far tells us that it is _a lot_ of clean up effort .

Noteworthy however: Scratch is successful in spite of being built on a
early version of Squeak.
The situation of Etoys to the contrary is not so clear. A comparison
needs to consider more factors than just the platform it is built
on

--Hannes



Re: [Pharo-dev] Help in St. Petersburg?

2013-11-18 Thread H. Hirzel
This is probably not a real request from Hernan but from somebody else
who got access to his mail account pw.:-(

On 11/18/13, vmusulainen  wrote:
> Hi, I'm from St-Petersburg. Which help is need to your friend?
>
>
>
> --
> View this message in context:
> http://forum.world.st/Help-in-St-Petersburg-tp4722957p4723006.html
> Sent from the Pharo Smalltalk Developers mailing list archive at
> Nabble.com.
>
>



Re: [Pharo-dev] Use pharo users mailing list

2013-09-23 Thread H. Hirzel
On 9/23/13, blake  wrote:
> If StackOverflow is dead, what is replacing it? Are people reverting to
> discussion groups/mail lists? Or different Q&A sites, like the
> aforementioned InfoQ?
>
> (Alan Kay is right: programming really IS pop culture.)

And what does this imply?

[snip]



Re: [Pharo-dev] Use pharo users mailing list

2013-09-23 Thread H. Hirzel
P.S. I found your Pharo questions

http://stackoverflow.com/search?q=user%3A35306+[pharo]

28 of them.

Maybe this is a case

http://stackoverflow.com/questions/13788585/smalltalk-binding/13789481#13789481

"Smalltalk binding"
Your answer has 0 points, the accepted anwer given by Hernan has 5 points.


On 9/23/13, H. Hirzel  wrote:
> Hello Stephan
>
> On 9/23/13, Stephan Eggermont  wrote:
>> Hannes wrote:
>>> In reply to this post by Stephan Eggermont
>>> On 9/23/13, Stephan Eggermont <[hidden email]> wrote:
>>> > Kilon wrote
>>> >>Here is a radical suggestion you probably don't want to hear.
>>> >>Close down Pharo users mailing list, redirect everyone to
>>> >> stackoverflow.
>>> >>
>>> >
>>> > Definitely not. Stackoverflow is nearly dead, and seriously unsuitable
>>> > for
>>> > small languages.
>>>
>>> There are obstacles but one cannot say that it is "seriously
>>> unsuitable".
>>
>> I feel fully qualified to make that statement.
>
> http://stackoverflow.com/search?q=Stephan+Eggermont
> 5 questions, all three years ago? No Pharo question.
>
> Or do you use a nick name these days?
>
> And where are the closed Pharo stackoverflow questions?
>
>> Getting voted on by
>> majority views is not exactly what we need. Especially not in
>> a cargo-cult driven profession.
>
> And what is Pharo? A closed sect with people who think everybody else
> is clueless and does not want to operate _the_ open space about
> programming questions? There are other small communities on
> stackoverflow. For example  XSL-FO, a technology which has been around
> for a long time, good concepts, has mature tools, is useful but still
> is not popular.
>
> The main thing is not about  voting but about the person who asks
> accepting the answer. And that is often the answer which later on gets
> votes.
>
> The accepted answer is likely the answer which solves the programming
> problem asked.
> And the questions are well organized. The existing pool of 283 Pharo
> questions is a useful resource. More useful that searching through the
> mailing list archive.
>
> http://stackoverflow.com/questions/tagged/pharo
>
>>> >Good questions will get closed by clueless people.
>>> Mostly if the form does not fit.
>>
>> Nope. there has been a strong change in what is deemed to be an
>> acceptable question on SO in the past years.  And not in the right
>> direction.
>> I know several posters here who have been bitten by that.
>
> Could you give some examples, please?
>
>>> And if there are Pharo people (maybe earned in another area) with
>>> enough reputation points this may be prevented
>>
>> That would be nice, but isn't the case. Stackoverflow doesn't work like
>> that.
>
>
>
>
>>> > Good answers will get downvoted because they go against majority
>>> > views.
>
> It depends on which tag set you operate in.
> I doubt that this applies to a question tagged 'Pharo'. Proper tagging
> is important to frame the question properly.
>
>>> Why?
>>
>> Because stackoverflow is an opinion site, dominated by popularity.
>
> Yes, popular languages and thus the questions about them get a lot of
> reputation points.
> But that is not all that important. The important thing is that you
> can organize programming questions in a good way and solve them
> nicely. And the content is under a creative common license, thus may
> he "harvested" for a FAQ list.
>
>> Nobody says an answer has to be right. Like I said, take a look at
>> questions on OODBs.
>
> We are not talking about OODBs where it is natural that divergent
> opinions come in but about Smalltalk programming which is a well
> established mature programming technology, has acceptance of being
> "useful" (but only for 'specialists' as the general opinion goes) and
> thus has a narrow focus. So the subcommunity can operate quite
> unhampered in stackoverflow :-)
>
>>> >The ranking system is heavily skewed towards popular languages.
>
> Sure, but is this a problem? There are 1000 million speakers of
> Chinese and I still did not learn Chinese yet.
>
>>> It is based on the number of hits which is naturally less in less
>>> popular languages.
>>> However subcommunities may function well in stackoverflow.
>>
>> No, not really. It means that members of subcommunities have less
>> rights and power. There is no value in subdividing our community
>> further.
>
> You mean by having questions on stackoverflow and the mailing list?
>
> Let me summarize: Nobody forces you to operate on stackoverflow, but I
> consider both, the mailing list and stackoverflow, as useful. And some
> cross-referencing might be useful.
>
> --Hannes
>
>
> P.S. It is easy to monitor what is happening on stackoverflow
> regarding 'Pharo' even if you do not want to participate.
>
> Just visit
> http://stackoverflow.com/questions/tagged/pharo
> from time to time.
>



Re: [Pharo-dev] Use pharo users mailing list

2013-09-23 Thread H. Hirzel
Hello Stephan

On 9/23/13, Stephan Eggermont  wrote:
> Hannes wrote:
>> In reply to this post by Stephan Eggermont
>> On 9/23/13, Stephan Eggermont <[hidden email]> wrote:
>> > Kilon wrote
>> >>Here is a radical suggestion you probably don't want to hear.
>> >>Close down Pharo users mailing list, redirect everyone to stackoverflow.
>> >>
>> >
>> > Definitely not. Stackoverflow is nearly dead, and seriously unsuitable
>> > for
>> > small languages.
>>
>> There are obstacles but one cannot say that it is "seriously
>> unsuitable".
>
> I feel fully qualified to make that statement.

http://stackoverflow.com/search?q=Stephan+Eggermont
5 questions, all three years ago? No Pharo question.

Or do you use a nick name these days?

And where are the closed Pharo stackoverflow questions?

> Getting voted on by
> majority views is not exactly what we need. Especially not in
> a cargo-cult driven profession.

And what is Pharo? A closed sect with people who think everybody else
is clueless and does not want to operate _the_ open space about
programming questions? There are other small communities on
stackoverflow. For example  XSL-FO, a technology which has been around
for a long time, good concepts, has mature tools, is useful but still
is not popular.

The main thing is not about  voting but about the person who asks
accepting the answer. And that is often the answer which later on gets
votes.

The accepted answer is likely the answer which solves the programming
problem asked.
And the questions are well organized. The existing pool of 283 Pharo
questions is a useful resource. More useful that searching through the
mailing list archive.

http://stackoverflow.com/questions/tagged/pharo

>> >Good questions will get closed by clueless people.
>> Mostly if the form does not fit.
>
> Nope. there has been a strong change in what is deemed to be an
> acceptable question on SO in the past years.  And not in the right
> direction.
> I know several posters here who have been bitten by that.

Could you give some examples, please?

>> And if there are Pharo people (maybe earned in another area) with
>> enough reputation points this may be prevented
>
> That would be nice, but isn't the case. Stackoverflow doesn't work like
> that.




>> > Good answers will get downvoted because they go against majority
>> > views.

It depends on which tag set you operate in.
I doubt that this applies to a question tagged 'Pharo'. Proper tagging
is important to frame the question properly.

>> Why?
>
> Because stackoverflow is an opinion site, dominated by popularity.

Yes, popular languages and thus the questions about them get a lot of
reputation points.
But that is not all that important. The important thing is that you
can organize programming questions in a good way and solve them
nicely. And the content is under a creative common license, thus may
he "harvested" for a FAQ list.

> Nobody says an answer has to be right. Like I said, take a look at
> questions on OODBs.

We are not talking about OODBs where it is natural that divergent
opinions come in but about Smalltalk programming which is a well
established mature programming technology, has acceptance of being
"useful" (but only for 'specialists' as the general opinion goes) and
thus has a narrow focus. So the subcommunity can operate quite
unhampered in stackoverflow :-)

>> >The ranking system is heavily skewed towards popular languages.

Sure, but is this a problem? There are 1000 million speakers of
Chinese and I still did not learn Chinese yet.

>> It is based on the number of hits which is naturally less in less
>> popular languages.
>> However subcommunities may function well in stackoverflow.
>
> No, not really. It means that members of subcommunities have less
> rights and power. There is no value in subdividing our community
> further.

You mean by having questions on stackoverflow and the mailing list?

Let me summarize: Nobody forces you to operate on stackoverflow, but I
consider both, the mailing list and stackoverflow, as useful. And some
cross-referencing might be useful.

--Hannes


P.S. It is easy to monitor what is happening on stackoverflow
regarding 'Pharo' even if you do not want to participate.

Just visit
http://stackoverflow.com/questions/tagged/pharo
from time to time.



Re: [Pharo-dev] Use pharo users mailing list

2013-09-23 Thread H. Hirzel
On 9/23/13, Stephan Eggermont  wrote:
> Kilon wrote
>>Here is a radical suggestion you probably don't want to hear.
>>Close down Pharo users mailing list, redirect everyone to stackoverflow.
>
> Definitely not. Stackoverflow is nearly dead, and seriously unsuitable for
> small languages.

There are obstacles but one cannot say that it is "seriously
unsuitable". Stackoverflow question demand a certain format, typically
something like

- statement of what you want to accomplish
- attempt a solution with code which has problems
- question

>Good questions will get closed by clueless people.
Mostly if the form does not fit.
And if there are Pharo people (maybe earned in another area) with
enough reputation points this may be prevented

> Good answers will get downvoted because they go against majority
> views.

Why?

>The ranking system is heavily skewed towards popular languages.

It is based on the number of hits which is naturally less in less
popular languages.
However subcommunities may function well in stackoverflow.

the tagging and referencing system is excellent.

> Stackoverflow doesn't allow discussions (and interesting questions),

No, but that is not the aim of the site. It is a question and answer
site for _coding_ and maybe _design_ problems to a certain extent.

However it allows for wiki pages. Any answer may be turned into a wiki page.

> which is a major reason to have these lists.

List are good in addition.

--Hannes

> To see for yourself, take a look at the questions related to OODBs.
>
> Stephan
>
>



Re: [Pharo-dev] About abuse of inheritance

2013-07-22 Thread H. Hirzel
On 7/22/13, Tudor Girba  wrote:
> I love this debate, but given the energy it attracted, I now apologize to
> have fueled it.
>
> By reading the thread, I believe that everyone involved in the discussion
> is on the same page on 99.9% of the cases,
+1
the only real difference being
> the case of the Announcer (and even there, the difference is more
> philosophical in nature).
+1
>
> Would it be Ok to call it a day and move on? :)
+1
>
> Cheers,
> Doru
>
>
>
>
> On Mon, Jul 22, 2013 at 1:05 PM, Igor Stasenko  wrote:
>
>> On 21 July 2013 20:21, Denis Kudriashov  wrote:
>> > 2013/7/21 Stéphane Ducasse 
>> >>
>> >> Interesting how many people in this list think that "Announcer
>> >> subclass:
>> >> #TxEditor" provides special implementation of announcer named
>> >> TxEditor?
>> >>
>> >>
>> >> Many
>> >> this is composition using inheritance and inheritance should not be
>> >> used
>> >> like that.
>> >>
>> >> Announcer subclass: #GreedyAnnouncer
>> >>
>> >> Announcer subclass: #RemoteAnnouncer
>> >
>> >
>> > And if we prefer composition we should not implement such kind of
>> hierarchy.
>> > We should implement GreadySubscriptionsRegistry,
>> RemoteSubscriptionsRegistry
>> > or AsynchSubscriptionsRegistry and reuse existed Announcer. All
>> subscribing
>> > and delivering logic implemented by subscription registry. Announcer is
>> just
>> > simple delegator with convenient api to create Subscription instances:
>> >
>> > Announcer>>subscribe: anAnnouncementClass do: aValuable
>> > "Declare that when anAnnouncementClass is raised, aValuable is
>> > executed."
>> > ^ registry add: (
>> > AnnouncementSubscription new
>> > announcer: self;
>> > announcementClass: anAnnouncementClass;
>> > valuable: aValuable)
>> >
>> >
>> > Announcer>>announce: anAnnouncement
>> >
>> > | announcement |
>> > announcement := anAnnouncement asAnnouncement.
>> > registry ifNotNil: [
>> > registry deliver: announcement
>> > ].
>> > ^ announcement
>> >
>> > All magic happens inside #add: and #deliver: methods of
>> > SubscriptionsRegistry.
>> >
>> > Also announcements framework provides very nice feature: you can have
>> > announcer as last argument of event handler selector (that's why
>> > AnnouncementSubscription contains reference to announcer instance):
>> >
>> > announcer on: MyEvent send: #handleAnnouncement:raisedBy: to:
>> > aSubscriber
>> >
>> > Without subclassing YourEventsSource from Announcer you will not have
>> such
>> > feature. Or you will need implement complex subscription method inside
>> > YourEventSource which will delegates special event handler to its
>> announcer
>> >
>>
>> 1. you don't need separate class to represent event source.
>> it can be any object which does:
>>
>> announcer announce: Foo.
>>
>> in any place..
>> I do not see any practical gains from forming a separate class for this
>> role.
>> It is barely formalizeable because the way how users creating and
>> triggering events is arbitrary.
>>
>> 2. SubscriptionRegistry is an implementation detail. It is private. It
>> is a way how Announcer
>> doing things inside. It should be no concern of anything outside to
>> consider what it does.
>> You won't find this class in VisualWorks implementation, for instance.
>>
>> 3. again, event source - is any object which says 'announcer announce:
>> ...'
>> It is NOT announcer, because announcer is an event dispatcher.
>> dispatcher ~= source
>> Is it so hard to see a difference?
>>
>> When you subclass from Announcer, is that you want to say:
>>
>> 'self announce:' , so the very same object acts both as event source
>> and event dispatcher.
>>
>> But then , as Stef said, by subclassing you inheriting API.
>> So, what prevents me from writing following code, in my own class,
>> which uses your domain object
>> in a following way:
>>
>> coolDomainObject := YourDomainObjectWhichInheritsFromAnnouncer new.
>>
>> coolDomainObject on: Foo do: #bar.
>> coolDomainObject announce: Foo.
>>
>> That i guess is not something you expected, huh? But why not?
>> As long as your object understand this protocol, and as long as you
>> don't overriding original behavior of Announcer,
>> i can abuse your object in a way you did not expected.
>> And this is a consequence of violating principle of least authority.
>>
>> Because once you declare that we're free to use subclassing for any
>> purpose,
>> then, i can declare: i am free to use any subclass of Announcer as
>> announcer for myself.
>>
>> Lets write random code, do not follow any rules and everyone will be
>> happy.
>>
>> ---
>> Best regards,
>> Igor Stasenko.
>>
>>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
>



Re: [Pharo-dev] About abuse of inheritance

2013-07-20 Thread H. Hirzel
On 7/19/13, Igor Stasenko  wrote:
> On 19 July 2013 16:17, Tudor Girba  wrote:
>> Hi Igor,
>>
>> I love these discussions. I agree that abusing inheritance is
>> counter-productive. Definitely, "Shampoo subclass: #Shower" does not
>> match
>> any mental model I can think of. But, I am not seeing "Announcer
>> subclass:
>> #MyDomainConcept" equally as an abuse.
>>
>> Here is why.
>>
>> When I say "Object subclass: #MyDomainConcept", my actual intention is
>> not
>> to reuse types necessarily, but rather the infrastructure needed for the
>> Smalltalk runtime. From this point of view, it is an implementation
>> inheritance. I could as well, inherit from ProtoObject, but I do not do
>> it
>> because Object gives me a bit more technical infrastructure.
>>
>> For me, Announcer is nothing but an Object that has an extra technical
>> capability. Inheriting from Announcer rather than Object seems the same
>> as
>> inheriting from Object rather than ProtoObject.
>>
>> Now, you can shoot.
>>
>
> As i understood, you see nothing wrong in using inheritance as reuse,
> while i do.

not generally I assume Tudor thinks, only for this particular case of
sub classing Announcer.
Announcing behaviour may be considered part of a package objects
should have and this has  been the case in Smalltalk since the
beginning, though implemented with the symbol based changed/update
mechanism.

To restate
Yes, I agree that subclasses should specialize the behaviour of the
superclass. But there need to be classes first you may subclass to
specialize and these inherit general properties of object behaviour.

--Hannes

> The argument with Object does not stands, to my thinking, because
> it is most generic class, and protocols it implements used by various
> parts of a system,
> including reflection etc,
> and those parts actually expecting that all objects they dealing with
> is at least implementing Object protocol(s).
> So, strictly speaking by inheriting from Object you may call it reuse,
> but to my thinking it is more
> about having a guarantee that your class will play well with the rest
> of smalltalk ecosystem (even if it's not your direct concern).
>
> While in case of inheriting from Announcer it is something different:
> you already have specific behavior
> which is non-universal for all objects in system (otherwise why not
> implementing Announcer protocol in Object?).
>
> Also, i am sure you aware, that by doing this, you introducing a
> certain degree of rigidness in your model (every time you refer
> directly to names instead of protocols, little kittie dies ;)
>
> because if today, Announcer serves well for your needs, and all is happy..
> but maybe tomorrow, one guy will make a better one AnnouncerOnSteroids..
> and to reuse it , you will need to change the parent in all numerous
> classes where you used Announcer
> originally.
> And to make it absolutely ridiculous, imagine how you will give user a
> choice whether use one Announcer or AnnouncerOnSteroids? You will
> recompile your classes each time? And what if parts of your model
> insist on using just Announcer while others having no problem with
> trying to play with AnnouncerOnSteroids?
>
> Another aspect of such abuse is when you inherit, you are tempted to
> use direct access to internal state and private methods, and that
> leads to really strange and complex problems later..
>
> Just giving you an example:
>
> Suppose we have a class Butter, which implements #numberOfCalories and
> #fatPercentage protocols..
>
> Now we do it like that:
>
> Butter subclass: #Fridge
>
> and then, of course
>
> fridge := Fridge new.
>
> fridge fatPercentage
>
> or:
>
> fridge fatPercentage: 10.
>
> ^^^ just look at the above line, how much sense you think this piece
> of code makes
> for reader, who will try to reason what is happens in your code?
>
> And why you think it is not the same story with Announcer?
>
> Because by subclassing from it, you expose its protocol(s) in places
> where it is not needed and
> will cause problems and confusion.
> Because when you inherit to reuse, not to specialize, then users of
> such class in most cases won't use
> full protocol of the superclass, nor require it.. and therefore by
> providing more than necessary,
> you are basically violating the principle of least authority.
> To fix that, you will need to override certain methods in your
> subclass to prevent exposing unwanted/low-level behavior to users. But
> that's again wrong, because then your model now starting to know too
> much about Announcer's internals, which should be an implementation
> detail, and adds even more rigidness to your design.
>
>
> --
> Best regards,
> Igor Stasenko.
>
>