[Pharo-users] Re: Help with PetitParser2 rules
Thank you, Frank. I'll try your suggestion. El dom, 7 jul 2024 a las 6:19, vfclists () escribió: > > > On Fri, 5 Jul 2024 at 10:39, Rafael Luque > wrote: > >> Hi all, >> >> I'm struggling with a small parser using PetitParser2. Here is a fragment >> of some of the rules I'm defining but their behaviour is not as I could >> expect: >> >> andKeyword := 'and' asPParser trim, #letter asPParser not. >> notKeyword := 'not' asPParser trim, #letter asPParser not. >> keyword := andKeyword / notKeyword. >> nonKeywordIdentifier := keyword not, #letter asPParser, #word asPParser >> star. >> word := nonKeywordIdentifier, #blank asPParser star. >> words := word star. >> >> The behaviour of the "nonKeywordIdentifier" is the expected: >> >> identifier end parse: 'hello'. "It parses successfully" >> identifier end parse: 'and'. "It fails as 'and' is a keyword" >> >> However the "words" rule's behavior is the following: >> >> words end parse: 'hello Pharo'. "It parses successfully" >> words end parse: 'hello and bye'. "It parses, when I would expect it >> fails because of 'and' is a keyword" >> >> I don't understand why the "words" rule works this way, but I'm starting >> with PetitParser. Any suggestions? >> >> Thank you. >> > > You might consider asking on stackoverflow. > > A PetitParser2 question has been answered there recently. > -- > Frank Church > > === > >
[Pharo-users] Help with PetitParser2 rules
Hi all, I'm struggling with a small parser using PetitParser2. Here is a fragment of some of the rules I'm defining but their behaviour is not as I could expect: andKeyword := 'and' asPParser trim, #letter asPParser not. notKeyword := 'not' asPParser trim, #letter asPParser not. keyword := andKeyword / notKeyword. nonKeywordIdentifier := keyword not, #letter asPParser, #word asPParser star. word := nonKeywordIdentifier, #blank asPParser star. words := word star. The behaviour of the "nonKeywordIdentifier" is the expected: identifier end parse: 'hello'. "It parses successfully" identifier end parse: 'and'. "It fails as 'and' is a keyword" However the "words" rule's behavior is the following: words end parse: 'hello Pharo'. "It parses successfully" words end parse: 'hello and bye'. "It parses, when I would expect it fails because of 'and' is a keyword" I don't understand why the "words" rule works this way, but I'm starting with PetitParser. Any suggestions? Thank you.
[Pharo-users] Platform studies
Hi all. I'm enjoying reading some books of the Platform Studies series by the MIT Press (https://mitpress.mit.edu/books/series/platform-studies). Specifically, I'm reading "The future was here" about the Amiga and "Racing the Beam" about the Atari VCS. What I like about these books is how they try to study the relationships between the hardware and software design of these computing platforms and the creative works produced on these systems. The books study these media from the technical point of view, but also deep into their social and cultural aspects. I'd like this kind of critical study about the Smalltalk platform. Do you know about any book or research in this style? Thank you. ~ Rafael Luque
[Pharo-users] Re: TeaTime replication ported to Pharo
Thank you all for these references. I'm going to study the TeaTime implementation from the Open Croquet version "restored" for Squeak by Nikolay Suslov and we'll share our experiments. Regarding BluePlane.xyz we are moving slowly. For the moment we have been playing with ideas like Scenario-Based Programming (by David Harel). We implemented a very rough library for "behavioral programming" in Pharo with some typical examples. We are now refactoring it to use actors instead of processes. We hope to release it soon Cheers, Rafael Luque. El mié., 4 nov. 2020 a las 23:12, Offray Vladimir Luna Cárdenas (< offray.l...@mutabit.com>) escribió: > Hi both Jonathan and Rafael, > > On 4/11/20 2:30 p. m., Jonathan van Alteren wrote: > > > > Send me a PM if you're interested to have a chat about this sometime. > > I've been meaning to ask you about Blueplane.xyz for a while, but > > haven't come around to it. I'd love to hear more about your goals and > > share some ideas. > > Let me know if you can also keep me in the loop regarding blueplane.xyz > as is interesting to me also and I would like to see how/if it can > dialogue with local initiatives here related with critical code+data > literacy. > > Cheers, > > Offray >
[Pharo-users] TeaTime replication ported to Pharo
Hi all, I wonder if there is any project for supporting the replication of shared objects between Pharo images. My interest is to explore the replication approach for distributed, peer-to-peer applications. However, instead of the mainstream replication of data, I'd like to play with the "behavior replication" proposed by the TeaTime architecture from the old Croquet project. The most modern reference I've found is this paper about Archipelago by Eric Seckler and Robert Hirschfeld: http://www.hirschfeld.org/writings/media/SecklerHirschfeld_2014_ArchipelagoAResearchPlatformForComponentInteractionInDistributedApplications_AuthorsVersion.pdf Thank you, Rafael Luque.
[Pharo-users] HOPL-4 papers
Hi all, Not strictly related with Pharo, but I think it could be interesting to any Smalltalker. ACM has just published the History of Programming Languages 4. The papers cover the following languages: APL, C++, Closure, Fortran parallelism, D, Emacs Lisp, F#, Groovy, Hygienic Macros (Scheme), JavaScript, LabVIEW, Logo. MATLAB, Objective-C, Oz, R, ML, Verilog and Smalltalk. The paper dedicated to Smalltalk is "The evolution of Smalltalk: from Smalltalk-72 through Squeak" by Dan Ingalls. All the papers are available to download here: https://dl.acm.org/toc/pacmpl/2020/4/HOPL Rafael Luque
Re: [Pharo-users] How to render video frames?
Thank you Alex! You made my day. Using your suggestion the video is playing more smoothly. Better than that, I've managed the C library to get the frame data from OpenCV in BGRA format in order to be able to use the BlExternalForm, but now I can use directly BGR and save all those alpha bytes. However, I've noticed that if I try to update my custom Bloc element each time a new detected frame is available I get an empty window. Only when I force a small delay (like 5 milliseconds) between frames I can see the video playing in the window. An example of the code I'm running on a Playground would be like the following: detector := OCVBlobDetector createOn: 0. aSpace := BlSpace new extent: 740@580; title: 'OpenCV Frame'. aSpace root background: Color gray asBlBackground. frameElement := (OCVBlocDetectionElement on: detector detect) relocate: 50@50; yourself. aSpace root addChild: frameElement. aSpace show. detector live: [ :detection | frameElement detection: detection. frameElement invalidate. 5 milliSeconds wait. ]. Thank you! El mié., 12 jun. 2019 a las 20:52, Aliaksei Syrel () escribió: > Hi Rafael, > > Assuming you have your OpenCV camera frame object named image in BGR > format (default for OpenCV) > Here is how you can render it at high fps in Bloc (override *BlElement>>#* > drawOnSpartaCanvas: aCanvas in a subclass) > > surface := aSpartaCanvas bitmap > > fromBGR: image imageData > > extent: image width @ image height > stride: image widthStep. > > > aSpartaCanvas fill > > paint: surface; > path: surface bounds; > draw > > > Cheers, > Alex > > > On Wed, 12 Jun 2019 at 22:39, Rafael Luque > wrote: > >> Hello, >> >> I'm experimenting with an integration between OpenCV and Pharo based on >> uFFI. My native C library opens a video camera and captures frames for >> detecting certain points (aka blobs) of interest for my use case. The data >> for these frames are available to Pharo as uchar* inside a C struct. >> >> My issues came when I tried to render the video camera frames inside >> Pharo. The C examples I developed for testing the shared library show >> frames around 50-60 fps. However, the best I have got in Pharo is around >> 15-20 fps. >> >> My first try consisted of writing an specific ImageReadWriter for the >> OpenCV image format, so I can build a Form for each frame and render it >> with Morphic. This way I can render the video camera in GTInspector, but at >> a terrible 5-10 fps. >> >> The second try was to use Bloc to render the Forms. I though the Moz2D >> backend will provider better performance. Indeed, I got around 15-20 fps, >> but it is still insufficient for playing video smoothly. >> >> My current try consist of using BlExternalForm to avoid all the frame >> data processing inside Pharo, but I'm finding problems to render this kind >> of "shallow" Forms using Bloc. >> >> I've also find some old mails (2017) about Clément Bera working in games >> based on Cairo + SDL. Should I explore this approach for video rendering? >> >> In summary, I don't know what is the recommended approach (if any) to >> show a sequence of video frames with decent bit-rate. >> >> Thank you! >> >
[Pharo-users] How to render video frames?
Hello, I'm experimenting with an integration between OpenCV and Pharo based on uFFI. My native C library opens a video camera and captures frames for detecting certain points (aka blobs) of interest for my use case. The data for these frames are available to Pharo as uchar* inside a C struct. My issues came when I tried to render the video camera frames inside Pharo. The C examples I developed for testing the shared library show frames around 50-60 fps. However, the best I have got in Pharo is around 15-20 fps. My first try consisted of writing an specific ImageReadWriter for the OpenCV image format, so I can build a Form for each frame and render it with Morphic. This way I can render the video camera in GTInspector, but at a terrible 5-10 fps. The second try was to use Bloc to render the Forms. I though the Moz2D backend will provider better performance. Indeed, I got around 15-20 fps, but it is still insufficient for playing video smoothly. My current try consist of using BlExternalForm to avoid all the frame data processing inside Pharo, but I'm finding problems to render this kind of "shallow" Forms using Bloc. I've also find some old mails (2017) about Clément Bera working in games based on Cairo + SDL. Should I explore this approach for video rendering? In summary, I don't know what is the recommended approach (if any) to show a sequence of video frames with decent bit-rate. Thank you!
[Pharo-users] Mindmaps and WardleyMaps in Pharo
I'm looking for drawing some mindmaps and (obviously) I'd like to be able to draw and visualize them inside my own Pharo tools. I've found this video in Stephan Eggermont's channel: https://vimeo.com/136943448 Do you know any other alternatives for Pharo? BTW, I also found this other video about Wardley maps: https://vimeo.com/141653455 I found it very interesting. Somebody knows where can I find this project? Thank you!
[Pharo-users] Uncle Bob's package design metrics
Hi, Recently I've reread the chapter about "Package Design Principles" from the Robert C. Martin's "Agile Software Development" book and immediately find myself playing within the reflective and moldable Pharo's environment. I've built an small library DMMetrics that you can find at GitHub: https://github.com/osoco/dm-metrics This is a still very rough and work-in-progress, but I hope to be able to use it in my own projects to get some insights about my package design. Besides my unknowns about Roassal or Renraku, I've also found more conceptual difficulties trying to adapt some metrics as were originally defined by Robert Martin to Pharo's idiosyncrasies. For instance, for measuring the abstraction level of a package, the "Abstractness" metric is defined as Na/Nc; where Na is the number of classes in the package and Nc represents the number of abstract classes in the package. In a language like Java Nc refers to the number of interfaces and classes with at least one abstract method. In Pharo I'm counting the number of classes with methods sending "self subclassResponsibility", but I suspect that this way of measuring is resulting in abstractness values lower than it should be. Maybe I should take into account other Smalltalkish idioms that also contribute to the class abstraction level. Any idea in this way would be of great help. Thank you!
Re: [Pharo-users] Pharo for PWAs and Web Push Notifications
Hi Phil, I have a general knowledge about these kind of cloud-powered PaaS and serverless solutions, though I have much more experience with the AWS portfolio: AWS Lambdas, Cloudformation, AWS Amplify, etc. I suppose they are more or less comparable with GCP's options. For sure, I will go in depth in the study of Firebase, and I don't dismiss it as an option for critical projects. However, in order to learn PWA and Pharo, I prefer to implement an agnostic solution without any vendor dependencies. In other words, when I think in Pharo not always think in terms of effort/results, or at least not the most immediate and pragmatic results. An acceptable tradeoff for me could be effort/learning that can be transformed to effort/results in the mid-term. Thank you! El mar., 23 oct. 2018 a las 15:41, p...@highoctane.be () escribió: > > > On Tue, Oct 23, 2018 at 11:32 AM Rafael Luque < > rafael.luque.le...@gmail.com> wrote: > >> Hi all, >> >> I'm interested in developing progressive web applications (PWA) [1] in >> Pharo, so I'd like to know if anyone has been involved in such kind of task >> before and could share his experiences. >> > > The best thing I used for such stuff in terms of effort/results is using > Firebase. > > https://firebase.google.com > > Why? Because it provides a ton of the mechanisms for what you ask below, > works well, handles a ton of periphrenalia that I really do not want to > deal with directly. > > The good bit is that the frontend piece (the actual PWA) can be written in > any way you want provided that at the end there is some JS code handling > the UI. > > Services can be provided as cloud functions of Google Cloud and nothing > prevents them from being in Pharo. > > In the Firebase SDK, there is a command line tool that provides for local > execution of the generated JS and one can then push that code to the server > side. > Integration with Google general push notification system is easy to > implement as well. > > Costs of operation are quite low, even for pushing to large user bases. > > There is of course the "database" component (the actual "Firebase") that > is key/value pair system, along with read/write policies (which can be > quite complexand support quite a number of situations very well, provided > the schema is well done) and if what one needs is a relational DB, this is > not really the same thing. > > So, that's how I would do PWAs, they work nicely using that very stack. > > Phil > > >> At first sight, I was thinking in trying PharoJS [2] to build >> abstractions in Pharo for each PWA's client-side concept like Service >> Workers, Cache API, IndexedDB API, appshell architecture, etc. >> >> By the other hand, one of the more appealing features of PWAs is the web >> push notifications capability. To be able to send push notifications from a >> Pharo server I will also need an implementation of the Web Push Protocol >> [3] and the VAPID spec [4]. Do you know any previous related work in Pharo >> or should I think in my own implementation? >> >> Thank you! >> >> [1] https://developers.google.com/web/progressive-web-apps/ >> [2] https://pharojs.github.io/ >> [3] https://tools.ietf.org/html/draft-ietf-webpush-protocol-12 >> [4] https://tools.ietf.org/html/draft-thomson-webpush-vapid-02 >> >
Re: [Pharo-users] Pharo for PWAs and Web Push Notifications
Hi Sven! As I understand, the HTTP/2 protocol is only required by the following 3 operations: - Receiving Push Messages for a Subscription. - Receiving Push Messages for a Subscription Set. - Receiving Push Message Receipts. The first two use cases are communications between the user agent (browser) and the Push Service (provided by the different browser companies). The operations I need to implement will be those which involve the application server, in our case implemented in Pharo. As far as I read these operations are sent over HTTP/1.1. Thank you! El mar., 23 oct. 2018 a las 14:30, Sven Van Caekenberghe () escribió: > > Rafael, > > > On 23 Oct 2018, at 11:32, Rafael Luque wrote: > > > > By the other hand, one of the more appealing features of PWAs is the web push notifications capability. To be able to send push notifications from a Pharo server I will also need an implementation of the Web Push Protocol [3] and the VAPID spec [4]. Do you know any previous related work in Pharo or should I think in my own implementation? > > The two protocols you mention are based on HTTP/2, which we do not (yet) have. > We do have WebSockets in Zinc, which might help in understanding the issues at hand. > > Sven
Re: [Pharo-users] Pharo for PWAs and Web Push Notifications
Hi Tim! I will also check Willow following your suggestion. Thank you! El mar., 23 oct. 2018 a las 14:18, Tim Mackinnon () escribió: > Have you also looked at Willow - https://link.medium.com/Iyj4qo2BfR? > > It has spa ‘s in mind - although I’m not sure of the pro’s/cons vs Pharo > js which also looks good too. > > Would be interested in what you decide. > > Tim > > Sent from my iPhone > > On 23 Oct 2018, at 19:02, Rafael Luque > wrote: > > Hi all, > > I'm interested in developing progressive web applications (PWA) [1] in > Pharo, so I'd like to know if anyone has been involved in such kind of task > before and could share his experiences. > > At first sight, I was thinking in trying PharoJS [2] to build abstractions > in Pharo for each PWA's client-side concept like Service Workers, Cache > API, IndexedDB API, appshell architecture, etc. > > By the other hand, one of the more appealing features of PWAs is the web > push notifications capability. To be able to send push notifications from a > Pharo server I will also need an implementation of the Web Push Protocol > [3] and the VAPID spec [4]. Do you know any previous related work in Pharo > or should I think in my own implementation? > > Thank you! > > [1] https://developers.google.com/web/progressive-web-apps/ > [2] https://pharojs.github.io/ > [3] https://tools.ietf.org/html/draft-ietf-webpush-protocol-12 > [4] https://tools.ietf.org/html/draft-thomson-webpush-vapid-02 > >
[Pharo-users] Pharo for PWAs and Web Push Notifications
Hi all, I'm interested in developing progressive web applications (PWA) [1] in Pharo, so I'd like to know if anyone has been involved in such kind of task before and could share his experiences. At first sight, I was thinking in trying PharoJS [2] to build abstractions in Pharo for each PWA's client-side concept like Service Workers, Cache API, IndexedDB API, appshell architecture, etc. By the other hand, one of the more appealing features of PWAs is the web push notifications capability. To be able to send push notifications from a Pharo server I will also need an implementation of the Web Push Protocol [3] and the VAPID spec [4]. Do you know any previous related work in Pharo or should I think in my own implementation? Thank you! [1] https://developers.google.com/web/progressive-web-apps/ [2] https://pharojs.github.io/ [3] https://tools.ietf.org/html/draft-ietf-webpush-protocol-12 [4] https://tools.ietf.org/html/draft-thomson-webpush-vapid-02
Re: [Pharo-users] Projects using Magritte meta models
Stef, I've sent a pull request via GitHub with my reviews: https://github.com/SquareBracketAssociates/Booklet-Magritte/pull/2 2018-04-21 8:49 GMT+00:00 Stephane Ducasse : > Cool I will have a look when I go back to Magritte > Rafael if you see mistake in the booklet please report them to me. > I will do a pass in a couple of weeks I hope > > On Sat, Apr 21, 2018 at 4:07 AM, Sean P. DeNigris > wrote: > > Rafael Luque wrote > >> I wonder if there are other relevant projects I could study to discover > >> other possible > >> uses cases of Magritte. > > > > I use it in nearly all my personal projects, almost always via Morphic, > not > > Seaside. Here is a public one you can have a look at: > > https://github.com/seandenigris/Small-World > > > > Load in Pharo 6.1 via: > > Metacello new > > baseline: 'SmallWorld'; > > repository: 'github://seandenigris/ > SmallWorld:master/repository'; > > onConflict: [ :ex | ex allow ]; > > load. > > > > Browse senders of magritteDescription for classes prefixed with "Small". > > > > > > > > - > > Cheers, > > Sean > > -- > > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > > > >
Re: [Pharo-users] Projects using Magritte meta models
Hi Sean, Thank you for your answer. I'm looking forward to read this project's code, however, when I try to load it following your instructions I get a ZnUnknownScheme when it is loading files from gitlab://SeanDeNigris/gitlab-smalltalk-ci:master/src: ZnUrl>>enforceKnownScheme ZnRequestLine>>uri: ZnRequest>>url: ZnClient>>url: [ client := self httpClient. client ifFail: [ :exception | (exception className beginsWith: 'Zn') ifTrue: [ MCRepositoryError signal: 'Could not access ' , self location , ': ' , exception printString ] ifFalse: [ exception pass ] ]; url: self locationWithTrailingSlash; queryAt: 'C' put: 'M;O=D'; "legacy that some servers maybe expect" get. Thank you! 2018-04-21 2:07 GMT+00:00 Sean P. DeNigris : > Rafael Luque wrote > > I wonder if there are other relevant projects I could study to discover > > other possible > > uses cases of Magritte. > > I use it in nearly all my personal projects, almost always via Morphic, not > Seaside. Here is a public one you can have a look at: > https://github.com/seandenigris/Small-World > > Load in Pharo 6.1 via: > Metacello new > baseline: 'SmallWorld'; > repository: 'github://seandenigris/SmallWorld:master/repository'; > onConflict: [ :ex | ex allow ]; > load. > > Browse senders of magritteDescription for classes prefixed with "Small". > > > > - > Cheers, > Sean > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > >
[Pharo-users] Projects using Magritte meta models
Hi all, I'm studying Magritte reading the booklet, Seaside book chapter about it, and the source code in the image. Until now the examples I've found are related with Seaside. I wonder if there are other relevant projects I could study to discover other possible uses cases of Magritte. Thank you!
Re: [Pharo-users] Failure with GitFileTree commiting changes in Traits
Thierry, it work like a charm. This is what I call an express super support service. Thank you!! 2018-04-05 12:28 GMT+00:00 Thierry Goubier : > Hi Raphaël, > > I've pushed a fix on the first count (ConfigurationOfGitFileTree > refers to the stable pharo6.0 branch) and I've > added a fix on the pharo6.0_dev branch (which is an almost complete > rewrite of the metadata-less filetree > write, with probably significant performance gains). > > Just tell me if it works for you. > > Thierry > > 2018-04-05 14:03 GMT+02:00 Thierry Goubier : > > Hi Raphaël, > > > > I'll have a look and change the branch to be the pharo6.0 (and non > > _dev for now). > > > > Regards, > > > > Thierry > > > > 2018-04-05 11:58 GMT+02:00 Rafael Luque : > >> Hello all, > >> > >> I'm getting the below error each time a try to commit changes in Traits > in a > >> project that uses GitFileTree and Pharo 6.0. > >> > >> I've noticed that ConfigurationOfGitFileTree loads (for Pharo 6.0) > FileTree > >> from: > >> > >> github://dalehenrich/filetree:pharo6.0_dev/repository/ > >> > >> If I update to use the "pharo6.0" branch instead of "pharo6.0_dev" then > I > >> can commit the changes without error. > >> > >> By the way, should not the "stable" version of GitFileTree depends on an > >> stable branch of FileTree, instead of the development branch? > >> > >> This is the stack trace of the error I get: > >> > >> = > >> > >> UndefinedObject(Object)>>doesNotUnderstand: #select:thenCollect: > >> MCTraitDefinition(MCClassDefinition)>>selectVariables: > >> MCTraitDefinition(MCClassDefinition)>>instVarNames > >> MCGitFileTreeWriter>>buildClassDefinition: > >> MCGitFileTreeWriter>>writeClassDefinition:in: > >> [ :each | > >> self > >> writeClassDefinition: each > >> in: aPackagePath , '/' , each className , '.class' ] in > >> MCGitFileTreeWriter>>writeClassDefinitions:in: > >> OrderedCollection>>do: > >> MCGitFileTreeWriter>>writeClassDefinitions:in: > >> [ :job | > >> job title: 'Building snapshot'. > >> orderedDefinitions := MCDependencySorter > >> sortItems: aSnapshot definitions. > >> job progress: 0.1. > >> classDefinitions := orderedDefinitions > >> select: [ :e | e isKindOf: MCClassDefinition ]. > >> traitDefinitions := orderedDefinitions > >> select: [ :e | > >> (e isKindOf: MCTraitDefinition) > >> or: [ e isKindOf: MCClassTraitDefinition ] ]. > >> classAndTraitNames := (classDefinitions , traitDefinitions > >> collect: [ :e | e className ]) asSet. > >> job progress: 0.2. > >> methodDefinitions := orderedDefinitions > >> select: [ :e | > >> (e isKindOf: MCMethodDefinition) > >> and: [ classAndTraitNames includes: e className ] ]. > >> extensionMethodDefinitions := orderedDefinitions > >> select: [ :e | > >> (e isKindOf: MCMethodDefinition) > >> and: [ (classAndTraitNames includes: e className) not ] ]. > >> organization := orderedDefinitions > >> select: [ :e | e isKindOf: MCOrganizationDefinition ]. > >> extensionClasses := (extensionMethodDefinitions > >> collect: [ :e | e className ]) asSet. > >> job progress: 0.3. > >> self outputFileDelete: aPackagePath. > >> self writePackageGitPropertiesIn: aPackagePath. > >> self writeOrganization: organization in: aPackagePath. > >> job progress: 0.4. > >> self writeClassDefinitions: classDefinitions in: aPackagePath. > >> self writeTraitDefinitions: traitDefinitions in: aPackagePath. > >> job progress: 0.5. > >> self writeMethodDefinitions: methodDefinitions in: aPackagePath. > >> job progress: 0.6. > >> self writeExtensionClassDefinitions: extensionClasses in: aPackagePath. > >> self > >> writeExtensionMethodDefinitions: extensionMethodDefinitions > >> in: aPackagePath. > >> job progress: 0.7. > >> self writeInitializers: methodDefinitions in: aPackagePath ] in > >> MCGitFileTreeWriter>>writeSnapshot:in: > >> BlockClosure>>cull: > >> [ ^ block cull: self ] in [ self prepareForRunning. > >> CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run > >> [ activeProcess psValueAt: index put: anObject. > >> aBlock valu
[Pharo-users] Failure with GitFileTree commiting changes in Traits
Hello all, I'm getting the below error each time a try to commit changes in Traits in a project that uses GitFileTree and Pharo 6.0. I've noticed that ConfigurationOfGitFileTree loads (for Pharo 6.0) FileTree from: github://dalehenrich/filetree:pharo6.0_dev/repository/ If I update to use the "pharo6.0" branch instead of "pharo6.0_dev" then I can commit the changes without error. By the way, should not the "stable" version of GitFileTree depends on an stable branch of FileTree, instead of the development branch? This is the stack trace of the error I get: = UndefinedObject(Object)>>doesNotUnderstand: #select:thenCollect: MCTraitDefinition(MCClassDefinition)>>selectVariables: MCTraitDefinition(MCClassDefinition)>>instVarNames MCGitFileTreeWriter>>buildClassDefinition: MCGitFileTreeWriter>>writeClassDefinition:in: [ :each | self writeClassDefinition: each in: aPackagePath , '/' , each className , '.class' ] in MCGitFileTreeWriter>>writeClassDefinitions:in: OrderedCollection>>do: MCGitFileTreeWriter>>writeClassDefinitions:in: [ :job | job title: 'Building snapshot'. orderedDefinitions := MCDependencySorter sortItems: aSnapshot definitions. job progress: 0.1. classDefinitions := orderedDefinitions select: [ :e | e isKindOf: MCClassDefinition ]. traitDefinitions := orderedDefinitions select: [ :e | (e isKindOf: MCTraitDefinition) or: [ e isKindOf: MCClassTraitDefinition ] ]. classAndTraitNames := (classDefinitions , traitDefinitions collect: [ :e | e className ]) asSet. job progress: 0.2. methodDefinitions := orderedDefinitions select: [ :e | (e isKindOf: MCMethodDefinition) and: [ classAndTraitNames includes: e className ] ]. extensionMethodDefinitions := orderedDefinitions select: [ :e | (e isKindOf: MCMethodDefinition) and: [ (classAndTraitNames includes: e className) not ] ]. organization := orderedDefinitions select: [ :e | e isKindOf: MCOrganizationDefinition ]. extensionClasses := (extensionMethodDefinitions collect: [ :e | e className ]) asSet. job progress: 0.3. self outputFileDelete: aPackagePath. self writePackageGitPropertiesIn: aPackagePath. self writeOrganization: organization in: aPackagePath. job progress: 0.4. self writeClassDefinitions: classDefinitions in: aPackagePath. self writeTraitDefinitions: traitDefinitions in: aPackagePath. job progress: 0.5. self writeMethodDefinitions: methodDefinitions in: aPackagePath. job progress: 0.6. self writeExtensionClassDefinitions: extensionClasses in: aPackagePath. self writeExtensionMethodDefinitions: extensionMethodDefinitions in: aPackagePath. job progress: 0.7. self writeInitializers: methodDefinitions in: aPackagePath ] in MCGitFileTreeWriter>>writeSnapshot:in: BlockClosure>>cull: [ ^ block cull: self ] in [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run [ activeProcess psValueAt: index put: anObject. aBlock value ] in CurrentJob(DynamicVariable)>>value:during: BlockClosure>>ensure: CurrentJob(DynamicVariable)>>value:during: CurrentJob class(DynamicVariable class)>>value:during: [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run BlockClosure>>ensure: Job>>run MCGitFileTreeWriter>>writeSnapshot:in: [ :each | | packageDir | packageDir := subDirectoryString , each package name , '.package'. aWriter writeSnapshot: each snapshot in: packageDir. aWriter outputFileModify: packageDir , '/monticello.meta/package' with: '(name ''' , each package name , ''')'. aWriter writeDependencies: each dependencies in: packageDir ] in MCGitFileTreeWriter class>>fileOutAll:on: OrderedCollection>>do: MCGitFileTreeWriter class>>fileOutAll:on: MCFileTreeGitRepository>>fiStoreVersions: MCFileTreeGitRepository>>fiStoreVersion: MCFileTreeGitRepository>>basicStoreVersion: MCFileTreeGitRepository(MCRepository)>>storeVersion: MCFileTreeGitRepository(MCFileBasedRepository)>>storeVersion: MCWorkingCopyBrowser>>storeVersion:in: [ self storeVersion: newVersion in: aRepository; storeDependencies: newVersion in: aRepository ] in [ [ self storeVersion: newVersion in: aRepository; storeDependencies: newVersion in: aRepository ] ensure: [ (MCVersionInspector new version: newVersion) show ] ] in MCWorkingCopyBrowser>>basicSaveVersionIn: BlockClosure>>ensure: [ [ self storeVersion: newVersion in: aRepository; storeDependencies: newVersion in: aRepository ] ensure: [ (MCVersionInspector new version: newVersion) show ] ] in MCWorkingCopyBrowser>>basicSaveVersionIn: BlockClosure>>ensure: CursorWithMask(Cursor)>>showWhile: MCWorkingCopyBrowser>>basicSaveVersionIn: [ self basicSaveVersionIn: self repository ] in MCWorkingCopyBrowser>> saveVersion [ self value. Processor terminateActive ] in BlockClosure>>newProcess Thank you in advance.
[Pharo-users] Exception in Gofer with Pharo 7
Hi all. I'm trying to load some packages from SmalltalkHub and I get an exception because ByteString did not understand #asUrl. Maybe it is related with String>>asUrl deprecated? https://pharo.fogbugz.com/f/cases/2896/Deprecate-String-asUrl Thank you!
Re: [Pharo-users] Another post about our experience with Pharo at OSOCO
Not at the moment, but we have plans to release both the code generator and the EDA framework shortly, so I will back to you when we publish them. Rafa. 2018-01-02 14:26 GMT+00:00 Hernán Morales Durand : > Hi Rafael, > > Did you published your code generator somewhere? > I would like to check since I am writing a code generator for Pharo > http://www.smalltalkhub.com/#!/~hernan/CodeGenerator > Cheers, > > Hernán > > 2018-01-02 8:48 GMT-03:00 Rafael Luque : > > Hi all, > > > > We've published the second part of our experiences introducing Pharo at > > OSOCO. > > > > The post is in spanish: > > https://osoco.es/thoughts/2017/12/pharo-en-osoco-parte-2/ > > > > However, I've checked that Google Translate does a good job with it: > > https://translate.google.com/translate?sl=es&tl=en&js=y&; > prev=_t&hl=es&ie=UTF-8&u=https%3A%2F%2Fosoco.es%2Fthoughts%2F2017%2F12% > 2Fpharo-en-osoco-parte-2%2F&edit-text= > > > > Cheers, > > Rafael Luque > > > > > > > > > >
[Pharo-users] Another post about our experience with Pharo at OSOCO
Hi all, We've published the second part of our experiences introducing Pharo at OSOCO. The post is in spanish: https://osoco.es/thoughts/2017/12/pharo-en-osoco-parte-2/ However, I've checked that Google Translate does a good job with it: https://translate.google.com/translate?sl=es&tl=en&js=y&prev=_t&hl=es&ie=UTF-8&u=https%3A%2F%2Fosoco.es%2Fthoughts%2F2017%2F12%2Fpharo-en-osoco-parte-2%2F&edit-text= Cheers, Rafael Luque
[Pharo-users] Pharo intro talk in spanish
Hi all, It has been published the video of the Pharo introduction talk (titled "Pharo Smalltalk: Un Entorno de Programación Subversiva") we organized from Osoco for the Madrid Software Crafters meetup. Both, video and slides are in spanish: https://www.youtube.com/watch?v=SV_KU4u5mTA Cheers, Rafael Luque
Re: [Pharo-users] CodeCity like visualization in Linux
Great! Thank you Doru. 2017-10-25 10:36 GMT+02:00 Tudor Girba : > Hi, > > Indeed, the image was for Mac, but unfortunately I do not know if it works > on Linux. > > But, for your talk, there are other cool things that you can show in the > latest Moose. If you are interested, please contact me directly. > > Cheers, > Doru > > > > On Oct 25, 2017, at 9:39 AM, Rafael Luque > wrote: > > > > Thank you for your help Tudor. > > > > I'm trying with the CodeCity image I've downloaded from your post ( > http://www.humane-assessment.com/blog/communicating-changes-in-pharo-3-0) > and I get the error "MessageNotUnderstood: receiver of "platformId" is nil" > in the NBMacGLContextDriver class>>supportsCurrentPlatform method. > > > > By this reason I thought it only works on Mac or maybe I must previously > configure something to get the NativeBoost working on Linux. > > > > Thank you. > > > > > > > > > > > > 2017-10-25 9:02 GMT+02:00 Tudor Girba : > > CodeCity only works in Pharo 3 (or maybe also 4). > > > > Doru > > > > > > > On Oct 25, 2017, at 1:38 AM, Rafael Luque < > rafael.luque.le...@gmail.com> wrote: > > > > > > Hi all, > > > > > > I'm working on an introductory talk about Pharo for a software > craftsmanship local meetup. > > > > > > The presentation will be mainly driven by demos and I'd like to show a > CodeCity-like visualization. I've been able to load it in Pharo 5, but it > get an error when select the "City" tag in GTInspector. It seems that > NBOpenGL does not work in Linux. > > > > > > Do you know any way to make it work in Linux? > > > > > > Thank you. > > > > > > > -- > > www.tudorgirba.com > > www.feenk.com > > > > "Presenting is storytelling." > > > > > > > > -- > www.tudorgirba.com > www.feenk.com > > "Being happy is a matter of choice." > > > > > >
Re: [Pharo-users] CodeCity like visualization in Linux
Thank you for your help Tudor. I'm trying with the CodeCity image I've downloaded from your post ( http://www.humane-assessment.com/blog/communicating-changes-in-pharo-3-0) and I get the error "MessageNotUnderstood: receiver of "platformId" is nil" in the NBMacGLContextDriver class>>supportsCurrentPlatform method. By this reason I thought it only works on Mac or maybe I must previously configure something to get the NativeBoost working on Linux. Thank you. 2017-10-25 9:02 GMT+02:00 Tudor Girba : > CodeCity only works in Pharo 3 (or maybe also 4). > > Doru > > > > On Oct 25, 2017, at 1:38 AM, Rafael Luque > wrote: > > > > Hi all, > > > > I'm working on an introductory talk about Pharo for a software > craftsmanship local meetup. > > > > The presentation will be mainly driven by demos and I'd like to show a > CodeCity-like visualization. I've been able to load it in Pharo 5, but it > get an error when select the "City" tag in GTInspector. It seems that > NBOpenGL does not work in Linux. > > > > Do you know any way to make it work in Linux? > > > > Thank you. > > > > -- > www.tudorgirba.com > www.feenk.com > > "Presenting is storytelling." > > >
[Pharo-users] CodeCity like visualization in Linux
Hi all, I'm working on an introductory talk about Pharo for a software craftsmanship local meetup. The presentation will be mainly driven by demos and I'd like to show a CodeCity-like visualization. I've been able to load it in Pharo 5, but it get an error when select the "City" tag in GTInspector. It seems that NBOpenGL does not work in Linux. Do you know any way to make it work in Linux? Thank you.
Re: [Pharo-users] ViDI error: variable named "aModuleName" in NativeBoost>>#loadModule:
Hi Yuriy, I've tried with the latest changes but the problem described in my previous email still persists: "Error: Could not find accessor for variable named "aModuleName" in NativeBoost>>#loadModule:" All your recommendations will be very welcomed. Thank you. Rafa 2015-04-24 18:13 GMT+02:00 Rafael Luque : > Hi Uko > > I've just tried with your last changes, but I get the same error: "Error: > Could not find accessor for variable named "aModuleName" in > NativeBoost>>#loadModule:" > > This is the stack trace for your information: > > === > > NBFFICallout>>loaderForArgNamed: > NBFFICallout>>loaderForArgNamed:indirectIndex: > NBFFICallout>>argName:indirectIndex:type:ptrArity: > NBFnSpecParser>>parseArgument > NBFnSpecParser>>parseArguments > NBFnSpecParser>>parseAnonFunction: > NBFFICallout>>anonSpec: > [ :t3 | > t3 > useEmitCall; > callType: conv; > sender: context; > parseOptions: options; > anonSpec: t1; > generate: t2 ] in NBFFICalloutAPI>>function:emit: > [ t6 := t1 value: (self newForMethod: t3) ] in NBFFICallout > class(NBNativeCodeGen class)>>generateCode:andRetry: > BlockClosure>>on:do: > NBRecursionDetect class>>in:during: > NBFFICallout class(NBNativeCodeGen class)>>generateCode:andRetry: > NBFFICallout class(NBNativeCodeGen class)>>handleFailureIn:nativeCode: > NBFFICalloutAPI>>function:emit: > NativeBoostMac32(NativeBoost)>>loadModule: > CairoLibraryLoader class>>loadCairoLibrary > CairoLibraryLoader class>>getLibraryHandle > AthensCairoSurface class>>nbLibraryNameOrHandle > AthensCairoSurface class(Object)>>nbCall: > AthensCairoSurface class>>primImage:width:height: > AthensCairoSurface class>>extent:format: > AthensCairoSurface class>>extent: > TRCanvas>>initialize > TRCanvas class(Behavior)>>new > RTView>>initialize > RTView class(Behavior)>>new > R3View>>initialize > R3View class(Behavior)>>new > Roassal3DModel>>initialize > Roassal3DModel class(Behavior)>>new > Roassal3DModel class(ComposableModel class)>>owner: > CityBrowser(ComposableModel)>>instantiate: > CityBrowser>>initializeWidgets > CityBrowser(ComposableModel)>>initialize > CityBrowser class(Behavior)>>new > CityBrowser class(ComposableModel class)>>owner: > VidiBrowser(ComposableModel)>>instantiate: > VidiBrowser>>initializeWidgets > VidiBrowser(ComposableModel)>>initialize > VidiBrowser>>initialize > VidiBrowser class(Behavior)>>new > ReModel>>vidi > VidiSession>>openVidi > [ (VidiSessionManager default newSessionOnPackages: packages) openVidi ] > in VidiSessionPackagesSelect>>nextAction > [ > self value. > Processor terminateActive ] in BlockClosure>>newProcess > > === > > > Thank you. > > 2015-04-24 14:25 GMT+02:00 Yuriy Tymchuk : > >> Hi Rafael, >> >> now ViDI should work. I haven’t been working on it for a while, but feel >> free to report more issues, as I’ll get back to it soon. >> >> Uko >> >> >> >> On 24 Apr 2015, at 09:57, Rafael Luque >> wrote: >> >> Thank you! I'm looking forward to hearing from you about the new version. >> >> 2015-04-24 9:52 GMT+02:00 Yuriy Tymchuk : >> >>> Ok, I found the problem. Some Spec api changed. I stable version will >>> work at least on Mac quite soon. :) >>> >>> Uko >>> >>> >>> >>> On 23 Apr 2015, at 17:46, Rafael Luque >>> wrote: >>> >>> I'd like to use it in a Linux box, but as you told me Linux is not yet >>> supported, I'm using a Mac OS X Yosemite (version 10.10.2). >>> >>> Thanks >>> >>> 2015-04-23 17:37 GMT+02:00 Yuriy Tymchuk : >>> >>>> Hi Rafael, >>>> >>>> I will take a look. Which operating system are you using? >>>> >>>> Uko >>>> >>>> On 23 Apr 2015, at 17:30, Rafael Luque >>>> wrote: >>>> >>>> Hi, >>>> >>>> I installed ViDI on Pharo 4 following the project instructions >>>> detailed in its GitHub page: >>>> >>>> Gofer new >>>> smalltalkhubUser: 'YuriyTymchuk' >>>> project: 'Configuration'; >>>> configurationOf: 'Vidi'; >>>> load. >>>> #ConfigurationOfVidi asClass loadStable >>>> >>>> When I launch a review session over any package I always get the >>>> following error: >>>> >>>> "Could not find accesor for variable named "aModuleName" in >>>> NativeBoost>>#loadModule:" >>>> >>>> I'm very interested in this kind of quality assurance tools, so any >>>> help will be very welcomed. >>>> >>>> Thank you. >>>> >>>> >>>> >>> >>> >> >> >
Re: [Pharo-users] ViDI error: variable named "aModuleName" in NativeBoost>>#loadModule:
Hi Uko I've just tried with your last changes, but I get the same error: "Error: Could not find accessor for variable named "aModuleName" in NativeBoost>>#loadModule:" This is the stack trace for your information: === NBFFICallout>>loaderForArgNamed: NBFFICallout>>loaderForArgNamed:indirectIndex: NBFFICallout>>argName:indirectIndex:type:ptrArity: NBFnSpecParser>>parseArgument NBFnSpecParser>>parseArguments NBFnSpecParser>>parseAnonFunction: NBFFICallout>>anonSpec: [ :t3 | t3 useEmitCall; callType: conv; sender: context; parseOptions: options; anonSpec: t1; generate: t2 ] in NBFFICalloutAPI>>function:emit: [ t6 := t1 value: (self newForMethod: t3) ] in NBFFICallout class(NBNativeCodeGen class)>>generateCode:andRetry: BlockClosure>>on:do: NBRecursionDetect class>>in:during: NBFFICallout class(NBNativeCodeGen class)>>generateCode:andRetry: NBFFICallout class(NBNativeCodeGen class)>>handleFailureIn:nativeCode: NBFFICalloutAPI>>function:emit: NativeBoostMac32(NativeBoost)>>loadModule: CairoLibraryLoader class>>loadCairoLibrary CairoLibraryLoader class>>getLibraryHandle AthensCairoSurface class>>nbLibraryNameOrHandle AthensCairoSurface class(Object)>>nbCall: AthensCairoSurface class>>primImage:width:height: AthensCairoSurface class>>extent:format: AthensCairoSurface class>>extent: TRCanvas>>initialize TRCanvas class(Behavior)>>new RTView>>initialize RTView class(Behavior)>>new R3View>>initialize R3View class(Behavior)>>new Roassal3DModel>>initialize Roassal3DModel class(Behavior)>>new Roassal3DModel class(ComposableModel class)>>owner: CityBrowser(ComposableModel)>>instantiate: CityBrowser>>initializeWidgets CityBrowser(ComposableModel)>>initialize CityBrowser class(Behavior)>>new CityBrowser class(ComposableModel class)>>owner: VidiBrowser(ComposableModel)>>instantiate: VidiBrowser>>initializeWidgets VidiBrowser(ComposableModel)>>initialize VidiBrowser>>initialize VidiBrowser class(Behavior)>>new ReModel>>vidi VidiSession>>openVidi [ (VidiSessionManager default newSessionOnPackages: packages) openVidi ] in VidiSessionPackagesSelect>>nextAction [ self value. Processor terminateActive ] in BlockClosure>>newProcess === Thank you. 2015-04-24 14:25 GMT+02:00 Yuriy Tymchuk : > Hi Rafael, > > now ViDI should work. I haven't been working on it for a while, but feel > free to report more issues, as I'll get back to it soon. > > Uko > > > > On 24 Apr 2015, at 09:57, Rafael Luque > wrote: > > Thank you! I'm looking forward to hearing from you about the new version. > > 2015-04-24 9:52 GMT+02:00 Yuriy Tymchuk : > >> Ok, I found the problem. Some Spec api changed. I stable version will >> work at least on Mac quite soon. :) >> >> Uko >> >> >> >> On 23 Apr 2015, at 17:46, Rafael Luque >> wrote: >> >> I'd like to use it in a Linux box, but as you told me Linux is not yet >> supported, I'm using a Mac OS X Yosemite (version 10.10.2). >> >> Thanks >> >> 2015-04-23 17:37 GMT+02:00 Yuriy Tymchuk : >> >>> Hi Rafael, >>> >>> I will take a look. Which operating system are you using? >>> >>> Uko >>> >>> On 23 Apr 2015, at 17:30, Rafael Luque >>> wrote: >>> >>> Hi, >>> >>> I installed ViDI on Pharo 4 following the project instructions detailed >>> in its GitHub page: >>> >>> Gofer new >>> smalltalkhubUser: 'YuriyTymchuk' >>> project: 'Configuration'; >>> configurationOf: 'Vidi'; >>> load. >>> #ConfigurationOfVidi asClass loadStable >>> >>> When I launch a review session over any package I always get the >>> following error: >>> >>> "Could not find accesor for variable named "aModuleName" in >>> NativeBoost>>#loadModule:" >>> >>> I'm very interested in this kind of quality assurance tools, so any help >>> will be very welcomed. >>> >>> Thank you. >>> >>> >>> >> >> > >
Re: [Pharo-users] ViDI error: variable named "aModuleName" in NativeBoost>>#loadModule:
Thank you! I'm looking forward to hearing from you about the new version. 2015-04-24 9:52 GMT+02:00 Yuriy Tymchuk : > Ok, I found the problem. Some Spec api changed. I stable version will work > at least on Mac quite soon. :) > > Uko > > > > On 23 Apr 2015, at 17:46, Rafael Luque > wrote: > > I'd like to use it in a Linux box, but as you told me Linux is not yet > supported, I'm using a Mac OS X Yosemite (version 10.10.2). > > Thanks > > 2015-04-23 17:37 GMT+02:00 Yuriy Tymchuk : > >> Hi Rafael, >> >> I will take a look. Which operating system are you using? >> >> Uko >> >> On 23 Apr 2015, at 17:30, Rafael Luque >> wrote: >> >> Hi, >> >> I installed ViDI on Pharo 4 following the project instructions detailed >> in its GitHub page: >> >> Gofer new >> smalltalkhubUser: 'YuriyTymchuk' >> project: 'Configuration'; >> configurationOf: 'Vidi'; >> load. >> #ConfigurationOfVidi asClass loadStable >> >> When I launch a review session over any package I always get the >> following error: >> >> "Could not find accesor for variable named "aModuleName" in >> NativeBoost>>#loadModule:" >> >> I'm very interested in this kind of quality assurance tools, so any help >> will be very welcomed. >> >> Thank you. >> >> >> > >
Re: [Pharo-users] ViDI error: variable named "aModuleName" in NativeBoost>>#loadModule:
I'd like to use it in a Linux box, but as you told me Linux is not yet supported, I'm using a Mac OS X Yosemite (version 10.10.2). Thanks 2015-04-23 17:37 GMT+02:00 Yuriy Tymchuk : > Hi Rafael, > > I will take a look. Which operating system are you using? > > Uko > > On 23 Apr 2015, at 17:30, Rafael Luque > wrote: > > Hi, > > I installed ViDI on Pharo 4 following the project instructions detailed > in its GitHub page: > > Gofer new > smalltalkhubUser: 'YuriyTymchuk' > project: 'Configuration'; > configurationOf: 'Vidi'; > load. > #ConfigurationOfVidi asClass loadStable > > When I launch a review session over any package I always get the following > error: > > "Could not find accesor for variable named "aModuleName" in > NativeBoost>>#loadModule:" > > I'm very interested in this kind of quality assurance tools, so any help > will be very welcomed. > > Thank you. > > >
[Pharo-users] ViDI error: variable named "aModuleName" in NativeBoost>>#loadModule:
Hi, I installed ViDI on Pharo 4 following the project instructions detailed in its GitHub page: Gofer new smalltalkhubUser: 'YuriyTymchuk' project: 'Configuration'; configurationOf: 'Vidi'; load. #ConfigurationOfVidi asClass loadStable When I launch a review session over any package I always get the following error: "Could not find accesor for variable named "aModuleName" in NativeBoost>>#loadModule:" I'm very interested in this kind of quality assurance tools, so any help will be very welcomed. Thank you.
Re: [Pharo-users] The Smalltalk Report issue
Stef thank you for the valuable resources. However, as Marcus said I'm looking an issue from 1997 and the archive only contains issues until 1996 :-( 2015-01-23 0:10 GMT+01:00 Marcus Denker : > We have them in the ESUG archive: > http://esug.org/data/HistoricalDocuments/TheSmalltalkReport/ > > but this is only till 1996. > > > On 22 Jan 2015, at 23:02, stepharo wrote: > > currently uploading ST issues at >http://sdmeta.gforge.inria.fr/TheSmalltalkReport/ > grab them when they will be available :) > We should put them on torrents > > Stef > > Le 22/1/15 00:52, Rafael Luque a écrit : > > Hi Pharoers, > > I'm looking for The Smalltalk Report volume 6 issue 4 (1997) because I'd > like to read the first article mentioning refactoring by Kent Beck: "Make > it run, Make it right: Desing through Refactoring" published in this number. > > I've found the following archive from 1991 to 1996: > http://www.macqueen.us/stIndex.html > > Anyone know where can I found this old issue or at least the article? > > Thank you. > > > > >
[Pharo-users] The Smalltalk Report issue
Hi Pharoers, I'm looking for The Smalltalk Report volume 6 issue 4 (1997) because I'd like to read the first article mentioning refactoring by Kent Beck: "Make it run, Make it right: Desing through Refactoring" published in this number. I've found the following archive from 1991 to 1996: http://www.macqueen.us/stIndex.html Anyone know where can I found this old issue or at least the article? Thank you.
Re: [Pharo-users] Traveling from Pharo Days to FOSDEM
Thank you guys! Phil thank you for your offer. We talk about it in Pharo Days. See you soon. 2014-12-31 17:33 GMT+01:00 François Stephany : > With the high speed train "Lille Europe" to "Brussels South" takes around > 40 minutes. > You can check fares and book tickets on https://www.b-europe.com > > @Phil do you go back to Brussels from Lille on Friday night? > > On Wed, Dec 31, 2014 at 1:37 PM, Rafael Luque < > rafael.luque.le...@gmail.com> wrote: > >> Hi Pharoers, >> >> I will attend Pharo Days with a friend and after the conference we'd like >> to attend FOSDEM. Which the best way to travel to Brussels from Lille? >> >> Thank you and see you in Pharo Days. >> > >
[Pharo-users] Traveling from Pharo Days to FOSDEM
Hi Pharoers, I will attend Pharo Days with a friend and after the conference we'd like to attend FOSDEM. Which the best way to travel to Brussels from Lille? Thank you and see you in Pharo Days.
[Pharo-users] How to open the Settings style dialog?
Hi all, I was reading about the Settings framework (Deep Into Pharo, chapter 5) and I don't find the way to popup the style dialog shown in Figure 5.11 in page 71 ( https://books.google.es/books?id=Qki8BQAAQBAJ&lpg=PA68&dq=pharo%20the%20style%20load%20dialog%20with%20your%20own%20style&pg=PA71#v=onepage&q&f=false ). I'm using a Pharo 4 image. Thank you
Re: [Pharo-users] ViDI Error: glx not supported
Thank you Yuriy. Which are the supported platforms? 2014-11-27 10:27 GMT+01:00 Yuriy Tymchuk : > > On 27 Nov 2014, at 10:23, kilon alios wrote: > > What is Vidi ? cant find it in smalltalkhub > > > Hi Kilon, > > ViDI is a tool I'm developing to review the code. I host it on github: > https://github.com/Uko/Vidi/ > > Uko > > > On Thu, Nov 27, 2014 at 10:57 AM, Yuriy Tymchuk > wrote: > >> Hi Rafael, >> >> thank you for your interest in ViDI. I have not used Pharo on Linux, but >> I hope that soon we will find a solution for this :) >> >> Uko >> >> > On 27 Nov 2014, at 01:41, Rafael Luque >> wrote: >> > >> > Hi, >> > >> > I installed ViDI on Pharo 4 following the project instructions detailed >> in its GitHub page: >> > >> > Gofer new >> > smalltalkhubUser: 'YuriyTymchuk' >> > project: 'Configuration'; >> > configurationOf: 'Vidi'; >> > load. >> > #ConfigurationOfVidi asClass loadStable >> > >> > When I launch the ViDI option I get the error: "Error: glx not >> supported". >> > >> > I'm using Gentoo Linux with NVidia Optimus graphic card, so I use >> bumblebee to switch to NVidia and launched pharo using optirun command like >> this: >> > >> > $ optirun pharo-ui my-image >> > >> > I get glxspheres64 running successfully using the same procedure. >> > >> > How can I activate GLX support inside the Pharo image? I noted the >> option System > Settings > FFI > "Path to OpenGL library (on linux)" >> however I don't see (or I don't know) how to set this value. >> > >> > Thank you. >> >> >> > >
[Pharo-users] ViDI Error: glx not supported
Hi, I installed ViDI on Pharo 4 following the project instructions detailed in its GitHub page: Gofer new smalltalkhubUser: 'YuriyTymchuk' project: 'Configuration'; configurationOf: 'Vidi'; load. #ConfigurationOfVidi asClass loadStable When I launch the ViDI option I get the error: "Error: glx not supported". I'm using Gentoo Linux with NVidia Optimus graphic card, so I use bumblebee to switch to NVidia and launched pharo using optirun command like this: $ optirun pharo-ui my-image I get glxspheres64 running successfully using the same procedure. How can I activate GLX support inside the Pharo image? I noted the option System > Settings > FFI > "Path to OpenGL library (on linux)" however I don't see (or I don't know) how to set this value. Thank you.
Re: [Pharo-users] PharoS VM
Thank you! A brief explanation in the zeroconf page would be interesting for newbies like me, because I don't remember any mention to these types of VMs in the Pharo books available. Rafa 2014-11-19 13:26 GMT+01:00 Esteban Lorenzano : > > On 19 Nov 2014, at 13:24, Rafael Luque > wrote: > > Another noob question. > > What's the difference between these two options I see in get.pharo.org? > > get.pharo.org/vmLatest This script downloads the latest Pharo VM. > > > latest Cog (JIT) > > get.pharo.org/vmSLatest This script downloads the latest PharoS VM. > > > latest Stack (No JIT) > > > cheers, > Esteban > > > Thank you. > > Rafael Luque > > > > > > >
[Pharo-users] PharoS VM
Another noob question. What's the difference between these two options I see in get.pharo.org? get.pharo.org/vmLatest This script downloads the latest Pharo VM. get.pharo.org/vmSLatest This script downloads the latest PharoS VM. Thank you. Rafael Luque
Re: [Pharo-users] Metacello configuration based on subdirectory of Git repo
Hi Dale, Your second option worked for me. This is the validation error I got for my previous configuration using the MetacelloToolBox: "Error: Missing required field (className:) for project reference 'Stamp' in version '0.1-baseline' { incompleteProjectSpec } [ #validateBaselineVersionSpec: ]" By the other hand, using a filetree url to my local working copy algo resolved the Stamp project dependency. Thank you very much! Rafa Rafael, It looks like in your case that you've got a configuration problem ... and here's the proper fix (but depending upon which vesion of Metacello you're using may or may not work): baseline01: spec spec for: #common do: [ spec blessing: #baseline. spec repository: 'filetree://full-filesystempath-to-your-pharo-subdirectory '. spec configuration: 'Stamp' with: [ spec repository: 'http://smalltalkhub.com/mc/SvenVanCaekenberghe/Stamp/main'; loads: 'Stamp'; version: #stable ]. spec package: 'MyStompMessaging' with: [ spec requires: #('Stamp') ] ] if you get an error then the following should work: baseline01: spec spec for: #common do: [ spec blessing: #baseline. spec repository: 'filetree://full-filesystempath-to-your-pharo-subdirectory '. spec project: 'Stamp-Core' with: [ spec className: 'ConfigurationOfStamp'; repository: 'http://smalltalkhub.com/mc/SvenVanCaekenberghe/Stamp/main'; loads: 'Stamp'; version: #stable ]. spec package: 'MyStompMessaging' with: [ spec requires: #('Stamp-Core') ] ] I've also submitted a metacello bug[1] to cover this issue, although I may have already fixed the bug in a later version of Metacello, I'm going to double check wihen I get a chance... Finally, I would be interested to know what errors or warnings you might get from validating your configuration (inspect the result of MetacelloToolBox class>>validateConfiguration: with your configuration class as an argument). HTH, Dale [1] https://github.com/dalehenrich/metacello-work/issues/313 On Thu, Nov 13, 2014 at 12:28 PM, Rafael Luque wrote: > Thank you for the responses. > > I'll try both of them, but in the meantime I found another problem because > of my lack of experience. > > I'm trying to define in the baseline a dependency with another project, in > particular the Stamp project by Sven Van Caekenberghe [1] in Smalltalkhub > in the following way: > > baseline01: spec > > spec > for: #common > do: [ > spec blessing: #baseline. > spec repository: 'filetree://full-filesystempath-to-your-pharo- > subdirectory'. > spec > project: 'Stamp-Core' > with: [ > spec > repository: 'http://smalltalkhub.com/mc/SvenVanCaekenberghe/Stamp/main'; > loads: 'Stamp'; > version: #stable ]. > spec > package: 'MyStompMessaging' with: [ spec requires: #('Stamp-Core') ] ] > > > When I evaluate the following in a Workspace: > > (ConfigurationOfMyPackage project version: '0.1') load. > > I get the followin error: > > MessageNotUnderstood: receiver of "ensureLoadUsing:" is nil > > In the debugger I see that MetacelloMCProjectSpec>>projectPackage is nil. > > In an old thread I found that Dale Henrichs suggests to try this: > > MetacelloProjectRegistration > resetRegistry; > primeRegistryFromImage > > But in my case It does not solve the problem. > > > Thank you in advance. > > > [1] http://smalltalkhub.com/#!/~SvenVanCaekenberghe/Stamp/packages/Stamp > [2] > http://forum.world.st/Sample-metacello-configuration-referencing-a-github-project-td4671054.html > > 2014-11-13 19:07 GMT+01:00 Thierry Goubier : > >> Le 13/11/2014 18:21, Rafael Luque a écrit : >> >>> Hi all, >>> >>> I'm starting with Pharo and playing with the ways to integrate it with >>> Git. >>> >>> I've read the "Git and Pharo" chapter on "Enterprise Pharo" book by >>> Thierry Goubier and loaded the GitFileTree package. >>> >>> I'm working on a project with several microservices, one of them will be >>> based on Pharo and the other ones in other technologies. The project >>> repository is based in our own Git server and each microservice maps >>> with one subdirectory in the repo. >>> >>> My question is if it is possible to define a Metacello configuration to >>> load my packages from an specific subdirectory of a Git repository. I >>> have tried with the following baseline method, but it fails because does >>> not understand repoPath: >&g
Re: [Pharo-users] Metacello configuration based on subdirectory of Git repo
Hi Dale, Your second option worked for me. This is the validation error I got for my previous configuration using the MetacelloToolBox: "Error: Missing required field (className:) for project reference 'Stamp' in version '0.1-baseline' { incompleteProjectSpec } [ #validateBaselineVersionSpec: ]" By the other hand, using a filetree URL to my local working copy algo resolved the Stamp project dependency. Thank you very much! Rafa 2014-11-13 21:57 GMT+01:00 Dale Henrichs : > Rafael, > > It looks like in your case that you've got a configuration problem ... and > here's the proper fix (but depending upon which vesion of Metacello you're > using may or may not work): > > baseline01: spec > > spec > for: #common > do: [ > spec blessing: #baseline. > spec repository: 'filetree://full-filesystempath-to-your-pharo- > subdirectory'. > spec > configuration: 'Stamp' > with: [ > spec > repository: 'http://smalltalkhub.com/mc/SvenVanCaekenberghe/Stamp/main'; > loads: 'Stamp'; > version: #stable ]. > spec > package: 'MyStompMessaging' with: [ spec requires: #('Stamp') ] ] > > if you get an error then the following should work: > > baseline01: spec > > spec > for: #common > do: [ > spec blessing: #baseline. > spec repository: 'filetree://full-filesystempath-to-your-pharo- > subdirectory'. > spec > project: 'Stamp-Core' > with: [ > spec > className: > 'ConfigurationOfStamp'; > repository: 'http://smalltalkhub.com/mc/SvenVanCaekenberghe/Stamp/main'; > loads: 'Stamp'; > version: #stable ]. > spec > package: 'MyStompMessaging' with: [ spec requires: #('Stamp-Core') ] ] > > I've also submitted a metacello bug[1] to cover this issue, although I may > have already fixed the bug in a later version of Metacello, I'm going to > double check wihen I get a chance... > > Finally, I would be interested to know what errors or warnings you might > get from validating your configuration (inspect the result of > MetacelloToolBox class>>validateConfiguration: with your configuration > class as an argument). > > HTH, > > Dale > > [1] https://github.com/dalehenrich/metacello-work/issues/313 > > > On Thu, Nov 13, 2014 at 12:28 PM, Rafael Luque < > rafael.luque.le...@gmail.com> wrote: > >> Thank you for the responses. >> >> I'll try both of them, but in the meantime I found another problem >> because of my lack of experience. >> >> I'm trying to define in the baseline a dependency with another project, >> in particular the Stamp project by Sven Van Caekenberghe [1] in >> Smalltalkhub in the following way: >> >> baseline01: spec >> >> spec >> for: #common >> do: [ >> spec blessing: #baseline. >> spec repository: 'filetree://full-filesystempath-to-your-pharo- >> subdirectory'. >> spec >> project: 'Stamp-Core' >> with: [ >> spec >> repository: 'http://smalltalkhub.com/mc/SvenVanCaekenberghe/Stamp/main'; >> loads: 'Stamp'; >> version: #stable ]. >> spec >> package: 'MyStompMessaging' with: [ spec requires: #('Stamp-Core') ] ] >> >> >> When I evaluate the following in a Workspace: >> >> (ConfigurationOfMyPackage project version: '0.1') load. >> >> I get the followin error: >> >> MessageNotUnderstood: receiver of "ensureLoadUsing:" is nil >> >> In the debugger I see that MetacelloMCProjectSpec>>projectPackage is nil. >> >> In an old thread I found that Dale Henrichs suggests to try this: >> >> MetacelloProjectRegistration >> resetRegistry; >> primeRegistryFromImage >> >> But in my case It does not solve the problem. >> >> >> Thank you in advance. >> >> >> [1] http://smalltalkhub.com/#!/~SvenVanCaekenberghe/Stamp/packages/Stamp >> [2] >> http://forum.world.st/Sample-metacello-configuration-referencing-a-github-project-td4671054.html >> >> 2014-11-13 19:07 GMT+01:00 Thierry Goubier : >> >>> Le 13/11/2014 18:21, Rafael Luque a écrit : >>> >>>> Hi all, >>>> >>>> I'm starting with Pharo and playing with the ways to integrate it with >>>> Git. >>>> >>>> I've read the "Git and Pharo" chapter on "Enterprise Pharo" book by >>>> Thierry Goubier
Re: [Pharo-users] Metacello configuration based on subdirectory of Git repo
Thank you for the responses. I'll try both of them, but in the meantime I found another problem because of my lack of experience. I'm trying to define in the baseline a dependency with another project, in particular the Stamp project by Sven Van Caekenberghe [1] in Smalltalkhub in the following way: baseline01: spec spec for: #common do: [ spec blessing: #baseline. spec repository: 'filetree://full-filesystempath-to-your-pharo-subdirectory '. spec project: 'Stamp-Core' with: [ spec repository: 'http://smalltalkhub.com/mc/SvenVanCaekenberghe/Stamp/main'; loads: 'Stamp'; version: #stable ]. spec package: 'MyStompMessaging' with: [ spec requires: #('Stamp-Core') ] ] When I evaluate the following in a Workspace: (ConfigurationOfMyPackage project version: '0.1') load. I get the followin error: MessageNotUnderstood: receiver of "ensureLoadUsing:" is nil In the debugger I see that MetacelloMCProjectSpec>>projectPackage is nil. In an old thread I found that Dale Henrichs suggests to try this: MetacelloProjectRegistration resetRegistry; primeRegistryFromImage But in my case It does not solve the problem. Thank you in advance. [1] http://smalltalkhub.com/#!/~SvenVanCaekenberghe/Stamp/packages/Stamp [2] http://forum.world.st/Sample-metacello-configuration-referencing-a-github-project-td4671054.html 2014-11-13 19:07 GMT+01:00 Thierry Goubier : > Le 13/11/2014 18:21, Rafael Luque a écrit : > >> Hi all, >> >> I'm starting with Pharo and playing with the ways to integrate it with >> Git. >> >> I've read the "Git and Pharo" chapter on "Enterprise Pharo" book by >> Thierry Goubier and loaded the GitFileTree package. >> >> I'm working on a project with several microservices, one of them will be >> based on Pharo and the other ones in other technologies. The project >> repository is based in our own Git server and each microservice maps >> with one subdirectory in the repo. >> >> My question is if it is possible to define a Metacello configuration to >> load my packages from an specific subdirectory of a Git repository. I >> have tried with the following baseline method, but it fails because does >> not understand repoPath: >> > > Yes, it is possible to fix a specific subdirectory, with a gitfiletree: > url, via a dir=aRelativePath. > > baseline01: spec > > spec > for: #common > do: [ > spec blessing: #baseline. > spec repository: 'gitfiletree://my-git-server/my-project&dir=my-pharo- > subdirectory'. > spec >package: 'MyPackage'. > . . . ] > > You can have a look at the ConfigurationOfAltBrowser in the configuration > browser to see how it triggers downloading the GitFileTree support. > > Thierry > > > baseline01: spec >> >> spec >> for: #common >> do: [ >> spec blessing: #baseline. >> spec repository: 'git@my-git-server:my-project'. >> spec repoPath: 'my-pharo-subdirectory'. >> spec >> package: 'MyPackage'. >> . . . ] >> >> Thank you in advance. >> >> > >
[Pharo-users] Metacello configuration based on subdirectory of Git repo
Hi all, I'm starting with Pharo and playing with the ways to integrate it with Git. I've read the "Git and Pharo" chapter on "Enterprise Pharo" book by Thierry Goubier and loaded the GitFileTree package. I'm working on a project with several microservices, one of them will be based on Pharo and the other ones in other technologies. The project repository is based in our own Git server and each microservice maps with one subdirectory in the repo. My question is if it is possible to define a Metacello configuration to load my packages from an specific subdirectory of a Git repository. I have tried with the following baseline method, but it fails because does not understand repoPath: baseline01: spec spec for: #common do: [ spec blessing: #baseline. spec repository: 'git@my-git-server:my-project'. spec repoPath: 'my-pharo-subdirectory'. spec package: 'MyPackage'. . . . ] Thank you in advance.
Re: [Pharo-users] Pharo how to get carect symbol
My layout is "es" (spanish). I've tried with the Phil advice and It works. I have to hit twice the key and modifier (in my layout shift key) to get the caret. Thank you 2014-11-13 13:51 GMT+01:00 p...@highoctane.be : > Try to hit the key twice in a row, no modifier key. > Le 13 nov. 2014 12:45, "Rafael Luque" a > écrit : > > Hi all, >> >> I don't know how to get the caret (^) symbol inside Pharo in my Linux >> laptop. >> >> The usual combination of keys that work for me in other applications like >> browser, emacs or terminal does not work inside Pharo. >> >> This is the VM version output: >> >> M:NBCoInterpreter NativeBoost-CogPlugin-GuillermoPolito.19 uuid: >> acc98e51-2fba-4841-a965-2975997bba66 May 15 2014 >> NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid: >> acc98e51-2fba-4841-a965-2975997bba66 May 15 2014 >> https://github.com/pharo-project/pharo-vm.git Commit: >> ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200 >> By: Esteban Lorenzano Jenkins build #14826 >> >> I'm trying with the following images: >> >> * 4.0 #40360 >> * 3.0 #30860 >> >> Thank you. >> >
[Pharo-users] Pharo how to get carect symbol
Hi all, I don't know how to get the caret (^) symbol inside Pharo in my Linux laptop. The usual combination of keys that work for me in other applications like browser, emacs or terminal does not work inside Pharo. This is the VM version output: M:NBCoInterpreter NativeBoost-CogPlugin-GuillermoPolito.19 uuid: acc98e51-2fba-4841-a965-2975997bba66 May 15 2014 NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid: acc98e51-2fba-4841-a965-2975997bba66 May 15 2014 https://github.com/pharo-project/pharo-vm.git Commit: ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200 By: Esteban Lorenzano Jenkins build #14826 I'm trying with the following images: * 4.0 #40360 * 3.0 #30860 Thank you.
Re: [Pharo-users] Smalltalk based unikernels
Understood. I'll take a look to the sources then. Thank you! 2014-10-07 12:03 GMT+02:00 Marcus Denker : > > On 07 Oct 2014, at 12:01, Rafael Luque > wrote: > > Thank you Stef, > > Do you know any tutorial or documentation I can follow to get a PharoNOS? > > > Keep in mind that this was an experiment... (kind of a research prototype). > > I don't think that there is a Tutorial. > > Rafa > > 2014-10-07 9:17 GMT+02:00 stepharo : > >> >> Hello, >>> >>> I'm playing with the unikernels idea [1]. Specifically I'm using Mirage >>> OS [2] to probe a minimal HTTP server running on AWS directly over Xen, >>> without any OS between the application and the hypervisor. >>> >> >> Yes yes yes >> we would love to have a Pharo solution for that. >> >>> >>> Mirage OS is based on OCaml. Is there any Smalltalk solution to build >>> this kind of unikernels? The idea of Smalltalk all the way down (at least >>> to the virtual devices of the hypervisor) is very appealing to me. Indeed I >>> think this idea was proposed for the first time by Dan Ingalls: >>> >>> ''An operating system is a collection of things that don't fit into a >>> language. There shouldn't be one.'' >>> >>> I have found SqueakNOS [3], but I don't know if it is active or if it >>> works with Pharo. >>> >> >> It was working. >> >> >> >>> Thank you, >>> >>> Rafa >>> >>> [1] http://queue.acm.org/detail.cfm?id=2566628 >>> [2] http://www.openmirage.org/ >>> [3] http://squeaknos.blogspot.com.es/ >>> >> >> >> > >
Re: [Pharo-users] Smalltalk based unikernels
Thank you Stef, Do you know any tutorial or documentation I can follow to get a PharoNOS? Rafa 2014-10-07 9:17 GMT+02:00 stepharo : > > Hello, >> >> I'm playing with the unikernels idea [1]. Specifically I'm using Mirage >> OS [2] to probe a minimal HTTP server running on AWS directly over Xen, >> without any OS between the application and the hypervisor. >> > > Yes yes yes > we would love to have a Pharo solution for that. > >> >> Mirage OS is based on OCaml. Is there any Smalltalk solution to build >> this kind of unikernels? The idea of Smalltalk all the way down (at least >> to the virtual devices of the hypervisor) is very appealing to me. Indeed I >> think this idea was proposed for the first time by Dan Ingalls: >> >> ''An operating system is a collection of things that don't fit into a >> language. There shouldn't be one.'' >> >> I have found SqueakNOS [3], but I don't know if it is active or if it >> works with Pharo. >> > > It was working. > > > >> Thank you, >> >> Rafa >> >> [1] http://queue.acm.org/detail.cfm?id=2566628 >> [2] http://www.openmirage.org/ >> [3] http://squeaknos.blogspot.com.es/ >> > > >
[Pharo-users] Smalltalk based unikernels
Hello, I'm playing with the unikernels idea [1]. Specifically I'm using Mirage OS [2] to probe a minimal HTTP server running on AWS directly over Xen, without any OS between the application and the hypervisor. Mirage OS is based on OCaml. Is there any Smalltalk solution to build this kind of unikernels? The idea of Smalltalk all the way down (at least to the virtual devices of the hypervisor) is very appealing to me. Indeed I think this idea was proposed for the first time by Dan Ingalls: ''An operating system is a collection of things that don't fit into a language. There shouldn't be one.'' I have found SqueakNOS [3], but I don't know if it is active or if it works with Pharo. Thank you, Rafa [1] http://queue.acm.org/detail.cfm?id=2566628 [2] http://www.openmirage.org/ [3] http://squeaknos.blogspot.com.es/
[Pharo-users] Madrid SUG
Hi all, I've just started a meetup for the Madrid Smalltalk User Group [1]. When we reach a minimum critical mass I will schedule our first meetup. All suggestions, ideas or comments to manage the group or topics to discuss will be welcome. Thanks, [1] http://www.meetup.com/madridsug/
Re: [Pharo-users] FOSDEM Smalltalk Devroom
Consider it done Stephan. 2014/1/20 Stephan Eggermont > Hi Rafael, if you are going to be there the whole time, would you be so > kind > to help out with the video recordings? > > Stephan > >
Re: [Pharo-users] FOSDEM Smalltalk Devroom
Don't worry Stephan and thank you for the organization. The schedule is very interesting, so I think I will stay all the saturday in this devroom. Thank you 2014/1/19 Stephan Eggermont > Sorry for the delay. I was a bit more away from home than > expected. > > https://fosdem.org/2014/schedule/track/smalltalk/ > > Stephan > > >
[Pharo-users] FOSDEM Smalltalk Devroom
Hi all, When will be published the Smalltalk Devroom schedule? I don't see anything in the FOSDEM website. I'm thinking about to attend again this year and I'm really interested in the Smalltalk talks. Is planned any tutorial o workshop? Thanks, Rafael Luque