2024-09-30 00:01:03 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-09-30 00:01:10 +0200 | <andrewboltachev> | dolio: well, Set^3 is a category of triplets like (a, a', a'') |
2024-09-30 00:01:45 +0200 | <dolio> | A functor. |
2024-09-30 00:02:26 +0200 | <andrewboltachev> | ok F is a functor. that's how we make a functor from more than one set to one essentially |
2024-09-30 00:03:07 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-30 00:03:57 +0200 | <dolio> | Yes. But what you're talking about is assembling many different arities of functors into a single category. So that requires having some way of relating different arities to make any sense. |
2024-09-30 00:04:34 +0200 | <andrewboltachev> | Yes. thanks a lot for the idea! I'll research it |
2024-09-30 00:06:09 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-09-30 00:06:12 +0200 | <dolio> | Also, depending on what exactly you want to do, you might need not just numbers, but lists indicating whether the argument is covariant or contravariant, and so on. |
2024-09-30 00:06:40 +0200 | <dolio> | But all the examples were covariant functors. |
2024-09-30 00:08:09 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-09-30 00:09:22 +0200 | <andrewboltachev> | https://app.diagrams.net/#G1lKco0mv66sGjTyMSMU1g-ogSE5PIbdzc#%7B%22pageId%22%3A%22YBh8yTivGdvy1ecIg6Zf%22%7D |
2024-09-30 00:09:57 +0200 | <andrewboltachev> | dolio: Maybe coproduct will give rise for contravariant functors in the idea you've given |
2024-09-30 00:10:21 +0200 | <dolio> | No. Exponentials will. |
2024-09-30 00:10:25 +0200 | <andrewboltachev> | ah |
2024-09-30 00:10:30 +0200 | <dolio> | I.E. functions. |
2024-09-30 00:11:20 +0200 | Eoco | (~ian@128.101.131.218) Eoco |
2024-09-30 00:13:06 +0200 | <andrewboltachev> | coproducts (in ADTs) have been a problem (or main point of interest?) for me in this (bigger) idea that I research |
2024-09-30 00:13:51 +0200 | <andrewboltachev> | in, for example "Categorical Databases" by David Spivak et al they talk about a "Database instance" functor C -> Set |
2024-09-30 00:14:54 +0200 | <andrewboltachev> | but I believe it only works for them 'cause single "database table" is like a product of fields: (e.g. first_name, last_name, email, password etc) |
2024-09-30 00:15:47 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) machinedgod |
2024-09-30 00:16:22 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-09-30 00:17:13 +0200 | <andrewboltachev> | if I generalize the idea (which I want) and the "generalized table" has also coproducts, e.g. either "pickup" or "delivery" (for a web store like Amazon perhaps) then how do they map coproduct onto Set |
2024-09-30 00:18:55 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-30 00:22:00 +0200 | <hololeap> | andrewboltachev: https://www.parsonsmatt.org/2019/03/19/sum_types_in_sql.html ? |
2024-09-30 00:23:42 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-09-30 00:24:13 +0200 | athan | (~athan@syn-098-153-145-140.biz.spectrum.com) (Quit: Konversation terminated!) |
2024-09-30 00:24:30 +0200 | <andrewboltachev> | hololeap: well, this is for SQL, but I rather mention "Categorical Databases" :-) |
2024-09-30 00:24:35 +0200 | Eoco | (~ian@128.101.131.218) (Quit: WeeChat 4.1.1) |
2024-09-30 00:25:06 +0200 | Eoco | (~ian@128.101.131.218) Eoco |
2024-09-30 00:25:12 +0200 | <hololeap> | ok |
2024-09-30 00:25:16 +0200 | Eoco | (~ian@128.101.131.218) (Client Quit) |
2024-09-30 00:25:55 +0200 | Eoco | (~ian@128.101.131.218) Eoco |
2024-09-30 00:26:03 +0200 | <andrewboltachev> | hololeap: also, some ppl say that having extra constraints in SQL will make db perform slower. (some even say that Foreign keys make it slow) |
2024-09-30 00:26:08 +0200 | Eoco | (~ian@128.101.131.218) (Client Quit) |
2024-09-30 00:26:40 +0200 | <andrewboltachev> | so one approach is to have e.g. "type" column and then several nullable columns, where each subset is for particular type etc etc |
2024-09-30 00:27:06 +0200 | <geekosaur> | depends on the db, really. sqlite will be bad, postgresql should be reasonable |
2024-09-30 00:27:29 +0200 | <geekosaur> | mariadb is poor |
2024-09-30 00:28:25 +0200 | <hololeap> | the article mentions three different approaches, including nullable columns |
2024-09-30 00:28:26 +0200 | <andrewboltachev> | yes I worked with ppl who denied fks in Postgres in "pursuit" for performance |
2024-09-30 00:29:13 +0200 | <geekosaur> | postgres has this thing where it's slower than simpler dbs for small tables, but scales far better than other databases as they get larger and more joins are involved |
2024-09-30 00:29:14 +0200 | <andrewboltachev> | hololeap: thanks. sorry |
2024-09-30 00:30:20 +0200 | <hololeap> | it's cool I just threw it out because at first glance it seemed vaguely relevant to the backlog I bothered to read |
2024-09-30 00:30:31 +0200 | <hololeap> | lol |
2024-09-30 00:30:47 +0200 | alp | (~alp@2001:861:e3d6:8f80:9956:3934:6a0b:7b98) |
2024-09-30 00:30:50 +0200 | acidjnk | (~acidjnk@p200300d6e72cfb46757e16ffb08be72b.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2024-09-30 00:30:59 +0200 | alp | (~alp@2001:861:e3d6:8f80:9956:3934:6a0b:7b98) (Changing host) |
2024-09-30 00:30:59 +0200 | alp | (~alp@user/alp) alp |
2024-09-30 00:31:03 +0200 | <andrewboltachev> | geekosaur: I believe there's a lot of science happening under the hood of Postgres :-) |
2024-09-30 00:31:18 +0200 | <monochrom> | Why is sqlite bad with foreign keys? If I create an index for the foreign key column, will it be much better? |
2024-09-30 00:31:23 +0200 | Eoco | (~ian@128.101.131.218) Eoco |
2024-09-30 00:31:37 +0200 | <geekosaur> | sqlite's just bad at jpining; it works best with single flat tables |
2024-09-30 00:31:47 +0200 | <geekosaur> | this is the price of being small and simple |
2024-09-30 00:31:50 +0200 | <andrewboltachev> | (didn't learn how to read output of EXPLAIN yet) |
2024-09-30 00:32:50 +0200 | <geekosaur> | basically it has no clue about query optimization, so where postgresql and even mariadb will optimize joins to at leats some extent, sqlite will keep brute-forcing them |
2024-09-30 00:33:26 +0200 | <geekosaur> | (for example it doesn't know how to use relative table sizes to determine when it's better to do the join from the other direction) |
2024-09-30 00:34:04 +0200 | <geekosaur> | and keeps no key statistics so it can't use those to similarly optimize how to do joins |
2024-09-30 00:34:41 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-30 00:34:43 +0200 | <geekosaur> | this kind of stuff means postgresql has higher overhead, but that overhead is fairly fixed so it becomes a smaller part of the cost as tables/indexes get larger |
2024-09-30 00:34:44 +0200 | <__monty__> | I'm skeptical working around the lack of foreign keys would usually be more performant than letting the DB engine do its thing. |
2024-09-30 00:35:29 +0200 | <geekosaur> | sounds like second generation nosql to me |
2024-09-30 00:35:42 +0200 | <andrewboltachev> | yes that team used JSONB |
2024-09-30 00:36:03 +0200 | <andrewboltachev> | i.e. two column tables — uuid and data (jsonb) |
2024-09-30 00:36:04 +0200 | <geekosaur> | unsurprisingly, nosql dbs are terrible at sqlish things |
2024-09-30 00:36:19 +0200 | alp | (~alp@user/alp) (Remote host closed the connection) |
2024-09-30 00:36:37 +0200 | <andrewboltachev> | but PostgreSQL is good at nosql (if you want it). Or is it? |
2024-09-30 00:37:12 +0200 | <geekosaur> | the higher overhead means it's usually not that great at them. tbh I'd use sqlite at that point |
2024-09-30 00:37:34 +0200 | <andrewboltachev> | ah |
2024-09-30 00:37:48 +0200 | Eoco | (~ian@128.101.131.218) (Quit: WeeChat 4.4.2) |
2024-09-30 00:37:52 +0200 | <geekosaur> | it's doing a lot of bookkeeping to optimize sql-style queries, if you do nosql with it that's all wasted |
2024-09-30 00:38:47 +0200 | <geekosaur> | (sorry, my inner db wonk is showing 🙂 ) |
2024-09-30 00:38:56 +0200 | Eoco | (~ian@128.101.131.218) Eoco |
2024-09-30 00:39:02 +0200 | <andrewboltachev> | geekosaur: I sometimes optimize ORM calls :D (e.g. call 1 time instead of N) |
2024-09-30 00:39:42 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-09-30 00:41:14 +0200 | <andrewboltachev> | geekosaur: do you use esqueleto or sth? |
2024-09-30 00:43:01 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 248 seconds) |
2024-09-30 00:43:02 +0200 | <andrewboltachev> | geekosaur: and have you seen "Categorical databases"? And if yes, do you think it brings anything useful |
2024-09-30 00:44:17 +0200 | <geekosaur> | I don't actually do databases any more (since 1996) |
2024-09-30 00:44:51 +0200 | <andrewboltachev> | wow |
2024-09-30 00:44:55 +0200 | <geekosaur> | but that was around when the open source community picked up postgres, ripped out the research-quality QUEL engine, and started building a production-quality SQL engine to replace it |
2024-09-30 00:45:00 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-30 00:46:38 +0200 | xsarnik | (xsarnik@lounge.fi.muni.cz) (The Lounge - https://thelounge.chat) |
2024-09-30 00:50:24 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-09-30 00:54:12 +0200 | troojg | (~troojg@user/troojg) (Ping timeout: 276 seconds) |
2024-09-30 01:00:46 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-30 01:01:28 +0200 | deepfire | (~user@80.92.100.69) (Remote host closed the connection) |
2024-09-30 01:06:03 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-09-30 01:10:53 +0200 | Typedfern | (~Typedfern@2a02:9130:9c34:14e4:99e7:1e2d:3a90:e394) (Ping timeout: 265 seconds) |
2024-09-30 01:16:34 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-30 01:19:24 +0200 | andrewboltachev | (~andrey@178.141.123.3) (Quit: Leaving.) |
2024-09-30 01:20:07 +0200 | <geekosaur> | (also, re "Categorical Databases", I'm a programmer/sysadmin who's picked up a very little bit of abstract mathematics from hanging out in here; I expect that paper would be gobbledygook to me) |
2024-09-30 01:20:13 +0200 | <geekosaur> | whoops, missed |
2024-09-30 01:21:31 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-09-30 01:27:10 +0200 | Typedfern | (~Typedfern@2a02:9130:9c34:14e4:d11e:8149:a19f:6793) |
2024-09-30 01:29:33 +0200 | dyniec | (~dyniec@dybiec.info) dyniec |
2024-09-30 01:32:22 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-30 01:37:25 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-09-30 01:41:18 +0200 | <monochrom> | :) |
2024-09-30 01:41:47 +0200 | <monochrom> | There is a chance David Spivak's writing can made sense to practical people. Afterall, he wrote like "CT for engineers". |
2024-09-30 01:48:10 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-30 01:53:25 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-09-30 02:03:55 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-30 02:04:15 +0200 | pavonia | (~user@user/siracusa) siracusa |
2024-09-30 02:06:53 +0200 | polyphem | (~rod@p3ee3f695.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2024-09-30 02:07:20 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-09-30 02:08:53 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-09-30 02:09:06 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-09-30 02:09:32 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
2024-09-30 02:12:39 +0200 | bh34e5 | (~bh34e5@user/bh34e5) bh34e5 |
2024-09-30 02:19:43 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-30 02:22:09 +0200 | xff0x | (~xff0x@2405:6580:b080:900:2db7:1968:c949:1e07) (Ping timeout: 260 seconds) |
2024-09-30 02:24:54 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-09-30 02:34:51 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-09-30 02:35:31 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |