You can subscribe to this list here.
2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(9) |
Sep
|
Oct
|
Nov
|
Dec
|
---|
From: Decent E. <dec...@gm...> - 2025-08-21 17:08:34
|
Today we moved our production server https://decentespresso.com/ from navi4.99 (built 6 years ago) to release navi5. Wow, it’s quite a bit faster. I’m also curious to see if: 1 - the slowly growing memory footprint of nsd 4.99 is no longer happening 2 - if nsd no longer occasionally crashes Due to much increased load on the server due to AI company spiders, we made the move. We also moved all media file serving to a separate nginx process, just to remove a possible cause, and to reduce the possible causes. Every once in a while with nsd 4.99, we’d see a huge spike in cpu utilization, and couldn’t see anything in the access logs that was a likely cause. I do realize that #1 could be caused by my own code, or poor tracking of ns_cache. The only thing to figure out for us, is the “untrusted” https domains we host (we have a *.decentespresso.com ssl cert) and that looks like a config change, as the warnings indicate. And I believe that ns_cache is now deprecated, so I should look at replacing that. I make heavy use of this: proc content_cache {cachename codetorun} { if {[cookie_get "decent_admin"] != "" || [decentliveserver] == 0} { return [eval $codetorun] } return [ns_cache_eval tempfile $cachename $codetorun] } on pages that use big mysql queries to render. Anything else big in navi5 that I should jump on? -john |
From: Decent E. <dec...@gm...> - 2025-08-15 11:41:04
|
There is now a redirect to sourceforge, so the link you got should also work. I get different links from Google search for “NaviServer Manual” (see below)… probably due to the personalized search… I often test with https://www.startpage.com/ because they are an anonymized version of google’s index. Thus, no personalized search. “naviserver manual” gives hit #2 as the old manual, which I confirm now auto-redirects perfectly. -john |
From: Gustaf N. (sslmail) <ne...@wu...> - 2025-08-15 10:38:29
|
> On 14.08.2025, at 16:45, Decent Espresso <dec...@gm...> wrote: > >> Hi john. >> From where do you have the “manual” link? > I google search for "naviserver manual” and the first hit is to https://naviserver.sourceforge.io/ > > See attached picture. > There is now a redirect to sourceforge, so the link you got should also work. I get different links from Google search for “NaviServer Manual” … probably due to the personalized search… all the best -g |
From: Decent E. <dec...@gm...> - 2025-08-14 14:58:32
|
For many years, I’ve patched nsd/request.c so that http requests that do not have an extension specified, auto-add .adp. If an extension is specified (ie, jpg) the add nothing. And the .adp appended to the url is never shown to the site visitor. This gives me very clean URLs like: http://mydomain.com/user/edit which actually resolve to: http://mydomain.com/user/edit.adp Those are nicely human readable. Most every server-side parsing http servers show the filename extension, and I find it a nice advantage of using nsd that I don’t have to. I’m wondering what cleaner way there is to do this, in a high performance way? I could use ns_register_proc for every page, but then I don’t get the use of ADP pages: ns_register_proc GET /battery/* direct_battery 0 I could register a 404 handler, redirect to the .adp page, and then use javascript to rewrite the URL to remove .adp, but that’s pretty ugly engineering. -john Here’s my original C code for nsd/request.c: ==== /* john buckman added 4/14/06 */ /* check if should add default filename extension of .adp */ /* only if no / on end of url which indicates a directory */ char * dotpos; if (ds2.string[ds2.length - 1] != '/') { /* if not . in the entire url, or if there is a dot before the final / (indicating a . in a directory name, which is ok, then add the default filename extension */ dotpos = strrchr(ds2.string, '.'); if ((dotpos == NULL) || (strchr(dotpos, '/') != NULL)) { Ns_DStringAppend(&ds2, ".adp"); /* Ns_Log(Notice, "added default extension to get '%s'", ds2.string); */ } } /* end john buckman added */ request->url = ns_strdup(ds2.string); === |
From: Decent E. <dec...@gm...> - 2025-08-14 14:52:23
|
The suggestion from the AI is not completely off, we have a parameter “extraheaders”: https://naviserver.sourceforge.io/5.0/nssock/files/nssock.html It is used e.g. in https://github.com/naviserver-project/naviserver/blob/main/nsd-config.tcl#L61 This is great. I couldn’t find the 5.0 manual yesterday, so I didn’t know about it. I used to hack the C source code to do this, in older nsd. -john |
From: Gustaf N. (sslmail) <ne...@wu...> - 2025-08-14 10:22:28
|
The suggestion from the AI is not completely off, we have a parameter “extraheaders”: https://naviserver.sourceforge.io/5.0/nssock/files/nssock.html It is used e.g. in https://github.com/naviserver-project/naviserver/blob/main/nsd-config.tcl#L61 If you want to set it on just for certain requests, a filter is not so bad. -g > On 13.08.2025, at 17:36, Decent Espresso <dec...@gm...> wrote: > > I’m looking for the most efficient way of adding the CORS headers that are needed to serve CSS/json files from a separate server. > > This works: > > — > ns_register_filter preauth GET /css/* add_css_headers > > proc add_css_headers {preauth} { > ns_set put [ns_conn outputheaders] "Access-Control-Allow-Origin" "*" > ns_set put [ns_conn outputheaders] "Access-Control-Allow-Methods" "GET, POST, OPTIONS" > ns_set put [ns_conn outputheaders] "Access-Control-Allow-Headers" "Content-Type, Authorization" > return "filter_ok" > } > — > > > asking an AI for alternatives gives me hallucinations, such as adding this to nsd.conf > > ns_section "ns/server/${server}/module/nsheaders" > ns_param defaultheaders "Access-Control-Allow-Origin: *" > _______________________________________________ > Naviserver-users mailing list > Nav...@li... <mailto:Nav...@li...> > https://lists.sourceforge.net/lists/listinfo/naviserver-users |
From: Gustaf N. (sslmail) <ne...@wu...> - 2025-08-14 10:14:39
|
Hi john. From where do you have the “manual” link? The manual is for 5.0 https://naviserver.sourceforge.io/5.0/manual/toc.html and the reference + manual is https://naviserver.sourceforge.io/5.0/toc.html with cross links to 4.99 The version agnostic link has the “n” (for historic versions). Certainly, we can add a bunch or more links, but up to my knowledge, the link you provided is not mentioned on official pages. If there is one, it is probably easier to fix this. -g > On 13.08.2025, at 17:23, Decent Espresso <dec...@gm...> wrote: > > I’m getting http errors on the manual at > https://naviserver.sourceforge.io/manual/toc.html > > -john > > An error has been encountered in accessing this page. > > 1. Server: naviserver.sourceforge.io <http://naviserver.sourceforge.io/> > 2. URL path: /manual/toc.html > 3. Error notes: NONE > 4. Error type: 404 > 5. Request method: GET > 6. Request query string: NONE > 7. Time: 2025-08-13 14:57:41 UTC (1755097061 <tel:1755097061>) > > Reporting this problem: The problem you have encountered is with a project web site hosted by SourceForge.net <http://sourceforge.net/>. This issue should be reported to the SourceForge.net <http://sourceforge.net/>-hosted project (not to SourceForge.net <http://sourceforge.net/>). > > If this is a severe or recurring/persistent problem, please do one of the following, and provide the error text (numbered 1 through 7, above): > > Contact the project via their designated support resources <https://sourceforge.net/support/prweb-lookup.php?host=naviserver.sourceforge.io&support=1>. > Contact the project administrators of this project via email (see the upper right-hand corner of the Project Summary page <https://sourceforge.net/support/prweb-lookup.php?host=naviserver.sourceforge.io> for their usernames) at use...@us... <http://users.sourceforge.net/> > If you are a maintainer of this web content, please refer to the Site Documentation regarding web services <https://sourceforge.net/p/forge/documentation/Project%20Web%20Services/> for further assistance. > > NOTE: As of 2008-10-23 directory index display has been disabled by default. This option may be re-enabled by the project by placing a file with the name ".htaccess" with this line: > > > > _______________________________________________ > Naviserver-users mailing list > Nav...@li... <mailto:Nav...@li...> > https://lists.sourceforge.net/lists/listinfo/naviserver-users |
From: Decent E. <dec...@gm...> - 2025-08-13 15:36:51
|
I’m looking for the most efficient way of adding the CORS headers that are needed to serve CSS/json files from a separate server. This works: — ns_register_filter preauth GET /css/* add_css_headers proc add_css_headers {preauth} { ns_set put [ns_conn outputheaders] "Access-Control-Allow-Origin" "*" ns_set put [ns_conn outputheaders] "Access-Control-Allow-Methods" "GET, POST, OPTIONS" ns_set put [ns_conn outputheaders] "Access-Control-Allow-Headers" "Content-Type, Authorization" return "filter_ok" } — asking an AI for alternatives gives me hallucinations, such as adding this to nsd.conf ns_section "ns/server/${server}/module/nsheaders" ns_param defaultheaders "Access-Control-Allow-Origin: *" |
From: Decent E. <dec...@gm...> - 2025-08-13 15:23:24
|
I’m getting http errors on the manual at https://naviserver.sourceforge.io/manual/toc.html -john An error has been encountered in accessing this page. 1. *Server:* naviserver.sourceforge.io 2. *URL path:* /manual/toc.html 3. *Error notes:* NONE 4. *Error type:* 404 5. *Request method:* GET 6. *Request query string:* NONE 7. *Time:* 2025-08-13 14:57:41 UTC (1755097061 <1755097061>) *Reporting this problem:* The problem you have encountered is with a project web site hosted by SourceForge.net <http://sourceforge.net/>. This issue should be reported to the SourceForge.net-hosted project (not to SourceForge.net <http://sourceforge.net/>). *If this is a severe or recurring/persistent problem,* please do one of the following, and provide the error text (numbered 1 through 7, above): 1. Contact the project via their designated support resources <https://sourceforge.net/support/prweb-lookup.php?host=naviserver.sourceforge.io&support=1> . 2. Contact the project administrators of this project via email (see the upper right-hand corner of the Project Summary page <https://sourceforge.net/support/prweb-lookup.php?host=naviserver.sourceforge.io> for their usernames) at *user-name*@users.sourceforge.net If you are a maintainer of this web content, please refer to the Site Documentation regarding web services <https://sourceforge.net/p/forge/documentation/Project%20Web%20Services/> for further assistance. NOTE: As of 2008-10-23 directory index display has been disabled by default. This option may be re-enabled by the project by placing a file with the name ".htaccess" with this line: |
From: Gustaf N. (sslmail) <ne...@wu...> - 2025-07-19 06:48:52
|
Hi John, > There were two rumors of a Tcl native OATH2 implementation. > > 1) In OpenACS, I think Gustav mentioned this, but googling I only find > a 2023 conversation > https://openacs.org/forums/message-view?message_id=5741773 > > 2) Antonio (I think) mentioned that someone in Vienna has done this, > but they have not replied to emails asking to open source it. well, i try to recap: The first oauth2 (client) authentication was implemented by Sabine Stransky (she was one of the participants in Bologna) for a customer for using it with Microsoft (Azure). Later, this was extended by KM (mostly Michael Aram from KM, who participated in the Vienna OpenACS conferences) for using it mostly with LTI. KM agreed several years ago to release these parts it into OpenACS, but this was based on several local modifications at KM). At that time, i picked up the code, modernized and generalized it, and made an integration with the standard OpenACS. In this process, i support for using GitHub as an identity provider, by not only depending on MSoft (MSoft is not literally following the OAuth2 standard recommendations, one has to interprete the claims, there are two versions out, etc), Look here what’s in OpenACS; https://github.com/openacs/xooauth/blob/main/tcl/rest-procs.tcl https://github.com/openacs/xooauth/blob/main/tcl/authorize-procs.tcl https://github.com/openacs/xooauth/blob/main/tcl/ms-procs.tcl https://github.com/openacs/xooauth/blob/main/tcl/canvas-procs.tcl The MS part provides in addition to authorization a subset of the MS Grah interface https://openacs.org/xowiki/msgraph There is a similar code for accessing the Canvas interface in the canvas-procs. The authorization part (login/logout) is in the class “Authorize” class. The MS authorization does the same towards the end of the ms-procs. When using GitHub as identity provider, a subclass of the Authorize class is used, which handles the GitHub specific part (look into authorize-procs towards the end). This code is used in production the Vienna University of Economics since a few years. I was planning to provide a pure NaviServer OAUTH2 example for using GitHub as identity provider with the new authorization chains for the conference, but time was running out, I could only provide the LDAP interface (see README file), since there was also much cleanup required in nsldap https://github.com/naviserver-project/nsldap to provide the example will cost me a couple of days to load the necessary parts into my brain, factor our the relevant parts from OpenACS, and to provide an interface that can be used with OpenACS as well… all the best -gustaf |
From: Decent E. <dec...@gm...> - 2025-07-16 08:30:05
|
Thanks for making this group, for discussing us using naviserver, as opposed to development. My hope is that we’ll all post here things that we need to do, before we do them. Ideally, then, we can help each other by giving advice and/or sharing code. -- > PS: The videos from the conference are already online (many thanks to Antonio!), they need still linkage on the conference site. https://learn.wu.ac.at/eurotcl2025/ Wow, FAST! I put together an improved version of my talk, using a front facing camera, and using Adobe’s audio AI to much improve the audio quality https://www.youtube.com/watch?v=p7rX0OVCeLo The audio makes me sound slightly slurry and drunk, but totally removes the room echo which makes understandability difficult. I’m happy to share here any of my Tcl code for doing things that I presented. — There were two rumors of a Tcl native OATH2 implementation. 1) In OpenACS, I think Gustav mentioned this, but googling I only find a 2023 conversation https://openacs.org/forums/message-view?message_id=5741773 2) Antonio (I think) mentioned that someone in Vienna has done this, but they have not replied to emails asking to open source it. — |