Re: [Pharo-users] Matrix error
Thanks Werner, Both work fine. First seems more legible to me and I don't need DhbVector properties yet. My error was using #numberOfRows #numberOfColumns as constructors instead of #rows and #columns. Cheers, Offray On 24/10/15 03:21, Werner Kassens wrote: Hi Offray, you could try this: medMatrix:=Matrix rows: 5 columns: 7. 1 to: medMatrix numberOfRows do: [:row | 1 to: medMatrix numberOfColumns do: [ :column | medMatrix at: row at: column put: 0. Transcript show: row asString, ',', column asString, '|'. ]. Transcript cr. ]."see transcript" medMatrix. "(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 )" "in scismalltalk:" m2:=DhbMatrix rows: ((1 to: 5) collect:[:i|(Array new:7)]). 1 to: m2 numberOfRows do: [:row | 1 to: m2 numberOfColumns do: [ :column | m2 at: row at: column put: 0. Transcript show: row asString, ',', column asString, '|'. ]. Transcript cr. ]."see transcript" m2. "a DhbVector(0 0 0 0 0 0 0) a DhbVector(0 0 0 0 0 0 0) a DhbVector(0 0 0 0 0 0 0) a DhbVector(0 0 0 0 0 0 0) a DhbVector(0 0 0 0 0 0 0)" werner
Re: [Pharo-users] Fossil and Filetree
Hilaire, Dale, the easiest would be to make a fork of filetree on github, and try from there. But a branch in the main filetree would work just as well, with the added benefit of the travis CI integration (and gitfiletree has tests in there). Running tests locally is often necessary, but setting it up is a bit more involved (but I should have that in a Makefile somewhere). Hilaire, if you prefer a Smalltalkhub project, just do so and I'll make regular merges back into filetree. Thierry Le 24/10/2015 18:04, Dale Henrichs a écrit : Thierry and Hilaire, If you want to work together up on the github repo, that's up to you and Hilaire, if you have a github id, let me know and I will add you as a contributor on the project so that you two can work together ... Dale On 10/24/15 6:55 AM, Hilaire wrote: Le 22/10/2015 10:47, Thierry Goubier a écrit : Yes, I guess so. Still, with all the people interested by Fossil, I think the motivation is there. And it would be nice to see a bit of refactoring to decouple the format from the specific commands used for the specific VCS. Thierry I started to look at it creating abstracted super classes. But RB (refactoring tool I guess) bumped on the middle, try again, then went fine, ouf! Any sandbox where to commit? Hilaire
Re: [Pharo-users] Data Kitchen: A data visualization project powered by Pharo. Feedback welcomed.
Hi Serge, As I told you, once the call was over, I will be talking with you. So here we are :-). Our proposal didn't make it to the next round, but we're having this conversation thanks to the participation, which is already a big benefit. I would like to give you some deeper overview of the Data Kitchen project and where is "conceptually" located to zoom in in health related issues to let you see where collaboration could happen. The Data Kitchen project is part of the explorations I'm making in my doctoral studies. The "philosophical question" is "how we can change the digital artifacts that change us?". By "we" I'm talking about the community around a local hackerspace (in a broader sense), because this places are interesting "laboratories" of social appropriation of science and technology with dynamics which are different (at least in the Global South) of more institutionalized approaches (like the ones in universities). We're not constrained by curricula or titles, but also we have less resources and "official" dialog spaces, like happens with universities. So I think that hackerspaces are a key places for this kind of experiments and studies on other ways to make/appropriate knowledge (including health related issues). Data Kitchen, Data Week and other projects a wrote/plan, happens in our local hackerspace. The idea of interactive data narratives & visualizations started because after a local hackathon on 2013, I saw that the mobile "apps" approach was pretty limited. People become "data sensors" of mobile phones to feed some cloud infrastructure they don't own or understand. On the other hand, telling stories with data is more empowering: once you have understand how to tell your first story, you can tell another one without depending on software developers, app makers, external clouds, etc. And data story telling can be a bridge between the programming world and the oral/printing world. This were the reasons behind trying to make my own self-contained moldable tool and pocket infrastructure for data visualization and narratives. Because I have been related with civic hackers and/or hacktivits, one of the first places I'm trying to look is twitter and that is one of my primary concerns, and because I made a consultancy for the Colombian government on Open and Community Innovation on Health, this is a secondary one. A friend is working on data visualization to compare how much medicine info is released by public health agencies. I'll try to use Roassal on that visualization. My idea would be to implement data kitchen (this mix of tools, people and places) and use political discourse on Twitter and public medicine information as examples in our workshops and published memories and materials, but I would like to open the possibility to the people to bring their own data sets and questions to the table. Most of my studies and work has been auto-sponsored but is taking long time to get results because I need to pause research for work and viceversa, so I'm really interested in some ways to make this project and its associated research sustainable, so I will be waiting to hear your ideas and proposals. Thanks for your interest Serge, Bests, Offray On 15/10/15 02:43, Serge Stinckwich wrote: On Thu, Oct 15, 2015 at 2:07 AM, Offray Vladimir Luna Cárdenaswrote: Hi, In my effort to more create more meaningful computer mediated experiences for me and other and to use Pharo as a medium for that I have proposed the following project: --- - Name: Data Kitchen: Frictionless data, moldable tools, pocket infrastructures & permanent workshops for community empowerment - url: https://www.newschallenge.org/challenge/data/entries/data-kitchen-frictionless-data-moldable-tools-pocket-infrastructures-permanent-workshops-for-community-empowerment --- It combines the ideas of moldable tools, agile visualization in this community with some of other like frictionless data, by Open Knowledge Foundation and what I call "pocket infrastructures". Any feedback is welcomed. You can make it here in this list, but if you can made it on their platform, from a simple "heart" (+1) or drop me a line, it would be greatly appreciated and it will help to make more visible the project. I really like the idea of using Pharo/ROASSAL for data viz especially in the context of southern countries (you talk about about Global South in your document). Having a portable environment is definitively a plus in the context of countries where the bandwidth is really limited. My lab is working with developing countries (including south-america) and we could exchange some private emails on how to sustain such a project. I'm interested by such tool in the context of health and/or crisis issues for example. Regards,
Re: [Pharo-users] Fossil and Filetree
At the end of the day, I would assume that it would be possible to run travis-ci tests against a fossil repository which would be very useful to have ... but like I said, I'm fine with whatever you guys decide... Dale On 10/24/15 10:12 AM, Thierry Goubier wrote: Le 24/10/2015 18:56, Hilaire a écrit : I was not aware filetree need to be modified as well? But wait, I can use it right now with Fossil, so I am bit lost. No, no. This is just the development of GitFileTree is integrated inside the main FileTree repository. If you look at https://github.com/dalehenrich/filetree/tree/pharo4.0/repository, you'll find both MonticelloFileTree-Core and MonticelloFileTree-Git (as well as the Tests and the GitTests). Thierry Hilaire Le 24/10/2015 18:44, Thierry Goubier a écrit : Hilaire, Dale, the easiest would be to make a fork of filetree on github, and try from there. But a branch in the main filetree would work just as well, with the added benefit of the travis CI integration (and gitfiletree has tests in there). Running tests locally is often necessary, but setting it up is a bit more involved (but I should have that in a Makefile somewhere). Hilaire, if you prefer a Smalltalkhub project, just do so and I'll make regular merges back into filetree. Thierry
Re: [Pharo-users] Fossil and Filetree
Le 22/10/2015 10:47, Thierry Goubier a écrit : > Yes, I guess so. > > Still, with all the people interested by Fossil, I think the > motivation is there. And it would be nice to see a bit of refactoring > to decouple the format from the specific commands used for the > specific VCS. > > Thierry I started to look at it creating abstracted super classes. But RB (refactoring tool I guess) bumped on the middle, try again, then went fine, ouf! Any sandbox where to commit? Hilaire -- Dr. Geo http://drgeo.eu http://google.com/+DrgeoEu
Re: [Pharo-users] Fossil and Filetree
Thierry and Hilaire, If you want to work together up on the github repo, that's up to you and Hilaire, if you have a github id, let me know and I will add you as a contributor on the project so that you two can work together ... Dale On 10/24/15 6:55 AM, Hilaire wrote: Le 22/10/2015 10:47, Thierry Goubier a écrit : Yes, I guess so. Still, with all the people interested by Fossil, I think the motivation is there. And it would be nice to see a bit of refactoring to decouple the format from the specific commands used for the specific VCS. Thierry I started to look at it creating abstracted super classes. But RB (refactoring tool I guess) bumped on the middle, try again, then went fine, ouf! Any sandbox where to commit? Hilaire
Re: [Pharo-users] Pharo family update
Excerpts from Adam's message of 2015-10-23 23:58:48 +0200: > I just updated drawing of projects around Pharo. > > Main idea is to guide people (new users of Pharo) through fields of interests > - something they might be looking for. I choose these 10 fields devided into > some specific subjects. Somewhere it is too detailed, while elsewhere it is > too fuzzy - it is just showing image of Pharo I have in my mind. this looks great! i would order the topics so that related ones are next to each other, for example it is a bit puzzling why http/zinc is not part of webdevelopment, but if you order them so that you have development - web - server ... then zinc and web would be very close and the exact category would not matter. it could even be in the middle. same goes for monticello and metacello. aren't they closely related? why is one in development, the other in working? putting working next to development would solve that. i think this order would place related topics close to each other: working - development - web - server - connectors - data - model - import/export - output - graphics closing the circle, graphics touches working which relates to the games and multimedia subtopics too. this is actually something i preferred from the first version. it was more fuzzy and didn't make such absolute statements where something belongs that people could argue about. (ok, maybe i am the only one arguing :-) > I prepared textual version on github - but right now it is not coherent with > the drawing (I will correct this if needed). maybe also put the svg on github so that people can fork and update it? greetings, martin. -- eKita - the online platform for your entire academic life -- chief engineer eKita.co pike programmer pike.lysator.liu.secaudium.net societyserver.org secretary beijinglug.org mentor fossasia.org foresight developer foresightlinux.orgrealss.com unix sysadmin Martin Bähr working in chinahttp://societyserver.org/mbaehr/
Re: [Pharo-users] Data Kitchen: A data visualization project powered by Pharo. Feedback welcomed.
Sorry... this was meant to be a private mail... Offray On 24/10/15 09:49, Offray Vladimir Luna Cárdenas wrote: Hi Serge, As I told you, once the call was over, I will be talking with you. So here we are :-). Our proposal didn't make it to the next round, but we're having this conversation thanks to the participation, which is already a big benefit. I would like to give you some deeper overview of the Data Kitchen project and where is "conceptually" located to zoom in in health related issues to let you see where collaboration could happen. The Data Kitchen project is part of the explorations I'm making in my doctoral studies. The "philosophical question" is "how we can change the digital artifacts that change us?". By "we" I'm talking about the community around a local hackerspace (in a broader sense), because this places are interesting "laboratories" of social appropriation of science and technology with dynamics which are different (at least in the Global South) of more institutionalized approaches (like the ones in universities). We're not constrained by curricula or titles, but also we have less resources and "official" dialog spaces, like happens with universities. So I think that hackerspaces are a key places for this kind of experiments and studies on other ways to make/appropriate knowledge (including health related issues). Data Kitchen, Data Week and other projects a wrote/plan, happens in our local hackerspace. The idea of interactive data narratives & visualizations started because after a local hackathon on 2013, I saw that the mobile "apps" approach was pretty limited. People become "data sensors" of mobile phones to feed some cloud infrastructure they don't own or understand. On the other hand, telling stories with data is more empowering: once you have understand how to tell your first story, you can tell another one without depending on software developers, app makers, external clouds, etc. And data story telling can be a bridge between the programming world and the oral/printing world. This were the reasons behind trying to make my own self-contained moldable tool and pocket infrastructure for data visualization and narratives. Because I have been related with civic hackers and/or hacktivits, one of the first places I'm trying to look is twitter and that is one of my primary concerns, and because I made a consultancy for the Colombian government on Open and Community Innovation on Health, this is a secondary one. A friend is working on data visualization to compare how much medicine info is released by public health agencies. I'll try to use Roassal on that visualization. My idea would be to implement data kitchen (this mix of tools, people and places) and use political discourse on Twitter and public medicine information as examples in our workshops and published memories and materials, but I would like to open the possibility to the people to bring their own data sets and questions to the table. Most of my studies and work has been auto-sponsored but is taking long time to get results because I need to pause research for work and viceversa, so I'm really interested in some ways to make this project and its associated research sustainable, so I will be waiting to hear your ideas and proposals. Thanks for your interest Serge, Bests, Offray On 15/10/15 02:43, Serge Stinckwich wrote: On Thu, Oct 15, 2015 at 2:07 AM, Offray Vladimir Luna Cárdenaswrote: Hi, In my effort to more create more meaningful computer mediated experiences for me and other and to use Pharo as a medium for that I have proposed the following project: --- - Name: Data Kitchen: Frictionless data, moldable tools, pocket infrastructures & permanent workshops for community empowerment - url: https://www.newschallenge.org/challenge/data/entries/data-kitchen-frictionless-data-moldable-tools-pocket-infrastructures-permanent-workshops-for-community-empowerment --- It combines the ideas of moldable tools, agile visualization in this community with some of other like frictionless data, by Open Knowledge Foundation and what I call "pocket infrastructures". Any feedback is welcomed. You can make it here in this list, but if you can made it on their platform, from a simple "heart" (+1) or drop me a line, it would be greatly appreciated and it will help to make more visible the project. I really like the idea of using Pharo/ROASSAL for data viz especially in the context of southern countries (you talk about about Global South in your document). Having a portable environment is definitively a plus in the context of countries where the bandwidth is really limited. My lab is working with developing countries (including south-america) and we could exchange some private emails on how to sustain such a project. I'm interested by such tool in the context of health and/or crisis issues for example. Regards,
Re: [Pharo-users] Fossil and Filetree
I was not aware filetree need to be modified as well? But wait, I can use it right now with Fossil, so I am bit lost. Hilaire Le 24/10/2015 18:44, Thierry Goubier a écrit : > Hilaire, Dale, > > the easiest would be to make a fork of filetree on github, and try > from there. But a branch in the main filetree would work just as well, > with the added benefit of the travis CI integration (and gitfiletree > has tests in there). Running tests locally is often necessary, but > setting it up is a bit more involved (but I should have that in a > Makefile somewhere). > > Hilaire, if you prefer a Smalltalkhub project, just do so and I'll > make regular merges back into filetree. > > Thierry -- Dr. Geo http://drgeo.eu http://google.com/+DrgeoEu
Re: [Pharo-users] Fossil and Filetree
Le 24/10/2015 18:56, Hilaire a écrit : I was not aware filetree need to be modified as well? But wait, I can use it right now with Fossil, so I am bit lost. No, no. This is just the development of GitFileTree is integrated inside the main FileTree repository. If you look at https://github.com/dalehenrich/filetree/tree/pharo4.0/repository, you'll find both MonticelloFileTree-Core and MonticelloFileTree-Git (as well as the Tests and the GitTests). Thierry Hilaire Le 24/10/2015 18:44, Thierry Goubier a écrit : Hilaire, Dale, the easiest would be to make a fork of filetree on github, and try from there. But a branch in the main filetree would work just as well, with the added benefit of the travis CI integration (and gitfiletree has tests in there). Running tests locally is often necessary, but setting it up is a bit more involved (but I should have that in a Makefile somewhere). Hilaire, if you prefer a Smalltalkhub project, just do so and I'll make regular merges back into filetree. Thierry
Re: [Pharo-users] [Pharo-dev] TestAsserter>>assertCollection:hasSameElements:
Hi Peter, Le 24 oct. 2015 à 20:36, Peter Uhnák a écrit : > bump? :) > > On Tue, Sep 29, 2015 at 12:57 AM, Peter Uhnákwrote: > How practical it is to do set-based comparison in > TestAsserter>>assertCollection:hasSameElements: ? > > For example #(1 1 2) has same elements as #(1 2) which may make sense for > sets, but not for bags. > > The main reason I was using it is that in tests the expected collection may > be created by hand, > which means it is very often an array #(...), { ... }, while models very > often return OrderedCollections (at least in my case). I introduced #assertCollection:hasSameElements: for this reason. The problem with using sets is that I do not expect that #(1 1 2) has same elements as #(1 2) > > So my question is --- how to compare collections irrespective of type, and > possibly of order? > > A) always convert the actual collection toanArray > > B) change difference: behavior for non-sets (ton of work with catastrophic > consequences) > > C) extend TAssertable with new methods like > > #assertElementsOf: actualCollection equals: expectedCollection > #assertUnorderedElementsOf: actualCollection equals: expectedCollection This solution has my preference > C.a) directly in Pharo/SUnit yes, for me, it is a very basic assertion that should be available as default. > C.b) in independend SUnit-Extensions repository/project > C.c) just in my project > > D) stop discussing non-problems > > Thanks, > Peter > Christophe smime.p7s Description: S/MIME cryptographic signature
[Pharo-users] fast subclassing/class creation in tests
Hi, is it possible to do fast, non-system wide class subclassing in tests? Currently I would do something like ~ MyTest>>testSomething cls := SomeParent subclass: #Something. "... do some tests ..." cls removeFromSystem ~ This is for example what ClassTest is doing. However this is very slow, and even for small tests suite --- just ten (so far) test methods it takes over ten seconds to test it all, which is quite bad for TDD. My guess is that since it has to write to class to the environment and disk and then remove it it takes a while: ~ [ Object subclass: #Something ] timeToRun. "0:00:00:00.021" [ #Something asClass removeFromSystem ] timeToRun. "0:00:00:00.526" ~ is it possible to speed it up? Create classes that are fast to remove? Thanks, Peter
Re: [Pharo-users] VM crash on Ubuntu 14.04
Posting to Pharos-dev or Vm Dev may find you more assistance. My suggestions would be: a) upgrade to Pharo 5 and b) run in gdb so we all can be better informed about the issue you are seeing. Is PhaROS doing low level calls? --- robert > On Oct 24, 2015, at 3:32 PM, Johan Fabrywrote: > > > Ben, thanks for replying but since no VM guys are following up on this, > apparently, it does not make much sense for me to go this way. > > Guys, am I to assume there is not help for me on this topic? > >> On Oct 23, 2015, at 11:03, Ben Coman wrote: >> >> On Thu, Oct 22, 2015 at 2:25 AM, Johan Fabry wrote: >>> Hi all, >>> >>> I am having some unpleasant experiences on Ubuntu 14.04 (experimenting with >>> Live Robot Programming on PhaROS). The VM crashes after a random amount of >>> time (< 25 minutes), with no clear sequence of steps on how to reproduce >>> the crash. I am using Pharo 4 (Pharo 40622 as installed by PhaROS) + >>> Roassal which required an install of libcairo2:i386 . VM version details >>> below. >>> >>> There is no printout on stdout, and the debug.log does not contain recent >>> entries (timestamp is always some minutes before the actual crash happens). >>> >>> Is this a known problem? If so, how can I fix it, and if not how can I >>> provide more debugging info? >>> >>> Thanks in advance! >> >> I'm not much help since I haven't done these myself, but just some >> ideas (maybe someone can add more details) >> * compile and run a debug vm >> * trace all function calls, http://tinyurl.com/gdb-trace-all > > > > ---> Save our in-boxes! http://emailcharter.org <--- > > Johan Fabry - http://pleiad.cl/~jfabry > PLEIAD and RyCh labs - Computer Science Department (DCC) - University of > Chile > >
Re: [Pharo-users] Pharo family update
Wow, thanks for great feedback to everyone. I will try to modify drawings by your sugestions. Here is few questions: - Aida web framework is ready for Pharo? In Pharo Catalog it is labeled as unstable. - FFI by this: http://stackoverflow.com/questions/30322445/pharo-4-ffi-current-state-and-the-future have more implementations - which one I should put into drawing? - Event framework is complete framework? I found EventRecorder and EventModel. Aren't events part of Morphic? Adam Dne So 24. října 2015 13:30:25, Ferlicot D. Cyril napsal(a): > Le 24/10/2015 09:27, stepharo a écrit : > > Superb! Really nice > > Margritte -> Magritte > > Mondorian -> Mondrian > > > > to add > > > > Never heard about PharoLink but you should have Garage (a database > > generic API) > > > > You could add MongoTalk close to Voyage > > > > GLORP > > > > Relational > > Mapper > > > > Woden 3D > > Roassal3D > > > > Omnibrowser is deprecated > > > > I would put STON close to Fuel > > May be you should move closer the two spots: import/export and data > > > > Tide is not developed anymore so I would remove it > > Add Reef instead (Javascript-enabled Web components) > > > > About Graphics > > > > you should have > > > > Athens (Vector graphics API) > > Bloc (new generation Morphic) > > Brick (new generation widgets) > > Hi, > > I do not agree to add Reef, Bloc and Brick now if this map is for beginners. > If this map is for beginners that need a framework we should wait to have a > usable version with documentation. > I think Bloc and Brick are not finish yet (I think) and reef lack > documentation/tutorial. > > If a beginner see it on the map and test it he will have a bad first > impression. And first impression count. > > This project should be on a waiting list the time there are stable and > documented I think. But this is just my opinion.
Re: [Pharo-users] VM crash on Ubuntu 14.04
Can you provide the image file. What exactly runs in the image (does it depend on ROS or does it crash even without it). For what do you use Roassal in this environment. Can you reproduce the crash with a clean image (and maybe loading some package - without all of the ROS-stuff? (I just followed the installation guide for PhaROS, but I have no idea how to go from here to do anything to reproduce the crash). 2015-10-24 21:32 GMT+02:00 Johan Fabry: > > Ben, thanks for replying but since no VM guys are following up on this, > apparently, it does not make much sense for me to go this way. > > Guys, am I to assume there is not help for me on this topic? > > > On Oct 23, 2015, at 11:03, Ben Coman wrote: > > > > On Thu, Oct 22, 2015 at 2:25 AM, Johan Fabry > wrote: > >> Hi all, > >> > >> I am having some unpleasant experiences on Ubuntu 14.04 (experimenting > with Live Robot Programming on PhaROS). The VM crashes after a random > amount of time (< 25 minutes), with no clear sequence of steps on how to > reproduce the crash. I am using Pharo 4 (Pharo 40622 as installed by > PhaROS) + Roassal which required an install of libcairo2:i386 . VM version > details below. > >> > >> There is no printout on stdout, and the debug.log does not contain > recent entries (timestamp is always some minutes before the actual crash > happens). > >> > >> Is this a known problem? If so, how can I fix it, and if not how can I > provide more debugging info? > >> > >> Thanks in advance! > > > > I'm not much help since I haven't done these myself, but just some > > ideas (maybe someone can add more details) > > * compile and run a debug vm > > * trace all function calls, http://tinyurl.com/gdb-trace-all > > > > > > ---> Save our in-boxes! http://emailcharter.org <--- > > Johan Fabry - http://pleiad.cl/~jfabry > PLEIAD and RyCh labs - Computer Science Department (DCC) - University > of Chile > > >
Re: [Pharo-users] VM crash on Ubuntu 14.04
Ben, thanks for replying but since no VM guys are following up on this, apparently, it does not make much sense for me to go this way. Guys, am I to assume there is not help for me on this topic? > On Oct 23, 2015, at 11:03, Ben Comanwrote: > > On Thu, Oct 22, 2015 at 2:25 AM, Johan Fabry wrote: >> Hi all, >> >> I am having some unpleasant experiences on Ubuntu 14.04 (experimenting with >> Live Robot Programming on PhaROS). The VM crashes after a random amount of >> time (< 25 minutes), with no clear sequence of steps on how to reproduce the >> crash. I am using Pharo 4 (Pharo 40622 as installed by PhaROS) + Roassal >> which required an install of libcairo2:i386 . VM version details below. >> >> There is no printout on stdout, and the debug.log does not contain recent >> entries (timestamp is always some minutes before the actual crash happens). >> >> Is this a known problem? If so, how can I fix it, and if not how can I >> provide more debugging info? >> >> Thanks in advance! > > I'm not much help since I haven't done these myself, but just some > ideas (maybe someone can add more details) > * compile and run a debug vm > * trace all function calls, http://tinyurl.com/gdb-trace-all > ---> Save our in-boxes! http://emailcharter.org <--- Johan Fabry - http://pleiad.cl/~jfabry PLEIAD and RyCh labs - Computer Science Department (DCC) - University of Chile
Re: [Pharo-users] fast subclassing/class creation in tests
You can wrap the subclassing and the \removeFromSystem with SystemAnnouncer uniqueInstance suspendAllWhile: [ ] 2015-10-24 20:43 GMT+02:00 Peter Uhnák: > Hi, > > is it possible to do fast, non-system wide class subclassing in tests? > > Currently I would do something like > > ~ > MyTest>>testSomething > cls := SomeParent subclass: #Something. > "... do some tests ..." > cls removeFromSystem > ~ > > This is for example what ClassTest is doing. > > However this is very slow, and even for small tests suite --- just ten (so > far) test methods it takes over ten seconds to test it all, which is quite > bad for TDD. > > My guess is that since it has to write to class to the environment and > disk and then remove it it takes a while: > > ~ > [ Object subclass: #Something ] timeToRun. "0:00:00:00.021" > [ #Something asClass removeFromSystem ] timeToRun. "0:00:00:00.526" > ~ > > is it possible to speed it up? Create classes that are fast to remove? > > Thanks, > Peter >
Re: [Pharo-users] fast subclassing/class creation in tests
Extend Pharo byte codes to support Newspeak namespaces. #justsayin --- robert > On Oct 24, 2015, at 6:22 PM, Nicolai Hesswrote: > > You can wrap the subclassing and the \removeFromSystem with > SystemAnnouncer uniqueInstance suspendAllWhile: [ ] > > 2015-10-24 20:43 GMT+02:00 Peter Uhnák : >> Hi, >> >> is it possible to do fast, non-system wide class subclassing in tests? >> >> Currently I would do something like >> >> ~ >> MyTest>>testSomething >> cls := SomeParent subclass: #Something. >> "... do some tests ..." >> cls removeFromSystem >> ~ >> >> This is for example what ClassTest is doing. >> >> However this is very slow, and even for small tests suite --- just ten (so >> far) test methods it takes over ten seconds to test it all, which is quite >> bad for TDD. >> >> My guess is that since it has to write to class to the environment and disk >> and then remove it it takes a while: >> >> ~ >> [ Object subclass: #Something ] timeToRun. "0:00:00:00.021" >> [ #Something asClass removeFromSystem ] timeToRun. "0:00:00:00.526" >> ~ >> >> is it possible to speed it up? Create classes that are fast to remove? >> >> Thanks, >> Peter >
Re: [Pharo-users] Matrix error
Hi Offray, you could try this: medMatrix:=Matrix rows: 5 columns: 7. 1 to: medMatrix numberOfRows do: [:row | 1 to: medMatrix numberOfColumns do: [ :column | medMatrix at: row at: column put: 0. Transcript show: row asString, ',', column asString, '|'. ]. Transcript cr. ]."see transcript" medMatrix. "(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 )" "in scismalltalk:" m2:=DhbMatrix rows: ((1 to: 5) collect:[:i|(Array new:7)]). 1 to: m2 numberOfRows do: [:row | 1 to: m2 numberOfColumns do: [ :column | m2 at: row at: column put: 0. Transcript show: row asString, ',', column asString, '|'. ]. Transcript cr. ]."see transcript" m2. "a DhbVector(0 0 0 0 0 0 0) a DhbVector(0 0 0 0 0 0 0) a DhbVector(0 0 0 0 0 0 0) a DhbVector(0 0 0 0 0 0 0) a DhbVector(0 0 0 0 0 0 0)" werner
Re: [Pharo-users] #collect:as:Dictionary
What is the practical value of creating a dictionary from non-association objects? That seems to me like the programmer made a mistake and forgot something. But maybe you do it regularly, I can only speak for myself. However consider also this: #(a b c) collect: [ :each | each -> each first asciiValue ] as: Dictionary. "a Dictionary(1->#a->97 2->#b->98 3->#c->99 )" (#(a b c) collect: [ :each | each -> each first asciiValue ]) as: Dictionary. "a Dictionary(#a->97 #b->98 #c->99 )" Peter On Sat, Oct 24, 2015 at 12:13 PM, Nicolai Hesswrote: > > > 2015-10-23 8:33 GMT+02:00 Marcus Denker : > >> >> > On 23 Oct 2015, at 07:12, Peter Uhnák wrote: >> > >> > Hi, >> > >> > is this intentional behavior? >> > >> > #(a b c) collect: [ :each | each -> each first asciiValue ] as: >> Dictionary. >> > "a Dictionary(1->#a->97 2->#b->98 3->#c->99 )" >> > >> > (#(a b c) collect: [ :each | each -> each first asciiValue ]) >> asDictionary. >> > "a Dictionary(#a->97 #b->98 #c->99 )" >> > >> > I would expect that collect:as: for Dictionaries would act in the same >> way as #asDictionary. >> > >> Yes, I would expect the same… asDictionary is fairly recent, though. >> Before that, any kind >> of conversion would have been fine. >> >> Marcus >> >> >> > I would not change this. > The first just collects each entry and builds an association with the > index, > and the second expects a list of assocations. > They have different behaviors if the list does not contains (or does not > only contains) associations: > > { $a -> 1 . $b -> 2. 'not_an_association' } collect:#yourself > as:Dictionary. "works - I would not expect an error" > > { $a -> 1 . $b -> 2. 'not_an_association' } asDictionary "throws an error > - as I would expect it " > > >
Re: [Pharo-users] How to programatically select an item in a Spec TreeModel ?
> > > Unless Cyril is going to do the rewrite himself. > Wasn't that the plan? I'm confused :) Oh? I do not remember anyone mentioning on the mailing list that someone will change Spec to use FT. Or was this from some internal discussion at Inria/Synectique? Peter
Re: [Pharo-users] How to programatically select an item in a Spec TreeModel ?
Le 24 oct. 2015 8:12 AM, "Peter Uhnák"a écrit : >> >> Waiting for the FT-based rewrite is the thing to do. > > > If by waiting you mean doing FT-based rewrite, then sure. :) Ah, you want to do it? ;) > Unless Cyril is going to do the rewrite himself. Wasn't that the plan? I'm confused :) Thierry > P >
Re: [Pharo-users] Fossil and Filetree
I will write you if needed, I am not there yet. Hilaire Le 22/10/2015 22:51, Dale Henrichs a écrit : > Hilaire, if you are interested in contributing, I would be willing to > add you to the FileTree project up on GitHub ... Oops, unless you > don't want to be:) > > Dale > > On 10/22/2015 01:40 AM, Hilaire wrote: >> Le 21/10/2015 22:03, Thierry Goubier a écrit : >>> Just use the ConfigurationOfGitFileTree available in your >>> Configuration browser in the image ;) >>> >>> Or >>> >>> Metacello new >>> configuration: 'GitFileTree'; >>> repository: >>> 'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo30/main'; >>> load >>> >>> Thierry >> Okay, thanks. >> Not sure I can handle it right now, there are a lot of know-how about >> git and fossil implicated. >> >> Hilaire >> > > > -- Dr. Geo http://drgeo.eu http://google.com/+DrgeoEu
Re: [Pharo-users] How to programatically select an item in a Spec TreeModel ?
Thank you very much ! Le ven. 23 oct. 2015 à 21:03, Peter Uhnáka écrit : > It's also possible that it is simply bugged. > > PackageRemotesManager doesn't use TreeModel, it uses different widget > (whose API looks cleaner). > > I'll try to look at this tomorrow (unless someone else beats me to it) how > this could be done (and maybe even take a stab at cleaning the API a > bit...). > > Peter > > On Fri, Oct 23, 2015 at 5:17 PM, Edouard KLEIN > wrote: > >> Hi ! >> >> I've been playing with Pharo again. In the application I'm building, I >> need to load a file from disk, and depending on what is inside this >> file, select an item in a tree that is displayed on the main window. >> >> The SearchableTree subclass I use is copied at the end of the email. It >> is nothing fancy, just creating the nodes from a fixed tree structure. >> >> The method selectedItemFRomPathArray (e.g. #('a' 'a1')) is the one that >> should be responsible for selecting the node, but for now it just >> returns the array of TreeNodeModel that correspond to the strings in the >> 'PathArray' given in argument. >> >> I tried the following in a PlayGround : >> >> w := CRPJCategories2 new. w openWithSpec. >> "Taken from packageRemotesManager without understanding it." >> w tree selectedItem:( >> (w roots) first "This line can also be : >> ((w selectedItemFromPathArray:#('a')) last)" >> selected:true; >> takeHighlight; >> yourself). >> >> Which works, but when I try to select something that is not a root node, >> then it does not work, and I've been pulling my hair trying to >> understand why. >> >> w := CRPJCategories2 new. w openWithSpec. >> "Taken from packageRemotesManager without understanding it." >> w tree selectedItem:( >> ((w selectedItemFromPathArray:#('a' 'a1')) last) "<- DOES NOT WORK" >> selected:true; >> takeHighlight; >> yourself). >> >> >> Any pointer would be very much appreciated. >> >> Thenks in advance. >> >> Edouard. >> >> >> >> >> --- >> 'From Pharo4.0 of 18 March 2013 [Latest update: #40623] on 23 October >> 2015 at 4:55:07.823126 pm'! >> SearchableTree subclass: #CRPJCategories2 >> instanceVariableNames: 'structure' >> classVariableNames: '' >> poolDictionaries: '' >> category: 'CRPJ'! >> >> !CRPJCategories2 methodsFor: 'as yet unclassified' stamp: 'EdouardKlein >> 10/23/2015 15:29'! >> nodeFromTreeStructure: anArray >> ^ (anArray collect:[:x| TreeNodeModel new >> content: (x at:1); >> children: [((x size = 1) ifTrue:[#()] ifFalse:[self >> nodeFromTreeStructure:(x at:2)])]; >> hasChildren:[x size > 1]]) asOrderedCollection.! ! >> >> !CRPJCategories2 methodsFor: 'as yet unclassified' stamp: 'EdouardKlein >> 10/23/2015 15:10'! >> initialize >> | | >> super initialize. >> structure := { >> {'a' . { >> {'a1'}. >> {'a2'}}}. >> {'b' . { >> {'b1' . { >> {'b1A'}. >> {'b1B'}}}. >> {'b2'}. >> {'b3' . { >> {'b3A'}. >> {'b3B'}. >> {'c' . { >> {'c1'}. >> {'c2'}. >> {'c3'. >> self roots:(self nodeFromTreeStructure: structure).! ! >> >> !CRPJCategories2 methodsFor: 'as yet unclassified' stamp: 'EdouardKlein >> 10/23/2015 16:54'! >> selectedItemFromPathArray:aPathArray >> "a string description of the currently selected item" >> | recurse | >> recurse := [:path :nodes| >> |nextNode| >> nextNode := (nodes select:[:n| n content = path first]) >> first. >> (path size = 1) ifTrue:[{nextNode}] ifFalse:[ >> {nextNode},(recurse value:(path >> allButFirst)value:(nextNode children >> value))]]. >> ^(recurse value: aPathArray value:(self roots)).! ! >> >> !CRPJCategories2 methodsFor: 'as yet unclassified' stamp: 'EdouardKlein >> 10/23/2015 16:53'! >> selectedItemAsPathArray >> "an array of the path to the currently selected item" >> | recurse | >> recurse := [:node| node ifNil:[{}] >> ifNotNil:[(recurse value:(node >> parentNode)),{node}]]. >> ^(recurse value:self selectedItem) collect:[:node| node >> content].! ! >> >> >
Re: [Pharo-users] How to programatically select an item in a Spec TreeModel ?
> > Waiting for the FT-based rewrite is the thing to do. If by waiting you mean doing FT-based rewrite, then sure. :) Unless Cyril is going to do the rewrite himself. P
Re: [Pharo-users] #collect:as:Dictionary
2015-10-23 8:33 GMT+02:00 Marcus Denker: > > > On 23 Oct 2015, at 07:12, Peter Uhnák wrote: > > > > Hi, > > > > is this intentional behavior? > > > > #(a b c) collect: [ :each | each -> each first asciiValue ] as: > Dictionary. > > "a Dictionary(1->#a->97 2->#b->98 3->#c->99 )" > > > > (#(a b c) collect: [ :each | each -> each first asciiValue ]) > asDictionary. > > "a Dictionary(#a->97 #b->98 #c->99 )" > > > > I would expect that collect:as: for Dictionaries would act in the same > way as #asDictionary. > > > Yes, I would expect the same… asDictionary is fairly recent, though. > Before that, any kind > of conversion would have been fine. > > Marcus > > > I would not change this. The first just collects each entry and builds an association with the index, and the second expects a list of assocations. They have different behaviors if the list does not contains (or does not only contains) associations: { $a -> 1 . $b -> 2. 'not_an_association' } collect:#yourself as:Dictionary. "works - I would not expect an error" { $a -> 1 . $b -> 2. 'not_an_association' } asDictionary "throws an error - as I would expect it "
Re: [Pharo-users] How to programatically select an item in a Spec TreeModel ?
Le 24 oct. 2015 12:07 PM, "Peter Uhnák"a écrit : >> >> > Unless Cyril is going to do the rewrite himself. >> Wasn't that the plan? I'm confused :) > > > Oh? I do not remember anyone mentioning on the mailing list that someone will change Spec to use FT. Or was this from some internal discussion at Inria/Synectique? Well, given FT, then Spec will change to use it. You don't want to keep two widly different implementations of the same widget. Now, there was talk of a FT-based tree widget, and, IMO, this is the way to go. Thierry > Peter
Re: [Pharo-users] Pharo family update
Le 24/10/2015 09:27, stepharo a écrit : > Superb! Really nice > Margritte -> Magritte > Mondorian -> Mondrian > > to add > > Never heard about PharoLink but you should have Garage (a database > generic API) > > You could add MongoTalk close to Voyage > > GLORP > Relational > Mapper > > Woden 3D > Roassal3D > > Omnibrowser is deprecated > > I would put STON close to Fuel > May be you should move closer the two spots: import/export and data > > Tide is not developed anymore so I would remove it > Add Reef instead (Javascript-enabled Web components) > > About Graphics > > you should have > Athens (Vector graphics API) > Bloc (new generation Morphic) > Brick (new generation widgets) > > Hi, I do not agree to add Reef, Bloc and Brick now if this map is for beginners. If this map is for beginners that need a framework we should wait to have a usable version with documentation. I think Bloc and Brick are not finish yet (I think) and reef lack documentation/tutorial. If a beginner see it on the map and test it he will have a bad first impression. And first impression count. This project should be on a waiting list the time there are stable and documented I think. But this is just my opinion. -- Cyril Ferlicot http://www.synectique.eu 165 Avenue Bretagne Lille 59000 France signature.asc Description: OpenPGP digital signature
Re: [Pharo-users] Pharo family update
Superb! Really nice Margritte -> Magritte Mondorian -> Mondrian to add Never heard about PharoLink but you should have Garage (a database generic API) You could add MongoTalk close to Voyage GLORP Relational Mapper Woden 3D Roassal3D Omnibrowser is deprecated I would put STON close to Fuel May be you should move closer the two spots: import/export and data Tide is not developed anymore so I would remove it Add Reef instead (Javascript-enabled Web components) About Graphics you should have Athens (Vector graphics API) Bloc (new generation Morphic) Brick (new generation widgets) Le 23/10/15 23:58, Adam a écrit : Hello, I just updated drawing of projects around Pharo. Main idea is to guide people (new users of Pharo) through fields of interests - something they might be looking for. I choose these 10 fields devided into some specific subjects. Somewhere it is too detailed, while elsewhere it is too fuzzy - it is just showing image of Pharo I have in my mind. It should help people to: - identify important classes in Pharo, - select right project, - understand what is application, tool or framework, - see what is allready inside main Pharo image. I would like to add links pointing to part of books or to videos where specific projects are used. And maybe a star symbol for very important or enterprise ready projects. As You can see I left few subjects empty. Maybe someone can help me fill this. But I will be happy for any type of correction - changing fields of interest, subjects, adding/removing projects etc... I prepared textual version on github - but right now it is not coherent with the drawing (I will correct this if needed). Adam.
Re: [Pharo-users] How to programatically select an item in a Spec TreeModel ?
Le 24/10/2015 08:11, Peter Uhnák a écrit : > Waiting for the FT-based rewrite is the thing to do. > > > If by waiting you mean doing FT-based rewrite, then sure. :) > > Unless Cyril is going to do the rewrite himself. > > P > Hi, Create a FTTree should be my next work :) I already begun a FTTree with one sublevel but this is only a first shot. I think it's possible to do cleaner and faster. -- Cyril Ferlicot http://www.synectique.eu 165 Avenue Bretagne Lille 59000 France signature.asc Description: OpenPGP digital signature