Home liberachat/#haskell: Logs Calendar

Logs on 2022-04-25 (liberachat/#haskell)

00:03:18 × stackdroid18 quits (~stackdroi@user/stackdroid) (Quit: hasta la vista... tchau!)
00:09:52 × lagash quits (lagash@lagash.shelltalk.net) (Remote host closed the connection)
00:09:59 × jhagborg_ quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 240 seconds)
00:10:17 lagash joins (lagash@lagash.shelltalk.net)
00:10:35 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds)
00:11:12 × xff0x_ quits (~xff0x@om126158190036.30.openmobile.ne.jp) (Read error: Connection reset by peer)
00:11:38 fryguybob joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
00:11:43 machinedgod joins (~machinedg@24.105.81.50)
00:12:09 × alp_ quits (~alp@user/alp) (Ping timeout: 248 seconds)
00:17:03 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
00:17:03 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
00:17:03 wroathe joins (~wroathe@user/wroathe)
00:23:51 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
00:24:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
00:26:03 × zyklotomic quits (~ethan@res380d-128-61-82-178.res.gatech.edu) (Ping timeout: 276 seconds)
00:26:33 vysn joins (~vysn@user/vysn)
00:27:29 zyklotomic joins (~ethan@res388d-128-61-92-250.res.gatech.edu)
00:28:05 × tommd quits (~tommd@97-120-41-123.ptld.qwest.net) (Ping timeout: 256 seconds)
00:35:30 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
00:46:31 euandreh joins (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174)
00:50:52 × shailangsa quits (~shailangs@host86-186-142-63.range86-186.btcentralplus.com) (Ping timeout: 250 seconds)
00:51:48 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
00:58:23 <napping> Is there any common name for a function like zipWith max?
01:04:05 <napping> Especially one that makes sense for containers like Vector a
01:04:19 trillp joins (~trillp@144.202.69.165)
01:05:45 xff0x_ joins (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp)
01:09:15 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
01:11:13 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:13:25 × oxide quits (~lambda@user/oxide) (Quit: oxide)
01:13:29 lifter joins (~lifter@2600:1702:37d0:4310:83f:3332:e039:3515)
01:15:16 trillp parts (~trillp@144.202.69.165) (WeeChat 3.4.1)
01:16:16 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
01:17:12 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
01:17:19 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:18:52 <lifter> I noticed that in GHCi ":kind HigherKinded" where "type HigherKinded a = a Int" spits out "HigherKinded :: (* -> k) -> k". Can somebody tell me why there is the letter "k" there and what it means? This is the first time I've seen anything other than asterisks here.
01:22:12 × Hiring quits (~Hiring@31.222.238.38) (Ping timeout: 252 seconds)
01:24:07 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds)
01:24:46 takuan joins (~takuan@178-116-218-225.access.telenet.be)
01:25:19 × mmhat quits (~mmh@55d4c572.access.ecotel.net) (Ping timeout: 256 seconds)
01:25:23 andrey_ joins (~andrey@p5b1652a4.dip0.t-ipconnect.de)
01:27:39 × andrey quits (~andrey@p200300dbcf4488004d3181a4567cdd4f.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
01:28:01 <napping> That's a kind variable. HigherKinded (,) Int would have kind * -> *, still needing another type to fully apply the (,) type constructor
01:29:07 <napping> data and newtype can only make things that end in -> *, so you only see kind variables for those types if you're doing something fancy in the arguments
01:32:18 shailangsa joins (~shailangs@host86-186-127-233.range86-186.btcentralplus.com)
01:34:34 <lifter> Woah... So is that to say that the "a" in "type HigherKinded a = a Int" could be kind "* ->*"?
01:34:42 leungbk joins (~user@2603-8000-1201-2dd2-6818-c5f7-371a-1f6b.res6.spectrum.com)
01:37:56 mmhat joins (~mmh@55d4c973.access.ecotel.net)
01:39:44 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
01:40:05 × redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds)
01:40:39 × shiraeeshi quits (~shiraeesh@109.166.57.76) (Ping timeout: 240 seconds)
01:44:46 <dragestil> Is there any text about haskell-language-server architecture and how it works with ghc?
01:45:18 <lifter> I guess we could say that in the case of "HigherKinded (,)", the kind of "HigherKinded" is "(* -> * -> *) -> * -> *". That's amazing!
01:45:45 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
01:57:13 tommd joins (~tommd@97-120-41-123.ptld.qwest.net)
01:58:43 redb joins (~nmh@136.49.49.211)
01:59:35 cdman joins (~dcm@27.2.218.12)
01:59:35 × cdman quits (~dcm@27.2.218.12) (Changing host)
01:59:35 cdman joins (~dcm@user/dmc/x-4369397)
02:03:56 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
02:05:38 × redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds)
02:08:03 redb joins (~nmh@136.49.49.211)
02:09:44 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving)
02:12:19 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
02:15:36 redb joins (~nmh@136.49.49.211)
02:16:12 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
02:19:13 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
02:19:15 kimjetwav joins (~user@2607:fea8:2362:b400:5885:9431:ca89:9663)
02:19:19 × lifter quits (~lifter@2600:1702:37d0:4310:83f:3332:e039:3515) ()
02:19:39 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
02:23:03 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:23:03 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:23:03 finn_elija is now known as FinnElija
02:23:13 redb joins (~nmh@136.49.49.211)
02:25:04 × zyklotomic quits (~ethan@res388d-128-61-92-250.res.gatech.edu) (Ping timeout: 272 seconds)
02:25:10 × mmhat quits (~mmh@55d4c973.access.ecotel.net) (Quit: WeeChat 3.5)
02:26:47 zyklotomic joins (~ethan@r4-128-61-93-82.res.gatech.edu)
02:27:43 byorgey joins (~byorgey@155.138.238.211)
02:28:14 × redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds)
02:28:43 redb joins (~nmh@136.49.49.211)
02:32:58 deadmarshal_ joins (~deadmarsh@95.38.113.114)
02:32:59 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
02:33:14 <hololeap> exarkun: does haskell-language-server work in the project dir?
02:33:30 <hololeap> (the 'haskell-language-server' executable with no arguments)
02:35:18 mikoto-chan joins (~mikoto-ch@213.177.151.239)
02:35:40 × leungbk quits (~user@2603-8000-1201-2dd2-6818-c5f7-371a-1f6b.res6.spectrum.com) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
02:35:48 × vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds)
02:36:33 redb joins (~nmh@136.49.49.211)
02:37:19 × deadmarshal_ quits (~deadmarsh@95.38.113.114) (Ping timeout: 240 seconds)
02:38:39 × td_ quits (~td@muedsl-82-207-238-135.citykom.de) (Ping timeout: 276 seconds)
02:40:08 td_ joins (~td@94.134.91.109)
02:40:31 jhagborg_ joins (~jhagborg@068-187-237-099.res.spectrum.com)
02:41:35 jhagborg_ is now known as jhagborg
02:42:48 × mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 272 seconds)
02:49:43 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
02:55:02 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
03:05:57 kaph joins (~kaph@151.47.212.202)
03:10:23 × jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 246 seconds)
03:12:23 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
03:15:35 jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com)
03:21:26 × tommd quits (~tommd@97-120-41-123.ptld.qwest.net) (Ping timeout: 272 seconds)
03:21:32 dons joins (~dons@user/dons)
03:23:36 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
03:32:11 frost joins (~frost@user/frost)
03:41:04 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
03:44:14 × redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds)
03:47:41 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
03:50:28 × kaph quits (~kaph@151.47.212.202) (Read error: Connection reset by peer)
03:51:04 kaph joins (~kaph@ba-19-145-149.service.infuturo.it)
03:55:38 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
03:55:59 mbuf joins (~Shakthi@122.174.215.164)
03:58:41 redb joins (~nmh@136.49.49.211)
03:59:31 lbseale joins (~ep1ctetus@user/ep1ctetus)
03:59:58 × lbseale quits (~ep1ctetus@user/ep1ctetus) (Client Quit)
04:01:56 deadmarshal_ joins (~deadmarsh@95.38.113.114)
04:09:39 × jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 240 seconds)
04:12:20 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
04:12:26 notzmv joins (~zmv@user/notzmv)
04:13:57 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
04:15:15 zaquest joins (~notzaques@5.130.79.72)
04:15:16 × ralu1 quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 272 seconds)
04:15:22 hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
04:20:53 × notzmv quits (~zmv@user/notzmv) (Remote host closed the connection)
04:28:55 × juri_ quits (~juri@178.63.35.222) (Ping timeout: 256 seconds)
04:32:53 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
04:32:59 × motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit)
04:35:26 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 246 seconds)
04:36:19 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
04:39:07 × dsrt^ quits (~dsrt@50.227.69.228) (Ping timeout: 256 seconds)
04:44:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
04:47:21 × kaph quits (~kaph@ba-19-145-149.service.infuturo.it) (Ping timeout: 276 seconds)
04:48:09 titibandit joins (~titibandi@xdsl-89-0-37-242.nc.de)
04:50:39 × napping quits (~brandon@209-181-225-137.mpls.qwest.net) (Quit: leaving)
04:54:42 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
04:55:05 notzmv joins (~zmv@user/notzmv)
04:59:14 <jonathanx> I've started to use lenses, and I'm wondering if there's a lens-like thingy for accessing/updating the elements of a collection (without being able to modify the order of them)
05:01:56 <shachaf> Yes, there are all sorts of such things.
05:04:40 × deadmarshal_ quits (~deadmarsh@95.38.113.114) (Ping timeout: 272 seconds)
05:05:31 benin joins (~benin@183.82.204.110)
05:10:16 × phma quits (~phma@2001:5b0:212a:9cb8:383f:bd93:eb4e:975d) (Read error: Connection reset by peer)
05:10:40 <jonathanx> Okay, can you name a few? :D
05:12:16 <shachaf> Maybe you can name something you're trying to do instead.
05:12:23 <shachaf> Or look up e.g. "traversal", I guess.
05:13:34 dostoevsky7 joins (~5c42c5384@user/dostoevsky)
05:14:13 phma joins (~phma@25.sub-174-212-102.myvzw.com)
05:14:59 × dostoevsky quits (~5c42c5384@user/dostoevsky) (Ping timeout: 240 seconds)
05:14:59 dostoevsky7 is now known as dostoevsky
05:16:18 ralu1 joins (~ralu@static.211.245.203.116.clients.your-server.de)
05:18:22 <energizer> i heard `permutations` can be written as `foldr (concatMap . inserts) [[]]`. how does that work?
05:18:45 phma_ joins (~phma@2001:5b0:212a:9cb8:c177:4ec8:e751:fbba)
05:19:21 × phma quits (~phma@25.sub-174-212-102.myvzw.com) (Ping timeout: 256 seconds)
05:21:35 <jonathanx> shachaf: that looks like it. Sorry for the unclear question, I'm in orientation mode atm so I don't have a lot of lens-terminology down
05:26:25 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
05:30:28 michalz joins (~michalz@185.246.204.107)
05:39:49 × tdammers quits (~tdammers@77.109.72.177.res.static.edpnet.net) (Ping timeout: 240 seconds)
05:46:14 phma_ is now known as phma
05:49:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
05:52:26 nate1 joins (~nate@98.45.169.16)
05:55:38 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
05:57:07 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
05:57:14 × mvk quits (~mvk@2607:fea8:5ce3:8500::c90f) (Ping timeout: 250 seconds)
05:57:19 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
05:59:50 × titibandit quits (~titibandi@xdsl-89-0-37-242.nc.de) (Remote host closed the connection)
06:05:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
06:06:15 shiraeeshi joins (~shiraeesh@109.166.57.76)
06:07:40 <hololeap> energizer: what is 'inserts'?
06:08:09 vysn joins (~vysn@user/vysn)
06:09:02 <energizer> hololeap: takes x,xs and inserts x into each position
06:11:02 <hololeap> it just fills xs with x over and over? like `inserts x xs = const x <$> xs`
06:11:13 <int-e> foldr (\x -> concatMap (inserts x)) <-- one extra point may help here
06:12:00 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
06:12:02 <energizer> no, in between, like inserts 99 [1,2,3] is [[99 1 2 3] [1 99 2 3] ...
06:13:12 neurocyte8614492 joins (~neurocyte@IP-185189141186.dynamic.medianet-world.de)
06:13:12 × neurocyte8614492 quits (~neurocyte@IP-185189141186.dynamic.medianet-world.de) (Changing host)
06:13:12 neurocyte8614492 joins (~neurocyte@user/neurocyte)
06:13:40 <int-e> > let inserts x [] = [[x]]; inserts x (y:ys) = (x:y:ys) : map (y:) (inserts x ys) in foldr (concatMap . inserts) [[]] [1,2,3]
06:13:41 <lambdabot> [[1,2,3],[2,1,3],[2,3,1],[1,3,2],[3,1,2],[3,2,1]]
06:13:45 arjun joins (~arjun@user/arjun)
06:13:53 <arjun> https://pastebin.com/v7H7Frwh
06:14:06 <arjun> what's up with the type error here
06:14:34 <arjun> it should be the same type, it just seems to expect the fully qualified version or somethin
06:14:59 <hololeap> well that's a whole different thing, int-e, still kudos on coming up with that so fast
06:15:28 <hololeap> I mean, that's obviously the 'permutations' function, but that's not what they said the definition is
06:15:59 <int-e> Well, that's the thing that makes `foldr (concatMap . inserts) [[]]` work
06:16:02 int-e shrugs
06:16:25 <hololeap> I see what you're saying
06:16:48 <int-e> I'll agree that "takes x,xs and inserts x into each position" is ambiguous.
06:17:30 × joo-_ quits (~joo-_@fsf/member/joo--) (Ping timeout: 272 seconds)
06:18:55 joo-_ joins (~joo-_@87-49-146-179-mobile.dk.customer.tdc.net)
06:18:55 × joo-_ quits (~joo-_@87-49-146-179-mobile.dk.customer.tdc.net) (Changing host)
06:18:55 joo-_ joins (~joo-_@fsf/member/joo--)
06:19:14 <int-e> arjun: well it looks like you have two different versions of streaming-0.2.3.1 ... that's not supposed to happen. But (as far as I can see) we can't diagonose how it happened from the information given.
06:20:13 <arjun> int-e: ugh
06:20:14 dextaa4 joins (~dextaa@user/dextaa)
06:20:20 <arjun> thanks for the hint
06:20:31 <arjun> guess i'd reinstall the deps
06:21:06 <arjun> i used cabal install --env . --lib streaming streaming-utils first
06:21:28 <arjun> to work in a throwaway file
06:21:47 coot joins (~coot@213.134.190.95)
06:21:50 <arjun> then a day or two later same but installed streaming-bytestring
06:22:26 <arjun> correction: i installed streaming-utils a day later too, not originally
06:23:23 <shiraeeshi> sounds like an example of cabal hell that I heard is no longer a problem
06:24:31 <sclv> its not because you can just edit or delete the env file
06:24:51 <arjun> int-e, nuked the env file and did the cabal installs again, seems to work this time
06:25:10 <sclv> but also you can just use a cabal project and not deal with env files and then this is managed for you
06:25:14 <[Leary]> > let inserts x [] = [[x]]; inserts x (y:ys) = (x:y:ys) : map (y:) (inserts x ys) in foldr (\x ps -> do p <- ps; inserts x p) [[]] [1,2,3]
06:25:16 <lambdabot> [[1,2,3],[2,1,3],[2,3,1],[1,3,2],[3,1,2],[3,2,1]]
06:25:33 <[Leary]> energizer: This is equivalent, and much more self-explanatory.
06:25:56 <arjun> sclv, it was for a throwaway file, got lazy to make a cabal project
06:28:42 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
06:29:56 <shiraeeshi> I'm reading the "Thinking Functionally with Haskell" book
06:30:23 <shiraeeshi> there is a section called "Analyzing time"
06:31:15 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
06:31:51 <shiraeeshi> and it's not clear to me how the math works out
06:32:54 <hololeap> you'll have to give examples since we don't all own the book
06:33:27 <shiraeeshi> it's about calculating time complexity of recursive functions
06:33:44 <shiraeeshi> there are 3 examples
06:34:21 <shiraeeshi> but let's start with this: https://paste.tomsmeding.com/yD6Nl6Ch
06:34:53 <shiraeeshi> it talks about Θ (big theta)
06:35:34 <shiraeeshi> and says that "sum from 1 to n of j" is Θ(n^2)
06:36:09 <shiraeeshi> and "sum from 1 to n of j^2" is Θ(n^3)
06:37:10 <shiraeeshi> I wonder if there's a typo in the book
06:37:28 <hololeap> I think it's saying that if each iteration of recursion costs Θ(n^2), you can sum it by the number of iterations. I could be wrong. I'm not sure about the second one
06:37:38 <shiraeeshi> it seems to me that "sum from 1 to n of j" is linear and should be Θ(n)
06:38:13 acidjnk joins (~acidjnk@p200300d0c73b4554ec7e8ddc2cd32bc3.dip0.t-ipconnect.de)
06:39:30 <hololeap> or is it just trying to describe Θ-notation in general?
06:40:09 <shiraeeshi> hololeap, do you mean that if you have a computation that costs Θ(n) and then you invoke it in a cycle, then it becomes Θ(n^2) ?
06:41:17 <shiraeeshi> and if you wrap cycles in cycles then it increments the power of n inside of Θ(n^x)
06:42:42 <shiraeeshi> and then the book moves on to the first example:
06:42:51 <hololeap> possibly? that could be what they're trying to say, but "The main use of Θ-notation is to hide constants" makes it sound like they're trying to show how to simplify things. it's hard to know without context
06:43:08 <shiraeeshi> With that behind us, we give three examples of how to analyse the running time of
06:43:08 <shiraeeshi> a computation. Consider first the following two definitions of concat:
06:43:20 <shiraeeshi> concat xss = foldr (++) [] xss
06:43:28 <shiraeeshi> concat' xss = foldl (++) [] xss
06:43:55 fendor joins (~fendor@178.115.54.135.wireless.dyn.drei.com)
06:44:09 <shiraeeshi> and then it shows how to calculate time complexities for those two functions
06:45:26 <shiraeeshi> the T notation is described at the beginning of the section
06:45:42 <int-e> shiraeeshi: the *value* of "sum for j from 1 to n of j" is Θ(n^2)
06:45:43 <shiraeeshi> Given the definition of a function f we will write T(f)(n) to denote an asymptotic
06:45:43 <shiraeeshi> estimate of the number of reduction steps required to evaluate f on an argument of
06:45:44 <shiraeeshi> ‘size’ n in the worst case.
06:45:57 <int-e> you can compute it faster than that
06:47:01 <shiraeeshi> int-e, you mean by using a formula of a sum of an arithmetic progression?
06:47:38 <int-e> shiraeeshi: yes. or a crude approximation like (n/2)^2 <= [that sum] <= n^2
06:48:01 <hololeap> oh, that's what they're saying. I've never seen big-Θ outside of measuring algorithms, so it's weird to see it like that
06:48:50 <shiraeeshi> I don't know how important that sentence is. it could be the key to my misunderstanding, or it could be an unimportant detail
06:49:56 <int-e> hololeap: O(f(n)) and friends are classes of functions. Those functions /can/ measure time or space, but they don't have to.
06:50:31 <hololeap> that's fair
06:51:16 <int-e> (It's a bit more complicated than that; there's an implicit limit attached to this (n goes to infinity, in complexity analysis; in calculus, people use stuff like O(x^n) where x approaches 0; the rest of the definitions carry over))
06:51:43 jerry99 joins (~bc8147f2@cerf.good1.com)
06:51:45 × jerry99 quits (~bc8147f2@cerf.good1.com) (Read error: Connection reset by peer)
06:52:39 <shiraeeshi> oh, I think I get it now
06:52:59 <shiraeeshi> so it talks about value of the sum, not its complexity
06:55:43 jerry99 joins (~330f617c@cerf.good1.com)
06:58:48 <hololeap> right, I also thought it was trying to say that summing something cost Θ(n^2) time, but what int-e said makes sense
06:59:18 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds)
06:59:30 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
07:01:54 jerry98 joins (~330f25e8@cerf.good1.com)
07:01:57 <hololeap> so if each step of a recursive algorithm was (<previous steps> + <current step>), we would say it is Θ(n^2) time
07:02:05 × jerry99 quits (~330f617c@cerf.good1.com) (Killed (NickServ (GHOST command used by jerry98!~330f25e8@cerf.good1.com)))
07:02:15 jerry98 is now known as jerry99
07:03:18 <shiraeeshi> here is a first example: https://paste.tomsmeding.com/Fq31Nlnm
07:03:40 <abastro[m]> Mathematical definition hehe
07:03:44 <shiraeeshi> (perhaps I should make a screenshot)
07:04:28 <shiraeeshi> it computes time complexities for two definitions of concat, one using foldr and another using foldl
07:05:45 <abastro[m]> foldr is faster because of (++)'s property right
07:06:09 alp_ joins (~alp@user/alp)
07:06:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:06:43 <hololeap> make some screenshots and paste a link. I hope you're not writing all that out
07:07:25 <shiraeeshi> I was just copypasting from the book, okay I'll make a screenshot
07:09:07 chele joins (~chele@user/chele)
07:10:36 <hololeap> intuitively, if you are appending from the right out you only have to walk the current leftmost list, whereas if you go the other way you have to walk your entire results so far each time
07:11:55 <hololeap> appending means walking the list to find the end, and then attaching the next list to it, which is O(1), but only once you have found the end
07:13:12 × arjun quits (~arjun@user/arjun) (Read error: Connection reset by peer)
07:14:38 <hololeap> hopefully that makes sense
07:14:40 mmhat joins (~mmh@55d4c973.access.ecotel.net)
07:14:45 <hololeap> foldr starts from the right, conceptually, and appends the new list with the accumulation. `new ++ accum`
07:15:19 <hololeap> whereas, going the other way, `accum + new`, means you have to walk the growing `accum` each time
07:15:19 <shiraeeshi> example 1: https://imgur.com/a/nt1EhsI and https://imgur.com/a/n87LvSH
07:19:08 briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl)
07:19:10 <hololeap> foldl ends up being (<previous steps> + <current step>) for each iteration, because you have to walk back over the previous results each time, so it ends up being Θ(n^2) time, like you showed in your first paste (https://paste.tomsmeding.com/yD6Nl6Ch)
07:19:27 abastro joins (~abab9579@192.249.26.175)
07:21:07 <shiraeeshi> so, given that foldr is defined like this
07:21:14 <shiraeeshi> foldr f z [] = z
07:21:22 <shiraeeshi> foldr f z (x:xs) = x `f` foldr f z xs
07:21:49 <hololeap> `f` here is (++)
07:21:59 dsrt^ joins (~dsrt@50.227.69.228)
07:22:06 <hololeap> the expensive part of (++) is walking the first list
07:22:06 <shiraeeshi> the "T(foldr (++) [])(0, n) = Θ(1)" part is obvious
07:22:45 <hololeap> once it walks the first list, appending the second one is Θ(1)
07:23:07 <hololeap> so here the order matters. walking the shorter list each time is key, and that is what foldr does
07:23:43 MajorBiscuit joins (~MajorBisc@86-88-79-148.fixed.kpn.net)
07:23:55 <shiraeeshi> now for the recursive case it says
07:23:57 <shiraeeshi> T(foldr (++) [])(m+1, n) = T(++)(n, mn) + T(foldr (++) [])(m, n)
07:24:21 <shiraeeshi> "The estimate T(++)(n, mn) arises because a list of length n is concatenated with a
07:24:22 <shiraeeshi> list of length mn."
07:26:22 <shiraeeshi> and then it says: "Since T(++)(n, m) = Θ(n), we obtain"
07:26:25 <shiraeeshi> T(foldr (++) [])(m, n) = sum(for k = 0 to m) Θ(n) = Θ(mn)
07:27:50 Major_Biscuit joins (~MajorBisc@c-001-021-011.client.tudelft.eduvpn.nl)
07:28:02 <shiraeeshi> so, as you said, you repeat m times a computation that costs Θ(n) and you get Θ(mn)
07:28:50 <shiraeeshi> but foldl case is trickier
07:29:56 <shiraeeshi> given that foldl is defined as
07:29:58 <shiraeeshi> foldl f z [] = z
07:29:58 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:30:20 <shiraeeshi> foldl f z (x:xs) = let z' = z `f` x in foldl f z' xs
07:30:39 × MajorBiscuit quits (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 240 seconds)
07:31:32 <shiraeeshi> here is a formula for a recursive case:
07:31:34 <shiraeeshi> T(foldl (++))(k, m+1, n) = T(++)(k, n) + T(foldl (++))(k+n, m, n)
07:31:47 <shiraeeshi> and it says
07:31:50 <shiraeeshi> "The additional argument k refers to the length of the accumulated list in the second
07:31:51 <shiraeeshi> argument of foldl."
07:33:18 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
07:33:32 <shiraeeshi> "This time we obtain"
07:33:34 <shiraeeshi> T(foldl (++))(k, m, n) = sum(for j = 0 to m-1) Θ(k + jn) = Θ(k + (m^2)*n)
07:33:59 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
07:35:10 <shiraeeshi> and then it throws away k
07:35:20 <hololeap> k is a constant
07:35:33 <shiraeeshi> and we're left with Θ((m^2)*n)
07:36:38 <shiraeeshi> it's not completely clear to me how (m^2)*n appears
07:36:58 <hololeap> they did some algebraic trickery to get the second equation
07:37:34 × dextaa4 quits (~dextaa@user/dextaa) (Remote host closed the connection)
07:37:58 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
07:38:12 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
07:38:21 jpds joins (~jpds@gateway/tor-sasl/jpds)
07:38:25 lortabac joins (~lortabac@2a01:e0a:541:b8f0:b886:3eb2:a21d:c1a7)
07:38:49 <hololeap> honestly, I'd say write the author if the answer doesn't become clear in a page or two
07:39:01 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit)
07:39:38 <shiraeeshi> so I guess if you have "jn" inside of big theta and j goes from 0 to m-1, then it becomes "(m^2)*n"
07:40:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:40:12 <hololeap> I don't know how big theta got on the left side of the equation, but I'm really not the person to ask, tbh
07:41:01 <hololeap> oh, nvm, I didn't read it correctly, but still
07:41:06 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
07:41:08 <shiraeeshi> wait, it's a sum of big thetas
07:42:27 <shiraeeshi> so, you have a sum of Θ(jn) and j goes from 0 to m-1, and that sum gives you Θ((m^2)*n)
07:43:17 × tv quits (~tv@user/tv) (Ping timeout: 256 seconds)
07:44:38 <hololeap> I think I'm missing the key part about how to reduce a recursive function like that. I've seen it before, but I don't remember it
07:47:13 <hololeap> T(foldl (++))(k, m+1, n) = T(++)(k, n) + T(foldl (++))(k+n, m, n)
07:47:16 machinedgod joins (~machinedg@24.105.81.50)
07:47:19 <hololeap> transforms to
07:47:26 <hololeap> T(foldl (++))(k, m, n) = sum(for j = 0 to m-1) Θ(k + jn)
07:47:30 <hololeap> somehow
07:48:47 gehmehgeh joins (~user@user/gehmehgeh)
07:49:43 × shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit)
07:51:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:51:57 <shiraeeshi> yeah, that's the most unclear part right now
07:52:04 × abastro quits (~abab9579@192.249.26.175) (Remote host closed the connection)
07:52:48 <shiraeeshi> (because I think (m^2)*n is just a sum of an arithmetic progression)
07:57:02 mikoto-chan joins (~mikoto-ch@84.199.144.235)
08:00:25 juri_ joins (~juri@178.63.35.222)
08:00:36 <shiraeeshi> I'm going to came back with this question later
08:02:09 <tomsmeding> hololeap: didn't follow the whole discussion, but what you just posted seems to be just this? https://paste.tomsmeding.com/sBX3Sdyz
08:02:14 gurkenglas joins (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
08:02:56 <hololeap> it was shiraeeshi's question
08:03:27 <tomsmeding> the "transforms to ... somehow"
08:03:41 <shiraeeshi> let me take a look
08:05:52 kuribas joins (~user@ptr-17d51epkc6cunhibcd0.18120a2.ip6.access.telenet.be)
08:07:25 <shiraeeshi> oh, so that's how it works
08:09:04 Pickchea joins (~private@user/pickchea)
08:09:31 <tomsmeding> there's also something called the Master Theorem (obnoxious name; https://en.wikipedia.org/wiki/Master_theorem_(analysis_of_algorithms) ) but for this particular thing you don't need that
08:12:38 dextaa4 joins (~dextaa@user/dextaa)
08:12:46 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:13:14 <[exa]> shiraeeshi: btw I recall I've been solving the very same equation with someone here like 3 weeks ago, you might find something in the logs
08:14:15 <shiraeeshi> [exa], ok, gonna take a look some time
08:14:27 <[exa]> tomsmeding: we tend to call it a "cookbook theorem" because you just need to remind yourself the definition everytime :D
08:14:31 <shiraeeshi> [exa], did you work out other examples?
08:14:43 <tomsmeding> [exa]: lol true enough
08:14:52 jgeerds joins (~jgeerds@d53604b0.access.ecotel.net)
08:15:26 <shiraeeshi> [exa], what definition?
08:15:48 <tomsmeding> of the master theorem, presumably
08:16:17 <shiraeeshi> I'm trying to find a definition in the wikipedia article
08:17:40 <tomsmeding> shiraeeshi: if T(n) = a T(n/b) + f(n), then depending on the asymptotic behaviour of f, as shown in the "Condition on..." column in the table, the theorem gives a bound on T, as shown in the "Master Theorem bound" column in the table
08:18:18 tv joins (~tv@user/tv)
08:18:44 <shiraeeshi> let me wrap my head around it
08:19:28 <tomsmeding> (where c_crit is defined above the table)
08:21:41 <tomsmeding> (note: there are f that fall between the cracks between the cases; for example if f(n) = Theta(n^{c_crit} log(sqrt(n)), it fits in none of the cases if I'm not mistaken)
08:21:55 <tomsmeding> with extra )
08:22:16 <tomsmeding> oh no of course not
08:22:32 <tomsmeding> eh I seem to remember it doesn't strictly cover all f's, exercise to the reader :p
08:22:52 Hiring joins (~Hiring@31.222.238.38)
08:23:06 ubert joins (~Thunderbi@p200300ecdf15886161bde835a28140c8.dip0.t-ipconnect.de)
08:23:48 <shiraeeshi> at this point my brain refuses to make sense of all those runes in the article
08:24:37 <shiraeeshi> but the "Analyzing time" section in the book doesn't mention the Master Theorem, so I guess it's not needed to understand examples from that section
08:25:01 <shiraeeshi> so I think I can put the theorem aside for some time
08:25:33 <tomsmeding> right
08:29:04 <shiraeeshi> I'm going to try to apply the trick that tomsmeding showed to other examples from the section
08:31:00 tdammers joins (~tdammers@77.109.72.118.res.static.edpnet.net)
08:33:05 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
08:34:56 × coot quits (~coot@213.134.190.95) (Ping timeout: 272 seconds)
08:35:10 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
08:39:43 abastro joins (~abab9579@192.249.26.175)
08:48:32 × abastro quits (~abab9579@192.249.26.175) (Remote host closed the connection)
08:52:02 CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
09:00:06 × aviladev[m] quits (~aviladevm@2001:470:69fc:105::1:cbc7) (Quit: You have been kicked for being idle)
09:02:45 vodage joins (~vodage@118.201.231.83)
09:07:04 × neurocyte8614492 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
09:12:02 × vodage quits (~vodage@118.201.231.83) (Quit: WeeChat 3.4.1)
09:12:43 × jerry99 quits (~330f25e8@cerf.good1.com) (Quit: CGI:IRC (Ping timeout))
09:12:53 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
09:13:58 jerry99 joins (~330f7c14@cerf.good1.com)
09:14:07 vodage joins (~vodage@118.201.231.83)
09:21:37 neurocyte8614492 joins (~neurocyte@IP-185189141186.dynamic.medianet-world.de)
09:21:37 × neurocyte8614492 quits (~neurocyte@IP-185189141186.dynamic.medianet-world.de) (Changing host)
09:21:37 neurocyte8614492 joins (~neurocyte@user/neurocyte)
09:24:45 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1)
09:26:23 jespada_ joins (~jespada@146.70.119.10)
09:28:19 <[exa]> shiraeeshi: by the "definition" I basically meant the table that says what the theorem does
09:28:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
09:28:48 × jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Ping timeout: 276 seconds)
09:28:51 <[exa]> shiraeeshi: btw what precise section of the book are you at now? (if you can pls link the online version)
09:30:42 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:31:34 × dsrt^ quits (~dsrt@50.227.69.228) (Remote host closed the connection)
09:34:06 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:35:24 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
09:35:34 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
09:35:38 Midjak joins (~Midjak@82.66.147.146)
09:36:14 <shiraeeshi> [exa]: chapter 7 "Efficiency", section 7.4 "Analyzing time"
09:36:31 <shiraeeshi> I don't have a link to an online version, but you can download it from b-ok
09:36:32 xkuru joins (~xkuru@user/xkuru)
09:37:41 <[exa]> turns out I've got a PDF right in ~
09:38:32 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
09:38:59 <[exa]> ok one thing that is just wrong there is the "not bothering about the constants involved"
09:39:31 abastro joins (~abab9579@192.249.26.175)
09:41:18 <[exa]> for example, sum [1..n] == (n * (n-1)) / 2 == (n^2 / 2) - (n/2)
09:41:47 <[exa]> and they say the sum is equal to Θ(n^2), hiding the constant, but (n/2) is far from being a constant :]
09:42:55 <[exa]> the easier view is to imagine "if n is sufficiently big, all other terms except for a multiplicative constant are completely negligible"
09:43:42 <shiraeeshi> you mean the term that is exponentiated to the largest power?
09:44:01 <[exa]> yes, usually it's the "biggest" term
09:44:03 cosimone joins (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
09:44:21 <[exa]> for n=1 million, the n/2 is literally 1000000x smaller than n^2/2
09:45:47 <shiraeeshi> I think it has something to do with the way they define big theta
09:45:53 <[exa]> yes, the rigorous definition of Θ is similar to the limit, I use this:
09:45:57 <shiraeeshi> they give the definition earlier in the book
09:46:20 <shiraeeshi> there exists some K, so that x - K < [something] < x + K
09:46:49 <shiraeeshi> so you can write it as Θ(x)
09:48:08 <[exa]> you say that `f` belongs to complexity class `Θ(term)` if there exist constants n0, α and β (greater than 0) so that for all n>n0, α*term(n) ≤ f(n) ≤ β*term(n)
09:48:22 <abastro> IT
09:48:41 <shiraeeshi> no, wait, it's about two constants C1 and C2 so that C1*x <= [something] <= C2*x
09:48:45 <abastro> It's the fastest increasing term
09:49:02 <[exa]> I'd that works for our Θ(n^2) and sum [1..n] with constants say n0=10000, α=0.3, β=0.8
09:49:25 <abastro> C1 * f(x) <= target <= C2 * f(x) for sufficiently big x.
09:49:39 anomal joins (~anomal@87.227.196.109)
09:49:44 <abastro> Oh exa already said that. Meh
09:49:50 <[exa]> if you\d say that the sum function belongs to Θ(n), eventually for sufficiently large `n`, the function `n^2` would get greater than the β-multiply of the term
09:50:02 <abastro> Anyway it comes from math limit
09:50:05 <[exa]> same for say Θ(n^2.1)
09:50:31 <abastro> IIRC this forms some sort of equivalence class (or perhaps not)
09:50:52 <[exa]> abastro: yes
09:51:05 <[exa]> (a bit complicated though once you jump to ugly details)
09:51:13 <abastro> Where Θ(n^k) for each k is in separate equivalence classes
09:51:30 <abastro> Yea I mostly mean the ugly details when I said "im not sure"
09:52:26 × notzmv quits (~zmv@user/notzmv) (Read error: Connection reset by peer)
09:52:45 <[exa]> the other complicated piece in the book is the T notation
09:53:41 <[exa]> T(function)(list of input sizes)=... says "the asymptotic time needed for a function to complete on input sizes is ..."
09:55:32 <[exa]> the work there is afaik correct, but it's far from obvious; the author is good at following the scheme "just rewrite the function definitions to obvious partial time complexities and then apply _some_ math to get a direct formula", but for newcomers this separation is not very visible (esp. if they need to guess the _some_ math based on heuristics)
09:55:38 × abastro quits (~abab9579@192.249.26.175) (Remote host closed the connection)
09:56:27 × gpncarl quits (~gpncarl@222.249.231.3) (Ping timeout: 256 seconds)
09:59:54 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
10:00:03 abastro joins (~abab9579@192.249.26.175)
10:01:23 <abastro[m]> Clever of author
10:01:38 <shiraeeshi> is the rest of the book like that too?
10:02:10 <shiraeeshi> or is this section a particularly dense part of the book?
10:03:06 <shiraeeshi> the chapter before that section were more or less clear
10:03:11 <shiraeeshi> *chapters
10:03:42 <jerry99> style question: what do you think about doing x <- pure (computeNewValue x) over let x' = computeNewValue x?
10:04:26 <jerry99> it prevents potential bug of using x instead of x'
10:04:47 × xff0x_ quits (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 246 seconds)
10:06:59 × jespada_ quits (~jespada@146.70.119.10) (Ping timeout: 240 seconds)
10:09:39 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
10:10:03 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
10:10:15 × acidjnk quits (~acidjnk@p200300d0c73b4554ec7e8ddc2cd32bc3.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
10:10:46 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
10:12:53 dhil joins (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net)
10:13:00 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 276 seconds)
10:13:33 jespada joins (~jespada@146.70.119.92)
10:14:06 acidjnk joins (~acidjnk@p200300d0c73b455469ba8f1e402628de.dip0.t-ipconnect.de)
10:14:59 × CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
10:16:04 <shiraeeshi> the book actually showed how to apply induction when proving some equations
10:16:52 <shiraeeshi> and the fact that they expressed m+1 case in terms of m case hints that you should apply the similar technique
10:17:13 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
10:17:25 <shiraeeshi> but I couldn't put all the pieces together without some help
10:17:41 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
10:18:06 × abastro quits (~abab9579@192.249.26.175) (Read error: Connection reset by peer)
10:19:23 abastro joins (~abab9579@192.249.26.175)
10:37:51 Core4993 joins (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc)
10:39:42 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
10:40:59 × Major_Biscuit quits (~MajorBisc@c-001-021-011.client.tudelft.eduvpn.nl) (Ping timeout: 240 seconds)
10:41:46 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
10:48:07 kaskal joins (~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8)
10:48:08 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
10:49:05 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
10:52:38 CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
10:53:33 <[exa]> shiraeeshi: the rest of the book should not depend too much on it, the point is that somehow this is kinda instinctive for everyone in CS (not really hard though), you just need to jump over the cliff at some point
10:54:15 × Core4993 quits (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) (Read error: Connection reset by peer)
10:54:29 Core4993 joins (~Core4993@222.249.231.6)
10:54:31 <[exa]> jerry99: I'd make a special name for `pure.computeNewValue` that explicitly looks like the 'x' is really changing
10:55:15 <[exa]> other than that, preventing unwanted recursion is a good goal I'd guess, esp. if the codebase would contain a lot of such places
10:55:55 <[exa]> shiraeeshi: (that said, getting some help with this is usually expected, esp. if you're not a math geek)
10:58:36 [exa] just realized that "jump over the cliff" doesn't translate well to english as an idiom
11:04:25 × sprout quits (~quassel@2a02-a467-ccd6-1-5483-9565-9dfd-ed25.fixed6.kpn.net) (Ping timeout: 248 seconds)
11:14:10 Guest55 joins (~Guest55@82.210.152.104)
11:14:43 <Guest55> hello. Can you review this? https://www.mathworks.com/matlabcentral/fileexchange/110550-lu-decomposition-doolittle-crout
11:16:52 sprout joins (~quassel@2a02-a45f-f170-1-814e-302e-b3b3-1d39.fixed6.kpn.net)
11:16:56 <[exa]> Guest55: that's matlab? how's that relevant to haskell?
11:17:14 <Guest55> it is relevant to math
11:17:45 <Guest55> and if you want, do you know a way to implement LU in haskell as fast as that code?
11:18:04 × neurocyte8614492 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
11:18:35 <[exa]> you can run it from any blas library without much effort
11:18:41 <Guest55> I tested it, and on a matrix 500x500, it runs on 0.2835 secs
11:18:46 <[exa]> the library name is literally `blas`, see https://hackage.haskell.org/package/blas
11:18:49 <Guest55> on intel core 2 duo
11:19:05 <Guest55> indeed, but this has only 2 lines of code
11:19:11 <Guest55> it is comparable?
11:19:12 gpncarl joins (~gpncarl@210.12.195.5)
11:19:19 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
11:19:20 <[exa]> so does the blas call I'd say
11:19:35 <Guest55> oh, so i've got blas speed under my nails
11:19:51 neurocyte8614492 joins (~neurocyte@IP-185189141186.dynamic.medianet-world.de)
11:19:51 × neurocyte8614492 quits (~neurocyte@IP-185189141186.dynamic.medianet-world.de) (Changing host)
11:19:51 neurocyte8614492 joins (~neurocyte@user/neurocyte)
11:20:03 <Guest55> i was just asking for an opinion about code
11:21:10 <[exa]> not sure, I can't open it
11:21:17 <[exa]> perhaps if you could pastebin it
11:21:22 arjun joins (~user@user/arjun)
11:21:32 <Guest55> sure
11:21:50 <Guest55> for starters, git repo: https://github.com/antonpuiu/Numerical-Methods/commit/c588d0727f78e0c7f6464b1b542c2611f7729e8f
11:22:32 × jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 248 seconds)
11:22:54 <Guest55> https://pastebin.com/mViH9CXv
11:23:08 <Guest55> that's crout
11:23:18 <[exa]> nah, it's matlab
11:23:31 <[exa]> mathematically it might be sound but you may visit ##math for that
11:23:34 <Guest55> this is doolittle
11:23:35 <Guest55> https://pastebin.com/PChrwHy5
11:23:41 <[exa]> similar for programming and #matlab
11:23:49 <Guest55> indeed, i tried on both but no activity
11:23:52 <[exa]> :(
11:24:25 <[exa]> better remove the commented-out code and add source commentary to actually make the purpose and everything super-visible (<- general programming advice)
11:24:27 × sprout quits (~quassel@2a02-a45f-f170-1-814e-302e-b3b3-1d39.fixed6.kpn.net) (Ping timeout: 240 seconds)
11:24:44 <Guest55> that is just to check the time values
11:24:47 <[exa]> I spot half of my mistakes when trying to make sense of the code the second time when documenting it for others
11:25:17 <Guest55> https://github.com/antonpuiu/Numerical-Methods/blob/main/octave/lu/doolittle.m
11:25:32 <Guest55> that commit was just to highlight the time difference
11:26:12 sprout joins (~quassel@2a02-a45f-f170-1-814e-302e-b3b3-1d39.fixed6.kpn.net)
11:26:35 <Guest55> first version, altought vectorized for the sum, ran on 9.ish seconds, the second version 0.28
11:26:42 × neurocyte8614492 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
11:27:27 <Guest55> in this case i don't feel the need to document this code, considering the fact that it is optimized
11:28:09 __monty__ joins (~toonn@user/toonn)
11:28:54 <Guest55> and it is just a script in octave ^.^
11:28:55 × acidjnk quits (~acidjnk@p200300d0c73b455469ba8f1e402628de.dip0.t-ipconnect.de) (Remote host closed the connection)
11:29:19 acidjnk joins (~acidjnk@p200300d0c73b45545c9eacfd1d8aac0e.dip0.t-ipconnect.de)
11:31:39 × zyklotomic quits (~ethan@r4-128-61-93-82.res.gatech.edu) (Ping timeout: 256 seconds)
11:33:18 zyklotomic joins (~ethan@res380d-128-61-87-152.res.gatech.edu)
11:35:37 × mikoto-chan quits (~mikoto-ch@84.199.144.235) (Ping timeout: 256 seconds)
11:36:20 <Guest55> and there is still room for improvement: https://pastebin.com/z0XrwCXm
11:36:35 × acidjnk quits (~acidjnk@p200300d0c73b45545c9eacfd1d8aac0e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
11:38:45 xff0x_ joins (~xff0x@om126158170114.30.openmobile.ne.jp)
11:39:50 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
11:45:46 mikoto-chan joins (~mikoto-ch@84.199.144.235)
11:51:02 × Guest55 quits (~Guest55@82.210.152.104) (Ping timeout: 252 seconds)
11:52:08 Guest55 joins (~Guest55@82.210.152.104)
11:52:22 × Guest55 quits (~Guest55@82.210.152.104) (Client Quit)
11:53:30 × teddyc quits (theodorc@cassarossa.samfundet.no) (Quit: WeeChat 3.0)
11:55:37 Major_Biscuit joins (~MajorBisc@145.94.235.5)
11:58:52 × tv quits (~tv@user/tv) (Ping timeout: 272 seconds)
11:59:25 × Pickchea quits (~private@user/pickchea) (Ping timeout: 256 seconds)
12:02:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
12:08:19 teddyc joins (theodorc@cassarossa.samfundet.no)
12:10:25 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
12:12:04 tv joins (~tv@user/tv)
12:13:54 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
12:19:32 hololeap joins (~hololeap@user/hololeap)
12:23:45 lbseale joins (~ep1ctetus@user/ep1ctetus)
12:23:48 × lbseale quits (~ep1ctetus@user/ep1ctetus) (Client Quit)
12:29:34 vorpuni joins (~pvorp@2001:861:3881:c690:aeec:dab5:81df:c256)
12:36:34 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
12:39:04 deadmarshal_ joins (~deadmarsh@95.38.113.114)
12:40:13 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
12:40:53 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
12:41:55 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:47:00 × briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Ping timeout: 272 seconds)
12:50:22 × xff0x_ quits (~xff0x@om126158170114.30.openmobile.ne.jp) (Read error: Connection reset by peer)
12:50:58 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Quit: leaving)
12:51:19 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
12:52:15 briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl)
12:58:08 × frost quits (~frost@user/frost) (Ping timeout: 252 seconds)
12:59:54 coot joins (~coot@213.134.190.95)
13:01:07 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
13:01:11 × deadmarshal_ quits (~deadmarsh@95.38.113.114) (Ping timeout: 246 seconds)
13:04:01 × shiraeeshi quits (~shiraeesh@109.166.57.76) (Ping timeout: 256 seconds)
13:06:38 × mikoto-chan quits (~mikoto-ch@84.199.144.235) (Ping timeout: 272 seconds)
13:08:31 × sprout quits (~quassel@2a02-a45f-f170-1-814e-302e-b3b3-1d39.fixed6.kpn.net) (Ping timeout: 260 seconds)
13:10:11 frost joins (~frost@user/frost)
13:11:52 × renzhi quits (~xp@2607:fa49:6500:b100::1d4a) (Ping timeout: 248 seconds)
13:12:19 × vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds)
13:12:31 Core4993_ joins (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc)
13:13:59 × Core4993 quits (~Core4993@222.249.231.6) (Ping timeout: 240 seconds)
13:16:25 xff0x_ joins (~xff0x@om126158204045.30.openmobile.ne.jp)
13:17:30 × Core4993_ quits (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) (Quit: CoreIRC for Android - www.coreirc.com)
13:17:50 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
13:25:06 renzhi joins (~xp@2607:fa49:6500:b100::19a0)
13:28:00 zebrag joins (~chris@user/zebrag)
13:32:15 EvanR_ joins (~EvanR@user/evanr)
13:32:49 jgeerds joins (~jgeerds@d53604b0.access.ecotel.net)
13:33:32 × EvanR quits (~EvanR@user/evanr) (Ping timeout: 250 seconds)
13:36:18 titibandit joins (~thibaut@2a00:8a60:c000:1:8a13:bf74:b2:8d47)
13:36:40 deadmarshal_ joins (~deadmarsh@95.38.113.114)
13:37:15 leeb joins (~leeb@KD106155000251.au-net.ne.jp)
13:39:25 titibandit parts (~thibaut@2a00:8a60:c000:1:8a13:bf74:b2:8d47) ()
13:40:36 sprout joins (~quassel@77-169-234-124.fixed.kpn.net)
13:41:05 × deadmarshal_ quits (~deadmarsh@95.38.113.114) (Ping timeout: 246 seconds)
13:45:56 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
13:47:09 void joins (~vodage@118.201.231.83)
13:48:42 Sgeo joins (~Sgeo@user/sgeo)
13:50:20 × vodage quits (~vodage@118.201.231.83) (Ping timeout: 272 seconds)
13:50:32 void1 joins (~vodage@118.201.231.83)
13:53:55 void2 joins (~vodage@118.201.231.83)
13:54:00 × void quits (~vodage@118.201.231.83) (Ping timeout: 276 seconds)
13:54:21 Pickchea joins (~private@user/pickchea)
13:55:23 motherfsck joins (~motherfsc@user/motherfsck)
13:56:39 × void1 quits (~vodage@118.201.231.83) (Ping timeout: 240 seconds)
14:00:34 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:03:33 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
14:09:14 × dextaa4 quits (~dextaa@user/dextaa) (Remote host closed the connection)
14:11:03 acidjnk joins (~acidjnk@p200300d0c73b45549932693d78c3d853.dip0.t-ipconnect.de)
14:14:39 leeb parts (~leeb@KD106155000251.au-net.ne.jp) (WeeChat 3.2.1)
14:17:38 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
14:18:04 × frost quits (~frost@user/frost) (Ping timeout: 252 seconds)
14:18:20 gehmehgeh joins (~user@user/gehmehgeh)
14:19:11 × caubert quits (~caubert@136.244.111.235) (Quit: WeeChat 3.4)
14:19:21 void3 joins (~vodage@118.201.231.83)
14:19:29 caubert joins (~caubert@136.244.111.235)
14:22:07 × void2 quits (~vodage@118.201.231.83) (Ping timeout: 240 seconds)
14:22:44 void4 joins (~vodage@118.201.231.83)
14:23:54 × abastro quits (~abab9579@192.249.26.175) (Ping timeout: 276 seconds)
14:25:19 × void3 quits (~vodage@118.201.231.83) (Ping timeout: 240 seconds)
14:26:39 × Pickchea quits (~private@user/pickchea) (Ping timeout: 240 seconds)
14:27:19 × dhil quits (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Ping timeout: 256 seconds)
14:27:34 zer0bitz joins (~zer0bitz@2001:2003:f444:8f00:90b9:bbad:a877:920a)
14:33:03 void joins (~vodage@118.201.231.83)
14:34:41 × briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Ping timeout: 256 seconds)
14:35:01 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
14:35:36 × void4 quits (~vodage@118.201.231.83) (Ping timeout: 276 seconds)
14:36:37 × coot quits (~coot@213.134.190.95) (Quit: coot)
14:38:24 void1 joins (~vodage@118.201.231.83)
14:38:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
14:39:55 briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl)
14:41:17 × void quits (~vodage@118.201.231.83) (Ping timeout: 246 seconds)
14:43:45 void2 joins (~vodage@118.201.231.83)
14:44:42 vysn joins (~vysn@user/vysn)
14:45:44 × acidjnk quits (~acidjnk@p200300d0c73b45549932693d78c3d853.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
14:45:49 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
14:46:59 × void1 quits (~vodage@118.201.231.83) (Ping timeout: 260 seconds)
14:52:03 × lagash quits (lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
14:53:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
14:53:28 × cdman quits (~dcm@user/dmc/x-4369397) (Quit: Leaving)
14:54:51 × briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Quit: leaving)
14:54:59 briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl)
14:56:07 × mud quits (~mud@user/kadoban) (Ping timeout: 240 seconds)
14:56:19 mud joins (~mud@user/kadoban)
14:56:39 lagash joins (lagash@lagash.shelltalk.net)
14:58:11 void3 joins (~vodage@118.201.231.83)
14:58:26 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
15:00:11 coot joins (~coot@213.134.190.95)
15:01:27 × void2 quits (~vodage@118.201.231.83) (Ping timeout: 260 seconds)
15:01:52 shriekingnoise joins (~shrieking@201.231.16.156)
15:03:20 × briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Ping timeout: 246 seconds)
15:05:14 tremon joins (~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl)
15:05:34 void4 joins (~vodage@118.201.231.83)
15:05:56 <void4> nick vodage
15:06:10 void4 is now known as vodage
15:06:22 × vodage quits (~vodage@118.201.231.83) (Client Quit)
15:06:27 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:b886:3eb2:a21d:c1a7) (Quit: WeeChat 2.8)
15:07:19 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
15:08:35 × void3 quits (~vodage@118.201.231.83) (Ping timeout: 246 seconds)
15:08:41 briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl)
15:09:30 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
15:11:01 kadobanana joins (~mud@user/kadoban)
15:11:02 × mud quits (~mud@user/kadoban) (Ping timeout: 250 seconds)
15:16:03 × kadobanana quits (~mud@user/kadoban) (Read error: Connection reset by peer)
15:16:28 kadobanana joins (~mud@user/kadoban)
15:22:03 × jerry99 quits (~330f7c14@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
15:23:32 × kadobanana quits (~mud@user/kadoban) (Remote host closed the connection)
15:23:57 × xff0x_ quits (~xff0x@om126158204045.30.openmobile.ne.jp) (Read error: Connection reset by peer)
15:23:57 kadobanana joins (~mud@user/kadoban)
15:24:15 × anomal quits (~anomal@87.227.196.109) (Remote host closed the connection)
15:27:14 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
15:31:39 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
15:32:59 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
15:33:59 ec joins (~ec@gateway/tor-sasl/ec)
15:35:32 × ccntrq quits (~Thunderbi@2a01:e34:eccb:b060:b841:3aa3:64b1:7cea) (Quit: ccntrq)
15:44:06 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:45:58 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:47:11 × CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
15:49:55 jakalx parts (~jakalx@base.jakalx.net) ()
15:50:26 kaph joins (~kaph@net-2-42-128-49.cust.vodafonedsl.it)
15:51:18 × Major_Biscuit quits (~MajorBisc@145.94.235.5) (Ping timeout: 272 seconds)
15:51:59 × kaph quits (~kaph@net-2-42-128-49.cust.vodafonedsl.it) (Remote host closed the connection)
15:52:35 kaph joins (~kaph@net-2-42-128-49.cust.vodafonedsl.it)
15:52:59 × kaph quits (~kaph@net-2-42-128-49.cust.vodafonedsl.it) (Max SendQ exceeded)
15:53:04 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
15:54:33 kaph joins (~kaph@net-2-42-128-49.cust.vodafonedsl.it)
15:55:03 × kaph quits (~kaph@net-2-42-128-49.cust.vodafonedsl.it) (Remote host closed the connection)
15:58:18 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
15:58:25 mvk joins (~mvk@2607:fea8:5ce3:8500::aa1d)
15:59:06 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)
16:03:13 azimut joins (~azimut@gateway/tor-sasl/azimut)
16:05:36 Major_Biscuit joins (~MajorBisc@145.94.235.5)
16:07:03 × briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Ping timeout: 256 seconds)
16:07:16 × Midjak quits (~Midjak@82.66.147.146) (Read error: Connection reset by peer)
16:07:37 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
16:11:37 <Sgeo> Is there a list somewhere of every optics encoding people are known to have experimented with?
16:12:38 × synthmeat quits (~synthmeat@user/synthmeat) (Remote host closed the connection)
16:12:55 synthmeat joins (~synthmeat@user/synthmeat)
16:12:59 × synthmeat quits (~synthmeat@user/synthmeat) (Client Quit)
16:13:25 briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl)
16:14:25 dextaa4 joins (~dextaa@user/dextaa)
16:17:33 <[exa]> Sgeo: recent papers have pretty good overviews (e.g. https://arxiv.org/pdf/2001.07488.pdf) but I doubt there will be an exhaustive list
16:18:03 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
16:19:24 <Sgeo> Thank you
16:19:31 <[exa]> otoh I guess there ain't gonna be much diversity-- there's the functor (Laarhoven) encoding, profunctor encoding, optics-style encoding that doesn't compose as functions, and the rest is probably going to be similar to most
16:19:51 <[exa]> s/most/these/
16:21:10 synthmeat joins (~synthmeat@user/synthmeat)
16:21:13 × zyklotomic quits (~ethan@res380d-128-61-87-152.res.gatech.edu) (Ping timeout: 256 seconds)
16:21:32 <[exa]> also, as usual with computers, there's infinitely many indiscernible encodings
16:21:35 <[exa]> :]
16:22:46 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:23:01 <Sgeo> If I don't care about don't compose as functions, are there versions of that that do have a composition operator across different optics?
16:23:29 zyklotomic joins (~ethan@r4-128-61-94-122.res.gatech.edu)
16:23:49 <c_wraith> the optics package does, though it requires the ecosystem be closed to make it work
16:23:56 <c_wraith> @hackage optics
16:23:56 <lambdabot> https://hackage.haskell.org/package/optics
16:24:23 <tdammers> [exa]: not literally infinite, it's a finite machine after all
16:25:01 <[exa]> tdammers: I shall build a bigger computer and break your logicks
16:25:20 <tdammers> [exa]: I'm looking forward to seeing your infinitely big computer.
16:25:31 <c_wraith> Sgeo: look at the fancy type here: https://hackage.haskell.org/package/optics-core-0.4.1/docs/Optics-Optic.html#v:-37-
16:25:38 [exa] hopes the universe won't run out too soon!
16:27:14 <Andrew> Universe :: ()
16:27:18 <Andrew> s/U/u/
16:28:26 <[exa]> ._.
16:29:01 <tdammers> time for a dependently typed universe
16:30:22 vicfred joins (~vicfred@user/vicfred)
16:31:59 × dextaa4 quits (~dextaa@user/dextaa) (Read error: Connection reset by peer)
16:33:15 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds)
16:33:54 dextaa4 joins (~dextaa@user/dextaa)
16:37:29 jakalx joins (~jakalx@base.jakalx.net)
16:39:04 × coot quits (~coot@213.134.190.95) (Quit: coot)
16:39:41 nf is now known as ncf
16:41:22 <EvanR_> that's like there aren't infinite numbers because any given number is finite
16:41:45 <EvanR_> I guess there are those who troll such statements hard
16:44:06 EvanR_ is now known as EvanR
16:46:03 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:49:09 thyriaen joins (~thyriaen@ip5f5af2d7.dynamic.kabel-deutschland.de)
16:49:34 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
16:56:21 × jespada quits (~jespada@146.70.119.92) (Ping timeout: 256 seconds)
16:56:48 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
16:57:34 deadmarshal_ joins (~deadmarsh@95.38.113.114)
17:00:37 jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
17:02:19 × deadmarshal_ quits (~deadmarsh@95.38.113.114) (Ping timeout: 260 seconds)
17:02:34 × cosimone quits (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Remote host closed the connection)
17:03:01 econo joins (uid147250@user/econo)
17:03:14 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
17:06:06 jespada_ joins (~jespada@146.70.119.92)
17:06:59 × jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Ping timeout: 260 seconds)
17:10:31 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 256 seconds)
17:12:22 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
17:12:47 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
17:18:14 <monochrom> It is not easy to design an experiment that refutes a claim of "my computer is infinitely big".
17:19:57 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:20:06 deadmarshal_ joins (~deadmarsh@95.38.113.114)
17:21:33 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:22:17 × dextaa4 quits (~dextaa@user/dextaa) (Read error: Connection reset by peer)
17:23:01 × benin quits (~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
17:23:08 × Major_Biscuit quits (~MajorBisc@145.94.235.5) (Ping timeout: 272 seconds)
17:24:30 dextaa4 joins (~dextaa@user/dextaa)
17:25:10 kaph joins (~kaph@net-2-42-128-49.cust.vodafonedsl.it)
17:26:18 <tdammers> monochrom: refuting the claim is easy. proving it may take a while.
17:26:40 coot joins (~coot@213.134.190.95)
17:30:37 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
17:31:15 jakalx joins (~jakalx@base.jakalx.net)
17:32:16 <Hecate> monochrom: it's actually very easy. Allocate a thousand billion terabyte of RAM
17:33:38 <exarkun> That can only demonstrate that you have an /allocator/ with a finite limit (or fail to demonstrate it).
17:33:51 <[exa]> Hecate: I have them allocated. What do I do now?
17:34:05 <exarkun> I think I would use a gravitational gradient measurement instrument.
17:34:19 <exarkun> An infinitely large computer is bound to have a measurable impact on the local spacetime continuum.
17:34:39 <[exa]> exarkun: good point, I'd say even a total impact
17:34:55 <[exa]> (unless the computer is elongated in one direction)
17:35:42 <geekosaur> remember that ghc allocates several TB without committing it :)
17:36:10 <arjun> Aren't we all inside a computer already?
17:36:38 × sprout quits (~quassel@77-169-234-124.fixed.kpn.net) (Ping timeout: 246 seconds)
17:37:02 <arjun> games like GTA have in-game mini-games, we have in-game computers
17:37:16 Midjak joins (~Midjak@82.66.147.146)
17:37:50 <EvanR> exarkun, if the computer was spread out, say clumped into galaxies and clusters spanning the entire universe
17:37:56 <EvanR> should work, not sure
17:38:13 <exarkun> EvanR: The universe doesn't even have infinite mass though
17:38:33 <exarkun> I think this infinitely big computer might just be incompatible with our current understanding of physics.
17:38:42 <EvanR> ambiguity between talking about the ENTIRE universe and the limited observable universe detected
17:39:28 <EvanR> but you're right there's a noticable effect on spacetime
17:39:38 × mbuf quits (~Shakthi@122.174.215.164) (Quit: Leaving)
17:39:48 × mvk quits (~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 240 seconds)
17:39:55 [exa] . o O (the surprise when you observe the whole universe and it generates a few next chunks as in minecraft)
17:39:57 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:41:42 <monochrom> Hecate: Hrm you're right, I got this thing flipped heh.
17:43:45 <EvanR> need a malloc that reacts to overallocation by blocking until amazon ships you more ram
17:44:06 <exarkun> malloc() can succeed and place the order in the background
17:44:12 <exarkun> only need to block when the page is written to
17:44:16 <EvanR> yeah, that
17:44:33 <exarkun> (this makes the implementation _much_ more realistic ...)
17:44:56 <Hecate> [exa]: commit to it then ;)
17:46:11 × vysn quits (~vysn@user/vysn) (Ping timeout: 260 seconds)
17:48:16 romesrf joins (~romes@185.5.8.134)
17:49:43 sprout joins (~quassel@2a02-a467-ccd6-1-c2b-6618-4046-f43a.fixed6.kpn.net)
17:50:15 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
18:01:12 jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com)
18:05:25 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
18:06:06 × alp_ quits (~alp@user/alp) (Remote host closed the connection)
18:06:25 alp_ joins (~alp@user/alp)
18:07:00 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
18:07:49 × alp_ quits (~alp@user/alp) (Remote host closed the connection)
18:08:09 alp_ joins (~alp@user/alp)
18:11:55 mikoto-chan joins (~mikoto-ch@213.177.151.239)
18:14:46 <tdammers> minecraft worlds are finite though
18:17:57 <EvanR> thanks microsoft
18:18:27 <EvanR> they put an invisible wall very much closer than previous hard limits
18:18:39 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
18:23:38 <[exa]> microsoft finitists!!!1
18:26:32 × deadmarshal_ quits (~deadmarsh@95.38.113.114) (Ping timeout: 248 seconds)
18:26:39 <tdammers> flat earth confirmed
18:32:37 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)
18:37:52 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
18:40:09 × thyriaen quits (~thyriaen@ip5f5af2d7.dynamic.kabel-deutschland.de) (Quit: Leaving)
18:40:41 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 246 seconds)
18:40:45 caef^ joins (~caef@50.227.69.228)
18:43:52 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:44:10 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
18:49:49 anomal joins (~anomal@87.227.196.109)
18:52:46 × arjun quits (~user@user/arjun) (Remote host closed the connection)
18:56:16 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
18:59:39 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)
19:00:00 × ubert quits (~Thunderbi@p200300ecdf15886161bde835a28140c8.dip0.t-ipconnect.de) (Quit: ubert)
19:00:20 ubert joins (~Thunderbi@p200300ecdf15886161bde835a28140c8.dip0.t-ipconnect.de)
19:00:53 × jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection)
19:01:12 jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com)
19:01:18 × romesrf quits (~romes@185.5.8.134) (Ping timeout: 272 seconds)
19:02:42 xaotuk joins (~sasha@109.245.225.166)
19:02:51 × ubert quits (~Thunderbi@p200300ecdf15886161bde835a28140c8.dip0.t-ipconnect.de) (Client Quit)
19:03:10 ubert joins (~Thunderbi@p200300ecdf15886161bde835a28140c8.dip0.t-ipconnect.de)
19:07:14 zincy joins (~zincy@2a00:23c8:970c:4801:51f:ae2a:2368:1dfb)
19:07:31 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
19:07:43 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:11:31 × kuribas quits (~user@ptr-17d51epkc6cunhibcd0.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
19:12:30 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds)
19:13:19 × coot quits (~coot@213.134.190.95) (Ping timeout: 240 seconds)
19:15:41 × caef^ quits (~caef@50.227.69.228) (Remote host closed the connection)
19:16:46 slack1256 joins (~slack1256@191.126.227.203)
19:17:26 × briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Quit: Lost terminal)
19:18:05 <slack1256> I am currently losing a politically battle at the company for using haskell on the future ;_; .
19:18:17 <slack1256> Like I am the middle of the reunion now.
19:18:45 <exarkun> slack1256: what's the alternative
19:18:54 coot joins (~coot@213.134.190.95)
19:19:09 <slack1256> The main argument is that is difficult to hire. But I am sure the recruiter are searching only in linkedin, but not using reddit nor -cafe.
19:19:33 <tdammers> well, haskellers *are* difficult to find, especially if you need a lot of them on short notice
19:19:51 <tdammers> whether you should ever run a company such that you need a lot of developers on a short notice is another discussion of course
19:20:48 <EvanR> new shipment of java coders coming up
19:22:57 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
19:23:44 <tdammers> "the last batch was faulty, we had to return them. they kept babbling about 'scah-lah' and 'funk-shernal proh-cramming' and such"
19:23:59 AlexZenon_2 is now known as AlexZenon
19:25:34 dhil joins (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net)
19:26:24 <slack1256> This sounds like BS to me. There are a bunch of guys here, on reddit and -cafe that are willing to get a work using haskell on production. I am pretty sure it is caused by where they are searching. How would I test this hypotesis ethically?
19:27:03 <tdammers> find a $10M research grant, hire them all
19:27:15 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:28:10 Pickchea joins (~private@user/pickchea)
19:28:38 <slack1256> The other complain is that there is no `wreq` for http2.
19:28:55 <slack1256> There is a Client module on a Kazu's library, but it is not ergonomic.
19:29:01 × ncf quits (~n@monade.li) (Quit: Fairfarren.)
19:29:11 nf joins (~n@monade.li)
19:29:32 × coot quits (~coot@213.134.190.95) (Quit: coot)
19:29:51 nf is now known as ncf
19:31:03 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
19:31:04 <dolio> Maybe you have a different idea of 'hard to hire.'
19:31:59 <slack1256> Maybe...
19:33:00 <dolio> Like, if you want to treat your programmers as disposable cogs, there are orders of magnitude more people using trendier languages to try to 'make money in tech,' or whatever.
19:35:06 jmdaemon joins (~jmdaemon@user/jmdaemon)
19:36:33 acidjnk joins (~acidjnk@p200300d0c73b45549932693d78c3d853.dip0.t-ipconnect.de)
19:36:39 × vorpuni quits (~pvorp@2001:861:3881:c690:aeec:dab5:81df:c256) (Ping timeout: 240 seconds)
19:38:08 × redb quits (~nmh@136.49.49.211) (Read error: Connection reset by peer)
19:38:14 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
19:38:21 <slack1256> BTW, do you guys use http2 as a client on any of your programs? What do you use or do?
19:40:25 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:41:00 shiraeeshi joins (~shiraeesh@109.166.57.88)
19:41:13 laolmtdea^ joins (~laolmtdea@50.227.69.228)
19:41:16 sw4n joins (~sw4n@cpe-104-228-16-7.nycap.res.rr.com)
19:42:01 liz joins (~liz@host109-151-125-217.range109-151.btcentralplus.com)
19:42:48 redb joins (~nmh@136.49.49.211)
19:49:38 × sw4n quits (~sw4n@cpe-104-228-16-7.nycap.res.rr.com) (Remote host closed the connection)
19:49:56 sw4n joins (~sw4n@cpe-104-228-16-7.nycap.res.rr.com)
19:50:08 × shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit)
19:53:00 × sw4n quits (~sw4n@cpe-104-228-16-7.nycap.res.rr.com) (Remote host closed the connection)
19:53:23 zeenk joins (~zeenk@2a02:2f0e:7713:b01:9f0b:5fe0:531e:9cf6)
19:54:52 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.5)
19:57:06 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:57:49 zeenk2 joins (~zeenk@82.79.126.41)
19:57:54 × zeenk quits (~zeenk@2a02:2f0e:7713:b01:9f0b:5fe0:531e:9cf6) (Ping timeout: 250 seconds)
20:00:55 × kaph quits (~kaph@net-2-42-128-49.cust.vodafonedsl.it) (Read error: Connection reset by peer)
20:00:59 × alp_ quits (~alp@user/alp) (Ping timeout: 240 seconds)
20:01:09 kaph joins (~kaph@net-2-42-128-49.cust.vodafonedsl.it)
20:04:24 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
20:04:54 qhong joins (~qhong@rescomp-21-400677.stanford.edu)
20:04:57 pavonia joins (~user@user/siracusa)
20:05:20 × zincy quits (~zincy@2a00:23c8:970c:4801:51f:ae2a:2368:1dfb) (Remote host closed the connection)
20:07:08 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
20:10:22 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:11:13 <hololeap> http/1.1 gang
20:12:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
20:12:17 <hololeap> I don't know the difference, tbh
20:12:36 shriekingnoise joins (~shrieking@201.231.16.156)
20:13:05 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 246 seconds)
20:13:13 <exarkun> I hear http3 is coming any minute now anyway
20:15:01 <sclv> there are a couple http2 clients in haskell and building a wreq-like interface over them wouldn’t be hard
20:15:35 <sclv> but also grpc is the only thing i know of that requires http2 and there are libraries specifically for that
20:16:50 <sclv> vis a vis the other stuff its not “hard to hire” 2 or 3 at a time at all. But if you want 20 or so at once its a different story — but again, who wants that!?
20:17:17 coot joins (~coot@213.134.190.95)
20:17:57 <exarkun> "hard" and "easy" are not intrinsic to the task, anyway. it is no doubt easier for some people/orgs to hire haskell programmers than it is for other people/orgs.
20:21:06 fendor_ joins (~fendor@178.165.165.71.wireless.dyn.drei.com)
20:22:54 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
20:24:00 × fendor quits (~fendor@178.115.54.135.wireless.dyn.drei.com) (Ping timeout: 276 seconds)
20:24:56 × jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 248 seconds)
20:25:08 × AkechiShiro quits (~licht@user/akechishiro) (Quit: WeeChat 3.2.1)
20:25:44 AkechiShiro joins (~licht@user/akechishiro)
20:27:00 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:27:09 × redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds)
20:28:56 redb joins (~nmh@136.49.49.211)
20:30:31 zincy joins (~zincy@2a00:23c8:970c:4801:51f:ae2a:2368:1dfb)
20:30:42 <slack1256> sclv: There is also apple APN stuff. That is http2 only AFAIK.
20:30:52 zeenk joins (~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685)
20:31:52 × zeenk2 quits (~zeenk@82.79.126.41) (Ping timeout: 272 seconds)
20:32:04 × hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds)
20:32:22 <sclv> interesting! I didn’t know
20:33:11 <sclv> apparently the final cutover was march 31
20:35:03 hololeap joins (~hololeap@user/hololeap)
20:38:43 <slack1256> cutover?
20:40:11 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:41:04 × hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds)
20:41:33 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
20:42:14 <geekosaur> https://developer.apple.com/news/?id=c88acm2b
20:43:04 mshiraeeshi joins (~shiraeesh@46.34.207.121)
20:45:10 × shiraeeshi quits (~shiraeesh@109.166.57.88) (Ping timeout: 272 seconds)
20:48:37 <slack1256> Oh, thanks geekosaur.
20:49:12 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
20:52:01 × zer0bitz quits (~zer0bitz@2001:2003:f444:8f00:90b9:bbad:a877:920a) (Read error: Connection reset by peer)
20:52:20 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
20:53:20 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
20:55:09 × coot quits (~coot@213.134.190.95) (Quit: coot)
20:58:03 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
21:02:59 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
21:03:27 ec joins (~ec@gateway/tor-sasl/ec)
21:05:03 × dextaa4 quits (~dextaa@user/dextaa) (Read error: Connection reset by peer)
21:05:32 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
21:06:28 dextaa4 joins (~dextaa@user/dextaa)
21:07:11 × zincy quits (~zincy@2a00:23c8:970c:4801:51f:ae2a:2368:1dfb) (Remote host closed the connection)
21:08:57 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:09:51 × dextaa4 quits (~dextaa@user/dextaa) (Read error: Connection reset by peer)
21:12:03 dextaa4 joins (~dextaa@user/dextaa)
21:16:22 stackdroid18 joins (14094@user/stackdroid)
21:17:28 × laolmtdea^ quits (~laolmtdea@50.227.69.228) (Ping timeout: 272 seconds)
21:21:01 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
21:23:18 Bulby[m] joins (~bulbyvrma@2001:470:69fc:105::1:fe0a)
21:23:53 <Bulby[m]> anyone have any idea how to read named pipes (i.e. things created w/ mkfifo)
21:25:00 mvk joins (~mvk@2607:fea8:5ce3:8500::aa1d)
21:27:18 <Bulby[m]> https://github.com/TheDrawingCoder-Gamer/haskell-status/blob/fifo/app/Status/Plugins/FIFOPipe.hs this crashes with an eof error when the pipe is written to
21:28:03 <geekosaur> they're tricky. there must be a writer first, and when that writer disconnects the pipe is dead. safest is to always open it read-write so it's always got both a writer and a reader, and use a protocol to indicate end of message
21:28:20 <geekosaur> if this is not what you want, perhaps you want an AF_LOCAL socket instead
21:28:22 <monochrom> :(
21:28:53 <Bulby[m]> i will only be reading; external programs will write
21:29:53 <geekosaur> I'm telling you how they work, not how you would like them to work
21:30:02 <Bulby[m]> 😭
21:30:09 <geekosaur> open it O_RDWR
21:30:23 <geekosaur> or use a socket instead
21:30:32 <geekosaur> FIFOs don't work thye way people always want them to
21:31:07 <Bulby[m]> how would a socket work. I want it to be able to be written to from the CLI so my sway config can write to it
21:31:57 <exarkun> some shells can make socket connections
21:32:16 <exarkun> or, that's not what you meant is it
21:32:17 <Bulby[m]> ☹️
21:32:20 alp_ joins (~alp@user/alp)
21:32:29 <exarkun> why can't your CLI program open a socket and connect somewhere?
21:32:44 <monochrom> Perhaps up the game and do dbus thingies...
21:32:48 <Bulby[m]> wym?
21:32:57 <sm> life is too short. Write numbered files in a directory. 🤪
21:33:26 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
21:34:06 <Bulby[m]> I want my sway config to be able to update the data, as it does it wob
21:34:35 <monochrom> exarkun: Probably a third-party program expects to just open(filename...) which may be incompatible if filename is a local socket. But I haven't checked.
21:34:44 <Bulby[m]> `https://github.com/TheDrawingCoder-Gamer/haskell-status/blob/fifo/app/Status/Plugins/FIFOPipe.hs`
21:34:44 <Bulby[m]> wai
21:34:49 <Bulby[m]> oh i always forget yanking
21:35:01 <Bulby[m]> `bindsym XF86AudioLowerVolume exec pamixer -ud 2 && pamixer --get-volume > $WOBSOCK`
21:35:21 <exarkun> there's always socat
21:35:29 <exarkun> your-program-writes-to-stdout | socat ...
21:35:41 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 246 seconds)
21:35:45 <Bulby[m]> it should handle multiple sockets
21:36:05 <monochrom> Interesting.
21:36:09 <exarkun> I can play the moving-goalposts game as well as anybody, but it happens to be dinner time now.
21:36:38 <monochrom> Heh "but exarkun but I'm on Windows!"
21:37:06 <jhagborg> Bulby[m], what is the goal here? You want some existing process (sway?) to be able to send a message to your program?
21:37:15 <monochrom> Although I feel that this is not so much moving goalpost as "I want, gimme".
21:37:17 <Bulby[m]> yes
21:37:58 × michalz quits (~michalz@185.246.204.107) (Remote host closed the connection)
21:38:02 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:38:03 <jhagborg> What interface does sway expect? Can you give it arbitrary commands? A filename? A dbus address?
21:38:13 <Bulby[m]> sway can run bash commands, so a CLI way from a different process is what I want
21:38:26 <Bulby[m]> bash commands?
21:38:27 malinoskj290 parts (~malinoskj@48.170-avail-pool-cc.sccoast.net) (malinoskj2 has left.)
21:38:30 <Bulby[m]> just shell commands
21:38:59 × [Leary] quits (~Leary]@122-58-90-96-vdsl.sparkbb.co.nz) (Remote host closed the connection)
21:39:25 <jhagborg> Ok, then you can do pretty much anything, but either a socket or dbus sounds good to me.
21:39:50 <Bulby[m]> ok... so how would the socket interface work on the sway side
21:40:04 [Leary] joins (~Leary]@122-58-90-96-vdsl.sparkbb.co.nz)
21:40:15 <jhagborg> From the command line, you can run echo, piped into socat
21:40:45 <Bulby[m]> what libs would I use for sockets
21:40:59 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
21:41:27 cheater joins (~Username@user/cheater)
21:41:45 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
21:42:00 × Pickchea quits (~private@user/pickchea) (Ping timeout: 276 seconds)
21:43:29 <jhagborg> I'm not sure... likely something in `unix`?
21:43:49 ec joins (~ec@gateway/tor-sasl/ec)
21:44:01 <monochrom> network, and use AF_UNIX
21:44:04 × slack1256 quits (~slack1256@191.126.227.203) (Ping timeout: 272 seconds)
21:44:44 × ec quits (~ec@gateway/tor-sasl/ec) (Client Quit)
21:44:55 ec joins (~ec@gateway/tor-sasl/ec)
21:44:58 × dextaa4 quits (~dextaa@user/dextaa) (Remote host closed the connection)
21:45:04 <monochrom> I think the unix package doesn't have the socket API.
21:45:16 <Bulby[m]> it does not
21:47:32 <jhagborg> dbus is another option. it's a bit higher-level than sockets. it has support in the `dbus` package
21:48:12 <jhagborg> you can call it from cli with dbus-send
21:48:45 <jhagborg> I would go with that, so I don't have to think about marshalling arguments myself
21:49:19 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 256 seconds)
21:49:21 <monochrom> geekosaur: Hrm, I'm reading a linux book, supposedly opening a fifo for read-only is safe, it just blocks until someone else opens for writing...
21:49:36 <geekosaur> yes. what happens when the writer closes?
21:49:55 <geekosaur> (answer: you get eof, and nobody else can open for write)
21:52:38 malinoskj290 joins (~malinoskj@48.170-avail-pool-cc.sccoast.net)
21:53:02 coot joins (~coot@213.134.190.95)
21:55:37 segfaultfizzbuzz joins (~segfaultf@135-180-12-202.fiber.dynamic.sonic.net)
21:56:25 <monochrom> Supposedly a server could go "if eof then I close too and open again"...
21:56:54 <jhagborg> Bulby[m], if what you're writing is a user or system daemon, and you're going to run it with systemd, there is some nice integration with dbus... for example, you can have your application only start up once sway tries to call it. or you can consider your software not "ready" until it claims a dbus name
21:57:07 ub joins (~Thunderbi@p548c8d44.dip0.t-ipconnect.de)
21:57:09 <monochrom> However, given that no packet boundary is guaranteed, it is still a good idea to make your own delimiter.
21:57:25 × zeenk quits (~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685) (Quit: Konversation terminated!)
21:57:28 <jhagborg> monochrom, that sounds like there could be a race condition
21:57:36 vicfred joins (~vicfred@user/vicfred)
21:57:43 × ubert quits (~Thunderbi@p200300ecdf15886161bde835a28140c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
21:57:44 ub is now known as ubert
21:57:55 <jhagborg> what if the client sends multiple requests quickly?
21:58:16 <Bulby[m]> it's meant for my status bar
21:58:20 <Bulby[m]> so the latest one will be taken
21:58:26 <monochrom> Very possibly in this application it's overkill to worry about that.
21:59:27 <monochrom> But I'm OK with this stance: Since you need your own delimiter convention anyway, why not have the server open(... RDWR) and be done with it.
22:01:07 <jhagborg> anyway, my point is that using d-bus is probably less new code, and you don't have to worry about those types of details.
22:01:30 × xaotuk quits (~sasha@109.245.225.166) (Ping timeout: 276 seconds)
22:01:35 <jhagborg> it is less portable, but if you're targeting a standard gnu/linux desktop, that's not an issue
22:01:56 <monochrom> Maybe I should teach dbus to my students too... (summer term begins in 2 weeks!)
22:04:32 × mmhat quits (~mmh@55d4c973.access.ecotel.net) (Quit: WeeChat 3.5)
22:06:08 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
22:06:23 × jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection)
22:06:43 jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com)
22:09:29 × orcus quits (~orcus@user/brprice) (Ping timeout: 248 seconds)
22:10:12 × dispater quits (~dispater@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
22:10:20 xff0x_ joins (~xff0x@om126158204045.30.openmobile.ne.jp)
22:10:30 dispater joins (~dispater@user/brprice)
22:11:32 orcus joins (~orcus@user/brprice)
22:18:51 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
22:21:49 × coot quits (~coot@213.134.190.95) (Quit: coot)
22:25:54 machinedgod joins (~machinedg@24.105.81.50)
22:29:12 × acidjnk quits (~acidjnk@p200300d0c73b45549932693d78c3d853.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
22:31:41 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
22:32:12 <[itchyjunk]> Got a noob question. why does `let a = blah` work but `let A = blah` give me a `Not in scope: data constructor 'A'` ?
22:32:20 <[itchyjunk]> i thought variable names could start with A right?
22:33:06 <geekosaur> nope, uppercase first letter is always a constructor
22:33:16 <[itchyjunk]> ah doh
22:33:27 <geekosaur> and `let A = blah` attempts to pattern match `blah` against the constructor `A`
22:33:42 <[itchyjunk]> makes sense
22:34:28 <geekosaur> (this is useful to extract a value, for example)
22:36:21 × mshiraeeshi quits (~shiraeesh@46.34.207.121) (Ping timeout: 256 seconds)
22:36:56 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 250 seconds)
22:39:19 × aeka quits (~aeka@user/hiruji) (Ping timeout: 240 seconds)
22:39:54 aeka joins (~aeka@user/hiruji)
22:40:19 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:44:28 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
22:46:05 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:46:35 × zmt00 quits (~zmt00@user/zmt00) (Quit: Leaving)
22:46:50 zmt00 joins (~zmt00@user/zmt00)
22:51:25 × segfaultfizzbuzz quits (~segfaultf@135-180-12-202.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz)
22:52:18 slaydr joins (~slaydr@193.19.109.224)
22:53:14 × aeka quits (~aeka@user/hiruji) (Quit: ZNC 1.8.2 - https://znc.in)
22:56:11 × mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 256 seconds)
22:58:37 <[itchyjunk]> I seem to not recall how : works. Say i have `a = [1,2,3]` and i want [[1,2,3],[]]. `[a]` does give me `[[1,2,3]]` which is partially what i want. but `[a] : []` gives me [[a]] basically
22:59:23 <geekosaur> :t (:)
22:59:25 <lambdabot> a -> [a] -> [a]
22:59:52 <geekosaur> > let a = [1,2,3] in a:[]
22:59:54 <lambdabot> [[1,2,3]]
23:00:03 <geekosaur> > let a = [1,2,3] in [a]:[]
23:00:08 <lambdabot> [[[1,2,3]]]
23:00:40 <geekosaur> > let a = [1,2,3] in a:[[]]:[]
23:00:42 <lambdabot> error:
23:00:42 <lambdabot> • No instance for (Num [()]) arising from a use of ‘e_1123’
23:00:42 <lambdabot> • In the expression: e_1123
23:01:08 <[itchyjunk]> ahh i had the type signature opposite in my head i think
23:01:43 <[itchyjunk]> :x yup that seems to be my issue
23:06:47 <[itchyjunk]> I might have over complicated this as per usual
23:07:09 <[itchyjunk]> So given a = [1,2,3], i wanted [[],[1],[2],[3]] which i got with
23:07:30 <[itchyjunk]> [] : [x | x <- [x | x <- [[x] | x<-a]]]
23:07:48 <[itchyjunk]> i can also get [[],[1,2,3]], but i can't seem to combine these :x
23:08:21 <[itchyjunk]> to get `[[],[1],[2],[3],[1,2,3]]`
23:11:39 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 240 seconds)
23:11:57 machinedgod joins (~machinedg@24.105.81.50)
23:13:16 <Cale> [itchyjunk]: You don't want the 2-element subsets?
23:13:42 <[itchyjunk]> i do :D
23:13:53 <[itchyjunk]> eventually haha
23:14:26 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Quit: leaving)
23:14:36 <[itchyjunk]> [[x,y] | x<-a, y<-a] gives me something very close (just have to pick the unique ones)
23:14:49 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
23:15:14 <[itchyjunk]> this might not be a good approach at all for writing out powersets though :x
23:15:46 <dons> morning all
23:15:50 <geekosaur> o/
23:16:32 <Cale> [itchyjunk]: Every sublist of (x:xs) either contains x or it doesn't. In either case, what follows is a sublist of xs
23:18:22 <[itchyjunk]> hmm
23:18:45 <[itchyjunk]> the first part makes sense. every sublist of (x:xs) either contains x or it doesn't
23:22:42 <[itchyjunk]> So i suppose a recursion is being hinted at. i'll think about this some more
23:23:19 jgeerds joins (~jgeerds@d53604b0.access.ecotel.net)
23:23:21 <Zemyla> Isn't there a oneliner that uses foldrM and [False, True]?
23:23:23 mshiraeeshi joins (~shiraeesh@46.34.207.121)
23:24:57 <[itchyjunk]> :O
23:25:20 <[itchyjunk]> does it include binary representation of numbers and bit shifting?
23:25:30 <[Leary]> There's quite a cute version with a regular foldr, though the element order isn't ideal.
23:25:33 <[itchyjunk]> if so, someone told me about that technique but it was a bit over my head
23:25:49 <Zemyla> :t filterM $ const [False, True]
23:25:50 <lambdabot> [b] -> [[b]]
23:26:09 <[itchyjunk]> hmmm
23:26:27 <Zemyla> > filterM (const [False, True]) [1,2,3]
23:26:29 <lambdabot> [[],[3],[2],[2,3],[1],[1,3],[1,2],[1,2,3]]
23:26:40 <[itchyjunk]> hmmmmmmm
23:27:28 × lisq quits (~quassel@lis.moe) (Quit: lisq)
23:27:55 lis joins (~quassel@lis.moe)
23:28:12 lis is now known as lisq
23:29:05 deadmarshal_ joins (~deadmarsh@95.38.115.70)
23:30:04 × lagash quits (lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
23:33:17 × deadmarshal_ quits (~deadmarsh@95.38.115.70) (Ping timeout: 246 seconds)
23:33:17 <[itchyjunk]> ha, not quite. Need more thinking. https://bpa.st/COWA
23:33:35 × kilolympus quits (~kilolympu@31.205.200.235) (Ping timeout: 256 seconds)
23:34:43 × dhil quits (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Ping timeout: 256 seconds)
23:35:16 × machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection)
23:35:17 lagash joins (lagash@lagash.shelltalk.net)
23:36:16 machinedgod joins (~machinedg@24.105.81.50)
23:37:39 <EvanR> what are you trying to do, get all the subsequences?
23:38:10 <[itchyjunk]> yes, given some finite set, produce its powerset :x
23:38:15 <EvanR> don't try this with [0..]
23:38:44 <[itchyjunk]> yeah i've tried things with the infinite lists in the past and regretted it
23:39:40 aeka joins (~aeka@user/hiruji)
23:39:53 <monochrom> That "clearly" will just give you [[a], [b], [c]]
23:40:10 <monochrom> OK, [[a], [b], [c], []]
23:40:40 × aeka quits (~aeka@user/hiruji) (Client Quit)
23:40:45 <EvanR> also, don't use this
23:40:51 <EvanR> :t subsequences
23:40:52 <lambdabot> [a] -> [[a]]
23:40:58 <monochrom> I don't know, I would think with induction proofs: ...
23:41:04 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
23:41:18 <[itchyjunk]> yes i tested it. i need to take take (x:xs), produce all subsets of xs, then add x to one copy of it and not the other maybe
23:41:19 <monochrom> Suppose someone calls me with myPowerSet [a,b,c].
23:41:42 <EvanR> [itchyjunk], sounds like a winner
23:41:48 <[itchyjunk]> hmmmmm
23:42:13 <monochrom> By induction hypothesis, I can just assume that the recursive call myPowerSet [b,c] works correctly. Let's say it returns [[b,c], [b], [c], []].
23:43:01 <monochrom> So my only job is to bridge the gap between [[b,c], [b], [c], []] and some kind of [[a,b,c], [a,b], [a,c], [a], [b,c], [b], [c], []]
23:43:38 <monochrom> The order is negotiable. You get my point.
23:44:34 <monochrom> The nice thing though is you notice how half of it is just [b,c], [b], [c], [] again, straight from the recursive call, and how the other half is just "add a to everyone".
23:44:58 <[itchyjunk]> hmm i do notice that
23:45:35 <EvanR> to find all subsequences of [0..] just get all subsequences of [1..], assuming that works, prepend 0 to one copy of it not the other. Why does this fail? xD
23:46:56 × tabemann quits (~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection)
23:49:17 tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
23:49:24 <EvanR> to have a chance of productivity, output the one with 0 first
23:51:56 slack1256 joins (~slack1256@186.11.81.160)
23:54:47 × jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 240 seconds)
23:55:18 <whatsupdoc> Just checking, are y'all still worshipping haskell?
23:57:17 × slack1256 quits (~slack1256@186.11.81.160) (Remote host closed the connection)
23:57:19 <[itchyjunk]> i tried worshipping a rock in the park but that didn't give me a powerset given some finite set
23:57:49 <EvanR> your rock probably needed more ram to run GHC
23:58:12 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
23:58:32 <Bulby[m]> have you tried a raspberry pi zero?
23:58:47 <[itchyjunk]> didn't find that in the park :x
23:59:10 <EvanR> a few decades too early for that
23:59:12 <Bulby[m]> try using sticks as attena
23:59:22 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
23:59:55 <monochrom> I heard that Pringles cans make great antennas for wifi

All times are in UTC on 2022-04-25.