01:03:09  * Jessidhiaquit (Remote host closed the connection)
01:04:06  * Jessidhiajoined
01:19:46  * jmdyckquit (Ping timeout: 250 seconds)
01:27:21  * jmdyckjoined
01:55:13  * aki_joined
01:56:52  * akirosequit (Ping timeout: 272 seconds)
01:56:53  * aki_changed nick to akirose
02:48:38  * gibson042quit (Quit: Leaving.)
03:10:43  * gibson042joined
03:38:52  * gibson042quit (Ping timeout: 250 seconds)
03:53:32  * gibson042joined
04:01:50  * aki_joined
04:02:56  * akirosequit (Ping timeout: 240 seconds)
04:02:57  * aki_changed nick to akirose
05:36:35  * jmdyckquit (Remote host closed the connection)
05:57:33  * obensourcequit (Ping timeout: 245 seconds)
06:08:01  * aki_joined
06:08:47  * akirosequit (Ping timeout: 240 seconds)
06:08:47  * aki_changed nick to akirose
06:12:08  * obensourcejoined
06:28:26  * gibson042quit (Ping timeout: 240 seconds)
07:51:01  * keith_millerjoined
08:14:17  * aki_joined
08:15:10  * akirosequit (Ping timeout: 246 seconds)
08:15:10  * aki_changed nick to akirose
08:19:25  * akoserwajoined
08:21:56  * akoserwa_joined
08:24:26  * akoserwaquit (Ping timeout: 240 seconds)
08:58:46  * Guest20778joined
08:59:29  * Guest20778part
09:21:12  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:56:03  * akoserwa__joined
09:58:25  * akoserwa_quit (Ping timeout: 246 seconds)
10:05:10  * akoserwa__quit (Ping timeout: 272 seconds)
10:20:57  * aki_joined
10:21:19  * AtumTjoined
10:21:52  * akirosequit (Ping timeout: 246 seconds)
10:21:52  * aki_changed nick to akirose
12:01:22  * keith_millerjoined
12:27:34  * obensourcequit (Ping timeout: 268 seconds)
12:27:44  * aki_joined
12:28:55  * akirosequit (Ping timeout: 244 seconds)
12:28:55  * aki_changed nick to akirose
12:40:27  * obensourcejoined
13:16:58  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:42:30  * cybaiquit (Ping timeout: 250 seconds)
13:53:40  * cybaijoined
14:00:19  * jmdyckjoined
14:32:52  * aki_joined
14:33:44  * akirosequit (Ping timeout: 246 seconds)
14:33:45  * aki_changed nick to akirose
15:58:24  * rmarkinsquit (Remote host closed the connection)
15:59:00  * rmarkinsjoined
16:07:51  * keith_millerjoined
16:13:32  * cloudshujoined
16:18:49  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:26:17  * rmarkinsquit (Quit: Leaving...)
16:36:10  * Nimelrianjoined
16:39:35  * aki_joined
16:40:36  * akirosequit (Ping timeout: 250 seconds)
16:40:37  * aki_changed nick to akirose
17:06:24  * gibson042joined
17:20:35  * rmarkinsjoined
17:34:07  * keith_millerjoined
18:39:00  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:45:46  * aki_joined
18:46:56  * akirosequit (Ping timeout: 240 seconds)
18:46:56  * aki_changed nick to akirose
18:49:44  * keith_millerjoined
18:59:42  * gibson042quit (Ping timeout: 250 seconds)
19:02:52  * gibson042joined
19:07:04  * gibson042quit (Ping timeout: 250 seconds)
19:09:28  <TabAtkins>Heh, the `math` tag function. Is there anything tagged templates *can't* do?
19:10:25  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:10:29  <TabAtkins>That does offer... intriguing possibilities for typedOM. cssMath`${el.styleMap.get('width')} + 5px`, anybody?
19:16:51  <TabAtkins>https://twitter.com/tabatkins/status/1092502187387670528
19:18:44  <ljharb>TabAtkins: generically have proper syntax highlighting for your arbitrary DSL?
19:19:24  <TabAtkins>"generically" no. Just recognizing that a tagged string whose tag is named "js", "html", or "css" is likely to be at least *similar* to those languages, enough that highlighting will be useful.
19:19:39  <ljharb>perhaps, but brittle
19:21:48  * AtumTquit (Ping timeout: 250 seconds)
19:22:34  * gibson042joined
19:27:20  * AtumTjoined
19:39:20  * Nimelrianquit (Read error: Connection reset by peer)
19:41:51  * Nimelrianjoined
19:41:57  <TabAtkins>Vaguely related: the set/get dance to update a value in a Map is annoying. I'd like to fix this for CSS by adding a `update(cb)` method that takes an `oldval=>newVal` callback, so `obj.update('width', old=>old.add(CSS.px(5)))` is the same as `obj.set('width', obj.get('width').add(CSS.px(5)))`
19:43:33  <TabAtkins>Looking over the Collection Methods proposal, doesn't look like this method exists yet. Any history I should look at before I open an issue?
19:46:36  * AtumTquit (Read error: Connection reset by peer)
19:47:22  * AtumTjoined
20:37:28  * jwaldenjoined
20:44:35  * gibson042quit (Quit: Leaving.)
20:51:00  * aki_joined
20:52:06  * akirosequit (Ping timeout: 246 seconds)
20:52:06  * aki_changed nick to akirose
21:01:22  <bradleymeck>TabAtkins: I've though about proposing `emplace` (insert if missing), but haven't gotten around to it
21:02:13  <bradleymeck>we had some talks at last meeting about a variety of things around collections, did seem like some people felt OOP protocols should be invoked for new methods and it caused some friction
21:02:14  <TabAtkins>That's a different method than what I'm asking for; yours is `setdefault` from Python, right? (A `get`, except it first sets it to the provided default value if it's missing.)
21:02:34  <bradleymeck>TabAtkins: yes, similar but quite different
21:03:08  <bradleymeck>the big thing for me is when people argue for calling into OOP hooks using things like .add/.set do in the constructors
21:03:43  <bradleymeck>that gets really complex if you model it after that, but at the same time subclassing is extremely fragile if you don't
21:10:40  <TabAtkins>Yeah, as I said in IRC during the meeting, I'm very much for making sure that new methods don't break on subclasses; it sucks if you have to reimplement the entire (gradually growing) suite of built-in methods just to subclass a simple collection class, when the new methods could be built on top of the core methods instead.
21:10:54  <TabAtkins>But I"m also sensitive to the "we can do it more efficiently if it's custom" argument. :/
21:11:47  <TabAtkins>Really feels like protocols are the answer here; a Maplike protocol that depends on some core methods, and provides all the additional methods, but allows custom overriding when necessary. Then you don't need to subclass and worry about the Map-specialized code doing bad things for your subclass.
21:17:18  <annevk>When does subclassing beat protocols?
21:18:53  * AtumTquit (Read error: Connection reset by peer)
21:19:29  * AtumTjoined
21:33:16  * keith_millerjoined
21:38:03  <bradleymeck>annevk: when the protocols already exist subclassing is relatively nice if it can be built upon them
21:39:22  <bradleymeck>TabAtkins: rekey (now toValue/toKey) took a similar approach on letting you push the logic of core protocol like methods up to the language, i'm not 100% sure on the symbols based approach i've seen elsewhere these days
21:39:24  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:43:10  * gibson042joined
22:00:12  * gibson042quit (Ping timeout: 272 seconds)
22:13:58  * gibson042joined
22:35:05  * keith_millerjoined
22:39:56  * Nimelrianquit (Ping timeout: 240 seconds)
22:57:18  * aki_joined
22:58:07  * akirosequit (Ping timeout: 240 seconds)
22:58:07  * aki_changed nick to akirose
22:58:24  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:43:44  * AtumTquit (Quit: AtumT)
23:49:45  * keith_millerjoined