00:14:38 wtf is the rationale for renewing SSL certifcates twice a day (certbot default) 00:15:25 i gave up on certbot because it was always confusing and never worked for me 00:15:43 im not normally a fan of tools made out of shellscripts but dehydrated works so great, especially with dns auth 00:16:23 int-e: It doesn't renew twice a day. Or it shouldn't, anyway. 00:16:38 int-e: It *runs* twice a day, but only renews when there's less than 30 days remaining. 00:16:52 Oh. Hmm. 00:17:06 Right, that makes more sense. 00:17:37 Frankenlime: I've used acme-tiny before. 00:17:51 acme-tiny seemed nice 00:18:14 i've used acme.sh at work too and its not terrible (although only used it for web auth) 00:18:58 Yeah I only need web auth anyway, so far. 00:19:42 I'm using `certbot certonly --config ... --force-renewal` to basically just use certbot as a plain client (with DNS auth), it seems to work. 00:20:23 But this time I decided to experience the hammer that is certbot. 00:20:50 see certonly and renew (or run?) differences always confused me 00:20:59 although to be fair i do get confused easily 00:21:48 fizzie: thanks. 00:22:03 AIUI, the 'certonly' part means "just do the stuff related to acquiring certificates, don't try to touch the servers that use the certificate", which is what I want out of it. 00:22:14 (It won't have permissions to do any other actions anyway.) 00:22:19 I only looked at the systemd timer and jumped to conclusions. 00:22:33 -!- sftp has joined. 00:22:34 oh well, i got it all working in ansible and haven't bothered touching it since 00:39:01 -!- sftp has quit (Ping timeout: 258 seconds). 01:13:48 -!- sftp has joined. 01:53:09 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=77874&oldid=77853 * Vpzom * (+72) 01:58:37 [[Four]] N https://esolangs.org/w/index.php?oldid=77875 * Vpzom * (+2759) Created page with "{{infobox proglang |name=Four |paradigms=[[:Category:Functional paradigm|Functional]] |author=[[user:Vpzom|vpzom]] |majorimpl=https://git.vpzom.click/vpzom/four |files=...." 02:01:11 [[Four]] https://esolangs.org/w/index.php?diff=77876&oldid=77875 * Vpzom * (+30) 02:17:33 -!- sprocklem has quit (Quit: brb). 02:29:14 -!- sprocklem has joined. 02:33:56 -!- adu has joined. 03:07:11 -!- adu has quit (Quit: adu). 03:30:36 -!- adu has joined. 05:00:39 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)). 05:04:07 -!- spruit11 has quit (Ping timeout: 240 seconds). 05:45:21 -!- spruit11 has joined. 06:16:06 -!- arseniiv has joined. 06:19:47 -!- lignus has joined. 06:24:35 -!- Sgeo_ has quit (Read error: Connection reset by peer). 06:35:30 -!- wmww has quit (Quit: killed). 06:35:42 -!- tswett[m] has quit (Quit: killed). 06:35:46 -!- Discordian[m] has quit (Quit: killed). 06:44:16 -!- tswett[m] has joined. 06:52:58 -!- imode has quit (Ping timeout: 256 seconds). 07:09:25 -!- wmww has joined. 07:09:31 -!- iscordian[m] has joined. 07:15:33 -!- adu has quit (Quit: adu). 07:18:51 -!- sprocklem has quit (Ping timeout: 260 seconds). 07:23:21 -!- iscordian[m] has changed nick to Discordian[m]. 07:33:02 -!- arseniiv has quit (*.net *.split). 07:33:02 -!- b_jonas has quit (*.net *.split). 07:33:02 -!- izabera has quit (*.net *.split). 07:33:02 -!- paul2520 has quit (*.net *.split). 07:33:27 -!- arseniiv has joined. 07:38:33 -!- b_jonas has joined. 07:38:33 -!- izabera has joined. 07:38:33 -!- paul2520 has joined. 08:00:00 -!- cpressey has joined. 08:00:59 -!- lignus has quit (Remote host closed the connection). 08:08:34 -!- hendursa1 has joined. 08:10:43 -!- hendursaga has quit (Ping timeout: 240 seconds). 08:11:54 [[User:RubenVerg]] N https://esolangs.org/w/index.php?oldid=77877 * RubenVerg * (+6) Created page with "hello!" 09:25:54 -!- ProofTechnique has quit (Ping timeout: 260 seconds). 09:28:34 -!- ProofTechnique has joined. 09:30:27 -!- t20kdc has joined. 10:07:14 -!- sftp has quit (Ping timeout: 272 seconds). 10:11:57 -!- sftp has joined. 10:19:54 Is there a theorem that for every positive natural, n, the Fibonacci sequence contains infinitely many integer multiples of n? 10:34:55 https://en.wikipedia.org/wiki/Fibonacci_number says "If the members of the Fibonacci sequence are taken mod n, the resulting sequence is periodic with period at most 6n." -- is that equivalent? 10:36:00 I guess it's not quite equivalent, because every 6th positive natural != every positive natural 10:36:22 Closest I could find on that page though 10:36:40 Note that F_0 = 0 is divisible by n. So together with periodicity modulo n you get what you want. 10:38:14 I have not seen that 6n claim before, interesting. 10:39:57 Also, simply saying "periodic" doesn't imply that F_i mod n = 0 at any time, so far as I'm aware, so, I'm not so sure 10:40:38 Periodicity is rather obvious though; there are n^2 possible pairs of consecutive remainders in the sequence, so it's ultimately periodic. But you can also reconstruct the whole sequence from any pair (computing F_n from F_(n+1) and F_(n+2)), so it's fully periodic 10:41:10 i=0 works. 10:44:46 There's also the related fact that F_n | F_(nk) for all integers n, k. 10:44:54 Yeah OK, I see how F_0 = 0 implies it F_i mod n = 0 for some i, if it's periodic 10:46:03 I'm not sure I followed that periodicity argument, why does having n^2 possible pairs of consecutive remainders mean it's ultimately periodic? 10:47:25 fizzie: because you can look at the sequence of pairs FF_n = (F_n, F_(n+1)) and note that there's a relation FF_(n+1) = f(FF_n), to which the standard argument applies. 10:47:54 f((x,y)) = (y,x+y) 10:48:33 (and f is invertible over any ring) 10:49:25 But the 6n bound is interesting, because from that idea, you only get an n^2 bound. 10:54:38 (the "standard element" is that by the pigeon-hole principle, *some* element must repeat, and from that point onward, all the elements must repeat because that single element determines all its successors.) 10:55:26 (and, if f() is invertible, the predecessors as well, giving full periodicity rather than just ultimate periodicity.) 11:21:42 Oh, that's a clever use of the Frobenius automorphism. (https://en.wikipedia.org/wiki/Pisano_period#Properties near the end of the section.) 11:27:10 (and that is the main reason why we don't get near the naive n^2 bound) 11:30:54 "Any prime p providing a counterexample would necessarily be a Wall-Sun-Sun prime, and such primes are also conjectured not to exist." 11:30:57 "In number theory, a Wall–Sun–Sun prime or Fibonacci–Wieferich prime is a certain kind of prime number which is conjectured to exist, although none are known." 11:31:06 Source: Wikipedia :-) 11:36:00 Which is not actually a contradiction, if there really are two different mathematicians making two different conjecturs on the existence of these things 11:36:07 But, it does seem a bit unlikely 11:52:40 In other news, I think I now see why MonadPrompt and Operational use GADTs. 11:53:07 :t (>>=) 11:53:09 Monad m => m a -> (a -> m b) -> m b 11:56:00 The GADT gives you an existential type that can be used for b. If you don't have that, you don't have anything you can use for b. 11:57:53 (That I can see.) 12:01:38 Mmmmmmaybe you could put both a and b in the ADT, like data Program instr a b = ...; I've tried it but I haven't been successful at it, and the error messages aren't very encouraging. 12:01:43 Yeah, if you have a constructor of type a -> Foo b in your GADT, then that corresponds to a monadic operation a -> m b. 12:05:40 There's a weird existential data F g x = F (forall a. (g a, a -> x)) type that a GADT g into a functor F g that can be used for making a free monad. 12:06:07 Yeah, I'll need to check out how Free works at some point too I reckon. 12:06:13 Which I guess is nicer in theory, but as a programmer, I find the GADT describing an interface very appealing. 12:06:16 Do you mean with forall outside the F? 12:06:27 -!- cpressey has quit (Quit: Lunch). 12:06:33 shachaf: Uhm. Yes. 12:06:48 I should've used GADT syntax :P 12:07:04 I think that type is pretty natural. 12:07:11 Uh, in the non-formal sense of the word. 12:07:35 So, properly: data F g x = forall a. F (g a) (a -> x) 12:07:58 Sure. Or Coyoneda f a = exists x. (f x, x -> a) 12:08:01 So, properly: data F g a = forall r. F (g r) (r -> a) -- hmm Cont-style naming seems better. 12:08:27 I tend to call the universal one r (for "return" or "result" or something) and the existential one x. 12:08:36 But for sure the one on the outside should be called a. 12:08:37 But nope, I don't find it natural at all. 12:09:02 But r is a result type here as well :P 12:09:21 OK, imagine you had a type for which fmap was very expensive, so you wanted to minimize fmaps. 12:09:45 The functor laws tell you that instead of fmap f (fmap g x), you can write fmap (f.g) x 12:09:54 Yeah I've seen that. 12:10:03 OK, maybe I'm just saying obvious things here. 12:10:31 But it's a far stretch from having seen something, and kind of understanding it, to finding it natural. 12:10:49 An alternative thing you can say is that this thing is the free functor on a type constructor, but I bet that wouldn't strike a chord with you. 12:11:03 You're making it worse. 12:11:09 I figured. 12:11:29 You can also use the dual: newtype Yoneda f a = Yoneda (forall r. (a -> r) -> f r) 12:11:56 But I find that one less intuitive, just because CPSy things are more complicated. 12:12:07 The way I deal with category theory is to translate it back to something more concrete. 12:12:42 The deeper you go into category theory, the more work I have to do translating it back. At some point, I get lost. :P 12:13:00 Well, I'm not saying any category theory words here. Except for "free", I suppose, and "dual", and "Yoneda". 12:13:04 But you can just ignore those. 12:13:16 OK, half of what I'm saying is category theory words. 12:13:36 So yes, say CPS instead of Yoneda transform, and I'll be a bit happier. 12:13:55 I'm not calling it a Yoneda transform, I just wanted a name for the type that isn't F. 12:28:28 Yeah, I'm mixing up terms. 12:28:54 And I'm not even unhappy about it :P 12:30:04 @metar koak 12:30:05 KOAK 081153Z 28007KT 10SM OVC012 17/12 A2992 RMK AO2 SLP132 T01670122 10167 20161 56004 12:31:12 -!- Arcorann_ has quit (Read error: Connection reset by peer). 13:03:16 -!- cpressey has joined. 13:08:20 Mmmmmmaybe you could put both a and b in the ADT, like data Program instr a b = ...; <-- I think I actually got this to work! 13:11:15 -!- hendursa1 has quit (Quit: hendursa1). 13:11:31 -!- hendursaga has joined. 13:12:05 All the instructions have to "return" the same type. The type of `singleton` becomes `instr b -> Program instr b b` 13:14:01 -!- Arcorann_ has joined. 13:17:28 This is exciting! I'm not sure why, but it is. To me. 13:18:59 -!- adu has joined. 13:20:34 https://gist.github.com/cpressey/2ed6aea0c8eb4fc98a5a56e574807721 13:32:02 But now `a` is baked into the type, so this is inflexible. 13:32:47 You're pretty close to doing this though: https://paste.debian.net/1166344/ 13:33:27 * int-e shrugs 13:35:03 But maybe you're coming from the other direction. I have not read very far into the backlog. 13:41:18 cpressey: If you want to take the GADTs out of operational, you will probably end up with a free monad anyway. The functor is data StackF cnt = Push cnt | Pop Int (Int -> cnt) which can be obtained from unfolding the GADT data StackG a where Push :: Int -> StackG () | Pop :: StackG Int into Coyoneda StackG a. 13:42:52 (also using that morally, cnt ~= () -> cnt) 13:44:04 But as a programmer, StackF isn't intuitive to me, whereas StackG reads like a signature for a DSL. 13:44:17 I really like the GADT version much better. 13:45:35 The problem with what you currently have is that there can only ever be a single return type, namely the `a` in Program f a b. 13:45:59 int-e: We have different goals. 14:04:49 -!- Sgeo has joined. 14:22:30 -!- MDude has joined. 14:37:59 [[User:WhyNot?]] https://esolangs.org/w/index.php?diff=77878&oldid=77854 * WhyNot? * (+84) 15:18:23 -!- adu has quit (Quit: adu). 15:21:19 -!- Arcorann_ has quit (Read error: Connection reset by peer). 15:40:10 -!- adu has joined. 15:48:36 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=77879&oldid=77874 * Konfetti * (+134) 15:49:01 [[Talk:RubE On Conveyor Belts/Interpreter]] N https://esolangs.org/w/index.php?oldid=77880 * Eiim * (+685) Added two questions 15:49:40 [[RubE On Conveyor Belts]] M https://esolangs.org/w/index.php?diff=77881&oldid=64380 * Eiim * (+4) noted that interpreter is C++. 15:54:08 [[Talk:RubE On Conveyor Belts/Interpreter]] M https://esolangs.org/w/index.php?diff=77882&oldid=77880 * Eiim * (+267) noted program.out 15:56:30 [[Talk:Hell69]] N https://esolangs.org/w/index.php?oldid=77883 * Konfetti * (+411) Created page with "I think the example is incorrect. 0x41 * 0x69 = 0x1AA9, while 0x41 * 0x45 (which is decimal 69) = 0x1185. I am not sure which version is intended by the creator. The result i..." 16:00:41 -!- cpressey has quit (Quit: WeeChat 1.9.1). 16:05:58 -!- arseniiv has quit (Ping timeout: 256 seconds). 16:09:36 -!- t20kdc has quit (Remote host closed the connection). 16:09:50 -!- t20kdc has joined. 16:10:56 -!- arseniiv has joined. 16:15:33 -!- rain1 has quit (Quit: Leaving). 16:17:52 -!- rain1 has joined. 16:18:42 -!- adu has quit (Quit: adu). 16:21:29 -!- adu has joined. 16:53:15 [[User:Eiim]] N https://esolangs.org/w/index.php?oldid=77884 * Eiim * (+150) Created User:Eiim 17:05:15 [[!@$%^&*()+/Algorithms]] M https://esolangs.org/w/index.php?diff=77885&oldid=76908 * SunnyMoon * (+313) Added a well-earned snippet! 17:12:41 -!- sprocklem has joined. 17:22:35 -!- LKoen has joined. 17:32:02 -!- LKoen has quit (Remote host closed the connection). 17:53:53 -!- adu has quit (Quit: adu). 17:56:17 -!- int-e has quit (Remote host closed the connection). 18:28:05 -!- LKoen has joined. 18:35:47 -!- arseniiv has quit (Ping timeout: 240 seconds). 18:38:48 -!- int-e has joined. 18:44:43 -!- adu has joined. 18:44:53 -!- deltaepsilon23 has joined. 18:45:11 -!- deltaepsilon23 has quit (Remote host closed the connection). 18:45:45 -!- deltaepsilon23 has joined. 18:46:09 [[User:SunnyMoon]] M https://esolangs.org/w/index.php?diff=77886&oldid=77827 * SunnyMoon * (+350) School update. 18:46:16 -!- deltaepsilon23 has changed nick to delta23. 19:03:50 -!- arseniiv has joined. 19:57:26 -!- int-e has quit (Quit: leaving). 19:57:42 -!- int-e has joined. 20:00:36 -!- imode has joined. 20:05:25 -!- DrSoy has joined. 20:05:33 -!- DrSoy has left. 21:16:53 -!- deltaepsilon23 has joined. 21:18:09 -!- delta23 has quit (Ping timeout: 260 seconds). 21:18:19 -!- deltaepsilon23 has changed nick to delta23. 21:44:14 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”). 22:05:11 -!- adu has quit (Quit: adu). 22:19:47 -!- delta23 has quit (Ping timeout: 240 seconds). 22:25:34 -!- deltaepsilon23 has joined. 22:35:11 -!- deltaepsilon23 has changed nick to delta23. 23:03:08 -!- adu has joined. 23:03:26 -!- adu has quit (Client Quit). 23:51:39 -!- orby has joined. 23:53:18 I'm trying to construct a specific combinator in Underload, but I'm falling short. Any wizards know how to construct s' where s':(x)(y)(z) -> x(z)(y(z))? 23:53:47 Hey look a message! (And sorry I don't know Underload) 23:53:55 Also, ais523: I've found a 3 command simple translation of Underload. 23:53:58 Hello! 23:54:00 . 23:54:27 Sorry accidently pressed my keypad while opening my blinds 23:54:32 all good 23:54:49 -!- arseniiv has quit (Ping timeout: 264 seconds). 23:57:45 -!- deltaepsilon23 has joined. 23:58:09 -!- delta23 has quit (Disconnected by services). 23:58:15 -!- deltaepsilon23 has changed nick to delta23.