OK, thank you for attending this talk about Eclipse. So I guess that some of you are using Eclipse every day and as an IDE and probably you don't know all what you can do with Eclipse with a lot of different projects that could help you to be more efficient in your developer life. So I will in this talk speak about the Eclipse Foundation for a couple of slides to explain to you how Eclipse is managed. That can be interesting for you to know that this is a really controlled technology actually. I will have a couple of slides also on the IDE, maybe two slides or three slides that will be just to introduce the OSGI architecture. This is the basement of all the Eclipse products and even if you do not use Eclipse as a framework for your new developments OSGI could be used for any kind of Java development. That can be very interesting for you. That would be maybe the most technical part of the talk about eight or ten slides about it just to give you an overview of what you can do with OSGI. And then of course OSGI will lead us to the Eclipse RCP architecture where I will explain you in a couple of slides also what are the interests of the Eclipse 3 and 4 architectures and how you can use it in your application if you need it. And the last part of the talk is about modeling projects. I think that today a lot of people could be interested in using modeling, tooling and modeling concepts like DSL for instance, domain specific languages and for your projects even if you are a web developer you could use this tooling to create for your business your specific tooling to enhance your efficiency in your development every day. So that can be very interesting. And especially if you have projects that will last a long time often you have to change the model or the structure of what you are doing with your business model and if you change something usually you have to change it everywhere. So modeling projects could be a very good entry point for you to create efficient tooling. So the goal of this talk, I don't know you exactly. I don't know if there are some RCP developers. Are there some RCP developers here? I think no. You, maybe, okay. So you want a pen you can come back to, you can come after to take the pen. There are also maybe people who isn't involved or interested in modeling stuff, I don't know. So the goal is to give you an overview of all this technology in a couple of sites. So I know that you have worked today, me too because I prepared the slides, but I would try to make it interesting for you and dynamic. So my name is Olivier Prouveau, I'm coming from France where I have my own company, the name is HopiCoach. So I'm only focused on Eclipse technologies and I do that for more than 10 years. I provide Eclipse training, Eclipse consulting. I try to connect people around Eclipse technologies and my website is of course HopiCoach.com and I've got a Twitter account also. So let's have a look on the Eclipse foundation and the Eclipse ecosystem. So what is exactly how is it managed just behind the scene? And as you, maybe you know that there is an Eclipse foundation. The Eclipse foundation is an organization that will manage all the Eclipse projects and also the Eclipse members. So in the Eclipse foundation, you can be a member. Depending on the size of your company, you will contribute with different ways. Maybe you will give a lot of money. Maybe you will give some developers. It depends on the status you have. And the foundation also now manage groups of people that will work on very focused projects like Science Group or IoT Group. Are there some people involved in IoT technologies here? Well, everybody's working in the bank. Okay, so the groups I will show you some size about it. So the goals of the foundation is also to host the projects. So the projects are managed by the Eclipse foundation where they provide a kind of software forge or software like a GitHub. Or we could say there was a Git and there was a lot of bug, a lot of tooling like a bug ZR or Gerrit for managing the code. So this is all the infrastructure to manage the code is managed by the foundation. Of course, the foundation, one of these goals is to promote the Eclipse technologies by organizing some conferences, there are four conferences in a year and to help people and members to make business with Eclipse. For the history, the foundation has been created at the beginning by IBM people. IBM started Eclipse to create a new IDE. And then because that was too much IBM oriented, they created the foundation where a lot of different members could participate and then that's a more open organization. So this foundation is located in Canada, in Ottawa, and it's only funded by members. So just a couple of, I will show you some figures about it, just to show you how it's organized. Of course, everybody knows Eclipse as an IDE. It started in 2001. But they created the foundation for the WIS and I explained just before in 2004. And then the Eclipse foundation became a kind of meta foundation that will manage different groups. The IDE is one of these groups. But you have also several working groups here. I will show you one slide per group after. Maybe you will find something interesting for you. And the RCP architecture also became a group, a kind of group where people are involved for that. And now the Eclipse foundation is involved in the research projects to connect, I would say, industrial people and research. And they do that all over the world. Some figures about Eclipse, usually the unit is millions. So you have millions of users, millions of commits, millions of, a lot of things, millions of line of codes. I will not detail all the numbers here. Maybe the number of about money is interesting. The foundation has a budget of five million dollars per year, only contributed by the members. There are about 250 or 240 members. And the foundation is composed of 30 people working in Canada and in Europe. Maybe we could ask the question, how Eclipse was such a success? Because it started in 2001, we are in 2017, and it's still there and it's still very, very dynamic. So a lot of different tooling has disappeared for a long time. If you compare with NetBeans for instance, even if NetBeans is a very good IDE for starting Java projects, but you cannot go forward with NetBeans, just start your project and you have an IDE for Java project and that's it. IntelliG also is a very good IDE, but there is no RCP architecture just behind, you cannot use it to create your full application that will have nothing to share with development tooling. For instance, if you want to create a bank, application, you will never use IntelliG as a framework to create your bank application. But if you want to use Eclipse and the Eclipse architecture, you could create a full bank application without knowing that this is done on Eclipse because Eclipse will provide you a lot of different components. And the success can be explained by these different points because one of the points was that, of course, the foundation tried to put everybody in touch, but they also have a very sharp IP management and a license. The license that is provided by Eclipse is named the Eclipse public license and it explains that you can do what you want with the code. You can take all the code of Eclipse, even if you change any line of code, you can take it and sale it on the web if you want. If you can do that, you are very good commercial because you change nothing. But you can also add maybe 10% of code and change the license and say that this is a commercial license. So you can make your business with that. That's very important. This is EPL. EPL is Eclipse public license. Basically, this license allows you to make what you want with the code. You can take the code and make your business with it. I don't know everything about the open source licenses. I know that there are many, many, many licenses and often if you have a license, it's a viral license. I mean that if you put the code in your code, your code should have the same license, for instance, or should mention that this is this license. In Eclipse, you are sure that the code inside Eclipse has been controlled before being provided to the community. So you are sure that everything is EPL. When I contribute something to Eclipse, I'm assigned something to say this code I created on my own and I didn't copy it from another code that has another license. So that's very important for the business issue, and especially in the US. And of course, one of the secret is the governance. The governance of Eclipse and the Eclipse Foundation, I think it's really a good model of open source community. If you compare the different open source communities, you will see that, for instance, the Eclipse community is different than the Eclipse community because the goal of the IPG community is not to help you to make business with the IPG projects. It's just to give you, I would say, standard implementation of software problems. That's a different approach. So that's interesting because the governance of the Eclipse Foundation is really a model for how to make an Eclipse, an open source community. So if you want to make business with an open source project, Eclipse will give you everything to make this and everything is ready for you. So there are a lot of members, as I said, I will not zoom on this slide. So there are a lot of big companies, small companies, even me, I am alone in my company, I am a member of the Foundation. So, but you have also Airbus, Thales, IBM, and a lot of them. And there are some specific members. The name is Strategic Members. So Strategic Members are members that are involved in the steering committees and they can create new trends inside Eclipse. It's not especially big companies, of course, you have got IBM, but you have also small companies like CodeMV. CodeMV is a new company created maybe three or four years ago and they provide a new way to use Eclipse on the web. So they are very involved in the Eclipse community because maybe one of the next steps of Eclipse will be to be used on the web. So you will be able to have a link on a web page and you just click on it and it will open an Eclipse IDE and you could change your code and commit your code and deliver your code. That's really, really impressive. It's really working today and the name of the project is Eclipse Che. Eclipse Che, T-H-A-E-E, and it's a very famous project in Eclipse today. You have also, OBEO is a small company in France, there are maybe 100 people and they are only involved in modeling projects. So the business model is based on modeling, tooling, modeling projects, DSLs, graphical editors, or something like this. So depending on the size of your company, you can even become strategic members. Like? Board members? Board members? Yeah, some organizations, they are something called board members. They pay the highest fees. I don't understand what is board members or what do you mean? Small members or? Something like board of directors. So they got some voting, Ah, board members, at the board, you mean? Board, board. Yes. Yeah, yeah, okay, board members. Yes, these people are board members. Yeah. So they pay the most amount of money? Yeah, sure. And they must provide a lot of committers. For instance, when you are a strategic member, if I remember, you must provide eight committers per year, every year. You must pay eight committers, people that will develop code for Eclipse. And you can be on the board. Well, maybe it depends on companies, but this is the basic rule for that. So this is board members, yes. Exactly. I spoke about the groups. So just some information about the groups. You have several groups. One of them is a science group where you have different projects that are focused on science problems like data representation or like a specific physical computation or something like this. So that can be interesting. Of course, you can see all these groups on the Eclipse website. There are links for that. And there are some companies that are well-involved in these groups. So this is a science group. I will not detail the projects. If you are interested in, you can go on the website. There is the PolarSys group, which is more focused on embedded code. You know, for the code that will be embedded on electronics or on systems. So there are a lot of different projects on this. There is also the IoT group. The IoT group is maybe one of the most famous in Eclipse. They provide a lot, a lot of tooling based, of course, on the Eclipse architecture. And for instance, there is the KUWA project. It's an OSGI framework that can be set on a card. Even, you know, the Raspberry Pi. For instance, the Raspberry Pi is a very small computer. You can buy one for 20 euros. And you can put it, you can put KUWA on this Raspberry Pi and make it running and just getting information from your sensors. Everything is free, of course, and it's really a specific Eclipse project. And so a lot of companies are involved in this project. This is a very famous group. Usually they, each conference, they show very, I would say, funny demonstration of what we can do with that. With a lot of sensors, they can check a lot of different things. There is also the LocationTech group. The LocationTech group is focused on, you know, maps. So you can display maps of information. So that's close to the IoT because the IoT, usually, when you have sensors, you want to put them on the map. So that can be interesting to have a signage between the two projects. So one of the groups that could be created, why not, that could be a financial group that could provide some open source projects about finance, financial problems. Why not? But it doesn't exist for the moment. But that could be an idea to create something like this. Why not? So that was the part of the foundation. So the foundation is really, really dynamic and they create a lot of events to make Eclipse more popular. Now I will just speak about the IDE, which is a specific group of Eclipse. As you know, the IDE, you use it every day, probably. You have, every year, you have a new version of Eclipse in June. The last one was Neon in June 2016. The next one will be Oxygen. And in each release, we have a lot of different projects. So this is this, in this bar chart, we have about more than 80 projects that are delivered together and compliant together. So in these projects, you will find modeling projects, C++ projects or something like this. But often these projects that are for cues on the IDE concept. So the reasons of the success of Eclipse is the architecture, which is open and for a while, everybody can contribute to Eclipse and provide a new tooling that will be compliant with the existing tooling. So I will say it's component proof. When you add a component in Eclipse, it will not be merged with the, you can depend on the other components, but it will not break everything. So that's very important. It has been adopted by all software vendors. There are a lot of documentation and tooling. Of course, it's free. It's portable. You can use Eclipse on a Mac, on Linux or Windows. And if you create your application based on Eclipse, you will be also portable for free. You have a stable and regular deliveries. The Eclipse license, as I said before. And of course, all this success is due to the OSGI architecture. That's really a key point of Eclipse. The OSGI architecture is the way to make an application modular and to help you to have different version of your components that can be mixed together. That's very important. I can give you an example. If you have an Eclipse version and you are using your IDE and then you want to use a new tooling, that will use a new version of something that is already installed in your IDE. If you have a standard architecture with Java components, standard architecture, you will have problems because you will have to upgrade the components that are already installed. You will have problems for that. But with Eclipse and with the OSGI architecture, you will not have this problem because everything is independent. So you can have two different versions of the same module running in the same application. So that's the reason why you can create very easily new tooling. So I decided for this presentation to show you some slides about OSGI because everything is based on this. And probably if you understand how it works, I will not detail it deeply, but I will just explain you, give you an overview of OSGI. You will probably understand that the power you have behind Eclipse, that's very important. So OSGI means Open Service Gateway Initiative. It's what is the reason of this creation, of this tooling. Actually when you create a Java application, you have the feeling it's modular because you create a class, you create packages, you create jar files, and you say, yeah, I'm modular, I have created several jar files. That's great.  So jar hell means that you will have a lot of different jars that must be compliant together. If you use the Apache Common libraries, for instance, and if you use Spring, and if you use all the common jar files, you have to ensure that everything is compliant. And that can be a really nightmare. And jar files are not connected together. Of course, you can use Maven. You can use Maven, a Maven file that will pull all the dependencies, but it's only used for the build and for the delivery. It's not used at runtime. You cannot control at runtime if everything is compliant. So you will launch your application and your runtime will be broken because you changed the jar file. That could be a very, very big problem. So you have to know all the dependencies and you have to deal with the class paths by hand. So that's really, really painful. And you will get, of course, class.fund exceptions and a lot of different problems like this. You cannot mix two different jar files. If you have two different versions, you cannot mix them. That would be a problem. And this is really nightmare. So when you launch your application, you will get something like this. You have your different jar files. You have created here. And if we assume that we have mailed jar files that will manage mails and send emails, when you launch your application, everything is loaded in memory. So something that you must have in mind is that all these jar files have been loaded when the application starts. So if you have 800,000, 800, excuse me, 800 jar files, everything must be loaded in memory before running the application. So that can be very heavy. And everything must be loaded at the same moment. And everything is mixed in the memory. So the modularity has disappeared. Now, your mailed jar file is used maybe by several jar files. You must know which are them, what are the dependencies to this one. Now you want to change something and you say, okay, my mailed jar file is an old version. And some of my jar files would like to send an attached file in my email. I must have a new version of my mailed jar file. So how can you deal with that? You will have this configuration where you will have two jar files with mail. So how can you deal with that? Maybe you can say, okay, there is no API break and everything is compliant. That's okay. But maybe you don't want that these jar files use a new version of mail. Maybe you don't want that. Or if you have an API break, you will have a lot of problems because you will have to change all the packages for the new version, for instance, to be sure that everything is separated or you will have to update all the other jar files. And of course, this one has been written by a guy who has been fired or has left your company six months ago. So you will have a big problem. And it's not possible to run your application with two different versions. So the OSGI is there to give you a solution to this problem. And it will simplify the modularity and evolution on your application. So that's very, very important. And Eclipse, if you have in mind how you use Eclipse every day and sometimes you know you use install use software and you install something in Eclipse, it works. You have no problem of compatibility or modularity. Everything is working. So that's very cool. If you add jar files, that will be very difficult. So just to finish this overview of OSGI, I would like to show you some technical stuff about it. What is exactly OSGI? OSGI is a specification of what should be a modularity in Java. It's only used by Java programs. It's not compliant with C++ or other languages. So it will manage bundles, the bundle concepts. That was a representation of a bundle. A bundle is something that will gather some information about your program. And in the module part, you will be able to define what is the name of your module and what is the version. So you can have different bundles with different versions that will be managed together. So there was a life cycle. I will just give you some information about it. This is a specification. So it's only a specification and then you have implementations in Eclipse. That was in implementation of OSGI. The name is Echinox. Maybe you have seen that in some install of Eclipse. So this is managed on this website, OSGI.org. And there was an alliance with different companies that are involved in this modularity. And this project has been started in the last century, in 1999. So that's a very old project. So the bundle in the specifications, they define what is inside the manifest file. This is the description of your bundle. So when you launch an OSGI application, only these files are read. You don't have to read all the jar files and all the contents. Only this description is read. And you can, so I will not detail it. There are some editors, of course, to do that. And when this bundle is read, at one time, OSGI will allocate a specific class loader to this bundle. So if you have two different versions, you will have a class loader. I don't know if you know what is a class loader. The class loader is a mechanism in Java to create classes when you have a name, the name of the class. So you have the package name and the class name. So if you have a class loader for each bundle, you guarantee to have, I would say, you are bundle proof. I mean, your bundles will not be mixed together. They can depend on each other. But a class in a bundle will stay in the class loader of the bundle. And you can define a bundle for a specific platform. That can be also interesting. If you are running on Windows, only Windows bundles will be started. If you have a jar file, you don't know if the jar file is only compliant with Windows or Linux. You must put something inside by hand. So of course, you can also say this bundle depends on this one and you can have dependencies. In this case, you don't have to care about the class pass, because when you give the first bundle to start, OSGI will analyze every dependencies and it will say, OK, this bundle must start, because this one needs it, and so on. So you will be sure that everything will start smoothly and not by winning all the jar files in one step. So maybe you have heard something about the Java 9 Jigsaw project. So Jigsaw project is also a way to make your Java modular. It has been delayed. That was a Jigsaw project should be provided in the Java 8 version, but it has been delayed. So now there will be a component like an OSGI like in Java 9. So this is really an important problem in Java. So OSGI is a solution for more than 15 years and now we'll have something official in Java 9. So I don't know how it will cope with OSGI, but anyway, this is our solution. Another very interesting architecture artifact for bundles, you can create fragments that will be included in your host bundle at runtime. So you can create different fragments and decide to say, OK, I will use this fragment, this fragment, and this fragment in this application. Or I will create a specific fragment only for my test, because the test, the fragment will have all the view and will have access to all the data in your bundle. So this is a very common artifact to make your application modular. So just to finish about OSGI, dynamic behavior also is managed by an engine. So when you start your application, and especially when you start Eclipse, you start an OSGI application. So you just start a main that will read all the manifest files, find the dependencies, and allocate a class loader to each of the bundles smoothly. If you open the PHP editor only three days after having started the Eclipse, the PHP bundle will be started three days after, just when you use it. So that's very interesting. So in this way, you can have different versions of bundles that will be one on the engine. And you can, in this case, so in this example, I have only four bundles. When you launch Eclipse, you have maybe eight or 900 bundles that are running together. So of course, if you have to run everything at the same time, that would be complicated. And the last point about OSGI now we stopped this technical introduction is about services. You can create services. So you can say with a specific annotation, add component, you can say this bundle provide to other bundles a service. For instance, you can say I've got a mail service or a message service to send messages. Or you can say I have a device service to operate some devices or whatever. So that's a normalization of what is a service in OSGI. So if you create an architecture with OSGI, you will create different bundles. And each bundle will have a specific world. So you are, I would say, you are lead to create a modular application like this. You will not create only one jar file that will manage all the message stuff. You will have a message core bundle that will manage the model of what is a message, what are the classes to send messages. You will have the UI. You will have maybe implementation of specific services for SMS or mail messages. So you have everything, all the artifacts, to make something modular. If you have only Java projects with jar files, maybe you will have only one jar file for messages. That would not be very modular. And you can extract the testing fragments. So you can have dependencies to JUnit, for instance, here, and not to have your code and the test code in your bundles. So that can be very interesting for modularity. So of course, as I said before, the Eclipse architecture is based on OSGI. So what is this architecture? Actually, so this is a very old slide about Eclipse 3 architecture. This is not the last one. But it has been created with this. Actually, the Eclipse platform architecture is a set of different bundles. Or the name in Eclipse is plugins. That will provide some specific stuff, for instance, the help plugins to manage help, the Worldbench UI to manage perspective views, property pages, preference pages, and so on. So all of this is at least a set of Android bundles that will provide you a lot of functionalities that you can use in your application. Whatever the application, you will always need preferences, maybe perspectives, views, editors. Even if you have a bank application, you will have to deal with these concepts. And in this architecture, the plugin has also two concepts in addition to the bundle. We have extension points and extension. I will not detail that. But this is the difference between the bundle and the plugin. So the plugin has something more configurable than the bundle. So extension point is just a concept of something. And the extension is the model of this one. Eclipse 4 architecture has been created four years ago in 2012. And they decided to create a new infrastructure, a new framework for Eclipse, because they were sticked on a very basic problem because the architecture was maybe not, even if it used OSGI, something was asked to be written because it was old code. And basically, E4 will now use modeling technology projects, and especially modeling an application model. So I didn't show you the slide about modeling stuff. But when you want Eclipse, every day, you use models inside Eclipse because all your application is defined in a model. So your IDE is defined in a model. And in the Eclipse architecture, in the E4 architecture, the model is UI agnostic. It means that you can create a model, whatever the library use. So you are not sticked on SWT. You can also use Java FX, for instance. And there was injection and CSS, injection stuff. So this is the Eclipse 4 architecture where you have the ECNOX OSGI engine and the EMF stuff. EMF means Eclipse Modeling Framework. This is the basic component to make models. So with this, they can create a model of your application. And you can display this application with Wandaverse. So this is a very powerful application. But the problem is that there are a lot, a lot of tooling that has been created for 10 years. So there is a Worldbench compatibility layer that will transform and convert Eclipse 3 concepts into the model or into some Eclipse 4 concepts. So that comes for free. If you have an Eclipse 3 legacy application, for instance, the IDE is written maybe with 80% of code written with Eclipse 3 concepts. It will be managed by the compatibility layer, and it will run with a new runtime. So the UI model is just a way to describe the different areas you have on your application. So this is an example with different views. So I will not detail a lot, but the model will give you a way to describe how the views are organized, for instance, and to say, OK, in this view, I've got a contextual menu, for instance. So that can be defined in the model. There is also something important about this model. This model is live. It means that when you start Eclipse and you kit Eclipse, when you restart it, you get exactly the same UI. It's because your model has been saved, and then when you restart your application, the model is loaded, and then it's run out. So this is a very, I would say, elegant way to store everything that is present in the UI stored in the model. And saving a model with Eclipse Modeling Framework, it's always the same code. With three or four lines of code, you can save any kind of model. So the code of Eclipse 4 is the API when you use Eclipse 4 is easy, because whatever the concepts you use, it's always the same way to use it. It's not like before. So OK, so the model is there was an editor for that, and you can describe everything. So I will not detail injection, but I think that people know about Spring, for instance, or Google Juice. This is a way to inject. Do you know what is injection globally? People have done that before, I think. If you are a Java developer, you should know that. So this is a way to get value from your framework. And something very interesting with Eclipse 4 is that when you inject something in a method or in a field, if this object has changed, after it will be re-injected automatically, you don't have to care with listeners. So the code is very small and very concise. That's very cool. So for instance, I'll give you a very common example in Eclipse 4 if you need to manage the selection in the UI. You select something in a tree. If you inject the current selection in your code, when the selection change, you will be notified automatically because you injected the value, the current selection, in your method. Your method will be recalled automatically. So that's very cool. So that's it for the part of architecture. So if it was a little bit technical, but I guess that there are some developers in the audience. And I cannot only show slides about marketing or communication. Something that maybe you don't know. If you write an RCP application, you can launch it on the web for free. You don't have to rewrite a new application with a web framework. It's very easy to do. If you have a RCP application, you will have your application that will depend on different bundles or plugins from Eclipse RCP. It's possible to change the library, the SWT library. This is the graphical library. And to put another library that will create a web server for free. Don't have to change the code for that. And instead of creating a display in this version, you will have a web server that will wait for HTTP requests that will display your application on the web for free. This is really, really powerful. The name is WAP. It's Remote Application Platform. So if you need to have an application that is used on a desktop and is used on the web, that can be a good solution. It avoids you to have two different developer teams, one for the web and one for the standard on application. That can be interesting. And if you have several, I would say, views to display remotely, that's really a good way. I've got some customers that use that every day. And for the customers, for the customers of my customers, they use that to manage cloud applications, for instance. And everything is written with WAP. That's very cool. So maybe these parts, so far we have seen some technical stuff. But I think it was interesting for you to know how it has been designed. So Eclipse is really, really well designed and very modular. So what I would like to show you now, and that would be the end of the talk, is about modeling projects. Modeling projects is probably one of the most common, I would say, projects that can be used by everyone. Whatever your business, you could create models. If you are creating satellites, if you are dealing with planes, or even on the bank, or even in communication, whatever you do, you need models. And you do models without knowing it, maybe. So what I would like to show you in these slides, it's how you can use that in two ways. You can have MDA. Maybe you know that it's model-driven application. It means that you use the model inside your one time in your application. When you use Eclipse, this is an MDA application because there was an application model that is used at runtime. But you can also use models in the way of MDD, it's model-driven development. It's a way to create tooling based on models. So the model will not appear in your one time, it's just used before to create your code. So of course, all the modeling projects are based on the RCP architecture. So it's really modular and you can do a lot of things with that. So don't be afraid of this slide, this one side of my training. It's to give the name of the different projects. I will not explain everything. But we have talked about RSI, RCP. And as you can see, there is a lot of different modeling projects that are based on this. And I will just explain you four parts of this. And you will probably find something interesting for you inside. So this is the common part. This is EMF, Eclipse Modeling Framework. So of course, you need to know this part if you want to make something with models. And after, if you need, you can select to create textual editors based on models, graphical editors. So you don't need to know all this stuff. Only this one will be used. And you can also generate code from the model. So you can define something. You can describe something and generate the code. When I say generate code, it's not only Java code. You can generate whatever you want. You can generate Node.js code. I don't know PHP code, C++ code, something that is textual. So that's very fun and very easy to do if you have a model. So what is EMF? EMF means Eclipse Modeling Framework. This is a component that will give you a new modeling language. The name is E-Core. So maybe you know UML. UML is a very huge modeling language with a lot of different diagrams that's complicated to manage. Sometimes the semantic is good for describing very complex system. But usually, you don't need to have to describe everything with UML. That's too, I would say, there is too many things inside. If you use E-Core, E-Core is basically the description of your classes. So the classes and how they are managed together, how they are bound together. So you have classes, attributes, references, and operations. So that's very easy. If you have already done the code in Java or in C++, in C++, you will know how to make an E-Core model. So that's very easy to do. And for an E-Core model, you will be able to generate the code in Java by default with EMF. So this is a very powerful framework. It's used maybe for more of, I would say, 15 years. It has been created in 2004, I think. And this is the earth of all different frameworks. This chart is very old. But it's still real. Because with this definition of EMF and the E-Core model, you can create a lot of different tooling around this. You can, for instance, transform the model into another model, UML to E-Core, E-Core to UML. You can create a text, a graphical framework, or something like this. So even if it's an old chart, it's still updated. So only two slides about this to understand how you can use models in your application. I will take an example of an airport or air traffic application. You need to make an air traffic application where you want to compute a route for a flight for a plane. And you want to be sure that if there was a problem in the plane, you can go on another airport, for instance. So to do that with Eclipse and with EMF, you will, of course, use the E-Core language. And with the E-Core editor, you will be able to create the meterminal of an airport. It means that will be your DSL, your domain-specific language. With the airport, you will say in the airport, well, an airport has maybe one way. It's oriented like this. The length of the one way is one or two kilometers. It's compliant with the A380. I don't know, whatever. You can say what you want about your metamodel, dedicated to compute air traffic routes. And then with EMF, you will have for free an airport editor. You will have a full compliant Eclipse editor that will allow you to create new airports. So we'll create the Singapore airport, the Bangkok airport, or whatever. And it's up to you to decide to put these models in your application or to create specific generators to generate some code that will be included in your application. If you need to manage a new feature in your application, for instance, you need to know if you can manage, for instance, very big planes. So you must add some information on your model.  And everything will be managed by the framework, by EMF. Of course, you will have to change in your code to take into account the new feature. But everything will be generated. You don't have to generate the code for the database or if you have specific generators, for instance, or for the code for the UI, maybe you can generate everything. So that's very cool. And the last slide about modeling, the modeling project is about the DSL. So depending on the domain, the domain where you define, if you have an e-core model, if you are in the e-core model, in the e-core domain, this is a model, but this is a metamodel in your DSL. So just to, often we speak about model and metamodel, it's not really clear. So this slide is, explain this. It depends on the model, on the domain, actually. So if you are in the modeling domain, you have a model, an e-core model, that would be the metamodel of your business. And of course, you can create your airport or your agency here. So that's maybe a little bit detailed, but anyway. So how can you use that? You have, for free, a free editor that will allow you to edit your models. So it comes for free in Eclipse. You can edit your model with e-core objects here and change the values in the properties. You can edit your model graphically. This is a serious editor. I will speak about it just after. You have a palette here on the right, and you can drag and drop elements of your model. So this is an e-core model in this case. But you will be able also to create a graphical model for your airport. That's possible. You can have here a palette with all your airport objects. That's an advantage of models and metamodals, because all the tooling is not dedicated only for e-core domain. The tooling is generic. So you can use whatever you want. You can create a bank model or communication model and have your graphical editor for that, if it's interesting for your domain. So when you have done your model and your metamodel, you can generate code. So this part is there are two main projects for that. So if you are always writing the same code for all the objects you have in your application, you should have a look on this. Because if you have maybe 20 different classes, and for each class, you need to create an interface, an implementation, the database connector, and I don't know the elastic search code and something else, you can generate this from a model. And you change only once, and you generate and everything will be compliant. So the big picture of the model to text transformation is just using a model and a metamodel, you can create modules or classes that will generate the files. So for instance, if you have a satellite that is composed of different systems, if you have 20 systems in your satellite, you will maybe generate 20 skeleton files regarding the code you need to create for a satellite. Of course, this is not a final application. It's only skeleton that will be used in your final application. But you can really stop to waste your time to write always the same boilerplate code that is really not interesting. Something that is interesting in software engineering is to model and to design the things and to understand how the world is and how you can put it in a software. It's not to write always the same stuff about GPA connectors or something like this. This is really not interesting. You should generate that. So for doing that, there are two projects. I will only speak about Extend. Extend is a new language that will use the model. And maybe it's the only slide with code. And with Extend, you have a specific notation def, and you can open three codes. And in the codes, you have the text that will be generated for this object, for instance, for the E-class. So maybe I can zoom on it. So in the background gray, it will be generated in the file. And then this code will generate one text for this E-class object, Instance. So if you have 20 E-class instances, you will generate 20 files. And you can write another template like this to write the interface code, or to write the PHP code, or to write your Node.js code. You change the E-class once. It will be generated in all the systems for all the languages. So I will not detail that. But just with a reminder of this name, Extend, or Axelio, Axelio is also a good product to do that. I don't have time to explain all the projects, but how can you use that? You can create your own meta model for your business. You are managing bank accounts with maybe money transfers between different banks. That can be designed with a model. And if you do that, you will have to produce code. So you can then create a model of this. You can create all the different instances of the banks that will be in your application, and maybe the different protocols of communication, and maybe the different rules that you have in your application. And so I say that for a bank, because I know that there are a lot of banks here, but you can do that for a satellite or any kind of system.   It's really expensive to make your writing code that is always the same. So it will be better to make you writing a generator. That's very fun, because you just write one template, and you generate 20 files. That's very cool. Very exciting. And you can, the boilerplate code will be generated for you. You change something in the model, you generate the code again. So the rule for that, you should ask this question. If I describe something more than once in several places, maybe I should describe only once in a model, and then propagate the modification with generators. So that can be a good question to do that. So to finish this presentation, maybe you need to have editors for your models. You are, for instance, using your application with the bank, and you have different banks and different communications. You want to have a graphical description for that, or you want to have a textual description for that, with, of course, a lot of helps that will help people to say, oh no, this bank cannot communicate with this one because there was a rule for that, and you must take care of that. So you will have two products for that, serious and text. So for graphical model editors, you can use serious, you can include this graphical editor in your application. You will be in an MBA approach, or you can put it in your tooling. Anyway, this is this part. So these are sub-projects, you don't care about it. This one is the most important, and with serious, without code generation, you will get in a few minutes, or maybe a few hours, yeah, few hours, you will get a way to say, in a graphical editor, usually you have nodes and links between the nodes. So you will be able to, with serious, to say this object in my model will be wandered or displayed with a node, or this object will be displayed with a link. So this is the goal of this file, this is an old design file that will, of course, this is bound to the metamodel, so you cannot say you must follow the metamodel, and in this example, for instance, they say that this is a family metamodel with a main woman, and with relationships between men and women, like father, mother, or something like this, or sister, and you can say that a man is wandered by a square, and a woman is wandered by a losange, and with different colors, and you can explain, you just describe what is your graphical editor. So actually, you are creating another model here. This is the model of your graphical editor, because there was a DSL behind the scene that is expecting some information to have a graphical editor like this. So you can say what is in the palette, there was nothing in this palette, but anyway, you can describe a lot of things. So that's very, this is, I think, a very good example of what you can do with DSLs. And whatever their business model, you can have exactly the same editor with your business elements. So this is serious, and the last slides are about x-text. So also, this is maybe a technology you don't know about it, and you will never think that you can create so easily a text editor. Do you know the Java editor in Eclipse? You have syntax alighting, you have content assist, you have quick fixes, you have awards, warnings, everything is included in the Java editor. But it has been written, everything has been written by hand in the GDT. The GDT is a project that managed this Java editor. It is not based on models. But now, if you have a mental model, you can, with x-text, you can create exactly the same editor than the Java editor, but with your keywords and with your DSL. It's done in this case in a few minutes. So this is this part of the description, and we'll finish on this. x-text is a language IDE framework. It will help you to connect token, text token, to something in your model. So when you write something, x-text will understand, oh yes, this keyword means that you are creating a bank account, for instance. Or you are creating a satellite. It will make the link between the two concepts. It's like for serious, serious you have a model object, the object in your model, and you have the representation. It's quite the same. So it will generate an editor for you, for free. And it's really easy to do on the x-text website. You can follow, you have a five minutes tutorial. Just have a look on this. You will see that it will open your eyes on what you can do, of some tooling that you will never think that you can do that. That's very, very powerful. And that was another biggest tutorial. If you are using IntelliJ, it's possible also to have a specific editor generated for IntelliJ. x-text is compliant with IntelliJ. For free, you will get syntax highlighting, content assist, quick fixes, error and warnings included in Eclipse. You will have also indexes. You will have templates. If you are, for instance, a new customer, you want to create a new customer in a text editor, you can have a template of customer with different templates for customers. For instance, a French customer, an English customer and US customers. With the text, that is expected for this kind of customer. Just doing control space and you get it. It's really, really easy to do. You have also outline. You know, this is the small view with the, to navigate in your editors. You can have course languages, course DSLs. For instance, you have a customer description in a text file and you have, I don't know, a bank account which is connected to the customer. It's possible to navigate between the files for free. Don't have to write code for doing that. It's also possible, I think, I don't remember, but I think it's possible also to have a web editor. So you can edit on the web with x-text. So, yes, it's Java like. So there was a description of the grammar. The grammar will describe the token you are expecting in the text and what it will create in your model. So for instance, in this one, there is a grammar rule customer. Sorry, I will zoom on it. A grammar rule customer that is expecting the customer keyword, then a brace and then the keyword first name. And if you enter a string after the first name keyword, it will feel the first name field in the model. So maybe it's a little tricky for you because you don't have seen grammar for the moment, but managing grammar, it takes one hour to understand what you can do with it. Just have a look on the tutorial. You will see that it's not very difficult and you can have a graphical representation. And when you generate your editor, you will get this. This is quite the same than the Java editor. You have keywords, entity, for instance, in this one property, they are highlighted. You have the auto-completion here, which provides a dynamic auto-completion depending on the name of the objects available in the file. You can have the quick outline here. You can have quick fixes. If you make a neural, you will get a quick fix and a neural defined and a quick fix that will be proposed. So that's very, very, very cool to have this. Usually, you think that it's not possible to make such an editor. It will take maybe weeks to do that with very low-level API. But with XText, to get this, it takes one hour. So that's very quick. And just this is the last slide. You can customize, of course, your editor. There is a very, very powerful generation framework that will generate code. And you can change this code with specific annotations. It's very cool. You just say, I want to check if a customer is valid or is OK. You just create a method with add check annotation, and you put the customer as a parameter. That's it. And then you can write the code for controlling your object. So it means that if you have the customer, you receive the customer. You can control if the customer name is compliant, with the naming rules, or if the address is OK. And you just have a check method that will be called automatically by XText. And if you remember, I said that the grammar is bound to the model. So when you start the customer keyword and you enter the name after, the check will be called and will check that the name is compliant with the rule. So you will get the error in your editor if it's not good. So it's really powerful. And if you make a model that is edited with a text, you can also bind your generator. We spoke about generator before. And the code generator can be bound to the save command. So when you save your file, you generate the code. It can be interesting in some cases for a customer, maybe not. Or maybe for the customer, you can generate the HTML page for your customer. Why not? So that's it for this talk. I hope it was not too boring for you. I tried to make it dynamic. I know that you had a big day today with your work. So maybe you could have a look after this talk or you can ask me a question. I put some flyers on my business card if you need to ask questions about this, how you could use that in your everyday work. Maybe you can build your own tooling to help you to generate your boilerplate code. You know that boilerplate code is usually containing a lot of errors because it's always the same code. And you just copy some code from another class and just say something. And maybe you will make some errors when you do that. You can also maybe try to think about OSGI. If you have Java code and you want to make it modular, if you do not use OSGI today, or if it's a new application, you can also have a look on Java 9. Of course, but that can be interesting. And you can have a look maybe on the groups, or you can have a look on how you could be involved in Eclipse. Maybe you have some things interesting to do. I know that the open source business model is quite strange for people because they say, how can you make money with free code? But if you analyze this model, it's really, really powerful because, of course, you will give free code, but you will also have commercial products based on your free code. That's the idea. And if you put free code on the web, if people is using it, of course, if nobody uses it, it's not interesting. But if people is using it, you will get feedback and you will get bugs fixed in your code. And of course, you need to have a critical mass of code to do that. But that can be a good way to make your product better and better every day. So you can have a look on Eclipse' website. You can have a look on the groups. You can open bugs on Eclipse. If you are using Eclipse every day and you find something that is wrong or something that you don't understand, you can open a bug on bug.cr. It's bug.eclipse.org. If you are interesting in contributing to Eclipse, it's not very, it's really interesting because the workflow to produce code is really, really powerful so you can become a committer or become just a contributor. You can attend Eclipse conferences. There is no Asia conference. No, is India in Asia? Yes, I think so. So there is now a conference in Bangalore. There will be one in July or yes, I think in July this year. And you can, or you can create your tooling or whatever. So I hope that the goals have been reached for that. So if you want to learn that, you have of course the website, the Vogela website. Maybe you have seen already this, if you saw something on Eclipse, you always go to the Vogela website. So this is the last Vogela website. This is a German guy. You can buy an Eclipse book if you want or you can contact me or you can ask me for the slides if you need to remind of the names of the products. Just send me an email. You have my business card here. I can send you the PDF file or we can put it on the meter, but I will do that tonight. Okay, so thank you. I have checked that not a lot of people have slept during this talk, only one. I will not say no to. So I don't know if you have any questions, maybe a public question or a private question after. It's up to you. I don't know. Just a quick question. Yeah? Okay. I'm sorry, maybe I didn't mean to say it, but there are a plan for a few weeks to move to Jigsaw while Shabana... Oh, I don't know because waiting that Jigsaw is finished, first of all. But probably, yes, I think in the next version, they will change the manifest format and they will say that the manifest now is a module because in Jigsaw it is a module. So there are specific syntax, which is Java compliant. So in this case, that would be natural to migrate to Jigsaw, but not today. I don't know if there are plans, but... Do you know if OSGI is meant to exist once Jigsaw will be out? I don't know. I think there are some features in Jigsaw that exist in OSGI and that do not exist in Jigsaw. For instance, I don't remember that in Jigsaw you can filter class paths, you can export packages of bundles in OSGI. Any Jigsaw, I haven't seen that. So that's maybe more... It's more accurate in OSGI for the moment, but I don't know. I think it will be done in the next, I would say in the next two years if they do something. But it will be transparent for users, like Eclipse 3 and Eclipse 4 version. It has been transparent. You have not seen that you have a model oriented and an MDA IDE now. You didn't see that. It's inside the software. Maybe I have a question? So I just want to understand that you've been mentioning about this business model of how Eclipse makes money. Yeah. I know it's a good source. But supposedly a person becomes an Eclipse converter. So how will he proceed? Supposedly he wants to become a full-time sort of Eclipse totally focused on Eclipse. So is there a way that he will be able to get some compensation on that also? Yeah. That was in the Eclipse Foundation. Now there is a contribution. The name is Friend of Eclipse. So there are a lot of people that give money to the Eclipse Foundation. This is also a source of revenue for Eclipse Foundation. And this money is dedicated to developers, so for committers. So it's not the committers that decide to say, OK, I will fix this bug and I will get money. It's not the workflow. The workflow is that the Eclipse Foundation will identify some major problem in Eclipse or something that they want to fix. And they open a proposal and committers can say, OK, I will take it and they will get money for that. And there are ways funds like with the Eclipse friends. So if you go on the eclipse.org, there was a friend of Eclipse. And there are a lot of people that are giving money for eclipse. You can give $5 or $10 or some people give a lot, a lot of money, $1,000, for instance. So that's a way also to make money with eclipse if you are a committer. So I'm a committer. I do not use this system because I try to fix more bugs that are in the scope of my business. So for my training, when I see something that is painful in the training, I will fix the bug. And I will make the tooling better, for instance, for Eclipse 4, for instance. I'm a committer on Eclipse 4 and platform UI. So for instance, I provide new bugs on how to use Eclipse easily to create new plugins, for instance, that are with new templates, for instance, that follow exactly the rules we are expecting. Like for example, as you would see, the architecture of E3 versus E4 is a totally different architecture than we are. Like a compatibility layer of a workbench, two workbenches, supporting each other, supporting the legacy also. So in this case, coming up with a new architecture and things like that, there need to be a core thing. Because if you have 1,400 core parameters as a sort of figure, it is very difficult. So how does this, the things work? Proposing a new architecture is totally different. So what you mean is, how can we deal with migration? That's what you mean. So there are several ways to migrate your application. The first step to migrate an application is just to change the target platform. It means that, rather than having your code running on Eclipse 3, you just change, you put Eclipse 4, you don't change your code and you want it. It's not a... This thing I have done actually. Yeah, okay. What I was trying to say is, what I'm trying to say is there a core team also of Eclipse which does this, some four or five people, one they come up with the proposal and they're okay.  Because coming up with a new architecture, how these guys, Eclipse comes up with a new architecture and then you have 1,400 committers committing to the code every day. Yeah. So how's the process of working works? How's the process of working on Eclipse? You mean, your question is also is the new code committed in Eclipse for a way? Is what you mean? Or I don't exactly understand your question, excuse me. For example, there will be an architecture for Eclipse, architect for an Eclipse, right? Eclipse, sorry. So coming up with a new architecture for the newer version of Eclipse, right? How has this process been done? Or what is the process followed to come up with a new architecture for Eclipse? You may be aware about the history of how E4 came into the picture, right? You mean how did they change the architecture? Yeah, okay. So in Eclipse, in the foundation, in the Eclipse Foundation, there are architecture conceals and actually architectural meeting and there are some committers that are involved in this. So it has been done four years ago. So it has been done a long time ago. Something, an interesting point about this, maybe, is that when they created the Eclipse 3 architecture, it was really an IBM concept or IBM team that was involved in this one. For Eclipse 4, it has been more, not individual, but small companies that wanted to make it better because IBM, they spend a lot of money on the Eclipse 3 architecture and they want to have a return on invest on this architecture because they build commercial products on this architecture. So on the Eclipse 3 architecture. On the Eclipse 4, they have been involved for the one time. So the one time, because the IDE is running on the Eclipse 4 one time. So they have been involved with this, so there have been a lot of meetings for that, but it has been done four years ago. And, but they didn't write a lot of documentation. So they didn't write a lot of tooling. So the tooling is more done by individual people like Lars Vogelmi or guys from Italy or from Austria or from maybe Canada. But it's not a main goal of the foundation today to make tooling on Eclipse 4. So if you have a poor tooling on Eclipse 4, it's our fault of me, for instance, as a committer because I don't spend enough time for that on also of other committers. But now the foundation, yes? Committers for Eclipse, people for a page like IBM or... Yes, but it's not in the scope of, they have enough stuff in Eclipse to make their business. So they don't need to have more tooling. If you want to have more tooling, you can do it. I propose to have, I propose to change some stuff in Eclipse 4 some time ago as they said, okay, you can do it. Yeah, but I don't have time. I do not have time, so. So this is the open source also, open source community. This is a specific, it's not like a project workflow that you can have in your company. When you are in your company, you create bugs and you say these bugs are very important, you must make them. So in Eclipse, of course, there are bugs. There is also kind of, there is a very precise world map with milestones between two dunes, between neon and oxygen. There was one year and there would be nine milestones with some stuff that would be fixed. But it's not, it's open source. So it depends on who is there at the moment, I would say. That's my feedback. So if you decide, for instance, I went to Hamburg in Germany at the end of December with Lars Vogel and he organized the Nakaton to fix bugs in Eclipse. So we decided what we wanted to fix. So it was up to us to select the bugs. So there was not exactly a very precise workflow. That can make people not very confident with this one map, but it works because when there was a big bug, it's fixed anyway because the foundation will react. But if it's only minor bugs, say let the community take it. You will see that there are bugs. I think there are more than 500,000 bugs in the bugs here, but maybe the bug number, I would say something maybe false, but maybe the bug 150,000 is not fixed yet. Maybe, because nobody cares about it. So this is an open source. So it's also an advantage because if you find a bug, you can report the bug and you can say this is very important that you can make people involved in this bug and contribute and add comment. So that's very interesting. It's different than a commercial product. Commercial product for me is not really safe because if you find a bug, if you are a customer, you find a bug, you will maybe have to pay a lot to get the fix or maybe you will be never fixed because it's not in the one map. So in open source community, that more open is open. Yes, open source. So maybe I have other questions. No, it's okay. So you have three doings. So thank you for attending. If you are interested in this technology, I've put some flyers in my business cards and some pen if you want one. And of course I will stay wide for your question if you have any question about this. Thank you. How long was it? One hour?


This is the larger version of what we're going for, isn't it? You, it's delicious. Little does he know.  Coming up this season on DebtMeat, I'll be chasing critters from Buenos Aires, Argentina to Paisandu, Uruguay. Stag, Golden Dorado, pigeons, Axis deer, and more doves than I've seen in my life. I've learned a few things. I'm not going to out-shoot Kevin. This is going to be an exceptional season of DebtMeat, and we'll see you in December.  Don't come. I think it's good that if you're going to have diarrhea, that you've got somebody else to share the experience with you.


The superintendent for the Staples-Montley School District has resigned. Mary Clam turned in her resignation at last night's Staples-Montley District School Board meeting. Sources within the district tell us the resignation, which is effective June 30th, came unexpectedly. The district posted a message on its Facebook page today, confirming the resignation and saying that the school board and current administration will continue to work together closely during this time of transition and the hiring process for a new superintendent. Efforts to reach Clam for comment have been unsuccessful so far, but in an email to district staff, she included a resignation letter which said, quote, it has been an honor and privilege to work with the Staples-Montley staff. She did not give a reason for why she is resigning. Clam was hired in July of 2015 as superintendent for the Staples-Montley School District. Prior to that, she served as superintendent for the Monaga School District. If you've enjoyed this segment of Lakeland News, please consider making a tax-deductible contribution to Lakeland Public Television.


Hello and welcome to our one-year update on the Meet a Mentor program at Plutine Village. I'm Miteki, so I'm going to be talking about what's been going on with the program for the last year, and we're also going to have a couple interviews with Mentor-Mentee pairs who are willing to share their experiences with us. So you're probably wondering what this program is if you weren't with us last year. We started this program around DEF CON last year, and we wanted to help our mentees achieve their goals by matching them with mentors and give mentors a chance to broaden their own perspectives and also develop some skills. So the program works by a three to six month long mentor mentee matching. This is actually done via Python script based on options that people check off in an intake form. So a little bit of human interaction there. We always tried to review and think about pairs that would make sense. But generally speaking, we let people's interests speak for themselves. So we have an active Discord community. We have a public channel that you might have seen if you're on the Plutine Village Discord. And we also have a number of private text and voice channels as well just for kind of have this closed private community. So we have monthly meetups with panel discussions, rounds of lightning talks that both mentors and mentees can participate in, as well as happy hours, Plutine Village content and much more under development. So one thing that comes up when we talk about mentoring is what it is and what it isn't. The most important thing for us to focus on is the idea of a mentor being someone that gives guidance and advice, shares experiences, but isn't necessarily someone who is there for technical tutoring. And that's one thing that even the panel discussions we try to focus on is sharing how to do something in terms of how to learn it and how to develop skills and things like that rather than just how to build actual technical skills. And it's also important to stress that mentoring is a bidirectional relationship. So there's give and take both parties have responsibilities or have responsibility for timing, for participating, for doing work. And also both can learn from each other. It's not just the mentee always learning from the mentor. So we gathered some really interesting statistics at the start of the program. And that is, I think that the thing that stands out to me most is that the things that people want to learn are the things that others have learned and are willing to help others learn. So we have this confidence and technical skill acquisition. Those are things that our mentors have learned and are trying to help others learn. And that's a great match. This basically means that when we run this algorithm for matching that it's actually going to match quite a number of people. It's pretty cool. In terms of technical interests, it's really, really hard sometimes to match these things. And we try not to depend on that too much for the actual strength of a match, but it's always nice to have some common interests. And luckily those top two DFIRs kind of skills and, you know, SIM and logging stuff, as well as the threat hunting and intelligence are two kind of common things that pop up a lot. And then for career level, it's also an interesting spread as well. Probably little unsurprising to people that most of the people looking for mentors are actually early in their career or still in university. And most of the mentors are mid-late career and primarily in infosec roles. So I'm going to share just a couple of lessons learned before we moved on to the interviews. And first one of this is anyone can be a mentor and a mentee. So like I said, you know, this is this is not a one directional relationship. You know, a lot of times people just want to have another perspective. And, you know, when they ask, you know, another when I ask a mentor for a perspective, that mentor can also learn from that as well and rethink something that they thought they, you know, understood well before. But getting that fresh perspective is really beneficial for both parties. You know, and even mentors that have been in their career for 10 years can learn something from someone else who's just entering the job market. And that might have changed in, you know, in the time since the mentor was that entering the job market at that level. So really interesting bunch of experiences there that our participants have shared.  So that's something we like to see. And the next one. Wow, this this is a really important one for me personally, it takes a village to run this program. And it's, it's something that takes a lot of work if you want to do it right. So important lesson for everyone in life, myself, all the mentors on the mentees is to learn to ask for help. And, you know, there are always people that will be there to support you if you just ask for it. And also, you know, we've, we've benefited from a number of people who stepped into develop the program, and also the people that continually participate in it. And that there's so many different ways to participate. Some people are really great at thinking up ideas and thinking broader perspective longer term bigger picture. And then there are other people that are just absolute goal to rely on to just get the work done, like you give them a task and it's going to get done. And I think one thing I really learned to this program is that you need both types of people to really make a program like this work. And then the last one out of this is, you know, the community supports itself. I've watched this community over the last year and I think one of the things that really stood out to me is that, you know, someone asked a question. And then someone answers it and everyone else kind of like takes that and, and really digs into it. So we have some really fantastic interactions including like, you know, a mentee talking about a job offer and then other people sharing the perspective on it. For example, you know, there was someone was sharing some contractual issues with a with a with a job offer that they were a little hesitant about, and then they got that support from the community to say, yeah, this doesn't look like the good idea.  And that kind of that kind of interaction pays forward to further interactions where people feel comfortable to share their own questions. Really amazing to see that. And in the end, the work is totally worth it. There are times when it's been a really exhausting kind of experience to to run meetups every month and to to try to put together aspects of the program.  But looking back on it, you know, everyone that I've talked to has had some kind of benefit from this relationship and that, you know, that's gold right there. It's not even just mentor mentee pairs but also just the support the community is really beneficial for people that may not have another community locally that they can fall back on. You know, and the connections that you make will keep on giving back. And, you know, it's not just job offers and networking but also just just friendships. No, it's always really cool to see the last bit that I have to remind myself of is that there is always more work to do, but it's important to also sit back and kind of reflect on on everything that we've done so far. That's really hard to do when I know how much I want to do. But just looking at what we've accomplished in a year is is really something special and valuable. So with that, I'm actually going to hand over to the interview side of this and we're going to have some mentors and mentees share their experiences with us. So we are here with Selenia and Niko, who are one of the most active pairs I've encountered here in this program. So welcome. I'm going to throw a couple questions out because I think, you know, I've, I'm always a little interested in kind of how how these matches have worked out just kind of made by an algorithm. But I like to hear about the human relationships a bit. So I'm going to start directing question at Niko and this one is how has the mentor program helped you in your own career and professional or personal growth. I think it has helped me reinforce all the things I've learned in security. And it's given me an opportunity to share those back with the community and allowed me to continue to grow my knowledge and gain something out of it. So there were plenty of folks to help me and I'm glad to help somebody else out. Awesome. And you were on a panel too, right? Yes. Was that a fun experience? It was my first experience and I did enjoy it. Nice. Very cool. Very cool. And then for Selenia, what was one goal or growth area you had that your mentor helped you with the most and how did they help? Yeah, sure. Niko's really big on goal setting. And at the time I was not. And in fact, once we started talking kind of with initial conversations after we'd been paired up, I realized, oh, wow, this is really not only like mentally stressful, so professionally disadvantageous to me because let's say everyone else has a good goal in mind for either, it can be whatever you'd like, but let's say for a job that you'd like to have in the future, say as a pen tester. Since I don't have that, it's so much more difficult for me to not only answer interview questions like where do you want to be in three to five years, which I can't answer because I don't know. And to strategize and help me help myself and have others help me. So it's been a wonderful experience working with Niko to kind of set some of those goals and become more grounded in goal oriented, goal oriented approach to career growth. Nice. Yeah, it's kind of interesting because I've seen like a lot of different pairs either have a very cavalier just conversational approach to things. And some are a little bit more formal like kind of following a plan and helping set goals. So it's always interesting to hear who does it which way. And the next one I have access for both of you. Was there anything you got out of the program that you didn't expect. I'll start with Niko. I think just given everything that's happened over the last year, I should say with coven everything else. It was nice to have another person to connect to that had those interests and passions and that want to continue to grow. It's definitely, you know, something lacking for me because a lot of the folks that I tend to work with or I'm around or, you know, they've been around for a while and so it's, you know, necessarily want to, you know, poke and prod but you want to, you know, get more information and learn more and stuff like that so. And it's just also, again, continue to help push me to grow. Things that I didn't know, especially if there was a question it's like, you know what, I don't know that but let me figure that out. So, one of those things. Nice. Selenia. I'm speaking experience a couple of times actually. I'd always I've always been a lurker, like if you look at my Reddit account, it's like zero comments but has existed for a decade. Because kind of, that's my default right is to choose to stay involved at the periphery of things. Until recently, where I realized again I'm kind of doing a disservice not only to myself but to my peers and colleagues and to those who will come after us by not being more involved. And so I decided as a goal to myself a little less formal to take some baby steps outside of my comfort zone and to start putting myself out there a little bit more. And there were a couple of volunteering opportunities that actually came up some with Blue Team Village and one with the Diana initiative that I kind of jumped on, despite my previous context. And those ended up quickly evolving from, hey, we could use some help organizing this meeting to, hey, there's an opportunity to be a kind of a panel speaker, or a brief presenter at a monthly meetup would you like to. Yes. And I'm modestly confident in my public speaking skills, but I'm quite bad at taking that first step and getting over like the fear hump, or breaking out of my shell however you'd like to say it so I'm really glad that the mentorship program has kind of kickstarted me into being a bit more engaged, engaged full with the community a bit more engaged with my peers. That's awesome.  So the last question I have. This is again for both of you and I'll start with Nico, and that's one major takeaway, or what is one major takeaway from this mentoring experience that you'd like to share with others. The biggest thing I would have to say is that you don't have to go it alone.  So, I know, few years back, I was seeking help I was trying to figure out how do you break into analyst work and things like that. I wasn't getting a whole lot of answers so definitely this program is helped with me being able to give that back to somebody else, and hopefully be there to help answer some questions or help throw some guidance somewhere. Awesome. Selenia. That was my point as well actually was that I've been so pleasantly surprised about how warm and supportive and advocate of people in the security space are. You know, while I think that for a mentee mentor relationship, the mentee should really take some proactive steps to kind of be the lead in that relationship. It's a little bit of you get out of it what you put into it. That being said, I completely agree with Nico and that not only are you more than welcome here. We have a really hard tough road ahead of us and could really use your help. So, as people start looking for next steps or trying to break into the space, or into different roles or evolve their careers in different way, I think that we can all, you know, take baby steps like I've done and like Nico sounds like have done during this relationship to break out of our comfort zones a little bit and tap that collective network and engaging with the broader community like we've spoken about. So, I, not only do I think that you'll be a little bit surprised about what you find, but I think you'll also be surprised about what you can offer and contribute back. That's definitely a point I always try to make. Well, thank you very much for your time really appreciated. And I'm just really happy that this has worked out and it's been a positive experience for everyone involved. So, thank you very much. Thank you. I am joined by scooby and Danny dev. And I think scooby is one of our core mentors and been with the program since we first started thinking of it. And I think I've seen Danny devs name pop up quite a bit from the very beginning. So, really awesome to have frequent flyer people here. I'm going to start with question for scooby and this one is, how has the mentor program helped you in your own career and professional or personal growth. I think it's mainly personal more than career and at that point because I was already doing some mentoring also at my job with professional life. And meeting those people with very different backgrounds and currently have three different mentees and Danny is the latest addition to the to the crew. But but as people from pretty much around the world. Danny is in the empty. I have people in Europe and one in the United States. So it really opens up sort of very different type of work compared to what I used to do before where I was mainly working with with people just in my local community. Right. So now I can start to understand how works work outside of Canada. So and I have I have some some now where I work I have some some people that are also Spanish background. So working with Danny also kind of helped me understand better how these people I don't want to see these people think with everybody but but I you can you understand what I mean that there's still a little there's a I don't know the right word in English but there's some some behaviors that that some people in some different country have and sometimes it's it's more it's easier for me to ask Danny for for his opinion than someone I work with on a daily basis, not where their feelings and stuff like that so that's definitely something that is present and and that helped me, maybe that's that's a pregnancy I said nothing professionally but I just said something. I think that's a really great point and I think one of the things that that I've really gotten out of this program to is just when I look and see how many different people we have participating from so many different countries cultures and backgrounds it's. It's really amazing and I mean you know we've been stuck in a pandemic where we can't travel so much so it's kind of a nice opportunity to have some some cross country across cultural connections without needing to fly anywhere. And I was a very added traveler before that so being stuck here for that long is is really hard. Hopefully, maybe next year. So the next question is going to be for for Danny. And this one is what was one goal or growth area that your mentor helped you with the most and in what way. Oh, one of the goals or the way scoby helped me was in management side. Once I entered to this mentoring program I was just an analyst, and if our first session, I was promoted to a manager. So, one of the key parts in this in this conversation in this session with with the scoby was management. This was fairly new for me, manage one team, manage people, you know, because I always focus focus in myself on resolving problems with solving with handling with computer that would. So scoby helped me in that part looking the looking from from another perspective, looking at things from another perspective on how to manage a team and resolve that particular particular problem. Yeah. That's awesome. Congratulations on the promotion to. Thank you. So the next question, she's got the last one to know we're a little short on time. I'm going to direct this one back to scoby to start and I'll come back to Danny as well. And this one is what was one major takeaway from this mentoring experience you'd like to share with others. I know as Danny asked some questions and we're very similar roles right now. It really makes me see the parallels of what I'm doing so by him asking questions that I might not have asked myself. Sometimes it makes me to reflect on some things and sometimes find solutions or find the things that that I need to improve where I work where I didn't even know they needed to be improved. Right because he sees it in his own ways and he has his own challenge and sometimes they relate almost one for one and I just didn't realize with all the other things that that that we have to do that. What I'm trying to figure out is actually something that I should start being like caring about as well and implement where I work. So it's it's really a two way relationship, I think. No, that's great. And Danny. As I said before, looking the problem from another perspective now that I'm working with the stakeholders and more from management point of view, I need to, to one of the things that I learned I need to see the problems from another perspective. See what's not the stakeholders where they are what what what are their needs, not only focusing in the technical part, but what the stakeholder needs so those are one that that's at least for the past sessions. That's my take away from this, and it's helping me a lot as well the team to grow in the company that I am now. No, that's awesome. It's really, I mean, I think from the start it really stuck out to me that for a lot of people this is a, it's a two way relationship. You know mentor doesn't just just mentor for the sake of helping the mentee but also to develop themselves and that's, that's become very clear through all the interviews I've had in just the past year of interaction with people. So thank you very much for your time. It's really appreciated and I'm glad that you've gotten to share your experience with everyone else. Thank you. See you then. Thank you, thank you everyone. Right, so now we're here joined by Ali and and her mentee serial killer. So I'm going to actually kick off with a question for Ali. And I'm really excited to hear the answer to this one. And that is what motivated you to become a mentor. Well, I actually was asked by one of the folks to join as a court mentor. And I was so excited and so honored to be asked, especially seeing as I don't have a traditional, you know, technical background I have more of a business type of experience to lend to the program. So I was really surprised and I was so honored. And I absolutely like said yes, without even hesitating or thinking about my other obligations. I said yes to sound so awesome. And I knew that I was going to give it my all for whatever that required of me just because I really believe in the mentor mentee type of structure and really how much that is needed especially in this industry. Right, so for serial killer. What were your goals and hopes for the mentoring experience when you signed up for it. I think my goals overall was just to have a better connection to the Infasa community. Like I'm not really that much involved or I haven't been in the past and it's something that I wanted to do to progress and make her and to help out inside the community. And so on that note serial killer I'm going to ask you what was one goal that your mentor helped you with the most during during this process and how did they help you. I think my one goal was to be more outwardly focused and to become a better communicator so that I could provide some sort of input into the Infasa community and Ali has definitely helped me lift up my confidence because I suffered a lot from imposter syndrome. Yeah, that's definitely something that comes up quite a lot and I think we've had probably like five or six panel discussions where that has come up at this point so definitely a common theme and I'm sure a lot of people watching are going to be able to relate to that one. So Ali, did you have a structure for mentoring or were you like more go with the flow like how did you approach this. I guess in the very beginning gosh it's been several months now so thinking back to the very beginning. I really wanted to really just maximize the time in the process with my mentee. And at first I was like okay I need some type of like structure so that we can sort of get down who we are how are we communicating through what channels throughout mediums, the frequency of our communications, and then also sort of like the goals and and the real next because I just wanted to really do the best that I could do to actually help someone, not just kind of, you know, I don't know sort of glaze over things but really really help them. And after talking with my mentee it was pretty clear that I could definitely be their cheerleader and help them with their goals and so I guess in the beginning it was a little bit more structured. Hopefully not to any detriment, but I think that was good for the beginning to really sort of kick things off because we were strangers you know we literally never knew each other before. Although it sounds like we were actually in at least one of the same rooms at DEF CON in 2019 which is funny we didn't even know it. Anyway, so it was definitely more structured in the beginning I made this worksheet that kind of laid out the goals and the next steps and sort of like that you do who's doing what because not everything was on my mentee you know I did a lot of stuff to to help them in terms of like research reminders etc so it was nice to have everything laid out and like when is the next time we're meeting, you know what channel is that and I think that was good and then eventually we got into a very natural flow where, you know, we meet every Sunday at four o'clock eastern and like that's just our thing. And that was really cool because it's like a nice set set meeting that we both have to know. Okay we have this time to check in so it is still somewhat structured but it's honestly kind of I would say more go with the flow. That's awesome. It's funny because we actually still use that template and you're kind of have to provide the kind of a blank version of it and it's really helped a lot of people solidify goals, which is something that we try to emphasize for people like mentoring should have some amount of like, you know, it's a goal oriented type of relationship that eventually settles out into friendship, which is definitely an upside to program connecting people that wouldn't have connected otherwise. Or maybe they would. I don't know. Definitely. Cool. Well, thank you for that. And then last question I have going to direct both of you and I'll start with serial killer and that is what is one major takeaway from this experience that that you would like to share with others watching. The biggest thing for me at least was to, if you're looking to get help, it's okay to ask for help. Like, that was my, like, I was very nervous when I first signed up for the mentor program, because I'm not one to ask for help almost ever. And that was stopping me from doing a lot of things that I wanted to do. I am sure that that resonates with a lot of people, myself included. And then I'll direct the same question to Ali to close it out. Gosh, it's funny because for as much as I felt I was sort of giving to my mentees knowledge and things to think about and things to work on, etc. You know, they also really taught me a lot of things too in the process seriously. And not that I was shocked by that by any means, but I guess there were even things that we would talk through that would make me think about, you know, how does this apply maybe in my life, right. And so I guess the biggest thing that I learned through this experience is honestly just all of the things that that go into this relationship and this process and these goals is something that like I actually want to reflect on myself as well. And that was, I guess, a little bit surprising just that I had actually some stuff to think about once it was prompted. So in a way, my mentee also kind of mentored me. And I love that. That's a really great way to put it. I definitely share that experience too. Well, we're out of time, but thank you so much for your time. It's really appreciated and I love hearing everyone's perspectives on this. So really, again, really appreciate it. Thank you guys so much. Thank you. So I wanted to drop a thank you for all of the core mentors who have developed this program. And I've helped run it for the last year. Tall Wireless, Stax, Plug, Hayley Hansen, Litmus. Oh, Montague, that's me. No hack me. Packets, Cuisines, Rando, Rubik's and Scooby. And a huge thank you to all of our amazing mentors and mentees. I mean, you know, this program wouldn't be complete without the people that actually participate in it. So huge thanks to all of you. You're all amazing. And I can't wait to see what we do in the next year. To the Booty Village staff and all of our sponsors for helping make this happen as well. And then, of course, a huge thanks to our interviewees for sharing their experiences today. And of course, a very special shout out to Kim for the recording and video. You're awesome. Thank you so much. I would not have been able to deal with all the AV on my own. So much appreciated. And the last thing, please, if you're interested in becoming a mentor, we absolutely need way more mentors. And of course, if you're interested in being a mentee as well, we do have a space for you as well. So please visit the links and feel free to drop any questions in the Blue Teen Village Discord channel. It is the need a mentor public channel. And thank you for watching.