Welcome to documentation office hours for Jenkins. It's the 3rd of January, 2022. Happy New Year. We've got several items on the agenda. So news, Jenkins 2.319.2 change log, 2.328 weekly change log. And the big one is the 2021 end of year blog post to discuss, to brainstorm, to think and talk about themes. And then as time allows, we may get to improving a plug-in blog post. It's had some additional improvements recently and I'd love for us to discuss them. Whoops, and why is my, hmm, interesting. I need to reload this page, something's funny here. Let's try this again, okay, 150%. Good, all right. Any other topics, Dheeraj, that you'd like to put on the agenda? No, I think I see all the things that I want to do discuss as well. Okay, great. All right. So then first topic, Jenkins on Java 8. We've got an ongoing discussion on the mailing list. It's continuing and the voices, there are voices saying, hey, let's do it in June of 2022 as the LTS that drops support for Java, others saying, hey, let's make it September of 2022. The Jenkins enhancement proposal is a good way to plan those kinds of transitions. And I would likely be the one who will write it. If you would like to help Dheeraj, I'd love to have your help. If you'd rather stay focused on other things, that's okay too. This is more of a project management exercise than it is a software development or even documentation exercise. And so I can't claim that it's a lot of fun it's just something that has to happen. And for me, it helps me think about all the things we need to be sure we do. It creates a checklist for us and helps us know what to do. So when you say that it is related to project management, what do you mean by that? Things like identifying which tasks we need to do and how we would approach them and how we explain this to other people and when do we make announcements and do we have webinars? Do we do those are the kinds of things and it's they tend to be, it's not nearly as interesting even as writing for the blog or and it's certainly not as interesting as creating software. So I would perfectly understand if you said, no, I don't wanna be involved in that maybe later. Yeah, so I think I would say maybe later because this requires to know a few things so that we can decide what to put and what not to put. So I don't think I would be able to give my opinion or share my views in this area. Very good, and that's just fine. That's very sensible. Next piece of news then is that the UI improvements are continuing. Jenkins 2.327 is looking very good and the next release, oops, let's go here, this one. If we log in here, I can show you how it looks and it's already looking very nice and this next version will be even nicer still. So the weekly releases, notice the nice rounded corners on the tables and notice how nice the plugin manager looks. Here when we do manage plugins, installed plugins have this really nice, very attractive layout that they show us plugin name and version, a nice obvious slider if it's enabled or disabled, version numbers, it's been dramatically improved and these kinds of improvements just keep coming. So really very, very pleased with all the great work that Jan Faricic, Tim Jacome and Daniel Beck have been doing on various topics here. It's been great. Also special thanks to Alex who's done work on making the icons, for instance, use SVGs so that they work on high-resolution displays every bit as well as they work on low-resolution displays. So special thanks. Any questions on UI improvements? No, I just want to say that it looks extremely beautiful and modern, especially the rounded corners. So definitely a really good job. I agree. I'm amazed at how much more pleasant I find it, how much easier that I find it to navigate and to wander around. It is just a, and okay, adding a view, there it is. The plus does what you might expect. I mean, the visuals are much, much cleaner for me, easier to see. I like it a lot. Same here. All right. So next topic then is the change log for Jenkins 2.319.2. I've got one open question to Daniel Beck and the change log is pretty simple. So this top image you see here, what's new has only one entry. This is a good one for you and I to talk about, Dheeraj. Let's look at it together and see because what it includes is one entry, but then three comments of things that were not included because they are minimally user-visible. There is some user visibility in them, but I didn't think there was enough and I've asked a question of the key contributor, Daniel Beck, to see if he feels that we should put them in. So what these three items are is we're now collecting telemetry for a period of several months about how people are using the agent to controller communication channel, how they're sending Java objects across, et cetera, and that telemetry gathering is being done already in weekly and this will bring it into the, bring it and some, it's actually already started in LTS, even this will bring some improvements to that telemetry so it gathers better data for use by those who are trying to analyze, hey, what are we seeing? But my thought was, so my question to you is, what do you think, should it be part of the, should we describe it for users or should we, as telemetry thing, or should we leave it as a comment like it was in the weekly? I'm not sure about this because I don't have the required technical knowledge to decide what, whether it should be visible to users or not. So I'm not really sure. Okay, yeah. Well, so let me show you some of the, some of the things. So this one I thought, okay, deduplicating RPC requests, that's probably not a, and it was intentionally skipped here. So that's probably not, that's not even really user visible. So, so can probably be skipped and, and that part I thought, okay, I understand that this one though, was a little more questionable. So let's look at it. What it says is, hey, we're going to do some additional data refinement during the gathering process, because what they were getting is a lot of noise from obsolete and outdated plugin versions. So this, this makes it smarter. Again, I thought, okay, maybe that's not, but now this one. Okay, and this one is documentation and it very much is user visible in the sense that if they, if they hit the right page for help about this, it we, it will show them this page. And, and so this page says, hey, we're collecting the data. We started in November of 2021. We will stop the data collection in on March 1st of 2022. And Daniel's comment was he thinks it's too minor for a changelog. And I, I, I've, in weekly, we didn't put it in a changelog. So my, my initial take was probably not, but this is the one that user visible. Any, any comments from you? You want to guide on, Dheeraj? Yes. So it says we do not collect the names of files being accessed. So, okay. Can you tell me again about what kind of data is it collecting? Sure, sure. So what it's doing, we can read it here. It says, so a, it's using a bidirectional channel. And that allows agents to make requests to the controller. There's a danger that a, a malicious agent might do things it should not through those requests to the controller. And so they're considering turning off the ability for an agent to make a request back to the controller to do work on its behalf. And, and so they're trying to understand who's using this, which plugins are using this and get some guidance on how they are using it before they decide if they should switch off completely the ability for an agent to make a request back to the controller. So the, the, the security profile would be if the, if the controller asks the agent to do something, that's probably safer from malicious, malicious attack than if the agent, which might be a process under, under some bad actors control is allowed to make requests back to the controller. So that's what they're considering. And they're gathering this data. So they're gathering Java stack traces. And version numbers of core and plug and the installed plugins. Right. So now I'm just trying to understand whether the users would want to know about this change, the bi-directional change that has been introduced or not. And, and that's the reality here is this is not introducing the change. All this is doing is this is trying to assess how often is it used to decide if we could sometime in the future consider disabling it. Okay. Right. So it's, this is just data gathering. And this help page that you see here is describing the data we're gathering, how long the data gathering will continue and when the data gathering will stop and what specific data is being collected. Right. So then I think, so would the users want to know about this? I don't think users would. Some administrators might, but it's available to them. And I don't, I don't think it will be compelling to put this into the, at least my thought was I tended to agree with Daniel that I'm not sure it's compelling enough for us to put it into the change log. Yes. I agree because now it makes sense that the number of people who would want to know is kind of less than the total number of people using it. That's why I think it would be better if we leave this in comments. Okay. Good. So we'll leave it as a comment then. Great. So that's it for right now. And the, let's look at the, at the upgrade guide. The upgrade guide says no notable changes requiring upgrade notes. So it's the easy boilerplate. We don't have to say anything because there isn't anything terribly shocking there.  This will need other reviewers, but I think it's, it's in good progress. Next was any other, anything else on the 2.319.2 change log? No, nothing as of now. So next item was the weekly change log. And here, let's see what we've got as the text. So it says, first UI improvement, use scalable vector graphics images for agent context menu and executor status. So this is a UI improvement. I thought that was okay for phrasing. Anything you would recommend changing on it? So is this the same UI change that you were showing me about the icons? Well, this is, this is one part of, it's a relatively small part of that. This is, this is adding more places where SVG icons will be used instead of PNG. So the SVG icons have the benefit that they are scalable. So on a very high resolution screen, they still look very good. Okay. So yeah, I think it's, it looks good. Okay. Next item then was modernize the about Jenkins page. And this one may need a change to adjust this extra space right there. Let me make a note of that. I hadn't recognized that on an earlier time. So may need a white space adjustment after release for the about page description. So what's happened there is the automated generator tool has added an extra space because this is actually two bullets. And I guess I could fix it by making it, shifting it from being two bullets to being one. But for me, this was, this is good enough and anything you would change on that? Yes. So one question is, when we add two sentences separated by a new line, would it display on the UI in the form of bullets? It won't. It will, it will show on the UI as a single paragraph because this file uses sentence per line. So these things will be flowed together into a single paragraph. Oh, okay. So if we delete the space that update word has and then it goes to the UI, would the full stop of the first sentence have a space after it? It will. Yes. It will. Yeah. So let me, let me, sorry, let me get this to, I went to the wrong place. Let's, let's go to this one because I think there may actually be something we do want to change here. Just looking at it now since, okay. So here is the, so here is, he gives us a nice before and after picture. So here's the before picture and here's the after picture. He's made even better improvements to this about page. Wow. And the reason it did that is because here he's used two bullets. And I could, we could fix this by changing it so that it's a single bullet. Yes. And so then it would be just do this. And also one more thing that in your notes also you have used double inverted comma. Yes, exactly this one. So it would be easier for us to know that we are talking about the about Jenkins page. Right. Okay. So that, that, that makes sense to you. Yes. Okay. Good. Let's do that then. That, that may help us already. Good. Okay. Then she, okay. So next was 61 43, which is a bug. Ensure that loggers exist before setting their log levels in rare cases, setting the log level of a logger may have had no effect. So what happened was Basel Crow was fixing spot bugs warnings and realized this warning points to a potential real bug. I think it's okay. Any, any guidance you want to give on the phrasing? So I'm sure that you know, may have had no, yes, looks good. Okay. Yes. All right. And then the others we should just scan throughs to see if there are any here that are mistakenly comments that should be included. Wow. There's a lot. There are. Yes. Basel has been doing wonderful work over the end of your holiday. He and Tim Jacome and Stefan Speaker and two or three and Jan Faricic and two or three others have been just making, doing amazing things. So this is a very nice, very, very, very nice addition for a weekly release. Exactly. So there are some comments related to spot bugs violation. We don't want them, right? Yeah. Those should stay as comments because those are, those are, these are many of them are not visible to users. All of them are not visible to users. Many of them are not visible to users because all they are is a phrasing of text that says he's investigated this, understood why that spot bugs gives this warning and justified why we should not change the code. Okay. So this looks good. Great. So I'm going to go ahead and mark this as approved. Review. Whoops. Review changes. Reviewed in docs office hours. Now I need to invoke one GitHub action to cause this thing to be rebuilt because we modified one of the change logs. Now onward. Yes. Also, one last thing. I wanted to add one more topic to the agenda. Oh, yes, please. Okay. So about learning Jenkins. So I wanted to discuss like if a beginner wants to learn Jenkins, learn as in on a developer perspective, not on a user perspective. So what should he or she would refer? That would be useful. So kind of resources that I'm looking for something like that or your. Okay. So, so let's, if you're okay, you're okay if we take that topic now. Oh, yes. Okay. Sure. Super. So go ahead. So I did my, I was going through to find the best resources on Jenkins website and I found out there's a user handbook and I went through it, but I realized that since it's a user handbook, it is going to talk about here's how you do this. This is, if you want to do this click here and there. So this won't help me much to know about, you know, how Jenkins works. So that's why I then went to this developer book on Jenkins IO website. And should that be my question? It should that be a good place? And is there any other place that you would suggest to go? Good, good, good question. So, so the my sense is let's, let's call it much less organized, comprehensive and less comprehensive than the user handbook. And it really is right. The developer documentation is not nearly as good as the user handbook. So how do we, how does a developer, how does a developer developer best learn? Right? I think that's what you're asking. And for me, some of the things include adopt a plugin, start maintaining it, use that as a way to learn by doing. And, and that's, it may be far too frequently people make the mistake of thinking, oh, but I'm not nearly good enough to adopt a plugin. They misunderstand that anything they contribute to that plugin, even if all it is is reviewing bug reports is something that wouldn't have happened without them. So it's already a significant improvement, just the act of adopting it. So, so let's take a look at some plugins, for instance. And I guess maybe I should ask, are you interested in doing Java development? Yes, totally. Okay, good. So if you're interested in doing Java development, then adopting a plugin is a great way to be introduced to Java development. So let's, let's look at some plugins that are up for adoption and, and get some, some ideas. So here, there are 106 plugins up for adoption right now. I'm proud that's down from the 112 that it was before. So that's positive. But yes, there are plugins here that would very much benefit from having someone willing to adopt that plugin. And these are plugins that you could adopt and start work on immediately. So for example, if you're interested in how do, how does Jenkins deal with extending the functionality on a build, this build timeout plugin is an excellent choice to adopt. And there are, you could apply the contributing to open source steps that we were working on for the blog post. As your way to get introduced to this, become confident with it, release some new versions of it, investigate, hey, are there bugs that need to be fixed? Those are all, and in this one, there certainly are. So there are, there are great ways to, to do that just by adopting a plugin. And it gives you a good chance to help the community and to develop your Java practice skills with something that people will help you with. This, this sounds really interesting because I have resources ready as well, the blog post that we're working on and the videos that you've created. So I'll be referring them and I'll be adopting a plugin for sure. Great, great. Yeah, so that's, and I just, I just went through the adopt a plugin steps with a plugin that's actually not up for adoption, but that looked like it might benefit. Here's one that Clover is a code coverage reporting tool. It's an open source code, code coverage reporting tool that was donated to the open source by Atlassian. And I've had really good, good experiences with it. Many years ago when we were using it before it became open source. And so I'm interested to, I was interested to help with this and saw it doesn't have, it didn't have a Jenkins file. It didn't have an up-to-date parent palm. It wasn't using the bill of materials. It had lots of things that it's not using documentation as code. So almost every single thing that is on our list of to-dos applied to this plugin. Now, if we look at the adopt this plugin, I worked with, what was it with, with one of the She-Code Africa contributors. And she and I looked at another plugin that's up for adoption, publish over SSH, 70,000 installations. So lots of people use it, but it needs, it needs a good maintainer. And even more interesting is that this one has another plugin that is the basis for it, this publish over plugin. And so there's a publish over SSH, a publish over CIFS, a publish over FTP, each of them uses a base plugin. And so if you were interested in adopting this one, you could adopt it and adopt one other and have a great chance to have a very positive impact on an awful lot of people. Great. So are you persisting to adopt all the same kind of plugins, publish over SSH and publish over XYZ, all of them? No, no. In this case, all you do is you would start by adopt this one, right? Adopt publish over SSH. If you then reach a point in your learning, in your development, where you realize, oh, I, because for instance, this particular plugin has a very important issue that has not been fixed. And it's an issue that blocks people from using it in newer versions. It is, let's see if I can find it here. Tables to divs, where did it go? Oh, so it's a UI problem. It is. It's got a UI problem. A UI problem is a serious impact because let's see it. Let's look at tables to divs dash. Oh, here it is. There we go. This one. So if I remember correctly, it's right here. This bug. So here's this bug in publish over SSH. Nobody's worked on it. And yet there are eight people watching it. And it's got lots and lots of comments here ready to ready. So if you say, I want to adopt publish over SSH, there are going to be people who are very, very happy. Wow. That is very, very interesting. So you're suggesting about publish over SSH and you were also talking about HTTP, right? If you would like to look at the other publish over plugins, you could do that. If it were me, I would probably just start with one. I'd pick one and say, I'm going to adopt it. And once I've adopted it and I'm comfortable, I've released a few versions of it. Then I'll look to see, okay, should I adopt another one? Because for me at least, there's usually a good two or three weeks of learning going through the different steps to modernize a plugin. Right. This one, let's look at it to see how much modernization it needs just for fun. Okay. So it's already using 4.19. So it's pretty close to current. But, oh, and it's already using the bill of materials. So that's good. So this one may be relatively easy to adopt. And you may in fact not have to do a whole lot with it. So that's encouraging. Yes. So I think I'll go with this one, publish over SSH. Great. And there are instructions on how you do the adopt a plugin. On this adopt a plugin link. You just click that and it will tell you, hey, if it's up for adoption, which this one is, you send an email to this mailing list saying, here's the link to the plugin I want to adopt. Here are some pull requests. Here's my, here's one or more pull requests. If applicable, doesn't have to be there. Here's my GitHub username and my Jenkins username. So just go ahead and send that mail. Sure, I'll do that. Thanks a lot. Great. Now, what you may find, at least what I found is that one plugin may ultimately not be enough because it gives you a relatively narrow and quite specific focus. So publish over SSH is an interesting plugin, but it's only one of the many types of plugins. You may then say, oh, you know what? I'm personally interested in Docker, okay? I want to adopt the Docker API plugin that might be one. You might say, no, I'm interested in, let's see, what's a another good one? I want to worry about Microsoft platforms. And so I'm going to look at WMI build agents or I'm going to look at MS build. Those could be interesting. Whatever interests you with this many plugins, there are a lot of opportunities here for you to choose to do something. Exactly. So just out of curiosity, do we have anything related to Red Hat, Ansible? I know it's not up for adoption. Oh, that's a good question. Okay. So let's see Ansible, wait a sec, what happened to the Ansible plugin? I know there is an Ansible plugin. I know there is an Ansible plugin. That's very interesting. Yes, there is. I submitted the doc improvement for it. Yeah, it certainly exists. And here it is on the plugin site, but it's not being found by the search. That's strange. Ah, okay, somehow. Oh, right. It's not up for adoption, but you could certainly contribute to it. And you could reach out to Jean-Christophe Ciro and to Emilio Escobar to see if they would be willing to take your contributions. If you look at it, I think it's not getting a lot of attention because there's a poll request from somebody trying to move the documentation to GitHub that hasn't been processed. Yeah. Oh, yes, you have done it right. During our doc's office hours. Exactly. And so, but this is one of those proofs. Okay, a documentation poll request is pretty easy to review. You could readily say, I'd like to adopt the Ansible plugin and see if the current maintainers would be willing to allow you to become an additional maintainer. Right, okay. Makes sense. Yes. Good. All right, yeah. So Ansible is certainly a good choice as a plugin. Okay, it's not. That's interesting. It's sticky. It remembers that I searched for it with the label. Yes. Good. So did that address your question? Yes. So it makes sense that I should start with something by doing practically, and that is by adopting a plugin and maintaining it so that I get to know the concepts related to Jenkins. This is one thing that I'll be doing. And other thing that I was doing to understand Jenkins is I went through this book called Jenkins, The Definitive Guide by O'Reilly Publications. It's by John Ferguson Smart. Yes. I've been thoroughly impressed by almost all the books I've ever read on Jenkins. So Jenkins, The Definitive Guide is certainly a good choice. I just bought one that was just recently introduced from Sam Gleske. He just released a book on Jenkins administration. And it's focused on cloud administration and crossing firewalls. So Jenkins, The Definitive Guide is great. I've been through it. I think I own a copy of it. And there's this other one as well. Either of those will be great for you. The Jenkins administration book, US is about $45 or $50. So it's a very expensive book. But you may find it cheaper there in India. And they may be willing to do it digitally much cheaper. Yes. Sure. I look for that. So that definitely answers my question. Great. All right. So next. Okay. If we go on to the next topic. Yes. For sure. Okay. Great. So let's talk about the 2021 end of your blog post. So Oleg Nanashiv sent an email reminding that each year we write a blog post. And he asked for people who would like to contribute. And I said, hey, I'd like to help and offered some topics. Now, what I realized in looking through the topics earlier today is maybe we ought to identify themes. And here are some candidate themes that I thought of. So, okay, what if we said community as one theme? Oops. Sorry. Community as one theme. Events like Google Summer of Code, Sheikot Africa and Hacktoberfest is another theme. And then core improvements as a theme and documentation as a theme. Then security. Now, I'm not sure those are as exciting as we might want. Do you have other suggestions of how could we do this to make sure that it's readable, that people will enjoy it, and that it highlights many, many of the great things that happened this year in Jenkins? I think it has what it should have. But this is a really good question. I think I need some time to come up with something else which would be more interest, like any more better, not better, like a good addition. As well for this. And that sounds very reasonable. I think just from having talked, described it, I realize this community thing is much less, has, is not nearly as strong as these are. Right here we've got 90 plus poll requests from Hacktoberfest. Sheikot Africa, five women mentored. Google Summer of Code, five students mentored. Five projects completed. So we've got really good story to tell here. The community one is more about the data and not so much about the people. But here we can show pictures of people and, hey, here are the five students, here are the pictures of the five women, here are the images we got from Hacktoberfest, those kind of things. This would be really beautiful and very interesting to the users for sure. Okay. I wonder maybe what we ought to do is consider core improvements as the next topic, because for me at least these things matter to, matter to users, right? They care, hey, what, what changed? What's new in Jenkins? And let's call this continuous delivery. So configuration for modernization was a big change. It was, it was, and, and it means we work much better on a small screen now. Yes, that makes sense. And then these were crucial changes to improve Jenkins core, core underpinnings. It's, it's basis and Java 11 likewise. It's preferred JVM. Yeah, I think this looks like a good addition as well. Okay. Now, now the others, I wonder if the next thing, just to, to get people again, keep their interest, maybe we should put security next and say, look, we, we are, we've had two attacks, right? The wiki was attacked and logged for J and then we've had security advisories as well to show that we care deeply about throughout the year. Or is that too negative? What do you think is that, should I put it lower on the list higher? The security one? Yeah. No, I think it looks great here because before this, we just talked about core improvements. So like development efforts. So we are continuing with this, but in a more narrow area that is security. So it makes sense. And it's important as well. Good. Right. Then, then now I'm pushing this, this idea on community even further down because I wanted to highlight all the great work that Gavin Mogan has done and Spinak Konechni and Tim Jacome on the plug-in site and thank our sponsor, Alglolia, for their providing site search and then the videos from various contributors, including Darren Pope. So for me, those were, hey, this is, this is a, is a great story as well and a good chance to highlight. Hey, here, online meetups, we could bring out several of the titles and topics and remind people, hey, here's this one and this one and this one. Definitely. I think this is a right place for documentation to be. Okay. Good. All right. So then if you, if you have other ideas by all means, add them. I think I've covered these in, yeah, I think these have all been covered in earlier. Yes. Good. Okay. So I'm going to start the writing on this thing in hopes that we get, that I can have it done before the end of this week. Yes. So did you talk about Jenkins announcement proposal as it was written below? I did not, but I thought that they were here, let's bring those back. So most of these are already covered in another topic. So for example, job, this is Java, the Java 11 story and this, this one, these three, these four, these five are all part of the core improvement story. So for me, they were just, I used Jenkins enhancement proposals as a way to identify things that I might have missed. Okay. That makes sense. Because for the reader, they don't, I don't think they care as much how we get the thing. It's just that the JEP process helps me remember, oh yes, we did this work and this work and this work and this work. Yes. Sure. Okay, good. So let's, and so I'm going to other topics and I'm just going to take those out because those are already covered. And I'll invite you to review the topic, review the thing later this week. If you're available, I'd love to have your review of it. I'm not sure I'm going to bother you with the writing part of it, but just the reviewing part if you're willing. Yes, for sure. Okay. Great. I'll be good to review, but I'm not sure about writing. I just want to, I don't want to comment and then don't do any work because that's really bad. Well, and we're on a very short timeline for this one, right? We need to, we need to do it quickly while we still have the new year, the new year feel. Yes, right. So, so it's, this is one, it's, it's different than the next one. We're going to talk about the improving a plugin blog post. This one, we've taken our time and I think it's better because we did. So about the previous one, we have listed them topics. So how would you be writing it in a form of blog post to you? How do you, I'm going to look at, I'll look at these previous, these examples from previous. So here, for instance, the themes are headings. And then under the heading is text that talks about other things. And I'll likely embed videos into this and images for some of these things because, because I really like images and videos. Right. So let me know if you need any help in writing. Okay. Thank you. Yeah. See this, this for me is, oh, this is an interesting one, slides. I've never embedded slides before. This is a nice idea to showcase the work, right? Right. Right. It is. It's, it's a, it's a, I'm not sure how it's done, but I think that's a, that's a good idea on, hey, look, here's, here's what we've got. And, and this highlights some things that may be worthwhile to include that I hadn't touched on yet, because each special interest group might want to have something to say. Yeah. Very good. Let me think on this, because we, we may want to use a slide deck. Yeah. Okay. Let me, let me put something in this slide. Well, I think it's, I think this is a worthwhile thing to think. So let's, oh, oh, this is it. Okay. These are the slides from the Jenkins contributor summit in Lisbon, Portugal in late 2019. That's where those slides came from. Okay. So it's not that they were created separately for this blog post. Oh, okay. Now, if we look at 2018, 2018 is one that Kosuke did, and his was a much more brief blog post and 2017, I think was Oleg again. Yeah. So, so we've got good, good ideas there. Yes. Anything else on that topic? No, nothing. Okay, so next piece is the improving a plugin blog post and tutorial. So I had, I had, let me start it up again, because I've, I've done more changes and those changes came from doing another test drive. So what I did was I test drove with the clover plugin because I was interested in the clover plugin for other purposes. It clover has some, has a feature that I'm interested in for something else. And so what I did was go through the, the, the guide and it showed me, oh, here's some things that were missed that are missing that I've added text for. So if we look now at developer guide, it now calls itself improve a plugin, first change. All right. Then it's got a much smaller set of things in this sections, and I'll be removing more things from it probably. So add a Jenkins file, still follows the same pattern of create a branch, do the task, create a pull request, and you're done. And you're done. Then likewise update the parent palm, but this one, I discovered, oh, I had failed to tell people, be sure you check that it compiles. And in many cases, other changes will be needed. Some of those things may include, you have to resolve spot bugs mornings that are, because spot bugs in the old, old parent palm was not enabled in the new parent palm, it's always on. And so you're getting warnings that you didn't get before. And you may have old jelly pages that need a specific change that this describes. So those kinds of, oh, you could encounter this, you could encounter upper bound dependency warnings. And as you adopt publish over SSH and others, you may encounter the same kind of things and we need to then update these pages with what you learned, just like we, I updated it with what I learned. So that was, and let's see the next change then was, oh, minimum Jenkins version. Yeah, this one was easy. This one also easy. This one, yeah. So these have generally been okay. And this one I haven't touched yet, because this one has, this one we've got a video with Darren and I doing this one. That we, that we can point the readers to. Sure. So you mentioned jelly. Oh, before that, yes. Please continue. Oh, no, no. What was your question? That's so, when you mentioned jelly, it reminded me of this JIRA task that I've created related to the view job filters plugin, where there's some UI inconsistency. Right. And you also commented on it five days ago, right? Do you remember that? Okay. So I was one, I was wondering like, how should I know about jelly to solve this problem? Good question. Yeah. So let's, there's a, there is a, on the developer site, there is a section about jelly. So if we go to the how to guides here and jelly form controls. So under forms, which is what jelly is doing for us, there's form validation. So how do we check that what a user entered is useful is correct? How do we add tool tips? So something that will give a hint to a user as they hover over it. What are the controls that are available to do validation, to do optional text, to have a dropdown menu, to have inline help. So that's where you would learn more about. And then here's this one about form submission. So how do you get data from the user and how do you process it in Java after they've entered it through the webpage? Okay. This is a great place for me. So I'll go through this for sure. Well, and, and don't be, don't be, don't be too surprised if this is not nearly good enough and you have to do an awful lot of, you may have to spend time in the debugger looking at, hey, what, how did I click this on this plugin, which, which methods got called and why did they get called and, and what, what parameters did they receive, those kinds of things, at least for me, spending time in the debugger with Jenkins running and me looking at the debugger has been a big help. Yes. Okay. I'll keep that in mind. So did that address your question on jelly? Yes. So I'll go through this and we'll get back to you if I'm stuck anywhere. Very good. Yeah. Very, very good. Yeah. Let's see. And if you're other, other things about jelly in this page, so there's form controls, internationalization of messages, if you want to internationalize. Yeah. So that those are the two top level things.  It's indexed the Chinese site. Oh, very impressive. Yeah. Here we go. And here's more on the jelly, jelly form controls. Oh, no. Okay. That needs to be fixed. Those links should not go to the Wiki. We've already got better documentation. Yeah. We've already got this documentation ported over. Now this one may help you. No, no, there's not enough there. This one is a good one. If you really want to know what can jelly do for you, you look at this UI samples plugin because what it does is it gives you Java source code to show you various kinds of jelly controls. Oh, nice. This is helpful. So can you post its link to the Jenkins notes as well? I sure can. You bet. Yes. Let's see. Let's put it up in the earlier section so that it's together. So how does it? Okay. How do I learn more about jelly and form controls and web pages in Jenkins? Right. So that's and see the UI samples plugin for examples. Right. So that's a good one and see the. Yeah. That's probably the best, the best choice immediately. And then there are see the developer docs for jelly. And let's get that user interface. And now we go back to here jelly form controls. Does that help? Definitely. Thanks a lot for your help. All right. Excellent. Dheeraj, we've run out of time. I think that covers it for me. Anything else from you before I end the recording? No, but just wanted to ask whether you were able to cover everything that you wanted to cover for this improving a plugin blog posting tutorial. We covered the things that were most of interest to me and I'll keep working on it. It probably won't arrive for at least another week because I need to spend time on the New Year's blog post. But we'll get it in here and have something that we can use and start improving. Sure. That sounds great. Great. I'm going to stop the recording if you can hang on for just a minute. See, stop the recording.


Hello, my name is Ira Pernumal. I'm from Indonesia. I am an analyst at Climate Policy Initiative. And right now I'm at the Energy Efficiency Training Week here at IEA Headquarter in Paris. We had a great opportunity to learn something new or at least to widen our already existing knowledge. I've learned a lot from other country experience about their setting up their policy, about their setting up their energy efficiency in their country. Inspiring and I will do it with my country. Through this training at IEA, especially in the Energy Efficiency Training, I learned how to collect data in order to include in the policy development. These such occasions are very important because this is first of all about also networking. I hope to establish contact with my colleagues from other developing countries in order to understand the barriers they face and the opportunities that we can find out together. When you meet different people from different nationalities who have really absolutely different cultural backgrounds and political backgrounds and others, but nevertheless they are so close to you because they have similar problems, they have similar challenges in their cities. Through all this exchange you can really afterwards reach the truth and reach some kind of progress and you can also reach some decisions.


Thanks. So before I get started, I just want to mention two things. The first is I was cruising around the web the other day, and there are two papers I noticed that are based on mini courses much like what I'm giving here. And if you look at these, they will expand a little on the sort of things I'm talking about here. And also, they give lots of references to where you can find the actual proofs of things. And so if you want a little bit more of the same nature, these two papers are both good places to look. As I said, they're both expository. They're not full of proofs, but they're nice overviews of these groups. OK, the second thing I want to say, and I wrote this up there here because I knew I'd forget if I didn't write it up here, is I call this mini course Art and Groups. And now I've written Art and Tits Groups, where there's this movement going on to change the name from Art and Groups to Art and Tits Groups. And the reason is Art and Groups are, well, first of all, as I will explain in a few minutes, they grow out of Coxer Groups. They're very closely related to Coxer Groups. And really, the theory, the general theory of Coxer Groups and Art and Groups is really due to Jacques Tietz, not to Coxer or Art and yet his name doesn't appear anywhere on here. I mean, it's never used. And so there's this sort of movement of let's start calling these Art and Tits Groups. And I'm all for it. It's just that I never remember. I'm always forgetting. I've been working on Art and Groups for too long, and I always forget to say Art and Tits Groups. So we're talking about Art and Tits Groups, but we'll call them Art and Groups for short, OK? All right, OK, so good. That's your intro. So my goal in the first lecture is to tell you what Art and Groups are. I know many people have maybe never encountered anything, except possibly a right-angled Art and Group. So what are they? Where do they come from? Why are they interesting? And then I'm going to talk about a sort of a long list of open questions regarding Art and Groups, all right? That's the main goal of the first lecture. The second lecture, although I may fit a little bit of this into the first lecture, so you can do your problems. But the second lecture, I'm going to talk about geometric objects, geometric techniques that are being used, have been used and are currently being used to try to answer some of these questions. So what kind of progress have we made and how have we done it using, by the way, cat zero cube complexes? So that's why I'm very pleased that Danny Wise gave his first lectures before mine. And I'm hoping you are all there, because these objects we're going to be playing with are cat zero cube complexes. All right, so let's start with what are Art and Groups? Well, the story really starts with coxeter groups. So let's actually begin with what a coxeter group is. I find that many more people have run into coxeter groups than art and groups, because they appear in so many areas of mathematics and combinatorics, representation theory and geometric group theory all over the place. Coxeter groups sort of show up naturally in many, many, many contexts. So a coxeter group, there's two ways we can define it. One is just in terms of a presentation. So a coxeter group is any group of the following form. We have some finite collection of generators. Every generator has order 2. So si squared equals 1 for all i. And we get to specify the order of si times sj. So si times sj, we get to specify some mij equals 1. We're here, mij can be 2, 3, et cetera. And it's also allowed to be infinity. But when it's infinity, this relation's really just not there. But we'd like to have an mij for every i and j. So either it can be finite, in which case we have a relation, or it can be infinite, in which case there's no relation. So that's it. That's a definition. But really, a more interesting way of looking at them is geometrically. So geometrically, yes, i different from j, sorry. This is for all i, and this is any i not equal to j. Absolutely. Geometrically. So it turns out that any coxeter group can be realized as a reflection group. So we can realize w as a group of a discrete group generated by reflections. Let's just go on, generated. OK, so let's think about that for a moment. Draw a picture here. So if I have a, let's just draw it in R2 for a moment. Let's say I have two reflections. So perhaps I'm going to reflect si over this and sj over this. All right, so obviously si and sj have order 2, right? Reflect, reflect, you're back where you started. So that's good. And what does this say? Well, if I do a product of two reflections like this, what I get is a rotation through twice this angle. Product of two reflections gives you a rotation through twice the angle.  So I want that reflection, sorry, rotation to be some integer, 2 pi over some integer. So in particular, I want this to be pi over an integer, and that integer is exactly mij. So what that mij is reading is the angle between the reflection hyperplanes, okay? So that's the way to picture what's going on here. How do you get mij equal to infinity? Well, I don't want to go into formal detail of exactly what I mean by reflection, but let me just say we allow for things like affine reflection. So our reflection might fix some affine subspace. And if it fixes some affine subspace, then inside that affine subspace, the reflection hyperplanes could be parallel. This is actually combed off to in another dimension. But it's fixing this affine subspace, and we have si sj. And in this case, if we take si times sj, it's a translation. And a translation has infinite order. So in this case, we would get mij equal infinity, all right, when you have a picture like that. All right, ready to got it? Okay, so, okay, so let's, we want to have a simple to specify a coccidic group. So we encode this information in a graph, gamma, where gamma consists of the following. The vertices of gamma are exactly in one-to-one correspondence with the generators, all right? One vertex for each generator, labeled by the generators, okay, and the edges, well, it's actually a labeled graph. I should say a labeled graph, excuse me. Edges in gamma, well, there's an edge from si to sj precisely when mij is finite, is not infinite, all right? And we label it, mij. So I labeled graph, meaning I'm going to keep track of those mijs by labeling edges. So this is whenever mij is not infinite, is less than infinity, okay? If they're infinite, there's no edge, all right? Okay, so usually when we want to specify a particular coxer group, what we do is we draw the graph, we just draw the graph, and then say that the associated coxer group, we denote associated, all right? So usually we work this way, we start with the graph, and then we associate to it a coxer group. So this is any finite graph with label integer labels, okay? Yeah, yeah, question? I guess in definition of W, it implies that the mij are symmetric, right? Oh yeah, I didn't say that. Absolutely, let's see, does that follow from this definition? They're definitely symmetric, mij, sorry, equals mji. Maybe that's, is that follow from the fact that it's, anyway, definitely symmetric, definitely symmetric, mij equals mji, all right? Okay, okay, so, all right. Okay, so that's a coxer group. So, oh no, let me give you an example because we need to have a couple of pictures in our head as we go along, so let's look at a couple of examples of gamma. Well the easiest one of course is just this with say two generators, let's call them S and T, and we're looking at the coxer group with two generators and this one relation, and I guess it's, I think I'll leave it for you to see that this is just what's called the dihedral group of order two n, so two n. It's exactly, it's exactly, actually maybe I will draw you this picture because we'll use it later. So again, I have these two reflections where this is pi over m, right? Okay, and I start reflecting around and I get some more reflection hyperplanes, all right? And if I just look at a point in one of these regions, these are called chambers and look at its orbit, I get a two n-gon, two m-gon, okay? And what I've got, what the coxer group is is the symmetry group of this two m-gon, all right? And that's the dihedral group of order two m, all right? So it's just the symmetry group. And by the way, this picture I drew here is something called the coxer cell associated to the coxer group, sorry. Sorry, I didn't put in the coxer group here. W gamma is equal to the dihedral group, sorry. The coxer group is the dihedral group of order two m, all right? Okay, so we'll come back to coxer cells later but that's your first image of a coxer cell. Okay, so all right, let's do, so that one is a finite group, all right? On the other hand, clearly if I just take this with no edge, where I have Mij equal to infinity, so again, S and T, but this time Mij equal to infinity, in that case, I get W gamma is what's often written as d infinity and that's just the, is there a name for this? So now you're taking reflections like this if you want, right, it's the infinite dihedral group, I think is what it's called, right? It's just the infinite dihedral group, so it's an infinite group. This is a finite group, this is an infinite group. Okay, there's a really important point here and let me give you one more example so you can see it, which is that that's not the only way a coxer group can be infinite. So let me, let's look at this one. Three, three, three, all right? Let's say R, S and T is my vertices, all right? What is that coxer group? Well I want three reflections, R, S and T, and any two of them have pi over three is their angle between them. Well it turns out that can be realized as what's called an affine reflection group, namely in the plane, let me draw it up here. So in a plane if we take, just in Euclidean space, if we take an equilateral triangle and look at the reflections across each one of those faces, all right, then each one of these is pi over three, all right, and we take a reflection in each one of the faces, then that turns out to give you exactly the coxer group you want. But let's start doing that, we start reflecting on what happens when we get another triangle and then we get another triangle, we get another triangle, we reflect, reflect, reflect, reflect, reflect, we tile the entire plane with triangles. So the coxer group in this case is in one-to-one correspondence with the entire triangulation of the plane by this, by this. So it's infinite, so W gamma equals, W gamma, I'll just say tiles, moving this thing around by W gamma tiles the entire plane, hence is an infinite group. Because we're gonna care in a little while a lot whether our coxer group is finite or infinite. And the point I wanna make here is just because there are no infinities, M-I-J infinities doesn't mean the coxer group is an infinite, can still be infinite, okay? All right, any questions? I shouldn't ask that, people just, we'll be here all day. The coxer group on C was not accurate. The symmetry group is bigger than the B2M. The entire symmetry group is bigger. I'm just looking at the group generated by those three reflections. The first example of the polygon, I see you said something, well, anyway. Oh, you may be probably right. So it's not the full symmetry group, but it is the dihedral group of order 2M. You're right, there are some missing symmetries. Okay. It's not in the middle, yeah. Yeah, right, I understand, you're right. It's not the full symmetry group. It's contained in the symmetry group. It's generated by those reflections on these sum. Okay, so I'm hoping a lot of you have seen coxer groups because that's not the subject of this talk. The subject of this talk is art and group. So now what is an art and group? All right, so let's move on. All right, as in the case of coxer groups, there's two ways of defining an art and group. The first is simply by a presentation. And let me just say, actually before I start, that for every coxer group there will be an art and group. So let's say we already have specified the graph. So we've given a graph and now we're gonna associate to it. We already associated a coxer group. Now we wanna associate an art and group to it. So assuming we've already specified our graph, then a gamma is again the same generating set. Now we do not want generators to be ordered to anymore. So we drop that relation entirely and we rewrite the second relation. So the second relation I'm now gonna write like this. S-I dot dot dot alternating I-J I-J with M-I-J terms not pairs. So if M-I-J is three, I would stop right there. M-I-J letters equals the same thing in the other order. Now it turns out that in the coxer group case, that relation and that relation are identical because I could take the inverse of this and put it on the other side. When the coxer group, the inverse of S-I is S-I and I just get that relation up there. So if we S-I equals S-I inverse, this guy is the same as this guy. I don't have S-I inverse anymore and I have to write it this way. There are two completely different relations in this situation, all right? Okay, so there it is and that seems kind of arbitrary. So where do these come from and why are they interesting? Well, it comes from the geometric description. So let's look at what they are geometrically. I should probably push everything up here. On the ground. Oh, that. Yes, thank you. This is the hardest part of giving these talks. Let's figure out how to use the boards. All right, so let's go, I should... Okay, so, all right. So now we wanna give a geometric description of this group. Okay, so let's go back to our coxer group. We have W gamma acting as a reflection group on Rn and the first thing we're gonna do is complexify. So just tensor Rn with the complex numbers. So we get an action on Cn. This is just the obvious thing, just take the tensor product with the complex numbers. But now notice something interesting happens. So when we were working in Rn, the reflection hyperplanes were co-dimension one, real hyperplanes. Now they're co-dimension one, complex hyperplanes, which is co-dimension two in real terms, yes? So what happens now, if we remove these hyperplanes, we get some fundamental group. Things can go around the hyperplane. We're removing something of co-dimension two. It's like removing a line in R3.  So let's define the following. So each reflection are in W gamma. And by the way, these are not just the generators but also conjugates to the generators act as reflections. So all the reflections I'm looking at. Each reflection R fixes a complex hyperplane, which I'll call HR in Cn. And what we want to look at, so let me say the associated what's called hyperplane complement. Well, first I'm going to write down something that's not quite right, but almost right, is defined as follows that we get. So I'm going to do script H gamma. It's going to be my hyperplane complement. And it's going to be what I get from taking Cn and removing all of these reflection hyperplanes. So the union over all the reflections take out all the reflection hyperplanes, all right? I'm cheating, but I don't have time to explain this in detail. In the finite Coxer group case, it's exactly this. In the infinite Coxer group case, in order for the theorems, I'm going to state to be true, you actually have to restrict to a big open cone in here. It's not the whole Cn. It's some big open cone in here and do the same thing. It's a technicality that's not going to play a real role in what I say, but I'm just saying this is exactly the picture if you have a finite Coxer group, all right? In general, you might have to restrict to an open cone. So what do I want to say about this? Oh, yeah, OK. So then the point is this is just true in general. Then W gamma acts freely on H gamma because it turns out we've removed everything which has a non-trivial stabilizer when we do this, all right? Everything which has a non-trivial stabilizer lives in one of these. So it now acts freely on this. And the main point is that A gamma is the fundamental group of what we get when we mod out by W gamma. All right, so these spaces arise naturally in algebraic geometry, and particularly in singularity theory. These spaces simply come up when you're trying to resolve singularities and people were interested in understanding their topology. And that's where the original interest in art and groups came from, from people who were trying to understand these spaces that arose, OK? So sorry? The out-in-brain group is a perfect group. Yeah, well, that's the example I'm going to do. Just give me a second. OK, so let's do the classical example. That's exactly what I want to do. So let's take a look at this to understand it better. So here's the classical example. I guess I'll do it here. OK, so let's start with a coxer group that everybody understands. So W gamma is the symmetric group on N letters. OK, you can now leave it to you to convince yourself that is a coxer group, OK? So this is the sort of classic example of a coxer group. And there's an obvious action of this on CN, namely, simply permute the coordinates, all right? So by permuting coordinates. All right, and what are the reflections here? Well, the reflections are just interchange two coordinates. That is a reflection, all right? That is a reflection. And the reflection hyperplane, the thing that's fixed when you interchange two coordinates, is the subspace where those two coordinates are equal to each other, OK? So let's write that down. So I need to save that board. I can use this one. Let's use this board. All right, I won't erase this. OK, so let's see. Yeah, OK, so the reflections, actually, let's put this here. The reflections are, let's call it Rij, sorry, tau ij. Equal interchange ith and jth coordinate, OK? And therefore the hij, which h tau ij, that is to say the hyperplane fixed by, yeah, where did I define, yeah, this, HR. So the hyperplane fixed by this is exactly the set of z1 to zn in cn such that zi equals zj, yeah? That's the hyperplane, all right? OK, so what is the hyperplane complement? The hyperplane complement is the set of z1 to zn in cn such that ci is not equal to zj for all i not equal to j, yeah? OK, well, that is a well-known space. It's called the configuration space of n points in the complex plane. So another way of looking at this instead of in the complex plane. So instead of looking at this as a point in cn, I can look at it as n points in c. And what we need is that those are distinct, n distinct points in c, all right? Yeah, so we want to think of these as being a collection of n points. Here's the complex plane, and I have more space here. Well, that's OK. I have n points in here. And the only rule about where they are is that they can't run into each other. They have to be distinct, yes? All right, so what's its fundamental group, all right? So we claim that a gamma is, well, I'm telling you that a gamma is the fundamental group of this thing. All right, so let's figure out what the fundamental group is. Oh, sorry, mod w gamma. By the way, what does mod w gamma do? Well, it's only a question of whether we remember what order these points are in, or if we mind out by w gamma, we just don't care what order the points come in. Same set of points, we're just not going to worry about what order, yes? So either order, you can have configuration space of n ordered points or n unordered points. Either one makes sense. I'm going to look at unordered points, where I don't care what order. All right, so now I want to take the fundamental group. So I fix some base point. In other words, I fix, I'm going to start here. That's, I declare I'm starting here, OK? And now I let time go from 0 to 1. And as time goes from 0 to 1, these guys are allowed to move around, all right? But they're not allowed to run into each other. So let's watch them move around. So let's have a little movie where this is time going down here, this is, you know, time goes from 0 to 1. And these guys move around, and they have to end up back where they started, at least up to permutation.  But they have to end up in the same set of points, yeah? OK, so let's watch them. Maybe this guy goes like this. And maybe this guy, oh dear, you can't run into this. So let's be careful. You better not run into this. And maybe this guy goes like this. And this guy, oh dear, goes like this. That's something, right? I mean, I'm watching these move around at any time. What I'm seeing is n distinct points in the plane, all right? What is this group? The braid group, yes. No, we all know this group. This is the braid group on n strands. So this is the classic example, and it is the one that Arton first did. This is the Arton braid group, OK? All right, so hopefully you see where these came from and why people were interested in them, all right? OK, so that's sort of your intro to the basic idea of an Arton group, right? Yeah. You have two different definitions for the Arton group. Is it supposed to be obvious, or is it an interesting result that you have to give them? It's not supposed to be obvious. This is a theorem. Yeah, this is definitely a theorem. Yeah, there are a lot of theorems in here. I'm going to quote, not prove. That's right. You definitely have something you need to prove here. I mean, in this particular case, it's not hard to check that this thing has the expected presentation that looks like this, all right? But yes, in general, there's definitely something to prove. All right, so let's move on. All right, so Arton groups, I like to say, come in two flavors. We classify them into two groups. So Arton groups, I'll just say, come in two flavors.  Anyway, they're two, classified into two different groups. The first one I like to call finite type Arton groups. Some people call them spherical type, either finite or spherical type. I tend to call them finite type Arton groups. And what are they? Those are exactly the ones where the coxotr group is finite. So any Arton group, any A gamma associated to a finite coxotr group is called a finite type Arton group. On the other hand, we have infinite type. Type A gamma are those associated to infinite. Warning, the Arton group itself is never, never, never finite. The Arton group is always infinite. In fact, the generators have infinite order. So I'm not saying the Arton groups are finite. I'm saying it is an Arton group associated to a finite coxotr group. OK, all right. So if you've ever studied coxotr groups, I think I first learned about the details of coxotr groups out of Ken Brown's book on coxotr groups. I don't know if any of you know it. Anyway, there are all kinds of books out there. He starts out with all about finite coxotr groups, develops the whole theory of finite coxotr groups, and then later in the book, he expands that to give the general theory of infinite coxotr groups. But the bottom line is, wow, everything that works for finite coxotr groups works for infinite coxotr groups, too. I mean, that's not, I'm exaggerating slightly. But I mean, essentially, all the basic theory and the tools you need go through equally well for the finite and the infinite. It's exactly the opposite for Arton groups. We have these amazing tools that we can use to study these. And we understand an enormous amount about them. And we're totally in the dark when it comes to these, with the exception of some very special ones like right-angled ones. There are a few special cases where we have other tools to work with. But essentially, these are, so let me say a little bit about why. So we know a great deal about finite type, a gamma, and very little about infinite type. OK, so why? Well, the reason is I'm saving this board for something that I don't want to erase later. That's OK. I might need them both. It's possible. So I don't dance when I. OK. So, yeah. OK, so I claim we know a lot about finite type and very little about infinite type. And the question is why. And the reason is that finite type, a gamma, have something called a garcide structure. And that's another entire course to tell you about what garcide structures are. Let me just say it's an extremely nice normal form for words, for elements of the group. Extremely nice way of writing an element in terms of the generators that allows you to, for example, it gives you a lot of combinatorial information. For example, it gives you a bi-automatic structure if you know what those are. And gives you just really a handle on certainly anything algebraic. And it turns out a fair amount of geometric stuff as well. So which gives, well, not so much geometric, but certainly algebraic, which gives nice normal forms and lots of combinatorial stuff like bi-automatic structure, et cetera, et cetera, et cetera. And this has really been behind almost everything we know about those groups. The infinite type has nothing of that sort. And that's the problem. We don't have a place to start. We don't have anything. So infinite type, infinite type, gamma. Well, there have been. John McCammon has sort of generalized garcide structures a little bit to some affine ones. But basically, no, we don't have anything like that. So no such tool as a garcide structure. However, the most effective techniques we've had so far for studying these are geometric techniques. So actions, building interesting, useful complexes that these things act on and using those to tell us something about the group. And that's what my second lecture is going to be about. Well, a little bit. Hopefully, we'll get to some of it in this first lecture. Most of the second lecture is going to be about some of those constructions and how we use them to learn about these groups. Because that's kind of what I'm interested in. So before we get to that, though, I want to tell you about what do we know and not know about these groups. And I'm going to break this up into, so I'm going to put it over there. So here, so next, I'm going to put here are some conjectures slash questions. And most of them are about infinite type, but a few of them will be about finite type. So I don't want to specify in advance yet about what I'm going to talk about. So I'm going to give you a long list of open questions. And I'm going to put them here because I want to be able to refer back to them from time to time. So we're going to save them on this board over here. So the first is a set of what I'm going to call old conjectures. These go back to, so these groups were first really studied extensively by Deline and Bricecorn and Cytoback in the 70s. So these conjectures go at least that far back. I think some of them go even farther back than that. But they go back 50 years. So these have been conjectures that have been around for a long time. And I'm going to put a star by them so I can refer back to these conjectures, these old conjectures. Yeah, 50 years is old for you guys, right? OK, so here's some conjectures. OK, if you're a geometric group theorist, you're not going to believe this. We do not know if these groups have solvable word problem. We think they do. So I'll give you a preview of what's coming. It turns out these conjectures are all known for finite type. But they're not known for infinite type. So I will say afterwards which ones are known. So solvable word problem. I don't just mean that we don't have a nice solution, like some nice bi-automatic structure. We don't even know if it's solvable. We don't even know if there is an algorithm to solve the word problem. That's crazy. Two, a gamma is torsion-free. We can't find any torsion, but we neither can we prove that they're all torsion-free, all right? Three, here I have to assume a gamma is irreducible. So if a gamma is irreducible, and what I mean by that is that I can't write it as a product of two smaller arty groups. So assume I can't split it up as a direct product of two smaller arty groups, then we know something. We conjecture that the center of a gamma, well, we know in the finite type case that it's cyclic, that there is something in the center if a gamma is finite. For example, is finite type, excuse me. In the braid group case, if you take the braid that does a whole 360-degree twist of the whole thing, you can check that that's in the center, that that commutes with everything. You can exercise, draw a picture. So they do have a cyclic center if they're finite type. We know that. And we think the center is trivial if a gamma is infinite type. All right, four. And these should really go in the opposite order, but I'm going to do them in this order. We think that a gamma has a finite k pi 1 space.   There's no other homotopy. The universal cover is contractable. So these are extremely useful k pi 1 spaces in homotopy theory and computing homology groups and all kinds of, they're basically the topological way to work with a group. So in fact, we not only think that there is one, but we think we know what it is, and I will explain this later. Let me just say, namely, the Salvetti complex. So by the way, finite, I mean finite Cw complex. Sorry. By finite, I mean there's a finite Cw complex, which is a k pi 1 space complex for a gamma. Now you heard, if you were in Danny's talks this morning, what the Salvetti complex was for a right-angled Arton group. Turns out there's a Salvetti complex for every Arton group, which I will explain to you later what it is. And we think that is, in fact, a k pi 1 space, always for everything. And the last one, 5, is all right. The last one goes back to this description of this hyperplane complement. So I already said that the interest in a gamma came originally from the fact that it shows up as the fundamental group of this hyperplane complement. I said that. Well, the conjecture is that this guy is a k pi 1 space. Now it's not a Cw complex, but in the sense that it has the right fundamental group and its universal covering space is contractable. So it already carries all the topological information one would want to study this group. So this last one is the h gamma, w gamma is a k pi 1 space. Maybe I should say a k a gamma 1 space. Would that be better? It's a k pi 1 space for a gamma. How's that? k a gamma 1 space may be a better way of saying it. It's a k a gamma 1 space. And by the way, since we already know it has the right fundamental group, all we need to prove is that its universal covering space, this is the universal covering space, is contractable. That's what's left to prove, because we know it has the right fundamental group. This one, you may not find the most interesting, but it's the most famous. And it has a name. It's called the k pi 1 conjecture. So for example, in that I put up those papers, there was one that Louis Paris paper that was about the k pi 1 conjecture. That's the conjecture he's talking about. So this is the most famous conjecture regarding these things. So as geometric group theorists would probably find the first few more interesting, but the people who are interested in these for other reasons were particularly interested in these later ones. OK, so that's the list of, yeah. So let me say what we know. So as I said, in the early 70s, Deline and a paper by Breeskorn and Sito. So these are two separate papers. They appear in the same journal, though, I think. Or it's around the same time. Early 17s, Deline and Breeskorn and Sito proved that all of these conjectures for finite type. OK, and since then, and this is part of what I'll talk about in my next talk, we've proved that they hold for certain classes of infinite type, but they're all still open for an arbitrary infinite type. None of them is known in complete, completely. We've almost solved the trivial center one, almost. Anyway, I'll talk about this in the second talk. All right, so these conjectures have been around for ages. And we're sort of just now beginning to figure out ways of dealing with them. OK, there's another set of conjectures, which I'm also going to put up here. And then good, then I'll still have 10 minutes left to tell you about Deline complexes. That is newer, and I'm not going to say. I don't need to save, so they can go on this board. And these have to do with, I'm a geometric group theorist, so I like to know, is a group hyperbolic? Is it cat zero? Those kind of questions that we ask, right? So what that means is that does it. So we're asking, does the group act properly co-compactly on some really nice space? A hyperbolic metric space, or a cat zero metric space, or a cubicle cat zero, even better metric space? So we want to know geometric properties, all right? So let me list some new questions. And these are all questions, because we don't have answers to any of them, really. All right, so one, is a gamma hyperbolic? Well, we know the answer to that one, turns out. And the answer is yes, if and only if. This is one of the exercises on your exercise sheet, is to prove that the answer is yes, if and only if a gamma is the free group, meaning if and only if gamma is a discrete, has no edges. Has no edges. If it has no edges, then the art group is a free group. And so they are clearly that hyperbolic, OK? That's the only case, all right? So that's an exercise, OK? So we know the answer to that one, actually, all right? So we could then ask, is a gamma cat zero, meaning does it act properly compactly on a cat zero space, or better still, is a cubically cat zero? Can we make it act on a cat zero cubical complex? Cubically cat zero? What do you call these? Something that acts on a cubical cat zero? Co-compactly-cubulated? Cubulant? Co-compactly-cubulated? I mean, just write it like that. Whatever. So acts nicely on a cat zero space, or nicely on a cubical cat zero space, one that comes from cube complex, all right? We don't know, all right? So even for braid groups, we only know. So it's conjecture that braid groups are cat zero, but it's only known for braid groups on at most six strands. It's known to be true up to six strands. Past that, we don't know. And in fact, there are some really interesting recent papers showing that, nope, most of the braid groups even. Anything braid group of more than four strands is not cubically cat zero. So the question here is, who knows? Don't know. We don't know even for braid groups. And the question here is often not. Many, many cases, the answer is no. Co-compactly-cubulated, but it's not known whether or not they're cubulated. When I, OK, all right. So I don't know that, when I say cat zero, I mean acts properly co-compactly, all right? And I want the same thing here. Acts properly co-compactly. Usually when you say something's cat zero. So fine, I'll put in co-compactly. I want proper co-compact actions, OK? For these two questions. All right, there's a bunch of names here. Should I try and write them all up, or just say them? Let me see, I can't even pronounce them. Hey-tell is the H-A-E-T-T-E-L. Hey-tell, did I pronounce that one right?  He's got results on both of them. And then you can help me with this one, Danny. There's a paper by Wang, Jan Kiewitz, and Piotor. But tell me how to pronounce Piotor's last name.  Prtitsky, Prtitsky. Prtitsky. OK, whatever. I'm very bad at it. I could write it up here for you. Anyway, there are a bunch of recent papers showing that, in fact, even the braid groups, most of the braid groups and a lot of other art and groups cannot be cumulated. That's really bad news. And let me tell you why it's bad news. We don't know how to construct cat zero spaces that aren't cubicle. Or we don't have much, you know, we really constructed cat zero spaces out of something other than cubes is really hard. So if they're not cubicle, we're going to have a hard time answering this one. Because we're going to have to find weird cat zero spaces that don't come from cube complexes. And, you know, so that's a hard problem. All right, so OK. So let's keep going. So let's see, what else did I have? Two more, three. Oh, questions about, OK, these are, if you're not into this stuff, don't worry about it. There are weak versions of hyperbolic, like a cylindrically hyperbolic. I think somebody mentioned that in an earlier talk. So is a gamma, I'm going to leave space here for a reason, a cylindrically. So that means there's an action on a hyperbolic metric space that isn't as nice as you'd like. It's not proper, but it has some nice conditions, all right? So it's a weaker version of this. So it turns out that as a center, it can't possibly be. So we first have to bode out by the center to have any hope here of getting anything. So if it's finite type, it has a center. We have to kill that to even hope that it might work, all right? We more or less have an answer to this one, all right? This one appears to be yes, all right? So it was first done for the finite type by Calvez and Wiest. And then Indira, Chatterty, and Marta, is that how you pronounce it, did it for something called FC type, which we'll talk about later, and then Rose, Morris, Wright, and I have almost finished the picture, but there's still some technicalities, a few cases where we can't deal with yet. But the answer looks like it's going to be yes, and we've almost answered this one. So hopefully yes on all of those, all right? And the last one is, oh, I don't even want to say what these are. Nobody's mentioned hierarchically hyperbolic here. We won't worry about it. So there's something called hierarchically hyperbolic group, which I absolutely won't define, but what it's really about is trying to construct an analog of the curve complex for these things. So the braid group can be viewed as a mapping class group instead of as an art group, and it has a curve complex, and curve complexes are really useful. So the question is, is there something like a curve complex for other art groups, at least for the finite type? And that's an interesting question. Is there an analog of the curve complex for a gamma? And so there's some work on this by a paper with tons of authors, Komplito, Gebhardt, Wiesten. Thank you. Gonzalez-Menezes, yes. And then another one recently by Rose Morris Wright, who's anyway. There's some work being done on this, but we're far from a real answer to it. So I'm not going to go into these. These are beyond the scope of this talk. I simply want to say that there's a lot of interesting things to think about. Some of them are very basic and combinatorial, and are old, have been around forever. And then there's all these new questions involving what the geometry of these things look like. So I think they're interesting groups to study. I have only five minutes. So that actually brings us to the second part of the talk. But I wanted to give you a little bit of it because the exercises are between the two talks. So if you look at the exercises, the front page are some mostly fairly easy questions about basic questions about playing with some art and groups. And the second part is playing around with one of the cat zero cube complexes we're going to use in the second half of the talk. So what I'm going to do now is define it. And then in the second half of the talk, we will use it and see what it's good for. So as I said, so this is really part two. It's the geometric techniques that we've used to study art and groups. But before we do that, I need a little bit of terminology. So back to basic theory of art and groups. So first of all, some terminology, which is, or notation if you want. So suppose a gamma is an art group. I just want to give a name to the generating set. I'm going to refer to the generating set as s. So of course, it's equal to the vertex set of gamma. But I just want to be able to call it s. It's s1 to sn, whatever. So that's the generating set. Then for any, t contained in or equal to s, and that includes the empty set is allowed here. Any subset of s, we define, this is just notation, we let at be equal to the subgroup of a gamma generated by t. All right.  And we could also look at the subgraph spanned by t. In other words, connect them with edges if and only if they were connected in gamma with an edge. So the question is, how are these related? And the answer is, it's what you think it is. So fact, and this is due to van der Lek. I forget when 80s or 90s, somewhere like that. He showed that if del t is the subgraph of gamma spanned by t, then in fact, in the obvious way, a t is naturally isomorphic in the obvious way to a del t. It is, in fact, the art group given by that graph. That's not surprising. Well-known for coxer groups, that's true. So if I restrict to any subgraph, I have some complicated graph gamma. And if I restrict to some subgraph in it, then the subgroup generated by those generators is the art group for that subgraph. That's all I'm saying. OK, so oh, these are called, these are known as, I'll usually just write like this. They're known as special subgroups. And more generally, they're conjugates. So if I conjugate one of them, say g, at, g inverse, are called parabolic subgroups. OK, so I just want to be able to use this notation. OK, so let me define for you, I'm going to go about two or three minutes over. We're just about there. We just need to give you the definition of this. OK, so back in the 1990s, Mike Davis and I, we were tried to prove a k pi 1 conjecture. All right, so what did we want to prove? We wanted to prove that this space, this universal covering space, was contractable. So what we did is we constructed a cube complex with the same homotopy type as this. We showed we could retract this thing onto a certain cube complex. So let's see. So we defined a cube complex, which I'll denote d gamma because we referred to it as the Deline complex. And the reason is that Deline had used something kind of like this in his work back then. We defined the Deline complex, a cube complex such that, and this part I won't explain how we did it. This is a whole other. It's homotopy equivalent to this. We basically retracted this space onto some cube complex. So we found this cube complex we could put inside it. So now proving this is contractable is a matter of proving a cube complex is contractable. Well, by the way, we already know it's simply connected because it's homotopy equivalent to this guy, which is the universal cover. It's simply connected. So I've got a simply connected cube complex. And I want to prove it's contractable. And the answer is just prove it's cat zero because every cat zero space is contractable. So there was an obvious sort of next step. So I claim, so suffices to prove D gamma is cat zero. And if you remember, I'll go back over this at the beginning of the next talk. But if you remember from Danny's talk to prove it's cat zero, we need that it's non-positively curved and simply connected. We already have simply connected. So all we need is non-positively curved. And we have great techniques for checking whether a cube complex is non-positively curved. So that is part of that is on your exercises. And I will simply define the complex and then let you go. I would say the first, as I said, the first part of the exercise sheet is just simple things on art and groups. The second thought is all about this complex. So what is this complex? So let me define it for you. D gamma is the following. So I'll start with the vertices. The vertices are in one-to-one correspondence with cosets, where A is any element in A gamma. And the important thing is that A t is finite type. So t is contained in S and A t is finite type. OK, notice, by the way, this is only interesting when the full A gamma is infinite type. Otherwise, it's not really interesting. So let's assume that the full A gamma is infinite type. So we've got an infinite type thing. But inside, there can be plenty of subgraphs that generate finite type. For example, any single edge generates a finite type. So it can have lots of subgraphs that generate finite type things, just because the whole thing is infinite type. Doesn't matter. So those are the vertices. Edges is just when one coset is contained in another and differ by a single. So if I can add a single generator to t and still get something finite type, then I connect those two. So they have to have a common representative. And they have to differ by a single generator. Differ by a single generator. And finally, what are cubes? Well, cubes are a generalization of this. They're what I call intervals. Namely, let's write AAT. So now let's say I differ by more than one generator. So where AAT is contained in AAR. And what is this cube? So what do I mean by this? Well, I'm going to look at everything that's between here and here. And I claim I'm going to see a cube. Because if I start out with little AAT, I can add one guy that's in here and was not in. I can add one guy, t union s1. And then maybe I add another guy. And then maybe I add both. And then maybe I add a third guy. So what happens here? Eventually, I'm going to end up at AAR. Here I've added one, an s, i. And maybe then I add another one, union s, i, s, j. And eventually, I've added enough to get me all the way to here. And if you look at all the different ways of adding this one first versus that one versus that one, what you see is the one skeleton of a cube. So if I look at all the things that live between here and here, I see a cube. I fill in that cube. Fill it in. Put a cube in there. So that's where my cubes are. I'm out of time, so I'm going to leave it at that. There is another way to describe this as a simplicial complex where you just think of this as a partially ordered set and take geometric realization. The problem is that description isn't going to help us. We really need the cubicle description to do anything with this. So the question's going to be, is this or when is this cat zero? That's part of that. The beginning of that question is on your exercise sheet. So this is going to play a central role in the second half.