Re: How To Intercept Clicks On Links in a QT5 Browser Widget

2020-02-26 Thread Thomas Passin
Thanks!  Wow, that will save me lots of time.  U, I don't see how to 
"paste as node".  My version of Leo has no menu item or leo command that 
seems to be that.  Of course I can just paste it into the body of a node, 
but that won't give the same result.

So I opened a new text file, pasted your content in, and named the file 
something-or-other.leo   I loaded it into Leo, and it works just as 
advertised, button and all.  Thanks!

On Wednesday, February 26, 2020 at 10:15:46 PM UTC-5, btheado wrote:
>
> Thomas,
>
> Below I've pasted a leo subtree containing a demo @button which will 
> display html hyperlinks to nodes inside a QTextBrowser.
>
> To use it copy the xml and in a leo outline, "paste as node". Create a 
> script button from it and after clicking the button, a new pane should 
> appear containing hyperlinks to the selected node and each of its subtree 
> nodes. Clicking on those hyperlinks will move the selection to the node 
> corresponding to the clicked link.
>
> QT dock-based display only.
>
> I thought I'd share in case it helps you along with what you are doing. 
> The code is a little rough around the edges, but since it is a complete 
> working example, it might be useful to you.
>
> 
> 
> http://leoeditor.com/namespaces/leo-python-editor/1.1; 
> >
> 
> 
> @button node linked html
> display_widget_in_leo_pane()
> display_html
> node_link
> display_node_linked_html
> 
> 
> 
> @language python
> from PyQt5 import QtCore, QtWidgets
> @others
>
> # Just some sample node links, one on each line
> html = "\n".join([
> node_link(p) + "br/"
> for p in p.self_and_subtree()
> ])
>
> # Display the html in a docked widget
> display_node_linked_html(c, html)
> 
> def display_widget_in_leo_pane(g, c, w, 
> name):
> """
> w is the widget to display
> name is the name the widget should appear in pane menu
> """
> dw = c.frame.top
> c.user_dict.setdefault('btheado_docks', {})
> dock_dict = c.user_dict['btheado_docks']
> dock = dock_dict.get(name)
> if not dock:
> dock = g.app.gui.create_dock_widget(
>  closeable=True, moveable=True, height=50, name=name)
> dock_dict[name] = dock
> dw.addDockWidget(QtCore.Qt.RightDockWidgetArea, dock)
> dock.setWidget(w)
> dock.show()
> #g.es(dock.widget())
> 
> def display_html(html, name = 'test 
> html'):
> w = QtWidgets.QTextBrowser()
> w.setHtml(html)
> display_widget_in_leo_pane(g, c, w, name)
> return w
> def display_node_linked_html(c, html):
> def link_clicked(url):
> if url.isRelative():
> if url.path().startswith('node/'):
> gnx = url.path().split("/")[-1]
> target = next((
> p
> for p in c.all_unique_positions()
> if p.v.gnx == gnx
> ), None)
> if target:
> w.setSource(QtCore.QUrl())
> c.selectPosition(target)
> # Without this, there is possibility of the
> # position not being displayed and subsequent
> # expand of the node not showing all descendants
> c.redraw()
> else:
> g.es(f"Could not find node with gnx: {gnx}")
> else:
> g.es(f"Don't know how to handle url: {url.toString()}")
> else:
> g.es(f"Don't know how to handle url: {url.toString()}")
>
> w = display_html(html)
> w.anchorClicked.connect(link_clicked)
> def node_link(p):
> return f"""
> a style="color: violet; text-decoration: none;"
> href="node/{p.v.gnx}"{p.h}/a
> """
> 
> 
>
>
> On Wed, Feb 26, 2020 at 12:45 PM Thomas Passin  > wrote:
>
>> If I create a QT5 browser widget, and (within Leo) want to intercept and 
>> act on clicks on hyperlinks, is that feasible?  Would I just look up the 
>> event for a hyperlink click and connect it to my own handler?
>>
>> What I'm interested in specifically is the case where I have a mind map 
>> in the browser, and I want the links to go to corresponding nodes in a Leo 
>> outline.  It would seem that handling the click would be easier than trying 
>> to use the Leo Bridge (which I'm totally ignorant of).
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "leo-editor" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to leo-e...@googlegroups.com .
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/leo-editor/500414ec-9e4b-4bfa-bb62-f763de2be5d6%40googlegroups.com
>>  
>> 
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and 

Re: How To Intercept Clicks On Links in a QT5 Browser Widget

2020-02-26 Thread Brian Theado
Thomas,

Below I've pasted a leo subtree containing a demo @button which will
display html hyperlinks to nodes inside a QTextBrowser.

To use it copy the xml and in a leo outline, "paste as node". Create a
script button from it and after clicking the button, a new pane should
appear containing hyperlinks to the selected node and each of its subtree
nodes. Clicking on those hyperlinks will move the selection to the node
corresponding to the clicked link.

QT dock-based display only.

I thought I'd share in case it helps you along with what you are doing. The
code is a little rough around the edges, but since it is a complete working
example, it might be useful to you.



http://leoeditor.com/namespaces/leo-python-editor/1.1;
>


@button node linked html
display_widget_in_leo_pane()
display_html
node_link
display_node_linked_html



@language python
from PyQt5 import QtCore, QtWidgets
@others

# Just some sample node links, one on each line
html = "\n".join([
node_link(p) + "br/"
for p in p.self_and_subtree()
])

# Display the html in a docked widget
display_node_linked_html(c, html)

def display_widget_in_leo_pane(g, c, w,
name):
"""
w is the widget to display
name is the name the widget should appear in pane menu
"""
dw = c.frame.top
c.user_dict.setdefault('btheado_docks', {})
dock_dict = c.user_dict['btheado_docks']
dock = dock_dict.get(name)
if not dock:
dock = g.app.gui.create_dock_widget(
 closeable=True, moveable=True, height=50, name=name)
dock_dict[name] = dock
dw.addDockWidget(QtCore.Qt.RightDockWidgetArea, dock)
dock.setWidget(w)
dock.show()
#g.es(dock.widget())

def display_html(html, name = 'test
html'):
w = QtWidgets.QTextBrowser()
w.setHtml(html)
display_widget_in_leo_pane(g, c, w, name)
return w
def display_node_linked_html(c, html):
def link_clicked(url):
if url.isRelative():
if url.path().startswith('node/'):
gnx = url.path().split("/")[-1]
target = next((
p
for p in c.all_unique_positions()
if p.v.gnx == gnx
), None)
if target:
w.setSource(QtCore.QUrl())
c.selectPosition(target)
# Without this, there is possibility of the
# position not being displayed and subsequent
# expand of the node not showing all descendants
c.redraw()
else:
g.es(f"Could not find node with gnx: {gnx}")
else:
g.es(f"Don't know how to handle url: {url.toString()}")
else:
g.es(f"Don't know how to handle url: {url.toString()}")

w = display_html(html)
w.anchorClicked.connect(link_clicked)
def node_link(p):
return f"""
a style="color: violet; text-decoration: none;"
href="node/{p.v.gnx}"{p.h}/a
"""




On Wed, Feb 26, 2020 at 12:45 PM Thomas Passin  wrote:

> If I create a QT5 browser widget, and (within Leo) want to intercept and
> act on clicks on hyperlinks, is that feasible?  Would I just look up the
> event for a hyperlink click and connect it to my own handler?
>
> What I'm interested in specifically is the case where I have a mind map in
> the browser, and I want the links to go to corresponding nodes in a Leo
> outline.  It would seem that handling the click would be easier than trying
> to use the Leo Bridge (which I'm totally ignorant of).
>
> --
> You received this message because you are subscribed to the Google Groups
> "leo-editor" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to leo-editor+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/leo-editor/500414ec-9e4b-4bfa-bb62-f763de2be5d6%40googlegroups.com
> 
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/CAO5X8Cx35cRLoF%2BW_b_kZurxY7nPGbwVkZY%2BZPc95XQv0yqHCg%40mail.gmail.com.


Re: Zettelkasten - Notes Jim but not as we know them.

2020-02-26 Thread Thomas Passin
Very relevant here are the repeated remarks in "Taking Smart Notes" - I 
have my copy now - that more important then slip-case details are how you 
take, write, and interconnect the slips.  It is that work that really makes 
all the difference.

With that in mind, I really want to start with a very simple computer 
system, one that has almost nothing to remember or get in the way.  So for 
now, I'm happy with my  outline structure, and the three keystroke commands 
I came up with.

I still am interested in using mindmaps together with the slip-case, 
though.  I just found viewer software for many of my old mind map files.  I 
used it to look at a mindmap that I used in a funding proposal over 15 
years ago, one that I had forgotten about.  In a few minutes, it all came 
back to me.  I remember the proposed project and why I was interested in 
it, and the technical approach I wanted to take.

I haven't found any suitable free software so far (I'm not that taken with 
Freemind and Freeplane, though I may not have tried them long enough).  My 
concept right now is to export a section of the zettelkasten you are 
working with to a mind map (with the links) that opens in a new Leo panel, 
and a click on an object in the mind map would take you to the Leo node for 
that object in your zettelkasten, and possibly display the note in the 
panel too.  Best of both worlds!

On Wednesday, February 26, 2020 at 5:50:11 PM UTC-5, andyjim wrote:
>
>
> On Wednesday, February 26, 2020 at 5:24:19 AM UTC-5, Marcel Franke wrote:
>>
>>
>>  Yes, for some reasons there is a cargo-cult growing around Luhmann and 
>> his knowledge-system. 
>> Which is kinda strange, as it's really not that special and we today have 
>> many better systems in use. 
>>
>
> I really appreciate your comments here. I must frankly admit that the only 
> reason I am barking up the zettelkasten tree is that I have failed to run 
> across a better system, one better suited to my usage, which will be 
> similar to, though of course not a replica of Luhmann's. If I can indeed 
> discover an existing system that does what zettelkasten does and more and 
> better, I for one will immediately abandon all interest in zettelkasten and 
> quickly become an avid user and proponent of such a system. I am looking at 
> zettelkasten only because I had despaired of finding something better.
>
> So please, if you would, point us toward at least a few of the many better 
> systems for this general type of usage that you have discovered. I do not 
> think anyone here will object to the mention of specific softwares, and you 
> could save us quite a lot of wasted effort reinventing the wheel when the 
> wheel apparently is not that good to begin with.
>
> Thanks much 
>

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/bdb46b69-eb26-4bff-b0ce-5993ccb962bf%40googlegroups.com.


Re: How To Intercept Clicks On Links in a QT5 Browser Widget

2020-02-26 Thread Thomas Passin


On Wednesday, February 26, 2020 at 1:14:53 PM UTC-5, Edward K. Ream wrote:
>
>
>
> On Wed, Feb 26, 2020 at 11:45 AM Thomas Passin  > wrote:
>
>> If I create a QT5 browser widget, and (within Leo) want to intercept and 
>> act on clicks on hyperlinks, is that feasible?  Would I just look up the 
>> event for a hyperlink click and connect it to my own handler?
>>
>
> Yes.
>
> What I'm interested in specifically is the case where I have a mind map in 
>> the browser, and I want the links to go to corresponding nodes in a Leo 
>> outline.  It would seem that handling the click would be easier than trying 
>> to use the Leo Bridge (which I'm totally ignorant of).
>>
>
> Don't use the bridge within Leo. It wasn't designed for that.
>

Thank you, Edward .

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/a9eae528-adda-4464-bd8b-e9de7b5c82a2%40googlegroups.com.


Re: Zettelkasten - Notes Jim but not as we know them.

2020-02-26 Thread andyjim

On Wednesday, February 26, 2020 at 5:24:19 AM UTC-5, Marcel Franke wrote:
>
>
>  Yes, for some reasons there is a cargo-cult growing around Luhmann and 
> his knowledge-system. 
> Which is kinda strange, as it's really not that special and we today have 
> many better systems in use. 
>

I really appreciate your comments here. I must frankly admit that the only 
reason I am barking up the zettelkasten tree is that I have failed to run 
across a better system, one better suited to my usage, which will be 
similar to, though of course not a replica of Luhmann's. If I can indeed 
discover an existing system that does what zettelkasten does and more and 
better, I for one will immediately abandon all interest in zettelkasten and 
quickly become an avid user and proponent of such a system. I am looking at 
zettelkasten only because I had despaired of finding something better.

So please, if you would, point us toward at least a few of the many better 
systems for this general type of usage that you have discovered. I do not 
think anyone here will object to the mention of specific softwares, and you 
could save us quite a lot of wasted effort reinventing the wheel when the 
wheel apparently is not that good to begin with.

Thanks much 

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/a0116ca4-855c-4213-9941-9151aa0af469%40googlegroups.com.


Re: How To Intercept Clicks On Links in a QT5 Browser Widget

2020-02-26 Thread Edward K. Ream
On Wed, Feb 26, 2020 at 11:45 AM Thomas Passin  wrote:

> If I create a QT5 browser widget, and (within Leo) want to intercept and
> act on clicks on hyperlinks, is that feasible?  Would I just look up the
> event for a hyperlink click and connect it to my own handler?
>

Yes.

What I'm interested in specifically is the case where I have a mind map in
> the browser, and I want the links to go to corresponding nodes in a Leo
> outline.  It would seem that handling the click would be easier than trying
> to use the Leo Bridge (which I'm totally ignorant of).
>

Don't use the bridge within Leo. It wasn't designed for that.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/CAMF8tS13b1-1JMLyoD5-CBKNw3c-iMoBo1PzgeFw7Ri%3DeT%2BEcA%40mail.gmail.com.


How To Intercept Clicks On Links in a QT5 Browser Widget

2020-02-26 Thread Thomas Passin
If I create a QT5 browser widget, and (within Leo) want to intercept and 
act on clicks on hyperlinks, is that feasible?  Would I just look up the 
event for a hyperlink click and connect it to my own handler?

What I'm interested in specifically is the case where I have a mind map in 
the browser, and I want the links to go to corresponding nodes in a Leo 
outline.  It would seem that handling the click would be easier than trying 
to use the Leo Bridge (which I'm totally ignorant of).

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/500414ec-9e4b-4bfa-bb62-f763de2be5d6%40googlegroups.com.


Re: Discuss: don't use Qt docks by default?

2020-02-26 Thread Edward K. Ream
On Wednesday, February 26, 2020 at 6:53:14 AM UTC-6, Edward K. Ream wrote:

> leoSettings.leo contains a check-settings script. This is mostly for my 
use, and it has a few problems, as described in #1511 
. 

Rev 3f81df in devel improves the check-settings script in several ways. In 
particular, it now reports when myLeoSettings.leo contains a setting not 
found in leoSettings.leo. There were quite a few dead settings in my own 
myLeoSettings.leo.

#1511 isn't quite complete yet. There are a few rough edges, which I am 
investigating.

I recommend not deleting dead settings unless you are sure you'll never 
need them. Just move them out of the @settings tree.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/1a4c665c-a0c5-43ed-8ffb-ba932b52e98d%40googlegroups.com.


Re: Discuss: don't use Qt docks by default?

2020-02-26 Thread Edward K. Ream
On Tue, Feb 25, 2020 at 6:15 PM Matt Wilkie  wrote:

> No-docks as default is the safest route to a better experience for most
> people in my opinion. It's just too easy to get things messed up when using
> docks and getting back to reasonable restart place is very hacky.
>

I agree. Let people experiment with qt docks after they have a bit more
experience.

> I suppose it's too complicated to be able to switch dock modes via a menu
> item or command, right? What about swapping between and resetting layouts?
> It seems like a small thing, closing Leo and restarting is straightforward,
> but it really adds a lot of mental friction.
>

I'm not going to touch the present docking code, except for fixing real
bugs, like #1506  and
#1507 .  The code is
already way too difficult.

Long term, is there any viable or even a possibly-viable path to
> harmonizing or joining the layout methods? I'm sure the work of keeping
> both up to date and working indefinitely into the future is an undesirable
> burden.
>

No. I know of no way to do that. They are two very different worlds.
Abandon all hope :-)

On defaults: I also vote for 2 column layout with Outline and Log on left
> with Body on right using full top to bottom extent. Of course people should
> be able to design and save their own local default.
>

This seems to be the consensus. It's on the list.

I don't have a recommendation for Find and Nav tabs. I frequently want
> them, but they're also almost always in the way. I guess that's why other
> editors use pop-ups. (Notepad++ replace dialog goes transparent when it
> loses focus, which is rather nice. I imagine that was a fair bit of work.)
>

Pyzo uses a popup, as does scite. As a workaround, I recommend setting
@bool minibuffer-find-mode = True.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/CAMF8tS244oK%2B5N8gQtzN-AXnqhs5Q55eSjo82MrYX_uB3VpDRA%40mail.gmail.com.


Re: 2019 retrospective. Plans for 2020

2020-02-26 Thread Edward K. Ream
On Tue, Feb 25, 2020 at 5:49 PM Matt Wilkie  wrote:

Thank you for the retrospective summary. I was more or less present for all
> of it, yet it still read like news to me. ;-)
>

Hehe. You're welcome.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/CAMF8tS1KPJyZhLyjWT%3DZNNojcmYf5OLMQgS%3DwFKEnOez2OwauA%40mail.gmail.com.


Re: Discuss: don't use Qt docks by default?

2020-02-26 Thread Edward K. Ream
On Tue, Feb 25, 2020 at 4:57 PM Thomas Passin  wrote:

If I install a new editor, I expect it to open up in a usable way.
>

Leo does open in a usable way.

> Oh, this isn't a command line option.  Hmm.  Now where do I go for that?
>

leoSettings.leo.  In general, if a setting isn't in leoSettings.leo it can
safely be removed from myLeoSettings.leo

At present a few settings in leoSettings.leo are out of date. These relate
to the black and beautify commands. Otherwise leoSettings.leo should be a
reliable reference.

leoSettings.leo contains a check-settings script. This is mostly for my
use, and it has a few problems, as described in #1511
. I'll be working on
this issue today. It will soon report settings in myLeoSettings.leo that do
not correspond to any code. That would make the script more generally
useful.

In short, the situation isn't nearly as bad as you imply.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/CAMF8tS2og%3DBrgMEN5mZyav5sPv_yN-WAPYCEvAfTHs_RMZ6atw%40mail.gmail.com.


Re: Zettelkasten - Notes Jim but not as we know them.

2020-02-26 Thread 'Marcel Franke' via leo-editor

Am Dienstag, 25. Februar 2020 17:33:10 UTC+1 schrieb Thomas Passin:

All right; I've not seen the term "zettelkasten" applied to systems before 
> Luhmann's got publicised. 
>

 Well, I can't speak for the etymology of the word. It's even in germany 
not the most popular usage for this word (today) and not the usual way to 
adress those paperslip-boxes.
But the usage seems to predate the recent Luhmann-hype by several decades. 
So I guess he did not coin the word.

I've been under the impression that his particular way of indexing and 
> linking is what characterizes the term.  
>

 Yes, for some reasons there is a cargo-cult growing around Luhmann and his 
knowledge-system. 
Which is kinda strange, as it's really not that special and we today have 
many better systems in use. 
The only significant strength is the reference-system, and that only really 
works well with paperslips.

Maybe it's fueled from the ongoing active research regarding his work or 
because internet just works that way.
Before internet, people just used their tools in natural ways and didn't 
talk about the details much. 
But today people share everything and talk about anything make a cult out 
of any little detail and trick 

Details are important, they drive understanding, communication and 
research. But details you don't understand only lead down the wrong roads.

And even if I tried to do things exactly as Luhmann seems to have done 
> them, my own note collection would turn out to be very different because - 
> I'm sure - I conceptualize and link things differently from the way he did.
>

Indeed. The worth of any knowledge is not in the system generating it, but 
the work invested into building it, and the mind who did it. 
People all use the same tools, yet they all produce different results, 
because the mindsa re different, not the tools.

In a sense, Luhmann's zettelkasten was nearly the same as the World Wide 
> Web.  He had "resources" - his cards, and "links" - his index strings.  He 
> also used backlinks, which can be added to a web page but it's not so easy 
> to know how it could be done automatically, since you wouldn't want to add 
> the URL of just any page that had a hyperlink to your target.
>

 Yeah, no, partly. WWW is a hypertext-system and decentraliced. The notable 
trait of a hypertext-system are hidden references, 
meaning you have meaningful text with embedded references. Luhmann is also 
using references in text, 
but the references have no meaning for the text. And using references in 
text is quite common in science. 
The notable difference by Luhmann made is his reference-system. 

But his general concept is akin to hypertext in the sense that it's also a 
graph-system. But then I would compare it more to a Wiki. 
And classical wiki also lack embedded references, using direct 
in-text-references instead. WWW is not a knowledgebase, nor a limited 
system. 
But Wikis, and also Luhmanns Zettelkasten are limited sytems and that makes 
them useful for this usecase.

In this case, though, I'm interested in having a system that doesn't need 
> to use someone else's web server.  I wouldn't mind using my own server on 
> my own machine, but if it isn't necessary, so much the better.  
>

 A server is just a technical detail. You can run it locally, in your own 
cloud, or generate the HTML in-app without a server. 
But from a practical view, a server as a centralized single point of access 
has several advantages for tooling and handling of your data.

For my own system I also move to a server-solution as a managed layer 
around my data. Compromising with poor solutions is so painful on the long 
way.

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/88568a1f-dfa6-4372-9d05-b63d3a46c345%40googlegroups.com.