 I'm just going to take this link and make it the topic in IRC for a moment. There we go. I'm going to grab a glass of water already in a second. We're still in the same sun. Jahan? Hey, there's Al. Is Jahan probably showing up here at some point? I would think so. Cinema text. Alright, in the meantime, I do want to have kind of a rough list of topics for us to cover so we know what we're talking about and we don't spend too much time on any one thing so that we can get to everything, so maybe lay those out really fast? Sounds good. Alright. Good. For some people's minds, I know that for me, I've got 0.1, maybe the being in Europe meeting up possibly. So by 0.1, you mean that would include like testing. Is SYN? Did you ping SAM? Yeah. Oh, you mean for this meeting? Yeah. I'm a dev list. Right. It might not be available. Well, should we talk about, I want to do a quick chat about authentication? Well, let's see. We should talk about Kristoff's status, obviously, on two things, the randomized testing the authentication generator and then moved towards using his fuzzy anchoring to actually reattach it. But we might not get caught up, but we'll table the reputation stuff. And then, let's see, just looking at the Wiki and doing a quick swag there on what's on the red map. Well, it probably doesn't really be discussed too much, but just maybe kind of a survey of well, you said 0.1, so kind of a survey of priorities. Maybe we've put delete, modify, and edit in .2, fuzzy anchoring is in .2, too, so. Collapsible threads, we should maybe decide whether to move that to .2, just so that we... What's meant by that? What part of that don't we have? The collapsible threads is the more advanced thread collabs are to one side in really deep nested. Oh, that thing, yeah, where deeply nested stuff kind of automatically swallows the extra padding. So, if there are no objections, I might just drag that down to .2 right now. Where is it right now? In .1. It is? Yeah. Yeah, it seems fine. I'm good with those topics, we can keep this kind of short today. Yeah. I don't know if we should wait any longer for anyone. Yeah, I've got 10 after. I would say definitely people can trickle in if they want. Okay. So, on the 01 issue list, we have one blocker assigned to me for cross-site request forgery token. Some of the session work I did was clearly not quite right. The first AJAX request from the app fails, so I'll look into that. Test harness stuff, Sam and I have been talking about, we want to get the basic test infrastructure going on the H repository and hopefully add a few important tests before we call this 01. Documentation, I guess, that's just kind of not a well-defined issue there. We have some documentation between documentation to the annotator project which describes some of the things, like how API requests are authenticated. And there was a very defined issue about an architecture diagram, about the order, different opponents. Okay. So, let me add that to you. So I should make a diagram and maybe just link it to existing wiki pages on things that we have. And I'll see if there's a few other things I can type up, but we can leave that as it is. On documentation, I assume this is maybe the first target is stuff that's targeted at people, newcomers who are totally unfamiliar. Are there general things that you had kind of queued up in your mind for just making the project more accessible? Yeah, we've got another issue open for 01, which says, started developer doc page. And I think the idea there is things like give people a couple of links for resources on how to contribute, you know, let's assume anything can happen, like somebody shows up on our webpage, finds GitHub from there, and they've never seen Git before. So just like a couple of quick links, here's where you get started. Things like style guides, the pull request flow, just like a basic description of how we've been structuring contribution. I think that, is that what you're talking about? I think that's what I was thinking, but do you have any ideas for that? I would say, you know, you're maybe choose one or two of those things, and maybe we just put a sub-detail under the rub map there, just so we can remember what the heck we were talking about the next time around. Okay, so, all right, I'll just get a couple of those things. The issue has enough there for me to remember what we're doing. Okay, one thing I thought we might do is in the roadmap create a entry for .0.6, so that we can kind of show that we've made some progress, and maybe just list one or two of the things that were in there that got pushed out. Yeah, if you want to backfill the roadmap, go for it. If you were going to pick a name for that, what would you call it? I don't know, it needs a name, call it 0.1Candidate, I don't know, a refactor or release or something? Give it a sweet code name. Okay, not my specialty. I'll just call it candidate release.0.6, and I'll pull the stuff that was in your email and jam it in there. I think that the issue. I'm not sure what happened there. I missed anything anyone said. I don't know if anyone heard me ask about if we have more left for 0.1. That's it for me. Oh, on testing, what's the goal there, just to get the test harness in place with maybe one or two sample tests? Yeah, with a couple of unit tests. There's not very much Python code on the back end that we've really written. So just a few tests on some of the less obvious parts of it, maybe. I'll write a couple. And then I'd love to just kind of write a couple for the front end, too, just to kind of get the structure. I think common test utilities that need to be there just have it all in place. And then we can whip each other harder in the future to contribute tests as we go. That's really what I want to see eventually is that commits come with failing tests or come with tests that are no longer failing. For some class of things that we add, that's the ideal workflow. I've never been heavy like test-driven development. I've kind of done it a little bit once, but not really, but I'm happy to. I'm not sure that we need to at this stage. I'm not sure actually that test-driven development is even the best thing for applications. I don't have a whole lot of experience with it. I've had people tell me that they think it works better for libraries than applications. I just don't know. I would just love to get in the habit of writing some, even if it's post-commit. The only other thing I have for 01 is that I'd like to get a refresh, make sure it looks right. There's that alpha page that Johan was designing that says, welcome, here's what it is, here's how you install the extension. I'd like to get that up somewhere for calling 01 launched with that. The idea is to set up our web servers to point to our production app, which is currently inaccessible from the web, but will be hosted at hypothesis slash app. Probably getting 01 launched entirely to me means getting it in full production on the unqualified hypothesis domain in the top level. I don't know if that means we should put it on the home page or not. I don't think so because I don't think we're ready to have people run around and create annotations and expect to see them moving forward. We don't have things like personal research or we don't have the ability to limit. What I suggest is we get the back end running on the hypothesis domain and the right proxy rule set up so that the app is accessible. The only reason that's a little tricky is because it's sharing the address space with the WordPress app, so we just need to route the right path to there. Easy, get that up, get the alpha page up, but we don't have to link to that from our home page, nor do we have to put the embed code on the home page, but we should have the app there so that we can start, say, install the extension and start annotating from hypothesis rather than test that hypothesis and kind of make the first few official annotations. Yeah, cool. That's awesome. One question on the extension, when we have the new alpha page, it's got the design that includes a place to click for the extension, which is great. Are you planning for the foreseeable future to have that be something that you install via the developer tools in Chrome or because it's not ready for us to try to submit to the Chrome application store yet? They don't have a review process or anything. We can just put it in the Chrome web store. So you could do a one click. Yeah. Here's Johan. So I'm happy to put it there once we have it. I don't see a compelling reason not to. Right. So I guess maybe we should. And people might stumble on it and discover it, but it's... Maybe put a little disclaimer in the description. Yeah. Okay. Hey, Johan. Tell them it's alpha. We're just talking about... We're on the roadmap here. I've moved a few things around from extension.one back and created a new candidate release 0.6 and kind of moved stuff that's already done into there. And then we've been adding a few things. One is getting that alpha page up finally that redesign and with the Chrome extension on it. The extension is ready for public consumption. We're still on public consumption. I'm not going to publicize it hard or not really publicize it, but when it's there, when it works, and when we've launched hypothesis rather than test on hypothesis extension points at it and works, I figure we'll put it up in the Chrome Store. That way we can all install it and we can just use it, really start dog-booting, and get the alpha page there and prep for when things start to be more regulated. Cool. Do we... Do we want to target certain bugs that kind of crept in recently for... Is there a way to kind of tag them as necessary for dot-one? Yeah, mark them as a blocker and put them in 0-1. Okay. There are a couple, yeah. The authentication thing, for sure. It's there already. One regression that we have is the one about... Warning you about not saving drafts. I had to... Let's see, it's issue number 181. That's back since I did the big refactor, and it should be easy to fix again. Oh, it's open. Okay. This was a regression. I will add it to 0-1, mark it as a blocker. Do I add one for that thing we saw yesterday with that weird cascading, infinitely cascading reply? That was a nasty one. I don't know how we do it. It's going to be tracked that down. I know how to reproduce it. It was a reply to a reply that is what created it. Okay. I'm just kind of looking through the issue list really fast for other things that need to be there. URL escape character problem? If it's tree eyes for that, that might be handy. Yeah, we should at least have an issue for it. I'll make it right now. It's in there. It's 242. Okay. It may be characterized incorrectly, but it's in there. No, it looks good. Thanks. Make it kind of priority. I won't mark it as a blocker for 0-1, but put it in there with priority label. Okay. That's all I have for 0-1. That seems good to me. Move on. Yeah. It looks frozen again. I'm here. I'm here. No, people are moving. Okay, cool. Next thing, I was just going to mention quickly that I'm going to be in Berlin in Brussels and I'm looking at U2 here on the Europe side. Do you end it either? Okay, no, you are frozen. Yeah. Berlin or Brussels for Faustem for the week before in Berlin. I'm going to try to host, organize, hosting a little meetup in each place. It will be cool, I think. Yeah. Okay, how difficult is it to travel there? How long does it take for you? Well, the actual travel only is about one or two hours, but you have to wait before and after that on the airport, but that's not too much trouble. Okay. Yeah. I'll book everything for myself tonight, and I'll email you with the dates that I'll be there. Great. Okay, thanks. Okay. Yeah, Johan, then I'll be kind of due. Cool. Awesome. Next on, I lost the little list of topics I had when I got kicked out of the hangout, so what do we have next? Let's see. There you go. Ah, go for it. So authentication is next? Yeah. Right. Kristoff, do you want to start this one? I know that you sort of framed the question, what do we do if we have dev and test and production and our local machine? How might we deal with authenticating with each? Well, currently you have, with the annotation generator test tool, you have to log in when you start using the tool, and then you have to, when you log in, you have to choose one back end and you authenticate with that one. And after that, all annotations are going to be saved there. The only problem is that currently the current code refuses the first authentication request, but that worked around in the current code. It just authenticates twice and the second one succeeds if I send the right cookie. And for some reason, the older versions of the code are not compatible with the current methodology, so I cannot log into the dev or the test servers with the current version of the annotated generator tool. But I guess if they will be updated, that will go away. It would be nice to have a way to run the front-end code against the hosted back end somewhere else instead of just local all the time. One thing I think we do need is the login endpoint that exists right now is not meant for API logins in that it's not published with cross-origin resource sharing. It's not meant to be hit by other sites or back end. That's why I'm doing it on the server side. So the tool has a client on the server side, part of the server side part is doing the logging in and when I get an authenticator access token I pass it to the client and then it can send request to the server to save annotations. That's what it works now. I think one way to shorten this would be to make the token endpoint except basic off. So you could just do user colon password at the token endpoint. That's what I tried first but since it didn't work I had to go to the server side. So I'll get an issue for supporting HTTP basic off for the API. Okay. If we have that then what else do we need? How do we get the front end to be configured with any back end? I don't know that with the bookmarklet there's a clear place for UI for that. In the extension it's here and I'll think about adding a preference panel for the extension when you have it installed so that you can put the extension at any back end. I think we have been talking about this when we were talking about the extension back in November or December when I was talking with the Firefox extension it would be nice if there was a preference for choosing the back end. Okay. I'll put that in the Chrome one that I'm working on right now. Actually there could be a setting for choosing the front end one too because right now the code the application code that's running in the client is loaded from the front end and I think that's staying the same way even with the extension. So there could be a setting in the extension so that we can choose we want to load the code from the test server or the live server or whatever. Right. Right now the extension sorry, what? So then this is the front end setting for the code and the back end setting for the database. The two settings could go one besides that. Load the code from and then which back end to talk to. Yeah. Okay. Those can be two separate things. I think the default for the extension is actually the best thing is to have that code packaged in the extension so the default front end is the included one. Are we going to package the code into the extension? I think it's the right thing to do for a couple reasons. One, it will make load time faster although things are cacheable so it shouldn't be too bad but but the problem is that we cannot update the code so easily then if it's installed locally. Well we can decide with that setting whether to inject the packaged scripts or inject remote scripts so we could still decide whether to load the included assets or load them from the server. Right. I think it's good to get the packaging and the extension assets in the extension because that paves the way. That enables a future where we have offline mode. I think that's important. I mean it's obviously not priority but it's going to be good. Right now the extension as I am working with it loads from the server so I'm not doing that immediately. I'd like to. I'll leave it the way it is right now. Make it configurable where it loads from and configure where the back end is and that should be good. Yeah. Johan can work with you to mock up what a little config panel might look like. Okay. Stella. We're loading annotations simultaneously from separate back ends more than one back end at the same time. Yeah. Eventually. It seems like it shouldn't be too hard. The question is which one do you write to if you're logged into multiple ones? I'll have to have a drop down where your name is. Yeah. That was the idea. The reason in the top right there's the drop down where your name is. What I'd like to find out is that that could be filled with other identities. And depending on which identity where it gets stored. Right. Except you might want to read from multiple ones and then have a default one that you write. I mean long term. That's probably not a priority. I figured the drop down selected where you would write to and you'd always be reading. Okay. I wonder if the login endpoint needs to be cross origin as well. Yeah. Because if the login form, otherwise the login form is not going to work for other backends. I'm not sure that it should. It might be that in order to use other backends for that site in login. Kind of like an old or Twitter style pop up or something like that? Yeah, I'm not sure. Yeah. The point is that we don't know maybe it's not username, password on that other back end that you're supposed to login with. We need some melt bones here to throw the hypothesis dog. Yeah. Yeah. Yeah. I'll write something up. Yeah. I'll reply to the the docs. Whoever our lovely dog is, you might just mute your microphone. I was thinking about the same. Is it gone now? Yeah, it's gone now. Cool. Gary, is that you? What? Sorry. I couldn't hear anything. It's gone. Yeah. It's my neighbor's dog. It's a noisy one. Just mute your microphone if you are not talking. Okay. There we go. Cool. Buzzy anchoring? Yeah. Okay. So, we are working on testing it now and to test it, we need a tool to generate annotations. So, I have been building this annotator generator tool which turned out to be much more complicated than I originally expected. And no, it can do anything it needs to do. Just the annotations are not always saved properly. Then, having seen several communication problems which I have not yet seen. And I know about another problem about describing the exact range where the annotations should appear. Render has already explained me one difference in the language views. I have picked that, but there are probably others. So, the annotations don't always show up. But know that I can actually save them through database. I just need to do a side-by-side comparison of see what are the differences in each field so that they are exactly the same. And we need to solve how to save a large amount of annotations into the database. Because if I send them all at once, they kill or overload the server. If I send them in a row, then it's too slow. The best should be to add an API for the annotations for backend which can accept more than one annotations in one run. I also need to add support for trading. And there are a bunch of other things which I have listed in the email. I see no point in going through them again. But if we have this, then we can start talking about the metrics for the monitoring algorithm. What do we measure and how do we score the performance. And then we can actually run some tests with the current algorithm and with different tuning of the fuzzy algorithm. So that's where we are now. Cool. I will also look at Annotator Store, see if we can configure the number of connections to the Elastic Search server so that maybe if you find that the tests are slow when you're creating many annotations maybe we can make it the backend support more connections that way. I think what's happening is that the backend is running out of connections to Elastic Search and I don't see immediately whether or where that's configurable for Annotator Store, but I'm sure we can make it. Since the communication between the current Elastic Search is fast it would be nice if I can just send all the data to the backend in one step and then it can fill the Elastic Search with parts. This might be a way for us to load test the system too at some point. Yeah, that's a really good point. This will be good for load testing because we'll have annotations that it makes and there'll be more real requests instead of just kind of running empty requests against it. Both on the reading side and on the writing side actually. Yeah. Cool. We already talked about extensions a bit. I guess we'll just have to see what the schedule is with those as I do Chrome at some point one of us needs to do Firefox. I know Christof, you said you had some interest in doing a Firefox extension or you started it for a moment or started reading at least. I've never written a Firefox extension, but I'm happy to start. I started to do it and I actually had a working test version back in December which Dan has tried, but now I'm focusing on the launch running part and I still need to work on it to finish it and I don't want to for too many separate processes with this productivity here. That's good. Yeah, the other thing I think queued up there is edit and delete implemented in the Angular. That should be simple because it was almost ready before the effect so I should pick it up at some point and just let me finish the annotator generator tool and then I will get the other feature back. Okay. So that's all the topics we had to go through. Is there anything else on people's minds? About it. Making great progress. It's fantastic to see the extension working yesterday. We gave a demo to some folks here in San Francisco and it works. So great. So you are collecting the people who are going to be the first users of the system, right? Yeah. Are you talking to communities doing scientific research or something interesting? Yeah, this was an organization called PLOS Public Library of Science .org and they definitely are connected to a lot of the kinds of users in the scientific community that are interesting to us so it was a great discussion and I think they can help us think through the right kind of feature set and usability and functional issues and so forth. Hey Dan, did you send them a follow-up email of any kind yet? I have not. When you do, you might just mention like we talked, ask them if they might share with us some people that might be interested in helping us test. We'll do that. Super. Thanks guys. We'll do this again next next week. Next week, same basic time Thursday. That channel. Awesome. Alright. Cheers. See you pop. Bye. See you both Johans. See ya. Yeah.