Logs: freenode/#haskell
| 2020-11-04 09:57:44 | <tomsmeding> | it's not windows? what -- since when has binary mode done anything on unix-like systems? |
| 2020-11-04 09:58:07 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 2020-11-04 09:58:21 | <dminuoso> | tomsmeding: Perhaps you should focus on unconvolving that process instead? |
| 2020-11-04 09:58:35 | <dminuoso> | I mean if the underlying problem is that you cant feed the locale through, then I'd rather fix |
| 2020-11-04 09:58:37 | <merijn> | tomsmeding: Why? The ByteString IO functions don't do any encoding/decoding |
| 2020-11-04 09:58:39 | <tomsmeding> | typetetris: ^ |
| 2020-11-04 09:58:44 | <tomsmeding> | not me dminuoso ;) |
| 2020-11-04 09:58:45 | → | ubert joins (~Thunderbi@p200300ecdf1e5334e6b318fffe838f33.dip0.t-ipconnect.de) |
| 2020-11-04 09:58:53 | × | daydaynatation quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 2020-11-04 09:58:58 | <dminuoso> | oh. |
| 2020-11-04 09:59:45 | → | daydaynatation joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 2020-11-04 09:59:53 | <typetetris> | dminuoso: Time pressure and other not so good reasons. |
| 2020-11-04 10:00:20 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 2020-11-04 10:00:43 | <dminuoso> | "Let's finish this bridge" - "But we the supports are not strong enough to hold it" - "We're already lagging behind, let's open it now and fix it later" |
| 2020-11-04 10:01:23 | <tomsmeding> | merijn: I was confused as to where in the stack the error was actually thrown, I stand corrected |
| 2020-11-04 10:01:23 | × | todda7 quits (~torstein@ppp-2-84-30-242.home.otenet.gr) (Read error: Connection reset by peer) |
| 2020-11-04 10:01:30 | <maerwald> | most of the time programmers don't code anything really important, which is why our engineering practices are shite |
| 2020-11-04 10:01:36 | <dminuoso> | typetetris: Are you, by any chance, operating inside docker containers? |
| 2020-11-04 10:01:39 | → | todda7 joins (~torstein@ppp-2-84-30-242.home.otenet.gr) |
| 2020-11-04 10:01:58 | <typetetris> | dminuoso: Not that I know of. But I also don't know the whole process. |
| 2020-11-04 10:02:01 | <dminuoso> | maerwald: And even if they do, human lives lost due to "it was a software issue" is acceptable. |
| 2020-11-04 10:02:33 | <maerwald> | dminuoso: no, because as soon as human lives are on the line, you have to comply to standards and regulations |
| 2020-11-04 10:02:39 | <dminuoso> | It's as if people have been so desensitized, that it's completely normal that "software is often wrong" and not "programmers make mistakes" |
| 2020-11-04 10:02:49 | <dminuoso> | maerwald: Haha, you certainly have not worked in healthcare. |
| 2020-11-04 10:02:56 | <maerwald> | dminuoso: automotive. |
| 2020-11-04 10:03:34 | <maerwald> | https://en.wikipedia.org/wiki/ISO_26262 |
| 2020-11-04 10:03:39 | <dminuoso> | Hospitals are prime examples of IT done *extremely* poorly. If your hospital gets sacked by ransomware, then it's clearly not the fault of shitty IT admins running unpatched exchanges, windows xp machines with the poorest security. |
| 2020-11-04 10:03:49 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 246 seconds) |
| 2020-11-04 10:03:50 | <dminuoso> | We had a death in Germany just this year because of that. |
| 2020-11-04 10:04:00 | <dminuoso> | No heads ever rolled. |
| 2020-11-04 10:04:01 | <maerwald> | that's just poorly regulated |
| 2020-11-04 10:04:19 | × | invaser quits (~Thunderbi@31.148.23.125) (Quit: invaser) |
| 2020-11-04 10:05:21 | → | invaser joins (~Thunderbi@31.148.23.125) |
| 2020-11-04 10:06:03 | × | plutoniix quits (~q@175.176.222.7) (Quit: Leaving) |
| 2020-11-04 10:06:04 | <dminuoso> | maerwald: Or conversely, data privacy. If you leak half your customer database, you get a slap on the wrist at best |
| 2020-11-04 10:06:09 | <dminuoso> | Customers wont even care |
| 2020-11-04 10:06:17 | <typetetris> | I still think its a mistake to use `String -> Handle -> IO ()` functions using external environment variables to detect, what actual bytes to write to the handle. I will avoid that in the future. Respecting locale is a thing, only if writing to a terminal, in my opinion. And then it should be ok, to have replacement chars. Shouldn't fail to strange settings of the user. |
| 2020-11-04 10:06:27 | <maerwald> | privacy and security is less regulated than safety |
| 2020-11-04 10:06:27 | <daydaynatation> | what's the difference between: newtype instance vs. type instance |
| 2020-11-04 10:06:31 | <dminuoso> | Clients have very low expectancy of software quality |
| 2020-11-04 10:06:41 | <dminuoso> | maerwald: Its not even about regulation, its about client expectancies. |
| 2020-11-04 10:06:56 | → | avdb joins (~avdb@ip-62-235-73-30.dsl.scarlet.be) |
| 2020-11-04 10:07:01 | <maerwald> | regulations is the *only* thing that can change the market |
| 2020-11-04 10:07:20 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-abxtjqjdzzifrxcr) (Quit: Connection closed for inactivity) |
| 2020-11-04 10:07:47 | <maerwald> | formal methods is recommended in 26262, but not mandatory... if they made it mandatory, then Porsche, Daimler and co would invest millions into it, just so that they can ship their products |
| 2020-11-04 10:07:55 | <typetetris> | maerwald: In germany there is "Mängelhaftung" and if clients would enforce that, most software companies would change there tactics fast. But the clients don't enforce that right *they already have*. |
| 2020-11-04 10:08:07 | <typetetris> | s/there/their/ |
| 2020-11-04 10:08:18 | <dminuoso> | daydaynatation: Huh.. newtype instance - I didn't even know that was a thing. |
| 2020-11-04 10:09:10 | → | yorick joins (~yorick@oftn/oswg-member/yorick) |
| 2020-11-04 10:09:11 | <daydaynatation> | dminuoso: lots of it used in the vector package |
| 2020-11-04 10:09:26 | <dminuoso> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/newtype_deriving.html#a-more-precise-specification |
| 2020-11-04 10:09:26 | → | i7c joins (8Tki2L7DF5@unaffiliated/i7c) |
| 2020-11-04 10:09:34 | <dminuoso> | Is the only mention of this I can find |
| 2020-11-04 10:10:03 | <daydaynatation> | dminuoso: Data.Vector.Uboxed.Base |
| 2020-11-04 10:12:09 | <dminuoso> | daydaynatation: Judging from the ergonomics, Id say that it's an alternate perhaps older way to do GND + via |
| 2020-11-04 10:12:22 | <dminuoso> | So I'd say: |
| 2020-11-04 10:12:25 | <dminuoso> | newtype instance MVector s () = MV_Unit Int |
| 2020-11-04 10:12:48 | × | avdb quits (~avdb@ip-62-235-73-30.dsl.scarlet.be) (Quit: WeeChat 2.9) |
| 2020-11-04 10:14:09 | <dminuoso> | Yeah no idea. It looks |
| 2020-11-04 10:14:16 | <dminuoso> | Undocumented. |
| 2020-11-04 10:14:44 | <daydaynatation> | It's pretty hard to understand how the package is designed |
| 2020-11-04 10:15:58 | <dminuoso> | daydaynatation: Ah.. I think... this is for associated newtypes |
| 2020-11-04 10:16:09 | <dminuoso> | err.. newtype families? |
| 2020-11-04 10:16:15 | <dminuoso> | Is that a thing? |
| 2020-11-04 10:16:24 | <dminuoso> | A quick skim of ghc suggests its like data instances |
| 2020-11-04 10:16:26 | × | Lycurgus quits (~niemand@98.4.97.110) (Quit: Exeunt) |
| 2020-11-04 10:16:59 | <dminuoso> | daydaynatation: https://downloads.haskell.org/~ghc/7.6.3/docs/html/users_guide/type-families.html |
| 2020-11-04 10:17:01 | <dminuoso> | Indeed |
| 2020-11-04 10:17:08 | <dminuoso> | So these are instances of data families |
| 2020-11-04 10:17:38 | <dminuoso> | In Data/Vector/Unboxed/Base.hs you can find `data family MVector s a` |
| 2020-11-04 10:17:52 | <dminuoso> | `newtype instance MVector s () = MV_Unit Int` then is an instance for that family |
| 2020-11-04 10:18:08 | × | rprije quits (~rprije@194-193-168-77.tpgi.com.au) (Ping timeout: 260 seconds) |
| 2020-11-04 10:18:13 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
| 2020-11-04 10:18:24 | <daydaynatation> | so it's the same as data instance MVector s ()...? |
| 2020-11-04 10:18:49 | <dminuoso> | Well, except for data vs newtype differences |
| 2020-11-04 10:19:26 | <daydaynatation> | i see.. |
| 2020-11-04 10:19:30 | <daydaynatation> | that's the key |
| 2020-11-04 10:19:34 | <daydaynatation> | thx! |
| 2020-11-04 10:19:34 | <dminuoso> | a data family is roughly a type family to an anonymous data type, and apparently you can point it either at an anoymous newtype or data (which is boxed and can have multiple constructors) |
| 2020-11-04 10:19:54 | → | supercoven joins (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) |
| 2020-11-04 10:20:26 | → | notnatebtw joins (~nate@125.161.131.218) |
| 2020-11-04 10:20:28 | × | theorbtwo quits (~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net) (Ping timeout: 260 seconds) |
| 2020-11-04 10:21:03 | → | LKoen joins (~LKoen@53.253.88.92.rev.sfr.net) |
| 2020-11-04 10:22:31 | <dminuoso> | % data family Foo a |
| 2020-11-04 10:22:31 | <yahb> | dminuoso: |
| 2020-11-04 10:22:42 | <dminuoso> | % newtype instance Foo Int = F1 Int |
| 2020-11-04 10:22:42 | <yahb> | dminuoso: |
| 2020-11-04 10:22:47 | <dminuoso> | % coerce (F1 1) :: Int |
| 2020-11-04 10:22:47 | <yahb> | dminuoso: 1 |
| 2020-11-04 10:23:04 | <dminuoso> | % data instance Foo Float = F2 Int | F3 Char |
| 2020-11-04 10:23:04 | <yahb> | dminuoso: |
| 2020-11-04 10:23:09 | <dminuoso> | % coerce (F2 1) :: Int |
| 2020-11-04 10:23:09 | <yahb> | dminuoso: ; <interactive>:71:1: error:; * Couldn't match representation of type `Foo Float' with that of `Int' arising from a use of `coerce'; * In the expression: coerce (F2 1) :: Int; In an equation for `it': it = coerce (F2 1) :: Int |
| 2020-11-04 10:24:13 | × | vk3wtf quits (~doc@14-202-30-62.static.tpgi.com.au) (Ping timeout: 264 seconds) |
| 2020-11-04 10:24:30 | → | pera joins (~pera@unaffiliated/pera) |
| 2020-11-04 10:24:56 | <dminuoso> | Well this is cool, thanks daydaynatation! TIL. |
| 2020-11-04 10:28:01 | hackage | mysql-haskell 0.8.4.3 - pure haskell MySQL driver https://hackage.haskell.org/package/mysql-haskell-0.8.4.3 (winterland) |
| 2020-11-04 10:28:41 | <daydaynatation> | dminuoso: so all these techniques are for generic programming right? |
| 2020-11-04 10:29:01 | hackage | mysql-haskell-openssl 0.8.3.1 - TLS support for mysql-haskell package using openssl https://hackage.haskell.org/package/mysql-haskell-openssl-0.8.3.1 (winterland) |
| 2020-11-04 10:29:14 | → | mananamenos_ joins (~mananamen@84.122.202.215.dyn.user.ono.com) |
All times are in UTC.