Re: Checking in

Carl G <[email protected]> Thu, 27 Feb 2025 10:00:58 -0500
Newsgroups gmane.comp.lang.smalltalk.squeak.seaside
Message-ID <CAPYvR9deKXO_fGGt5Xmz=9j0D_rpNtWgr+K=gAngjupyrE0+aw@mail.gmail.com>
--===============6006389428062392483==
Content-Type: multipart/alternative; boundary="000000000000e2b2da062f20f5db"

--000000000000e2b2da062f20f5db
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Wow Otto, that did it!  I'm so glad.  Thanks to you and to everyone else
who has helped me to figure this out.  I would like to not need to specify
the 'culture' part of the path, but this will do nicely for now, and now
that it works I can apply some energy later to making it work exactly as I
desire!

Thanks again!

-Carl

On Thu, Feb 27, 2025 at 1:20=E2=80=AFAM Otto Behrens <[email protected]> wr=
ote:

> Hi Carl,
>
> Should your entry point perhaps be http://localhost:7777/culture/hang.png
> <http://localhost:7777/hang.png>?
>
> Otto Behrens
>
> +27 82 809 2375
> [image: FINWorks]
> [image: FINWorks] <http://za.linkedin.com/in/waltherbehrens>
> www.finworks.biz
>
> Disclaimer & Confidentiality Note: This email is intended solely for the
> use of the individual or entity named above as it may contain information
> that is confidential and privileged. If you are not the intended recipien=
t,
> be advised that any dissemination, distribution or copying of this email =
is
> strictly prohibited. FINWorks cannot be held liable by any person other
> than the addressee in respect of any opinions, conclusions, advice or oth=
er
> information contained in this email.
>
>
> On Thu, Feb 27, 2025 at 7:06=E2=80=AFAM Carl Gundel <[email protected]=
om>
> wrote:
>
>> Thanks Otto.  I tried your suggestion, and so the server starts and the
>> 'culture' entry appears in the seaside page and I can configure it.
>>
>> No files seem to be served, sadly, and placing a breakpoint into the
>> handleFiltered: method (below) doesn't stop there when I try to load a f=
ile
>> in my web browser with http://localhost:7777/hang.png so it seems that
>> the WaExternalFileLibrary object is not getting its turn to do something
>> with the request.
>>
>> WaExternalFileLibrary>>handleFiltered: aRequestContext
>>
>>     [ self {breakPoint here} processContext: aRequestContext ]
>>
>>         on: Error
>>
>>         do: [ :error |
>>
>>             aRequestContext responseGenerator
>>
>>                 internalError: error;
>>
>>                 respond ]
>> I realize that one can use Apache or other web server in front of
>> Seaside, but one of the selling points of my product has always been tha=
t
>> you don't need Apache.  Run BASIC is an easy web programming system for
>> hobbyists, and so not requiring the web server is an important feature.
>>
>> I had no difficulty making this work in Seaside 2.8, and it surprises me
>> that it is hard to do with newer versions.  I'm hoping that it's still
>> possible if the right bits are twiddled.  Do I need to do some additiona=
l
>> configuration?  Someover on Discord said that the right class to use is
>> WAFileMetadataLibrary? ;-)
>>
>> Any thoughts appreciated.  Thanks again.
>>
>> -Carl Gundel, author of Run BASIC
>> http://www.runbasic.com
>>
>> On Wed, Feb 26, 2025 at 11:15=E2=80=AFPM Otto Behrens <[email protected]=
> wrote:
>>
>>> Hi Carl,
>>>
>>> We no longer serve files in this way because we use nginx in front of
>>> the seaside server. From what I can see something like this could work =
as
>>> you would be using the current dispatcher.
>>>
>>> WADispatcher default register: fileSystem at: 'culture'
>>>
>>> HTH
>>>
>>> Otto Behrens
>>>
>>> +27 82 809 2375
>>> [image: FINWorks]
>>> [image: FINWorks] <http://za.linkedin.com/in/waltherbehrens>
>>> www.finworks.biz
>>>
>>> Disclaimer & Confidentiality Note: This email is intended solely for th=
e
>>> use of the individual or entity named above as it may contain informati=
on
>>> that is confidential and privileged. If you are not the intended recipi=
ent,
>>> be advised that any dissemination, distribution or copying of this emai=
l is
>>> strictly prohibited. FINWorks cannot be held liable by any person other
>>> than the addressee in respect of any opinions, conclusions, advice or o=
ther
>>> information contained in this email.
>>>
>>>
>>> On Thu, Feb 27, 2025 at 6:05=E2=80=AFAM Carl Gundel <carlg@libertybasic=
.com>
>>> wrote:
>>>
>>>> Hey, I finally got around to trying this.
>>>>
>>>>   fileSystem :=3D WAExternalFileLibrary new.
>>>>
>>>>   WADispatcher new register: fileSystem at: 'culture'.
>>>>
>>>>   fileSystem preferenceAt: #directory put: 'c:\rbdev\public\'
>>>>
>>>> As soon as I do this, the Seaside server is broken and I can't even
>>>> launch a browser on it.  I get this:
>>>> This site can=E2=80=99t be reached
>>>>
>>>> *desktop-m4pvv3o* refused to connect.
>>>>
>>>>
>>>> So, maybe there is something else to do?
>>>>
>>>>
>>>> -Carl
>>>>
>>>> On Sun, Feb 23, 2025 at 8:04=E2=80=AFPM Jupiter Jones <jupiter.jones@m=
ail.com>
>>>> wrote:
>>>>
>>>>> Hi Carl,
>>>>>
>>>>> From memory, you shouldn=E2=80=99t need to call updateRoot: on the li=
braries -
>>>>> I believe that=E2=80=99s handled automatically.
>>>>>
>>>>> In any case, I just installed it to have a look and my educated guess
>>>>> was totally wrong :)
>>>>>
>>>>> From WAExternalFileLibraryTest-#setUp
>>>>>
>>>>> fileSystem :=3D WAExternalFileLibrary new.
>>>>> WADispatcher new register: fileSystem at: =E2=80=98culture'
>>>>>
>>>>> I guess you might be able to set the directory to serve files from th=
e
>>>>> UI, or maybe in code with something like=E2=80=A6
>>>>>
>>>>> fileSystem preferenceAt: #directory put: =E2=80=98/path/to/files=E2=
=80=99
>>>>>
>>>>> If you have no luck, I should have time to give this a go tonight or
>>>>> tomorrow.
>>>>>
>>>>> On 24 Feb 2025, at 10:47=E2=80=AFam, Carl G <[email protected]> wr=
ote:
>>>>>
>>>>> Well, thanks for your help but no luck.   The trouble is that the
>>>>> WAExternalFileLibrary seems to be broken?  I dunno.  It throws an exc=
eption
>>>>> in this method:
>>>>>
>>>>> SeasideRenderLoopContinuation>>updateRoot: anHtmlRoot
>>>>>
>>>>>     | charSet |
>>>>>
>>>>>     charSet :=3D self application contentType charSet.
>>>>>
>>>>>     charSet isNil ifFalse: [
>>>>>
>>>>>         anHtmlRoot meta charset: charSet ].
>>>>>
>>>>>     anHtmlRoot beHtml5.
>>>>>
>>>>>     anHtmlRoot title: 'Seaside'.
>>>>>
>>>>>     self application libraries
>>>>>
>>>>>         do: [ :each | each default updateRoot: anHtmlRoot ].
>>>>>
>>>>>     self session updateRoot: anHtmlRoot
>>>>>
>>>>> It DNUs when it tried to send #default to the library.  I wonder if I
>>>>> can make my own subclass of WAFileLibrary and extend it to serve file=
s from
>>>>> a disk folder.
>>>>>
>>>>> It's just puzzling that there isn't a ready made way to do this.
>>>>> After WAExternalFileLibrary does work in Seaside 2.8.
>>>>>
>>>>> I was hoping to find an answer in the Seaside book at
>>>>> http://book.seaside.st/book but the web page is hug or something.  It
>>>>> was working a few days ago.
>>>>>
>>>>> Whose bell do I ring to get that rebooted?
>>>>>
>>>>> -Carl
>>>>>
>>>>> On Sun, Feb 23, 2025 at 5:23=E2=80=AFPM <[email protected]> =
wrote:
>>>>>
>>>>>> Hi Carl,
>>>>>>
>>>>>> Disclaimer: I=E2=80=99ve never used a WAExternalFileLibrary so the f=
ollowing
>>>>>> is an educated guess, but hopefully gives you enough info.
>>>>>>
>>>>>> I typically configure these kind of things on creation of the
>>>>>> application with something like a #configureApplication: method on t=
he
>>>>>> class side of my root component...
>>>>>>
>>>>>> configureApplication: anApplication
>>>>>> anApplication preferenceAt: #sessionClass put: MySession.
>>>>>> anApplication configuration
>>>>>> addParent: MySystemConfiguration instance.
>>>>>> anApplication
>>>>>> addLibrary: WAExternalFileLibrary;
>>>>>> addLibrary: JQDevelopmentLibrary.
>>>>>> anApplication
>>>>>> preferenceAt: #directory put: =E2=80=98/path/to/serve/from=E2=80=99.
>>>>>>
>>>>>> Then call this method from the method that installs the web app=E2=
=80=A6
>>>>>>
>>>>>> register
>>>>>> self configureApplication: (WAAdmin register: self asApplicationAt:
>>>>>> =E2=80=98MyAppName')
>>>>>>
>>>>>> Cheers
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 24 Feb 2025, at 8:56=E2=80=AFam, Carl G <[email protected]> wr=
ote:
>>>>>>
>>>>>> I'm trying a few things trying to make my application serve static
>>>>>> files.  Run BASIC dynamically generates PNG files that are rendered =
into
>>>>>> the web page, but I cannot figure out how to make it work after hour=
s of
>>>>>> head banging.  The old version of Seaside allows me to add
>>>>>> WAExternalFileLibrary in the configuration page.  But I cannot do th=
is with
>>>>>> Seaside 3.5.1 on VW for some reason.  If I try to do the following, =
I get a
>>>>>> debugger when I launch the app.
>>>>>>
>>>>>>   (WADispatcher default handlers at: 'runbasicpersonal')
>>>>>>     addLibrary: WAExternalFileLibrary
>>>>>>
>>>>>> If I substitute WAFileLibrary it doesn't blow up, but it doesn't see=
m
>>>>>> to do anything either.  Putting a breakpoint in the handle: method f=
or the
>>>>>> instance of WAFileLibrary does not stop.  It seems that the WAFileLi=
brary
>>>>>> is not being used.  My guess is that it's only for serving 'files' t=
hat are
>>>>>> in-memory anyways but I tried it just to see if I could anything wor=
k.
>>>>>>
>>>>>> Any ideas?  What the simplest possible way to add external file
>>>>>> serving to my Seaside app?  I absolutely do not want my users to nee=
d
>>>>>> Apache or something else.  The current version doesn't require it.
>>>>>>
>>>>>> Thanks in advance.
>>>>>>
>>>>>> -Carl Gundel, author of Run BASIC
>>>>>> http://www.runbasic.com
>>>>>> _______________________________________________
>>>>>> seaside mailing list -- [email protected]
>>>>>> To unsubscribe send an email to
>>>>>> [email protected]
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>> seaside mailing list -- [email protected]
>>>>> To unsubscribe send an email to
>>>>> [email protected]
>>>>>
>>>>>
>>>>> _______________________________________________
>>>> seaside mailing list -- [email protected]
>>>> To unsubscribe send an email to
>>>> [email protected]
>>>>
>>> _______________________________________________
>>> seaside mailing list -- [email protected]
>>> To unsubscribe send an email to [email protected]=
g
>>
>> _______________________________________________
>> seaside mailing list -- [email protected]
>> To unsubscribe send an email to [email protected]
>>
> _______________________________________________
> seaside mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
>

--000000000000e2b2da062f20f5db
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Wow Otto, that did it!=C2=A0 I&#39;m so glad.=C2=A0 T=
hanks to you and to everyone else who has helped me to figure this out.=C2=
=A0 I would like to not need to specify the &#39;culture&#39; part of the p=
ath, but this will do nicely for now, and now that it works I can apply som=
e energy later to making it work exactly as I desire!</div><div><br></div><=
div>Thanks again!</div><div><br></div><div>-Carl</div><br><div class=3D"gma=
il_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Th=
u, Feb 27, 2025 at 1:20=E2=80=AFAM Otto Behrens &lt;<a href=3D"mailto:otto@=
finworks.biz">[email protected]</a>&gt; wrote:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>Hi Carl,</div><div><=
br></div><div>Should your entry point perhaps be=C2=A0<a href=3D"http://loc=
alhost:7777/hang.png" target=3D"_blank">http://localhost:7777/culture/hang.=
png</a>?<br><br></div><div><div dir=3D"ltr" class=3D"gmail_signature"><div =
dir=3D"ltr"><div><div dir=3D"ltr"><table width=3D"600" cellpadding=3D"0" ce=
llspacing=3D"0" border=3D"0" style=3D"color:rgb(0,0,0);font-family:Times;fo=
nt-size:medium"><tbody><tr><td width=3D"400" valign=3D"bottom"><p style=3D"=
margin:0px;padding:0px"><span style=3D"font-size:18px;color:rgb(146,148,151=
);font-family:Calibri,sans-serif;font-weight:700">Otto Behrens</span><br></=
p><p style=3D"font-size:18px;font-weight:700;color:rgb(146,148,151);font-fa=
mily:Calibri,sans-serif;margin:0px;padding:0px"><span style=3D"font-size:14=
px;font-weight:300;margin:0px;padding:0px">+27 82 809 2375</span></p></td><=
td width=3D"200" valign=3D"middle"><img src=3D"https://www.finworks.biz/sig=
nature/finworks-signature-logo.png" width=3D"200" height=3D"38" alt=3D"FINW=
orks" style=3D"display: block; border: 0px; width: 200px; height: 38px; mar=
gin: 0px; padding: 0px;"></td></tr></tbody></table><table width=3D"600" cel=
lpadding=3D"0" cellspacing=3D"0" border=3D"0" style=3D"color:rgb(0,0,0);fon=
t-family:Times;font-size:medium"><tbody><tr><td height=3D"5"></td></tr></tb=
ody></table><table width=3D"600" cellpadding=3D"0" cellspacing=3D"0" border=
=3D"0" style=3D"color:rgb(0,0,0);font-family:Times;font-size:medium;border-=
bottom:1px solid rgb(200,28,36)"><tbody><tr><td height=3D"15"></td></tr></t=
body></table><table width=3D"600" cellpadding=3D"0" cellspacing=3D"0" borde=
r=3D"0" style=3D"color:rgb(0,0,0);font-family:Times;font-size:medium"><tbod=
y><tr><td height=3D"20"></td></tr></tbody></table><table width=3D"600" cell=
padding=3D"0" cellspacing=3D"0" border=3D"0" style=3D"color:rgb(0,0,0);font=
-family:Times;font-size:medium"><tbody><tr><td width=3D"15" valign=3D"top" =
style=3D"display:inline-block"><a href=3D"http://za.linkedin.com/in/walther=
behrens" style=3D"color:rgb(17,85,204)" target=3D"_blank"><img src=3D"https=
://www.finworks.biz/signature/finworks-linkedin-logo.png" width=3D"15" heig=
ht=3D"15" alt=3D"FINWorks" style=3D"display: inline-block; border: 0px; wid=
th: 15px; height: 15px; margin-top: 1.5px; padding: 0px;"></a></td><td widt=
h=3D"250" valign=3D"top" style=3D"display:inline-block"><a href=3D"http://w=
ww.finworks.biz/" style=3D"color:rgb(200,28,36);font-family:Calibri,sans-se=
rif;margin-left:10px;margin-top:0px;padding-top:0px;font-size:11pt;display:=
inline-block" target=3D"_blank">www.finworks.biz</a></td></tr></tbody></tab=
le><table width=3D"600" cellpadding=3D"0" cellspacing=3D"0" border=3D"0" st=
yle=3D"color:rgb(0,0,0);font-family:Times;font-size:medium"><tbody><tr><td =
height=3D"10"></td></tr></tbody></table><table width=3D"600" cellpadding=3D=
"0" cellspacing=3D"0" border=3D"0" style=3D"color:rgb(0,0,0);font-family:Ti=
mes;font-size:medium"><tbody><tr><td><p style=3D"font-size:10px;color:rgb(1=
46,148,151);font-family:Calibri,sans-serif;text-align:justify">Disclaimer &=
amp; Confidentiality Note: This email is intended solely for the use of the=
 individual or entity named above as it may contain information that is con=
fidential and privileged. If you are not the intended recipient, be advised=
 that any dissemination, distribution or copying of this email is strictly =
prohibited. FINWorks cannot be held liable by any person other than the add=
ressee in respect of any opinions, conclusions, advice or other information=
 contained in this email.</p></td></tr></tbody></table></div></div></div></=
div></div><br></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">On Thu, Feb 27, 2025 at 7:06=E2=80=AFAM Carl Gundel &lt;<a =
href=3D"mailto:[email protected]" target=3D"_blank">carlg@libertybasic=
.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1=
ex"><div dir=3D"ltr"><div class=3D"gmail_attr">Thanks Otto.=C2=A0 I tried y=
our suggestion, and so the server starts and the &#39;culture&#39; entry ap=
pears in the seaside page and I can configure it.</div><div class=3D"gmail_=
attr"><br></div><div class=3D"gmail_attr">No files seem to be served, sadly=
, and placing a breakpoint into the handleFiltered: method (below) doesn&#3=
9;t stop there when I try to load a file in my web browser with <a href=3D"=
http://localhost:7777/hang.png" target=3D"_blank">http://localhost:7777/han=
g.png</a> so it seems that the WaExternalFileLibrary object is not getting =
its turn to do something with the request.</div><div class=3D"gmail_attr"><=
p><span style=3D"font-size:12px">WaExternalFileLibrary&gt;&gt;handleFiltere=
d:=C2=A0</span><span style=3D"font-size:12px">aRequestContext</span></p><p>=
<span style=3D"font-size:12px">=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=
=3D"font-size:12px">[</span><span style=3D"font-size:12px">=C2=A0</span><sp=
an style=3D"font-size:12px">self {breakPoint here}</span><span style=3D"fon=
t-size:12px">=C2=A0</span><span style=3D"font-size:12px">processContext:</s=
pan><span style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12=
px">aRequestContext</span><span style=3D"font-size:12px">=C2=A0</span><span=
 style=3D"font-size:12px">]</span><span style=3D"font-size:12px">=C2=A0</sp=
an></p><p><span style=3D"font-size:12px">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0</span><span style=3D"font-size:12px">on:</span><span style=
=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">Error</span=
></p><p><span style=3D"font-size:12px">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0</span><span style=3D"font-size:12px">do:</span><span style=3D"=
font-size:12px">=C2=A0</span><span style=3D"font-size:12px">[</span><span s=
tyle=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">:</span=
><span style=3D"font-size:12px">error</span><span style=3D"font-size:12px">=
=C2=A0</span><span style=3D"font-size:12px">|</span><span style=3D"font-siz=
e:12px">=C2=A0</span></p><p><span style=3D"font-size:12px">=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=
=3D"font-size:12px">aRequestContext</span><span style=3D"font-size:12px">=
=C2=A0</span><span style=3D"font-size:12px">responseGenerator</span></p><p>=
<span style=3D"font-size:12px">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D=
"font-size:12px">internalError:</span><span style=3D"font-size:12px">=C2=A0=
</span><span style=3D"font-size:12px">error</span><span style=3D"font-size:=
12px">;</span></p><p><span style=3D"font-size:12px">=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
</span><span style=3D"font-size:12px">respond</span><span style=3D"font-siz=
e:12px">=C2=A0</span><span style=3D"font-size:12px">]</span></p></div><div =
class=3D"gmail_attr">I realize that one can use Apache or other web server =
in front of Seaside, but one of the selling points of my product has always=
 been that you don&#39;t need Apache.=C2=A0 Run BASIC is an easy web progra=
mming system for hobbyists, and so not requiring the web server is an impor=
tant feature.</div><div class=3D"gmail_attr"><br></div><div class=3D"gmail_=
attr">I had no difficulty making this work in Seaside 2.8, and it surprises=
 me that it is hard to do with newer versions.=C2=A0 I&#39;m hoping that it=
&#39;s still possible if the right bits are twiddled.=C2=A0 Do I need to do=
 some additional configuration?=C2=A0 Someover on Discord said that the rig=
ht class to use is=C2=A0<span style=3D"font-size:12px">WAFileMetadataLibrar=
y?</span>=C2=A0;-)</div><div class=3D"gmail_attr"><br></div><div class=3D"g=
mail_attr">Any thoughts appreciated.=C2=A0 Thanks again.</div><div class=3D=
"gmail_attr"><br></div><div class=3D"gmail_attr">-Carl Gundel, author of Ru=
n BASIC</div><div class=3D"gmail_attr"><a href=3D"http://www.runbasic.com" =
target=3D"_blank">http://www.runbasic.com</a></div><div class=3D"gmail_attr=
"><br></div><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Feb 26, 2025 at 1=
1:15=E2=80=AFPM Otto Behrens &lt;<a href=3D"mailto:[email protected]" targe=
t=3D"_blank">[email protected]</a>&gt; wrote:<br></div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex"><div dir=3D"ltr"><div>Hi Carl,</div><div><br>=
</div><div>We no longer serve files in this way because we use nginx in fro=
nt of the seaside server. From what I can see something like this could wor=
k as you would be using the current dispatcher.</div><div><br></div><div>WA=
Dispatcher default register: fileSystem at: &#39;culture&#39;<br></div><div=
><br></div><div>HTH</div><div><div dir=3D"ltr" class=3D"gmail_signature"><d=
iv dir=3D"ltr"><div><div dir=3D"ltr"><table width=3D"600" cellpadding=3D"0"=
 cellspacing=3D"0" border=3D"0" style=3D"color:rgb(0,0,0);font-family:Times=
;font-size:medium"><tbody><tr><td width=3D"400" valign=3D"bottom"><p style=
=3D"margin:0px;padding:0px"><span style=3D"font-size:18px;color:rgb(146,148=
,151);font-family:Calibri,sans-serif;font-weight:700">Otto Behrens</span><b=
r></p><p style=3D"font-size:18px;font-weight:700;color:rgb(146,148,151);fon=
t-family:Calibri,sans-serif;margin:0px;padding:0px"><span style=3D"font-siz=
e:14px;font-weight:300;margin:0px;padding:0px">+27 82 809 2375</span></p></=
td><td width=3D"200" valign=3D"middle"><img src=3D"https://www.finworks.biz=
/signature/finworks-signature-logo.png" width=3D"200" height=3D"38" alt=3D"=
FINWorks" style=3D"display: block; border: 0px; width: 200px; height: 38px;=
 margin: 0px; padding: 0px;"></td></tr></tbody></table><table width=3D"600"=
 cellpadding=3D"0" cellspacing=3D"0" border=3D"0" style=3D"color:rgb(0,0,0)=
;font-family:Times;font-size:medium"><tbody><tr><td height=3D"5"></td></tr>=
</tbody></table><table width=3D"600" cellpadding=3D"0" cellspacing=3D"0" bo=
rder=3D"0" style=3D"color:rgb(0,0,0);font-family:Times;font-size:medium;bor=
der-bottom:1px solid rgb(200,28,36)"><tbody><tr><td height=3D"15"></td></tr=
></tbody></table><table width=3D"600" cellpadding=3D"0" cellspacing=3D"0" b=
order=3D"0" style=3D"color:rgb(0,0,0);font-family:Times;font-size:medium"><=
tbody><tr><td height=3D"20"></td></tr></tbody></table><table width=3D"600" =
cellpadding=3D"0" cellspacing=3D"0" border=3D"0" style=3D"color:rgb(0,0,0);=
font-family:Times;font-size:medium"><tbody><tr><td width=3D"15" valign=3D"t=
op" style=3D"display:inline-block"><a href=3D"http://za.linkedin.com/in/wal=
therbehrens" target=3D"_blank"><img src=3D"https://www.finworks.biz/signatu=
re/finworks-linkedin-logo.png" width=3D"15" height=3D"15" alt=3D"FINWorks" =
style=3D"display: inline-block; border: 0px; width: 15px; height: 15px; mar=
gin-top: 1.5px; padding: 0px;"></a></td><td width=3D"250" valign=3D"top" st=
yle=3D"display:inline-block"><a href=3D"http://www.finworks.biz/" style=3D"=
color:rgb(200,28,36);font-family:Calibri,sans-serif;margin-left:10px;margin=
-top:0px;padding-top:0px;font-size:11pt;display:inline-block" target=3D"_bl=
ank">www.finworks.biz</a></td></tr></tbody></table><table width=3D"600" cel=
lpadding=3D"0" cellspacing=3D"0" border=3D"0" style=3D"color:rgb(0,0,0);fon=
t-family:Times;font-size:medium"><tbody><tr><td height=3D"10"></td></tr></t=
body></table><table width=3D"600" cellpadding=3D"0" cellspacing=3D"0" borde=
r=3D"0" style=3D"color:rgb(0,0,0);font-family:Times;font-size:medium"><tbod=
y><tr><td><p style=3D"font-size:10px;color:rgb(146,148,151);font-family:Cal=
ibri,sans-serif;text-align:justify">Disclaimer &amp; Confidentiality Note: =
This email is intended solely for the use of the individual or entity named=
 above as it may contain information that is confidential and privileged. I=
f you are not the intended recipient, be advised that any dissemination, di=
stribution or copying of this email is strictly prohibited. FINWorks cannot=
 be held liable by any person other than the addressee in respect of any op=
inions, conclusions, advice or other information contained in this email.</=
p></td></tr></tbody></table></div></div></div></div></div><br></div><br><di=
v class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Feb 2=
7, 2025 at 6:05=E2=80=AFAM Carl Gundel &lt;<a href=3D"mailto:carlg@libertyb=
asic.com" target=3D"_blank">[email protected]</a>&gt; wrote:<br></div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div dir=
=3D"ltr">Hey, I finally got around to trying this.<div><p><span style=3D"fo=
nt-size:12px">=C2=A0 fileSystem</span><span style=3D"font-size:12px">=C2=A0=
</span><span style=3D"font-size:12px">:=3D</span><span style=3D"font-size:1=
2px">=C2=A0</span><span style=3D"font-size:12px">WAExternalFileLibrary</spa=
n><span style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px=
">new</span><span style=3D"font-size:12px">.</span></p><p><span style=3D"fo=
nt-size:12px">=C2=A0 WADispatcher</span><span style=3D"font-size:12px">=C2=
=A0</span><span style=3D"font-size:12px">new</span><span style=3D"font-size=
:12px">=C2=A0</span><span style=3D"font-size:12px">register:</span><span st=
yle=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">fileSyst=
em</span><span style=3D"font-size:12px">=C2=A0</span><span style=3D"font-si=
ze:12px">at:</span><span style=3D"font-size:12px">=C2=A0</span><span style=
=3D"font-size:12px">&#39;</span><span style=3D"font-size:12px">culture</spa=
n><span style=3D"font-size:12px">&#39;</span><span style=3D"font-size:12px"=
>.</span></p><p><span style=3D"font-size:12px">=C2=A0 fileSystem</span><spa=
n style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">pref=
erenceAt:</span><span style=3D"font-size:12px">=C2=A0</span><span style=3D"=
font-size:12px">#directory</span><span style=3D"font-size:12px">=C2=A0</spa=
n><span style=3D"font-size:12px">put:</span><span style=3D"font-size:12px">=
=C2=A0</span><span style=3D"font-size:12px">&#39;</span><span style=3D"font=
-size:12px">c:\rb</span><span style=3D"font-size:12px">dev\public\</span><s=
pan style=3D"font-size:12px">&#39;</span></p><p>As soon as I do this, the S=
easide server is broken and I can&#39;t even launch a browser on it.=C2=A0 =
I get this:</p><h1 style=3D"font-size:1.6em;font-weight:normal;line-height:=
1.25em;margin-bottom:16px;margin-top:0px;font-family:&quot;Segoe UI&quot;,T=
ahoma,sans-serif">This site can=E2=80=99t be reached</h1><p></p><p style=3D=
"display:inline;color:rgb(95,99,104);font-family:&quot;Segoe UI&quot;,Tahom=
a,sans-serif;font-size:15px"><strong>desktop-m4pvv3o</strong>=C2=A0refused =
to connect.</p></div><div><p style=3D"display:inline;color:rgb(95,99,104);f=
ont-family:&quot;Segoe UI&quot;,Tahoma,sans-serif;font-size:15px"><br></p><=
/div><div><p style=3D"display:inline;color:rgb(95,99,104);font-family:&quot=
;Segoe UI&quot;,Tahoma,sans-serif;font-size:15px">So, maybe there is someth=
ing else to do?</p></div><div><p style=3D"display:inline;color:rgb(95,99,10=
4);font-family:&quot;Segoe UI&quot;,Tahoma,sans-serif;font-size:15px"><br><=
/p></div><div><p style=3D"display:inline;color:rgb(95,99,104);font-family:&=
quot;Segoe UI&quot;,Tahoma,sans-serif;font-size:15px">-Carl</p></div></div>=
<br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Sun=
, Feb 23, 2025 at 8:04=E2=80=AFPM Jupiter Jones &lt;<a href=3D"mailto:jupit=
[email protected]" target=3D"_blank">[email protected]</a>&gt; wrote:<=
br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Hi Carl,<di=
v><br></div><div>From memory, you shouldn=E2=80=99t need to call updateRoot=
: on the libraries - I believe that=E2=80=99s handled automatically.=C2=A0<=
/div><div><br></div><div>In any case, I just installed it to have a look an=
d my educated guess was totally wrong :)</div><div><br></div><div>From=C2=
=A0WAExternalFileLibraryTest-#setUp</div><div><br></div><div><div>fileSyste=
m :=3D WAExternalFileLibrary new.</div><div>WADispatcher new register: file=
System at: =E2=80=98culture&#39;</div><div><br></div><div>I guess you might=
 be able to set the directory to serve files from the UI, or maybe in code =
with something like=E2=80=A6</div><div><br></div><div><span style=3D"color:=
rgb(0,0,0)">fileSystem=C2=A0</span>preferenceAt: #directory put: =E2=80=98/=
path/to/files=E2=80=99</div><div><br></div><div>If you have no luck, I shou=
ld have time to give this a go tonight or tomorrow.</div><div><br><blockquo=
te type=3D"cite"><div>On 24 Feb 2025, at 10:47=E2=80=AFam, Carl G &lt;<a hr=
ef=3D"mailto:[email protected]" target=3D"_blank">[email protected]</=
a>&gt; wrote:</div><br><div><div dir=3D"ltr">Well, thanks for your help but=
 no luck.=C2=A0 =C2=A0The trouble is that the WAExternalFileLibrary seems t=
o be broken?=C2=A0 I dunno.=C2=A0 It throws an exception in this method:<br=
><br><p><span style=3D"font-size:12px">SeasideRenderLoopContinuation&gt;&gt=
;updateRoot:=C2=A0</span><span style=3D"font-size:12px">anHtmlRoot</span></=
p><p><span style=3D"font-size:12px">=C2=A0=C2=A0=C2=A0=C2=A0</span><span st=
yle=3D"font-size:12px">|</span><span style=3D"font-size:12px">=C2=A0</span>=
<span style=3D"font-size:12px">charSet</span><span style=3D"font-size:12px"=
>=C2=A0</span><span style=3D"font-size:12px">|</span></p><p><span style=3D"=
font-size:12px">=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-size:12p=
x">charSet</span><span style=3D"font-size:12px">=C2=A0</span><span style=3D=
"font-size:12px">:=3D</span><span style=3D"font-size:12px">=C2=A0</span><sp=
an style=3D"font-size:12px">self</span><span style=3D"font-size:12px">=C2=
=A0</span><span style=3D"font-size:12px">application</span><span style=3D"f=
ont-size:12px">=C2=A0</span><span style=3D"font-size:12px">contentType</spa=
n><span style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px=
">charSet</span><span style=3D"font-size:12px">.</span></p><p><span style=
=3D"font-size:12px">=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-size=
:12px">charSet</span><span style=3D"font-size:12px">=C2=A0</span><span styl=
e=3D"font-size:12px">isNil</span><span style=3D"font-size:12px">=C2=A0</spa=
n><span style=3D"font-size:12px">ifFalse:</span><span style=3D"font-size:12=
px">=C2=A0</span><span style=3D"font-size:12px">[</span></p><p><span style=
=3D"font-size:12px">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span>=
<span style=3D"font-size:12px">anHtmlRoot</span><span style=3D"font-size:12=
px">=C2=A0</span><span style=3D"font-size:12px">meta</span><span style=3D"f=
ont-size:12px">=C2=A0</span><span style=3D"font-size:12px">charset:</span><=
span style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">c=
harSet</span><span style=3D"font-size:12px">=C2=A0</span><span style=3D"fon=
t-size:12px">]</span><span style=3D"font-size:12px">.</span></p><p><span st=
yle=3D"font-size:12px">=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-s=
ize:12px">anHtmlRoot</span><span style=3D"font-size:12px">=C2=A0</span><spa=
n style=3D"font-size:12px">beHtml5</span><span style=3D"font-size:12px">.</=
span></p><p><span style=3D"font-size:12px">=C2=A0=C2=A0=C2=A0=C2=A0</span><=
span style=3D"font-size:12px">anHtmlRoot</span><span style=3D"font-size:12p=
x">=C2=A0</span><span style=3D"font-size:12px">title:</span><span style=3D"=
font-size:12px">=C2=A0</span><span style=3D"font-size:12px">&#39;</span><sp=
an style=3D"font-size:12px">Seaside</span><span style=3D"font-size:12px">&#=
39;</span><span style=3D"font-size:12px">.</span></p><p><span style=3D"font=
-size:12px">=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-size:12px">s=
elf</span><span style=3D"font-size:12px">=C2=A0</span><span style=3D"font-s=
ize:12px">application</span><span style=3D"font-size:12px">=C2=A0</span><sp=
an style=3D"font-size:12px">libraries</span><span style=3D"font-size:12px">=
=C2=A0</span></p><p><span style=3D"font-size:12px">=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-size:12px">do:</span><sp=
an style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">[</=
span><span style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:1=
2px">:</span><span style=3D"font-size:12px">each</span><span style=3D"font-=
size:12px">=C2=A0</span><span style=3D"font-size:12px">|</span><span style=
=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">each</span>=
<span style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">=
default</span><span style=3D"font-size:12px">=C2=A0</span><span style=3D"fo=
nt-size:12px">updateRoot:</span><span style=3D"font-size:12px">=C2=A0</span=
><span style=3D"font-size:12px">anHtmlRoot</span><span style=3D"font-size:1=
2px">=C2=A0</span><span style=3D"font-size:12px">]</span><span style=3D"fon=
t-size:12px">.</span></p><p><span style=3D"font-size:12px">=C2=A0=C2=A0=C2=
=A0=C2=A0</span><span style=3D"font-size:12px">self</span><span style=3D"fo=
nt-size:12px">=C2=A0</span><span style=3D"font-size:12px">session</span><sp=
an style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">upd=
ateRoot:</span><span style=3D"font-size:12px">=C2=A0</span><span style=3D"f=
ont-size:12px">anHtmlRoot</span></p><p><span style=3D"font-size:12px">It DN=
Us when it tried to send #default to the library.=C2=A0 I wonder if I can m=
ake my own subclass of WAFileLibrary and extend it to serve files from a di=
sk folder.</span></p><p>It&#39;s just puzzling that there isn&#39;t a ready=
 made way to do this.=C2=A0 After WAExternalFileLibrary does work in Seasid=
e 2.8.</p><p>I was hoping to find an answer in the Seaside book at=C2=A0<a =
href=3D"http://book.seaside.st/book" target=3D"_blank">http://book.seaside.=
st/book</a>=C2=A0but the web page is hug or something.=C2=A0 It was working=
 a few days ago.</p><p>Whose bell do I ring to get that rebooted?</p><p>-Ca=
rl</p></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_=
attr">On Sun, Feb 23, 2025 at 5:23=E2=80=AFPM &lt;<a href=3D"mailto:terra.a=
[email protected]" target=3D"_blank">[email protected]</a>&gt; w=
rote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0p=
x 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Hi Ca=
rl,<div><br></div><div>Disclaimer: I=E2=80=99ve never used a=C2=A0WAExterna=
lFileLibrary so the following is an educated guess, but hopefully gives you=
 enough info.<br><div><br></div><div>I typically configure these kind of th=
ings on creation of the application with something like a #configureApplica=
tion: method on the class side of my root component...</div><div><br></div>=
<div><div>configureApplication: anApplication</div><div>anApplication prefe=
renceAt: #sessionClass put: MySession.</div><div>anApplication configuratio=
n</div><div>addParent: MySystemConfiguration instance.</div><div>anApplicat=
ion</div><div>addLibrary: WAExternalFileLibrary;</div><div>addLibrary: JQDe=
velopmentLibrary.</div><div>anApplication</div><div>preferenceAt: #director=
y put: =E2=80=98/path/to/serve/from=E2=80=99.</div><div><br></div><div>Then=
 call this method from the method that installs the web app=E2=80=A6</div><=
div><br></div><div><div>register</div><div>self configureApplication: (WAAd=
min register: self asApplicationAt: =E2=80=98MyAppName&#39;)</div></div><di=
v><br></div><div>Cheers</div></div></div><div><br></div><div><br></div><div=
><br><blockquote type=3D"cite"><div>On 24 Feb 2025, at 8:56=E2=80=AFam, Car=
l G &lt;<a href=3D"mailto:[email protected]" target=3D"_blank">basicforg=
[email protected]</a>&gt; wrote:</div><br><div><div dir=3D"ltr">I&#39;m trying a =
few things trying to make my application serve static files.=C2=A0 Run BASI=
C dynamically generates PNG files that are rendered into the web page, but =
I cannot figure out how to make=C2=A0it work after hours of head banging.=
=C2=A0 The old version of Seaside allows me to add WAExternalFileLibrary in=
 the configuration page.=C2=A0 But I cannot do this with Seaside 3.5.1 on V=
W for some reason.=C2=A0 If I try to do the following, I get a debugger whe=
n I launch the app.<div><br></div><div>=C2=A0 (WADispatcher default handler=
s at: &#39;runbasicpersonal&#39;)=C2=A0<br>=C2=A0 =C2=A0 addLibrary: WAExte=
rnalFileLibrary<br><br></div><div>If I substitute WAFileLibrary it doesn&#3=
9;t blow up, but it doesn&#39;t seem to do=C2=A0anything either.=C2=A0 Putt=
ing a breakpoint in the handle: method for the instance of WAFileLibrary do=
es not stop.=C2=A0 It seems that the WAFileLibrary is not being used.=C2=A0=
 My guess is that it&#39;s only for serving &#39;files&#39; that are in-mem=
ory anyways but I tried it just to see if I could anything work.</div><div>=
<br></div><div>Any ideas?=C2=A0 What the simplest possible way to add exter=
nal file serving to my Seaside app?=C2=A0 I absolutely do not want my users=
 to need Apache or something else.=C2=A0 The current version doesn&#39;t re=
quire it.</div><div><br></div><div>Thanks in advance.</div><div><br></div><=
div>-Carl Gundel, author of Run BASIC</div><div><a href=3D"http://www.runba=
sic.com/" target=3D"_blank">http://www.runbasic.com</a></div></div>________=
_______________________________________<br>seaside mailing list --=C2=A0<a =
href=3D"mailto:[email protected]" target=3D"_blank">seasid=
[email protected]</a><br>To unsubscribe send an email to=C2=A0<a=
 href=3D"mailto:[email protected]" target=3D"_blank"=
>[email protected]</a><br></div></blockquote><br></d=
iv></div></blockquote></div>_______________________________________________=
<br>seaside mailing list --=C2=A0<a href=3D"mailto:[email protected]=
dation.org" target=3D"_blank">[email protected]</a><br>To =
unsubscribe send an email to=C2=A0<a href=3D"mailto:[email protected]=
eakfoundation.org" target=3D"_blank">[email protected]=
rg</a><div></div><div><br></div></div></blockquote></div><div><br></div></d=
iv></div></blockquote></div></div>_________________________________________=
______<br>seaside mailing list --=C2=A0<a href=3D"mailto:[email protected]=
akfoundation.org" target=3D"_blank">[email protected]</a><=
br>To unsubscribe send an email to=C2=A0<a href=3D"mailto:seaside-leave@lis=
ts.squeakfoundation.org" target=3D"_blank">[email protected]=
tion.org</a><br></blockquote></div>________________________________________=
_______<br>seaside mailing list --=C2=A0<a href=3D"mailto:[email protected]=
eakfoundation.org" target=3D"_blank">[email protected]</a>=
<br>To unsubscribe send an email to=C2=A0<a href=3D"mailto:seaside-leave@li=
sts.squeakfoundation.org" target=3D"_blank">[email protected]=
ation.org</a></blockquote></div>
_______________________________________________<br>
seaside mailing list -- <a href=3D"mailto:[email protected]=
g" target=3D"_blank">[email protected]</a><br>
To unsubscribe send an email to <a href=3D"mailto:[email protected]=
kfoundation.org" target=3D"_blank">[email protected]=
</a><br>
</blockquote></div>
_______________________________________________<br>
seaside mailing list -- <a href=3D"mailto:[email protected]=
g" target=3D"_blank">[email protected]</a><br>
To unsubscribe send an email to <a href=3D"mailto:[email protected]=
kfoundation.org" target=3D"_blank">[email protected]=
</a><br>
</blockquote></div></div>

--000000000000e2b2da062f20f5db--


--===============6006389428062392483==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
seaside mailing list -- [email protected]
To unsubscribe send an email to [email protected]

--===============6006389428062392483==--