Page 4 of 5

Re: Please fix this annoyingly slow forum

Posted: Wed Mar 04, 2026 10:23 pm
by ChrisR
I don't know what a BBS is either!
For me, the forum reminds me a little of first-generation 56k modems, hoping that Fred & Co will find a solution.
It's impossible to live with this right now, and unfortunately it's not going to get any better with these damn AI chatbots.

Image

Image

Re: Please fix this annoyingly slow forum

Posted: Thu Mar 05, 2026 6:40 am
by jacdelad
"I AM IA"...AI needs to fix itself first. :wink:

Re: Please fix this annoyingly slow forum

Posted: Thu Mar 05, 2026 7:15 am
by idle
what ever they're doing there's only been around 350 users online and there still is but maybe they've stopped crawling for a moment as it's speedy again.

Re: Please fix this annoyingly slow forum

Posted: Thu Mar 05, 2026 8:08 am
by STARGÅTE
Indeed, it is fast now.

Probably, the page loading was also too slow for the AI bots. Now they ask another chat bots, what goes up in the Pure Basic forum. :P

Welcome, to the AI slop age.

Re: Please fix this annoyingly slow forum

Posted: Thu Mar 05, 2026 3:24 pm
by minimy
STARGÅTE wrote: Thu Mar 05, 2026 8:08 am Indeed, it is fast now.

Probably, the page loading was also too slow for the AI bots. Now they ask another chat bots, what goes up in the Pure Basic forum. :P

Welcome, to the AI slop age.
:lol:

A trick that I use when programming websites is to leave some fields or elements hidden.
If this is accessed, it is an AI/bot. That greatly limits traffic.

Re: Please fix this annoyingly slow forum

Posted: Thu Mar 05, 2026 3:42 pm
by threedslider
What is happening ? :shock: Fast now and work well too. Kudos to Fred and Team :mrgreen:

Re: Please fix this annoyingly slow forum

Posted: Thu Mar 05, 2026 4:11 pm
by plouf
minimy wrote: Thu Mar 05, 2026 3:24 pm
A trick that I use when programming websites is to leave some fields or elements hidden.
If this is accessed, it is an AI/bot. That greatly limits traffic.
However as said before but others
You must find the golden ratio allowing some(all?) AI bots

As with its accumalated knowledegse learn and make PB better. Its a defacto requirement for the future

Re: Please fix this annoyingly slow forum

Posted: Thu Mar 05, 2026 8:06 pm
by NicTheQuick
threedslider wrote: Thu Mar 05, 2026 3:42 pm What is happening ? :shock: Fast now and work well too. Kudos to Fred and Team :mrgreen:
That's just luck. Give it a day or two and it starts over again like the last few weeks.

Re: Please fix this annoyingly slow forum

Posted: Fri Mar 06, 2026 12:32 am
by idle
Current experience with llm suggests a bit of parasitic leaching is beneficial.
I'm feeling a bit redundant after latest use of llm and I've got to hand it to Claude it's more or less nailed it this morning adding structures and procedures to pbscript interpreter.

Re: Please fix this annoyingly slow forum

Posted: Fri Mar 06, 2026 5:35 am
by skywalk
I absolutely agree the ai bots will pay off later with better modeling and code synthesis.
But, they are bots with unlimited time to browse. Each website of interest must determine human or bot and limit the bot scraping with redirects and timeouts.
Googling a solution fo phpbb seems a plenty?

Re: Please fix this annoyingly slow forum

Posted: Fri Mar 06, 2026 10:04 am
by IceSoft
@fred can this thread closed?

Re: Please fix this annoyingly slow forum

Posted: Fri Mar 06, 2026 10:08 am
by NicTheQuick
IceSoft wrote: Fri Mar 06, 2026 10:04 am @fred can this thread closed?
Why? Just let it open or I create the next thread if it happens again.

Re: Please fix this annoyingly slow forum

Posted: Fri Mar 06, 2026 10:34 am
by IceSoft
NicTheQuick wrote: Fri Mar 06, 2026 10:08 am
IceSoft wrote: Fri Mar 06, 2026 10:04 am @fred can this thread closed?
Why? Just let it open or I create the next thread if it happens again.
As long as it's open, I think it's the same thing.
Better to have a new one if it's recognized again. What do you mean?

Re: Please fix this annoyingly slow forum

Posted: Fri Mar 06, 2026 4:17 pm
by Olli
The forum was in such a mode that I was bored. I coded anything stupid. Happily, Fred has decided a limit to 600 lines, that interrupted me !

Code: Select all

Global sw, sh, countDown = 300, life = 3, score = 0, coinQty = 0, trial = 1
Global Dim key.i(255)

Procedure keyb(i.i)
   Protected r, ks = KeyboardPushed(i)
   If ks And Not key(i)
      r = 1
   EndIf
   key(i) = ks
   ProcedureReturn r
EndProcedure

Procedure c31(r, g, b)
   ProcedureReturn RGB(r * 255, g * 255, b * 255)
EndProcedure

Procedure c41(a, r, g, b)
   ProcedureReturn RGBA(r * 255, g * 255, b * 255, a * 255)
EndProcedure

InitSprite()
InitKeyboard()
ExamineDesktops()
sw = DesktopWidth(0)
sh = DesktopHeight(0)
OpenScreen(sw, sh, 32, "", #PB_Screen_SmartSynchronization, DesktopFrequency(0) )
CreateSprite(0, 256, 128)
TransformSprite(0, 0, 0, sw, 0, sw, sh, 0, sh)
Global Dim p.L(3, 3)   ; 4 palettes * 4 attributs * 32 bits   =             1Kbits =      128-bytes palette (4 palettes)
Global Dim s.u(63, 7)  ; 256 * 8 * 16 bits =             32Kbits =     1-kilobytes sprite (256 sprites)
Global Dim sp(255)     ;                                               2 KB
Global Dim c.a(31, 15) ; 32 columns * 16 rows * 8 bits = 4Kbits text = 512-bytes text

For palette = 0 To 3
   p(palette, 0) = RGBA(0, 0, 0, 0)
   For color = 1 To 3
      p(palette, color) = RGBA(Random(255), Random(255), Random(255), 255)
   Next
Next
For char = 0 To 63
   For charLine = 0 To 7
      s(char, charLine) = Random($FFFF)
   Next
Next

;- start

p(0, 0) = RGBA(%00000000, %00000000, %00000000, %11111111) ; décor arrière (opaque) 4 niveaux de bleus
p(0, 1) = RGBA(%00000000, %00000000, %01010101, %11111111)
p(0, 2) = RGBA(%00000000, %00000000, %10101010, %11111111)
p(0, 3) = RGBA(%00000000, %01010101, %11111111, %11111111)

p(1, 0) = RGBA(%00000000, %00000000, %00000000, %00000000) ; allié (semi opaque) transparent
p(1, 1) = RGBA(%00000000, %00000000, %01010101, %11111111) ;                     bleu
p(1, 2) = RGBA(%11111111, %00000000, %00000000, %11111111) ;                     rouge
p(1, 3) = RGBA(%11111111, %10101010, %01010101, %11111111) ;                     chair

p(2, 0) = RGBA(%00000000, %00000000, %00000000, %00000000) ; décor avant transp 
p(2, 1) = RGBA(%00000000, %01010101, %00000000, %11111111) ;             noir
p(2, 2) = RGBA(%00000000, %11111111, %00000000, %11111111) ;             vert
p(2, 3) = RGBA(%11111111, %11111111, %11111111, %11111111) ;             blanc

p(3, 0) = RGBA(%00000000, %00000000, %00000000, %00000000) ; ennemi transparent
p(3, 1) = RGBA(%01010101, %00000000, %00000000, %11111111) ;        rouge sombre
p(3, 2) = RGBA(%11111111, %01010101, %00000000, %11111111) ;        orange
p(3, 3) = RGBA(%11111111, %11111111, %00000000, %11111111) ;        jaune

For i = 0 To 7
   s(0, i) = 0
Next
s(1, 0) = %0011111111111100
s(1, 1) = %1000111111110010
s(1, 2) = %1010001111001010
s(1, 3) = %1010100000101010
s(1, 4) = %1010100000101010
s(1, 5) = %1010000101001010
s(1, 6) = %1000010101010010
s(1, 7) = %0001010101010100

s(2, 0) = %0101010100000000
s(2, 1) = %1111111101010101
s(2, 2) = %1110101011111111
s(2, 3) = %1110101010101010
s(2, 4) = %1010101010101010
s(2, 5) = %1010101010101010
s(2, 6) = %1010101001010101
s(2, 7) = %0101010100000000

s(3, 0) = %0000000000000000
s(3, 1) = %0101010101010101
s(3, 2) = %1111111111111111
s(3, 3) = %1010101010101010
s(3, 4) = %1010101010101010
s(3, 5) = %1010101010101010
s(3, 6) = %0101010101010101
s(3, 7) = %0000000000000000

s(4, 0) = %0000000101010100
s(4, 1) = %0101011111111101
s(4, 2) = %1111111010101011
s(4, 3) = %1010101010101010
s(4, 4) = %1010101010101010
s(4, 5) = %1010101010101010
s(4, 6) = %0101011010101001
s(4, 7) = %0000000101010100

s(5, 0) = %0000000001010101
s(5, 1) = %0101010111111111
s(5, 2) = %1111111110101010
s(5, 3) = %1010101010101010
s(5, 4) = %1010101010101001
s(5, 5) = %1010101010101001
s(5, 6) = %0101010110101001
s(5, 7) = %0000000001010101

s(6, 0) = %0011111111110000
s(6, 1) = %1111000000111100
s(6, 2) = %1111000000111100
s(6, 3) = %0011000000110000
s(6, 4) = %1111000000111100
s(6, 5) = %1111000000111100
s(6, 6) = %0011111111110000
s(6, 7) = %0000000000000000

s(7, 0) = %0000000000110000
s(7, 1) = %0000000000111100
s(7, 2) = %0000000000111100
s(7, 3) = %0000000000110000
s(7, 4) = %0000000000111100
s(7, 5) = %0000000000111100
s(7, 6) = %0000000000110000
s(7, 7) = %0000000000000000

s(8, 0) = %0011111111110000
s(8, 1) = %0000000000111100
s(8, 2) = %0000000000111100
s(8, 3) = %0011111111110000
s(8, 4) = %1111000000000000
s(8, 5) = %1111000000000000
s(8, 6) = %0011111111110000
s(8, 7) = %0000000000000000

s(9, 0) = %0011111111110000
s(9, 1) = %0000000000111100
s(9, 2) = %0000000000111100
s(9, 3) = %0011111111110000
s(9, 4) = %0000000000111100
s(9, 5) = %0000000000111100
s(9, 6) = %0011111111110000
s(9, 7) = %0000000000000000

s(10, 0) = %0011000000110000
s(10, 1) = %1111000000111100
s(10, 2) = %1111000000111100
s(10, 3) = %0011111111110000
s(10, 4) = %0000000000111100
s(10, 5) = %0000000000111100
s(10, 6) = %0000000000110000
s(10, 7) = %0000000000000000

s(11, 0) = %0011111111110000
s(11, 1) = %1111000000000000
s(11, 2) = %1111000000000000
s(11, 3) = %0011111111110000
s(11, 4) = %0000000000111100
s(11, 5) = %0000000000111100
s(11, 6) = %0011111111110000
s(11, 7) = %0000000000000000

s(12, 0) = %0011111111110000
s(12, 1) = %1111000000000000
s(12, 2) = %1111000000000000
s(12, 3) = %0011111111110000
s(12, 4) = %1111000000111100
s(12, 5) = %1111000000111100
s(12, 6) = %0011111111110000
s(12, 7) = %0000000000000000

s(13, 0) = %0011111111110000
s(13, 1) = %0000000000111100
s(13, 2) = %0000000000111100
s(13, 3) = %0000000000110000
s(13, 4) = %0000000000111100
s(13, 5) = %0000000000111100
s(13, 6) = %0000000000110000
s(13, 7) = %0000000000000000

s(14, 0) = %0011111111110000
s(14, 1) = %1111000000111100
s(14, 2) = %1111000000111100
s(14, 3) = %0011111111110000
s(14, 4) = %1111000000111100
s(14, 5) = %1111000000111100
s(14, 6) = %0011111111110000
s(14, 7) = %0000000000000000

s(15, 0) = %0011111111110000
s(15, 1) = %1111000000111100
s(15, 2) = %1111000000111100
s(15, 3) = %0011111111110000
s(15, 4) = %0000000000111100
s(15, 5) = %0000000000111100
s(15, 6) = %0011111111110000
s(15, 7) = %0000000000000000

s(16, 0) = %0000101010000000
s(16, 1) = %0010101010101000
s(16, 2) = %0011111101111100
s(16, 3) = %0000111111110000
s(16, 4) = %0000101010101011
s(16, 5) = %0011101010100010
s(16, 6) = %0000010101010110
s(16, 7) = %0000101000000000

s(17, 0) = %0000101010000000
s(17, 1) = %0010101010101000
s(17, 2) = %0011111101111100
s(17, 3) = %0000111111110000
s(17, 4) = %0000101010100000
s(17, 5) = %0000101011100000
s(17, 6) = %0000010101000000
s(17, 7) = %0000001010000000

s(18, 0) = %0000001010100000
s(18, 1) = %0010101010101000
s(18, 2) = %0011110111111100
s(18, 3) = %0000111111110000
s(18, 4) = %1110101010100000
s(18, 5) = %1000101010100000
s(18, 6) = %1001010101010000
s(18, 7) = %0000000010100000

s(19, 0) = %0000001010100000
s(19, 1) = %0010101010101000
s(19, 2) = %0011110111111100
s(19, 3) = %0000111111110000
s(19, 4) = %0000101010100000
s(19, 5) = %0000101110100000
s(19, 6) = %0000000101010000
s(19, 7) = %0000001010000000

s(20, 0) = %0000000101010000
s(20, 1) = %0001111111100100
s(20, 2) = %0011101010101000
s(20, 3) = %0111101111011101
s(20, 4) = %0111101110011101
s(20, 5) = %0111100101111000
s(20, 6) = %0001101111100100
s(20, 7) = %0000000101000000

s(21, 0) = %0000000000000000
s(21, 1) = %0000011111010000
s(21, 2) = %0000111010110000
s(21, 3) = %0000111111110000
s(21, 4) = %0000111110110000
s(21, 5) = %0000110101110000
s(21, 6) = %0000011111010000
s(21, 7) = %0000000101000000

s(22, 0) = %0000000000000000
s(22, 1) = %0000001010000000
s(22, 2) = %0000001111000000
s(22, 3) = %0000001111000000
s(22, 4) = %0000001111000000
s(22, 5) = %0000001111000000
s(22, 6) = %0000001010000000
s(22, 7) = %0000000000000000

s(23, 0) = %0000000000000000
s(23, 1) = %0000011111010000
s(23, 2) = %0000111010110000
s(23, 3) = %0000111010110000
s(23, 4) = %0000111010110000
s(23, 5) = %0000111001110000
s(23, 6) = %0000011111010000
s(23, 7) = %0000000101000000

s(24, 0) = %1010101010101010
s(24, 1) = %1000101111100010
s(24, 2) = %1010111010111010
s(24, 3) = %1010101010111010
s(24, 4) = %1010101111101010
s(24, 5) = %1010101010101010
s(24, 6) = %1000101111100010
s(24, 7) = %1010101010101010

s(25, 0) = %1010101010101010
s(25, 1) = %1000101010100010
s(25, 2) = %1010101010101010
s(25, 3) = %1010101010101010
s(25, 4) = %1010101010101010
s(25, 5) = %1010101010101010
s(25, 6) = %1000101010100010
s(25, 7) = %1010101010101010

s(26, 0) = %0111111110101001
s(26, 1) = %0111101010101001
s(26, 2) = %0111101010101001
s(26, 3) = %0111101010101001
s(26, 4) = %0001111010100100
s(26, 5) = %0001111010100100
s(26, 6) = %0001111010100100
s(26, 7) = %0001111010100100

s(27, 0) = %0001111010100100
s(27, 1) = %0001111010100100
s(27, 2) = %0001111010100100
s(27, 3) = %0001111010100100
s(27, 4) = %0001111010100100
s(27, 5) = %0001111010100100
s(27, 6) = %0001111010100100
s(27, 7) = %0001111010100100

s(28, 0) = %0001111010100100
s(28, 1) = %0001111010100100
s(28, 2) = %0001111010100100
s(28, 3) = %0111101010101001
s(28, 4) = %0111101010101001
s(28, 5) = %0111101010101001
s(28, 6) = %0111101010101001
s(28, 7) = %0001111010100100

s(29, 0) = %0001111010100100
s(29, 1) = %0001111010100100
s(29, 2) = %0001111010100100
s(29, 3) = %0001111010100100
s(29, 4) = %0011110101010100
s(29, 5) = %0111101010101001
s(29, 6) = %0111101010101001
s(29, 7) = %0111101001010101

S(30, 0) = %0011111011110000
S(30, 1) = %1101010101011100
S(30, 2) = %1101010100011100
S(30, 3) = %1001010001011000
S(30, 4) = %1101010001011100
S(30, 5) = %1101010001011100
S(30, 6) = %0011111011110000
S(30, 7) = %0000000000000000   

S(31, 0) = %0000000000000000
S(31, 1) = %0011000000110000
S(31, 2) = %0000110111000000
S(31, 3) = %0000011101000000
S(31, 4) = %0000110111000000
S(31, 5) = %0011000000110000
S(31, 6) = %0000000000000000
S(31, 7) = %0000000000000000   

S(30, 0) = %0000000000000000
S(30, 1) = %0000000000000000
S(30, 2) = %0010110000000000
S(30, 3) = %1011011011101000
S(30, 4) = %1000101111111010
S(30, 5) = %0000101010101001
S(30, 6) = %0000010101010100
S(30, 7) = %0011000100010011   

S(31, 0) = %0000000000000000
S(31, 1) = %0000000000000000
S(31, 2) = %0010110000000000
S(31, 3) = %1011011011101000
S(31, 4) = %1000101111111010
S(31, 5) = %0000101010101001
S(31, 6) = %0000010101010100
S(31, 7) = %0000110000001100   

For spp = 0 To 3
   For spi = 0 To 63
      i = spp << 6 | spi
      sp(i) = CreateSprite(#PB_Any, 8, 8, #PB_Sprite_AlphaBlending)
      If 1
         StartDrawing(SpriteOutput(sp(i) ) )
         DrawingMode(#PB_2DDrawing_AllChannels)
         For y = 0 To 7
            For x = 0 To 7
               c = p(spp, (s(spi, y) >> (2 * x) ) & 3)
               Box(y, x, 1, 1, c)
            Next
         Next
         StopDrawing()
      EndIf
      xA = 0
      yA = 0
      xB = sw / 32
      yB = sh / 16
      TransformSprite(sp(i), xB, yA, xB, yB, xA, yB, xA, yA)
   Next   
Next

Procedure prnb(x, y, n, ln, pal) ;    (pr)int    (n)um(b)er    (prnb)
   a$ = Right(ReplaceString(Space(ln), " ", "0") + Str(Abs(n) ), ln)
   For i = 1 To Len(a$)
      a = Asc(Mid(a$, i, 1) ) - '0' + 6 + pal << 6
      c(x + i - 1, y) = a
   Next
EndProcedure

Procedure backMode1()
   For x = 0 To 31
      For y = 0 To 15
         c(x, y) = 0
      Next
      c(x, 1) = 1
      If Abs(x - 16) > 4
         c(x, 4) = 1
      EndIf
      c(1, 2) = 5 + 128       ; green pipes
      c(1, 3) = 5 + 128
      c(1, 7) = 5 + 128
      c(1, 11) = 5 + 128
      c(0, 14) = 5 + 128
      c(31, 2) = 2 + 128
      c(31, 3) = 2 + 128
      c(31, 7) = 2 + 128
      c(31, 11) = 2 + 128
      c(31, 14) = 2 + 128
      If Abs(x - 16) > 6
         c(x, 8) = 1
      EndIf
      If Abs(x - 16) > 3
         c(x, 12) = 1
      Else
         c(x, 7) = 129 - 64
      EndIf
      c(x, 15) = 1
   Next
   c(0, 0) = 81
   c(1, 0) = 95
   prnb(5, 0, 00, 2, 3)
   c(0, 1) = 154 - 128
   For y = 2 To 11
      c(0, y) = 155 - 128
   Next
   c(0, 12) = 157 - 128
EndProcedure

torSpeedX = 1
marX = 0
marY = 670
period = 1000 / 30
Repeat
   Repeat
      clock = ElapsedMilliseconds()
      Delay(period - 1)
   Until clock > alarm
   alarm = clock + period
   ExamineKeyboard()
   ClearScreen(0)
   If keyb(#PB_Key_Tab) Or trial
      trial = 0
      mode + 1
      mode & 1
      If mode = 1
         backMode1()
      EndIf
   EndIf
   If mode = 1                   ; anims
      prnb(1, 0, life, 2, 1)
      coinCycle + 1
      coinCycle & 3
      If coinCycle = 0
         coin + 1
         coin & 3
         c(4, 0) = 212 + coin
      EndIf
      If clock > timeAlarm
         timeAlarm + 1000
         countDown - 1
         prnb(8, 0, countDown, 3, 2)
      EndIf
      hour = Val(FormatDate("%HH", Date() ) )
      minu = Val(FormatDate("%ii", Date() ) )
      prnb(12, 0, hour, 2, 0)
      prnb(14, 0, minu, 2, 0)
      prnb(17, 0, marY, 3, 2)
      prnb(24, 0, score, 8, 0)
   EndIf
   If Keyb(#PB_Key_F12)
      Blur ! 1
   EndIf
   
   SpriteQuality(Blur)
   For ty = 0 To 15
      For tx = 0 To 31
         If mode = 0
            c(tx, ty) = tx & $F | ty << 4
         EndIf
         DisplayTransparentSprite(sp(c(tx, ty) ), tx * xB, ty * yB)
      Next
   Next
   If mode = 1
      DisplaySprite(sp(156 - 128), 0, (y + 8) * yB / 8)
      If vy < 4
         vy + 1
      EndIf
      y + vy
      If y > 88
         y = 0
         vy = 0
         life - 1
      EndIf
      
      torY = 24
      torY = 14*8
      torTime ! 1
      torX - torSpeedX
      If torX < 0
         torX = sw * 8 / xB
      EndIf
      jmpX = 0 - 1 - Sin(clock * clock)
      jmpY = 0 - 1 - Cos(clock * clock) 
      DisplayTransparentSprite(sp(30 + torTime + 128), (torX) * xB / 8, (torY) * yB / 8)
      If marVX < 0
         marFlow = 2
      Else
         If marVX > 0
            marFlow = 0
         EndIf
      EndIf
      DisplayTransparentSprite(sp(16 + marTime + 64 + marFlow), marX, marY)
      marMoving = 1
      If KeyboardPushed(#PB_Key_Right)
         If marVX < 24
            marVX + 1
         EndIf
      Else
         If marVX > 0
            marVX - 1
         EndIf
         If KeyboardPushed(#PB_Key_Left)
            If marVX > 0 - 24
               marVX - 1
            EndIf
         Else
            marMoving = 0
            If marVX < 0
               marVX + 1
            EndIf
         EndIf
      EndIf
      If marY < 670
         marVY - 4
      EndIf
      If marY > 670
         marY = 670
         marVY = 0
      EndIf
      marY - marVY
      If KeyboardPushed(#PB_Key_Up)
         marVY = 16
      EndIf
      If marVX
         marTime ! marMoving
         marX + marVX
         If marX > DesktopWidth(0)
            marX - DesktopWidth(0)
         Else
            If marX < 0
               marX + DesktopWidth(0)
            EndIf
         EndIf
      EndIf
   EndIf
   FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or keyb(#PB_Key_Tab)

Re: Please fix this annoyingly slow forum

Posted: Fri Mar 06, 2026 4:55 pm
by ChrisR
It's really nice to see the forum back to its normal speed 8)
It just wasn't possible a few days ago :twisted:

Has anything been done to improve the situation? Or is it just a coincidence with I don't know what?
IceSoft wrote: Fri Mar 06, 2026 10:04 am @fred can this thread closed?
Why ? There is no reason to close it!
There are tests for Cloudflare, the open source Anubis, which are worth taking a look at
This topic should help us find out what is being done, or what could be done, (Nginx : limit_req_zone, Fail2ban,...) if the situation comes back at full speed again and again