 So first we'll start with a show of hands. Who here has heard about DevMetrics or metrics.dev.net already? Wow, that's a lot more than I thought. So about DevMetrics, the first question you probably have is, what is DevMetrics? DevMetrics is a software-powering metrics.dev.net. It is an interface for adding new metrics. There are two types of metrics. Pull metrics run as a script locally on the DevMetrics server. They pull data from some source. Push metrics run on some remote server and send data to the DevMetrics server via HTTP post request. Metrics are defined by a manifest file. The manifest file contains all sorts of data about a metric. To add a new metric, you should submit a patch to me or the QA mailing list. The patch should add a manifest file and also a pull script if the metric is a pull metric. DevMetrics is also a web interface for viewing graphs and tables. The graphs and tables are dynamic through the use of JavaScript. The graphs can be overlaid and the tables can be sorted ascending or descending by each column. If the JavaScript is disabled, static map hotlip graphs are used along with static tables. If JavaScript is enabled, the graphs can be overlaid and the tables can be sorted ascending and descending by each column. Why DevMetrics? DevMetrics provides a universal interface to metrics. This is useful because statistics are scattered all over the place. A universal interface allows metrics to be compared in ways that are not possible if the metrics are scattered. A universal interface also makes backing up data easier because there is a single location to backup data from. These are the technologies that DevMetrics uses. You can read the list yourself. JQuery plugins. JQuery UI is used by dynamic interface for some UI elements. A number of JQuery plugins are used by Flot. Hidden graphs and Flots used to generate the dynamic graphs. Hidden graphs is used to show hide the series on the graph. Time allows your time to be plotted on the x-axis. Tooltip allows for displaying the data related to the point when the user mouse is over a point on the graph. SuperLegends is a plugin that I wrote. It allows multiple metrics to be added to the graph while placing a heading for each metric in the legend to keep the series that belong to each metric separate from the rest. You can see in the picture the red X's that let you delete the metrics and the labels listing the metric names that are added by that plugin. The current metrics. This is the list of the current metrics that are available at metrics.wm.net. If you keep listening, you will find out how to add your own metric. Hacking on DevMetrics. This is how you hack on DevMetrics. I am going to skip over that. How to add a new metric. You need to add a manifest file to the manifest directory. If the metric is a pull metric, you should add a pull script to the pull script directory. If the metric is a push metric, you should add a push script to the remote server. You add a cron job to the server to run the script every so often. You can also add a custom graph script to the graph script directory if you wish, but it is optional. The graph script allows you to make a graph other than the vault time series graph. At this time, the custom graph scripts are not supported. What I mean by that is they won't display in the web interface. This is an example manifest file. The manifest always starts off with script one. Originally, I planned for more than one script for manifest, so that is why there is a one. The type is push or pull. Freak is the frequency to run the script at. It is in a crontab format. Script is the location of the pull script to run. Right now, it does not work, so you have to make the name of the pull script and the manifest match. Fields are the name and type of each field in the database. The names must be valid Python names. You don't need to include TS because TS is automatically added unless the override TS is true. What TS is, is its time series. Format is the format in which data is returned by the script. Leap before insert being true means that data is deleted from the database before each time new data is inserted. Graph type determines what type of graph is generated. Right now, it is just a folder custom. The fault being a time series line graph and custom being the graph script and the graph script directory. Description is just a description that gets displayed in the web interface. This is an example script. You can read through that. It just writes data to sys.standard out. It writes the headers first. Then it writes the actual data. We have a to-do list there. These are a list of some of the items that we have to do still. The make portable demable to-do item means that we want to make the portable demable so that you could replace the like the WM logo with your own logo so that other organizations can use this too. To contact us, use WMQA mailing list or WMQA on OFTC. Now I'm going to show you that metrics. This is what you see when you first open up the Demmetrix website. It's the static interface. It lists the metrics, the description of the metrics. So if I click on one like VCS, that provides statistics on the number of packages using each version control system. So you see a graph here. Then there's the download CSV link that lets you play around with the data. Then there's all the data in the table. Finally, there's some statistics, meaning standard deviation, min, max. If we go up here, click on dynamic. This is the dynamic interface. It's like something like VCS, add metric to graph. It displays a graph and it lets you mouse over and see the data points. Show metric in table, displays a table. That's about it. Any questions? Yep. How much resources can you take care of? Are you expecting a new metric to be collected? Something that's already in more or less table format? Is it viable to go and do the analysis with a script that you write? Would it be okay for a script to take an extended period of time to run? Is there a working area that will process some data as it comes in? No, there's no working area. As far as time, I'm not really sure. That's the difference between push and pull. I have an application which would need to be a pull. It's pull and push with constructed infrastructure. It's something very easy to compute. They give that the infrastructure running the metrics will do the computation. It's something which is very resource-intensive to compute. You will do that elsewhere and just push the results to the metric infrastructure. I need an elsewhere. That's not the solution you're looking for. Actually, in the Debian community, we already have plenty of statistics that already have those elsewhere. We just wanted to have a single place where to centralize the data. That's a kind of a different problem. In the script you showed us, you had time property. It was zero, zero, asterisk, asterisk. What does that exactly mean? Zero, zero, asterisk. There it is. That's just quantum format. It means that it's going to run every day. You're going to let the person who writes the script decides this? Yes. They decided by playing it in the manifest, whatever. Why are five numbers there? It's quantum format. I see. For example, if I want to add a new deb metric, I'm currently porting from Ubuntu the review and rating server for packages. It's just ratings for packages, five stars, stuff like that. Can I integrate it with this? If it's Ubuntu, that wouldn't be part of that metric. No, I'm porting from Ubuntu to Debian with Debian specific. If it's Debian metrics, then you could add that to the metrics.debian.net website. You can certainly add that. What's the process to upload a new deb metrics? Do you need to accept it into the project, or anyone can add their own deb metrics? I think it's if you're a Debian developer. If you're a Debian developer, you could add your own by committing to the QA repository. I understand. Thanks. Are there any more questions? Thank you very much, Joseph. The next presentation will be by Juliana on WebRTC. All right. Did I put this on? Any help here? I'm not sure if it stays on. I don't think I'm putting it on right, but okay. I think that's good. Okay, just a second. All right. My work on Google Summer of Code 2014 was developing the Debian WebRTC portal. Before I start, just a sort of preface, I'd like to ask anyone who would like to demo the portal, JSCommunicator, at rtc.debian.org. Basically anyone with an rtc.debian.org account can demo this. However, your passwords may have been changed recently. If you haven't updated them since January, if you access db.debian.org, you should change your password. It'll take like 30 seconds. This is if you want to go ahead and start checking it out during my presentation. That said, so is everyone here familiar with what WebRTC is? More or less? All right. Well, WebRTC enables browsers to perform real-time communication using a very simple JavaScript API. What's cool about this, about this browser-to-browser communication, one, is that it's really high performance, low latency. And also, it's a lot safer because you don't need to install anything. You don't need to use a plugin, download anything. And by standard, it uses the secure real-time transportation protocol. Have you seen it being heralded as the most secure alternative for voice over IP? Yes? Are you talking about speech? Yes. Okay, thank you. All right. Well, that's a very high-level explanation of what WebRTC is being used for. So JS Communicator is what I've been working on. It's a web app that's used for SIP communication. It's developed entirely in HTML5 and JavaScript. And we use the JS SIP stack. So JS SIP is a JavaScript library that implements the SIP WebSocket transport. So to use JS Communicator, you're going to need a server with a SIP proxy that supports WebSocket transportation. An example of this, not here, is Camellio, also Reciprocate, which is very easy to install in any Debian system. So JS Communicator, right now, it's being used, like I said, at rtc.debian.org, a very light-modified version in freephonebox.net. There, you don't even need to log in, and it's only used for calls. There's a Drupal plugin for any Drupal site. And recently, I wrote an XTOPL extension for JS Communicator, which shows how easy it is to integrate JS Communicator into another Web app or Web page. So what's so special about JS Communicator? In my opinion, that is so simple. JS Communicator is modular. It's very easy to integrate with another product with another application, which I tried recently, and it turned out it was easier than even I had thought. This is my recipe for setting up JS Communicator. It's really quite simple. You need a web browser with RTC support. That's advocated as Chrome, Firefox, and Opera. So Chromium, I've tested Chromium. Chromium seemed to work fine. Iceweasel, we've been having a bit of trouble. So if anyone wants to demo it, use Chromium, not Iceweasel, if you can. I'll explain later. There are a few JavaScript libraries that you need to have on your server. All of these JavaScript libraries of jQuery, jQuery UI, Arbitr, they're already packaged on Debian. However, for people who aren't using the Debian platform, I did write a script to be able to grab this third-party JavaScript. So you need your web browser that works with RTC, the JavaScript libraries, and then insert the HTML for JS Communicator, the HTML and the JavaScript on your web page. You can use the server side include if that makes it even easier. It would be adding a line of code to your web page, basically. And then you customize your config file to point to the server you're using, and also to customize the user experience. You can modify so much about the app on your config file. What features you're going to be using, if you're going to be using call with video, if you want to use chat or not, an automatic login, it's all available through the config file. And there is an example to show you with good explanations about what each attribute is for. So this shows the extension I wrote for JS for example. For those of you not familiar with Xtuple, it's an open-source business management software. So if you install the NPN package for the Xtuple JS Communicator extension, it appears right up on the web app. Oh, I don't think it can be seen here. It's not... Well, I can't show the entire screen here. But the JS Communicator appears integrated into their web application. This is their mobile Xtuple web app. So of course, I had to write the model and the view to adhere to Xtuple standards. But the JS Communicator code in itself was not modified whatsoever. I just included the folder in the source and that was it. So what I did work on during the Google Summer of Code, I did go through the wish list, fixed a few issues on the JS Communicator. Just some little features that make it a lot more user-friendly. So I went going through that. And some of the features that I'm, I guess, most proud of, I added agnostic internationalization support. A while ago, another student had contributed a French translation, a French internationalization function. But this was only for the French language. I just turned it into an agnostic feature, which in my opinion is easy enough for someone with no tech experience to handle. All you need is a message's properties file, properties file with your translation. X would be the code, your language code. And add an element to the available languages XML. With only the properties file, that's already enough for the browser to look at your own preferences. If you have a language preference that has a corresponding properties file, it'll be loaded immediately. The XML is to load a menu with available languages, as can be seen in RTC.debian.org. Which can be changed at any moment while you're running the app. So I customized the UI a bit. This is, I'm not colorblind, but I'm kind of bad at colors. But I made a skin file that can be easily modified to change the color and appearance of JS Communicator. It's easy to insert your icons, your brand, whatever you'd like. And I also added an IAM component. The IAM component uses SIP simple messaging. We are discussing migrating this to use XMPP, so it'll be more compatible with other applications that use XMPP. But right now it works like a charm. And if you try testing it, when you call it will automatically start a chat session. Of course offline messages wouldn't work on this. And there's still plenty more to be done. It's still pretty raw, but it's very functional in its simplicity. So if we'd like to demo and try performing a call, any of you who have signed in, like I said, to rtce.wm.org can try. I put iSweasel here after 24, but I've experienced a bit of trouble with that. Basically it's because of how iSweasel's been handling iS, which is the Internet connectivity establishment. When it checks, when it runs a connectivity check, something goes wrong using iSweasel, so we're still figuring that out. So I prefer if you use Chromium or Firefox itself. I'm going to try to demo something live here to call Martin Zovo here from the crowd. We can do just an audio. All right, but let me try calling my compatriot, Deser. Can I try calling you? Well, I'll call Zovo. He'll be able to see my camera, but I won't be able to see his. If someone calls you with a video call, you can answer with video or without. It can just be an audio call. I'm using Free PhoneboxNet. These are anonymous phone calls, which is why we didn't enable the chat option, because we don't want just random people popping you up on chat. So I'll try calling Zovo. Are you in? All right. There are a lot of things I'd like to still implement for example, if you're running it on Chrome or Chromium, stream negotiation is possible, as in you can turn on your webcam on or off at any moment during the call. Right now, it doesn't work that way. Once you turn it on, if you're doing an audio call, it's just audio, video, it's just video. So let me try here. Oh, here's the language. Right now we have English, French, Spanish, Portuguese, Hebrew, German. We have more than what's here. We have Czech, we have Polish. We have Slovak. I'm not sure how to pronounce that. But we've been getting lots of contributions with translations. It's been really, really exciting. So can I call you? All right, .org. So I'll try a video call here. It should ask for my permission at some point. Sorry, am I doing this right? I don't know why this isn't working. All right, apparently it's calling you. I don't know if it's a video call yet. I think not. I clicked the wrong one. Let me try calling you a video so we can see if this works. Here. .org. I know, I've been clicking it. I know, isn't that strange? Well, that's so strange that I just tried calling. Well, either way, let me work that out before we try this out. Oh, it's possible? Oh boy, I'll turn it off. Okay, if I don't have the camera enabled here, it could have been that, that it automatically didn't block the microphone. I don't know if I have access to the webcam here. It didn't ask for my permission yet, so I'm not sure because this isn't my laptop. But if any of you want to try it out, it should be fully functional because I just run some tests on it. So that's more or less it. Let me see here. Of course, I really need to thank my mentor who is absent. Unfortunately, Daniel Pocock, who is definitely a great mentor, put up with stupid questions and constant questions all throughout Google Summer of Code and before when I was working with him. I also want to thank Martin Zobel and Tolif who set up the test servers during our development and a series of people. I can't remember all the names who contributed with the translations. Daniel Pocock has a lot of posts about JS Communicator and WebRTC, how to set up, reciprocate on your machine, what works and what doesn't right now, what we plan on doing. And I've also been writing some posts on my blog. I'm kind of owing a lot of posts, but it explains how the JS Communicator architecture is. Am I calling you again? Oh, okay. And it also talks about what I've been doing and what I plan to do next. I think that's it. That's all I have to say. Are there any questions? Okay, so I understand that you use a WebSocket between the server and between the clients, actually. But what exactly is the SIC? SIC? What does it stand? Yeah, SIP. SIP is the protocol that's used for the communication. So what does it stand for? Sessionization protocol, I think. And why do you need to use that? Why not just use WebSockets? Well, I believe that SIP has the entire structure for beginning a secure connection and transmitting the audio and video data. Awesome. I'm not a pro, so if anyone wants to answer this Can I get a step up, please? Sure. So one of the reasons why you want to use SIP is that SIP actually allows you to integrate with a non-WebSocket and non-... So you can use a SIP client for this, such as a normal voice phone and so on. I'll stand up. Yeah, so I tried this when Daniel showed us last year and it was all jolly good. And I tried saying reciprocate on my server, but the bit name that he mentions is you need two IP addresses available, so you said it's easy to set a reciprocate, well, kind of, but most people haven't got a spare IP address, which is a bit of a... And I'm not quite sure whether I can still use it at all with just one IP address and I just don't get turned working properly. If anyone knows, who actually understands this stuff? Yeah, so I didn't work on reciprocate in particular. I did install it on my own server, on my own machine and I did have some trouble because of that too. So that's actually a great question to someone. Does anyone have an answer to this? I don't think I might have a question. I don't know if my answer is correct. As a frequent SIP user, I often choose first my provider and then make arrangements with them of where they will forward my calls so I can have it come up on my N900 or my soft phone on my computer or on a hard analog ATA device that I keep at home connected to my network by a wire. So does that a partial answer to your question? So yeah, the point is that's the client end. Reciprocate means you're actually your own SIP provider. That's the missing piece. You don't have to use somebody else. So in theory, just like you run your own e-mail server, you can run your own SIP server. But that's the point where you need slightly more tech. When I've asked questions about that kind of peer-to-peer communication, people then talk about PBX servers and then I've run away. Are we good? I mean, I'll be available and walking around on short, but if you can, spot me. So if there's anything else you'd like to discuss, I'll be around until Friday morning. And yeah, I'd love to talk to you about it and answer any questions when capable of. One simple question. Is everything JSC, SIP communicator, everything already included in Debian? So all the third-party software is included in Debian, all the packages you need. You just need to download the code from the GitHub repositories. I don't think it's available in the Debian packages, yeah, but it could be. I mean, for JSC and SIP communicator, is it not? JSC, I believe it is. I believe they made one recently, but I could be wrong. If not, I mean, the code grab or download all the code you need. But I believe it is. And if it wasn't before it is now, so it may have been something recent. I think that's it. As Andrew Sherman, I'm one of the Google Summer of Code students. Over the summer, I've created a project that I've named Recursively Building Java Applications. So before I actually go into and describe my project, let me just motivate what the project is about. So Maven, if some of you don't know, it's a make-like... Well, thank you. It's a make-like build system for Java projects, which allows you to... Well, build Java applications. But what it also does, it allows you to define dependencies within the POM file or this make file. But the key point being, it allows you to actually download these dependencies. My mentor, Daniel Pocock, he actually tried to upload an artifact to one of these central repositories. And the central repositories are public repositories. They're kind of like Debian. They have people who manage them, and you have to go through third parties to upload artifacts. But the artifact that he wanted to upload, they only required a POM file, a make file, and a JAR file. So there's really no assurance that this JAR file actually is being described by this POM file or put another way for free software. The big question is, can we really trust these dependencies? So my project tries to answer that question as well as determining if the dependencies that your project actually depends on are free. And that is if they provide all the source. So, yeah. So my project, it's a Maven plugin. And what it does, instead of actually downloading these dependencies, it downloads the source for the dependencies actually and builds them. So let me just tell you a little bit how it works. Essentially it takes this, it gets the POM file, this make file, and from this it's able to build this artifact graph. So from here you can, you create the graph of all the build dependencies, all the command dependencies, all the pretty much everything you need to actually build the project, and then tries to build it. Obviously you may not want to actually build everything in the project. For example, the build plugins you may not want to build, so you can obviously ignore them, but the choice is yours. The plugin is configurable. And of course once you have that graph you can obviously just try and build the actual project. So building the actual project, you need source. How do you get the source to be in your system? And do you really use to actually get the source somewhere? At least for most, once you get the source, obviously you have to build it for my system, or rather for the Maven repository, even though it's a really Maven repository, there's no restriction that these artifacts are actually Maven, that's why I have to support two different build systems, and these two different build systems made in the NAP are the ones that I've seen as fairly dominant ones. So my system supports both of these build systems. When I build the source, it builds using either made in NAP depending on what type of build file it sees, either it has a build.xml or they have it as a pump file. There's some conflict resolutions in there and so of course the question is, there's still another question and that is what happens when you can't access this information, or that information. Say for example, the repository is behind an authentication wall where you don't have access or the artifact is so old that the repository doesn't exist anymore, or maybe it's moved. In central there's no way to update that information, it's stuck there forever, essentially. So the other potential solution to that is getting these attached sources jars. These source jars are kind of like jar side car files that contain most of the source that would use to build the actual project. I say most of the source is generally the source and they're not included in the source and there really is no some kind of new name to distribute all the source. There's a lot of reasons to take this. These files are generally not used for building a project. They're generally sort of developed by central taking these source files and dumping it into the naval structure and the palm file that comes that describes the source's file as a means for building it. So what is the output of my plug-in? So you get a main repository as an output and why a main repository? Because you can actually use that to continue building other plug-ins. So you make this repository even if it has a main light repository in it. So essentially what you could potentially do is build a repository and just move that into that more or something like that. I don't want to say it's not that simple because a lot of you will consider it to get to consider that. The other thing is you get a different repository out of the source. So in some cases management intervention is required to actually fix some of the problems in the source tree. For example, when these sources are back you may not have all the sources or you may be... In any case, you may not be able to build the source with the default mechanisms that I have implemented myself. And you have the ability to actually go back into the source, change it, run the plug-in again, and then make work. But yeah, the most important thing is that this system is based on plug-in architecture. So if it doesn't do what you want, you can actually set it. You can correct me about the systems if you found that that's a bit more good enough you can change those up. If you found another way to get a source that's not from the SCM information that's not from the sources jar then you can extend it. So yeah, I have a quick demo. So one of them, I've set up a Docker container containing Netsys and Jenkins and I've tried to actually build a particular public artifact. A very small one, but a public artifact no less or none the less. So I've actually tried to build this artifact, Plexus Utility, specifically this version here. This Netsys instance is set up to clone or mirror the actual public repository. So you can see here that it is actually a public artifact. So the other container is a Docker container. It's running Jenkins. I have two builds here. One is for my plug-in obviously because it's not in central yet. The other is for this actual public artifact. Now, what I've done here I've made it essentially call my plug-in but also I've got a little more sugar on top of that. So what it will do I'm going to run this here. I'm going to run it. And it is going to fit up because this guy is not a super artifact. It actually depends on something else. Oh, one thing I forgot to mention. One actually builds these artifacts. It builds these in an external environment. So any dependencies that are not there it'll actually fit up what you see here. I'll put a message similar to this guy right here. Can you even give it a dig in? I guess you can. Thank you. So I'll put a message like so. And I actually grabbed this message and if you go back to the homepage they will see that they're built. So what I've done I've configured this build to actually find that message create this build and kick it off. And what it's done it's actually built it is a dependency. So there are no dependencies she's there. So this guy has actually built this build to test with. Build to test everything's fine we'll test for on. We go back here and try to build it. It should work but unfortunately it doesn't because there is a test failure that is as a result of what I've done. The only test that actually should work doesn't actually work on this particular system. So there's a couple failures there but in general this type of mechanism for actually building or creating these artifacts from source is it works. In most cases we'll be able to rebuild this. I've been semi successful in my dump. I've fredded on this but unfortunately I have larger projects like with the huge dependencies that you've got not been as successful because there's always a lot of room parts in the Superman trying to make all of them run at the same rate is very difficult. So yeah there are a lot of projects that we have to be done. So here let me just show you actually that I can. So the plug we currently have is able to create a main repository but it's only able to do so with one of the features that I'm looking to do in the future is actually upload those artifacts to a some other repository. In this case I have Nexus 7 that will be done with them but in this case we that's pretty much it for my plug-in do you guys have any questions? I said that there is no way to ensure it's authenticity so how is that true means you for example you have a Mevin repo you always have a sharp isle with it does that I saw in the pub that you're using the version control system to get the surf right and is there a way for Mevin repository to include also the source code and maybe pull it from there So we still have time for questions any more questions? Well thank you so while Kumar sets up he will talk to us about so hello so there we go Hello, I'm going to give presentation on LittleDB that is running Debian on Android so the basic principle is that we can run Debian OS on Android using chroot after that the Debian can start its own services like SSH, Samba and all these services are accessible through Android also example if you start open SSH in Debian then after that you can access the you can directly do SSH using phones IP but actually you will go inside the Debian shell but like as an example you cannot distinguish between the services by far you cannot distinguish services started by Android or Debian you can access through external world also or even Android can access the Debian services so its important parts are installing Debian, starting Debian and stopping Debian for installation we create an image file after that we create Linux and Android mount point so that the Debian itself can access the slash data, SD card and all those stuff after that we reboot Debian root FS from the Debian servers so and after that we set up the top scripts because if Debian try to haul the system then actually it sends a haul signal to Android also so Android also shutdown so we have to set up top script in such a way that only the Debian services are stopped not the Android services and for starting we first mount the image file after that we mount all the Debian devices in Android devices in Debian and we directly do the CH root and start the basic services which we need for stopping we just stop all the Debian processes we check if there is any open files in the Debian and we unmount all the Android devices and we unmount the image file so like with this we check whether the image is validated or not using by calculating its checksum before starting the image with this option we can install the Debian directly inside the data partition so that it's not we don't have to depend upon mounting of the SD card and we don't have to provide the size of the image at the start so it's directly accessible into the Android file system itself and automatically starting Debian means whenever Android boots up we can configure that when the booting is completed the Android services get started or if it is installed in SD card then after SD card mounting is completed the Debian starts up and we can set up our own post start and pre-stop scripts by default I have set up RC2 for start and RC0 for stop the demo will give most of it the demo is not much fancy you can see it's not much like there is an install button there after installation we have to provide options like what release we want stable and stable testing Weasley and all we have to provide the mirror which mirror we want to use and which architecture currently we support and ARM HF and we have to provide the size of the image when the installation start all the process the script does the work that is creating the image file the boot stepping and setting up the stop script after that we get a start Debian button we can start the Debian and the Debian is running in the option we can open the terminal and run the commands I have demo running on my phone also I am accessing through Wi-Fi so it's bit slow so this is a start button so the app where it started there are options like open terminal preference delete all my setup and preferences in the preferences I can choose the option that automatically check the checksum image path and all automatically start from sleeping install on internal storage checksum image on start hello image path post start script and pre-stop script I open the terminal you cannot see it but I can run the basic Linux commands on it the phone is not slow but the connection between the laptop and phone is slow if anyone wants to try I can show you on my mobile after the presentation so the use case might be you can install python development environment directly on your tablet you don't have to carry your laptop and all even you can run a wordpress server on your older phone and the source code is available on github the project was started by a guardian project group so the link is github.com slash guardian project slash little levy and the future scope is running open to providing support like selecting the file system which the image file which you want to create that is for ext2,3,4 or yaffs2 and adding support for non-routed phones the application currently supports only routed phones when devian starts up does it run its own init process or does it use the android init if it uses the android init is that good enough? no actually it runs the init command it depends the init initializes all the basic environment required for an operating system to start up this work is already done by the android it just only use like the devian has all the proc and slash dev from the android so it can use those services of the android itself it doesn't run its own init could you please go over the use case slide one more time do you know if it might be possible to run graphical applications from the charoot no not right now via vnc or something like that maybe i have not tried it can you imagine that it might work somehow not currently right now how do i install it on my phone how to install it on the phone a little baby is exactly available on the play store is it can you make it available on fdroid as well yes i guess it's available i will check it if it's not there i will approve 0.4.6 from january 2014 so it's we are about to release a new version so we will make sure it's available on here also so we still have time for questions if there are any well if there aren't any more questions i guess this is time to close the session one minute if such thing is interesting for you my earlier project was running two different android instances simultaneously on actually i tried it on emulator not on the phone so it was like running two android instances simultaneously on an emulator so the project was named alexion android check that video also my content thank you very much so i'd like to take this opportunity to thank first of all google who sponsored the projects that debian had this summer i would like to thank all the students we did some great work this summer all the mentors that have been tireless in supporting the students and finally i'd like to thank my co-admin sylvestre who can be here today because he's waiting for well a happy event thanks aran we all students even want to thank debian google for all this platform they have provided us and even the lot of helpful mentors we got to work with during the summer thanks