[Pharo-users] Inovation Technology Award Submission: Polyphemus
Hello, Although i will not be able to attend ESUG'22, a friend agreed to present one of our projects to the innovation award. **Polyphemus** is a VM related, but public aims at any kind of developers. Particularly, the video submission talks about how to look at an image and how to **recover** dead images. Feel free to contact me if you have any questions ! Enjoy (and vote for Polyphemus!). 5 minutes video, Innovation Technology Award submission: https://youtu.be/zf3cCtNW830 Repository: github.com/hogoww/Polyphemus/ Additionnal information on image recovery: https://github.com/hogoww/Polyphemus/blob/main/Documentation/ResurrectingDeadImages/ResurrectingDeadImages.pdf Cheers !
Re: [Pharo-users] Pharo Quality Rules for Beginners
Hello, First, good luck ! That seems quite interesting ! Few things i can think of: - message priority is often hard to understand, although I'm not sure how that could transform into a rule. - I didn't see this one that often, but since we loose arithmetic priority for message one, I'm pretty sure that could bother some. - miss use of the difference between 'SubclassResponsability' and 'self subclassResponsibility' (and other of this kind i guess, such as shouldNotImplement (I actually just found a very old one in my code :') ) Pierre On 15/01/2020 10:41, ESTEBAN VILLALOBOS DIAZ via Pharo-users wrote:
Re: [Pharo-users] Pharo on OpenSUSE (FFI / libgit2 errors)
Arkaitzmugica posted this on discord, which worked for him. Since the problems were similar, that may be relevant for you (or other people) 12:28 AM/]/arkaitzmugica/:/ I've made Pharo work on Fedora 31. First libgit2-devel must be installed. Then sudo ln -s /lib64/libcurl.so.4 /lib64/libcurl-gnutls.so.4 And the last step is following the instructions related with some security parameters: you must create a file, /etc/security/limits.d/pharo.conf cat pharo.conf * hard rtprio 2 * soft rtprio 2 Reboot, and pharo works fine. /[/12:32 AM/]/arkaitzmugica/:/ If working with 'toolbox' command line tool, like me, because I'm using Fedora 31 Silverblue, you should keep this in mind too when creating a container with a custom Dockerfile. /[/12:34 AM/]/arkaitzmugica/:/ I haven't tested, but I think it could work also for Centos and RHEL. Pierre. On 12/01/2020 19:52, Jan Blizničenko wrote: So it seems the good old ln -s /usr/lib64/libcurl.so.4 (path to pharo)/pharo-vm/lib/pharo/(version)/libcurl-gnutls.so.4 still works after all, just not with Pharo Launcher VM (where it causes segfault). With regular VMs downloaded either manually or via the Launcher itself it works. Too bad it makes Launcher unusable on both systems for both reasons (cannot hotfix launcher itself and have to hotfix all VMs it downloads). Jan -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
Re: [Pharo-users] I feel like an overwhelmed maintenance programmer - how to get some toeholds?
It's not particularly a novel idea. Some people were talking about doing it, but we have to check with our employer, or organize this on our free time. We didn't because of the Christmas holidays approaching. Pierre. On 22/12/2019 01:44, Pierce Ng wrote: On Sat, Dec 21, 2019 at 08:32:02AM -0600, ponyatov wrote: The problem can be covered by a few experienced programmers who stream their everyday work on a regular basis. As I know, there is no anyone doing it. Twitch for programmers? Intriguing idea. Pierce
Re: [Pharo-users] BlockClosure
Hi, The first part could be done, but with limitations. - you won't be able to value it with anything but variables names - those variables cannot have the same name as a method of BlockClosure - I don't think this can be implemented by default in Pharo, as it is kinda "dangerous" - might be unreliable, i don't know how stable Context is. ( For my own experiments, I have some problem with P7, but my stuff work fine on P8) You'd have to implement something like: BlockClosure >> DoesNotUnderstand: aMessage valueOfSelector := self outerContext at: aMessage selector ifAbsent:[ ^ super doesNotUnderstand "The variable isn't found in the context, so it's a real DNU "]. self valueWithArguments: valueOfSelector asArray "allows us to have several arguments" So if you did: aVariable := 3. [:x | x + 3] aVariable. The block would say it didn't understand the message aVariable, and you'd perform it in the doesNotUnderstand hook you just override. I guess it'd be something similar for the second part of your question, but i'm pretty sure it becomes unreadable rather quickly ˆˆ PS: I didn't test this, but it's something in that spirit. the context access might not be outerContext. Pierre. On 23/10/2019 09:22, main wrote: Hello fellow Pharoians (?) from a lonely Swede. I just found out about Pharo (and Smalltalk) two days ago and I'm already loving it :) However, there is a behavior I would like to change, or be enlightened about how it could be done. As I understand it (bear with me) BlockClosure from Kernel-Methods does not understand (by default?) how to respond to an "anonymous object" (no message name). Is there any way this could be implemented? I'll post an example soon (I currently use both Pharo 7 and 8) If I write the following: [:x | x + 1] value: 3 and evaluate it, I get the expected result, which is 4. That's nice. What I would really like is to be able to just send 3 to BlockClosure and make it repond as above. Like this: [:x | x + 1] 3 or like this: 3 [:x | x + 1] Would this be possible? --- Also as a bonus, would it be possible to use this for "function composition", "Block composition" or similar? Example of composition: [ :f :g | [ :x | f value: (g value: x) ] ] I could use this construct like this for example: (([ :f :g | [ :x | f value: (g value: x) ] ]) value: [:x | x + 1] value: [:x | x - 1]) value: 5 But… It's a bit wordy. What I would like to be able to do (essentialy remove "value:"): (([ :f :g | [ :x | f (g x) ] ]) [:x | x + 1] [:x | x - 1]) 5. Or in one line: (([ :f :g | [ :x | f (g x) ] ]) [:x | x + 1] [:x | x - 1]) 5. While this might seem obscure, I would really find it useful. Can it be done? Thanks in advance -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
Re: [Pharo-users] Installing PharoJS
On 07/10/2019 14:23, Shaping wrote: Correction length is 264. The debugger abbreviates the string with an ellipsis. Registry entry removes the 260-character limit. Not sure why this does not work: 'C:/Users/Crypto/Documents/Pharo/images/PharoJS in 7.0 64-bit/pharo-local/iceberg/bouraqadi/PharoJS/CordovaExamples/Counter/node_modules/cordova-ios/tests/spec/unit/fixtures/ios-config-xml/SampleApp/Images.xcassets/LaunchImage.launchimage/Default-568h@2x~iphone.png' size "264" I’ve installed PharoLauncher on the root of C. I need to move the images to the root too or to my RAID. I’m not able to move the folder from documents to another drive with a shorter path, without doing folder surgery. Also, I don’t see a way to save the launcher image after I’ve tweaked the settings to point to the new directories. Further when I specify the new directory, the specific image folder is moved (or regenerated) but no new /image folder is created. Do the new directory location does not reflect the old folder structure (in the user documents folder), and requires manual work to be synced. We probably don’t want that. Is there a more convenient and reliable way to have Launcher just move all images and VMs to a new folder? open settings (bottom left of the launcher) -Pharo Launcher settings --Locations of your images -> change the path Pierre
Re: [Pharo-users] Pharo: Git and GUI speed; JS widget reuse in PharoJS
On 07/10/2019 12:39, Shaping wrote: I haven't seen is the instability of the VM you mention, it has worked pretty well for my average use, although the UX is not straightforward. Yes, lots of redirection and extra steps. Many degrees of freedom. Seemingly no good default “happy” path to simplify things a little before you start to investigate the variations/choices. > The other thing that keeps me planted firmly in VW is the sheer speed of it. I don't know if there are recent benchmarks, but I've felt Pharo to be really fast compared to VW when it comes to computing. I’ve don’t plenty of informal comparative testing mostly with the GUI. I’ve used VW continuously for 29 years and Pharo on and off since 2006. (I’m really trying to port, but I keep failing to do it; getting closer). VW is still noticeably quicker in GUI responsiveness, in most cases. One big difference is the Pharo HTTP client, with all those wonderful primitives. It’s about _twice as fast_ as VW’s. Bravo. I meant to tell that to Sven recently, and forgot. > Pharo looks generally much better, but it’s mushy, and that’s a problem. VW is not. Working regularly with VW or VAST when I go back to Pharo the "mushiness" is significantly noticeable, but if you open a Pharo 3 image (or even Pharo 4) you'll feel it really "snappy", but of course you'll lose all the improvements since then; and that's the current tradeoff.’ Yeah, I guess all the new slick GUIs are a bit heavier. This machine is just okay for speed –2.7 GHz Xeon, but VW feels okay. Pharo tends to put me slowly to sleep with the tiny but noticeable lags here and there. I’m very fond of GT. Beautiful. Not sure what to do go get the GUI quickness back. Maybe you guys are waiting for the new GUI framework(s) to firm up? I tried Cuis, and was not impressed. It’s too lean/Spartan and still not very fast (slower in some ways than Pharo). I like the Pharo creature-comforts (who wouldn’t?). I never understood the reason for the incremental slowdown, it is even present in "modern" tools such as GTToolkit. Yes, it’s like a creeping disease. Lol Another thing I miss enough to want to implement (or fake-out somehow) is Alt-tabbing as a way to get around thru your browsers. Usually I have 4 to 6 up at once, if I’m behaving, and as many as 20 if I’m not. Looking about for the tabs at the bottom to click is not nearly as fun as Alt-Tabbing. Maybe I could emulate Alt-Tab with Alt-Shift-Tab—a bit of a finger twister, but it might work. You can take a look at that project for that : https://github.com/juliendelplanque/Mirage > Gestural dynamics are very quick, well under 100 ms latency, often less than 20 ms. > I’m seeing 100, 150, and 200 ms regularly in Pharo. It’s too mushy, and that slows the mind. > Any developer understands this, whether he talks about it or not. This is true, below 20ms is ideal, and top-notch CLI terminals are benchmarking this as a selling point (using stuff like https://github.com/pavelfatin/typometer), Sublime, TextEdit, Notepad++ measure sub 10ms latency. Indeed. My whole nervous system definitely feels this speed effect and starts to thought-glide better below these tiny latencies. I’m sure many reading this have had similar experiences. Something similar happens when you are fortunate enough to use a machine with extremely fast striped SSD drives, where _you literally don’t wait for anything_, except the bloody internet. This doesn’t just change the speed at which you do the work. It reorganizes your mind and skills in ways you had not anticipated because you can flow so much more quickly, making connections further forward and backward in your thought stream. My point is that if the speed and low-latencies are made a priority, we can attract users just on this basis alone. Even I would be working harder at improving Pharo (and complaining less) if everything were snappy. I would probably just get on with doing the needed tasks. Interesting how that works. Speed: it changes you. It changes the whole game. > So I’m wondering when the Pharo GUI will snap as well as VW. Maybe with native widgets there will be a significant speedup, although I don't know whether the lag comes from rendering time or from something else. I would like to know more about the native widgets in Pharo. Does anyone know when this is likely to happen? But VW event model is not better than Pharo's, so it might be something else. I’ve not looked into the details, but I will sometimes just repeatedly click on a method name and watch how long the code pane takes to render in VW and Pharo, and I don’t get what Pharo could be doing to make that time so long. Both are indexing into the sources file or the changes file to get some text, and then there is the TT-font rendering, which is probably where the CPU cycles are going. I should look into if further, but I’m sure som
Re: [Pharo-users] Looking for APIs to access Facebook, Instagram and Youtube
Hi, Not exactly as mainstream, but i was searching for an API for discord, which i found: https://github.com/JurajKubelka/DiscordSt Only complete at 83% though, I am thinking of trying to see if I could help complete it. Pierre On 04/10/2019 10:11, Esteban Lorenzano wrote: Hi, I’m evaluating the viability of a side project. Are there around APIs to connect to those platforms mentioned first? Thanks for the info, if any :) Esteban