06:55:29
##forth
<cleobuline>
i corected some bugs ...
08:51:32
##forth
<veltas>
Damn, my server's just been absolutely hammered with bruteforcing for a week
08:52:26
##forth
<veltas>
Was already getting this before, but I'm getting enough now to keep my CPU consistently 6-7%
08:52:48
##forth
<veltas>
Filled up my disk with logs in a few days, will have to clear it out every week at this rate
08:53:21
##forth
<veltas>
Is there some massive increased campaign at the moment or am I just lucky / was I lucky before?
08:54:17
##forth
<pgimeno>
ssh you mean?
08:54:31
##forth
<veltas>
Mostly ssh yeah
08:54:42
##forth
<pgimeno>
I changed the port, worked like a charm
08:54:53
##forth
<veltas>
I'm not using the default port
08:54:58
##forth
<pgimeno>
ugh
08:58:22
##forth
<veltas>
I guess I need to change it again lol
08:59:16
##forth
<veltas>
Maybe my open ports were scanned and that got shared somewhere? I've got no clue how these hackers operate
09:00:53
##forth
<pgimeno>
I've had that once, so it may be a good idea
09:16:20
##forth
<veltas>
It doesn't help that Ubuntu have made it so hard to change the port
09:16:58
##forth
<veltas>
The config file now says essentially "Port doesn't do anything, see the man"; the man doesn't say anything about this
09:18:05
##forth
<veltas>
It turns out Port does actually work, but you have to restart systemd's daemon and reload ssh.socket for it to take effect
09:24:10
##forth
<veltas>
Well it's back to normal after changing port, and at least that confirms what the traffic I'm seeing on my dashboard is for
09:24:40
##forth
<veltas>
Thanks pgimeno
09:26:20
##forth
<pgimeno>
np, glad it helped
09:26:41
##forth
<pgimeno>
systemd_hatred++;
09:28:33
##forth
<veltas>
No kidding
09:38:23
##forth
<veltas>
The info's already out of date, but just the fact you have to add empty ListenStream= first to stop listening on port 22
13:25:16
##forth
<pgimeno>
"Don't read this if you value your sanity" - no shit, that made my head blow
13:40:04
##forth
<pgimeno>
as for identification to the bot commented earler, Libera cloaks could work - make it only work for user mask matching *!*@user/* and use user/* as ID
13:40:24
##forth
<xentrac>
ugh
13:40:32
##forth
<xentrac>
pgimeno: agreed
13:41:13
##forth
<pgimeno>
that would void the need for registration, placing that burden on Libera
13:42:35
##forth
<pgimeno>
but then it would work only on Libera, which isn't necessarily a problem
14:04:00
##forth
<veltas>
That's what I was thinking of
14:09:58
##forth
<veltas>
There are many ways to skin a cat
15:45:51
##forth
<deadmarshal_>
How does one simulate something like 'defer' keywords of Zig or Go where it deallocates heap allocations on exit. Do I have to redeclare the 'bye' word and make it free a linked list of pointers for example?
15:46:30
##forth
<xentrac>
on EXIT?
15:47:08
##forth
<xentrac>
defer will run a cleanup function on return from a subroutine
15:47:21
##forth
<xentrac>
(Golang defer, not Forth defer, which defines a function pointer)
15:47:57
##forth
<deadmarshal_>
Right. I was thinking about the main function where it would be exit
15:49:02
##forth
<xentrac>
van der Horst defined a word called co that can be used for cleanup (not original to him, but this is a good example)
15:50:52
##forth
<xentrac>
!gforth : (let!) dup @ over swap 2r> rot >r rot >r >r >r ! ; : let! (let!) 2r> ! ; ( example usage: ) decimal : dec. 10 base let! . ; hex 53 dup dec. .
15:50:52
##forth
<gforth_eval_bot>
redefined dec. 83 53
15:51:05
##forth
<xentrac>
in this case the cleanup code is setting a temporarily reassigned value back to its original value
15:51:18
##forth
<xentrac>
a temporarily reassigned *variable*, sorry
15:51:25
##forth
<xentrac>
and in the example usage the variable in question is base
15:51:46
##forth
<xentrac>
which is set to (decimal) 10 for the duration of the call to .
15:52:24
##forth
<xentrac>
in this case I kind of inlined co into (let!)
15:52:58
##forth
<deadmarshal_>
+
16:42:50
##forth
<deadmarshal_>
xentrac: awesome, thanks
19:08:06
##forth
<user51>
xentrac: jeez, all those stack manipulations rotated my brain a bit
19:50:53
##forth
<xentrac>
user51: me too
19:54:44
##forth
<user51>
xentrac: good thing it was a linear transformation!
20:18:59
##forth
<cleobuline>
do you what tu experiment my forth-bot-irc ?
20:19:15
##forth
<cleobuline>
with unlimited precision :)
20:19:36
##forth
<cleobuline>
it works for now :)
20:19:52
##forth
<xentrac>
yay!
20:20:19
##forth
<cleobuline>
i need the IP of this irc server to configure
20:21:06
##forth
<cleobuline>
this ? 51.161.82.214
20:21:27
##forth
<xentrac>
dunno, Libera has a lot of IRC servers
20:23:37
##forth
<cleobuline>
ForthBot: LOAD "test.fth"
20:23:38
##forth
<ForthBot>
MOT DEFINIS :
20:23:38
##forth
<ForthBot>
HELLO DOUBLE FACT POW FIBONACCI COUNTDOWN TUCK 2DROP
20:23:38
##forth
<ForthBot>
Stack: 30
20:23:39
##forth
<ForthBot>
MOTS DEFINI :
20:23:40
##forth
<ForthBot>
HELLO DOUBLE FACT POW FIBONACCI COUNTDOWN TUCK 2DROP TRIPLE POW2 TEST-CASE
20:23:40
##forth
<ForthBot>
test2.fth loaded !
20:23:47
##forth
<xentrac>
bonjour ForthBot
20:23:53
##forth
<cleobuline>
100 FACT
20:24:06
##forth
<cleobuline>
ForthBot: 100 FACT
20:24:10
##forth
<xentrac>
you probably don't want it to output 8 lines when it starts
20:24:32
##forth
<xentrac>
that's going to get annoying
20:24:38
##forth
<cleobuline>
ForthBot: 1 2 3 4
20:24:42
##forth
<cleobuline>
ForthBot: .S
20:24:42
##forth
<ForthBot>
Stack: 9332621544394415268169923885626670049071596826438162146859296381 2 3 4
20:24:56
##forth
<xentrac>
ForthBot: 3 4 + .
20:24:56
##forth
<ForthBot>
7
20:25:01
##forth
<cleobuline>
ForthBot: FLUSH
20:25:18
##forth
<xentrac>
sweet :)
20:25:28
##forth
<cleobuline>
ForthBot: 1 2 3 4 2 ROLL .S
20:25:28
##forth
<ForthBot>
Stack: 1 2 4 3
20:25:30
##forth
<xentrac>
ForthBot: : 4a 4 + ; 3 4a .
20:25:31
##forth
<ForthBot>
7
20:26:17
##forth
<cleobuline>
there are basic words
20:26:48
##forth
<cleobuline>
ForthBot: : CARRE DUP * ;
20:27:01
##forth
<cleobuline>
3 CARRE .
20:27:12
##forth
<cleobuline>
ForthBot: 3 CARRE
20:27:18
##forth
<cleobuline>
ForthBot: .S
20:27:18
##forth
<ForthBot>
Stack: 1 2 4 3 9
20:27:33
##forth
<user51>
ForthBot: bye
20:27:33
##forth
<ForthBot>
Unknown word: bye
20:27:36
##forth
<xentrac>
ForthBot: * .
20:27:36
##forth
<ForthBot>
27
20:28:11
##forth
<user51>
cleobuline: would rdrop hang it?
20:28:33
##forth
<cleobuline>
no return stack words
20:29:09
##forth
<user51>
hmm.. does it have DEPTH?
20:29:19
##forth
<cleobuline>
yes
20:29:31
##forth
<user51>
ForthBot: .s
20:29:31
##forth
<ForthBot>
Unknown word: .s
20:29:38
##forth
<user51>
ForthBot: .S
20:29:38
##forth
<ForthBot>
Stack: 1 2 4
20:29:53
##forth
<cleobuline>
ForthBot: DEPTH .S
20:29:53
##forth
<ForthBot>
Stack: 1 2 4 3
20:30:55
##forth
<xentrac>
ForthBot: 2.99 .
20:30:55
##forth
<user51>
ForthBot: FACT .S
20:31:37
##forth
<cleobuline>
not implemented begin again only DO LOOP
20:32:20
##forth
<cleobuline>
ForthBot: .S
20:32:20
##forth
<ForthBot>
Stack: 1
20:32:54
##forth
<user51>
10 fact 0 do i fact loop
20:32:55
##forth
<cleobuline>
ForthBot: 2 1024 POW
20:33:27
##forth
<user51>
ForthBot: -5 FACT
20:33:36
##forth
<user51>
ForthBot: .S
20:33:36
##forth
<ForthBot>
Stack: 1 1797693134862315907729305190789024733617976978942306572734300811
20:33:52
##forth
<cleobuline>
ignore this case :)
20:34:09
##forth
<user51>
ForthBot: -3 FACT .
20:34:10
##forth
<ForthBot>
1
20:36:09
##forth
<user51>
ForthBot: QUIT
20:36:09
##forth
<ForthBot>
Unknown word: QUIT
20:36:24
##forth
<user51>
ForthBot: WORDS
20:36:24
##forth
<ForthBot>
HELLO DOUBLE FACT POW FIBONACCI COUNTDOWN TUCK 2DROP TRIPLE POW2 TEST-CASE 4a CARRE
20:36:57
##forth
<user51>
ForthBot: 1 4a . 2 4a .
20:36:57
##forth
<ForthBot>
5
20:36:57
##forth
<ForthBot>
6
20:38:06
##forth
<cleobuline>
ForthBot: ." Hello World !"
20:38:06
##forth
<ForthBot>
Hello World !
20:39:53
##forth
<cleobuline>
i do not implement the Word "QUIT" yet :)
20:40:40
##forth
<cleobuline>
ForthBot: FORGET HELLO
20:40:50
##forth
<cleobuline>
ForthBot: WORDS
20:40:50
##forth
<ForthBot>
Dictionary empty
20:41:36
##forth
<user51>
ForthBot: : HELLO ;
20:41:43
##forth
<user51>
ForthBot: HELLO
20:42:02
##forth
<cleobuline>
your word does nothing
20:42:23
##forth
<user51>
ForthBot: i think : : ; could cause problems
20:42:24
##forth
<ForthBot>
Unknown word: i
20:42:24
##forth
<ForthBot>
Unknown word: think
20:42:34
##forth
<user51>
oh, sweetl
20:43:10
##forth
<user51>
cleobuline: my bad, i wanted to ping you
20:43:12
##forth
<cleobuline>
You have to vote betwin you to adopt this bot on yur channel now
20:43:37
##forth
<cleobuline>
end of session :)
20:45:26
##forth
<cleobuline>
i think it funny to get such a bot on this chanel
20:47:17
##forth
<user51>
imo bots should accept pms, clutters the channel less
20:50:52
##forth
<cleobuline>
i can modify the bot to work only in private messages
21:18:55
##forth
<vms14>
!gforth ." :D" cr
21:18:55
##forth
<gforth_eval_bot>
:D
21:19:10
##forth
<vms14>
we already have one
21:23:29
##forth
<cleobuline>
!gforth : test ." Hello World " ;
21:23:55
##forth
<cleobuline>
!gforth test
21:24:20
##forth
<GeDaMo>
It all has to be on the same line
21:24:36
##forth
<GeDaMo>
!gforth : test ." Hello World " ; test
21:24:37
##forth
<gforth_eval_bot>
Hello World
21:24:49
##forth
<cleobuline>
ha ok
22:27:19
##forth
<cleobuline>
mon bot est mieux que gforth_eval_bot , il a son propre source
22:30:55
##forth
<xentrac>
et on peut calculer avec précision arbitraire
22:31:16
##forth
<xentrac>
(sorry, my French isn't very good)
22:39:11
##forth
<cleobuline>
xentrac: oui mais c'est un oneliner :)
22:40:46
##forth
<cleobuline>
there is less words than in gforth , but it is more interactive
22:41:21
##forth
<cleobuline>
and it have its own source
22:41:35
##forth
<cleobuline>
not depending of gforth
22:41:57
##forth
<cleobuline>
anyone may add primitives to it
23:31:56
##forth
<cleobuline>
you like this source xentrac ?
23:45:31
##forth
<cleobuline>
sleeping