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