pharo-users@lists.pharo.org

Any question about pharo is welcome

View all threads

Re: [Pharo-users] Personal wiki / information manager

JJ
Jupiter Jones
Thu, Jul 13, 2023 6:42 AM

Hi Esteban,

That is a really good point - thanks for reminding me. Maybe I’m just a little early starting this project. Hopefully the bookworm release of PiOS will include a reasonably stable and functional Wayland.

For now I’ll work on ubuntu with Wayland and see how I go.

Cheers,

J

On 12 Jul 2023, at 6:59 pm, Esteban Lorenzano estebanlm@netc.eu wrote:

what is the xid? The x11 thingy?
in that case you will need to implement a method on GdkWindow (not  GtkWindow):
https://docs.gtk.org/gdk3-x11/method.X11Window.get_xid.html
then you do something like:

GRunLoop defer: [ xid := myGtkWindow gdkWindow xid ].

but this is tied to the x11 system and linux is going out really fast of it (is being replaced by Wayland).
I can bet  there has to be a better way to connect it to a window.

Esteban

On Jul 12 2023, at 12:05 am, Jupiter Jones jupiter.jones@mail.com wrote:
Hi Estiban,

Thanks for that - works beautifully :)

The next challenge was to let VLC know the xid for the gtk window, but of course the one function that answers the xid for gtk appears to be in yet another library (gtk-x11) which, of course, has no binding for Pharo as yet :)

As I’m new to FFI (as is my offsider), this will take a bit of learning and fumbling, so if someone knows it’s going to be a fools errand (ie. this isn’t likely to resolve the link between VLC and gtk) please let me know.

Otherwise, we’ll dive in.

Cheers,

J

On 10 Jul 2023, at 9:50 pm, Esteban Lorenzano estebanlm@netc.eu wrote:

Hi,

Heh, there were several problems around :)

  1. Indeed, Ubuntu naming conventions were a problem for the gtk bindings. I updated them and now it should not be a problem (but you need to pull them again).
  2. I assume you are using Pharo Launcher (or zeroconf directly). And this is a problem... PharoLauncher is a great idea, and for Windows is a mustbut in linux world it just does not matches the philosophy: There are many distrubutions and changes and is impossible to correctly distribute a VM with all dependencies without using the packaging they expect (we need to start thinking on distribute the VM as a flatpak, but that will take time to be implemented).
    You need to use the VM we provide with Open Build Service:  https://software.opensuse.org//download.html?project=devel:languages:pharo:stable&package=pharo-ui
  3. finally, this is not a real problem immediately, but a recommendation: Pharo has different ways of being ejecuted. The default one will execute the VM and everything needed in the main thread. This is usually suitable for Pharo needs, but it is a problem when the UI loop is required to run separately (not just for Gtk but any backend that you need to run on idle mode).
    Fortunaltely, Pharo implements also a way to be executed in a worker thread, making space so the main thread can be used for other purposes. We highly recommend that you execute Pharo using a worker thread (future versions of Spec-Gtk will require this usage, and is definitively better.
    How to execute in worker thread:
    pharo --worker MyImage.image --interactive

I updated the README on pharo-spec/Spec-Gtk to precise this points.

Cheers!
Esteban
On Jul 10 2023, at 7:17 am, Jupiter Jones jupiter.jones@mail.com wrote:
Another step forward.

I created a new ubuntu 22 install, installed pharo 11 and installed spec-gtk. The first issue was the libraries are named: libgobject-2.0.so.0 and libpango-1.0.so.0 with the “.0” suffix. I created links to those with the names spec-gtk is expecting.

Then, the little test window opened but looked like this:

Is there something else I’m missing?

Thanks for your advice.

Cheers,

Phil

On 9 Jul 2023, at 6:02 pm, Esteban Lorenzano estebanlm@netc.eu wrote:

Hi,

Spec-Gtk should work without problems on P11, except on macs, where there is a known problem.
what is the process you are taking to install it? where are you trying it?

I don't know the status of the VLC bindings.

Esteban

On Jul 9 2023, at 2:53 am, Jupiter Jones jupiter.jones@mail.com wrote:
The stark silence answers my question :)

So…

I found a nice binding to VLC [1] and was thinking of using Spec2 GTK+ to create a video widget/component. Does anyone with more in depth knowledge of Spec2 and GTK foresee any obvious blocks?

First block :) I can’t find a way to play with the Spec2 GTK+ binding [2]  without the image crashing on startup. I see someone has already logged the issue in GitHub for 10 and 11, and I tried 12 just for fun,  and it also ate all the memory then crashed.

Is there a Pharo version that will work with the Spec2 GTK+ binding installed? Maybe I’m looking at this too early :)

[1] https://github.com/badetitou/Pharo-LibVLC
[2] https://github.com/pharo-spec/Spec-Gtk

On 3 Jul 2023, at 5:07 pm, Jupiter Jones jupiter.jones@mail.com wrote:

Can anyone point to to some library, documentation or examples of how to play video in Pharo?

Thanks in advance.

Cheers,

J

Hi Esteban, That is a really good point - thanks for reminding me. Maybe I’m just a little early starting this project. Hopefully the bookworm release of PiOS will include a reasonably stable and functional Wayland. For now I’ll work on ubuntu with Wayland and see how I go. Cheers, J > On 12 Jul 2023, at 6:59 pm, Esteban Lorenzano <estebanlm@netc.eu> wrote: > > what is the xid? The x11 thingy? > in that case you will need to implement a method on GdkWindow (not GtkWindow): > https://docs.gtk.org/gdk3-x11/method.X11Window.get_xid.html > then you do something like: > > GRunLoop defer: [ xid := myGtkWindow gdkWindow xid ]. > > but this is tied to the x11 system and linux is going out really fast of it (is being replaced by Wayland). > I can bet there has to be a better way to connect it to a window. > > Esteban > > On Jul 12 2023, at 12:05 am, Jupiter Jones <jupiter.jones@mail.com> wrote: > Hi Estiban, > > Thanks for that - works beautifully :) > > The next challenge was to let VLC know the xid for the gtk window, but of course the one function that answers the xid for gtk appears to be in yet another library (gtk-x11) which, of course, has no binding for Pharo as yet :) > > As I’m new to FFI (as is my offsider), this will take a bit of learning and fumbling, so if someone knows it’s going to be a fools errand (ie. this isn’t likely to resolve the link between VLC and gtk) please let me know. > > Otherwise, we’ll dive in. > > Cheers, > > J > > On 10 Jul 2023, at 9:50 pm, Esteban Lorenzano <estebanlm@netc.eu> wrote: > > Hi, > > Heh, there were several problems around :) > > 1) Indeed, Ubuntu naming conventions were a problem for the gtk bindings. I updated them and now it should not be a problem (but you need to pull them again). > 2) I assume you are using Pharo Launcher (or zeroconf directly). And this is a problem... PharoLauncher is a great idea, and for Windows is a mustbut in linux world it just does not matches the philosophy: There are many distrubutions and changes and is impossible to correctly distribute a VM with all dependencies without using the packaging they expect (we need to start thinking on distribute the VM as a flatpak, but that will take time to be implemented). > You need to use the VM we provide with Open Build Service: https://software.opensuse.org//download.html?project=devel:languages:pharo:stable&package=pharo-ui > 3) finally, this is not a real problem immediately, but a recommendation: Pharo has different ways of being ejecuted. The default one will execute the VM and everything needed in the main thread. This is usually suitable for Pharo needs, but it is a problem when the UI loop is required to run separately (not just for Gtk but any backend that you need to run on idle mode). > Fortunaltely, Pharo implements also a way to be executed in a worker thread, making space so the main thread can be used for other purposes. We highly recommend that you execute Pharo using a worker thread (future versions of Spec-Gtk will require this usage, and is definitively better. > How to execute in worker thread: > pharo --worker MyImage.image --interactive > > I updated the README on pharo-spec/Spec-Gtk to precise this points. > > Cheers! > Esteban > On Jul 10 2023, at 7:17 am, Jupiter Jones <jupiter.jones@mail.com> wrote: > Another step forward. > > I created a new ubuntu 22 install, installed pharo 11 and installed spec-gtk. The first issue was the libraries are named: libgobject-2.0.so.0 and libpango-1.0.so.0 with the “.0” suffix. I created links to those with the names spec-gtk is expecting. > > Then, the little test window opened but looked like this: > > > Is there something else I’m missing? > > Thanks for your advice. > > Cheers, > > Phil > > > On 9 Jul 2023, at 6:02 pm, Esteban Lorenzano <estebanlm@netc.eu> wrote: > > Hi, > > Spec-Gtk should work without problems on P11, except on macs, where there is a known problem. > what is the process you are taking to install it? where are you trying it? > > I don't know the status of the VLC bindings. > > Esteban > > On Jul 9 2023, at 2:53 am, Jupiter Jones <jupiter.jones@mail.com> wrote: > The stark silence answers my question :) > > So… > > I found a nice binding to VLC [1] and was thinking of using Spec2 GTK+ to create a video widget/component. Does anyone with more in depth knowledge of Spec2 and GTK foresee any obvious blocks? > > First block :) I can’t find a way to play with the Spec2 GTK+ binding [2] without the image crashing on startup. I see someone has already logged the issue in GitHub for 10 and 11, and I tried 12 just for fun, and it also ate all the memory then crashed. > > Is there a Pharo version that will work with the Spec2 GTK+ binding installed? Maybe I’m looking at this too early :) > > [1] https://github.com/badetitou/Pharo-LibVLC > [2] https://github.com/pharo-spec/Spec-Gtk > > On 3 Jul 2023, at 5:07 pm, Jupiter Jones <jupiter.jones@mail.com> wrote: > > Can anyone point to to some library, documentation or examples of how to play video in Pharo? > > Thanks in advance. > > Cheers, > > J
S
sean@clipperadams.com
Fri, Jul 14, 2023 2:21 AM

TheProjectProject is the GTD component of my Dynabook project. Behind it is about 20 years of work incorporating ideas from countless productivity disciplines - GTD, Steven Covey, Landmark Education’s Mission Control spin off, etc…

Motivation:

  • Even “good” GTD apps miss the fundamental thing that virtually *all* apps miss - stovepiping a sliver of one’s mental model into an app is already a losing proposition. Every significant object needs to be able to relate to every other one - financial transactions to personal projects to contacts in one’s address book, to sources in one’s library.

  • Personal productivity is a highly personal endeavor, so no off the shelf closed box software can ever really scratch the itch. Basing it on a live, dynamic, turtles-all-the-way-down system like Pharo is a must

Disclaimer: even after 20 years, I’m still not clear on some things, so it is actively developed and even the core ideas are still evolving as I continuously drive it via real world usage.

Everything is MIT and I’m happy to discuss and answer any questions. It is currently based on GToolkit (itself based on Pharo). There’s no reason the core model couldn’t run on plain Pharo without GT, but it’s been a long time (several years) since I’ve put any love into Morphic UI components.

HTH,

Sean

[TheProjectProject](https://github.com/seandenigris/The-Project-Project) is the GTD component of [my Dynabook project](https://github.com/seandenigris/Dynabook). Behind it is about 20 years of work incorporating ideas from countless productivity disciplines - GTD, Steven Covey, Landmark Education’s Mission Control spin off, etc… Motivation: * Even “good” GTD apps miss the fundamental thing that virtually \*all\* apps miss - stovepiping a sliver of one’s mental model into an app is already a losing proposition. Every significant object needs to be able to relate to every other one - financial transactions to personal projects to contacts in one’s address book, to sources in one’s library. * Personal productivity is a highly personal endeavor, so no off the shelf closed box software can ever really scratch the itch. Basing it on a live, dynamic, turtles-all-the-way-down system like Pharo is a must Disclaimer: even after 20 years, I’m still not clear on some things, so it is actively developed and even the core ideas are still evolving as I continuously drive it via real world usage. Everything is MIT and I’m happy to discuss and answer any questions. It is currently based on GToolkit (itself based on Pharo). There’s no reason the core model couldn’t run on plain Pharo without GT, but it’s been a long time (several years) since I’ve put any love into Morphic UI components. HTH, Sean
SB
Siemen Baader
Sat, Aug 12, 2023 3:04 PM

On Fri, Jul 14, 2023 at 4:21 AM sean@clipperadams.com wrote:

TheProjectProject https://github.com/seandenigris/The-Project-Project
is the GTD component of my Dynabook project
https://github.com/seandenigris/Dynabook. Behind it is about 20 years
of work incorporating ideas from countless productivity disciplines - GTD,
Steven Covey, Landmark Education’s Mission Control spin off, etc…

Very interesting, I'll check it out! And yes, I agree - it is very helpful
to be able to extend and also automate a productivity system with any
concept from one's life. Very cool that you have extended it with Corey's 7
habits. I have meeting announcements that I'd like to automate across email
and SoMe channels, and recipes, meal planning, online grocery ordering and
bulk cooking. The Dynabook approach sort of legitimates the approach of
evolving such a system yourself as empowering literacy, rather than using a
patchwork of specialized end user applications. I get the impression that
Lisp folks do have an ASCII inspired Dynabook universe with Emacs and
OrgMode. We could ask Nicolas Petton.. I found his Pharo projects to be
extremely creative and well-engineered. Now he is using GTD & OrgMode and
maintaining Emacs. [3]

My own Dynabook system has a Pharo backend and internal Pharo DSL and AJAX
web app frontend based on Iliad. The latter to allow collaboration with
non-pharo end users on certain projects. I'm interested in adding
instrumental interaction [1] to the web frontend to provide context
appropriate editing tools in a feasible way, along with the context
appropriate views HTML gives me quite nicely (similar to the inspectors in
the GToolkit philosophy). A big project and certainly more to talk about...

Do you have a mobile workflow too? I use mobile a lot - for now with
OrgMode and the beOrg mobile app. I also have a wearable computer with a
Raspberry Pi, Vufine [2] and Twiddler one hand keyboard which has some
advantages over mobile because I can type faster and maintain a view of the
world through the HUD. The Twiddler is quite efficient for text/emacs-style
editing and emacs runs quite well on the Pi, so I'm still interested in
some sort of OrgMode compatibility to remain pragmatic & productive on
these journeys.

Sorry for my late response BTW, summer time... I really appreciate
TheProjectProject and the thoughts behind it.

cheers
Siemen

1: https://www.lri.fr/~mbl/INSTR/eintroduction.html
2:
https://www.theverge.com/circuitbreaker/2017/7/27/16035508/diy-wearable-computer-google-glass-raspberry-pi-instructions
3: https://emacs.cafe/emacs/orgmode/gtd/2017/06/30/orgmode-gtd.html

On Fri, Jul 14, 2023 at 4:21 AM <sean@clipperadams.com> wrote: > TheProjectProject <https://github.com/seandenigris/The-Project-Project> > is the GTD component of my Dynabook project > <https://github.com/seandenigris/Dynabook>. Behind it is about 20 years > of work incorporating ideas from countless productivity disciplines - GTD, > Steven Covey, Landmark Education’s Mission Control spin off, etc… > Very interesting, I'll check it out! And yes, I agree - it is very helpful to be able to extend and also automate a productivity system with any concept from one's life. Very cool that you have extended it with Corey's 7 habits. I have meeting announcements that I'd like to automate across email and SoMe channels, and recipes, meal planning, online grocery ordering and bulk cooking. The Dynabook approach sort of legitimates the approach of evolving such a system yourself as empowering literacy, rather than using a patchwork of specialized end user applications. I get the impression that Lisp folks do have an ASCII inspired Dynabook universe with Emacs and OrgMode. We could ask Nicolas Petton.. I found his Pharo projects to be extremely creative and well-engineered. Now he is using GTD & OrgMode and maintaining Emacs. [3] My own Dynabook system has a Pharo backend and internal Pharo DSL and AJAX web app frontend based on Iliad. The latter to allow collaboration with non-pharo end users on certain projects. I'm interested in adding instrumental interaction [1] to the web frontend to provide context appropriate editing tools in a feasible way, along with the context appropriate views HTML gives me quite nicely (similar to the inspectors in the GToolkit philosophy). A big project and certainly more to talk about... Do you have a mobile workflow too? I use mobile a lot - for now with OrgMode and the beOrg mobile app. I also have a wearable computer with a Raspberry Pi, Vufine [2] and Twiddler one hand keyboard which has some advantages over mobile because I can type faster and maintain a view of the world through the HUD. The Twiddler is quite efficient for text/emacs-style editing and emacs runs quite well on the Pi, so I'm still interested in some sort of OrgMode compatibility to remain pragmatic & productive on these journeys. Sorry for my late response BTW, summer time... I really appreciate TheProjectProject and the thoughts behind it. cheers Siemen 1: https://www.lri.fr/~mbl/INSTR/eintroduction.html 2: https://www.theverge.com/circuitbreaker/2017/7/27/16035508/diy-wearable-computer-google-glass-raspberry-pi-instructions 3: https://emacs.cafe/emacs/orgmode/gtd/2017/06/30/orgmode-gtd.html
S
sean@clipperadams.com
Mon, Sep 25, 2023 2:55 PM

Your work is intriguing. I think it would be good to video chat at some point. There are several other people that come to mind that are interested in this space as well. I’m also on Pharo discord and GT discord (which has a PKM channel).

Other responses inline…

Siemen Baader wrote:

We could ask Nicolas Petton.. I found his Pharo projects to be
extremely creative and well-engineered. Now he is using GTD & OrgMode and
maintaining Emacs. [3]

Cool, I didn’t know that. Yes, it would be fun to reconnect with him.

My own Dynabook system has a Pharo backend and internal Pharo DSL and AJAX
web app frontend based on Iliad. The latter to allow collaboration with
non-pharo end users on certain projects.

Very interesting. I’d like to learn more about that. Collaboration is something I haven’t focused on much. I sidestepped it for the moment by integrating with MS Graph.

Do you have a mobile workflow too?

Not yet. This is also something on the todo list, but in the past I got sidetracked by all the things I wanted. At some point, I decided to have the best local single user system I could imagine so that I could finally flesh out the model in the real world. I’m still in that process.

Sorry for my late response BTW, summer time...

All good :)

Your work is intriguing. I think it would be good to video chat at some point. There are several other people that come to mind that are interested in this space as well. I’m also on Pharo discord and GT discord (which has a PKM channel). Other responses inline… Siemen Baader wrote: > We could ask Nicolas Petton.. I found his Pharo projects to be > extremely creative and well-engineered. Now he is using GTD & OrgMode and > maintaining Emacs. \[3\] Cool, I didn’t know that. Yes, it would be fun to reconnect with him. > My own Dynabook system has a Pharo backend and internal Pharo DSL and AJAX > web app frontend based on Iliad. The latter to allow collaboration with > non-pharo end users on certain projects. Very interesting. I’d like to learn more about that. Collaboration is something I haven’t focused on much. I sidestepped it for the moment by integrating with MS Graph. > Do you have a mobile workflow too? Not yet. This is also something on the todo list, but in the past I got sidetracked by all the things I wanted. At some point, I decided to have the best local single user system I could imagine so that I could finally flesh out the model in the real world. I’m still in that process. > Sorry for my late response BTW, summer time... All good :)