Re: Checking in

Carl Gundel <[email protected]> Thu, 27 Feb 2025 00:05:53 -0500
Newsgroups gmane.comp.lang.smalltalk.squeak.seaside
Message-ID <CAPYvR9c-DFLL6pYXYjG8HOt1WN6Wu70P4ZVu_mtF-v=oQiiZNA@mail.gmail.com>
--===============5262006628875787582==
Content-Type: multipart/alternative; boundary="000000000000b9a0f3062f18a532"

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

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 file
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 that 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 additional
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]> w=
rote:

> 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 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 6:05=E2=80=AFAM Carl Gundel <[email protected]=
om>
> 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@mai=
l.com>
>> wrote:
>>
>>> Hi Carl,
>>>
>>> From memory, you shouldn=E2=80=99t need to call updateRoot: on the libr=
aries - 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 the
>>> 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]> wrot=
e:
>>>
>>> Well, thanks for your help but no luck.   The trouble is that the
>>> WAExternalFileLibrary seems to be broken?  I dunno.  It throws an excep=
tion
>>> 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 files =
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]> wr=
ote:
>>>
>>>> Hi Carl,
>>>>
>>>> Disclaimer: I=E2=80=99ve never used a WAExternalFileLibrary so the fol=
lowing 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 the
>>>> 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]> wrot=
e:
>>>>
>>>> I'm trying a few things trying to make my application serve static
>>>> files.  Run BASIC dynamically generates PNG files that are rendered in=
to
>>>> the web page, but I cannot figure out how to make it work after hours =
of
>>>> head banging.  The old version of Seaside allows me to add
>>>> WAExternalFileLibrary in the configuration page.  But I cannot do this=
 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 seem
>>>> to do anything either.  Putting a breakpoint in the handle: method for=
 the
>>>> instance of WAFileLibrary does not stop.  It seems that the WAFileLibr=
ary
>>>> is not being used.  My guess is that it's only for serving 'files' tha=
t are
>>>> in-memory anyways but I tried it just to see if I could anything work.
>>>>
>>>> Any ideas?  What the simplest possible way to add external file servin=
g
>>>> to my Seaside app?  I absolutely do not want my users to need Apache o=
r
>>>> 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]=
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]

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

<div dir=3D"ltr"><div class=3D"gmail_attr">Thanks Otto.=C2=A0 I tried your =
suggestion, and so the server starts and the &#39;culture&#39; entry appear=
s 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, an=
d placing a breakpoint into the handleFiltered: method (below) doesn&#39;t =
stop there when I try to load a file in my web browser with <a href=3D"http=
://localhost:7777/hang.png">http://localhost:7777/hang.png</a> so it seems =
that the WaExternalFileLibrary object is not getting its turn to do somethi=
ng with the request.</div><div class=3D"gmail_attr"><p><span style=3D"font-=
size:12px">WaExternalFileLibrary&gt;&gt;handleFiltered:=C2=A0</span><span s=
tyle=3D"font-size:12px">aRequestContext</span></p><p><span style=3D"font-si=
ze:12px">=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-size:12px">[</s=
pan><span style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12=
px">self {breakPoint here}</span><span style=3D"font-size:12px">=C2=A0</spa=
n><span style=3D"font-size:12px">processContext:</span><span style=3D"font-=
size:12px">=C2=A0</span><span style=3D"font-size:12px">aRequestContext</spa=
n><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></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><sp=
an 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"fon=
t-size:12px">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span s=
tyle=3D"font-size:12px">do:</span><span style=3D"font-size:12px">=C2=A0</sp=
an><span style=3D"font-size:12px">[</span><span style=3D"font-size:12px">=
=C2=A0</span><span style=3D"font-size:12px">:</span><span style=3D"font-siz=
e:12px">error</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></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">aReq=
uestContext</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">interna=
lError:</span><span style=3D"font-size:12px">=C2=A0</span><span style=3D"fo=
nt-size:12px">error</span><span style=3D"font-size:12px">;</span></p><p><sp=
an 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"fo=
nt-size:12px">respond</span><span style=3D"font-size:12px">=C2=A0</span><sp=
an style=3D"font-size:12px">]</span></p></div><div class=3D"gmail_attr">I r=
ealize 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 programming system for hobbyis=
ts, and so not requiring the web server is an important feature.</div><div =
class=3D"gmail_attr"><br></div><div class=3D"gmail_attr">I had no difficult=
y making this work in Seaside 2.8, and it surprises me that it is hard to d=
o 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 configu=
ration?=C2=A0 Someover on Discord said that the right class to use is=C2=A0=
<span style=3D"font-size:12px">WAFileMetadataLibrary?</span>=C2=A0;-)</div>=
<div class=3D"gmail_attr"><br></div><div class=3D"gmail_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 Run BASIC</div><div class=
=3D"gmail_attr"><a href=3D"http://www.runbasic.com">http://www.runbasic.com=
</a></div><div class=3D"gmail_attr"><br></div><div dir=3D"ltr" class=3D"gma=
il_attr">On Wed, Feb 26, 2025 at 11:15=E2=80=AFPM Otto Behrens &lt;<a href=
=3D"mailto:[email protected]">[email protected]</a>&gt; wrote:<br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>Hi Car=
l,</div><div><br></div><div>We no longer serve files in this way because we=
 use nginx in front of the seaside server. From what I can see something li=
ke this could work as you would be using the current dispatcher.</div><div>=
<br></div><div>WADispatcher default register: fileSystem at: &#39;culture&#=
39;<br></div><div><br></div><div>HTH</div><div><div dir=3D"ltr" class=3D"gm=
ail_signature"><div 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;c=
olor: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-family:Calibri,sans-serif;margin:0px;padding:0px"><span s=
tyle=3D"font-size:14px;font-weight:300;margin:0px;padding:0px">+27 82 809 2=
375</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" heigh=
t=3D"38" alt=3D"FINWorks" style=3D"display: block; border: 0px; width: 200p=
x; height: 38px; margin: 0px; padding: 0px;"></td></tr></tbody></table><tab=
le 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" cel=
lspacing=3D"0" border=3D"0" style=3D"color:rgb(0,0,0);font-family:Times;fon=
t-size:medium;border-bottom:1px solid rgb(200,28,36)"><tbody><tr><td height=
=3D"15"></td></tr></tbody></table><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 height=3D"20"></td></tr></tbody></table><tab=
le 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"top" style=3D"display:inline-block"><a href=3D"http://za.=
linkedin.com/in/waltherbehrens" target=3D"_blank"><img src=3D"https://www.f=
inworks.biz/signature/finworks-linkedin-logo.png" width=3D"15" height=3D"15=
" alt=3D"FINWorks" style=3D"display: inline-block; border: 0px; width: 15px=
; height: 15px; margin-top: 1.5px; padding: 0px;"></a></td><td width=3D"250=
" valign=3D"top" style=3D"display:inline-block"><a href=3D"http://www.finwo=
rks.biz/" target=3D"_blank" style=3D"color:rgb(200,28,36);font-family:Calib=
ri,sans-serif;margin-left:10px;margin-top:0px;padding-top:0px;font-size:11p=
t;display:inline-block">www.finworks.biz</a></td></tr></tbody></table><tabl=
e width=3D"600" cellpadding=3D"0" cellspacing=3D"0" border=3D"0" style=3D"c=
olor: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" ce=
llspacing=3D"0" border=3D"0" style=3D"color:rgb(0,0,0);font-family:Times;fo=
nt-size:medium"><tbody><tr><td><p style=3D"font-size:10px;color:rgb(146,148=
,151);font-family:Calibri,sans-serif;text-align:justify">Disclaimer &amp; C=
onfidentiality Note: This email is intended solely for the use of the indiv=
idual or entity named above as it may contain information that is confident=
ial and privileged. If you are not the intended recipient, be advised that =
any dissemination, distribution or copying of this email is strictly prohib=
ited. FINWorks cannot be held liable by any person other than the addressee=
 in respect of any opinions, conclusions, advice or other information conta=
ined 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"gmai=
l_attr">On Thu, Feb 27, 2025 at 6:05=E2=80=AFAM Carl Gundel &lt;<a href=3D"=
mailto:[email protected]" 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"font-size:12px">=C2=A0 fileSystem</span><span style=3D"f=
ont-size:12px">=C2=A0</span><span style=3D"font-size:12px">:=3D</span><span=
 style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">WAExt=
ernalFileLibrary</span><span style=3D"font-size:12px">=C2=A0</span><span st=
yle=3D"font-size:12px">new</span><span style=3D"font-size:12px">.</span></p=
><p><span style=3D"font-size:12px">=C2=A0 WADispatcher</span><span style=3D=
"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">new</span><spa=
n style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">regi=
ster:</span><span style=3D"font-size:12px">=C2=A0</span><span style=3D"font=
-size:12px">fileSystem</span><span style=3D"font-size:12px">=C2=A0</span><s=
pan style=3D"font-size:12px">at:</span><span style=3D"font-size:12px">=C2=
=A0</span><span style=3D"font-size:12px">&#39;</span><span style=3D"font-si=
ze:12px">culture</span><span style=3D"font-size:12px">&#39;</span><span sty=
le=3D"font-size:12px">.</span></p><p><span style=3D"font-size:12px">=C2=A0 =
fileSystem</span><span style=3D"font-size:12px">=C2=A0</span><span style=3D=
"font-size:12px">preferenceAt:</span><span style=3D"font-size:12px">=C2=A0<=
/span><span style=3D"font-size:12px">#directory</span><span style=3D"font-s=
ize:12px">=C2=A0</span><span style=3D"font-size:12px">put:</span><span styl=
e=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">&#39;</spa=
n><span style=3D"font-size:12px">c:\rb</span><span style=3D"font-size:12px"=
>dev\public\</span><span style=3D"font-size:12px">&#39;</span></p><p>As soo=
n as I do this, the Seaside 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-weigh=
t:normal;line-height:1.25em;margin-bottom:16px;margin-top:0px;font-family:&=
quot;Segoe UI&quot;,Tahoma,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;,Tahoma,sans-serif;font-size:15px"><strong>desktop-m4pvv3o</=
strong>=C2=A0refused to connect.</p></div><div><p style=3D"display:inline;c=
olor:rgb(95,99,104);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,1=
04);font-family:&quot;Segoe UI&quot;,Tahoma,sans-serif;font-size:15px">So, =
maybe there is something else to do?</p></div><div><p style=3D"display:inli=
ne;color:rgb(95,99,104);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:[email protected]" target=3D"_blank">jupiter.jones@ma=
il.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"m=
argin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left=
:1ex"><div>Hi Carl,<div><br></div><div>From memory, you shouldn=E2=80=99t n=
eed 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 installe=
d it to have a look and my educated guess was totally wrong :)</div><div><b=
r></div><div>From=C2=A0WAExternalFileLibraryTest-#setUp</div><div><br></div=
><div><div>fileSystem :=3D WAExternalFileLibrary new.</div><div>WADispatche=
r new register: fileSystem at: =E2=80=98culture&#39;</div><div><br></div><d=
iv>I guess you might be able to set the directory to serve files from the U=
I, 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: #direc=
tory put: =E2=80=98/path/to/files=E2=80=99</div><div><br></div><div>If you =
have no luck, I should have time to give this a go tonight or tomorrow.</di=
v><div><br><blockquote type=3D"cite"><div>On 24 Feb 2025, at 10:47=E2=80=AF=
am, Carl G &lt;<a href=3D"mailto:[email protected]" target=3D"_blank">ba=
[email protected]</a>&gt; wrote:</div><br><div><div dir=3D"ltr">Well, than=
ks for your help but no luck.=C2=A0 =C2=A0The trouble is that the WAExterna=
lFileLibrary seems to be broken?=C2=A0 I dunno.=C2=A0 It throws an exceptio=
n in this method:<br><br><p><span style=3D"font-size:12px">SeasideRenderLoo=
pContinuation&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 style=3D"font-size:12px">|</span><span style=3D"font-siz=
e:12px">=C2=A0</span><span style=3D"font-size:12px">charSet</span><span sty=
le=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 s=
tyle=3D"font-size:12px">charSet</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">self</span><span style=3D"=
font-size:12px">=C2=A0</span><span style=3D"font-size:12px">application</sp=
an><span style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12p=
x">contentType</span><span style=3D"font-size:12px">=C2=A0</span><span styl=
e=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 s=
tyle=3D"font-size:12px">charSet</span><span style=3D"font-size:12px">=C2=A0=
</span><span style=3D"font-size:12px">isNil</span><span style=3D"font-size:=
12px">=C2=A0</span><span style=3D"font-size:12px">ifFalse:</span><span styl=
e=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=C2=A0=C2=A0=C2=
=A0=C2=A0</span><span style=3D"font-size:12px">anHtmlRoot</span><span style=
=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">meta</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"f=
ont-size:12px">charSet</span><span style=3D"font-size:12px">=C2=A0</span><s=
pan style=3D"font-size:12px">]</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:12px">=
=C2=A0</span><span style=3D"font-size:12px">beHtml5</span><span style=3D"fo=
nt-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:12px">=C2=A0</span><span style=3D"font-size:12px">title:</spa=
n><span style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px=
">&#39;</span><span style=3D"font-size:12px">Seaside</span><span style=3D"f=
ont-size:12px">&#39;</span><span style=3D"font-size:12px">.</span></p><p><s=
pan 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"font-size:12px">=C2=A0</span><spa=
n style=3D"font-size:12px">application</span><span style=3D"font-size:12px"=
>=C2=A0</span><span 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:1=
2px">do:</span><span style=3D"font-size:12px">=C2=A0</span><span style=3D"f=
ont-size:12px">[</span><span style=3D"font-size:12px">=C2=A0</span><span st=
yle=3D"font-size:12px">:</span><span style=3D"font-size:12px">each</span><s=
pan 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"font-size:12px">updateRoot:</span><span style=3D"font-size:1=
2px">=C2=A0</span><span style=3D"font-size:12px">anHtmlRoot</span><span sty=
le=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">]</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">self</span><=
span style=3D"font-size:12px">=C2=A0</span><span style=3D"font-size:12px">s=
ession</span><span style=3D"font-size:12px">=C2=A0</span><span style=3D"fon=
t-size:12px">updateRoot:</span><span style=3D"font-size:12px">=C2=A0</span>=
<span style=3D"font-size:12px">anHtmlRoot</span></p><p><span style=3D"font-=
size:12px">It DNUs when it tried to send #default to the library.=C2=A0 I w=
onder if I can make my own subclass of WAFileLibrary and extend it to serve=
 files from a disk folder.</span></p><p>It&#39;s just puzzling that there i=
sn&#39;t a ready made way to do this.=C2=A0 After WAExternalFileLibrary doe=
s work in Seaside 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 r=
ebooted?</p><p>-Carl</p></div><br><div class=3D"gmail_quote"><div dir=3D"lt=
r" class=3D"gmail_attr">On Sun, Feb 23, 2025 at 5:23=E2=80=AFPM &lt;<a href=
=3D"mailto:[email protected]" target=3D"_blank">terra.australis@ic=
loud.com</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-le=
ft:1ex"><div>Hi Carl,<div><br></div><div>Disclaimer: I=E2=80=99ve never use=
d a=C2=A0WAExternalFileLibrary so the following is an educated guess, but h=
opefully gives you enough info.<br><div><br></div><div>I typically configur=
e these kind of things on creation of the application with something like a=
 #configureApplication: method on the class side of my root component...</d=
iv><div><br></div><div><div>configureApplication: anApplication</div><div>a=
nApplication preferenceAt: #sessionClass put: MySession.</div><div>anApplic=
ation configuration</div><div>addParent: MySystemConfiguration instance.</d=
iv><div>anApplication</div><div>addLibrary: WAExternalFileLibrary;</div><di=
v>addLibrary: JQDevelopmentLibrary.</div><div>anApplication</div><div>prefe=
renceAt: #directory 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 a=
pp=E2=80=A6</div><div><br></div><div><div>register</div><div>self configure=
Application: (WAAdmin register: self asApplicationAt: =E2=80=98MyAppName&#3=
9;)</div></div><div><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, Carl G &lt;<a href=3D"mailto:[email protected]" target=3D=
"_blank">[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 fil=
es.=C2=A0 Run BASIC 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 WAExtern=
alFileLibrary in the configuration page.=C2=A0 But I cannot do this with Se=
aside 3.5.1 on VW for some reason.=C2=A0 If I try to do the following, I ge=
t a debugger when I launch the app.<div><br></div><div>=C2=A0 (WADispatcher=
 default handlers at: &#39;runbasicpersonal&#39;)=C2=A0<br>=C2=A0 =C2=A0 ad=
dLibrary: WAExternalFileLibrary<br><br></div><div>If I substitute WAFileLib=
rary it doesn&#39;t blow up, but it doesn&#39;t seem to do=C2=A0anything ei=
ther.=C2=A0 Putting a breakpoint in the handle: method for the instance of =
WAFileLibrary does not stop.=C2=A0 It seems that the WAFileLibrary is not b=
eing used.=C2=A0 My guess is that it&#39;s only for serving &#39;files&#39;=
 that are in-memory 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 external file serving to my Seaside app?=C2=A0 I absolutely do n=
ot want my users to need Apache or something else.=C2=A0 The current versio=
n doesn&#39;t require 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.runbasic.com/" target=3D"_blank">http://www.runbasic.com</a></di=
v></div>_______________________________________________<br>seaside mailing =
list --=C2=A0<a href=3D"mailto:[email protected]" target=
=3D"_blank">[email protected]</a><br>To unsubscribe send a=
n email to=C2=A0<a href=3D"mailto:[email protected]"=
 target=3D"_blank">[email protected]</a><br></div></=
blockquote><br></div></div></blockquote></div>_____________________________=
__________________<br>seaside mailing list --=C2=A0<a href=3D"mailto:seasid=
[email protected]" target=3D"_blank">[email protected]=
ion.org</a><br>To unsubscribe send an email to=C2=A0<a href=3D"mailto:seasi=
[email protected]" target=3D"_blank">seaside-leave@lists.=
squeakfoundation.org</a><div></div><div><br></div></div></blockquote></div>=
<div><br></div></div></div></blockquote></div></div>_______________________=
________________________<br>seaside mailing list --=C2=A0<a href=3D"mailto:=
[email protected]" target=3D"_blank">[email protected]=
oundation.org</a><br>To unsubscribe send an email to=C2=A0<a href=3D"mailto=
:[email protected]" target=3D"_blank">seaside-leave@=
lists.squeakfoundation.org</a><br></blockquote></div>______________________=
_________________________<br>seaside mailing list --=C2=A0<a href=3D"mailto=
:[email protected]" target=3D"_blank">[email protected]=
foundation.org</a><br>To unsubscribe send an email to=C2=A0<a href=3D"mailt=
o:[email protected]" target=3D"_blank">seaside-leave=
@lists.squeakfoundation.org</a></blockquote></div>

--000000000000b9a0f3062f18a532--

--===============5262006628875787582==
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]

--===============5262006628875787582==--