20:01:37 <robcresswell> #startmeeting horizondrivers 20:01:38 <openstack> Meeting started Wed May 18 20:01:37 2016 UTC and is due to finish in 60 minutes. The chair is robcresswell. Information about MeetBot at http://wiki.debian.org/MeetBot. 20:01:39 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 20:01:41 <openstack> The meeting name has been set to 'horizondrivers' 20:01:44 <lhcheng_> o/ 20:01:48 <robcresswell> o/ 20:01:51 <bpokorny> o/ 20:01:51 <TravT> o/ 20:01:55 <david-lyle> o/ 20:02:26 <robcresswell> Here's the agenda for today 20:02:32 <robcresswell> #link https://wiki.openstack.org/wiki/Meetings/HorizonDrivers 20:02:40 <robcresswell> Couple things first 20:02:44 <robcresswell> #topic Notices 20:02:55 <robcresswell> #link https://wiki.openstack.org/wiki/Sprints/HorizonNewtonSprint 20:03:28 <robcresswell> Midcycle details are there, and also in the room topic/ mailer. Add attendance, topics to etherpad, etc 20:03:49 <robcresswell> Just shy of 2 months off, so I hope thats enough time for travel approval etc. 20:04:03 <TravT> i'll add my name, but i don't have travel approval yet. 20:04:17 <hurgleburgler> me too 20:04:26 <robcresswell> No immediate rush, its just so I can sort out wifi etc. 20:04:42 <ducttape_> new to pre provision all the wifi ports needed ;) 20:05:01 <ducttape_> new/need 20:05:07 <robcresswell> Yup 20:05:11 <robcresswell> #link https://wiki.openstack.org/wiki/Horizon/WeeklyBugReport 20:05:46 <robcresswell> I've updated the bugs. We've cleared out a good number of bugs in N-1 so far, but it'd be great to move on some of the larger bps. We've implemented 3 or 4 so far IIRC. 20:05:55 <robcresswell> So please get some reviews on those features. 20:06:04 <ducttape_> https://review.openstack.org/#/q/topic:bp/admin-neutron-l3-agents will likely be complete for N release I expect 20:06:42 <robcresswell> A well filled out bp as well I see :p 20:07:02 <robcresswell> Lets move on to the agenda items 20:07:29 <robcresswell> #topic UI Text Guidelines 20:07:46 <robcresswell> #link http://docs.openstack.org/contributor-guide/ui-text-guidelines.html 20:08:10 * tsufiev proposes to make a new voting job ;) 20:08:25 <robcresswell> Was this your item tsufiev ? 20:08:36 <tsufiev> robcresswell, no, it wasn't me 20:08:45 <tsufiev> just kidding, of course, about that job 20:09:04 * ducttape_ was worried 20:09:10 <tsufiev> (would require some AI to actually check guidelines conformance) 20:09:17 <robcresswell> Well, thats a mystery. It may be worth a read through, but it doesn't seem like anyone wants to own that :) 20:09:23 <robcresswell> Lets move on 20:09:35 <robcresswell> #topic Glance V2 20:09:36 <david-lyle> love guidelines we don't contribute to 20:09:45 <tsufiev> that was mine 20:09:49 <hurgleburgler> david-lyle: agreed 20:09:52 <robcresswell> tsufiev: You're up :) 20:10:09 <tsufiev> I was wondering is Glance v2 support is a thing someone is thinking about? 20:10:28 <bpokorny> Yep, I'm working on that for Newton. 20:10:36 <david-lyle> https://blueprints.launchpad.net/horizon/+spec/horizon-glance-v2 ? 20:10:45 <tsufiev> bpokorny, oh, that's good! do you need some help on that? 20:11:14 <bpokorny> Yeah, help would be great on it. I think there are complexities with it that still need to be worked out. 20:11:39 <tsufiev> bpokorny, okay, count me in 20:11:45 <bpokorny> I know there was a patch out for it that a few people had worked on already, so was planning to start with and improve that one. 20:11:46 <TravT> bpokorny: you can add me to reviews for this 20:12:00 <bpokorny> tsufiev: TravT: Great! 20:12:13 <bpokorny> I'll keep you guys posted as I make progress on it. 20:12:37 <tsufiev> could use midcycle to push reviews for it... 20:12:42 <robcresswell> Well, that went well :p 20:12:57 <robcresswell> Ready to move on? There's a few bps in the agenda. 20:13:38 <robcresswell> #topic Blueprint Review 20:13:59 <robcresswell> #link https://blueprints.launchpad.net/horizon/+spec/static-file-autodiscovery 20:14:02 <hurgleburgler> Thai was interested in resurrecting this idea … theres already a review for it up, jones had some comments on it 20:15:10 <TravT> pardon my ignorance on the background for this one 20:15:11 <TravT> but 20:15:18 <TravT> how does this relate to plugins? 20:15:25 <robcresswell> richard had some patches on a related subject right? I wasnt sure if they were over the same thing or different approaches 20:15:40 <hurgleburgler> richard had some old patches that reworked the static stuff 20:15:44 <tsufiev> I like richard's concept of keeping entrypoints by default inside xstatic 20:15:46 <david-lyle> TravT: if a plugin wants to use an xstatic package horizon proper doesn't already 20:15:53 <hurgleburgler> I asked him to resurrect it so that I could make use of it for this BP 20:16:47 <hurgleburgler> His patch calls our some JS FILES directly, I still need to touch base with him on the comments, I think our solutions can live peacefully together somehow 20:17:03 <hurgleburgler> our == out 20:17:25 <hurgleburgler> I'm mostly interested in being able to pip install a theme 20:17:53 * ducttape_ is under the impression that pipin is not easy 20:18:03 <hurgleburgler> ducttape_: lol 20:18:05 * tsufiev is curious how js dependencies are solved in this semi-automatic way? 20:18:17 * david-lyle saw that on tshirt, so it must be true 20:18:26 <tsufiev> should we re-introduce npm-like dependencies into xstatic ;)? 20:18:27 <hurgleburgler> think that might be part of the comments left, but I'm not sure yet 20:18:33 <ducttape_> the js dependacies are not really handled, unless the xstatic package enforces it 20:18:47 <tsufiev> I mean, sometimes scripts should be loaded in a particular order 20:18:53 <hurgleburgler> #link https://review.openstack.org/#/c/195371/ 20:19:18 <hurgleburgler> but, any thoughts on the BP itself? 20:19:24 <hurgleburgler> do people like the idea? 20:19:34 <hurgleburgler> too bad thai isn't here 20:19:38 <tsufiev> +1 20:19:46 <hurgleburgler> i'd given up on it ages ago 20:19:48 <robcresswell> Yeah it makes sense to me 20:20:31 <hurgleburgler> cool beans 20:20:44 <robcresswell> Thoughts on approval/priority? 20:20:58 <ducttape_> it seems like it is more of a developer / distro priority 20:21:12 <david-lyle> so I believe app-catalog had wanted such a thing as well 20:21:19 <ducttape_> as long stuff doesn't completely break and need a rewrite - wfm 20:21:23 <robcresswell> I agree. It seems like a QOL change to me 20:22:13 <tsufiev> quality of life? 20:22:17 <TravT> +1 on the BP 20:22:32 <robcresswell> As in, it makes setup easier, but its not like that setup is impossible to achieve 20:23:13 <hurgleburgler> its true … I've heard some packagers rebuild the entire static_settings.py themselves wiht shell scripts 20:23:20 <robcresswell> #info https://blueprints.launchpad.net/horizon/+spec/static-file-autodiscovery Approved 20:23:24 <hurgleburgler> \o/ 20:23:25 <hurgleburgler> yay! 20:23:31 <robcresswell> #link https://blueprints.launchpad.net/horizon/+spec/dynamic-themes-v2 20:23:40 <hurgleburgler> This is the concept I brought up at the summit 20:23:59 <hurgleburgler> something that we might need internally, and something that would be cool to provide to everyone else 20:24:59 <david-lyle> "simple cookie logic" ? 20:25:01 <ducttape_> ah yeah, that is crazy 20:25:02 <david-lyle> is that a thing? 20:25:10 <hurgleburgler> david-lyle: LOL 20:25:16 <ducttape_> it's interesting / cool.... but crazy 20:25:39 <hurgleburgler> basically, I'd like to be able to use functions, that simply return the theme value to load 20:25:46 <robcresswell> I don't like the idea of changing the setting again, if its altering the existing setting 20:26:02 <tsufiev> ducttape_, just imagine randomly generated theme based on a random cookie value! 20:26:04 <robcresswell> As long as it functions with the same config as today, extending is fine as far as Im concerned. 20:26:05 <hurgleburgler> you can write any logic, as long as it returns a theme 'key' 20:26:07 <ducttape_> are there current places in horizon that don't adopt the current theme stuff all that well? those seem higher priority 20:26:19 <david-lyle> robcresswell: next cycle theming will stabilize 20:26:34 <ducttape_> I thought I heard that last cycle 20:26:41 <david-lyle> every cycle :P 20:26:43 <hurgleburgler> ducttape_: sorry, there's only one of me 20:27:04 <robcresswell> david-lyle: Hey, my response to him was that Liberty was more stable 20:27:19 <hurgleburgler> :-D 20:27:21 <ducttape_> yy.... but I think it should be recognized... there are spots right now that don't adopt theme stuff well / correctly.... and it's pretty ugly / obvious 20:27:40 <hurgleburgler> Which ones? 20:27:42 <david-lyle> ducttape_: those are on hurgleburgler's hunt and kill list 20:27:51 <hurgleburgler> I'm cleaning up the stragglers now 20:27:53 <robcresswell> So, my thoughts on the actual bp is the idea is neat, as long as it doesnt change/break any existing config then its fine 20:28:01 <david-lyle> robcresswell: +1 20:28:02 <ducttape_> k. I know mfisch was complaining, will get bugs filed to follow up with 20:28:08 <hurgleburgler> robcresswell: i promise 20:28:19 <robcresswell> But it isnt high priority. More interested in fixing the existing issues and making sure the angular content is also themable etc. 20:28:19 <david-lyle> ducttape_: that's surprising 20:28:39 <hurgleburgler> ducttape_: just shoot the bugs my way if possible 20:29:02 <ducttape_> we like to give hurgleburgler a hard time. no one has done more around the theme stuff... but it's never enough 20:29:15 <david-lyle> I agree filling in the theming gaps is higher priority 20:29:15 <hurgleburgler> Its never done! 20:29:19 <robcresswell> #info https://blueprints.launchpad.net/horizon/+spec/dynamic-themes-v2 Approved 20:29:21 <hurgleburgler> damn moving target 20:29:26 <robcresswell> #link https://blueprints.launchpad.net/horizon/+spec/angular-template-overrides 20:29:35 <david-lyle> override all the things ! 20:29:36 <hurgleburgler> here's a big one 20:29:40 <hurgleburgler> I just did the spinner rework 20:29:48 <hurgleburgler> making the spinner overridable from the theme 20:29:50 <hurgleburgler> through tempaltes 20:29:55 <hurgleburgler> angular uses their own spinner 20:29:58 <hurgleburgler> which is a problem 20:30:20 <hurgleburgler> right now … I restructured the angular to use a template (it was inline HTML within the JavaScript) 20:30:30 <hurgleburgler> but, there is no way to override the angular templates from a theme 20:30:33 <tsufiev> frankly speaking, I don't find a bare spinner very UI-friendly 20:30:51 <tsufiev> would be better to see progress bar in its place 20:30:58 <hurgleburgler> but now you can customize it anyways you want 20:30:58 <david-lyle> tsufiev: for the page? 20:31:02 <hurgleburgler> progress bar is sometimes impossible 20:31:08 <hurgleburgler> cause, you don't know percentages 20:31:09 <robcresswell> tsufiev: Progress bars are difficult to make reliable, and frustrating if they aren't reliable. 20:31:17 <hurgleburgler> or do you mean just an animated 100% width one? 20:31:26 <david-lyle> 14 hours left to load page 20:31:27 <tsufiev> oh yes, that's true :( 20:31:27 <hurgleburgler> but, anyways, off topic 20:31:33 <david-lyle> oh wait it's done 20:31:35 <hurgleburgler> right now, you can't override angular templates 20:31:37 <ducttape_> so this is primarily supporting the spinner stuff? 20:31:39 <tsufiev> at least for file uploads where progress is trackable 20:31:42 <tyr_> in any case...with this blueprint...your theme can make the spinner a progress bar 20:31:49 <hurgleburgler> no, supporting ANY angular overrides 20:31:52 <robcresswell> ducttape_: No, one tiny piece is done :) 20:31:54 <hurgleburgler> it just became apparent when I did this work 20:31:55 <robcresswell> I think 20:31:56 <tsufiev> which imo the ones users wait the most time 20:31:59 <ediardo> animate until 99% -> then 100% until completed 20:32:05 <robcresswell> ediardo: UX ftw 20:32:34 <ducttape_> I'm hunting for how to change new launch instance use of transfer table, and throw that thing overboard 20:32:34 <tsufiev> ediardo, haha. Or better use 'windows files copy' approach 20:32:39 <robcresswell> So, one of the nice parts about the django templating is that we can do block and template level overrides 20:32:42 <tsufiev> 15 mins ... 30 mins ... 45 mins... 20:33:00 <hurgleburgler> Its one of the most powerful pieces of the Theme functionality 20:33:09 <david-lyle> one of the core design principles for Horizon is extensibility, so I am +2 on this bp 20:33:11 <hurgleburgler> its how material is able to change the sidebar and the header 20:33:15 <robcresswell> I think if we cant customise templates or HTML in any way, its a big step backwards in that regard. 20:33:34 <hurgleburgler> I spoke it over with a few of the angular peeps 20:33:39 <hurgleburgler> matt-borland and TravT 20:33:49 <tyr_> hey... 20:33:53 <hurgleburgler> I threw up three idea on how to approach the problem from our meeting 20:33:58 <hurgleburgler> tyr_ too! 20:34:21 <hurgleburgler> Any input or iteration on those ideas would be awesome too 20:34:37 <tyr_> can you elaborate on your 2nd idea in the bp? I didn't grok that one 20:34:53 <tyr_> in bp off-line is fine 20:35:40 <robcresswell> All okay with approval/ High? 20:35:43 <hurgleburgler> When we do collectstatic, we look through the directory structure anyways, we can write a static json file and load that into angular 20:36:23 <TravT> + on approval... but not sure on which approach. 20:36:32 <ducttape_> It would be nice to have a real use case / example for it to be high 20:36:37 <hurgleburgler> I think several people can help implement too, if possible 20:36:42 <ducttape_> the spinner is kinda lower priority 20:36:53 <robcresswell> I think you're fixating on the spinner example a bit 20:36:54 <tyr_> the use case is as we get angular code...it appears to be a regression in themeability 20:37:07 <hurgleburgler> ducttape_: the spinner is just an example of why you would need to override tempaltes 20:37:28 <tyr_> swift ui for example 20:37:29 <robcresswell> I think the point hurgleburgler was making is that you can't override any angular templates right now. So you're just stuck with the layout. 20:37:30 <ducttape_> sure, but it's not really impacting admins or users in a material way imo 20:37:34 <david-lyle> ducttape_: it's more about other widgets, that was just a simple one 20:38:14 <ducttape_> sure ok... then take the flavor sort thing in the new launch instance.... something 3 operators brought up at the summit 20:38:18 <tsufiev> +1 that this feature is needed 20:38:27 <ducttape_> and use that as an example / proof point 20:38:27 <hurgleburgler> \o/ 20:39:13 <tyr_> it is worth noting that because angular templates may contain complex behavior and controller interactions...so HTML overrides need to tread carefully. 20:39:18 <robcresswell> ducttape_: These arent mutually exclusive goals though. I'd like to fix that too. I can't recall the priority we set on that, I think its assigned to me at the moment. 20:39:20 <matt-borland> ducttape_, that example is arguably about functionality more than theming 20:39:29 <hurgleburgler> tyr_: the same is true of the django templates in some cases 20:39:30 <TravT> ducttape_: is this the setting that allows injecting a python function? 20:39:46 <ducttape_> it used to work that way TravT, yes 20:39:55 <ducttape_> but it could work in another way in the future 20:41:35 <robcresswell> We can decide on implementation, but I think its a desirable to maintain the template flexibility 20:41:46 <hurgleburgler> +1 20:41:54 <matt-borland> yep, agreed 20:42:04 <tyr_> I think this is a useful bp, but it does add another "hey...you guys broke my customization" point. Any ideas how to provide an "api" of sorts...or versioning? 20:42:04 <robcresswell> I'd like to look into how the schema form does it personally, they have a really nice way of doing it 20:42:11 <robcresswell> With their bootstrap provider 20:42:15 <robcresswell> But thts off topic 20:42:32 <hurgleburgler> robcresswell: would love it if you could provide a solution on the BP too 20:42:35 <robcresswell> #info https://blueprints.launchpad.net/horizon/+spec/angular-template-overrides Approved, High 20:42:37 <matt-borland> yeah, it's definitely a 'here be dragons' use case 20:42:55 <tsufiev> robcresswell, if you'd like to offload some part of schema research, ping me 20:42:59 <robcresswell> hurgleburgler: I'll work out when I can next forgo sleep and add to it :) 20:43:05 <TravT> hurgleburgler: is your option 2 basically a resource registry? 20:43:14 <TravT> the json object? 20:43:22 * matt-borland heh heh 20:43:28 <hurgleburgler> robcresswell: you need to build up your tolerence 20:43:36 <TravT> i'm thinking more like message catalogs 20:43:54 <TravT> where the key is the text inline and the value is what you should really use 20:43:55 <hurgleburgler> TravT: probably … we just need to load it via a django template tag in the angular base template somehow 20:44:27 <hurgleburgler> I think it might be the best of both the solutions we had discussed before 20:44:33 <hurgleburgler> but, approved! 20:44:35 <hurgleburgler> Thanks! 20:44:39 <tyr_> I'd be cautious about making it too angular specific. i think it might be better approached as a "static file override" 20:45:01 <robcresswell> Nothing else on the agenda for today 20:45:06 <robcresswell> #topic Open Discussion 20:45:11 <matt-borland> eslint warnings? 20:45:27 <tsufiev> I have a minor question about angular files location 20:45:48 <tsufiev> I do not want at all to start another file moving crusade, but... 20:45:49 <ducttape_> there is already an option to have static file overrides, we use em... and would apply in case above... but not be theme specific 20:46:11 <lcastell> I have a couple of BPs to advertise: https://blueprints.launchpad.net/horizon/+spec/admin-views-filter-first 20:46:19 <lcastell> https://blueprints.launchpad.net/horizon/+spec/improve-horizon-caching 20:46:25 <lcastell> :-) 20:46:42 <ducttape_> nice lcastell 20:46:44 <ducttape_> +100 20:46:45 <tsufiev> I found it a bit confusing that, for example NG Images are inside openstack_dashboard/static/app/core/images while containers are inside openstack_dashboard/dashboards/project/static/containers 20:47:23 <tyr_> tsufiev: images "base" code is theoretically shared by panels in two different dashboards 20:47:37 <robcresswell> lcastell: We've discussed this one before, so we can approve it unless anyone has any strong objections 20:47:43 <matt-borland> yeah, I think that as we move toward things registered by resource type, they will fall into a logical registry, not dashboard-related 20:47:59 <tsufiev> oh 20:48:05 <matt-borland> *logical directory system 20:48:05 <robcresswell> lcastell: These two* even 20:48:17 <lcastell> \o/ 20:48:26 <matt-borland> tsufiev, tyr and I were also looking at this, thinking of targeting newton-2 with a recommendation 20:48:32 <tsufiev> then perhaps not use dashboard-oriented scheme at all? 20:48:34 <matt-borland> so we don't have 100 refactors 20:48:50 <tyr_> lcastell: both of those bp's seem to swirl around use cases that searchlight addresses particularly well. 20:49:08 <matt-borland> perhaps, I think it's up to people to figure out the direction we want to go in with panels/actions/views 20:49:11 <tsufiev> matt-borland, okay, it's always pleasant to hear that something bothers not only me :) 20:49:27 <matt-borland> indeed, it gnaws at my soul constantly 20:49:43 <tyr_> I know we aren't at the searchlight is part of core horizon stage...but i'd be cautious about investing too much effort in a Horizon caching and pre-filtering code base. 20:50:29 <ediardo> another BP related to UX: https://blueprints.launchpad.net/horizon/+spec/improve-confirm-delete-window 20:50:34 <robcresswell> tyr_: We're a long way off that stage. 20:50:35 <david-lyle> tyr_ nor would I bank on searchlight as the only solution 20:50:43 <lcastell> tyr_ got it 20:50:43 <robcresswell> lcastell: Please go ahead with the improvements 20:50:50 <ducttape_> tyr_: is searchlight deployed anyone at scale ? 20:50:55 <david-lyle> the extreme in both cases is foolhardy 20:51:19 <lcastell> robcresswell cool!! thanks! 20:51:24 <ducttape_> until searchlight is a valid choice - I think lcastell is very much on the right path, and won't take much effort 20:51:37 <tsufiev> ducttape_, that thing interests me as well 20:51:52 <david-lyle> nor does it hurt searchlight 20:51:56 * lcastell tears of joy 20:52:13 * ducttape_ looks for why not both meme 20:52:15 <robcresswell> tyr_, matt-borland: re: the images code, we should take some time about general architecture, because the porject/admin split is not that clear cut, and we may want to alter it 20:52:23 <robcresswell> some time to talk* 20:52:28 <robcresswell> perhaps at mid cycle 20:52:47 <matt-borland> robcresswell, yes, I think it's a good discussion, esp. once we get more examples 20:53:02 <hurgleburgler> robcresswell: will it be possible to dial people into the mid cycle? 20:53:07 <hurgleburgler> offtopic, apologies 20:53:27 <robcresswell> There's a webex all set up I believe. 20:53:37 <robcresswell> Just wanted to check details before I put out the info though. 20:53:43 <hurgleburgler> cisco has some rather fancy conference technology if I remember correctly 20:53:52 <robcresswell> Should be a proper conference room with decent audio handling too. 20:53:55 <david-lyle> hurgleburgler: that's for customers 20:54:16 <robcresswell> Nah, they have big telepresence rooms on every floor. 20:54:24 <hurgleburgler> david-lyle: 。゜゜(´O`)°゜。 20:54:31 <tsufiev> hurgleburgler, do they have time distortion machine to fight TZ differences :)? 20:54:43 <robcresswell> tyr_ hurgleburgler matt-borland: https://github.com/json-schema-form/angular-schema-form-bootstrap/blob/develop/bootstrap-decorator.js 20:54:44 <david-lyle> hurgleburgler: I'm not even sure what that was 20:54:52 <tsufiev> (I hope I won't need it) 20:54:53 <matt-borland> yeah, robcresswell 20:54:55 <robcresswell> thats how schema form does its template handling ^^ 20:55:13 <robcresswell> If you could do something like that, I think that would be really cool. 20:55:41 <matt-borland> hey, we didn't get to my suggested topic! :) 20:55:51 <robcresswell> matt-borland: :o sorry, what was it? 20:55:53 <matt-borland> copious eslint warnings 20:56:03 <matt-borland> notably 'quote-props' 20:56:07 <matt-borland> do we really want that rule? 20:56:14 <matt-borland> I don't. :) 20:56:17 <david-lyle> matt-borland: all javascript is warning according to eslint 20:56:22 <matt-borland> exactly! 20:56:29 <matt-borland> actually, it's just all quote-props 20:56:30 <tsufiev> david-lyle, lol ) 20:56:40 <TravT> david-lyle: lol 20:56:42 <hurgleburgler> david-lyle: it was a crying person 20:56:59 <david-lyle> matt-borland: do we just have to disable rules? 20:57:10 <david-lyle> or are you proposing fixing all the nits? 20:57:14 <matt-borland> yeah, we can set that quote-props rule to 0 unless someone really wants it 20:57:21 <TravT> eslint warnings provide zero value until that is done 20:57:27 <hurgleburgler> we can disable all the nits :-D 20:57:28 <matt-borland> it's "you should say {'a': 'apple'} rather than {a: 'apple'} 20:57:36 <robcresswell> Fine by me. I have no strong feelings about anything above basic linting. 20:57:39 <tsufiev> matt-borland, do you think we need to disable it in eslint-config-openstack? 20:57:48 <matt-borland> we can override in .eslintrc I think 20:57:52 <matt-borland> I did the other day 20:58:09 <hurgleburgler> we don't have to actually follow every rule they push 20:58:11 <david-lyle> I say disable and if someone wants to reenable, they can fix all the warnings with that patch 20:58:16 <matt-borland> I'll put up a patch...thanks! 20:58:18 <TravT> david-lyle: +2 20:58:19 <tsufiev> yes, it's always possible, but it just looks... not aligned with common sense 20:58:28 <hurgleburgler> david-lyle: +2 20:58:51 <matt-borland> thanks :) 20:59:27 * tsufiev dreams about starting using ES2015 in Horizon JS 20:59:56 <hurgleburgler> nits aren't 'common sense' all the time 21:00:05 <robcresswell> We're at time 21:00:08 <robcresswell> Thanks everyone! 21:00:13 <hurgleburgler> Thanks! 21:00:15 <robcresswell> #endmeeting