 Well, welcome to all. When I was contacted by NXP to keep in charge this job, they told me about a challenge. After the first week I discovered that they was not joking. This is a sort of cute adventure, where cute demonstrated in my opinion to be one of the most flexible platforms gradually adaptable to, not only to conventional situation, but also to very теперь envid biased and difficult application environment. This is the reason that I propose to show this use case. Just a word, what is? Smart Studio is a big platform running on themstop kaj je odstavljenja, komponent, da nxp vse za mobilne odlične odlične, tudi smalječe, ampulječe in dsp. procesu, ki je v mnosti dnev, in tudi in hrvodno interfacilaj, zbesej z dll, zato všeljene in linuxi, zelo. in namočnjama srednjih data doretenih aplikacijov. Zma Studio so je vzivno vsej konfiguracijne vsej nisičnih schvore in konfiguracijnev z vsej NXP, z vsoj skupovanih in veli deloviti tudi Samsung, Huawei, LG, da je naprejveno in nekaj je vsej deloviti of these components inside of the smartphones. And so, in xp develop a series of small boards based on embedded components, for example, maybe Raspberry Pi instead of BigGalbon Black or so, similar. To simulate Android contents in their smartphones and send this data stream. to je evoč, da vse zelo zeloo vzluša, da je tudi veliko, veliko, veliko, veliko, odkaj po vzlušenju 250 milijak silnice. To je imačne, in vzlušenje, in tudi, da je vzlušenje in vzlušenje vzlušenje daj z audios. Zato, da vzlušenje je površeno, da se vzlušenje, in vzlušenje www.englade.com. Maslo, da so vse ne zvedilo... Dobro, je je zvuk, da se ga propozutilo. To ne je zvedil in in je zvedil. Vse je zvedil in je zvedil in je zvedil in je zvedil in je zvedil in je zvedil in je zvedil in je zvedil in je zvedil. rezacitavia s njim je v tem, da smo pojavili v nekaj liquidizacijenom vseveri za vseveri semeni z večer naprej se, da jdi je izgledan nekaj vseveri, s listom, da imaš negori backward rezacijo, dojelji za zreselje, 1.000 različnije nekaj rezel. In iniske ideje, da je to, da je začala v pijatku T4, na kratku Python 2.7, in prijev je, da je začala, da je začala, da je začala, da je začala, da je začala, da je začala, da je začala, prijev je taj počin, tudi v platformu 2.QT5. Zelo je tudi objuzila. Proste, da je začeljno vse začeljna vse, ker KT4 nezapravljava, težda in dokumenta je v kriju, da je objugil. In tudi, da je zelo vse začeljna vse ko je zelo v Pythonu. Zelo vse izgleda, da je to zelo vse začeljna vse ko je zelo v pythonu. Vse je zelo vse začeljna vse, da je začeljna vse začeljna vse ko je zelo v Pythonu. pa vse bo danes mene, da se jaz zelo nesel. In zelo nesel. To je bil inštriba, da pa izgledaj na vse dobro, zelo zelo naša srednjavna, srednje vse pridane, in zelo naša, a zelo naša vse dobro. Problem je, da se pošljajte, naprejskaj srednjeni, in da se pravno zelo vzelo, izgledajte akrične zaprave počke in izgledajte izgledajte na prve. Protovoj na pordu, kako je zaprave, načo je izgleda, načo je zaprave počke in izgleda, nekaj je vse zaprave, kaj je vse zaprave načo začne in izgleda je zaprave. Tako, priječ, prijelam nekaj, R Ready ones, parting fromugi qt.4 to qt t5, piqt.4 to piqt.5.5.1 under the environment of pyton. 27, 2.7, with a strong operation of reverse engineering, just discovering what the application was. labio application logic, so. So there was two phases, a pre-porting, that is what should be izgleda. Tako, najbolj izgleda, izgleda operacija, tudi za mene, zelo sem vsega vsega vsega vsega, ker je to več nekaj neko informacije. Kaj nekaj vsega vsega nekaj nekaj nekaj vsega in počešče tudi č囮jev na pohodljenju cestov, ki so izpojeveno pohodljenje v njič 50% o zeločnosti. Na obradi in... ...kaj smo prič略ili imezaj delošnosti v izgled Stovnih predvjiškelov, kar je lahko stajila, V sej pljene sem pravda, da se bolj, da je mučna, da je mučna v kaža, da je, da jesem, da je, da je tu, da je, da je. Je vse , da na ta vsavstvor, na načnik, po ter za kažavke filmi, po pohitku, da je začal z da je bil prišlad, ki je, zato, ko je, zato odličen, da je še zelo, da početite del nrv, da je bilo to, zato je zelo, da je pažel nrv, jaz sem cijel pajqtut, ki je vseč, da je zelo svoj in je zelo vstah, ki je zelo, nrve nekaj. Zelo v prejvših aplikacijah je tega ozirati pajqtut, ki je Kut5 in pitno, nišare lege. Tako, jen vse inčen bearserade, pa se celo poznat, z n子 odespričnosti in inčenosti, pravno, dobri seh sega nekaj ton, ne playful več dobljeli inčen sega vse obsedijo arhitektur. in rek alphabet ?] that was used also to module part that controlled hardware ask for hardware streaming, and so on. So the first idea was, start to with Qt, use interface, redesign step-by-step part-by-part using the fastest way and with the better resulted results They are using a model-view controller, explained in the exception of Qt, that is not exactly the super-standard model-view controller, but is more interactive between QML, Qt, and C++, creating all the parts that are now... was heavy and very time-consuming in the Python environment, početno, nezajmoj daj in izgledaj z C++ plug-ins, potenjenosti qml. Problem je, da je to nezajzavito, da je naredila. Početno. Ker je aplikacija početno, s Python, run Python,21, and then Python starts the creation of the user interface divided in everything, continuously managing the widgets, continuously managing every element of the user interaction, so there is not the top level that can be extracted to control the plugin and to manage c++ plugin In tukaj, in teori, je bolj bolj, da počekaj, z Pythonom, prišli meseci, informacije in requsti z qt, qml, vse in tukaj, z Pythonom, kreča vrapec za c++ plug-in. Tako, da je bilo potreba počekaj, kako se kompilenje komponencija, was totally lost by the python creating this vicious circle. So non linearity, the problem that the guy is controlled by python and there is the entire feedback of the user interface by python makes this impossible. Also another long time spent over testing to be sure to be in izgleda to, da je bilo poškodna, da je taj problem. Zelo smo vse odrečili, da je bilo poškodna. Načaj je vse vse, da je priškodna in začunil in začunil in začunil. Načaj je izgleda in začunil, da je priškodna, in to je poškodna in začunil. Načinil je vse začunil in začunil. z vzbenim SP. Zelo, da se je veliko delov, ovo je naprej, da zelo vzbagoj, ki vidiš, da je zelo vzbagoj, vzbagoj je veliko in relično, je več svore, in je na pravda vzbeno za vzbenim testov. Zato, iz njimljenj, svoj, da je vzbagoj, nekaj, da je povisno, first master is to improve performances, then we meet and also the team I have cooperated with working strongly on the python side we need to optimize the code to have an idea of what we can do, make our application faster so that we needed to become an application with an application in in some mee modular, so the must find a way to redesign the user interface components in Qt, just note that we have moved and mounted the porting from Qt4 to Qt5.5, instead of Qt5.6 that is already available načo je zelo še veliko, a to, da je, zelo, je nekaj zelo, je veliko jaziljne, ležjene, da je pravdu, je je zelo še jaziljne, ležjene, da je zelo še veliko, jaziljne, alle pravdu ljudje s vsej aplikacije, ko se bi zelo, ne zelo v Pythonu, ne zelo včetno, The web view, using HTML, JavaScript and CSS, was receiving feedback from the Python side and it was drawing the real time data. In in the mix there was a problem of three big blocks that was web side. Kaj je naša začnega? Vse plošče naši plošče bilo v 5, 6, 10 zelo. Vse plošče bilo v reali nekaj plošček. Sve všeč je plošča in izgleda rečenje, vse vzelo v vzelo, vse je zelo potrebeno z Pythonem. Šta je več, več, jo. Na tukaj površčenju, kako smo površčili na PiKT-5, površčenju, kako je bilo, vzvečo je zelo zelo zelo zelo zelo zelo zelo zelo. To je profilera. Dal je tukaj, da je zzumam, bi to neč delal, bo neko nekaj, neko v trace, in nekih, da neko je zazaj je zazal vsek. Nekaj, prijezno, da je tezov. Aj, je tukaj, da je to izgromovite, inайте imet nekaj elemen in nekaj občas,ertainar. Želi ve vs.cu ore za ve manje in b Markילon z ovdje ogljenaje. Z len in za v negotioti izmoniziran pans iz odrepa iz notes na siost bar o pollutera. In u n governments merkir толki z modela sem ona priли joinsil in bistir treji microwave Vse sej zvačilo, da je ino sej, bo zelo izgleda? Tako, je je začel, ki se office v počke, na začeličke, in na zelo začeličke, in na začeličke, na začeličke, in na začeličke, in na začeličke. Selo, da ko je vzelo, zelo, da je začel, začel, nekaj zelo začel, zelo začel je, nekaj zelo začel, So letting is turn on in working with its sound frequency time independent task, and then keeping for now for the first phase of this project the陳 na ent z prejstva working at its sound speed as much as fast as possible. se pošli, da je začala vse tega informacije, ki je pošli, da ne razvajte tudi vzostavne dataflow. Svetil, da ne več, da smo pošli, tega ideja je, da se lahko prihledaj, prikornje profijlje, prikornje standardu, prikornje Python in in drugi fitj. V systemu, ko je pakaj, ko je odličil, vse malo pakaj, zelo je ljudi, izgovoril si, da je dobrostvo. Čakaj, izgovoril se zelo, da je... naredi se zelo poživaj na štoži, ali ne je zelo vzivno. To je, da je zelo každje, zelo je več zelo neko, načo vzivaj izgovoril se kaj je. To je inakrične, da je zelo svoje, in lovala zaznaščačnje operacije, ki so pripravili pitan, in tek glasbov počke, ko želi vzahvala vse vzahvaloviti na petitob. Če po točku, plagini n모čila pripravil počku. Rečenja, da je bilo pričo, da se nje pospojevačno način, da je neče zelo, da je vse način izgleda, in način je zelo, da je bilo pričo in je začin je veliko kompleks, začin je začin bila pričo, da je bilo pričo. Rečenja, da je bilo pričo in je zelo, da je pričo, in vzaj ni se tega v pristaj, ki se je inštene, in vsega mnelo je, kaj je to, z vzzem, oko si tudi nekaj, tako, nekaj je to, ko je, nekaj je, nekaj je, nekaj je, nekaj je, nekaj je, nekaj je, nekaj je, nekaj je, nekaj je, tudi vizetne, in genije, tudi v zapljave, ali vznosti in tudi ko je vzostaj, ali, ki so je vzostaj, zelo, ki je zelo in zadaj, in svoje plikacije, da je bilo nisem potrebno. Vzostaj, je vse počin, zelo je počin za polj, zelo je počin za plikaciji, kakva dobečenja do početku, je da je dobročne pravno. V kompromizu je, da odstavila več več, več več neko neko otvarila nrvno početka, da može vse dobročne dokončne menele vse delaj, in nekaj je začelo in je vsezgavno, in je začel vsezgavno. Zato je tako, da je to, še je to, da je to, da je to, da je to, da je to, še je to, da je to, da je to, da je to, je zelo tudi delovno, ker je zelo jezitka, da ga je vsočila, nekaj ta delovna, kaj je zelo vsočila, da je posledne jezitko. Zato, to je otvoril, da je jezitko načešnje, in aprèsi postavevalo, aprèsi dokomentovanje, prišli se menej, da se našem vzelo, da je bilo ... ... poživaj načinje, da je inšločnje vse ene strano, ... da ne je nečo vzivno, da je se našli vse, ... nečo vse, da je nečo vzivno, in umoži, ki im mosto v tem zelo. Zelo, več, je tako disejno, z parametresih, tako boljčke reprejde, parametre, kontrol, zelo zelo v glasbnje kaj bile načinje trpijala. Vse je vrste zelo normalne, skupne. in lahko so pričal, da se je koncentrativnje. Kutikwiki 2.2 je veliko površen in veliko površen. Zdaj je taz delabna vse, kaj je zelo je zelo drugih fil, in strijnjov, NXML fil. V ideju olašnjih projekta, olašnji projekta, olašnji trputih komponentu, olašnji projekta in naša projekta, in skupaj, kjer je bilo, in zelo to je na vse komponent. In potem vse naprej data. Vse naprej data je začal, da je bilo, da je bilo prijezda, ker je bilo vse kompleks, mene grafike, mene grafike, vse grafike, in zelo, da je izgledat, še je zelo, na razgledenju, da je nekaj 200-300 hrv. To je zelo, da je injeračnja hrv, nekaj, da je hrv več nabij, 25-30 milijek sekund. Pobjeraš doko, da je komponenta, In teh ne should be extracted, ker je recharge also one of the first three bed blocks developed in web components. The reason I was saying before, I've not moved the port into QT 5.6 because until this is not completed, the web components are not removed. Bezga 5.6 dobro se vseh, ne, nezaj je neč dela, ali zelo ješel vseh, in je pravda, da je vseh, nekaj je ki drugi, ne, tako, ne, ne, ne, ne, ne. In nekaj je, da je neč izgleda, ne, ne, ne. Tako površno, da se našli površnjeni vseh. Problema, da ga se izgleda na vso objevčenje, da se je vzljade, začal, izgleda, je vzljave objevčenje modelov, in priročno začal nekaj delov, zelo pa v zelo in odsebi, in zelo je vse, da je začelja, nekaj je vse začelja, bo to je kratulacija in tako. To je bilo površen, ker se je zapravila do zelo. Tako in začelja, da imaš zelo, da se vse zelo, različno je vse zelo, da je vse zelo, kaj je vse zelo, da je vse zelo. Python je nekaj nekaj nekaj segnal. Vse, nekaj, da prišličali način, izgleda, da pa je nekaj nekaj segnal, je fantastič, ker je nekaj segnal. Problem je, da je to, je to zelo, da se zelo, izgleda z Python in je nekaj segnal, tako nekaj segnal in nekaj segnal, in da se nekaj segnal, da se nekaj segnal, nekaj, vse, v logiku, In s njahtem, kot nekaj z unlemenj, aslih paperi, zelo na svoje vari reaction, izstaj vaziti, kot počivo kaj regista, to izgleda sega, različ je to chambers, da je bilo počet, kako je potem od pajtom. Resultati je, da je to so v bojo štiri 170 vsega, ko imela na vsem plene, nekaj ne viče od pajtom, svojo našlične zelo, ki se prejavujemo in nakon, to je jazna kompleksna paku z naštih ehm. In prav da je lahko 60-70% jazne. Zelo, da je začneva, da je začneva in dokumenta, da je lahko začneva in dokumenta. So, nekaj pa nekaj, kaj je to mislil? In druga solučja je značila, da je to solučja, da je bilo značil. Znamenja. Znamenja. Značil. kratičnja z vsej kontrolernih elementov, kaj je qt-draven, za njih nekaj plakičnih, zelo se začeli, ker je začeli, vseč je začeli v aplikaciju. Zato, da je tudi soluzija, tudi, da nekaj začeli, nekaj začeli, nekaj začeli, nekaj začeli, 3, 4, 5 klasi, ki se vsečili tudi s vsečjenih, zelo se vsečila v Pythonu, v globali vseči, ki, kako se vsečila, nekaj klasi, ki se vsečili vseči, zelo se vsečila vsečila na vseči komponent, ki sem vsečila, ki se vsečila, nekaj klasi,Who And are exactly as the interface should work. QT, framework, elements, view controllers, so all the interaction is under control of the graphic parts of the user interface, user can manage things and so on, exchanged data with Python components. And this class are hybrids that are only kako drugi je tukaj deletil in je vse modulače, kako je vse intermediaj klas, ki je zelo vse zelo, kako je tukaj tukaj tukaj klas in tukaj tukaj Python klas. Tako, aplikacija ne bo začala za tukaj drugih komponentov vseh, v izglednjih zvršenje, če vse delovje, kjer se vse zvršenje vse zvršenje. Zvršenje je, ki je svojo situacijo, kako vse vse vse tudi z vsej vsej, tudi vsej, vsej vsej vsej, zelo se vsej vsej, ?! ? ? ? ? ? ? ? ? ? ? ? ? ? kako se počutno izgleda, kako posleda, kako pijatonek tudi, z pijatona, kako posleda data, kako se tudi zamljali v aplikacije. Znale kutiku mlih komponent, kontakčnja klasa, kaj je vsega vsega pijatona in tudi pijatona modulj, kako se tudi počutno izgleda, kako soba srednji v teretnih veženih. da se tega zatvore začeli? Svaj ima danes klasi, tega pa, da bo popečeno. Zato bilo šta smelje in tako. Prv nekako poznala se v tem, ta napravnje mirana in losljuli klas in pajton, okeljevacj klas, The tools works just like how data are sent in the moment data should communicate between the Python and QT components. In this simulator, totally compatible with the kind of data that we really will have to use when the application will work, it has been created, the test bench to calibrate and study these graphics modules. To je ideja. In, as you can imagine in cute, this is almost easy. Creating every parts, focusing in every part the component. And then the graphic is totally parametric. It is managed by a JSON configuration file. So, as well when the Python program starts and loading from the project discover what is the hardware in that moment working, automatically it recognizes the hardware ID, based on the hardware ID, loads the JSON file in the Python, the cutie part loads the JSON file and adapts the graphics with the limits, the behavior, the title, the sexes, the labels and so on, depending on the hardware. So, just to give you an idea of the complexity, just the plot elements are a set of almost 30, 50 different variables that are managed every call. Every time that a policy sent to the hardware layer, the chip sends back about 8 kappa bytes of data that are all the variables that it has available. So, the cutie part should identify what are the variables between these 50 ones, what are the variables that should be plot really, limit this and optimize the plotting and the behavior to these variables. One graph, then the same model in the simulation approach was developed, simple, a grid system with a control bar for user to manage zooming, activating because you have 50 different graphs, you have a pool of six visualization in the same time, the original version in the web view was showing no idea why 40 different graphs in the same time, absolutely impossible to see because you can imagine what you get. Obviously, absolutely stopped, very heavy with 40 different web instance under PyQ to manage directly by Python. This is the idea design of the new interface and then clearly focusing the parameters that are the control of the user, manually, partially automatic. It's almost obvious, grid lines, one density, what do you want, how many points and so on. The interface at this point enters another part. This is an open source framework that will be powerful for release on GitHub in this part of the attachment of this conference. That is QT Complex. I developed this a few years ago for Nokia because it is a framework that optimizes the creation of toolbars, buttons on teams. It works on any platform but in times of Nokia works from Symbian, Linux, embedded Linux up to desktop versions. It makes it easy for me to develop lifecycle of the graphic elements because most of the parts are conventional standard, QT Quick 2.2 components are already prebuilt with parameters. The version that will be released is a version specifically adapted because obviously this framework was working with its own plugins in C++ that here are not possible to be used, can be used, are replaced with a version that is updated to QT 5.5.1 support QT Quick 2.2 and is JavaScript and QML only with anyway keeping a good result in term of speed. So where we are arriving to create the things that should be avoided in any literature a parallel architecture an architecture in version that is in progress by one side moving everything on Qt and also simplifying, removing classes, removing objects, removing parts Python becomes more under control and the original, the traditional version ported to QT 5.5 where the core of the application remains until we don't remove and push on the other side. So this means two timelines and then there is a slide with some sample data almost clear but taking account that we have it was possible to create a tank factor between the interface ability to plot data, the simulator is able to work with six graphs plotting every graph as two lines because audio is stereo, so left and right parallel data that are sent. So 12 plotting data in the meantime every one plot every 25 milliseconds only in JavaScript support so I imagine what the result will get with the better plugins in C++. By the other side Python is able to send back data every now 125, 150 milliseconds depends on the kind of connection. Now this is the starting point after porting, after acquiring the knowledge after all, so you see that there is an old Python, an application entry point that is run, just run then immediately go to a creation of the windows user interface, this interface design, which is design dialog, design contents everything hidden or shown, then create three web view, every web view is custom, so should be removed also because we need to make modular and adaptable to any kind of device new chip, new development of the new another web view specific for the chip then there are components that are run time and device interface that speak continuously poll with the hardware and send data, see, throughout this 170 pi QT signals not used by QT because QT is not used but only as a library to design things under the Python control so the live data inversion the architecture inversion should start from one module first the most complex and the most issued and slow plotting data and then as this is done every parts can be moved and reused the parts that we have already developed, but because the QT complex is a standard framework that now it is used by tons of users almost stable by years and is well known by being as I have created and documented also because the architecture in QML is done strongly modular and also because we can manage inside of this sort of protected container that is the view controller in the new architecture manage also the Python classes that has strong issues and remove the parts that we know so the idea in my opinion is the only possible idea so dramatic is just starting from the first web view, removing the second, removing the third and then step by step moving everything to the other side to have the final QT architecture really the view controller model that act like a caller to the Python, instead Python calls that should manage itself this is the problem these are the advantages based on the physical tests done with profiler in Python and with the simulator in the QT design we have a range between we have a change of 125 milliseconds in which we can manage 25 milliseconds taking account that anyway for now we manage a call every 25 milliseconds but sure that are replicated because the hardware layer controlled by Python is not yet totally clean and is not yet totally fast as we need so not always able to send data to the reason that should work totally asynchronously QT go and simply ask information if available change data as replot at the same point so we can have a constant tick a serious constant tick Python manage hardware as it sound frequency in the optimization process we expect we can reach 20 milliseconds every tick in the polling and then when the entire project is moving we can reach the final these timelines are a bit I kept everything as low as possible to be sure that then the application will work in a real environment so timing of 25 milliseconds instead of 125 and so on are all based on a virtual machine that is already a bit slower with configured windows 10 a single core and only for 4000 kappa bytes so is a very poor machine and anyway is far to be the machines that usually are managed by the users to manage live data so this is where we should be created a new architecture design that includes all the user interface and when the Python includes only the parts related to the model as we consider speaking with the hardware and so on we can also finally remove that per version of the Python launching Qt but maybe Qt that start the Python model and the initial idea to have Qt view controller starts the interface load the project design the project based on the hardware that this project describes, set up everything then use Python just because it is useful for us it is already done, it is already working use Python as a Python plugin as well as the first design object for the other part of the device that are C++ plugin this is the kind of job that is done I plan to release according with the parts that can't be released because of the property of NXP anyway as open source the core scriptlets that I think that are useful if someone is interested to show how this approach is done for example the graphic engine that has been optimized spending a lot of time due to limitations is a pure QML and javascript engine self-adapting uses the framework and is interesting to release itself as an independent object open source but they almost open I appreciated also very much because working with this crew was interesting because when I say this may be useful for all this impact with the information of the company is a generic element so programming and developing the architecture with a minimal of logic many parts can be in effect distributed now I want to show you just a couple of minutes of a video that is a screencast that I have produced with actual results to give an idea of what we have spoken and it's ok now the two interfaces start and so are totally different processes this is the original interface we just should everything disappear and the hardware is recognized system sets the hardware organize optimized parameters then the parts that should be initially shown here are shown there note that graphic self-adapt and changes as the hardware is set it recognizes the kind of parameters that should be shown, what are the limits of the graphics and so on horizontal lines depends because the past plotting in the user interface ask more frequently to python data that python is not yet available in any way with a reliable result of the return obviously now seeing these graphs that I think is self-adapting like adaptability many elements of refining should be already done but it is just the last point and not to show now the very first preview of this project the adaptability makes this also immediately the size these are previews that are all under control of future this is the initial impacting interface as the elements are removed the interface become more complex more complex over menus over components and this become one part of the view element now we see 6 graphs because I use 6 graphs originally if you have 30 variables or 25 variables they was showing 25 different web views not only but plotting the graphs that you wasn't seeing so it was very heavy very dispersing and very time-consuming mechanism ok, this is the scenario and the case this is the first phase of the challenge I have survived now ok are there questions from the audience on the nxp use case please raise your hands and I'll give you a mic and otherwise, I have one question you're moving a lot of functionality from python to c++ and traditionally we'd say python is a rapid development language and c++ takes a lot more effort and notice that in porting the application in the way that you're doing python is I think that the best definition of python usage is in the Qt doc this is a fast prototyping software you can really develop very fast but it's a sort of mirage in python do everything also special in embedded system bigger burner on raspberry, any kind there is a library of python, what is it is a strong c++ component that someone that is able to program as developed and then you use python because you have a wrapper like just pyQt5, this is the big misunderstanding python is nice because it's useful for languages but if you think to develop in python strong applications in python this is essentially an error, a formal error because you make just like developing it in an interpreted basic in infinite time a very good big company group instead I was alone developing this okay guys, these are the functions, develop the c components and make the wrappers, so extend the pyQt5 library but that's not so much sense because it's better that we use the standard, else we should imply a maintenance of no standard components that become heavy in the future along the time of the application so it is better for now to adopt the compromise okay, qtqml with qtqweek 2.2 is anyway very fast and it's very flexible because this is a totally for me it was every week totally unexpected behavior and expected thing a new issue, things impossible to discover why reversing gene so python, okay, remain until we can't remove or we can use just like the rapid prototyping or rapid development but python calls anyway faster why? because there is a DLL, the DLL is the simulation of the android linux component and it's the DLL that works low level developed in C++ that ask to the hardware and send back information, it's not python it is a sort of false vision that as many, I see many user have, they say also especially raspberry p or embedded application users they love python because with python you can do everything you do nothing, because the producers release python libraries that are anyway wrappers of C++ libraries this is good for teaching, is good for new buys, is great approaching program because if you are not so used by qtqq, okay, develop, make a test with python make a fast source but not an architect complex that is treating so many data in python, they have developed in file parsing it needs 10 seconds to open a file, just no sense but it's not a problem of python, it's the wrong usage of the language, because it's using a thing with another function it's like a crystal glass as a hammer and then you can't complain that it's a broken other questions? if there are no other questions I'd like to thank Enrico for his talk thank you I hope it was interesting