Newest at the top
2025-02-11 17:41:00 +0100 | <kaol> | Composable is kind of no op if you write the query only once. |
2025-02-11 17:40:44 +0100 | <kaol> | If I'd have a use case for constructing queries dynamically routinely I might consider some other library. |
2025-02-11 17:39:47 +0100 | <kuribas> | opaleye? |
2025-02-11 17:39:45 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 248 seconds) |
2025-02-11 17:39:32 +0100 | <kaol> | Queries as profunctors is as natural as I've ever seen anything to be. |
2025-02-11 17:39:28 +0100 | <kuribas> | my library tries to be as close as possible to SQL, but remaining composable and type safe. |
2025-02-11 17:38:51 +0100 | <kaol> | I think much better by writing and thinking in SQL than trying to play ship bottle building game with some other abstraction. |
2025-02-11 17:38:34 +0100 | <kuribas> | no PostgreSQL yet though... |
2025-02-11 17:38:22 +0100 | <kuribas> | euouae: shameless plug, my sql generator library https://hackage.haskell.org/package/hasqlator-mysql-0.2.1 |
2025-02-11 17:37:50 +0100 | <euouae> | I do use PostgreSQL so it's nice that hasql uses it too |
2025-02-11 17:36:57 +0100 | <euouae> | kaol: ORM in general or just that aspect? |
2025-02-11 17:36:27 +0100 | <kaol> | hasql is my default choice. Anything that tries to model anything by duplicating table definitions in the source is sure to raise my blood pressure. |
2025-02-11 17:36:24 +0100 | <euouae> | how about db migrations? by hand? |
2025-02-11 17:35:04 +0100 | <EvanR> | keeping it simple |
2025-02-11 17:34:56 +0100 | <EvanR> | I've used sqlite-simple and postgres-simple |
2025-02-11 17:34:26 +0100 | <euouae> | including their relationships |
2025-02-11 17:34:20 +0100 | <euouae> | I was using SQLAlchemy on Python and it works nicely, I was able to declaratively put together all the tables of the schema |
2025-02-11 17:34:00 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 276 seconds) |
2025-02-11 17:33:44 +0100 | <euouae> | library |
2025-02-11 17:33:42 +0100 | <euouae> | does haskell have a good sql (or otherwise) database |
2025-02-11 17:33:18 +0100 | <tomsmeding> | nor is :m or :set |
2025-02-11 17:32:53 +0100 | <tomsmeding> | :def is unsupported in multi-mode, lol |
2025-02-11 17:29:21 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 17:28:50 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 17:28:43 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Remote host closed the connection) |
2025-02-11 17:26:13 +0100 | CalimeroTeknik | (~calimero@user/calimeroteknik) CalimeroTeknik |
2025-02-11 17:26:13 +0100 | CalimeroTeknik | (~calimero@ctkarch.org) (Changing host) |
2025-02-11 17:25:23 +0100 | <haskellbridge> | <alexfmpe> Still a bit rough around the edges but mostly works |
2025-02-11 17:24:59 +0100 | <haskellbridge> | <alexfmpe> Need cabal 3.12 |
2025-02-11 17:24:49 +0100 | <haskellbridge> | <alexfmpe> kaol: cabal repl all --enable-multi-repl |
2025-02-11 17:22:58 +0100 | <euouae> | well, what seems to me like is that we have composable setters now |
2025-02-11 17:22:37 +0100 | <euouae> | i.e. I can't hve it a -> f b anymore. |
2025-02-11 17:22:31 +0100 | <euouae> | although now I have to have :: Applicative f => (a -> f a) -> Vec3 a -> f (Vec3 a) |
2025-02-11 17:22:22 +0100 | <euouae> | something like: traverseVecX f (Vec3 x y z) = Vec3 <$> f x <*> pure y <*> pure z |
2025-02-11 17:21:30 +0100 | chele__ | (~chele@user/chele) (Remote host closed the connection) |
2025-02-11 17:18:38 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-02-11 17:18:10 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 17:18:02 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Remote host closed the connection) |
2025-02-11 17:15:06 +0100 | ec | (~ec@gateway/tor-sasl/ec) ec |
2025-02-11 17:14:36 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 264 seconds) |
2025-02-11 17:13:36 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2025-02-11 17:08:03 +0100 | SlackCoder | (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Read error: Connection reset by peer) |
2025-02-11 17:03:54 +0100 | Digit | (~user@user/digit) Digit |
2025-02-11 17:01:54 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 17:01:46 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds) |
2025-02-11 17:01:46 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Remote host closed the connection) |
2025-02-11 17:01:33 +0100 | Digit | (~user@user/digit) (Ping timeout: 244 seconds) |
2025-02-11 17:01:25 +0100 | <dminuoso> | Now write a `traverseVec3X` that does the same thing, except it only applies its action to the X component of Vec3. Write variants for Y and Z too. |
2025-02-11 17:00:57 +0100 | <dminuoso> | euouae: Perfect. Now off to the final variantÖ |
2025-02-11 16:50:30 +0100 | merijn | (~merijn@77.242.116.146) merijn |