Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→ 502,152 events total
2021-05-11 04:26:06 RusAlex joins (~Chel@unaffiliated/rusalex)
2021-05-11 04:26:14 × dolio quits (~dolio@haskell/developer/dolio) (Ping timeout: 246 seconds)
2021-05-11 04:26:31 <minoru_shiraeesh> how about another problem: a lot of code with no documentation that you don't know how to approach
2021-05-11 04:26:41 × Feuermagier quits (~Feuermagi@213.178.26.41) (Remote host closed the connection)
2021-05-11 04:27:08 <Axman6> is that a question?
2021-05-11 04:27:27 <minoru_shiraeesh> when you don't know where is the beginning and where is the end
2021-05-11 04:27:56 <Iceland_jack> minoru_shiraeesh: When faced with such a problem, I start by heavily adding type annotations
2021-05-11 04:27:57 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-11 04:27:58 <Axman6> then you read is more carefully. this is a very vague "question"
2021-05-11 04:28:08 <Axman6> it*
2021-05-11 04:28:33 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 250 seconds)
2021-05-11 04:28:37 Feuermagier joins (~Feuermagi@213.178.26.41)
2021-05-11 04:28:48 <Iceland_jack> Familiarizing myself with the types in general
2021-05-11 04:29:21 <minoru_shiraeesh> it happened to me several times. people just spit out a giant mountain of code and expect you to figure out what's going on
2021-05-11 04:29:37 × Feuermagier quits (~Feuermagi@213.178.26.41) (Read error: Connection reset by peer)
2021-05-11 04:30:16 <minoru_shiraeesh> of course you're going to figure it out eventually, but following the same logic we could create square wheels
2021-05-11 04:30:30 <minoru_shiraeesh> you just push it harder and it will move eventually, right?
2021-05-11 04:31:21 Feuermagier joins (~Feuermagi@213.178.26.41)
2021-05-11 04:31:31 Guest81 joins (~textual@cpe-108-185-120-135.socal.res.rr.com)
2021-05-11 04:31:56 <Guest81> Hello. I know ghcup + cabal is the recommended/popular way, but I'm going through the Haskell from first principles book which uses Stack. I've heard there could be issues with installing both ghcup and stack. Is that true? Or is it generally safe? Or is it trivial to replace stack with cabal for that book?
2021-05-11 04:32:33 × husixu quits (~husixu@137.132.117.40) (Ping timeout: 240 seconds)
2021-05-11 04:32:38 <Axman6> I find that it's very rare that it really is just a mountain of code without any organisation - one of your first goals should be to figure out where the entry point to the code is, if it is a program - this is often "main".
2021-05-11 04:33:02 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds)
2021-05-11 04:33:32 <Axman6> Guest81: it's definitely "safe" to have both, they won't do any damage to each other, and if the tutorial is using stack, it might be a good idea to just use it, and later learn how to do the same things using cabal isntead
2021-05-11 04:33:45 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
2021-05-11 04:35:25 <minoru_shiraeesh> maybe the lack experience played a role, but the square wheels example still applies
2021-05-11 04:35:27 <Guest81> Axman6: I guess my big concern is that I understand they both install ghc.
2021-05-11 04:35:50 <Axman6> yes, they will both intall ghc, though you can make stack use the ghc installed by ghcup
2021-05-11 04:36:19 <minoru_shiraeesh> and sometimes abstractions make it hard to follow the logic starting from main
2021-05-11 04:37:04 <minoru_shiraeesh> you start from main, stumble across several interfaces and then there are like 20 implementations of those interfaces in the project
2021-05-11 04:37:28 <Axman6> minoru_shiraeesh: these are very vague statements, we can definitely help you if you have something more concrete, but for any given piece of code, the methods you'll use to navigate it are likely to be different - do you have some specific code ytou are strugling with?
2021-05-11 04:38:31 <minoru_shiraeesh> I was just adding to the discussion of bad code
2021-05-11 04:39:38 <Axman6> tools like Haskell language server help a lot with that particular problem, becauxe you can find out which types are actually being used for a given piece of code
2021-05-11 04:40:03 <minoru_shiraeesh> spitting out a giant mountain of code without making it clear how to approach it - I think it also may be considered bad code
2021-05-11 04:41:35 <Axman6> The project I'm working on has over 300k lines of code, it takes months to get a good idea of how the system works. this is true of any sufficiently complex codebase and part of learning to program is being able to deal with complexity and start to put the pieces together yourself, and develop ways to explore which efficiently answer your questions
2021-05-11 04:42:23 × zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving)
2021-05-11 04:42:40 × hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 252 seconds)
2021-05-11 04:44:02 × Feuermagier quits (~Feuermagi@213.178.26.41) (Quit: Leaving)
2021-05-11 04:44:10 <Axman6> pretty much by definition, all code bases become domain specific languages for the problem they exist to solve, and learning that language is a big part of the job
2021-05-11 04:44:21 zaquest joins (~notzaques@5.128.210.178)
2021-05-11 04:44:49 Feuermagier joins (~Feuermagi@2a02:2488:4211:3400:7285:c2ff:fe22:172e)
2021-05-11 04:44:52 delonte joins (415f295b@gateway/web/cgi-irc/kiwiirc.com/ip.65.95.41.91)
2021-05-11 04:44:58 × Feuermagier quits (~Feuermagi@2a02:2488:4211:3400:7285:c2ff:fe22:172e) (Remote host closed the connection)
2021-05-11 04:44:58 <minoru_shiraeesh> Axman6: I think we're talking about different things, unless you're defending creating undocumented mess
2021-05-11 04:45:26 × carlomagno1 quits (~cararell@148.87.23.11) (Quit: Leaving.)
2021-05-11 04:45:28 <Axman6> what makes something an undocumented mess though?
2021-05-11 04:46:11 <minoru_shiraeesh> giant files with collections of things
2021-05-11 04:46:21 × drbean_ quits (~drbean@TC210-63-209-99.static.apol.com.tw) (Ping timeout: 265 seconds)
2021-05-11 04:46:34 <Axman6> what if the things are related? what if they are necessarily complex?
2021-05-11 04:46:43 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-11 04:46:44 <minoru_shiraeesh> and no documentation, no guide on how to navigate through it
2021-05-11 04:47:02 × kupi quits (uid212005@gateway/web/irccloud.com/x-ovwhwsshlhgdvfva) (Quit: Connection closed for inactivity)
2021-05-11 04:47:26 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-11 04:47:28 falafel joins (~falafel@2603-8001-ca00-f555-b4a5-fa93-bc1a-b3d6.res6.spectrum.com)
2021-05-11 04:47:28 drbean_ joins (~drbean@TC210-63-209-90.static.apol.com.tw)
2021-05-11 04:48:27 Feuermagier joins (~Feuermagi@2a02:2488:4211:3400:7285:c2ff:fe22:172e)
2021-05-11 04:48:36 <minoru_shiraeesh> I expect a sane project to provide a description: here is the core, here are components, the core works like this, components work like this
2021-05-11 04:49:21 <Axman6> that only gets you so far in a large enough system though. you at some point need to know where you would expect to find the answers
2021-05-11 04:49:24 × alx741 quits (~alx741@186.178.109.110) (Quit: alx741)
2021-05-11 04:49:59 <minoru_shiraeesh> not having a description is a sign of overly optimising costs, trying to squeeze every last drop of productivity from every coder
2021-05-11 04:49:59 Tops21 joins (~Tobias@dyndsl-095-033-090-210.ewe-ip-backbone.de)
2021-05-11 04:50:08 <minoru_shiraeesh> bad companies do that
2021-05-11 04:50:09 delonte parts (415f295b@gateway/web/cgi-irc/kiwiirc.com/ip.65.95.41.91) ()
2021-05-11 04:50:34 <minoru_shiraeesh> they overly optimise and it becomes counter-productive
2021-05-11 04:51:02 <minoru_shiraeesh> like "you want to document this thing? we don't have budget for that. go work on those tickets"
2021-05-11 04:51:19 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 252 seconds)
2021-05-11 04:51:28 <Axman6> There are ways to document a system which don't include writing comments for everything though - having a common language between the specification and the code is one particularly good way to do that
2021-05-11 04:51:57 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2021-05-11 04:52:26 × Tops2 quits (~Tobias@dyndsl-095-033-094-242.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
2021-05-11 04:52:33 <Axman6> Like, the system I'm working on, the documentation is written before the code (and updated when discrepencies are found that require it)
2021-05-11 04:53:43 mayleesia joins (~mayleesia@x4dbf5e45.dyn.telefonica.de)
2021-05-11 04:53:43 × minoru_shiraeesh quits (~shiraeesh@109.166.58.80) (Remote host closed the connection)
2021-05-11 04:53:53 × puke quits (~vroom@217.138.252.196) (Quit: puke)
2021-05-11 04:54:00 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-05-11 04:54:03 minoru_shiraeesh joins (~shiraeesh@109.166.58.80)
2021-05-11 04:54:18 mounty joins (~mounty@236.216.214.218.sta.wbroadband.net.au)
2021-05-11 04:55:45 hyiltiz joins (~quassel@31.220.5.250)
2021-05-11 04:55:45 × hyiltiz quits (~quassel@31.220.5.250) (Changing host)
2021-05-11 04:55:45 hyiltiz joins (~quassel@unaffiliated/hyiltiz)
2021-05-11 05:01:37 × ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Quit: ChaiTRex)
2021-05-11 05:02:21 ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex)
2021-05-11 05:02:27 drbean- joins (~drbean@TC210-63-209-65.static.apol.com.tw)
2021-05-11 05:03:52 oxide joins (~lambda@unaffiliated/mclaren)
2021-05-11 05:04:33 × drbean_ quits (~drbean@TC210-63-209-90.static.apol.com.tw) (Ping timeout: 260 seconds)
2021-05-11 05:05:04 takuan joins (~takuan@178-116-218-225.access.telenet.be)
2021-05-11 05:05:57 hackage pantry 0.5.2 - Content addressable Haskell package management https://hackage.haskell.org/package/pantry-0.5.2 (MichaelSnoyman)
2021-05-11 05:08:55 × falafel quits (~falafel@2603-8001-ca00-f555-b4a5-fa93-bc1a-b3d6.res6.spectrum.com) (Ping timeout: 276 seconds)
2021-05-11 05:10:59 mayleesia is now known as maylees
2021-05-11 05:11:06 maylees is now known as maylee
2021-05-11 05:11:28 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-11 05:12:11 × dorkside quits (~tdbgamer@208.190.197.222) (Ping timeout: 240 seconds)
2021-05-11 05:13:06 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2021-05-11 05:13:22 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-11 05:16:12 × Iceland_jack quits (~user@95.147.45.92) (Ping timeout: 268 seconds)
2021-05-11 05:16:41 × mjrosenb quits (~mrosenbe@nyc.schrodinger.com) (Ping timeout: 260 seconds)
2021-05-11 05:17:26 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-05-11 05:17:27 × kireguy quits (~kireguy@185.204.1.185) (Remote host closed the connection)
2021-05-11 05:18:10 husixu joins (~husixu@137.132.117.40)
2021-05-11 05:18:11 mjrosenb joins (~mrosenbe@nyc.schrodinger.com)
2021-05-11 05:19:52 × bollu quits (~bollu@139.59.46.74) (Remote host closed the connection)

All times are in UTC.