 So, we have a nice set of several lightning talks to be given by your fellow dev confers. I'm going to be doing the timing here. If you're giving a lightning talk, and you see this, just divide by 10, okay? And that's divide by 10, and then that's it. So, sorry, if somebody has a marker we can put a little dot here, because I don't think we need these any more beyond today. So, right, so, basic rules for the lightning talks. You get one minute to fiddle with your laptop and try to hook it up to the projector, and after that I start the clock, or as soon as you start presenting I start the clock. If you want to give me slides beforehand targeting 1024 by 768 display, you can do that, but you should have probably already done that by now, because I'll be displaying it on the screen. So, yeah, without further ado, it's five minutes per talk, and it's, we have Tom Marble, which the title is Freedom Lost in Cashless Alternatives. Great, thank you. So, I wanted to just give you a couple of thoughts about cash. You probably know about cash, you know, what it is and what we use it for. The main thing that I want to highlight to you is cash is actually a very old idea. It's an abstraction that comes from the 13th century, and the really important part of it is that it's a way of representing faith in this abstract value, which ultimately is about trust, and that's what I think is the theme I want to highlight for you. But cash is under attack. Why is that? Well, it turns out that it's expensive to process, even though you would think it may be it isn't, but just storing it and keeping it secure is expensive. People are concerned about germs, it's dirty, but most importantly, it's anonymous, and that doesn't help you if you want to do analysis or profiling or advertising to people. It's not taxed, governments don't particularly like that, and of course it can be used for nefarious purposes. But in our world, we love freedom, and you know, really it's anonymous anonymity for the purpose of free speech, but also being able to choose if we want to be tracked or profiled or if we don't. And so these are some of the values that we believe in. You may notice that people that believe strongly in freedom might have a beard. Well, I feel that way, and if you want to express that, because Debian has a diversity statement, I want you to know that if you don't have a beard, it's still possible, it's possible to get a freedom beard accessory. So you can also express your feelings about freedom. Well, what people are proposing, companies are proposing as a replacement for cash are things that extend credit cards for example, and in particular using mobile phones, near field communications and so on, as a way of handling money. They want you to use your mobile phone as a monetary exchange point, and that's interesting except for a couple of things. It requires being online, you do not have any privacy or anonymity, and of course this is built on a completely non-free stack. That's not what we believe in. So other alternatives are similar in that they want you to use your phone as a means of buying things with merchants. Again, the problem is how can we possibly, how can we get to a point where we can make a choice about the kind of speech that we're making or make choices about how much information we expose about our buying habits if we're not relying on a free stack. This is a problem that we're facing all over the place. So other ways that are being proposed to handle money include Facebook credits. One that I want to call your attention to is M-Pesa. The interesting thing here is it's all about SMS, and the key part about SMS is using this as a way for identity. Another idea that's in mind that's being used in Japan is biometrics and specifically vein identification, again really used for identification. I think there's some controversy about whether Bitcoin actually provides an anonymity or not. I'm not going to cover that. You probably know a lot about it. This is the graph of my PGP signature tree. I think it's interesting that if money is an abstraction revolving on trust, maybe there's a way that we can use this somehow. And I wanted to point you to the latest issue of IEEE spectrum that has several interesting articles about cash and cash replacements and what's being proposed. It's online. If you search for IEEE spectrum, I think it's the June issue that is called the last days of cash. One minute. Okay. So the point of this talk was there are some issues affecting our free speech and our ability to be profiled or not. And I just wanted to leave you with this idea that maybe what would it be like if we could have a kind of currency that was allowed us anonymity, allowed it to be digital, ideally having it be offline. I realize that that's extraordinarily difficult, but I just wanted to put that idea out there. Thank you very much. All right. Thank you, Tom. Next up, we have Don Armstrong. And his talk is called Control at Submit Time. And Don, are you ready? Yeah, I do. Yes. I'm not sure how you were so small, but, and go. Okay. So I thought I'd really quickly present to you all some of the stuff that I've been working on DebBugs while I've been here. One of the things that I've been fixing is some of the UTF-8 madness that I introduced in order to allow for retitling of UTF-8 bugs, which led to then some double encoding issues. So I've started fixing them. There's some issues hanging around that I still haven't cleaned out, but most of it should be working properly. But what I wanted to talk about really quickly here is Control at Submit Time. So one of the things that frustrates some people who are operating remotely is if you want to ask the next slide, is the fact that you have to wait for a round trip time from Submit when you're sending a bug to the BTS. And so because of that, not every single thing that you can do with the Control interface can be done at Submit Time. There's some things that you can set via pseudo headers like tags and versions and stuff like that. But you don't have the full scope of the Control Command interface at Submit Time. So what that means is that you have to wait for a round trip for a bug to come back to you in order to figure out what its bug number is so that you can then turn around and run the exact Control command that you wanted to run. So this fixes that. I mean, the round trip is three minutes, which is short. But that means that you have to think about it again. And it's obviously not that short if you're on a plane when you're working or something like that or a train or your network connection is bad. So the solution is to abstract out all of Control, basically into a module. Lots of code and testing to do this. But this is the part that you actually care about how you use it. So you just send a bug to Submit, your package, your version, the same thing. You normally do. The only difference is now there are additional pseudo headers called Control colon. And it looks exactly like, because it's exactly the same as the control information. The only things you can't do here, you can't send Control commands that do things that normally happen at request that, like asking for a list of bugs or anything silly like that. You also currently can't set user tags this way. But you can do that using pseudo headers. But every other Control command you know about works the same way. Negative one, the bug negative one, like you're probably using clone is prepopulated for you to be the bug that you're currently emailing. This means that you can do crazy things like send the same message to a bunch of bugs and run the exact same Control command affecting different bug numbers. It works, but that might be insane. So you might not want to do that. Anyway, so that all works the way you expect. Oh, one last thing that I just announced early today on my blog. I was asked last night by Neil that we needed something like what bts.turnzimmer.net gave us the ability to track what the current status of a bug is. I.e., you're currently working on it. I'm blocked at this point. Oh, we don't care about this bug because it'll be fixed by somebody. Or I have no idea what to do with this bug. It eats children or something. So that's sort of information that we used to have. You can now set via a Control command called Outlook. The reason why it wasn't called status is because the bts uses status internally. And that would be really, really complicated. But you can now do things like Outlook, not good for the bug, and it will enable you to set that. Eventually, I plan to expose that on the bug status page, which only gets rebuilt every three minutes. But eventually, it'll be displayed up to the minute with some JavaScript nastiness so that you can check that out. One minute left. OK. I was going to ask for questions, but I don't think there's enough time in lightning talks. So if you have questions, feel free to ask me afterward. And if you find bugs, please file them in the normal place against debugs or bugs.dev.org. Thanks. Anyone have a question in 50 seconds? Yes, Neil. Yes, Neil asks, does it work for block? And the answer is yes. It works for block. It works for absolutely everything, except for user tags. Thank you, Don. Next up is Vagrant. So he's got a minute to fiddle around with the projector. What do you need? OK. I'm going to be talking to you about how I became a kemium maintainer. Well, a kemium maintainer. So many of you know Dubu Strap. There's this cool package that I helped get into the archive called kemium user static, which uses bin format support to do crazy things with cross architecture to root. Hopefully it's building one as we speak. Good. Because I don't have a lot of time for this. But, so basically what this does is it uses the bin format support and calls the kemium user static package uses bin format support to register binaries of various architectures with the kernel so that seamlessly without having to do anything when you ask to execute a binary that is for a different architecture. Basically, this is just a list of all the processes running with the kemium arm static process propended to it. So this just figures it all out through magic that I don't fully personally understand, but I'm glad other people do. And then anytime you run a binary that matches a certain architecture pattern, it just seamlessly figures out which kemium emulator to prepend that with. And this has some great advantages. This is a pathetic little netbook, which basically we're just doing a Dubu Strap here. And one of the really nice things about this is that things like file system calls don't have to be emulated. So those are running at native speeds, which is really great when you're running on a crappy little netbook like this. But things that need to be emulated, system calls specific for the arm architecture, or whatever architecture you may be running, those actually do need to get emulated. And basically, fairly soon now, we should actually have a charoute available. Oh yeah, let's do lightning fog here, sure. So yeah, any questions on what's going on here? Ah yes, the three I listed earlier. You'll need Dubu Strap, kemium user static, and bin format support. And then there's a wrapper around Dubu Strap called kemium Dubu Strap, crazy though it may be. Somebody else actually wrote that part. But basically you can call that. And as long as bin format support is installed, I think it's a recommend's on kemium user static. Basically, that's all you need for that. And any other questions about this magic? I'm hoping we'll get to the punchline at the end. I've timed it very precisely, multiple times, although I may have made a mistake. Let's see here. No, that should be about right. So we're waiting. Any other thing? How people like in dev comp? All right, good, good. One minute. So I timed this out a number of times, and it ranged anywhere between four minutes and 33 seconds. It was my best time. And five minutes and one second, which was less ideal. And it took me a few seconds to actually get started on that. So we'll see if it actually makes it in time. It was very helpful to use the min base variant of Dubu Strap. That shaved off at least two minutes. But yeah, why don't I show you? Let's just go up a bit here. So that's the command there that I basically ran here. I built my own little archive, and it's all in attempt.fs. But that should really help speed things up. And this is just a little atom processor. Let's see here. And I'm installing it in Optel TSP for this pathetic little thing. Ah-ha, the punchline. OK, four minutes, 35 seconds. Excellent. So if you'll notice, your name returns a 686 base kernel. But then you'll notice off to the side, you've got ARMv7L, crazy. It's running ARMHF. And I guess time's up. A nail biter. All right, Franklin is up next. Oh, yeah, yeah. So Franklin's talk will be digging popcorn data. Do you want the headset mic or the? I guess everyone knows about popcorn. What's trying to do a nice tune like this, which helps know which package is new and which package is removed in a distribution compared to another, and do some more clever stuff comparing if it's a new source package or a new binary package or anywhere. The important thing is, come back here. What's my mouse? It's here. Sorry, we don't see it very nice. It starts with popularity of the package. 4,000, 3,000, 2,000, and so on. Well, really, it's just a tool to help write the release notes and stuff like that. But it's not the point. So to make this and have those popularity here, I have to dig into popcorn. And actually, that's where we go. I'm not going to get into the details, but we all know that popcorn has quite some biases, blah, blah, because it's not installed all the package. Is it better? I hope it's good enough. Well, it does have quite some biases. So the data which comes out of popcorn are to be taken with lots of care. But anyway, let's go on. Here is an interesting part. It's probably a view of popcorn you've never had, which really tries to turn the curve the other way. It's the list of packages. So this graph was made two years ago. Sorry about that. So we have 2,000 package, 22,000 package. And as we can see here, we have a very narrow amount of package, which are actually very popular. At that time, we had only 80,000 reports. And only about 2,000 package are actually very popular, as you can see on this curve. The remaining of the package are much lower. For reference, I've put it DPKJ, which is obviously on all the systems. It's 80,000 system. X server, that's one of the biases. 80,000, 50,000 server run X server is probably not the market share of Debian in the servers. Apache is on 80,000, half of the machine. Bind is running on 40,000 machine. So really, we have very few package which are installed on lots of systems. We can switch to a logarithmic view. And again, we can still see that some package which are installed on very, very few systems, like G4j, has only 10 popcorn. But I guess, well, G4j is quite useful. Don't make wrong assumption. It's not because the package is not popular that it's not useful. And then digging into it, there's another interesting fact that I wanted to show in this presentation. It's that this is, again, for Lenny. OK. We have here 1,500 package if you process this by processing dependency. This is on the theory system, not on real system. Actually, Debian installer will install more package because of the localization file, the Linux kernels, and lots of more stuff. So if you ever have to make some popularity thing, you probably want to use a logarithmic one. 4 star is really for package installed on 90% of the package. 3 star is for 9% of the package. 9% of the system, well, that's basically what I wanted to show, the correlation. Thank you. Thank you, Franklin. Next up is Tincho. Are you OK with that, Mike? OK, you can point at me when, now it's my turn to spend the doodoo fiddling here with the projector. So I'm going to talk about this project of mine. I've been working a couple of years ago when I was working in academia. So it's a bit of publicity for my pet project that I found that can be quite interesting for system administrators and maybe for some people in Debian. So it's some free publicity at Debian. So the name of this project is NEMU. It's a small Python library. It's self-contained that it can be used to create emulated networks, which is an academic term for virtual networks that can be controlled for throughput or packet loss or whatever, so they can emulate a real network. They can be used to run tests, experiments that can be completely automated or interactive. And more importantly, that it can be repeated so you can create a script that will run supposedly in the same fashion everywhere, being able to show your test and automate it, maybe, in your package. So it's a byproduct of research, because it was just a side project we did in 2010. Then after a couple of years I found that, oh, this is interesting for my system administration tasks. So a few use cases I think can be interesting. Say you want to test an application that needs many nodes and you don't want to configure 50 QM nodes and do a lot of things. So you can just run 15 instances in your machine. Also it's very lightweight, since it runs in one kernel that is only used in the network containers isolation to simulate the different nodes. You can use it to observe behavior in a reliable network, as I was saying, you can configure throughput or packet loss, packet delay, reordering. It's using just TC rules of this network emulation rules. You can justify some changes you're doing to some project or some protocol by testing and with the same script you can run before and after and show that there's a change and it's easy to repeat you. So you don't do a lot of manual work. So this fourth use case was the one I found, which was I needed to do a change in a production network and it was quite disruptive and it was in the main firewall, such as copied all the configuration into one script and run it and make sure that nothing will break and that all the applications kept on working. And the last point is that it's easy to distribute because you can just put it in one script and just a small collection of scripts and there's no other thing to be distributed just in Python script. So this is how it looks like. This small script runs, I just did it before coming here. You see you create a few nodes. You configure kind of interface, set them up. Add IP addresses. You can also configure routing, whatever. And then just you can tell it to run a command in the node. So you can also open an X term because there is support for X and just do stuff, run TCP dump, whatever, and works pretty nicely. So there are some useful links if you're interested. The first one is the main project we were working on when this was spawned, which is a bigger tool mostly for academia, it's for experimentation. But it's nicer because it has a GUI and can do some more abstract definition of the network. The second one is a project I just learned about two weeks ago that is more or less the same idea. And it was developed at the same time. But I think it's quite more heavy. I will, they have the homepage, they have the two projects on where to find the slides and the code I used to run some tests. One minute left. One minute left. One minute left. I was speaking too fast. Well, I cannot show you much. So anybody who has some question, somebody's interested in knowing about it, or maybe contributing. All right. Well, that was a short one. Thank you, Tintje. So, yes. OK. So next up, we have Edgar doing a talk on Yorome. I think he's going to set up his network, connect his video. Yes, there is. There's video. Do you want a headset, or do you want the standing mic? We're in the video fiddling grace period. And the grace period is about to expire. And the grace period is up. Oh-ho. All right. No network. But I'll put this file up on Gobi as soon as I have a network access. So I've started a little project with some people from my group. It's called Yoreme. Maybe I should just turn off the network. Anyway, the name Yoreme is the name of an ethnic group in the north of Mexico. Why did we choose this name? Sorry? OK, fair enough. There. Am I good? Bigger? Sure. Yes, indeed. Better? Bigger? Oh, OK. So anyway, it's intended for kids with low exposure to computers and networks. But really, the content created should be usable by anyone at the appropriate level. That's the URL of the project. The word edukere comes from Latin. Latin had two words for education. Edukere and edukare. One, the one that I chose for the URL means to bring out the potential in someone. As opposed to edukare, which means to shape someone in presumably some way which you find advantageous. And well, I chose this word because the point being to create a corpus of educational content, which is in the form of a knowledge tree so that people can explore it through self-directed study. It's supposed to be task or achievement-based. That means we teach through doing, through achieving certain tasks, through creating content, digital content. This can be text, code, images, video, audio. We're not interested in grading. We're not interested in judging what people create. We're basically interested in giving people a voice because there's a parallel with computers in the sense of big business tends to try to push this dichotomy between content creators and consumers. And we think the only way to oppose this is by trying to help everybody be able to create whatever style of content they like, they enjoy, to giving them a voice so that they can do more than just listen or absorb. And then we use this style of activity called a format. This is taken from the language acquisition community. Formats are very rigid interactions. I think the most basic example is PICABU, very rigid interactions where the rigidity of the interaction, one minute to go. OK, the rigidity of the interaction lets the child infer much. So basically, in a format, you ask the kids to go and do something and report back, or you ask them a question that they can solve through interaction. The idea being to minimize the information transfer, like do this, do that, explanations, nothing like that. Just try this out and learn through interaction. I'm done. Well, and the last thing is we have this. This is an alias that just redirects to wikiversity. We're putting this up in wikiversity, so it's available for everyone. It's free by default. That's pretty much it. I think my time's up. And your time is up. Questions? Thank you, Edgar. We have a lightning talk from Andrew. Next. You're up. Go on a headset, Mike, or do you need the projector? OK. Everybody hear me? OK, I just want to talk about how people think it's difficult to come to DevConf and want to share my experience last year in Bosnia. Because I noticed that one year before I was in New York, and I think that I can apply the visa in New York City to get something. But people say it's no problem, just they will arrange you something because there's government sponsored DevConf. So I was very happy. Then the talk with the visa, DevConf team, and it says no problem. But I noticed that I have to go to Hungary to apply visa there. So my flight was to start a trip with Anna together from Taiwan. And we go fly via Beijing to get Munich. And from Munich, we enter Hungary. And we try to get a visa in Hungary. But in the time that the visa team says, it's good news that you don't have to get visa there because your visa is already granted by the government. So I just go to Hungary still, but for sizing because I was planning to apply visa, but things I don't have to apply. So I go sizing. And then I went to Bosnia via Croatia. And then in Croatia border, they checked my passport. But somehow my passport, they don't recognize. So they says, can I bring this passport and check and be right back? And this guy leave the chain. And the chain was leaving. My passport was still in the border control. And I just noticed that the guy on the chain said, please stop the chain because my passport was still in the border control. I haven't got my passport. And then they tried to make a handbrake on the chain. But the driver still moved the chain. And then the guys just opened the door and tried to move finally movement off the doors to notice the driver. Please stop, stop, stop the chain. And then finally the driver noticed and the chain back forward to the station. So the whole chain was delayed because my visa, because my passport. And the guy was very sorry that he forgot my passport. And then all the passenger on the chain noticed me that when we closed the next border to Bosnia, please notice the border control. Remember the passport. OK, then we arrived, it was very long because we need to wait for the car for the chain. So here we go, we arrived at Bosnia. And this time they asked me to go down the chain. And then I give them the later prepared by the Comforting, which is writing in the native language. But somehow this language problem or something, they don't even make a phone call. They think it is fake or something. They ask me to take my luggage, everything, get off the chain and took me back from the other direction. I thought that they will probably want to send me back to Croatia. So I tried to make a phone call to Minimia and told him that the problem. So he tried to talk with the border control as well. And they talk about five minutes, tried to make him believe it's real, it's not fake. So I was waiting in border control. It's because they said, where's my visa? I couldn't see that on my passport. So I was waiting there until they make a phone call. I don't know where they reach, how they solve the problem. But probably that they phone the phone call to the president office. So the president office make a phone call or something and then realized that I'm not a crime. So they give me some coke to drink. It was really nice. And then I was waiting there for about four hours. And yeah, this was a guy with three stars with a dress. What they are talking to says, please wait. And then another guy shows up, even without any of the formal shoes, but thinks that he's the boss, higher position than the three-stars guy. And he says, I'm pretty sorry that we have a technical problem because we have a Windows machine that was broken since 2008. Yeah, and then he said, yeah, I'm very sorry that I don't use Windows crap, I'm Ubuntu user. And then I just hope that I'm a dev developer and Anna also working in Ubuntu for those kind of things. And he says it's real. And he thinks that impossible for him because he's really seen a dev developer in his personal life. So he was really happy to grant my visa by handwriting. And then he said he want to arrange a hotel for us. And I said, no, we have hotel ready in the venue. But the border to the venue is 180 kilometers away. He says, OK, wait a minute. And he arranged a special transportation which has blue and red lights on that. And driving so fast at like 140 kilometers per hour on the mountain road. And then two and a half hour later, I arrive. That's my trip. Thank you, Andrew. If you thought you had a hard time getting to DevConf, we'll take another lightning talk from you. But I think that one might tap it. So that's actually our last lightning talk unless someone has one last minute talk which is about all we have time for. Any last minute ones? OK, in 15 minutes, there should be the closing ceremony here. And yeah, so stick around. And thank you, everybody, for coming to DevConf.