2024/07/20

2024-07-20 00:00:09 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-07-20 00:00:28 +0200phma(~phma@2001:5b0:211f:9678:d7d4:309e:db55:1e79) (Read error: Connection reset by peer)
2024-07-20 00:01:31 +0200phma(~phma@2001:5b0:210f:55a8:9fbe:3c54:a526:88c8)
2024-07-20 00:01:34 +0200haetsal(~quassel@221.138.168.192) (Quit: No Ping reply in 180 seconds.)
2024-07-20 00:02:50 +0200haetsal(~quassel@221.138.168.192)
2024-07-20 00:03:05 +0200cyphase(~cyphase@user/cyphase)
2024-07-20 00:06:43 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-07-20 00:08:30 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 276 seconds)
2024-07-20 00:12:56 +0200 <Inst> actually, when you need a queue
2024-07-20 00:13:00 +0200 <Inst> you can just use sequence, no?
2024-07-20 00:13:25 +0200 <monochrom> You can also just use [].
2024-07-20 00:14:01 +0200 <Inst> for O(n) dequeue :3
2024-07-20 00:14:39 +0200 <monochrom> sequence is not O(1) either.
2024-07-20 00:15:43 +0200 <monochrom> And to think we have just gone through a long-drawn conversation, jokes, and field stories about if you don't write more conditions then anything goes.
2024-07-20 00:16:10 +0200cyphase(~cyphase@user/cyphase)
2024-07-20 00:16:27 +0200 <Inst> i was trying to build a queue in haskell, ended up building a circular queue instead
2024-07-20 00:18:01 +0200 <c_wraith> theoretically, Okasaki queues have O(1) worst-case push and pop
2024-07-20 00:18:41 +0200 <c_wraith> But they're also confusing as heck, and the simplest structure in his thesis
2024-07-20 00:19:12 +0200 <monochrom> I coded it up so now it is simple to just import. (But I also understood it.)
2024-07-20 00:19:17 +0200 <Inst> wait, okasaki's purely functional data structures was his thesis?
2024-07-20 00:19:31 +0200xal(~xal@mx1.xal.systems) ()
2024-07-20 00:19:32 +0200 <Inst> doctoral dissertation, rather
2024-07-20 00:19:41 +0200 <geekosaur> the book is an extension of it, yes
2024-07-20 00:20:00 +0200xal(~xal@mx1.xal.systems)
2024-07-20 00:20:02 +0200 <monochrom> For most people though amortized-O(1) is good enough. Then it's just (front_list, back_list).
2024-07-20 00:20:26 +0200 <monochrom> Someone actually did that for an STM queue.
2024-07-20 00:20:53 +0200 <c_wraith> One of Okasaki's first points is that amortized analysis can break down badly in persistent data structures, if your use pattern isn't very friendly
2024-07-20 00:21:53 +0200 <c_wraith> So, like.. Using the ([a], [a]) representation can open up complexity-based DoS attacks on a service if it can be manipulated externally
2024-07-20 00:22:21 +0200 <monochrom> Ah yeah it assumes ephemeral (even linear) not persistent.
2024-07-20 00:23:19 +0200 <monochrom> I swear I never use queues persistently so I'm good. :)
2024-07-20 00:23:41 +0200 <c_wraith> ah, like how C code never has memory unsafety!
2024-07-20 00:23:55 +0200 <monochrom> "That's not fair!"
2024-07-20 00:25:33 +0200cpressey(~weechat@176.254.71.203)
2024-07-20 00:26:15 +0200 <monochrom> Ugh too much Haskell harms C programming.
2024-07-20 00:26:40 +0200 <c_wraith> very true
2024-07-20 00:27:15 +0200 <c_wraith> I just start thinking of all the footguns and say "you know, I bet I don't actually need to do this."
2024-07-20 00:27:24 +0200 <monochrom> I have "int f(int x) { g(0, x); }" and I thought it meant that the return value of g() becomes the return value of f(), just like in Haskell, right? RIGHT?
2024-07-20 00:27:50 +0200 <c_wraith> it took me two reads to realize why that wasn't true
2024-07-20 00:28:01 +0200 <monochrom> Fortunately some kind of -Wall saved me, but I was puzzled why it thinks I didn't specify a return value.
2024-07-20 00:28:11 +0200 <haskellbridge> <mauke> Hey, it works in Perl :-D
2024-07-20 00:28:13 +0200 <geekosaur> whereas I spotted it immediately
2024-07-20 00:28:57 +0200 <geekosaur> but I am involved with enough C/C++ code to keep things like that ready to mind
2024-07-20 00:28:58 +0200 <c_wraith> you need to do more Haskell. :P
2024-07-20 00:29:22 +0200 <geekosaur> I'm also fairly good at context switching
2024-07-20 00:29:34 +0200 <haskellbridge> <mauke> C/C++ has undefined behavior
2024-07-20 00:30:20 +0200 <geekosaur> I'm half tempted to say they are undefined behavior
2024-07-20 00:33:25 +0200sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 248 seconds)
2024-07-20 00:38:13 +0200zzz(~z@user/zero) (Ping timeout: 248 seconds)
2024-07-20 00:38:47 +0200 <Inst> https://hackage.haskell.org/package/containers-0.7/docs/Data-Sequence.html
2024-07-20 00:38:49 +0200 <Inst> looking at the thing
2024-07-20 00:39:11 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-07-20 00:40:06 +0200 <Inst> O(1) access, O(1) queue, O(log(n)) splitting, seems as though it should do everything you'd want a FIFO queue for, no?
2024-07-20 00:40:46 +0200 <c_wraith> the constant factors are kinda high.
2024-07-20 00:41:01 +0200acidjnk(~acidjnk@2003:d6:e72c:fb96:64ac:4517:a3be:c0ce) (Ping timeout: 252 seconds)
2024-07-20 00:41:12 +0200 <Inst> iirc someone benchmarked it vs list, and that was the problem
2024-07-20 00:45:50 +0200zero(~z@user/zero)
2024-07-20 00:48:51 +0200ddellacosta(~ddellacos@ool-44c73d29.dyn.optonline.net)
2024-07-20 00:54:57 +0200cpressey(~weechat@176.254.71.203) (Ping timeout: 252 seconds)
2024-07-20 00:56:17 +0200NullPointerExcep(~NullPoint@200.82.250.153)
2024-07-20 01:04:27 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-07-20 01:08:31 +0200gmg(~user@user/gehmehgeh) (Ping timeout: 260 seconds)
2024-07-20 01:08:53 +0200 <monochrom> Also IIRC those O(1)'s are amortized only.
2024-07-20 01:17:36 +0200 <exarkun> Correct
2024-07-20 01:29:45 +0200tomku(~tomku@user/tomku) (Ping timeout: 276 seconds)
2024-07-20 01:36:23 +0200tomku(~tomku@user/tomku)
2024-07-20 01:40:55 +0200ach_ol(~ach_ol@c-71-62-230-245.hsd1.va.comcast.net) (Quit: Leaving.)
2024-07-20 01:47:01 +0200Square2(~Square@user/square) (Ping timeout: 248 seconds)
2024-07-20 01:52:31 +0200CiaoSen(~Jura@2a05:5800:225:1a00:e6b9:7aff:fe80:3d03) (Ping timeout: 252 seconds)
2024-07-20 02:05:26 +0200gmg(~user@user/gehmehgeh)
2024-07-20 02:08:57 +0200oo_miguel(~Thunderbi@78.10.207.46) (Quit: oo_miguel)
2024-07-20 02:15:25 +0200bearen(goku@user/bearen)
2024-07-20 02:21:30 +0200 <NullPointerExcep> Hi! I'm following the trees-that-grow paper, but I hit yet another hill with type families and quantified  constraints.
2024-07-20 02:21:31 +0200 <NullPointerExcep> Suppose you have the following definitions:
2024-07-20 02:21:31 +0200 <NullPointerExcep> ```
2024-07-20 02:21:32 +0200 <NullPointerExcep> class RValue (ctx :: Type) (a :: MyTypes)
2024-07-20 02:21:33 +0200 <NullPointerExcep> type family UpcastX (ctx :: Type) (a :: MyTypes) (b :: MyTypes) :: Type
2024-07-20 02:21:33 +0200 <NullPointerExcep> data ExprTag
2024-07-20 02:21:33 +0200 <NullPointerExcep> data Proof (psi :: k -> Constraint) (a :: k) where
2024-07-20 02:21:34 +0200 <NullPointerExcep>  P :: psi a => Proof psi a
2024-07-20 02:21:34 +0200 <NullPointerExcep> ```
2024-07-20 02:21:35 +0200 <NullPointerExcep> Now, let's say i wanted to embed the quantified constraint `forall (a :: MyTypes). RValue ExprTag (Lazy (Lazy a)) `.
2024-07-20 02:21:35 +0200 <NullPointerExcep> I don't think I can do that with `Proof` due to the quantifier, I can do a workaround with:
2024-07-20 02:21:36 +0200 <NullPointerExcep> ```
2024-07-20 02:21:36 +0200 <NullPointerExcep> data Proof' (psi :: k1 -> Constraint) (f :: k0 -> k1) where
2024-07-20 02:21:37 +0200 <NullPointerExcep>   P' :: forall k (a :: k) f psi. psi (f a) => Proof' psi f
2024-07-20 02:21:37 +0200 <NullPointerExcep> type instance UpcastX ExprTag a b = Proof' (RValue ExprTag) Value
2024-07-20 02:21:38 +0200 <NullPointerExcep> ```
2024-07-20 02:21:38 +0200 <NullPointerExcep> But it's bothering me that I needed another abstraction, is there a better/more general way to do this?
2024-07-20 02:26:45 +0200Midjak(~MarciZ@82.66.147.146) (Quit: This computer has gone to sleep)
2024-07-20 02:27:19 +0200Midjak(~MarciZ@82.66.147.146)
2024-07-20 02:32:09 +0200madhavanmiui(~madhavanm@2409:40f4:101e:36e6:8000::)
2024-07-20 02:34:04 +0200madhavanmiui(~madhavanm@2409:40f4:101e:36e6:8000::) (Client Quit)
2024-07-20 02:34:20 +0200califax(~califax@user/califx) (Remote host closed the connection)
2024-07-20 02:36:36 +0200califax(~califax@user/califx)
2024-07-20 02:54:34 +0200ach_ol(~ach_ol@c-71-62-230-245.hsd1.va.comcast.net)
2024-07-20 03:11:49 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 248 seconds)
2024-07-20 03:15:49 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
2024-07-20 03:20:21 +0200tomku(~tomku@user/tomku) (Ping timeout: 248 seconds)
2024-07-20 03:20:34 +0200tomku(~tomku@user/tomku)
2024-07-20 03:42:04 +0200kupi(uid212005@2a03:5180:f:4::3:3c25)
2024-07-20 03:48:41 +0200NullPointerExcep(~NullPoint@200.82.250.153) (Ping timeout: 256 seconds)
2024-07-20 03:59:30 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-07-20 04:05:37 +0200bearen(goku@user/bearen) (Ping timeout: 252 seconds)
2024-07-20 04:07:02 +0200Guest27(~Guest27@2603:7080:2a00:400:6d1b:c935:9a53:5811)
2024-07-20 04:09:44 +0200pavonia(~user@user/siracusa)
2024-07-20 04:19:55 +0200td_(~td@i53870905.versanet.de) (Ping timeout: 252 seconds)
2024-07-20 04:21:49 +0200td_(~td@i53870918.versanet.de)
2024-07-20 04:32:01 +0200tomku(~tomku@user/tomku) (Ping timeout: 252 seconds)
2024-07-20 04:32:15 +0200tomku(~tomku@user/tomku)
2024-07-20 04:35:27 +0200NullPointerExcep(~NullPoint@200.82.250.153)
2024-07-20 04:35:54 +0200NullPointerExcep(~NullPoint@200.82.250.153) (Client Quit)
2024-07-20 04:36:17 +0200Guest27(~Guest27@2603:7080:2a00:400:6d1b:c935:9a53:5811) (Ping timeout: 256 seconds)
2024-07-20 05:00:20 +0200supra(~vanilla@user/supra)
2024-07-20 05:01:14 +0200supra(~vanilla@user/supra) ()
2024-07-20 05:18:13 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
2024-07-20 05:40:32 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-07-20 05:41:40 +0200skyesoss(~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net) (Quit: skyesoss)
2024-07-20 06:00:12 +0200aforemny(~aforemny@2001:9e8:6cf3:7d00:7722:6259:6fe2:da4f)
2024-07-20 06:01:29 +0200aforemny_(~aforemny@2001:9e8:6cd6:d600:9028:bc24:7dc9:b4c1) (Ping timeout: 252 seconds)
2024-07-20 06:19:58 +0200kubo(~kubo@37.230.58.162)
2024-07-20 06:20:29 +0200 <kubo> ¿Alguien sabe?
2024-07-20 06:21:06 +0200euleritian(~euleritia@dynamic-176-003-020-012.176.3.pool.telefonica.de) (Read error: Connection reset by peer)
2024-07-20 06:21:37 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-20 06:21:48 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-07-20 06:22:35 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-20 06:27:28 +0200cpressey(~weechat@176.254.71.203)
2024-07-20 06:30:06 +0200myxos(~myxos@syn-065-028-251-121.res.spectrum.com) (Ping timeout: 272 seconds)
2024-07-20 06:36:31 +0200kubo(~kubo@37.230.58.162) (Remote host closed the connection)
2024-07-20 06:40:27 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
2024-07-20 06:40:57 +0200euleritian(~euleritia@77.22.252.56)
2024-07-20 07:07:45 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
2024-07-20 07:25:37 +0200aaronv(~aaronv@user/aaronv)
2024-07-20 07:28:15 +0200billchenchina-(~billchenc@223.49.170.54)
2024-07-20 07:28:19 +0200billchenchina-(~billchenc@223.49.170.54) (Remote host closed the connection)
2024-07-20 07:28:53 +0200euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-07-20 07:29:01 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-20 07:33:48 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2024-07-20 07:36:14 +0200jkachmar(~jkachmar@pool-108-41-84-203.nycmny.fios.verizon.net)
2024-07-20 07:36:53 +0200NullPointerExcep(~NullPoint@200.82.250.153)
2024-07-20 07:40:09 +0200smalltalkman(uid545680@id-545680.hampstead.irccloud.com)
2024-07-20 07:44:58 +0200NullPointerExcep(~NullPoint@200.82.250.153) (Quit: Ping timeout (120 seconds))
2024-07-20 07:45:08 +0200NullPointerExcep(~NullPoint@200.82.250.153)
2024-07-20 07:45:53 +0200CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-07-20 07:46:59 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-07-20 07:47:32 +0200euleritian(~euleritia@77.22.252.56)
2024-07-20 07:48:23 +0200CrunchyFlakes(~CrunchyFl@146.52.130.128)
2024-07-20 07:51:45 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-07-20 07:52:50 +0200skyesoss(~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net)
2024-07-20 07:53:02 +0200 <NullPointerExcep> do we have unsaturated type families?
2024-07-20 07:55:49 +0200 <jkachmar> the proposal was accepted & iirc Csongor had some sort of branch associated with his paper but nothing that's landed in GHC afaik
2024-07-20 07:57:57 +0200 <Leary> You can always defunctionalise them yourself though.
2024-07-20 07:59:01 +0200 <jkachmar> as always, lysxia has a library for this: https://hackage.haskell.org/package/first-class-families
2024-07-20 07:59:02 +0200 <NullPointerExcep> thanks! I saw something along the lines being tagged as merged on github, and thought I no longer needed to defunctionalize things
2024-07-20 08:00:43 +0200 <NullPointerExcep> ohh, shiny, I'll give it an eye
2024-07-20 08:00:46 +0200 <lyxia> do you mean P' :: forall a. psi (f a) => Proof' psi f or (forall a. psi (f a)) => Proof' psi f ? because only the latter is a quantified constraint
2024-07-20 08:01:36 +0200 <NullPointerExcep> the latter c:
2024-07-20 08:03:50 +0200 <lyxia> then you can use a simpler data Dict
2024-07-20 08:04:46 +0200 <lyxia> data Dict (c :: Constraint) where Dict :: c => Dict c and c can be a synonym for a quantified constraint (or not) class (forall a. psi (f a)) => C psi f ; instance (forall a. psi (f a)) => C psi f
2024-07-20 08:07:57 +0200euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-07-20 08:08:33 +0200euleritian(~euleritia@77.22.252.56)
2024-07-20 08:11:02 +0200acidjnk(~acidjnk@p200300d6e72cfb291c0587c5c944f391.dip0.t-ipconnect.de)
2024-07-20 08:14:22 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-07-20 08:15:17 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
2024-07-20 08:15:52 +0200 <NullPointerExcep> omg, you are totally right! so obvious too, but I can't seem to use quantified constraints inside a type instance ;(
2024-07-20 08:17:30 +0200 <NullPointerExcep> something like type instance FooX MyContainer = Dict (forall a. Show (f a)) is rejected even with impredicative types turned on
2024-07-20 08:21:03 +0200euphores(~SASL_euph@user/euphores)
2024-07-20 08:21:57 +0200 <NullPointerExcep> ohhh
2024-07-20 08:22:07 +0200 <NullPointerExcep> I found the quantified constraint trick in your page!
2024-07-20 08:22:49 +0200 <NullPointerExcep> brilliant, thank you so much!
2024-07-20 08:33:39 +0200 <lyxia> :)
2024-07-20 08:38:27 +0200ach_ol(~ach_ol@c-71-62-230-245.hsd1.va.comcast.net) ()
2024-07-20 08:41:50 +0200kupi(uid212005@2a03:5180:f:4::3:3c25) (Quit: Connection closed for inactivity)
2024-07-20 08:51:10 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-20 08:54:48 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-07-20 09:01:29 +0200jkachmar(~jkachmar@pool-108-41-84-203.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
2024-07-20 09:06:30 +0200euleritian(~euleritia@77.22.252.56) (Remote host closed the connection)
2024-07-20 09:06:44 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-20 09:11:54 +0200tomku(~tomku@user/tomku) (Ping timeout: 276 seconds)
2024-07-20 09:12:08 +0200tomku(~tomku@user/tomku)
2024-07-20 09:21:17 +0200SteelBlueSilk(~SteelBlue@user/SteelBlueSilk) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in)
2024-07-20 09:22:04 +0200SteelBlueSilk(~SteelBlue@c-98-42-249-36.hsd1.ca.comcast.net)
2024-07-20 09:22:04 +0200SteelBlueSilk(~SteelBlue@c-98-42-249-36.hsd1.ca.comcast.net) (Changing host)
2024-07-20 09:22:04 +0200SteelBlueSilk(~SteelBlue@user/SteelBlueSilk)
2024-07-20 09:25:16 +0200arcadewise(52968ed80d@2a03:6000:1812:100::3df) (Ping timeout: 245 seconds)
2024-07-20 09:25:16 +0200tjbc(~tjbc@user/fliife) (Ping timeout: 245 seconds)
2024-07-20 09:25:43 +0200tjbc(~tjbc@user/fliife)
2024-07-20 09:26:14 +0200sus(1b7af6299f@user/zeromomentum) (Ping timeout: 245 seconds)
2024-07-20 09:26:14 +0200dispater(~dispater@mail.brprice.uk) (Ping timeout: 245 seconds)
2024-07-20 09:26:39 +0200fgaz_(1ff9197ed6@2a03:6000:1812:100::11ea) (Ping timeout: 245 seconds)
2024-07-20 09:26:41 +0200dispater(~dispater@mail.brprice.uk)
2024-07-20 09:26:42 +0200arcadewise(52968ed80d@2a03:6000:1812:100::3df)
2024-07-20 09:26:48 +0200sus(1b7af6299f@user/zeromomentum)
2024-07-20 09:27:59 +0200fgaz_(1ff9197ed6@2a03:6000:1812:100::11ea)
2024-07-20 09:30:28 +0200NullPointerExcep(~NullPoint@200.82.250.153) (Quit: Client closed)
2024-07-20 09:33:19 +0200b20n(sid115913@id-115913.uxbridge.irccloud.com) (Ping timeout: 245 seconds)
2024-07-20 09:33:30 +0200b20n(sid115913@id-115913.uxbridge.irccloud.com)
2024-07-20 09:34:09 +0200kuruczgy(55b66dd3ae@2a03:6000:1812:100::127f) (Ping timeout: 245 seconds)
2024-07-20 09:34:16 +0200kuruczgy(55b66dd3ae@2a03:6000:1812:100::127f)
2024-07-20 09:34:59 +0200eso(a0662dfd5e@2a03:6000:1812:100::1266) (Ping timeout: 245 seconds)
2024-07-20 09:38:02 +0200eso(a0662dfd5e@2a03:6000:1812:100::1266)
2024-07-20 09:45:36 +0200Midjak(~MarciZ@82.66.147.146) (Quit: This computer has gone to sleep)
2024-07-20 09:53:57 +0200cpressey(~weechat@176.254.71.203) (Ping timeout: 252 seconds)
2024-07-20 09:56:05 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2024-07-20 09:56:45 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 276 seconds)
2024-07-20 09:57:27 +0200Lord_of_Life_Lord_of_Life
2024-07-20 10:03:08 +0200skyesoss(~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net) (Ping timeout: 252 seconds)
2024-07-20 10:05:51 +0200aaronv(~aaronv@user/aaronv) (Ping timeout: 276 seconds)
2024-07-20 10:21:13 +0200cpressey(~weechat@176.254.71.203)
2024-07-20 10:28:05 +0200ash3en(~Thunderbi@2a01:c22:888e:9900:1578:4a37:8e5e:967)
2024-07-20 10:28:44 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2024-07-20 10:31:12 +0200cpressey(~weechat@176.254.71.203) (Ping timeout: 276 seconds)
2024-07-20 10:48:20 +0200cpressey(~weechat@176.254.71.203)
2024-07-20 10:50:21 +0200amjoseph(~amjoseph@static-198-44-128-146.cust.tzulo.com) (Ping timeout: 252 seconds)
2024-07-20 10:51:40 +0200danza(~francesco@151.35.242.65)
2024-07-20 10:57:45 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-07-20 10:58:47 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-07-20 10:59:35 +0200cpressey(~weechat@176.254.71.203) (Ping timeout: 252 seconds)
2024-07-20 11:08:07 +0200amjoseph(~amjoseph@static-198-44-128-146.cust.tzulo.com)
2024-07-20 11:11:31 +0200 <ash3en> Hi, can I use the FGL lib to retrieve coordinates of nodes in a graph or do i need to use the graphviz lib for this?
2024-07-20 11:13:44 +0200Square2(~Square@user/square)
2024-07-20 11:15:51 +0200ash3en(~Thunderbi@2a01:c22:888e:9900:1578:4a37:8e5e:967) (Quit: ash3en)
2024-07-20 11:16:07 +0200ash3en(~Thunderbi@2a01:c22:888e:9900:1578:4a37:8e5e:967)
2024-07-20 11:19:52 +0200danza_(~francesco@151.37.244.23)
2024-07-20 11:20:41 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-07-20 11:20:56 +0200sawilagar(~sawilagar@user/sawilagar)
2024-07-20 11:22:29 +0200danza(~francesco@151.35.242.65) (Ping timeout: 248 seconds)
2024-07-20 11:24:18 +0200__monty__(~toonn@user/toonn)
2024-07-20 11:26:19 +0200lxsameer(~lxsameer@Serene/lxsameer)
2024-07-20 11:26:22 +0200aaronv(~aaronv@user/aaronv)
2024-07-20 11:30:38 +0200cpressey(~weechat@176.254.71.203)
2024-07-20 11:31:20 +0200myxos(~myxos@syn-065-028-251-121.res.spectrum.com)
2024-07-20 11:55:01 +0200cpressey(~weechat@176.254.71.203) (Ping timeout: 248 seconds)
2024-07-20 12:00:54 +0200aaronv(~aaronv@user/aaronv) (Ping timeout: 276 seconds)
2024-07-20 12:03:35 +0200gmg(~user@user/gehmehgeh)
2024-07-20 12:05:16 +0200cpressey(~weechat@176.254.71.203)
2024-07-20 12:09:18 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2024-07-20 12:11:06 +0200 <lxsameer> hey folks what doe the `a ~ b` type signature is called?
2024-07-20 12:15:54 +0200 <ncf> an equality constraint
2024-07-20 12:16:06 +0200 <ncf> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/equality_constraints.html
2024-07-20 12:20:37 +0200cpressey(~weechat@176.254.71.203) (Ping timeout: 252 seconds)
2024-07-20 12:24:43 +0200oneeyedalien(~oneeyedal@user/oneeyedalien)
2024-07-20 12:27:55 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2024-07-20 12:28:09 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-20 12:34:12 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-07-20 12:43:58 +0200oneeyedalien(~oneeyedal@user/oneeyedalien) (Quit: Leaving)
2024-07-20 12:47:21 +0200 <lxsameer> ncf: cheers
2024-07-20 12:49:18 +0200danza_danza
2024-07-20 13:03:09 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2024-07-20 13:05:18 +0200cpressey(~weechat@176.254.71.203)
2024-07-20 13:06:29 +0200tomku(~tomku@user/tomku) (Ping timeout: 248 seconds)
2024-07-20 13:06:44 +0200tomku(~tomku@user/tomku)
2024-07-20 13:24:45 +0200cpressey(~weechat@176.254.71.203) (Ping timeout: 276 seconds)
2024-07-20 13:29:57 +0200remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2024-07-20 13:30:09 +0200g00gler(uid125351@id-125351.uxbridge.irccloud.com)
2024-07-20 13:31:55 +0200cpressey(~weechat@176.254.71.203)
2024-07-20 13:32:27 +0200remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz)
2024-07-20 13:32:31 +0200MadeleineSydney(~Thunderbi@c-71-229-185-228.hsd1.co.comcast.net)
2024-07-20 13:35:54 +0200vpan(~vpan@212.117.1.172)
2024-07-20 13:44:29 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-07-20 13:50:17 +0200danza(~francesco@151.37.244.23) (Quit: gotta go)
2024-07-20 14:00:21 +0200cpressey(~weechat@176.254.71.203) (Ping timeout: 248 seconds)
2024-07-20 14:04:18 +0200raym(~ray@user/raym) (Ping timeout: 258 seconds)
2024-07-20 14:10:59 +0200raym(~ray@user/raym)
2024-07-20 14:20:05 +0200billchenchina-(~billchenc@118.38.173.226)
2024-07-20 14:35:33 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-07-20 14:37:20 +0200euleritian(~euleritia@dynamic-176-006-131-226.176.6.pool.telefonica.de)
2024-07-20 14:41:32 +0200cpressey(~weechat@176.254.71.203)
2024-07-20 15:00:30 +0200billchenchina-(~billchenc@118.38.173.226) (Ping timeout: 252 seconds)
2024-07-20 15:01:40 +0200ash3en1(~Thunderbi@193.32.248.188)
2024-07-20 15:01:41 +0200ash3en(~Thunderbi@2a01:c22:888e:9900:1578:4a37:8e5e:967) (Ping timeout: 248 seconds)
2024-07-20 15:01:41 +0200ash3en1ash3en
2024-07-20 15:02:58 +0200ddellacosta(~ddellacos@ool-44c73d29.dyn.optonline.net) (Quit: WeeChat 4.2.1)
2024-07-20 15:06:42 +0200euleritian(~euleritia@dynamic-176-006-131-226.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-07-20 15:07:00 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-20 15:09:45 +0200kubo(~kubo@37.230.58.196)
2024-07-20 15:13:23 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-07-20 15:13:41 +0200AlexZenon(~alzenon@94.233.241.102) (Ping timeout: 252 seconds)
2024-07-20 15:14:20 +0200kubo(~kubo@37.230.58.196) (Remote host closed the connection)
2024-07-20 15:17:05 +0200cpressey(~weechat@176.254.71.203) (Ping timeout: 255 seconds)
2024-07-20 15:20:07 +0200kubo(~kubo@37.230.58.196)
2024-07-20 15:20:54 +0200kubo(~kubo@37.230.58.196) (Remote host closed the connection)
2024-07-20 15:21:43 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-20 15:21:54 +0200vpan(~vpan@212.117.1.172) (Quit: Leaving.)
2024-07-20 15:23:23 +0200kubo(~kubo@37.230.58.196)
2024-07-20 15:26:29 +0200rosco(~rosco@175.136.155.137)
2024-07-20 15:27:34 +0200ash3en(~Thunderbi@193.32.248.188) (Quit: ash3en)
2024-07-20 15:29:33 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
2024-07-20 15:30:49 +0200euleritian(~euleritia@dynamic-176-006-131-226.176.6.pool.telefonica.de)
2024-07-20 15:31:29 +0200kubo(~kubo@37.230.58.196) (Remote host closed the connection)
2024-07-20 15:32:02 +0200kubo(~kubo@37.230.58.196)
2024-07-20 15:33:22 +0200MadeleineSydney(~Thunderbi@c-71-229-185-228.hsd1.co.comcast.net) (Remote host closed the connection)
2024-07-20 15:35:49 +0200myme(~myme@2a01:799:d5c:5f00:cfaa:94a4:df6a:9f90) (Ping timeout: 245 seconds)
2024-07-20 15:36:41 +0200ash3en(~Thunderbi@193.32.248.188)
2024-07-20 15:36:50 +0200myme(~myme@2a01:799:d5c:5f00:4421:50a5:101e:8cb9)
2024-07-20 15:47:56 +0200g00gler(uid125351@id-125351.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-07-20 15:48:26 +0200harveypwca(~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288)
2024-07-20 15:50:28 +0200sp1ff`(~user@c-73-11-70-111.hsd1.wa.comcast.net) (Remote host closed the connection)
2024-07-20 15:54:58 +0200CrunchyFlakes(~CrunchyFl@146.52.130.128) (Read error: Connection reset by peer)
2024-07-20 15:55:30 +0200kubo(~kubo@37.230.58.196) (Remote host closed the connection)
2024-07-20 15:57:32 +0200CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
2024-07-20 15:58:32 +0200AlexZenon(~alzenon@94.233.241.102)
2024-07-20 16:04:15 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-07-20 16:05:16 +0200kubo(~kubo@37.230.58.196)
2024-07-20 16:07:28 +0200kubo(~kubo@37.230.58.196) (Remote host closed the connection)
2024-07-20 16:07:31 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-20 16:08:32 +0200sp1ff(~user@c-73-11-70-111.hsd1.wa.comcast.net)
2024-07-20 16:14:53 +0200billchenchina-(~billchenc@118.38.173.226)
2024-07-20 16:17:15 +0200drdo8(~drdo@bl5-29-74.dsl.telepac.pt)
2024-07-20 16:18:36 +0200drdo(~drdo@bl5-29-74.dsl.telepac.pt) (Ping timeout: 252 seconds)
2024-07-20 16:18:36 +0200drdo8drdo
2024-07-20 16:22:32 +0200billchenchina-(~billchenc@118.38.173.226) (Quit: Leaving)
2024-07-20 16:22:58 +0200Angelz(Angelz@Angelz.oddprotocol.org) (Changing host)
2024-07-20 16:22:58 +0200Angelz(Angelz@user/angelz)
2024-07-20 16:29:53 +0200mreh(~matthew@lfbn-rou-1-646-109.w90-108.abo.wanadoo.fr)
2024-07-20 16:50:10 +0200misterfish(~misterfis@ip-185-104-138-75.ptr.icomera.net)
2024-07-20 16:54:45 +0200tomku(~tomku@user/tomku) (Ping timeout: 248 seconds)
2024-07-20 16:54:58 +0200tomku(~tomku@user/tomku)
2024-07-20 16:55:50 +0200ft(~ft@p3e9bc4e7.dip0.t-ipconnect.de) (Quit: Lost terminal)
2024-07-20 16:58:20 +0200ft(~ft@p3e9bc4e7.dip0.t-ipconnect.de)
2024-07-20 16:59:39 +0200acidjnk(~acidjnk@p200300d6e72cfb291c0587c5c944f391.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-07-20 17:02:25 +0200zhuberty(~zhuberty@fsf/member/zhuberty) (Quit: Leaving.)
2024-07-20 17:05:29 +0200ash3en1(~Thunderbi@2a01:c22:888e:9900:1578:4a37:8e5e:967)
2024-07-20 17:05:31 +0200ash3en(~Thunderbi@193.32.248.188) (Ping timeout: 252 seconds)
2024-07-20 17:05:31 +0200ash3en1ash3en
2024-07-20 17:08:05 +0200mreh(~matthew@lfbn-rou-1-646-109.w90-108.abo.wanadoo.fr) (Ping timeout: 248 seconds)
2024-07-20 17:08:30 +0200pyooque(~puke@user/puke)
2024-07-20 17:08:30 +0200puke(~puke@user/puke) (Killed (tantalum.libera.chat (Nickname regained by services)))
2024-07-20 17:08:30 +0200pyooquepuke
2024-07-20 17:14:09 +0200ash3en(~Thunderbi@2a01:c22:888e:9900:1578:4a37:8e5e:967) (Ping timeout: 245 seconds)
2024-07-20 17:18:43 +0200Square2(~Square@user/square) (Ping timeout: 252 seconds)
2024-07-20 17:21:35 +0200CiaoSen(~Jura@2a05:5800:254:9700:e6b9:7aff:fe80:3d03)
2024-07-20 17:27:09 +0200Square2(~Square@user/square)
2024-07-20 17:49:31 +0200harveypwca(~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) (Quit: Leaving)
2024-07-20 17:55:48 +0200Square2(~Square@user/square) (Ping timeout: 276 seconds)
2024-07-20 18:00:26 +0200destituion(~destituio@83-243-191-191.fth.tafjordconnect.net) (Ping timeout: 255 seconds)
2024-07-20 18:07:51 +0200lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds)
2024-07-20 18:14:39 +0200misterfish(~misterfis@ip-185-104-138-75.ptr.icomera.net) (Ping timeout: 276 seconds)
2024-07-20 18:19:41 +0200smalltalkman(uid545680@id-545680.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2024-07-20 18:39:16 +0200skyesoss(~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net)
2024-07-20 18:47:42 +0200rosco(~rosco@175.136.155.137) (Quit: Lost terminal)
2024-07-20 18:50:02 +0200misterfish(~misterfis@ip-185-104-138-75.ptr.icomera.net)
2024-07-20 18:55:18 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-07-20 18:59:56 +0200skyesoss1(~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net)
2024-07-20 19:08:36 +0200misterfish(~misterfis@ip-185-104-138-75.ptr.icomera.net) (Ping timeout: 276 seconds)
2024-07-20 19:17:25 +0200jkachmar(~jkachmar@pool-108-41-84-203.nycmny.fios.verizon.net)
2024-07-20 19:34:55 +0200mrmr1553343463(~mrmr@user/mrmr)
2024-07-20 19:38:51 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-07-20 19:39:44 +0200pyooque(~puke@user/puke)
2024-07-20 19:39:44 +0200pukeGuest9444
2024-07-20 19:39:44 +0200Guest9444(~puke@user/puke) (Killed (erbium.libera.chat (Nickname regained by services)))
2024-07-20 19:39:44 +0200pyooquepuke
2024-07-20 19:57:53 +0200Sgeo(~Sgeo@user/sgeo)
2024-07-20 20:06:17 +0200ash3en(~Thunderbi@2a01:c22:888e:9900:1578:4a37:8e5e:967)
2024-07-20 20:13:27 +0200aaronv(~aaronv@user/aaronv)
2024-07-20 20:14:07 +0200jkachmar(~jkachmar@pool-108-41-84-203.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
2024-07-20 20:14:48 +0200ft(~ft@p3e9bc4e7.dip0.t-ipconnect.de) (Remote host closed the connection)
2024-07-20 20:17:30 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
2024-07-20 20:17:31 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-20 20:21:16 +0200ft(~ft@p3e9bc4e7.dip0.t-ipconnect.de)
2024-07-20 20:29:12 +0200aaronv(~aaronv@user/aaronv) (Ping timeout: 276 seconds)
2024-07-20 20:55:05 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-07-20 21:01:04 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2024-07-20 21:06:48 +0200cpressey(~weechat@176.254.71.203)
2024-07-20 21:11:18 +0200aljazmc(~aljazmc@user/aljazmc)
2024-07-20 21:12:31 +0200 <dminuoso> ash3en: What does coordinates mean to you here?
2024-07-20 21:13:23 +0200 <ash3en> location of the nodes when laid out
2024-07-20 21:13:28 +0200Square2(~Square@user/square)
2024-07-20 21:13:40 +0200 <dminuoso> Yeah but what does location even mean to you in a graph?
2024-07-20 21:13:47 +0200 <dminuoso> laid out how?
2024-07-20 21:14:20 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-20 21:14:32 +0200 <dminuoso> At best `context :: Graph gr => gr a b -> Node -> Context a b` gives you all you can know about a node.
2024-07-20 21:16:13 +0200 <ash3en> yeah like x, y when laying out a graph. Top to bottom, connections between the nodes. I want to take advantage of grahp layout algorithms and transfer positioning to my to be layouted structure
2024-07-20 21:16:27 +0200 <dminuoso> Sorry, "laying out a graph" does not make sense to me.
2024-07-20 21:16:47 +0200 <ash3en> hm, no worries, I probably phrase it wrong
2024-07-20 21:17:24 +0200 <dminuoso> ash3en: Are you visualizing the graph, somehow?
2024-07-20 21:17:24 +0200 <ash3en> eg I have a messy mind map I want to layout so the nodes do not overlap etc
2024-07-20 21:17:33 +0200 <ash3en> yes that is the plan
2024-07-20 21:17:57 +0200 <dminuoso> ash3en: FGL is not concerned with rendering.
2024-07-20 21:18:20 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-07-20 21:18:52 +0200 <ash3en> I do not need it to render, this will happen elsewhere. I just need the x, y locations. but it seems that fgl does not provide them either because --as you said -- it is not concerned with rendering at all
2024-07-20 21:19:04 +0200 <dminuoso> ash3en: Graphs dont have any notion of location.
2024-07-20 21:19:26 +0200 <dminuoso> Well I mean you can attach positional information in labels if you want.
2024-07-20 21:20:00 +0200 <ash3en> no no, I want to receive the positional information so I can draw the graph/mind map in a non-messy way
2024-07-20 21:20:07 +0200 <dminuoso> ash3en: Well, if rendering happens *elsewhere*, then *elsewhere* is where you have to check for how to obtain coordinates.
2024-07-20 21:20:28 +0200 <dminuoso> Because like I said, graphs themselves dont have any notion of "coordinates" (other than inbound and outbound edges)
2024-07-20 21:20:55 +0200 <ash3en> like give me all the coordinates so I can eg use this info and draw a graph on paper/MS paint whatever
2024-07-20 21:21:17 +0200 <ash3en> yea that is true
2024-07-20 21:21:22 +0200 <dminuoso> But you can implement graph render algorithms ontop of FGL easily.
2024-07-20 21:21:48 +0200 <ash3en> that sound good because I want to create my own algorithm indeed
2024-07-20 21:21:57 +0200 <dminuoso> And then, in your algorithm, just generate a map from node to coordinate.
2024-07-20 21:22:04 +0200 <dminuoso> Or something suitable
2024-07-20 21:22:36 +0200 <ash3en> how hard is creating an own algorithm? probably based on existing ones but modified
2024-07-20 21:23:14 +0200 <ash3en> and is it enough for a master's thesis? hehe
2024-07-20 21:23:17 +0200 <dminuoso> How hard is creating an algorithm? Depends on the algorithm, the kind of modification you envision, and your skillset.
2024-07-20 21:23:49 +0200 <ash3en> interesting insights, thanks dminuoso
2024-07-20 21:24:04 +0200 <dminuoso> Implementing a sorting algorithm can be easy enough for a 5th grader, or difficult enough to warrant a phd spending some years on it...
2024-07-20 21:24:11 +0200Sgeo(~Sgeo@user/sgeo)
2024-07-20 21:24:23 +0200 <dminuoso> So.. anywhere between yes and no.
2024-07-20 21:24:45 +0200 <haskellbridge> <mauke> I'd expect it to be non-trivial because you're essentially optimizing for aesthetics
2024-07-20 21:25:33 +0200 <ash3en> hm, yes could be hard
2024-07-20 21:25:58 +0200 <dminuoso> Well, if all you care is non-collision of nodes, a simple force-based layout algorithm can be used.
2024-07-20 21:25:58 +0200 <ash3en> I will have to study how layout generating algorithms on graphs work at all
2024-07-20 21:26:11 +0200 <ash3en> it is signal flow too
2024-07-20 21:27:01 +0200 <dminuoso> But really, the difficulty depends on your exact requirements, whether you have pseudo (or even existing) code to start with, and your general competency.
2024-07-20 21:28:27 +0200 <ash3en> would it even be smart to write the algorithm in haskell or should I use C to be compatible with graphviz? my heart wants to write in haskell for sure
2024-07-20 21:28:45 +0200 <dminuoso> Depends on your requirements and your goals.
2024-07-20 21:29:09 +0200 <dminuoso> If you want to do it in Haskell, go for it.
2024-07-20 21:29:29 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-07-20 21:29:54 +0200 <ash3en> will update on this, thank you :) got to go for now
2024-07-20 21:30:12 +0200 <dminuoso> Put it this way: Haskell code can compile to very efficient code and we have plenty of tricks to optimize hotspots to similar performance of C.
2024-07-20 21:30:18 +0200 <dminuoso> If you have proficiency.
2024-07-20 21:32:02 +0200squid64(squid64@user/squid64)
2024-07-20 21:32:23 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-20 21:34:01 +0200misterfish(~misterfis@ip-185-104-138-75.ptr.icomera.net)
2024-07-20 21:36:21 +0200ash3en(~Thunderbi@2a01:c22:888e:9900:1578:4a37:8e5e:967) (Ping timeout: 248 seconds)
2024-07-20 21:42:03 +0200target_i(~target_i@user/target-i/x-6023099)
2024-07-20 21:46:24 +0200haveo(~weechat@pacamara.iuwt.fr) (Ping timeout: 260 seconds)
2024-07-20 21:46:50 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-07-20 21:49:34 +0200Sgeo(~Sgeo@user/sgeo)
2024-07-20 21:52:54 +0200haveo(~weechat@pacamara.iuwt.fr)
2024-07-20 21:57:29 +0200haveo_(~weechat@pacamara.iuwt.fr)
2024-07-20 21:58:15 +0200haveo(~weechat@pacamara.iuwt.fr) (Ping timeout: 276 seconds)
2024-07-20 21:59:57 +0200misterfish(~misterfis@ip-185-104-138-75.ptr.icomera.net) (Ping timeout: 252 seconds)
2024-07-20 22:05:15 +0200haveo_(~weechat@pacamara.iuwt.fr) (Ping timeout: 260 seconds)
2024-07-20 22:05:22 +0200haveo(~weechat@pacamara.iuwt.fr)
2024-07-20 22:15:33 +0200Midjak(~MarciZ@82.66.147.146)
2024-07-20 22:25:06 +0200aljazmc(~aljazmc@user/aljazmc) (Quit: Leaving)
2024-07-20 22:39:19 +0200ChanServ(ChanServ@services.libera.chat) (shutting down)
2024-07-20 22:39:24 +0200litharge(litharge@libera/bot/litharge) (*.net *.split)
2024-07-20 22:40:13 +0200koala_man(~vidar@157.146.251.23.bc.googleusercontent.com) (Remote host closed the connection)
2024-07-20 22:41:54 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-07-20 22:42:37 +0200ChanServ(ChanServ@services.libera.chat)
2024-07-20 22:42:37 +0200silver.libera.chat+o ChanServ
2024-07-20 22:42:47 +0200litharge(litharge@libera/bot/litharge)
2024-07-20 22:43:18 +0200koala_man(~vidar@157.146.251.23.bc.googleusercontent.com)
2024-07-20 22:43:45 +0200hololeap(~quassel@user/hololeap) (Quit: Bye)
2024-07-20 22:45:03 +0200Sgeo(~Sgeo@user/sgeo) (Ping timeout: 276 seconds)
2024-07-20 22:45:48 +0200hololeap(~quassel@user/hololeap)
2024-07-20 22:46:20 +0200litharge(litharge@libera/bot/litharge) (Remote host closed the connection)
2024-07-20 22:46:23 +0200litharge(litharge@libera/bot/litharge)
2024-07-20 22:49:55 +0200mreh(~matthew@lfbn-rou-1-646-109.w90-108.abo.wanadoo.fr)
2024-07-20 22:50:20 +0200litharge(litharge@libera/bot/litharge) (Remote host closed the connection)
2024-07-20 22:50:23 +0200litharge(litharge@libera/bot/litharge)
2024-07-20 22:50:53 +0200sp1ff(~user@c-73-11-70-111.hsd1.wa.comcast.net) (Remote host closed the connection)
2024-07-20 22:52:01 +0200cpressey(~weechat@176.254.71.203) (Ping timeout: 252 seconds)
2024-07-20 22:54:20 +0200litharge(litharge@libera/bot/litharge) (Remote host closed the connection)
2024-07-20 22:54:23 +0200litharge(litharge@libera/bot/litharge)
2024-07-20 22:56:45 +0200tomku(~tomku@user/tomku) (Ping timeout: 276 seconds)
2024-07-20 22:56:58 +0200tomku(~tomku@user/tomku)
2024-07-20 22:58:20 +0200litharge(litharge@libera/bot/litharge) (Remote host closed the connection)
2024-07-20 22:58:23 +0200litharge(litharge@libera/bot/litharge)
2024-07-20 22:58:43 +0200kubo(~kubo@37.230.58.196)
2024-07-20 22:59:25 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-07-20 23:00:15 +0200kubo(~kubo@37.230.58.196) (Remote host closed the connection)
2024-07-20 23:02:20 +0200litharge(litharge@libera/bot/litharge) (Remote host closed the connection)
2024-07-20 23:02:23 +0200litharge(litharge@libera/bot/litharge)
2024-07-20 23:03:15 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-07-20 23:06:20 +0200litharge(litharge@libera/bot/litharge) (Remote host closed the connection)
2024-07-20 23:06:23 +0200litharge(litharge@libera/bot/litharge)
2024-07-20 23:08:50 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-07-20 23:10:20 +0200litharge(litharge@libera/bot/litharge) (Remote host closed the connection)
2024-07-20 23:10:23 +0200litharge(litharge@libera/bot/litharge)
2024-07-20 23:11:43 +0200litharge(litharge@libera/bot/litharge) (Read error: Connection reset by peer)
2024-07-20 23:13:36 +0200 <haskellbridge> <Bowuigi> @irc_libera.chat_ash3en:kf8nh.com: Drawing graphs without positional information requires constraint solving
2024-07-20 23:14:03 +0200litharge(litharge@libera/bot/litharge)
2024-07-20 23:15:47 +0200 <haskellbridge> <Bowuigi> @irc_libera.chat_ash3en:kf8nh.com: It depends on how much flexibility and aestethics the algorithm gives. There are very specific kinds of diagrams requiring special treatment of node positions (ER diagrams, for example) based on "human conventions" (aka, what looks good for a human). This is definitely a hard problem at that level
2024-07-20 23:17:25 +0200 <haskellbridge> <Bowuigi> @irc_libera.chat_ash3en:kf8nh.com: I would use Haskell first. If you like the end result enough and want an imperative version (maybe to contribute to GraphViz like you seem to want) C is a good option, but for research and prototyping Haskell shines way more
2024-07-20 23:18:25 +0200Sgeo(~Sgeo@user/sgeo)
2024-07-20 23:21:09 +0200squid64(squid64@user/squid64) (Quit: Leaving)
2024-07-20 23:24:53 +0200squid64(squid64@user/squid64)
2024-07-20 23:26:47 +0200squid64(squid64@user/squid64) (Client Quit)
2024-07-20 23:28:21 +0200mreh(~matthew@lfbn-rou-1-646-109.w90-108.abo.wanadoo.fr) (Ping timeout: 248 seconds)
2024-07-20 23:30:15 +0200 <monochrom> I would use graphviz and be done.
2024-07-20 23:32:01 +0200 <monochrom> Much ado about "what does layout mean?" but the conclusion is still that. :)
2024-07-20 23:32:11 +0200squid64(squid64@user/squid64)
2024-07-20 23:33:39 +0200 <monochrom> This is why when I teach introductory graph theory I say "only who has an edge with whom, no other information, e.g., geometry". Especially because I start with a picture example.
2024-07-20 23:37:00 +0200sp1ff(~user@c-73-11-70-111.hsd1.wa.comcast.net)
2024-07-20 23:43:52 +0200 <Inst> bleh, pqueue it is
2024-07-20 23:43:53 +0200 <Inst> https://hackage.haskell.org/package/pqueue
2024-07-20 23:44:19 +0200 <monochrom> "That escalated quickly." :)
2024-07-20 23:45:43 +0200 <Inst> btw, there's a guy at chalmers here?
2024-07-20 23:47:29 +0200 <Inst> gah, i need to look at the logs
2024-07-20 23:48:38 +0200 <Inst> oh
2024-07-20 23:48:49 +0200 <Inst> he hasn't been on for a while :(
2024-07-20 23:51:29 +0200 <Inst> i just realized the polite way to say "we're teaching IO first" is "we're teaching parallel and concurrent programming in Haskell first" ;)
2024-07-20 23:51:36 +0200 <Inst> since Chalmers apparently IS doing IO first
2024-07-20 23:52:00 +0200tomku(~tomku@user/tomku) (Ping timeout: 276 seconds)
2024-07-20 23:54:59 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)