 Hello and welcome to this year's version of the live demos. We have three speakers and we will start with Marvelous David Bremner Doing something Wow, such enthusiasm from the back So every year I say, oh, I don't want to be that guy because the same talk every year at DevCon So and then they dragged me back. So here I am talking about not much again I want to focus on What's new? Hence the title also if you know not much. It's a small joke So for those of you who don't know anything about not much It's a mail user agent or search library or indexing tool or something along those lines. There's a website You can install it on Debian Debian is unsurprisingly the most supported distro Somewhat to the irritation of non-debian people So, okay, so what's new? Since last DevCon we had three feature releases 11 bug fix releases Which sounds impressive, but there were basically each Debian upload. So we do a kind of merged upstream Debian Development process We had nine release candidates Which is just uploads to experimental Okay, so what did that mean in terms that we can all understand? Well, you know there were some commits and The good news is that there was more than one person doing those commits So you can see about five little committers Maybe six or seven. So that's good, right? The project's not dead yet. It wants to go for a walk It's feeling happy Yeah, okay, so This is gonna stop soon. I hope I mean not the project but the movie All right, so So so as a comment This tool is kind of silly I mean, it's cool in some ways, but it looks like we did all this massive development over here That was like 10 minutes work right copying in some files from the Linux kernel kernel mailing list. Okay, never mind so What do we do so the most important feature probably is We support blocking opens which means those you insist on running things in cron Won't blow up your foreground things as much anymore So so that I think is much it's a big improvement We support Some reg X searching It's a bit slower Because the underlying database is not really about reg X's and also I should point out that just because I'm writing little list programs to use the The to demo things doesn't mean you have to you can do all this It's pretty much the same thing in the shell or in a lot or in Neomutt which is currently masquerading as mutt in Debian So, let me see this is I want to find all the mail from people B dot star at Debian because clearly those are the important people It's still pretty fast. So there's a certain amount of brute forgery going on there But it's quite acceptably fast. I have about half a million messages in my database so to give you some idea of of how things scale or don't scale Okay, so so you can have reg X's for tags Which opens up a few interesting possibilities as far as for example, I'm using Prefixes on tags to to organize things. So it gives you a kind of hierarchical thing Okay, there's a very minor thing to anybody who's not familiar with the project There is the Zapien Query parser was only able to parse ranges for dates And so it was super annoying. You had to say today dot dot today to find the mail Okay, that's almost an embarrassing to call that a feature What's interesting and I think is pretty underutilized now is you can Make aliases for queries and You know, whatever you want here. I'm looking for the messages to Debian policy today And Oops, what happened? There are no messages today. That was totally successful Um, let's try yesterday just because you know, I'm a little nervous And that is today. You're absolutely correct. Thank you Are you guys are I guess you could call that helpful? Where's the quote missing? Oh? goodness and then somehow in my Fugue I Okay, um So yesterday, right? Okay, so So that's a feature that I think not as many people know about as as could find it useful All right, so all that stuff is available everywhere Everywhere that uses not much. This is a surprising number of places Another huge feature Which you know is embarrassing that we didn't have it before is Draft save and resume So here's a mail message that I am sending. I am in the next Cubly nervous All right, so I need to think about that right do I really want to send that mail and so Let me look for that draft. Well, they're just a Of course Bill was sending messages in the future So here's Here's This message and I can you know just like a real male user age, right? Okay, so Yeah, okay This is not as new So we have a kind of Menu for selecting if you like virtual folders So to quickly Navigate your set of not much searches And that's accessible via J. So I can say J And and to get to my not much One of my not much searches if you like virtual folders Okay, this is supposed to be kind of fast and inexplicable, right? So You're getting hints of what you could what you might be missing So here Is another UI feature which is a customizable way to set up tagging workflows? and so what I've got set up is a bunch of Key sequences that tag things in specific ways to help me manage not much patches and so on so I can say in W and then it's if we look it's tagged work in progress and so it's a kind of auto completion feature and Obviously not everybody cares as much about not much as I do so that's my my configuration That's driving that kind of menu structure So all right, so you may find that useful for your own thing Here's another new feature which at first I was skeptical about but it actually seems pretty cool so Navigating in long threads, right? So Right, okay, so good I have one minute to find the message I'm looking for and So there's a sort of Expanded view of the whole thread, but I also get a pop-up menu and clearly I want to hear what Phil said and What did Phil say? Okay, so he said it's fine with him. So he's an agreeable guy Okay, and that's pretty much it. Let me just Finish off with some bug fixes. We managed to Not index giant HTML images, which is a huge thing or it's a small thing. It's smaller than before or something Okay. Thank you very much. Next up is Guido So hello everyone I'm Will show some New and maybe not so new things in get bill package which happened during the last year Some of the things that are in there are not actually very new but not very well known because people ask is this possible or not? And so I just added them here as well for the first time I'm using org mode to Demo these things and I hope that it works well So the basic idea is that I run things here and then the output of these commands just pops up Below the rest of it So in this case, I basically like clone from a remote repository so that's that's Actually with the first new feature So we now can like just say VCS get and then it will just look at the packages VCS get URL and then clone from there It's basically what depth checkout does but it also sets up the branches for upstream and for the pristine tar things So the you're good to go and Also for every project nowadays. You also have to support a github pseudo URL Actually new command is GBP push so when you like have uploaded your package and you want to push all the changes it's like Pretty easy to forget To push all the tags and to push all the branches and do the right thing. So we added the GBP push command and That basically that's great a real remote repository first that With that at the I Grated a remote repository on the local laptop So I don't have to push out on the internet, but that this one is called through and then I can just invoke GBP push with the just created repository and It will push there the Debian tag the upstream tag the pristine tar branch because in this case I'm using pristine tar like The upstream branch and the Debian branch so no longer forgetting any stuff You can like just get the remote on the command line or it will just pick the right remote where you clone from from your configuration So that should make things hopefully a little bit simpler another new command is GBP export oric So for now if you want to recreate a tar ball You basically invoke GBP build package with lots of command line parameters to tell it to not perform a build because you Just wanted the tar ball for something else there's now an extra command for that and We can do that here again Export the tar ball from the thing we imported before and then we see here that it just created the tar ball Again, it will now verify the tar ball because pristine tar got verification support So if there is a tar ball already it basically checks the checksum is correct with what's starting it And if it isn't it just gets recreated so that should make things a bit simpler. Hopefully, too Another thing which was fixed actually that is a bug fix is we now when we Don't use pristine tar and we export the tar ball from from git. We have stable Checksums now as well. So it's reproducible and that didn't used to be the case but an I can fix it at some point and so we can basically Export the table At some point we get the same checksums as long as git archive doesn't change in a way that breaks this obviously So we're basically relying on git archive doing the right thing for the future There's another new thing which is kind of like corner case But sometimes you just like have imported all the things and you want to add the pristine talk commits at a later point and Don't worry about to make pristine tar put the right commit ish in the git repository. So there's Gbp pristine talk commit now as well Let's create a new repository first this repository is Slightly different. You see this down here because it has an additional table pulled in there and Then we can like basically at the oops pristine tar commits as well and then we see like basically right down here it added the Pristine talk commit for the origin table for the original table and for the one additional table We have an additional branch here, which carries the pristine tar data The other new thing is Gbp import oric like the tool for importing the tar balls kind of Changed its behavior. So so far if you imported the upstream tar ball It would just go ahead and merge it into your Debian branch Which is kind of pointless if you're using like patches unapplied mode because then what you want is like take the upstream Tree as it is put it on the Debian branch and just leave the Debian directory as it is on that thing I'm not going to demo that here because it's like you don't see very much in the demo I can just show the git trees if you want to and the other new thing is We kind of roll back on error So if you like import a big tar ball and you run out of disk space then you have done half of the thing So so you maybe maybe already have imported the tar ball You might have already parts of the pristine have the pristine talk commit and once you wanted to move on the Debian branch it will fail in some way and Sorry Trying to Demo that as well this part just creates a new git repository so I can can show that Let's run that one and so it import the tar ball now I should sign the tag I abort that because I don't want to end up by pass trace and then you just see down here that it wrote back the changes From from the import so there's nothing left that That annoys you and then you can just like free disk space or whatever is needed to To to import the thing The other thing is just that's just the bug fix as well So so far if you had a local thing you wanted to import with the GBP import DSC You basically just gave the DSC file and if it was a remote file You basically had to pass minus minus download now It's just smart enough to if there's a new URL on the command line It just assumes that that should be a download and the same thing is true for the up pseudo URL So you can just tell it apt colon and then whatever you want and which distribution it should pull from and then it will just pull it in and do that as well and Hopefully it won't take that long So now now it just fetches it from the remote and creates a good repository with all the data in it One thing we added for Get build package is like I'm just creating a new repository here and down here That's the new thing so there's a sloppy mode So basically if you just like sometimes you just want to do something like a native build So you would just want to build what's on your Debian branch And you don't want to care about Debian patches and all these kind of things So if you pass get upstream free sloppy, it will not use any upstream branches It will just use the branch you're on and we'll just drop the Debian directory from it and create that as an upstream Table the other options down here are just because I don't want to perform an actual build So I disable all hooks I have there and disable the builder and we can just run that again and Then we see that We created the tab all from another commit and the grab here shows that the file removed up here So we when I imported the whole thing I removed one file from from the current directory and it's not ending up in the table as expected So what else is there? There's a command for querying configuration options That's been there since quite some time, but I'm not sure many people are using it So you just like git like you just say gbp config and then the command and then which option you want to have and then it Puts out the option name and that's basically all I wanted to show us or there's some documentation out there Which got to rework during the last year as well Gbps also on pi pi and the python 3 version is in experimental so that we can get rid of python 2 support at some time That's basically all I wanted to show. Thank you. Thank you very much. Next up is cipher mox much yet Just a moment while he plugs his laptop in. I feel like I should be singing or something No need for me to start singing yet I don't see it Anybody know any other good songs Dance routines great right here. Thank you Good so good morning My name is Matthew. I'm What I want to show you today is Something that I've been working on for the past two weeks So one of the things that is often forgotten Let me just Clone the screens So one of the things that is often forgotten in the context of secure boot is that you need What you usually want in secure boot is to have your Your bootloader Signed but you also want your kernel signed and what that implies is having your module sign as well so Let's see So you'll excuse that I use Ubuntu to demonstrate this because some other pieces are missing but basically What happens if you need some special hardware your modules aren't signed if they're not coming from the archive And that means that you need to somehow sign these modules, but let's be honest Signing modules is not something that is terribly easy to do for just anyone. You need to create a certificate. You need to Prepare all kinds of other things and Even signing itself is a kind of weird command that you need to use and know about so What about DKM S? What about auntie may who wants to use our brand new? Widget that does I don't know whatever That's not even the wrong the right user so So as you can see from the zero one at the end here secure boots is enabled and if we look to see that There's no other variable in firmware than mock list RT, which is just a list of enrolled certificates if Validation and shim was disabled and you'd see another variable that that specifies this So let's see if I try it to mod probe BB switch, which is a module that is commonly done As a DKM S package it looks like I don't have it So let's install that so what I did was basically a DKM S Some small changes to the DKM S postants to run things that would be shipped in a shim sign package To give the user a some kind of wizard so that they can do signing easily So all you really need to type in is a password That will be asked again on reboot to make sure that the user is is actually authorized to do that the change and Integrate a new key and if I reboot that system I can see the key that I've just been that has just been created Let's then roll it and now reboot So basically the pieces missing right now in Debian are As far as I could tell because I tried this in a pure Debian VM that I just cleanly installed the kernel doesn't seem to be enforcing that modules are signed and the Not everything is in place yet to fully integrate Booting from shim to grub to a sign kernel So now if I try to mod probe BB switch again It will actually load and say just that device doesn't exist on that VM What you would see if I try to mod probe something else Let's see Actually, I don't have anything else to my probe was so let's remove that key So this is basically the same process that the wizard is running behind the scenes Just mock you till delete or mock you till import And now I can go back Reboot to get into the shim mock manager that allows me to change the states and shim So the great thing with all of this is that you don't need to remember a long open SSL command You don't need to remember mock you till you don't need to really care about the commands that come with shim mock you till FU boot manager all these things that control the firmware and Basically, everything is done You're basically hand-olded through the whole process So as you can see now that I've removed the key, it's simply The kernel simply notices that the key is not available and refused to load the module Thank you. Thank you very much. Next up is Denver, Gingrich. I guess I'll just keep talking until we're all set up Surprisingly, I have nothing to say this morning. Well, you see normally I just you know Rabbit on about whatever whatever comes to mind, but somehow it just can't quite seem to fill the space between the between the acts today So My cover Yep, so we could for example observe as you know laptop gets set up Sound gets set up. Oh, no, he's ready. Great. Okay. Let's go Almost well nearly ready. All right so My name is Denver also known as OSS guy I Will be talking to you a little bit about Sopranica here So it's a collection of projects as you can see and it helps you generalize Phone numbers so you don't have to use your phone if you don't want to So as you can see the primary production Deployment right now is this jmp here. So we will go to this website Which if the Wi-Fi is still working great should come up quickly great So this is jmp So you can see here a little bit about it if you have a Jabra account already. You don't really need to do all of this stuff so You have a Jabra ID all debbing developers have one It's your username at debbing org and then you can use a Jabra client so we recommend Conversations for these two and then there's also one for iOS if you have to And then so that now that you have these two you can just get a phone number great. So I Have this phone number. So I first need to enter my Jabra ID But just to kind of show you how that is generally set up So we have something like gajam here, so we will edit our accounts and we'll add a new account So I have an account that I want to use It's a very unique account very nice So this and we will just Rename this one. It's a little nicer Okay, great. So now we have this account. Oh, where did it go? Where did it go? Was this not active Active There we go. Okay Yeah Okay, anyway, it it is. Yeah, maybe it's at the bottom already Anyway, so we are connected to this one So we will enter our Jabra ID, which as you saw was JMP live at We'll connect again Great. Okay, so we've got this you didn't see it on my screen But I did receive a notification about this So I'll show you this here Great, so we got this JMP verification code very nice So we'll put this code in here and hit Smith and Boom so that is now my JMP number So now we can do interesting things with this so if any of you wanted to you could text that phone number and Things would show up here. I'm going to do that myself unless someone else beats me to it Okay, so I am sending myself the message. Oh, look, we have someone who has already Oh, there's a few people who are talking to me already Great surprise surprise So what do we what do we have here? Okay. Oh there we are. Okay. Yes lots of people Okay, so we have all these people. Yes good excellent and and This is me. So yeah Wonderful. So now I can reply to one of these. I'll actually reply to This person Because I don't actually know who they are, but it looks like they might be from the Montreal area. So So right great and then oh right this person is not in my contact list So I'll just add them to my roster here a second Yep, good, it's fine. Oh Apologies, there's a minor a little Yep, the plus is fine. The plus is fine So great and then I will Say this again, okay, and Then you can see once they're in your roster You'll get this a little green check mark and that's actually a message coming back from my carrier Saying we have delivered this message To you know the carrier on the other end. So this is all native through XMPP which has delivery receipts So we just pass this through here. So this is great And you can do all of this just like that So I don't know I don't know What's that oh, yeah, sorry sorry there you go that's the that's the number there and just to kind of Yeah, what how can I keep that number on the screen there? I'm not sure anyway, so just remember that number there As I look at other stuff on this page So scrolling down here you can see making and receiving phone calls So it's not just about text messaging. Although that's maybe the the easiest thing to use it for you can also You can also receive and make phone calls so by default when You are When you receive a phone call it will go to voicemail directly if you're not logged into your SIP clients Here's my SIP account down here if you're quick you can grab that password and then start making phone calls as me but but yeah, that's generally how you would do it and Yeah, so I'm just going to do that right now Hopefully I'm quick enough to do this Okay, so I'm calling my phone number This jmp number here, okay, it's ringing the quick brown fox jumped over the lazy dog This is a test message Great. Okay, so we send this text message. Now. Let's see what happens. Oh my messages are flashing Okay, what do we have? Oh, okay, so we have subject what voicemail and we have this voicemail thing Oh, that's not too bad. I transcribed pretty well. So yeah anyway. Oh you did okay? Thank you Yeah, okay. Oh great. So we have this and you can see it also supports non-north American phone numbers here as well and Yeah, that that is to say we we can receive from these We cannot yet send text messages back to these but you can definitely receive calls and and that sort of thing Sorry two minutes. Okay Great, so yeah, you can see how it transcribes the call and then you can click this if you're using If you're using Conversations, which is the recommended Android XMPB clients This will actually show up as a little like play button And then you can just hit play if you want to listen to it and yes more things So I we do support emoji of course. It's just that my machine does not so So yeah, this would look very nice in conversations. I'm sure you'd see like a very nice Happy face or something like that. I'm not good at interpreting that one the right there so a Taco, okay, excellent So yeah, anyway, so this is This is JMP We are the kind of the next countries. We're interested in going for our The UK and Germany that seems to be where most people who are interested in this sort of thing reside who are not in Canada or the US? And then I'll just show you here Where you might want to go. Oh, there's even more messages so many good things So go to support here and this if you want to Chats with a smore about this you can join our Our chat room here. Come on you lucky browser So yeah, you can join the chat room and now I'm in the chat room as oh Someone has found us already. Okay, great. Well, this is good. So I'm guest to guest to great Okay, and yeah, so we we chat about lots of things in here and of course you can you can join this chat room from From your XMPP client directly if you like so yeah people are typing stuff in here saying hi, maybe yes Okay, thanks very much Thank you very much. Sorry. We almost had a bonus demo, but everybody kind of went to the right time So you've been a lovely audience and the next round of live demos will be next year in Taiwan. See you there