Pharo-users
By thread
pharo-users@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
December 2014
- 70 participants
- 473 messages
Re: [Pharo-users] how do you use scripts?
by Alain Busser
For me, a script is an example for MathsOntologie, which is what I want to
run when copied in the Workspace then Alt-D-ed. I distribute them with
MathsOntologie and they are not versioned. I have ont script per file, all
the scripts are grouped in an "exeamples" folder on disk, but I can not
always open them because of utf-8 characters which are not correctly
imported. Every file has a name recalling the script. I don't use "example"
objects because I never thought about it (so, thanks for the idea).
But if I knew how to incorporate MathsOntologie inside DrGeo I would use
Hilaire's way of storing the examples of course...
Alain
On Fri, Dec 12, 2014 at 3:14 PM, Tudor Girba <tudor(a)tudorgirba.com> wrote:
>
> Hi,
>
> As input for designing new features that better support scripting in
> Pharo, we would benefit from a bit more input around the role scripts play
> in your development life.
>
> To this end, I would like to invite you to share your scripting
> experience. Here are some questions to start from, but feel free to diverge:
>
> - What kind of actions do you put in scripts?
>
> - Do you rely on script files stored on the disk at all?
>
> - Where do you store your scripts (in one folder, in many folders)?
>
> - Do you version your scripts?
>
> - Do you store them in separate files with dedicated names, or tend to put
> multiple snippets in one larger file?
>
> - Do you rely on the names of the scripts?
>
> - Why do you use a script file and not a class?
>
>
>
> Cheers,
> Doru
>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
>
Dec. 12, 2014
Re: [Pharo-users] Roassal HTML exporter
by Thierry Goubier
Hi Alexandre,
this is great. There is a bit of javascript magic going in there, isn't it?
(<script type="text/javascript" src="RODraggingAndUtil.js"></script>)
When adding some specific support such as the OpenStreetMap data, there is
a bit of work to do to extend it? Or would it consider it as a bitmap?
Thanks,
Thierry
2014-12-12 0:20 GMT+01:00 Alexandre Bergel <alexandre.bergel(a)me.com>:
> Hi!
>
> We have worked very hard on a Roassal exporter for the Web.
>
> Milton has produced the class RTHTML5Exporter, which may be simply invoked
> as: RTHTML5Exporter new export: aRoassalView.
>
> Check this out:
> https://dl.dropboxusercontent.com/u/31543901/RoassalHTML/index.html
>
> Try moving the mouse above the circle or dots in the curve.
>
> The html file you see from your web browser is the result of do-iting the
> following expression:
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> | c b c2 |
> c := RTComposer new.
>
> "======"
> b := RTGraphBuilder new.
> b view: c view.
> b edges
> connectFrom: #superclass;
> useInLayout.
>
> b edges
> if: [ :fromClass :toClass | toClass name beginsWith: 'TR' ];
> connectTo: #dependentClasses;
> color: (Color blue alpha: 0.3).
>
>
> b nodes
> if: [ :cls | cls name beginsWith: 'RT' ];
> color: Color blue.
> b nodes
> color: Color red.
> b layout cluster.
>
> b global
> normalizeSize: #numberOfMethods min: 5 max: 40 using: #sqrt;
> alphaColor: 0.4.
>
> b addAll: TRShape withAllSubclasses, RTShape withAllSubclasses.
>
> b build.
> c group.
>
> "======"
> c2 := RTCharterBuilder new.
> c2 view: c view.
>
> c2 interaction popup.
> c2 extent: 300 @ 200.
> c2 points: (RTShape withAllSubclasses sortedAs: #numberOfMethods).
> c2 connectDotColor: Color blue.
>
> c2 points: (TRShape withAllSubclasses sortedAs: #numberOfMethods).
> c2 stackX.
> c2 allY: #numberOfMethods.
> c2 connectDotColor: Color red.
>
> c2 axisX.
> c2 axisY.
> c2 build.
> c group.
> "======"
>
> c layout: RTVerticalLineLayout new.
> c propagateHighlightToAll.
> "======"
>
> legend := RTLegendBuilder new.
> legend view: c view.
> legend addText: 'This is a demonsration of a combination of builders'.
> legend addText: 'The above visualization shows the dependencies between
> Roassal and Trachel shapes.'.
> legend addText: 'Curves indicate the distribution of the number of
> methods'.
> legend build.
> "======"
>
> RTHTML5Exporter new export: c view.
> c view
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
Dec. 12, 2014
Re: [Pharo-users] Roassal HTML exporter
by Pierre CHANSON
After some explanations and examples with Hamilton,
I can certify this exporter is awesome !
Yes we'll take a look at the palette today
Pierre
2014-12-12 9:58 GMT-03:00 Alexandre Bergel <alexandre.bergel(a)me.com>:
>
> I will try to integrate that into my software.
>
>
> Let us know how it goes!
>
> A question: the color palettes are quite faded in Roassal examples (e.g.
> when I use the UML builder, some are light on light and hard to read).
>
> How hard is it to have a palette like this one for example:
> http://patterntap.com/pattern/color-palette-flat-ui-colors
>
>
> It should be difficult at all. We will work on this.
>
> Congrats for the great job!
>
>
> Thanks :-)
> Being able to comfortably export to HTML is probably the greatest
> challenge Roassal will have to face.
> Your feedback is highly important for us.
>
> Cheers,
> Alexandre
>
>
> On Fri, Dec 12, 2014 at 12:20 AM, Alexandre Bergel <
> alexandre.bergel(a)me.com> wrote:
>>
>> Hi!
>>
>> We have worked very hard on a Roassal exporter for the Web.
>>
>> Milton has produced the class RTHTML5Exporter, which may be simply
>> invoked as: RTHTML5Exporter new export: aRoassalView.
>>
>> Check this out:
>> https://dl.dropboxusercontent.com/u/31543901/RoassalHTML/index.html
>>
>> Try moving the mouse above the circle or dots in the curve.
>>
>> The html file you see from your web browser is the result of do-iting the
>> following expression:
>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>> | c b c2 |
>> c := RTComposer new.
>>
>> "======"
>> b := RTGraphBuilder new.
>> b view: c view.
>> b edges
>> connectFrom: #superclass;
>> useInLayout.
>>
>> b edges
>> if: [ :fromClass :toClass | toClass name beginsWith: 'TR' ];
>> connectTo: #dependentClasses;
>> color: (Color blue alpha: 0.3).
>>
>>
>> b nodes
>> if: [ :cls | cls name beginsWith: 'RT' ];
>> color: Color blue.
>> b nodes
>> color: Color red.
>> b layout cluster.
>>
>> b global
>> normalizeSize: #numberOfMethods min: 5 max: 40 using: #sqrt;
>> alphaColor: 0.4.
>>
>> b addAll: TRShape withAllSubclasses, RTShape withAllSubclasses.
>>
>> b build.
>> c group.
>>
>> "======"
>> c2 := RTCharterBuilder new.
>> c2 view: c view.
>>
>> c2 interaction popup.
>> c2 extent: 300 @ 200.
>> c2 points: (RTShape withAllSubclasses sortedAs: #numberOfMethods).
>> c2 connectDotColor: Color blue.
>>
>> c2 points: (TRShape withAllSubclasses sortedAs: #numberOfMethods).
>> c2 stackX.
>> c2 allY: #numberOfMethods.
>> c2 connectDotColor: Color red.
>>
>> c2 axisX.
>> c2 axisY.
>> c2 build.
>> c group.
>> "======"
>>
>> c layout: RTVerticalLineLayout new.
>> c propagateHighlightToAll.
>> "======"
>>
>> legend := RTLegendBuilder new.
>> legend view: c view.
>> legend addText: 'This is a demonsration of a combination of builders'.
>> legend addText: 'The above visualization shows the dependencies between
>> Roassal and Trachel shapes.'.
>> legend addText: 'Curves indicate the distribution of the number of
>> methods'.
>> legend build.
>> "======"
>>
>> RTHTML5Exporter new export: c view.
>> c view
>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>>
>
>
>
Dec. 12, 2014
Re: [Pharo-users] New Pharo user, some questions
by David Boeren
Thanks for spotting that Hernán, I'm not sure how that managed to pass
unnoticed so long :)
On Thu, Dec 11, 2014 at 11:04 AM, Hernán Morales Durand <
hernan.morales(a)gmail.com> wrote:
>
> 2014-12-10 17:26 GMT-03:00 dboeren <boerend(a)gmail.com>:
>
>> \u009e
>
>
> You have a typo there. It should be
>
> \u00e9
>
> #copyReplaceAll:with: is working without problems.
>
> Cheers,
>
> Hernán
>
>
> 2014-12-11 10:45 GMT-03:00 David Boeren <boerend(a)gmail.com>:
>
>> I could, but if I do it before parsing, I only have to do the string
>> replacement in one place. If I do it afterward, I have to apply it to
>> every field separately which I think makes the code look messier. Anyway,
>> I have tried applying it at the individual field level as a test but it
>> didn't work there either. My primary concern at this point is just to get
>> it working which has nothing to do with JSON at all, this is purely a
>> string operation.
>>
>>
>> On Thu, Dec 11, 2014 at 1:37 AM, Sven Van Caekenberghe <sven(a)stfx.eu>
>> wrote:
>>
>>>
>>> > On 11 Dec 2014, at 04:41, David Boeren <boerend(a)gmail.com> wrote:
>>> >
>>> > That's the next line of code after what I quoted:
>>> >
>>> > "Parse the JSON data returned by the api"
>>> > data := NeoJSONReader fromString: response.
>>> >
>>> > But, prior to the JSON parsing I was doing a couple of string
>>> replacements to patch up the data. The system I'm moving the data into
>>> doesn't accept accented characters or bullets, and it wants empty strings
>>> instead of nulls.
>>>
>>> You can do the replacements after parsing too, just manipulating the
>>> generated data structures. I would say that is conceptually more correct.
>>>
>>> > All the JSON stuff works fine. It's just the string operations with
>>> copyReplaceAll:with: that aren't working as expected for some reason.
>>> >
>>> > Or are you saying that the data I get from from asUrl retrieveContents
>>> is not a "proper string" and maybe that's why it's not working?
>>> >
>>> >
>>> > On Wed, Dec 10, 2014 at 6:34 PM, Sven Van Caekenberghe <sven(a)stfx.eu>
>>> wrote:
>>> >
>>> > > On 10 Dec 2014, at 21:26, dboeren <boerend(a)gmail.com> wrote:
>>> > >
>>> > > "Fetch the raw JSON data from dtdb.co"
>>> > > response := 'http://dtdb.co/api/cards/' asUrl
>>> retrieveContents asString.
>>> >
>>> > Why no do
>>> >
>>> > NeoJSONReader fromString: 'http://dtdb.co/api/cards/' asUrl
>>> retrieveContents
>>> >
>>> > ?
>>> >
>>> > You'll get the data back, nicely parsed and converted to proper Pharo
>>> strings.
>>> >
>>> > Sven
>>> >
>>>
>>>
>>>
>>
>
Dec. 12, 2014
Re: [Pharo-users] how do you use scripts?
by Alexandre Bergel
> I agree, I am not sure what you mean by a script here - can you elaborate?
As I know Doru, he probably deliberately left out the meaning of script in his email. So, this is up to us to tell what we mean by scripting.
We all have a vague notion of what a âscriptâ is. I guess Doru want to capture this.
Cheers,
Alexandre
>
> Personally, I think the environment erases a lot of the conceptual difference between a "script" vs. a "program".
>
> On Fri, Dec 12, 2014 at 7:56 AM, Alexandre Bergel <alexandre.bergel(a)me.com <mailto:alexandre.bergel@me.com>> wrote:
> Hi!
>
> I am not sure what you mean by âscriptâ.
>
> > - What kind of actions do you put in scripts?
>
> I usually write two kind of scripts:
> - Roassal visualizations
> - Short script, usually a gofer action to load a particular application
>
> > - Do you rely on script files stored on the disk at all?
>
> Not at all. No idea how this work. Even if I would, I am not sure I would use it
>
> > - Where do you store your scripts (in one folder, in many folders)?
>
> instance method.
>
> > - Do you version your scripts?
>
> Using Monticello
>
> > - Do you store them in separate files with dedicated names, or tend to put multiple snippets in one larger file?
> >
>
> No
>
> > - Do you rely on the names of the scripts?
>
> I rely on the method name
>
> > - Why do you use a script file and not a class?
>
> I solely use classes.
>
> Alexandre
>
>
>
Dec. 12, 2014
Re: [Pharo-users] how do you use scripts?
by David Boeren
I agree, I am not sure what you mean by a script here - can you elaborate?
Personally, I think the environment erases a lot of the conceptual
difference between a "script" vs. a "program".
On Fri, Dec 12, 2014 at 7:56 AM, Alexandre Bergel <alexandre.bergel(a)me.com>
wrote:
>
> Hi!
>
> I am not sure what you mean by âscriptâ.
>
> > - What kind of actions do you put in scripts?
>
> I usually write two kind of scripts:
> - Roassal visualizations
> - Short script, usually a gofer action to load a particular application
>
> > - Do you rely on script files stored on the disk at all?
>
> Not at all. No idea how this work. Even if I would, I am not sure I would
> use it
>
> > - Where do you store your scripts (in one folder, in many folders)?
>
> instance method.
>
> > - Do you version your scripts?
>
> Using Monticello
>
> > - Do you store them in separate files with dedicated names, or tend to
> put multiple snippets in one larger file?
> >
>
> No
>
> > - Do you rely on the names of the scripts?
>
> I rely on the method name
>
> > - Why do you use a script file and not a class?
>
> I solely use classes.
>
> Alexandre
>
>
>
>
Dec. 12, 2014
Create ZipArchive from memory filesystem
by Markus Fritsche
Hello,
is there a quick way to create a zip file from a memory filesystem that
I can't see, or are the *Archive classes not compatible with the new
filesystem api yet?
Best regards,
Markus
Dec. 12, 2014
Re: [Pharo-users] New Pharo user, some questions
by phil@highoctane.be
On Fri, Dec 12, 2014 at 12:44 PM, stepharo <stepharo(a)free.fr> wrote:
>
>
> Le 11/12/14 14:44, phil(a)highoctane.be a écrit :
>
>
>
> On Thu, Dec 11, 2014 at 12:01 PM, kilon alios <kilon.alios(a)gmail.com>
> wrote:
>
>> can you resize the pharo windows ? I saw you struggle with it there
>>
>> It also looks like its crawling there , which iPad is this , which
>> generation ?
>>
>
> This is an iPad2. Pure Morphic is fine, what is not is Nautilus. I guess
> with AltBrowser it would be fine.
>
> I've had a game I wrote for kids (internal stuff done for my wife's kids
> help practice) and it was fine with drag and drop and all.
>
> Now for games on iOS I do use Monkey-X. But I'd love to have a Pharo set
> of classes that would be gaming specific.
>
>
> Me too.
> I proposed a topic going in that direction for array based board game.
> Now could you spend some time to describe what you would like and what
> classes would be needed?
>
We could take a kind of remix of Trachel, which has animation and stuff in
already and Ludus which now runs in Amber but can be ported pretty much
easily as a week end project.
As my reference is Monkey-X for the core, here is the API:
http://www.monkey-x.com/docs/html/API%20Reference.html
One level above, one can do something like a port of Flixel to Pharo, as
there is in http://devolonter.github.io/flixel-monkey/
Features
Basic collisions between objects
Easily generate and emit particles
Camera system for split screen
Resolution policies
Create game levels using tilemaps
Record and play back replays
Text display and scrolling
Pathfinding and following
Tweening system
Group objects together for simplicity
Math & color utilities
Easy object recycling
I am also using Diddy
https://code.google.com/p/diddy/
Features:
Collections (ArrayList, etc.)
Tweening
Screen-Based Framework
Sprites / Particles
GUI (Buttons, Sliders, Windows)
Serialization
XML reader/writer
Base64 encoding/decoding
Tile Engine (Using the Tiled Map Editor)
Now, there is also a new framework called ignition that was in the works
for a year or two.
http://www.playniax.com/
That's quite good.
http://www.playniax.com/demos.html
Sample game: https://www.youtube.com/watch?v=1ykGmat4Kyo#t=74
Now, one can think about making a Monkey-X based engine and scripting it
with Pharo a bit like Kilon does with Blender. Here we could do more direct
with FFI/NB as all Monkey-X code can compile to C.
Phil
>
> We could have very fast plugins for all the game engine and script it
> with Pharo. Kind of what one does with Lua.
>
> The touch paradigm is different from what one can do on a desktop. It is
> not that Pharo has to work on an iPad. What would be nicer is to have an
> image running on it and to which one would connect remotely for remote
> coding.
>
>
> Yes :)
>
> What I was interested in with the bluetooth keyboard project is to see
> how to have a kind of dynabook style thing. But Apple has crippled a lot of
> things, like for an external keyboard support like this one has to use
> internal undocumented APIs for the gsEvents and this will prevent anything
> to go to the AppStore. And then one sees apps like iAWriter which has such
> keyboard support, that's weird.
>
> It depends who is the application validator. My impression is that their
> process sucks.
> I talked once with john and it was a bit surnatural.
>
> Also, as a result, you realize that there is no ESC key on an iPad,
> that you miss a ton of keys that you take for granted on a desktop.
> Also, all keyboard scancodes are different in various brands and it is a
> true ball of knots. No wonder Apple has one supersimplified protocol for
> input that prevents your from doing powerful keyboard based things. Meh.
>
> Long story short, Android looks much better in that regard, and that's
> where I am looking at these days.
>
> I've got a new Galaxy Alpha Octocore thing and frankly, it blows any
> iPhone 6 out of the water. I am done with iOS I'd say.
> When going to places, there are so much more Android devices than
> iDevices... These Android things are like the beige boxes of the 90's.
> You know who won at the time.
>
> So, next holidays, I'll have a look at CogDroid from JB.
>
> Cool. JB will be happy and I hope he will push the rewrite of the event
> model further.
>
> When one can buy a full quad core stick PC with 2G of RAM and 8G of
> storage for less than $50, well, choice is clear.
>
> An old example:
> http://www.laptopmag.com/reviews/mini-pcs/mk808-android-mini-pc
>
> That's where I want Pharo to run.
>
> Phil
>
>
>>
>> On Thu, Dec 11, 2014 at 10:09 AM, phil(a)highoctane.be <phil(a)highoctane.be>
>> wrote:
>>
>>> Pharo on iPad.
>>>
>>> http://youtu.be/7MNsUiCc5FQ
>>> Le 10 déc. 2014 21:26, "dboeren" <boerend(a)gmail.com> a écrit :
>>>
>>> Now that my image is working properly again and the fires have been put
>>>> out,
>>>> I wanted to introduce myself a bit better...
>>>>
>>>> My name is David Boeren. I first learned Smalltalk back in college many
>>>> years ago, we used Smalltalk V in an object oriented programming class I
>>>> took which was first-half Smalltalk, second-half C++. This would be
>>>> about
>>>> 1992 I think? In recent years I've mainly been using Java, with
>>>> occasional
>>>> Python dabblings. I remember installing Squeak once or twice over the
>>>> years, but to be honest it felt a bit clunky, perhaps this was just an
>>>> early
>>>> primitive version or whatever.
>>>>
>>>> Recently, I've been getting the itch to try out some different
>>>> languages. I
>>>> was kind of looking at Scala or Clojure, one co-worker suggested
>>>> Erlang, and
>>>> so forth. But after doing a brief review I ended up coming back to
>>>> Smalltalk which even after all these years still stands right up with
>>>> the
>>>> cutting edge I think. Sure, there are a few things that I think would
>>>> be a
>>>> little different if it were designed today like tuple support or
>>>> whatever,
>>>> but it feels like the right choice for something I'm going to use
>>>> mainly for
>>>> "fun" projects and the interactive environment is awesome.
>>>>
>>>>
>>>> One thing I wanted to ask about is the status of getting Pharo running
>>>> on
>>>> iOS (or at least iPad). I found some old posts but nothing much within
>>>> the
>>>> last couple of years. I know there were app store policy issues in the
>>>> past
>>>> but I think that Apple has opened things up a bit since then, you can
>>>> now
>>>> get Pythonista in the app store, or Codea. Is there still an obstacle
>>>> or is
>>>> it just something that hasn't been gotten around to yet? I'd love to
>>>> get it
>>>> running on my iPad Mini and be able to transmit code back and forth
>>>> between
>>>> there and my laptop to work on it wherever I'm at.
>>>>
>>>>
>>>> Second, I'm running into an oddity and I'm not sure what I'm doing
>>>> wrong or
>>>> whether this is a bug of some sort, this has to do with trying to
>>>> replace
>>>> unicode characters in a string which seems like it should be a
>>>> straightforward operation. Here is my code:
>>>>
>>>> "Fetch the raw JSON data from dtdb.co"
>>>> response := 'http://dtdb.co/api/cards/' asUrl retrieveContents
>>>> asString.
>>>>
>>>> "Clean up the data a bit to make it a little more regular"
>>>> response := response copyReplaceAll: 'null' with: '""'.
>>>> response := response copyReplaceAll: '\u2022' with: ','.
>>>> response := response copyReplaceAll: '\u009e' with: 'e'.
>>>>
>>>> Basically I'm just pulling some JSON data and then doing a few string
>>>> replacements to make the data suit my needs. The first one works. The
>>>> second one works. Since the third one ALSO uses a \uXXXX code I would
>>>> expect it to work too, but it does not - the accented characters are
>>>> still
>>>> there.
>>>>
>>>> To get a bit more visibility into this, I copied the CopyReplaceAll code
>>>> from SequenceableCollection into a scratch class method and adding some
>>>> Transcript output:
>>>>
>>>> copyReplaceIn: aString All: oldSubCollection with: newCollection
>>>> "Answer a copy of the receiver in which all occurrences of
>>>> oldSubCollection have been replaced by newCollection "
>>>>
>>>> | startSearch currentIndex endIndex |
>>>>
>>>> Transcript show: 'start' ; cr.
>>>> startSearch := 1.
>>>> [(currentIndex := aString indexOfSubCollection: oldSubCollection
>>>> startingAt: startSearch) > 0]
>>>> whileTrue: [
>>>> Transcript show: 'Found at index ' ; show:
>>>> currentIndex ; cr.
>>>> endIndex := currentIndex + oldSubCollection
>>>> size - 1.
>>>> aString := aString
>>>> copyReplaceFrom: currentIndex
>>>> to: endIndex
>>>> with: newCollection.
>>>> startSearch := currentIndex +
>>>> newCollection size].
>>>> Transcript show: 'done' ; cr.
>>>> ^ aString
>>>>
>>>> A minimal test seemed to work:
>>>> HelloWorld copyReplaceIn: 'R\u00e9my Lapointe' All: '\u00e9' with: 'e'.
>>>>
>>>> start
>>>> Found at index 2
>>>> done
>>>>
>>>> Testing this with the real data worked too:
>>>> HelloWorld copyReplaceIn: ('http://dtdb.co/api/cards/' asUrl
>>>> retrieveContents asString) All: '\u00e9' with: 'e'.
>>>> start
>>>> Found at index 22379
>>>> Found at index 22500
>>>> done
>>>>
>>>>
>>>> However, when I went back to using the regular copyReplaceAll:With:
>>>> method
>>>> it does not work and I'm not sure why. When it executes this:
>>>> aString indexOfSubCollection: oldSubCollection startingAt: startSearch
>>>>
>>>> The value comes back as 0 even though it's the same data from
>>>> 'http://dtdb.co/api/cards/' asUrl retrieveContents asString (I added a
>>>> "self
>>>> halt" to be able to step into the method and view the variable values),
>>>> and
>>>> I'm not sure what the difference is. There shouldn't be a limit on the
>>>> size
>>>> of the collection, should there? The whole thing is around 116k which
>>>> is
>>>> big but not ridiculously so. It is however big enough that the debugger
>>>> can't show the whole value, or at least I haven't found a way to do so.
>>>>
>>>>
>>>> And last, is there a good video tutorial for the Pharo beginner on how
>>>> to
>>>> use the various browsers, debugger, tools, etc... that come with
>>>> Pharo? I
>>>> would like to start learning more about the best ways to use these in my
>>>> development processes. I'm also having a lot of trouble finding the
>>>> correct
>>>> classes and message for what I want to do, searching online w/ Google
>>>> often
>>>> seem to turn up outdated information (or for a different smalltalk
>>>> flavor)
>>>> and it can take a while to figure out the correct way to do things. Is
>>>> there a good central reference for the APIs somewhere? I know that you
>>>> can
>>>> search in the browser but I usually don't know the name to search for.
>>>> It
>>>> would be good to have a handy reference detailing how to do all the
>>>> commonplace stuff.
>>>>
>>>> Thanks!
>>>>
>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://forum.world.st/New-Pharo-user-some-questions-tp4795325.html
>>>> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>>>>
>>>>
>>>>
>>
>
>
> --
> ---
> Philippe Back
> Visible Performance Improvements
> Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027
> Mail:phil@highoctane.be | Web: http://philippeback.eu
> Blog: http://philippeback.be | Twitter: @philippeback
> Youtube: http://www.youtube.com/user/philippeback/videos
>
> High Octane SPRL
> rue cour Boisacq 101 | 1301 Bierges | Belgium
>
> Pharo Consortium Member - http://consortium.pharo.org/
> Featured on the Software Process and Measurement Cast -
> http://spamcast.libsyn.com
> Sparx Systems Enterprise Architect and Ability Engineering EADocX Value
> Added Reseller
>
>
>
>
--
---
Philippe Back
Visible Performance Improvements
Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027
Mail:phil@highoctane.be | Web: http://philippeback.eu
Blog: http://philippeback.be | Twitter: @philippeback
Youtube: http://www.youtube.com/user/philippeback/videos
High Octane SPRL
rue cour Boisacq 101 | 1301 Bierges | Belgium
Pharo Consortium Member - http://consortium.pharo.org/
Featured on the Software Process and Measurement Cast -
http://spamcast.libsyn.com
Sparx Systems Enterprise Architect and Ability Engineering EADocX Value
Added Reseller
Dec. 12, 2014
Re: [Pharo-users] Extending GTSpotter
by Norbert Hartl
Thanks Esteban,
that is the perfect attitude to build a nice tool and later embrace if a better one arrives. So let's celebrate Spotlight for being good companion and wish it farewell.
Norbert
> Am 12.12.2014 um 13:07 schrieb Esteban Lorenzano <estebanlm(a)gmail.com>:
>
> shift+enter is better.
> I will remove Spotlight soon⦠honestly spotter is so much better than even when not everything is working perfect, is already a huge improvement
>
> Esteban
>
>> On 12 Dec 2014, at 12:11, Tudor Girba <tudor(a)tudorgirba.com <mailto:tudor@tudorgirba.com>> wrote:
>>
>> I would like to get Shift+Enter (because Cmd+Enter will be useful in other contexts), but we wanted to have something that can live next to the Spotlight for a while.
>>
>> But, now that we are over the first set of problems, I would like to use Shift+Enter. Any objections?
>>
>> Cheers,
>> Doru
>>
>>
>>
>> On Fri, Dec 12, 2014 at 12:33 PM, stepharo <stepharo(a)free.fr <mailto:stepharo@free.fr>> wrote:
>> I got the same problem and Cmd+ENter was already used on my machine set up.
>> So it was not really simple.
>>
>> Le 11/12/14 17:25, Damien Pollet a écrit :
>>
>> Cmd+Enter: âPackage'
>> Doru, your blog post does not mention this piece of information: how
>> to invoke GTSpotter
>> It does not seem to be mentioned in your announcement email either; I
>> found it here after going through threads talking about GTSpotter.
>>
>> Nobody else asked for it, so I'm guessing it was well-known before and
>> I'm the only one who failed to get addicted to whatever the shortcut
>> was doing before? How do we make discoverable affordances for such
>> behaviors in the image?
>>
>>
>>
>>
>>
>>
>> --
>> www.tudorgirba.com <http://www.tudorgirba.com/>
>>
>> "Every thing has its own flow"
>
Dec. 12, 2014
Re: [Pharo-users] Roassal HTML exporter
by Alexandre Bergel
> I will try to integrate that into my software.
Let us know how it goes!
> A question: the color palettes are quite faded in Roassal examples (e.g. when I use the UML builder, some are light on light and hard to read).
>
> How hard is it to have a palette like this one for example: http://patterntap.com/pattern/color-palette-flat-ui-colors <http://patterntap.com/pattern/color-palette-flat-ui-colors>
It should be difficult at all. We will work on this.
> Congrats for the great job!
Thanks :-)
Being able to comfortably export to HTML is probably the greatest challenge Roassal will have to face.
Your feedback is highly important for us.
Cheers,
Alexandre
>
> On Fri, Dec 12, 2014 at 12:20 AM, Alexandre Bergel <alexandre.bergel(a)me.com <mailto:alexandre.bergel@me.com>> wrote:
> Hi!
>
> We have worked very hard on a Roassal exporter for the Web.
>
> Milton has produced the class RTHTML5Exporter, which may be simply invoked as: RTHTML5Exporter new export: aRoassalView.
>
> Check this out:
> https://dl.dropboxusercontent.com/u/31543901/RoassalHTML/index.html <https://dl.dropboxusercontent.com/u/31543901/RoassalHTML/index.html>
>
> Try moving the mouse above the circle or dots in the curve.
>
> The html file you see from your web browser is the result of do-iting the following expression:
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> | c b c2 |
> c := RTComposer new.
>
> "======"
> b := RTGraphBuilder new.
> b view: c view.
> b edges
> connectFrom: #superclass;
> useInLayout.
>
> b edges
> if: [ :fromClass :toClass | toClass name beginsWith: 'TR' ];
> connectTo: #dependentClasses;
> color: (Color blue alpha: 0.3).
>
>
> b nodes
> if: [ :cls | cls name beginsWith: 'RT' ];
> color: Color blue.
> b nodes
> color: Color red.
> b layout cluster.
>
> b global
> normalizeSize: #numberOfMethods min: 5 max: 40 using: #sqrt;
> alphaColor: 0.4.
>
> b addAll: TRShape withAllSubclasses, RTShape withAllSubclasses.
>
> b build.
> c group.
>
> "======"
> c2 := RTCharterBuilder new.
> c2 view: c view.
>
> c2 interaction popup.
> c2 extent: 300 @ 200.
> c2 points: (RTShape withAllSubclasses sortedAs: #numberOfMethods).
> c2 connectDotColor: Color blue.
>
> c2 points: (TRShape withAllSubclasses sortedAs: #numberOfMethods).
> c2 stackX.
> c2 allY: #numberOfMethods.
> c2 connectDotColor: Color red.
>
> c2 axisX.
> c2 axisY.
> c2 build.
> c group.
> "======"
>
> c layout: RTVerticalLineLayout new.
> c propagateHighlightToAll.
> "======"
>
> legend := RTLegendBuilder new.
> legend view: c view.
> legend addText: 'This is a demonsration of a combination of builders'.
> legend addText: 'The above visualization shows the dependencies between Roassal and Trachel shapes.'.
> legend addText: 'Curves indicate the distribution of the number of methods'.
> legend build.
> "======"
>
> RTHTML5Exporter new export: c view.
> c view
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel http://www.bergel.eu <http://www.bergel.eu/>
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
>
Dec. 12, 2014