 Nože... Jsí! A no, mám ta druhá, že jsou jenom pobolené konektor. Ale ono můžem si vystačit a jistí. No, je to tak jednoduché není to, mám totiž níkde nikdo na kvinění. Či to jené jsou ty, co? Hm, topný, topný. Ono chodí s tím, že nítíko, česná ta, ale... Uff! To je to, že jste jen ty, co? Dnes to je dělala, já jim zvuknit, co jsou dělala. Jsou dělala, co jsou dělala. Já jsem držila druhce, takže to kdy to jenom veľmi zlechka. Nezpalou to jako... Jo, jo, jo, tak. Vlastíky, o, o, o, o, o... A, a, a, a, a, a, Sy десяčný... ale ještere, mě níní tu věc. Jo, jo, děkujeme. Já bychom byl takový vrchu. Prochynatící. Je to. Na útek. Tu se asi tu cohvídám. Peri. Už to ho se dolo? OK, so for sorry for the slight delay. I'd like to welcome you in the last session of today's DEF CON, flighting talks and we'll offer the adu. I give the word to Shimon Priatka, who's going to tell us something about automated visual testing and the limitations. You have your 10 minutes. Thank you. Hi everyone, my name is Shimon Priatka and today I am going to talk about visual testing. For me visual testing is finding visual differences between images in a simplified manner. In software development or web development it means to compare the current look of our web application against our desired look of the web application. In the past it has been made manually. As manual visual testing it can be really boring, time consuming and it will just ruin your day. So, good news. We came up with a software solution among others. How does our solution do the process of visual testing? Well, it's really simple. You write in our cooling test. After the test has completed there are going to be generated some screenshots and these screenshots are going to be compared against the desired appearance of your web application and the result is sent to the web manager. In the process of visual testing you may encounter situations where you somehow don't want a part of the web application to be compared. It can be like some date field on the web page that is causing problems, that is causing the test failures. So, we involve in our solution masks. What is a mask? A mask is simply the area of the image you want to ignore. How do you create one? It's really simple. All you have to do is go to the web manager and click and drag the area you want to exclude from the comparison process. Now you may be thinking, well, it sounds really cool. I want to get involved in visual testing. What do I have to do? This is it. You have to just pass these few lines of code to the RQlean configuration file and it's done. We also have our server site of the application hosted and deployed on OpenShift. All you have to do is get going. What do we want to do in the future? We want to integrate our project to communicate and work with Jenkins. We want to scale it up, prepare it for the use of the larger, more complex project. And that's when this gets done, it's going to really stand out among other products like this one. So, that's all from me. If you have any questions, yeah? Can you repeat again? Yeah. Good question. Well, the load of the page is made by, like, the, you know, Fandom.js, Chrome driver, whatever you choose with the RQlean settings. It's not what I'm, it's not what this application is responsible of. It just renders the page and with RQlean Graphin, it loads all the elements it has to do and then it begins the process of comparison. Yes? Oh, it's RQlean Graphin extension. Yeah, I'm... Yeah, I see it. Well... Yeah, okay, I'm going to write the project name and I'm just going to make sure because it's... Or I can write the URL to find the project. Yeah, yeah. Yes? I need to turn off the microphone. Drop the mic. Show us your githouses. Zero, zero. E-A-S-S-W-O. Graphin rule test. It's currently working from the original version. So, that's it. That's the name. Thank you for your talk. Do we have Dabar Shirei here? No, no, there's the presenter. Dabar Shirei. Dabar Shirei. Dabar Shirei. Dabar Shirei. Dabar Shirei. Dabar Shirei. Dabar Shirei. Dabar Shirei. Q&A. A z naughty, než velice mě dozenových. Je tím, že rond troll... I do IRC, I have an email address and I sometimes blog. It's very easy to remember, Rishi is a lost case, so it's very simple. So the idea is to use to expose Google Drive somehow outside of a browser inside your usual desktop native kind of applications. So I am talking about things like Nautilus, an image viewer, maybe a file reader, I mean a PDF reader and things like that. Also inside the toolkits file chooser widget, so GTK file chooser, which means that if you are writing any application with GTK, it should be also able to open stuff inside Google Drive, open close, sorry, open save, create new and so on. And also some big applications, for example LibreOffice. LibreOffice also actually is supposed to work. As in work as in it should be able to open a file, say an ODT or an OXML file on Google Drive, save to it and so on. So this is a screenshot. It's my own Google Drive account and you have iofgnome. And I think, yeah, and you can kind of see that it's the same picture which is opened in the browser and also on the file manager, so Nautilus, iofgnome and the browser. It kind of works. So six years ago, in 2009, there was a summer of code project. That's when it started. It was by this guy called Thibault Sonier. It's a French name, I think. I don't know how to say it correctly. So back in 2009, there was this summer of code project to somehow do this. It went quite far. The code was quite usable, but not quite there to merge it. So it kind of bitrotted after a while. And there are some problems with Google Drive, which make it kind of hard to actually make it work nicely. We'll see why later, which is, I think, mainly why it bitrotted. Six years later in 2015, some things had changed. So Google Drive had a few iterations of their web API and the calls that you make to the server to talk to it. They changed and so on. A lot of things changed in those six years. But finally, we were able to merge it after some back and forth, after some modifications of the old code, so on and so forth. So if you are using Fedora23, it should be there. I hope you are all using Fedora23 or GNOME 3.8. You can look it up for your other distributions. It should work. So it was not just me. It needed reviews and discussions and so on with a bunch of people. And so these three people are mostly involved other than me, Alexander, Philip, and Andre. So here's another screenshot. This time it's events working with, I mean, it's opening a PDF file from Nautilus. And I think the same file is opened in the browser. So it's the same file. So how does it work? So under the hood, we have this thing called GNOME online accounts where you add the account. And then once the account is there, the application just uses standard glib gtk API, like g file, g volume, g mount, whatever, g file copy, g file open, and so on. It's the same thing if you have ever looked at the GNOME developer documentation for file access. It's just the same API. It's kind of an abstraction over various implementations. So inside that API you have this thing called GVFS, which does actual implementation for talking to the server and so on. So if you want to open your Google Drive in any GNOME, gtk, whatever application, you just use a scheme. You are like this. Google dash drive colon slash slash. That's the scheme and then you put in your Google, whatever, at gmail.com. So here's the thing. This is what took six years. So the main problem is that Google Drive is not POSIX based, which means that if you create a file on a POSIX kind of thing, on a file system, so you do touch slash temp slash foo. So slash temp slash foo becomes your unique identifier for that file. On Google Drive, which is database based, even if you can sort of see things like a file system kind of thing, even if you can sort of browse it as a recursive, sorry, as a hierarchical file system, even though the UI makes it look like that, internally they are all IDs. So when you create a file, you don't really create a path. You create a blob, like an ID. So every time you create a file, the application thinks that it created slash temp slash foo, whereas the actual file system or the database thinks it created some blob ID. So there's some disparity between what the application thinks and what the file system or the database, in this case, thinks had happened. So there's this thing called a volatile path. I can't really explain what it's all about. So unless you're an application developer, you don't really need to bother about it. And you only need to bother about it if you're creating files, like not if you're in a read-only kind of mode. And if you need to bother about it, look up this thing on the GNOME developer documentation. I think you can just put it in Google and type GNOME, whatever, blah, blah, blah. It should show up. That's it. Yeah, yeah, yeah. Yes. We basically, what we do is, like if you're using the Jilib APIs, then we kind of prohibit you from creating another file with the same name. However, if you already had one, we kind of try to deal with it. But you cannot create another one using this, our API. That's the best we can do. And there are some gaps, small gaps which need to be plugged. Hopefully you'll never notice what we'll get to plugging them. Because they're all due to this whole database kind of thing. They need greater changes in the way things work. I think so. I would expect the server to take care of it. It shouldn't be very different from what happens when you type on the browser, right? From two browser windows. I think so. Microsoft has one drive. I think it also is similar and Dropbox. They're all kind of similar. They all have this blob. Yeah, exactly. That's it. Okay, thank you. So here's your scarf and your ticket to a difficult party. We have Rayleigh Verharz. Who should be talking about block normalization? Okay. Phil Sutter. Yep. I'm going to use your own laptop, right? Mm-hmm. Okay. Now we have Phil Sutter talking about better mobile e-mail. Please do that. Do better mobile e-mail for me. I'll hug you there. Let's see what happens. Okay, I'm Phil. I'm working for Red Hat. And I have no time. Still, I want to talk to you. I have, well, while thinking about something to present about, I clicked through Paul Fields slides about better mobile e-mail from two years ago. And I thought, well, been there, done that, still doing that, but I've improved a little bit over his. So I thought, yeah, let's do bashing. More or less, no, not really. Okay, so why do we talk about this? I'm a notebook user, obviously. So I'm sometimes offline, still happens, and I want to be tolerant to that. So I don't want to lose my e-mail and I want to at least prevent, like I'm sending e-mails while I'm offline. And all this, I'm doing all this, I want to have my mud in fast as fast as it is normally. And another benefit of my setup is that I basically do backup the Linus Torbal style. So I replicate my mail gear, which is a bunch of gigabytes meanwhile to several machines and if one breaks or I mess the setup on one, I might still have the others as long as I'm faster than the replicating process, but that's a different topic. Okay, what tools do I use? Obviously I use mud, just like Paul Frills, and the motivation behind this is exactly the same, it's quick, but in my case, I didn't like it so much with SMTP and IMAP. So you always have to connect somewhere and it does caching, but it doesn't do full caching and whatnot. We'll address this. Another thing, central point in my setup is my own MX. Basically I have an IMAP server running and this will hold all my e-mail in a central point. It will retrieve new e-mails and I will use it for sending. I have prog mail set up there and fetch mail and whatnot. Everything you don't want on your mobile device. For the synchronization, I use MbSync in contrary to what Paul Frills used, which was offline IMAP. I used that once too or actually quite for a while, but it's Python and Python is slow and offline IMAP is slow in Python. MbSync is a lot better in my point of view. I use ESMTP, which is a very tiny relay only MTA. I can only use this for sending e-mail and I don't need to retrieve it because I do everything via IMAP so I don't need to have full post fix running on my potentially 10-year old device, which I have in private. And the only thing that I had to add was queuing support which is there since then. Another thing, another goodie to all this screen, which I use to make things a little bit more convenient. Not a big thing. I'll quickly cover this. OK, how to set this up. First, MbSync, which is the biggest issue there because in its configuration as cryptic as offline IMAP is. I don't have anything there. But at least it's a bit quite straightforward. This is already quite the whole configuration. It consists of two store definitions. A store is basically anything that holds e-mail. So I have one for Meldia and another one for IMAP. And I have two channels one which does a channel says what to sync from where and one is only for the inbox and the other is for all the subfolders I have in there and some patterns because it's Simbra. I have a shell script which runs MbSync in loops and that's why I have two channels. The inbox is synced every 10 seconds and the subfolders only every 100 seconds. Makes totally sense. I have quick e-mail and it doesn't always pull through everything. Next thing is ESMTP setup. This is the first two lines are basically just for local delivery. So it calls progmail. Then next is my default setup something I forgot. There's identity support. So the remaining part is basically for when I'm sending e-mail as a different user I'm using in this case an SSH tunnel to connect to a different mail server. OK. For queuing support I need a wrapper which does the enqueuing in case no mail server is reachable and make you deliver the name has it all. In case initial delivery failed I need a cron job to regularly retry. The f-cron teaser is just a simpler version. OK. Finally to hook this all together I have a screen RC which when I call screen with that configuration it starts for me the MbSync loop and mud in a second window at the same time. And I have bindings for instead of creating a new window directly spawn a new mud because it's single threaded. That's basically it. You can read the full story lots of verbosity on my own Vicky page. There are project pages for ESMTP and iSync which MbSync belongs to and these are the important man pages or readme's that for. OK. I have a few minutes left. Three minutes. That's cool. One thing I could show you is that screen setup. Does this work? Yes it works. So here's MbSync running and at least the loop and it couldn't connect. I have mud in the second window and control A and C spawns another mud and if I close it the window is automatically closed and my setup is actually a little bit more complex so I have it better described on my Vicky page and if I close the first window or the second one in this case it will close the whole screen. So, which adds a little bit more convenience in my case. OK. That's it. OK. Questions. Did anyone understand what I'm saying? Does anyone use email? OK. OK. So you can understand me. Max turned on. Well then, thanks. So let's try this. Everybody gets to read my email box. Sorry for that. It's possible to switch it off but I don't know how to do this. I do everything. Total transparency, right? Total transparency. All right. So I know I'm between you and your computer. Yes. So I'm Diane Mueller. I'm Project Lead for the OpenShift Commons and for OpenShift Community. So I do community management and I'm going to ask how many of you are you all red-haters? Is there anyone not a red-hatter? What company are you with? Freelancing. Cool. All right. So there's a couple of you. So what we're trying to do with OpenShift mostly when you're a community manager what you're doing is begging people for a project. So it's the truth, isn't it? We're called cat-herders and people who try and bribe you with beer or swag or t-shirts or free hosting tiers or whatever. We've tried everything at OpenShift. Trust me. I've been doing this for many years on lots of different open source and open standard projects and it's the same all the time. It's a unique project in that it is what it's doing is bringing a platform as a service to your theater and it has many components to it besides the code base that we work on ourselves. So there are a lot of things we integrate and pull along with us that we upstream. And with the new OpenShift Origin 3 we are pulling in Kubernetes so sometimes when I describe OpenShift these days I say it's a very advanced Kubernetes distribution and we're pulling in Docker we're using Ansible we drop puppet we might bring some puppet scripts back in someday but there's a lot of other communities that we touch and if you go to GitHub, I'm going to ask you to do this Adam, you're up there, you haven't done this before go to this GitHub repo and like us I'm trying to get that by the end of devconf to be a thousand I will like you back star me this is the reason I said I would do a lightning talk I will use your email tricks go to GitHub by the end of this conference we are going to hit a thousand because I'm trying to beat the Kubernetes stars I'm also on the community management calls for the Kubernetes with a good friend of mine Sarah Novotny so this is my real call to action here because there's lots of activity in OpenShift we've got tons of people contributing code lots of companies there are 35 different companies besides Red Hat that have contributed since the beginning of the project to OpenShift tons of code contribution going on and that's really not enough to sustain a project it's just a bunch of people working on the project together which is a good thing and I did go to the office and there was a huge sign and it was basically my mantra because I truly believe that there is a new model for community development and we are calling it a commons so most of you know that Red Hat is close to Boston and Boston in the middle of the city there's this thing called the commons where everybody had shared resources that's where you bring your cows to graze on the grass you set up farmers markets now if you're hipsters in San Francisco so this commons model is slightly different because when v3 came out for OpenShift we did a complete architectural 360 we dropped Ruby, thank god and we switched to rewriting it and go my code name on twitter is pythonDJ where I really like to code and we had this huge job we had 2.5 million applications running that's a lot of developers running an OpenShift online who are all happy we had over 150 deployments that we knew about those were enterprise folks who had deployed OpenShift and we had to get them all to migrate to this new architecture and there are five evangelists and two product managers who are all the time so it didn't really scale so what we decided to do was change the model so it would be more peer to peer it's kind of like stepping back and getting red hat out of the way so what we did we started commons briefings almost on a weekly cadence depending on my travel schedule I host commons they do demonstrations of different functionality identity management is coming up soon yesterday I did one on deploying OpenShift on OpenStack with Mark Lamarine and we do deep dives into the projects and then we have a great Q&A in conversation and what was wonderful about yesterday's thing is that four people who I didn't even know had OpenStack deployments were on the call in the Q&A session asking questions because in the past people just deployed OpenShift and it didn't use native OpenStack resources and Mark was talking about a reference architecture to start using things like Cinder and making it work with the resources better and more integrated so it was really cool we're starting up a whole bunch of sigs there's one for edu.gov now there's an operator's sig we're starting a telco sig and we'll probably do one on OpenStack shortly and I just got asked to start an OpenShift on Centos one and we have lots of events so there's lots of people a lot of them are origin deployments I went to the OpenStack Tokyo conference and it's almost like coming out of the closet I gave a presentation and at the same time Semantic gave a presentation on Platform as a Service and I was a little worried because they had listed in their abstract all the different Platform as a Service Cloud Foundry, OpenDias Serano, all these other ways of doing application deployments and I was kind of like oh I should really be in their session to make sure they don't trash OpenShift and what they did instead was they completely outed themselves as huge fanboys of OpenShift and trashed the other three folks and talked about different things about our new architecture and people came up to me afterwards and said where were you, you should have heard this so luckily it was recorded lots of upstream projects we now have, we had 35 folks who, different companies that have contributed we have over 175 organizations that are publicly referenced referenceable companies that are now part of OpenShift Commons so if you go to the comments.openshift.org page you will see a huge list of logos and different projects there's a lot of the open source projects Centos, Fedora, things like that but the majority of them are either people who have integrated things into OpenShift upstream projects that we upstream or people who, most of them are folks who are operating platforms as a service that use OpenShift or enterprise deployments so there are on the mailing lists over 550 people talking to each other there are a lot of people if you're from Red Hat, join it I do a lot of work with the essays and the consulting services briefing contents just this week Infosys, Threescale and Weaveworks joined and they're giving introductory briefings shortly on their services Infosys has a huge OpenShift POC going on right now so we're really thrilled to have them on about three folks a week join so it's a really growing ecosystem lots of people in there what we're doing with our different upstream communities get up cloud is a platform as a service that's down in Brazil they've been running on AWS using S3 storage they are porting their production platform as a service public offering you can use your credit card and swipe they've got all the integration done to Azure in early June so they're doing some great work we're working with the Azure folks to get .NET containers first class citizens on OpenShift Kubernetes I think I said already that we're going to I think in my humble opinion that we're their best enterprise root to the SCRIX either so thanks there's a lot going on so please like us on GitHub what's that? 977 all right that's great by the end of the week I'll have a thousand and then I think what's Kubernetes at I think they're around 2,000 I was like no I want to have more numbers than the Kubernetes guys so that I can prove that statement that we're the best route to enterprise Kubernetes so thank you very much party party oh I don't get a ticket all right perfect all right guys that's it it's beer time stop writing e-mail servers stop coding get all your friends to like us oh okay so we're not going to catch up to them I can do it I'd like to be over I think to be at least one tenth of their department you just need a bot to be in that that's how it works 977 I was just talking like a kid I have logged you from everything I see do we hot now? no I had this different definition of mobile I thought you mean this e-mail on this is crap I guess I would have chosen it was still interesting I'm not the power not such a power user I just did evolution and that's it all right thank you very much so you're there for e-mail so you're there for e-mail I think that's a good thing I think that's a good thing nobody bothers me so I can focus on doing some other work I started doing crazy things with e-mail I started having this encrypted e-mail I sent myself it's like ok that's not reachable so I started liking the fact that I can do searches in my inbox and then even like e-mail the amount of e-mail I get within Red Hat is so huge that I basically decided to only read e-mail in the morning and sometimes in the once in the evening and for the day I just switch it off if it's really important there's an IRC otherwise I would just constantly get notifications and just do e-mail I don't look at notifications I use calling I sometimes just go to mud and look through the folders and my daily phone and on how much concentrated I am but if I want to I can read a new e-mail because there's a memorandum and there's a text of the e-mail so do you know the amount I get for the sidebar I used that once because it used to be very public but meanwhile it's public area it is a new way on many basis see what folders have new files have new mails in it and you can direct the junk from one to another there was some hidden feature in this so it creates new medius so I have a small script which checks which goes through all the sub folders and creates a mud compatible mailbox file which I can source which means I have so many mailboxes defined that my sidebar would ever flow anyway and also since I normally use this for window setup on my small screen I don't want to waste any screen state as you have seen probably there's barely space for the e-mail address and the subject so I mostly read only half of the subject before I delete the e-mail so but if you have the screen why not we do enjoy my room and come semester at all see you tomorrow in favor so I'll be here tomorow didn't know it but just me they were like we go eat in CA. I was like no still going on so I have to search them ...jáme nas v tom hodě, kde jsou kámo... ...a když můžete udělati nějaké výstře... ...přišl si nějaké výstře... ...tím tyto problému nevím, že si to nemůžeme. ...tím to také rád... ...přešli jsem se vysokým výstřem důležit, a to se vám nekto vyděl...