[Pharo-users] Inovation Technology Award Submission: Polyphemus

2022-08-16 Thread pmissech

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

2020-01-16 Thread pmissech

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)

2020-01-14 Thread pmissech


   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?

2019-12-21 Thread pmissech
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

2019-10-23 Thread pmissech

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

2019-10-07 Thread pmissech


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

2019-10-07 Thread pmissech


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

2019-10-04 Thread pmissech

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