Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→
Page 1 .. 320 321 322 323 324 325 326 327 328 329 330 .. 5022
502,152 events total
2020-09-30 08:46:00 <tomsmeding> > "We [backend team] required a description of the field and its type, and it would be deployed in the next release after we got to it. The front-end team needed to cycle faster than that."
2020-09-30 08:46:02 <lambdabot> "We [backend team] required a description of the field and its type, and it ...
2020-09-30 08:46:11 <tomsmeding> lambdabot: you're not wrong
2020-09-30 08:46:36 <kuribas> tomsmeding: that sounds like a social problem
2020-09-30 08:46:48 <tomsmeding> which, also, isn't even the point
2020-09-30 08:46:51 <tomsmeding> perhaps it is!
2020-09-30 08:46:56 <kuribas> tomsmeding: but even then, with a proper pipeline, such a change and recompiling takes 5 minutes in haskell.
2020-09-30 08:47:03 <tomsmeding> true
2020-09-30 08:47:06 × vicfred quits (~vicfred@unaffiliated/vicfred) (Ping timeout: 272 seconds)
2020-09-30 08:47:17 <tomsmeding> but, like, perhaps their organisation makes that they don't want that
2020-09-30 08:47:28 <tomsmeding> maybe they have a mandatory QA process for every backend upgrade or something
2020-09-30 08:47:41 <tomsmeding> but if they want to iterate without the backend changing, then, well, design your backend on that :p
2020-09-30 08:47:47 <tomsmeding> haskell gives you the flexibility
2020-09-30 08:48:04 <tomsmeding> anyhow the point is argued perfectly by the article itself so perhaps I should stop ranting :p
2020-09-30 08:48:26 <AWizzArd> I am writing an app and use Nix as build system. I would like to specify four things: what Haskell-Dependencies do I want to be in my release? What Haskell-Deps do I want to have during development time (i.e. benchmarking, tests, ...). And then I want to specify what OS-Deps I want during development in my nix-shell (ls, cd, cat, tree, ...) and what OS-Deps I want to be in my release (which can go into a tar.gz for dockerization).
2020-09-30 08:48:27 <cpressey> Doing data modelling like FirstAndLastNames, FirstNameAndEmail, LastNameAndEmail, ... is ridiculous *in any language*. I want to say "obviously ridiculous" but the very existence of the article makes me wonder about that.
2020-09-30 08:48:33 <merijn> It's just one of the classic blunders
2020-09-30 08:48:48 <merijn> "Tying your external representation directly to your internal representation"
2020-09-30 08:48:49 × thir quits (~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-09-30 08:48:49 <AWizzArd> I see https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/haskell-modules/generic-builder.nix and there are tons of "Depends" attributes listed
2020-09-30 08:48:56 <kuribas> tomsmeding: in that case I would have a personFields field which is just a Aeson Value.
2020-09-30 08:49:00 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-09-30 08:49:11 <merijn> That's just as bad as "starting a land war in China" or "going against a Sicilian when death is on the line"
2020-09-30 08:49:30 <AWizzArd> What is the meaning of buildDepends, libraryHaskellDepends, executableHaskellDepends, libraryToolDepends, executableToolDepends, testToolDepends, benchmarkToolDepends, librarySystemDepends, executableSystemDepends, libraryFrameworkDepends, executableFrameworkDepends, testDepends, and the 50 others?
2020-09-30 08:49:59 <merijn> Sounds like a Nix question?
2020-09-30 08:51:17 × jrqc quits (~rofl@96.78.87.197) (Ping timeout: 258 seconds)
2020-09-30 08:52:04 <kuribas> merijn: in our app it's not only tied to the API, but also to the database.
2020-09-30 08:52:30 <kuribas> merijn: hashmaps just pass through everything, with only a light layer of transformation between.
2020-09-30 08:52:37 glguy_ joins (x@freenode/staff/haskell.developer.glguy)
2020-09-30 08:52:37 glguy is now known as Guest12883
2020-09-30 08:52:37 × Guest12883 quits (x@freenode/staff/haskell.developer.glguy) (Killed (tolkien.freenode.net (Nickname regained by services)))
2020-09-30 08:52:37 glguy_ is now known as glguy
2020-09-30 08:53:00 <merijn> kuribas: Every single time I've done that I've lived to regret it :p
2020-09-30 08:53:14 <AWizzArd> merijn: a Nix question that is very Haskell related. As in: what flags can I pass to "ghc", which happens to be a Linux tool, but which is essentially not a #Linux question.
2020-09-30 08:53:34 <merijn> I've learned to accept that the "boilerplate' of separate external and internal representations is worth it and inevitable
2020-09-30 08:53:35 <maerwald> AWizzArd: imo still better to ask in the nix channel
2020-09-30 08:53:50 <kuribas> merijn: however it's convenient in servant to write your records like the json objects.
2020-09-30 08:54:14 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 08:54:51 <kuribas> merijn: or I would need two types, ExternalResource, and Resource
2020-09-30 08:55:00 <merijn> kuribas: Yes
2020-09-30 08:55:15 <lortabac> I think it is a good idea to have two types anyway
2020-09-30 08:55:20 jrqc joins (~rofl@96.78.87.197)
2020-09-30 08:55:58 <merijn> kuribas: Eventually you'll come around to my and lortabac's way of thinking, after you've made yourself suffer enough :)
2020-09-30 08:56:23 <kuribas> possibly
2020-09-30 08:56:36 <kuribas> I adapt my code as the needs change
2020-09-30 08:56:52 <kuribas> but clojure is a big bottleneck
2020-09-30 08:57:01 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-09-30 08:57:21 cfricke joins (~cfricke@unaffiliated/cfricke)
2020-09-30 08:57:47 <kuribas> with its inability to model the business domain, provide safe abstractions, and giving zero consistency garantees.
2020-09-30 08:58:27 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-30 08:59:23 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2020-09-30 09:00:01 × sammuel86 quits (~sammuel86@185.244.214.216) ()
2020-09-30 09:00:27 × madjestic quits (~madjestic@86-88-72-244.fixed.kpn.net) (Ping timeout: 240 seconds)
2020-09-30 09:00:30 filwisher joins (~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-30 09:02:50 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-09-30 09:03:23 cfricke joins (~cfricke@unaffiliated/cfricke)
2020-09-30 09:04:16 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 09:06:26 todda7 joins (~torstein@ppp005055049059.access.hol.gr)
2020-09-30 09:06:59 <kuribas> merijn: actually I already have more types for one resource. Like a type for getting and setting information, a type with less fields, etc...
2020-09-30 09:07:00 × carlomagno1 quits (~cararell@inet-hqmc02-o.oracle.com) (Remote host closed the connection)
2020-09-30 09:08:06 <kuribas> merijn: a clojurist would probably now grin in satisfaction, look at all that complexity!
2020-09-30 09:08:13 <kuribas> merijn: but IMO it's worth it.
2020-09-30 09:08:43 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-30 09:14:27 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 09:18:47 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-30 09:20:40 <sm[m]> there was no criticism or bashing in that article.. it's well written and interesting I think
2020-09-30 09:20:42 × dhil quits (~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 265 seconds)
2020-09-30 09:21:17 <kuribas> sm[m]: the haskell code is pretty bad
2020-09-30 09:21:30 DireFog joins (~DireFog@s91904426.blix.com)
2020-09-30 09:22:17 <sm[m]> that's a silly thing to say, since they're just walking through a series of what ifs (pretty realistic thought process for someone figuring this stuff out)
2020-09-30 09:23:42 <sm[m]> I think it shows haskell provides a lot of freedom to model your typing needs
2020-09-30 09:24:32 <kuribas> no, it fits perfectly in the clojure narative that types are too heavy and unnecessary.
2020-09-30 09:24:37 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-30 09:25:44 × cpressey quits (~cpressey@79-72-201-29.dynamic.dsl.as9105.com) (Ping timeout: 272 seconds)
2020-09-30 09:25:44 <sm[m]> perhaps, but that doesn't make it it criticism or bashing, and I think you weaken your argument by saying so
2020-09-30 09:26:25 <sm[m]> Just MHO
2020-09-30 09:27:13 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-09-30 09:28:00 cpressey joins (~cpressey@79-72-200-19.dynamic.dsl.as9105.com)
2020-09-30 09:28:09 <kuribas> sm[m]: perhaps it was written in good faith, but the code is still bad.
2020-09-30 09:28:24 <sm[m]> thanks for the link, I will watch for the HN discussion
2020-09-30 09:28:47 × bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 240 seconds)
2020-09-30 09:29:01 <kuribas> sm[m]: btw, I don't believe in show the bad way first
2020-09-30 09:29:10 bahamas joins (~lucian@unaffiliated/bahamas)
2020-09-30 09:29:14 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-09-30 09:29:32 × snakemasterflex quits (~snakemast@213.100.206.23) (Ping timeout: 256 seconds)
2020-09-30 09:30:03 <kuribas> You learn the best by looking at good examples.
2020-09-30 09:30:37 <kuribas> Taking best ideas from everywhere and assimilating them into your own style.
2020-09-30 09:30:43 <maerwald> kuribas: I agree, I had a prof who used to show every single pitfall of a language, when teaching a language and thought that would give ppl an intuition. All it did was confuse them
2020-09-30 09:30:57 <kuribas> maerwald: right :)
2020-09-30 09:31:08 <maerwald> the C++ course was...
2020-09-30 09:31:19 <sm[m]> the article says that sometimes you want a more static model. So the first is not bad. Its just an engineering choice depending on the need.
2020-09-30 09:32:20 <sm[m]> the article lays out some of the options nicely. You could just As easily read it in reverse, describing a refactoring of over dynamic code to more statically checked.
2020-09-30 09:32:48 <kuribas> sm[m]: https://paste.tomsmeding.com/yy3PqZUb
2020-09-30 09:32:54 <kuribas> sm[m]: that's not bad?
2020-09-30 09:32:54 × ces quits (~ces@52d3ce3c.dynamic-ip.k-net.dk) (Quit: WeeChat 2.9)
2020-09-30 09:32:56 <merijn> sm[m]: The problem I have with it is that the static code is just a badly written strawman. You could easily have a static verbose that's both less verbose and more flexible
2020-09-30 09:32:59 <sm[m]> afk, sorry
2020-09-30 09:33:19 <merijn> sm[m]: And then using that bad code to justify the more dynamic approach
2020-09-30 09:33:53 <kuribas> sm[m]: I am pretty sure he wouldn't write this kind of code in clojure.
2020-09-30 09:34:11 <kuribas> sm[m]: I guess he is thinking about partial hashmaps.

All times are in UTC.