 again, and we will be moving the second talk for tomorrow that is made from Damiena Scacia-Flatte that we talk about fireworks that could be your marionette and Damiena is a part of the Moduletale community and there is a developer so thank you and enjoy the talk. So let's start with the topic, the views are clear, I'm marionette and I think that everyone know fireworks and I think that's right to be discussed in this room and before to start to talk about the technology I want to start a big talk about me just on the side of the ground because I have a little budget room I am part of the Moduletale community, signed six years now, part of the Moduletale program inside the webcounsel, Moduletale speakers like many others in this room I have contributed WordPress as a part of the classic president of WordPress for now and president of the Italian suggestion about professional and I use fireworks for my job but not only to start the web, the bag as many others but also to automatize a little things that sometimes are penalty to work with customers so I'm marionette and I know many of you remember this on reddit, forums, vicar, whatever this was a few years ago, it was like amazing, now there is a program of developers that are doing scripts to not work now it's quite normal but you can find others on reddit whatever but people is asking if I will automatize everything I do in my daily job because people ask problems sometimes with the buzz but for developers it's common, when we do some things that is always the same, we want to script in and I put this script of GitHub because you can find and I read it, this extract is about a chat let's say there is someone who is reading inside the terminal, oh it's me and you know, last week it's me again and I knocked down the robot that's okay, probably I'm doing the same script for you, like changing the volume I have a SFD, I have to move the cursor between monitors so I'm not the only one that is crazy and automatize things how is it impossible today with browser because now in the web it is quite important to know these kind of things so I started thinking about when I was doing these slides about my personal rules for automation if you do another process for more than two times, that is always the same, always so click there, download something, write to someone or whatever on the computer of course, you can pick up some mobile, this is for simple and very quick easy and I do answer there, but on computer, the new kind of replicate is critical so this is the point, understand what I can replicate because usually when something doesn't work the PI whatever is kind of difficult and then you want to relax more because maybe it's something critical, I don't know, backup, production, you know these kind of things testing you want to be sure that everything is fine because as developers we don't sleep that well every night because, you know, it's a problem and after that it is boring because when the developers always do the same thing, it's boring after all we have computers, our machines, they are perfect to do always the same things they are made for it, so why not use them for boring stuff and of course that the missing step can cause issues and again, the backup, I forgot the step, the backup is broken, it's a problem so automation helps us on these kind of things because we are sure that everything is always the same it is time to do a script of course so this is my workflow, when I have a job for my job, I like to do a script and during the time I saw when I was working in the last ESM, I love a script of course I'm the only publisher because I like it because usually when we want to do something someone else makes the same thing, so they want me to change a little bit for their needs so it's time to do scripting, I don't know how here are many levels to do scripting like Bash, Python, Node.js, I don't know show your hands, okay, anyone, okay, so it is we are not looking for a button, a button for the terminal okay, so starting with okay about browsers as scripting there are three ways to do that the first one is web extensions web extensions for who doesn't know and gets a talk tomorrow in another room of the JavaScript one, web extensions are the bounds for the browsers Firefox is famous because there was the first one in the station and these are the biggest marketplace for extensions so you can find everything you need but as sublimitations but it's very easy to do one we are scripting with CLI of course because I think the results are common the last one is unit test system and the truth problem that offers the web Firefox as an example and just because we are in this room we are taking Firefox as an example so what is of these three options the most powerful and the most fun the third one and now we will see why okay, starting with web extensions there will be ads on my code for the last years about it I'll pass them and the first one is cross browsers completely linear with this API you can do it let me say extension that works in Firefox, Chrome, Opera is I don't remember and now the status, etc so the biggest ones works cool, completely linear, we like it the CLI is stable, which we value a lot this was the biggest point because if I develop a web to test every time in Firefox there is a new version can be a big problem when you have 10 extensions is a very big problem but with the web extension now we don't have problems like me, I have 10 extensions, works, signs, years now with Firefox and I don't have to care about Firefox in this changing of Chrome because it's stable so it's good for developers the interesting fact, again because we are in this room Firefox has no APIs for web extensions compared to Chrome because Firefox was from the start very expandable for us there is a huge marketplace of users if you want to use your extension you can reach like every Firefox user is quite easy so if you want to do extensions for this kind of event, it is the proper solution the problem is that it is not a specific kind of task so, if you are creating your own the missing parts of the words are completely different because comments are different we have only specific features available like switch up for the region, like in Firefox it's only for very high scale users the ones that use the terminal as an example and again it's useful only for specific kind of tasks because the comments are not so many instead, you need a system and that is probable are very very powerful because we are today now compared to Chrome that is most user and now there is no JS we have Selenium that is most furious the problem can be that it is Java but we will do this for all the languages so it's not so much a Selenium problem the problem is that Firefox is supported to the 55 version now we are at the 65 because it is supporting the old web browser the Selenium version which is only one so now Selenium is not working with Firefox since two years so Selenium is a manifestation for Firefox and Chrome that is Selenium AD that fix this problem we are about to publish a Firefox in our JS but it's experimental so experimental is not so good for us but we use my right for Firefox and that's how Firefox runs or it but it's in Python so I think that you everyone knows Pinocchio Pinocchio is the most famous magnet in the world but the one is that this one is the original magnet in Italy if you go to Italy, Pinocchio is this version so I just want to say that because no one knows that but Pinocchio is quite famous in Italy and we have the right one so what is the magnet in the deep world? the magnet came out for Firefox magnet is a remote protocol this is the definition from the documentation of Mozilla that lets you to communicate with Firefox quite easily if not, then you go buzz at those like Firefox for a while at the time also with Firefox OS as an example and this works because Mozilla uses it for the unit tests so we are using something that is usable in a little project we can see so the question now is how to use it for something that is not for unit testing in a bone magnet in your Firefox the first step the problem is that you need a specific bit of Firefox because it's all included only in the developer edition as an example or in Italy because it's used for development so this bit doesn't take a lot of sense to remind it the next step is to style the drive, the framework that is for Firefox is not yet supported and then if I try the latest version this is very important in the past because now with the latest releases of Firefox this stabilizes everything so yes, there was a problem when you had the last version on my left but the last version of Firefox wasn't working now but as a release of May of the last year so it's quite stable so it's not a problem anymore but a check is always good the second step is to enable it you can enable in the settings and set it out because we don't open a socket connection or you can choose to execute Firefox in the magnet mode this is all you can do with Firefox in that way so how works is a bridge between your script and Firefox itself and it's different to use the webtoon's protocol because it's better to use the webtoon's protocol but it's not powerful like a military system because you can control not only the web view but also the interface of Firefox so it can be powerful for specific kind of things more than usual and it's buzzer than the web drive at a specific standard from which you see so this framework is the wrapper of this technology so we don't need to speak web drive but we do use Firefox so my story is that as of the 1st year I used Firefox as I said and I tried to do an Android like I did many others in this room to use Mozilla technologies so I don't know how many here promote Mozilla technologies at their job I don't know how many of you need to go on about this point so I chosen to use Firefox also for this because I don't want to use Chrome for do automatize these kind of things I said how can I do it in Firefox? I started using for my job but that's as well all the web open source communities and my use of workflow when I have to do these kind of tools is that I need to pass something in that time but pass later because usually when I saw an experience there are two ways of transcript I want to learn about everything and then I pass it because when there's something critical in production I don't want to change anything I can work later because there is a huge amount of data so it depends on the certain point what I have to do analyze the flow of the process of how many staff have to click change and differently I leave the different parameters usually if you open the file it is more easy that's available to people or I can open the manually there because it's much easier depends on what you need and how much priority I need to do for my customers and that way if I need they have this mode because Firefox supported now also all that we use these two so I can not do it create a spaghetti code as an example so it will be clean and that's the right thing that I make there are ways to configure Firefox because anytime I forget so that's all the people that's about anything so let's start with the most famous project I did this one is for the WordPress community to manage theization of streams because in the WordPress community I have to do the discolour the consistency to run that show you how many versions there is of vistas of vista in the specific language so I'm going to do that problem of a certain number of buttons located in 14 ways different so it's a problem for consistency and I cannot manage 52,000 programs and review all of them manually so I did a script that does it then a content file I can reject all the wrong localization and now people is contributing and that means that some officials like the players in the localization etc. because this tool the WordPress doesn't have a CDR or whatever so I was making something that I can run where while I was working but fixing the localization for all the WordPress users in the case of the Italian language it is used a lot these two the second one I did a full job is an exporter for WordPress faster but he don't have the permissions for doing it there is this story I came up with because of time if you know that customers read more over than 400 posts then you have to export but doesn't have that has access FTP access admin permissions API block and everything so the only way was using the WordPress and I have done it we don't need it we see Firefox is a language mode because where I was changing I have the script there running this is the past this is my website you see open automatically a new tab waiting that is loaded and move on to the next one when the list is finished you will use the pagination move on to the second page over there for everything that I open I have the HTML two parts later because I have two parts for 100 posts the definition this hosting was very good so I didn't want to do the parts later I'm not happy with it later but at the same time before the other company was doing the previous website closed website I had the data so this is a simple way that the user can export a lot of posts from there part seven and prepare for a new service without errors access so our works code we love code we have the connection we import the library we start the session with Firefox we use selectors such as selectors we pick the all the title in the page we do a loop from the one we open a new tab with the clicking Firefox and that's the corner is a way to open the link in a new tab in a way I don't change the page I open the page in another tab write the HTML of that page because I can't actually read all the library in Python it's very easy good for spreading as wish back to the previous window with the last one in this way there is a script to the loop and then all the pages as I love the users without using any other kind of tools and work it I say to the customer that they need 40 hours to start off too so these are the ways I can help you and another thing that I have to do when I conduct this conference is I need to support from Google Analytics 170,000 URLs a lot I can't say that a lot from Google Analytics the promise that the web interface supports only 5,000 per page to export so you can understand it's very very difficult to do manually and the PI of Google requires a license and we don't want to play Google so our idea was to you know a script like this pagination download and with Firefox to take the download button and I had to switch the next page so I can download the game I don't know where else and we know the script that we have we compile this list with another one because later we have to move only a little bit of visual from the website so these are an idea of a problem on to us all and something that I can only use with the next customer or the same customers but crazy because after all the script will work in the time Python works the kernel is stable but the rest will work so to conclude from this artist we have true blog post written by a journalist a lot by Mozilla text speakers that display in the details editing or works there is after the documentation because there is the documentation and it's very, very good documentation the rest of the show is very good documentation and that's it so and if you have one of your questions as to call Python 3 yes in Mozilla they're planning the promise that Mozilla needs a lot of Python and a lot of tools of my net doesn't support Python 3 so the problem is on this side and as we saw by the ticket before to go there they are very so I think that before Python should down that you guys apparently will have the support of Python 2 but in the meantime still works so these are good exist in other languages no JS the reason okay there is the potential for Firefox using the back tooth probably but it's experimental so soon it will be but using the back tooth okay other questions there is one okay thank you for the talk and I've seen you were using a middle click to actually open a new tab in the previous automation script is it possible to be more low level like open a new tab yeah yeah you can do it because you have good reactions and you can do it in Firefox I chose a little bit of a way to actually what they need but we have good reactions that you want with the mouse so you can do what you want basically okay thank you okay presentation just to comment on the root tab thing that's something we implemented for Firefox 6 C6 so we have a new command now you can run to simply open a new window or a new tab because middle click doesn't always something I want to mention is you mentioned that it's today we stopped the port for Firefox 55 that's only true for the Firefox extension which was working with it yeah because we switched to quantum and didn't allow those old extensions anymore but since then we have get a driver which is a replacement and it's fully working with up to Firefox 6 C6 and with the latest version yeah I saw people that are still using my red so there was quite a little talk about some people and I just want to mention that's something you didn't know maybe yet we wanted to discontinue tomorrow client pricing package because we want to have all working with a pack driver so it means for you in your cases you might have ok and if you have more questions about knowing it you can also come to me later I think any other question no ok so thank you so much Daniela