 My name is Dimitri, the first question maybe is not expected like who of you swam in the sea today in the morning? Yeah, I did also, that is amazing. Yesterday I didn't do that because I was lazy, wanted to sleep more but my colleagues persuaded me to go to today, I went and that was so amazing. Do that tomorrow if you survive a party or anything but coffee helps after but it is worth it, definitely. Wow, thank you. Postgres. So the second question, who of you already uses a pie charm? Almost everybody, that is so nice. So I will try to focus on tips that are maybe a bit more advanced and unexpected and my goal for today is like everybody knows at least one new thing in pie charm. Also I did some kind of that talk a couple of months ago, three maybe months ago at Picon Italy. Anybody listen to that talk at Picon Italy or okay one person. There won't be many new things. There will be maybe three, three, four things that I added but mostly it is almost the same same talk but we'll see. So the first thing that I want to show is the thing that I didn't mention in Florence is the new kind of product of JetBrains that ties together all other products that's called Toolbox app. Anybody knows about that? Nobody knows. Great. So I'm done. So easy. Toolbox app is an application that allows you to manage easily the tools and the projects. So you have here two tabs. That's your projects and that's your JetBrains IDEs and you can update, you can rollback updates, you can install new versions and it's very easy to track what versions do you have and it was very easy to launch things from here. For example, you have for different projects you can have different configurations. For some projects you can use EPs. By the way, who do you use EPs? Alexis builds. Great. Please come to our booth and we'll give you a t-shirt. Because people who use EPs, first of all they get a new features earlier and then the most important then can help us actually to make those features much better because they submit the feedback area and it's much easier to fix stuff before you release the feature because after you can move on to other things and so I encourage you to try EPs. They are pretty usable. So let's start. Here we have toolbox and we can launch from here PyCharm. So it's PyCharm community, PyCharm professional. In theory I could just press and it will open but I already have it opened. That's PyCharm you know it and for today's presentation I will use the project called VMProf. VMProf is the profiler that was developed by PyPy guys that initially was Masy Fjalkowsky and Antoni Kuni who are there at the conference. You can meet them and they came up with this profiler at EuroPython three years ago I think and it is very nice a sampling profiler also it has its open source and it has UI VMProf.com which is written in Django and that's why we'll use it as a sample project because it's not very big and not very small. It's very good to show stuff. It's on GitHub. So what we do in PyCharm to open projects we go and we can check out directly from version control. So we just press GitHub and clone but that won't work because internet here is so slow and I'll open already, already clone project instead. So what do we do normally when we open a project? So most of the time first we want to learn what that project is and we want to to read the code and in PyCharm you you can of course do that file by file but the easiest way to do that is use search and in PyCharm for example you know that it's Django project so you can press common shift N and you can type URLs and you can navigate directly to this file and you see that PyCharm shows you the list of the files very fast and why is it so fast? Actually it's not it is very fast because we have indexes and this speed of access to all the files and classes is not free and you pay for it by indexing and people complain about indexing why do we have indexing when PyCharm starts and so indexing is payment for speedups later so you can access your code very fast because of indexing so indexing will stay forever. We work constantly on improving the performance so this cost this payment decreases every year every month we try to optimize them but still indexing is a good thing. So yeah and let's return to our URLs.py how do you navigate in PyCharm? You can actually go to you can read the code yes in all editors but also what you can do you can press comment and click and go to all the functions. Ah no it's not it doesn't work while it doesn't work yeah I forgot to tell you important thing it doesn't work because interpreter is not configured and PyCharm tells us about that and we can press this link and you see that interpreter is not configured and what we do first. Normally when we open the project we create a virtual environment so in PyCharm there is a button for that you press this option and you type VM Pro server something like that and you select Python 3.6 this one and PyCharm creates virtual environment for you and after that you can use it but what we have now is PyCharm actually tells us that dependencies are not installed. How PyCharm knows about that? There is a file called requirements.txt in the project and actually if PyCharm found it automatically if PyCharm doesn't find it you can go manually and set up it here so you see that requirements.txt is selected and actually that's the way to change your environment because sometimes you have different different setups for testing for production and you can select here different requirements and you just press this button and here comes one very important and not very obvious tip so when when we open this window it's OS 10 default file chooser yeah yeah that's a very good answer because setup.py is a Python file we cannot execute it and you can specify dependencies in a lot of ways in setup.py and no we use requirements.txt because it's like machine readable format and it's like I advise you if you didn't listen to advise you to listen to the keynote of Armand Orner here on the first day he talked on this topic so the requirements.txt is a direction in the right in the right it's a movement in the right direction in Python so you have a dependencies in a clear for specifically a formal way and it's machine readable it's easy to understand and setup.py you can like it's Python file you cannot you can introspect that but that won't work in all cases so we don't encourage you to write dependencies there sorry we don't support it yet it's not standard that's some experiments as far as I I know does anybody have a question about this no so let's proceed I wanted to show like other here OS 10 users who uses Mac OS 10 yeah the steepest for you this is like if you want to choose a file in PyCharm and you see this screen is a default file chooser and it's not very convenient it doesn't it's it's just just bad so what you can do in PyCharm you can actually use the feature called registry it's a set of hidden settings more like system settings and you can open them and you can see there a lot of a lot of settings and one of them is Mac file chooser native and we disable that and after that we return to our file chooser and you have here much nicer UI you can navigate to your project route to your home directory and you have auto completion here and it's so nicer but we'll leave it as it is so we select production.txt and you see PyCharm now understands your project when the interpreter is selected it's highlights as is read and you can install requirements we won't do that again because internet won't allow us to do that instead we take already configured virtual environment yeah and after we configure that we can navigate to all our classes and modules and we can do whatever we want with that and there are several several actions I showed already go to file it's common shift and by the way you can see this hint in the bottom of the screen it highlights a shortcut there are several others for example command n is go to class so you can type class and it will show it you can show actions in the ID so as I did for registry and there is a general action called search everywhere it's double shift and you can type whatever you want and it will show both classes and files and it will show actions as well so there are a lot of ways to navigate through your code actually navigation that knows everybody but there is one more thing for example you have a lot of models like let's go to some Django there is one more by the way showed it's called fine symbol we can go to models like you you can introspect models go in one by one using go to definition that's cool but there is better way which is very not obvious in in pie sharp professional that features available in professionalism as well as Django support in general you can see the diagram you can press show diagram pop up and there are several diagrams that you can open and that is for example Django models diagram so if you have some unknown Django project you can just open it in a visual way and see how it looks that is much faster than go from file to file and of course that is much faster than just read the code in text editor yeah another way how you can learn about your code is structure there is a tool window for that it's called structure window and it shows you the top level definitions in your file and also there is a structure file structure which you can work with a shortcut and here you can also navigate very easily it shows you top level definitions with classes shows also feels so it can be very handy when you you are somewhere in the code given the code and you want to see where where you are what is the context outside of the file you want to go fast to your file structure there is a shortcut for that it's very handy I use it all the time it's one and you can navigate to the project view by a center and you see where you are and there is one more thing you can get go even further there is a setting which is not on by default and not very many people know about that you can enable auto scroll from source here in the in this tree you enable that and then wherever you are the file tree is updated in synchronized with your editor so the active tab and the editor is shown as it's selected in the file tree speaking about the file tree project project file tree as all other trees in Jen is by in by charm and a lot of ideas are searchable and that's also not what all people not everybody knows you for example if you have a focus in the tree you can start just start typing you can type apps and you see that the focus moved to the up the pie and also after that you can press up and down for example we press down and we iterate through the highlighted items that is very handy and that works for all the trees for example the same thing works in the debugger when you have your variables you can start typing there if you need to you feel looking for some variable or even for some value you can start typing and it will negate in the variables view in the debugger right so yeah some sometimes people say that like yeah I said the word tabs and that remind me that like sometimes people say that by charm is like a bit complicated in comparison with text editors and when you try when you start to ask why people say there are a lot of things like you have two windows you have tabs you have like it's bars buttons and actually what you can do in pie charm and what a lot of people do is you just can remove that all and I will show you step by step how you do that for example nobody needs those buttons if you have especially especially when you use shortcuts you may you might be using those two to run things and these two select one configuration but you can do that with shortcuts so you just just press this no it's not what I missed this toolbar and it's gone right so here you have rather convenient navigation bar you can select here directories and you can go to the files but actually duplicates what you have here so you can remove it as well navigation bar you press here and it's gone but if still if you need that you can invoke it by the shortcut which I don't remember no it's yeah it's a bit hard it's on the politics but if you have a shortcut and you can do everything you want from here you can navigate and even create files files from here just and so I think this is much better than having the navigation bar on top what we do next of course we don't need all those tools like the data view we don't use it for now and we can like pressing here we can remove that tabs tabs are informative but some people say that they eat too much space and we can configure that as well so we go type tabs here and we have here the main setting is placement placement can be can be top can be left can be bottom can be right and like it can be none so we move tabs to deaf now and we don't have tabs and you see here we have like minimized version of pie charm that actually looks like sublime text or any editor that doesn't look complicated it looks very light and we can go even further and we can enter distraction free mode the special mode that actually automatically removes everything so yeah it looks like that it removes the project window and it removes the left gutter but I don't like it myself because it removes gutter and you don't see break points here when you debug it I don't know whether you see it here but break points highlighted as pink line and it's not very visible it's not very convenient for me so I don't use destruction free mode I just remove everything by by myself and if you don't need project you can collapse it you can go there only when you and you need that so how do you navigate between your files when you don't have tabs when everything is collapsed one the most frequent used action is recent files so it's command E and here from these popup window you can navigate to the recent files and also can be gate to the two windows for example if you switch between two files you can just do like that you can you can you press command E and you go to rotors until press command E you go to models and you don't need to touch your mouse and move it to the first step then it is something then touch it again move to this second step it's much faster another thing is you can actually go back and forth with a shortcut so it's there is a shortcut command alt left and command alt right and for example you went somewhere you added something and you want to return back and so what is back is not different story but you know what you want to go back like in browser so you can press alt command left and you actually go back but it's not not it tricks not only files but also positions in file so if you know it is some place in one file and you go to that another place it will return you inside one file as well but it's also very handy as I told you go to file is a perfect way to navigate so you don't need to tie tabs so you just if you if you remember the names you just type and you go right so yeah okay so what do we do I want to check whether I forgot something to show you do you have any questions by the way about navigation or maybe maybe you know some tip that I forgot to show by the way I don't know all the intelligent platform I developed by charm for seven years already but intelligent platform has so many features and so all the features it has first of all a lot of features I don't know it all I don't know that they exist and I learn all the time something new and and I learn I think I learn slower than they are being developed and there are some features that I know that exist but I don't use them and I think that happens always with new tools with new features that people like they know that something exists but they don't they don't have time to invest to learn something and they think okay I will do the old way because I'm quite efficient doing the old way but it happened with me a lot of times with IntelliJ then I learned some new ways some new feature and you spend some time learning the new way and then you understand that the old way was just so cumbersome so time consuming and you start doing something new and it's very efficient so I encourage you to learn not especially of course by charm because you already use by charm but it's it applies to all the all the tools and just learn new things yeah that's advice for myself yeah summary of shortcuts yeah we have actually if you go to help you have here chemo preference you yeah that was something I printed for my daughter and you have here the nice PDF that is that contains all the shortcut for your operation system also the conferences we have printed key maps but I don't think we have now nothing yet yeah very nice thing if you yeah it's it's so good I will show you that if you still use tabs if you still use steps let's enable them you have several tabs right and you want to like to close them in by charm you can easily close everything by shift click so you just you don't need to target this little cross so you just you just press shift and you click shift and click and you can close everything by that shift click close everything it's very very nice tip it saves time you don't need to hunt the pixel yeah all right let's write some code so we read through the project we know something about that about the project and we need now we want to add some lines of code and we start doing test during development we start by adding some tests so we go and write something and you see that it's not a good example here you see that by charm come completes the all the syntax that actually you don't need to type that is obvious by charm types for you but this makes the life more difficult for some people because by charm completely itself and it closed the brace and added this the semicolon but what do you know what do you do now from that how do you proceed does anybody know how do you proceed from this point the fastest way how to start writing the implementation of the test function yes yes it's shift enter actually not everybody knows that so you can like press down but then you go to the beginning of the line or you can go left left enter that works of course but shift enter much fast and we type something like that self and from here you can actually invoke documentation present control control J you can view documentation just from the completion so for example you take an object and you want to invoke a method you want to read documentation you just make what can do that from from here you can do that read and you actually can start exploring the library from here like you can it's like a browser it's very handy yeah and you also what you can do no no ok no I won't show that you can actually what you can do is you can I don't remember the short cut unfortunately you can show the definition as well so right from here for example if you don't have documentation if you use some of your library that doesn't have a documentation you can show definition right from here from the completion and you can like see how it is implemented to know what to execute that is very handy as well so it's safe it can save a lot of time right but we know what we want to execute so we execute that but we don't know what to enter and by sharm shows you the arguments if it doesn't show you you can invoke parameter info with command P and yeah and you see that by sharm also highlights you if argument is missing but I guess you know all that so we write our test like that and we can run it right it's by test we just press run fails yeah now we want to fix it and we want to work with some code how do we do that there are two hints that can that might be useful the first one you write test you write code you write test you write code what you can do you can split the screen and to have unsplit split vertically you can split the screen and from here you can go and you for example you can add your code you can add your test and work like you know that I guess and another thing that I bet you don't know is you don't need actually to run your tests all the time you don't need to click this button you don't need to press the shortcut you can actually enable the thing that's called toggle auto test you see the tooltip and you press this button and after you change something by sharm automatically restarts tests and you see now they pass so it's also can save time so to run all your tests for you okay you probably see this green stripe in the left that's version control integration but first close that that's version control integration and yes by sharm as a lot of supports a lot of version control systems and we use Gita ourselves in JetBrains so I would say that we have pretty decent GIT support and what you can do you can create new branches test something like that you can create new branch and you can commit and of course you can do all that with a shortcut you can write test and you commit that I bet you know that all what I want to show is not very obvious who uses cherry pick working with GIT yeah there is a very good tip that I will show first of all you probably know that there is a version control tool window which shows you all the version file also shows GIT log and from GIT log you can do the following for example you can switch to the master branch and here you can see all other branches and we select new test the branch that we just created and there is a button which is called highlight non-picked commits basically it compares to branches it compares the branch you selected here with your current branch which which you are working on and you press that and it grays out all the commits that are absent from your current branch and it's so convenient when you you want to see what was added to the branch and absent in another branch and move some commits it's very convenient and from here you just select those this is this is how it is bold because it might commit commits it highlights all my commits as bold by the way I think I can I can disable that but you see that those are gray this is not and from here I can press this button cherry pick and we'll cherry pick right from here you don't need do you don't need touch terminal at all it's very cool my my favorite feature in version control no that is unfortunately not supported but it will there is a long-standing feature request and for some reason our developers of version control integration they were against this feature for some I don't know why but now they're convinced and they're working on that all right what we you can do actually you can yeah you can easily roll back changes but you you've seen that for example you have some some change here and you can roll back it from here and you don't and you can see the difference right in place you don't need to see the difference um for file yeah about uh the differences there is one feature with people don't know but it's very cool unfortunately I don't know how to demonstrate it very well is uh compare compare files compare directory you can compare everything for example you can select a folder and press option or common d or compare width and you can select I don't know it's you can select another folder and it will come of course that's not very because those are two different folders but uh I think you see the the idea that compares file by file and it can actually if there are pictures it shows you the pictures so this is the best way I know to compare two different contents in file system which are slightly different and you want to see what is different and maybe merge something to move some changes around that's the best way you know right so yeah a lot of features yeah you don't know so uh the main thing that is so useful when you edit code is code inspections this is inspections are some checks that are executed on your file and they highlight some errors or the waste optimizer code and here we have uh they are marked at the right scroll bar and you can see them right here on the scroll bar you can move slowly the mouse and you can see the sculpt lens you you can see all the warnings right in the editor and yeah what we see is that here in this project is there are a lot of violations of tab 8 and we fix it with uh how how do we fix it what's the name of the action anybody knows refactoring not exactly yeah reformat code there are two ways of doing something with the code one is refactoring and one is uh it's it's located here it actually it's some complex operations on your code when you rename something when you move something when you need to to check well when you do something with the code some object some code object and you need to check that all the references to it also updated it's refactoring when you are working with just with code as with text that is like code operations and there are a lot of them as well and one of them is reformat code it's command alt l and you see that by charm um makes the code compatible with tab 8 also that we see that here we have uh unused imports and we have an action for that it's called optimize imports yeah now it looks it looks much better and if we scroll down what what is here we have here some typos checked if we want we can add those words to the dictionary see here that methods are not implemented yeah i think it's nothing interesting to fix but actually yeah we touched keyboard twice and we did a lot we did as paul everett uh called it yesterday at uh by charm debugging tutorial like the janitor work that the idea actually does it's a i like this analogy it's like the idea does for you the janitor work you don't need to touch your imports you don't need to insert lines and move your methods you just press some shortcuts in a second you have the very good code style right yeah and of course that all works for javascript for example if we go to javascript file we see here that those lines are not terminated with semicolon it's a question whether we should or not but if we want if we don't want we can express we can disable this inspection if we want we can just terminate and we can terminate statement we can terminate the file but what we can do also and that we can do for all inspections we can select the folder or project and we can call the action called inspection by name run inspection by name and terminated statement and we can do that for directory for example and you see that by charm finds 494 unterminated statements and actually we can fix that right from here we can press alt enter and terminate all statements so in all project all statements will be terminated and that is valid for all inspections so you can apply those quick fixes and if you don't know about that quick fix is some transformation of your code that you can invoke manually it normally it is invoked by alt enter so in a lot of places in your code you can just press alt enter and see what by charm so far offers by charm can offer you to to make the code better sometimes yeah but we won't do that to save some time right so yeah we have Django project maybe we should try to who does Django by the way like a third or maybe 25% for Django of course you know that there are run configurations to run Django tests and Django server let's see that this is the everybody knows what what what is run configuration who doesn't know what is run configuration okay a run configuration is the way how to run something so there are predefined types of run configurations and in many many cases they are created automatically some when they are not that you can create them by pressing and selecting for example you can there are run configurations to debug javascript and browsers to run some javascript tools for python tests for like for a lot of stuff and of course there is a run there are configurations for Django and the one that will try is Django server let's run it just press this green triangle and let's go here and it doesn't work because we don't have database and when we don't have database what should we do we should run uh migrate task how do we do that in pycharm does anybody know any ideas how to the best way to run uh the Django Django commands manage py commands so yeah it's right Django actually you can if you don't know you just search Django manage py manage py run manage py task right and there is a special console for running manage py commands and how it is better than terminal it's better because it shows you um help and it shows you expected arguments so if you don't know what command does still you can use this console and you don't go to Django documentation which is great but right here you can the console reminds you what what it expects so we run great and also what we need to do is we want to populate this with data and for that we start uh we run the vmpro from the terminal and as you see pycharm has terminal and the nice how it is better than any external terminal one thing is for example here you have virtual environment already activated so you just open the terminal you have already activated virtual environment for for the project you are using now okay let's type type that so that's how we run from the terminal vmpro of profiler and it uploads the snapshot to our local instance that we launched and now i guess after the restart we have the data yes and we can look here that our website works but also for example we want to see the actual data so we want to go inside the database to see what data is located in the database how do we do that in pycharm the best way like we go to settings uh dot py i know it's not settings let me check that webop settings ah because yeah because it's not file yeah it's not file all right and how to by the way how to find it if it's not file so we type yeah that's the way that's not i i would say that this is a failure of our UX that's why i didn't find it but also you can count it as a tip for example if you look for a folder in uh and in go navigate to file pop up you need to type the slash in there i i i know that it's strange that's how it works now i hope we'll change that so yeah what we do i already forgot why what i wanted to do i wanted yeah we go to databases and we see that it's going to light right we it's going to light when we get here and from here we press s data source okay okay no and do you see that it's added to the data sources and you can actually see the tables and uh cpu profile you can see our entry that we just created from the terminal and also you have a square console right in the pie charm and you can write uh from and here you have also code completion we improve cpu profile and you have here history of your queries and so it can be pretty convenient way to to work with databases and based on this functionality actually the brains has a separate product called data grip it's it doesn't support any programming languages it's focused on the databases and it is included in the pie charm professional edition okay so we have some time yeah and i want to show you the thing two things right in the end like i showed two things there are as you know there are two problems in software engineering like caching validations and naming things i would like to show you how we saw you saw that in pie charm for caching validations and that counts as a first tip i want to show sometimes pie charm can highlight some imports as read for no particular reason and that is the first problem caching validation says it means that we could not invalidate caches and there is an action called invalidate caches in restart so you might try that but it happens very rarely but sometimes it is still useful because i have on stacker flow i once answered that question pie charm highlights something as read what do i do i answer like invalidate caches and i still get like karma for that answer so that's why i'm talking about it that might be help but that's rare it's rare case normally it works that the second thing is naming things right so you want to write some code and you like some few lines of python code and you don't want to create a port you don't want to create a file what do you do what do you know what what is the way to do it in pie charm except console you have python console yeah but it's full one liners if you want to write several lines what do you do scratch exactly so you look for scratch new scratch buffer buffer or you uh yeah it's a shortcut for that and you select the language python and you just write your code and i have here some code and you can run scratch files as they are normal files and you can do actually like everything it doesn't do everything okay we need to print to print and there's postfix completion that i just shown and you can debug from here that's and this is another thing that you might not be using right now is debugger in pie charm which i claim much better than pdb yeah and yeah f strings let's try f strings so it works and duplicate line remove line let's just show in some shortcuts for actions yeah and uh this code is python code right it's f strings in python 3.6 the syntax is highlighted and you see there is a code completion but that's not uh unique only for f strings actually that universal uh machinery inside intelj products that's called language injection and i will show you how to use it it can be used for all languages for example you can write something regex you can write something i don't know and inject language reference regex and it's highlighted or you can square table it's already detected it's injected it's on its own or it can be json python 2017 patient inject json yeah of course uh let me try uh i don't remember the shortcuts that's a good question by the way let me if it doesn't anybody know how how to do that the best way to uh no it will okay let's search for that surround selection type and quote embrace yeah uh i i learned something new today that's great yeah and brace is as well no yeah embrace is yeah cool that's cool so yeah do we have any time or how much time we have no we don't have it's two minutes okay then we are we are done uh thank you very much i try to show us as much as i could thank you do muchy are there any more questions hi there thanks for the presentation um i was wondering if it's possible to make pycharm consume coverage reports that were generated externally because the i know you can run with coverage from within pycharm but i have the coverage report already for my continuous integration for jenkins or travis i want pycharm just to use those ones rather than generate its own yeah and pycharm you can generate the external coverage report you want to use the already generated coverage report to highlight in the editor yes i want the externally generated coverage to appear in the pycharm gata there is uh for coverage there is action to open but i guess that's for internal like serialization format so it won't work for coverage of py and i know that we have tissue requests for that and we at some point we fix that it's counted as a super word okay another question uh my question is based on the comparison between like suggested code completions in sublime and in pycharm some pycharm seems to rely on knowledge about local variables and what types they are probably you know what methods they contain and so on whereas sublime it offers things that you've just typed before anywhere like within the file which i find found very useful as well is it possible to achieve that in pycharm do you understand what i mean or sorry i could sorry i need to slow down perhaps so in sublime uh suggested code completions it will like if you start typing something the first few characters of something you've typed before anywhere within that file it will suggest that as a completion this doesn't happen in pycharm like suggested completions are based on say knowledge of like the local variables within a function what types they are like what methods they might contain do you understand yeah yeah uh if i can understand correctly the question uh you're saying that in sublime when you start typing it suggests you are the completion for the like words that you used already and yeah yeah exactly is it possible to do this in pycharm pycharm does the same but uh pycharm what pycharm does actually is it understands the semantics of your code and it provides you not only with just random tokens across the file yeah but it tries to guess what you want to type and if you start typing here it first suggests you variables and functions and but also you can for example here we'll type something let's try the name i think that this thing will be you know suggested we it's not in the namespace the old namespace so it doesn't suggest is that correct so uh actually there are several types of completion in pycharm so when you type there is a like pop-up completion that uh tries to know that understands the scope and it's uh it's very fast and shows what's in the scope there is also uh completion let me find the next one for that complete class name completion that actually is a bit slower but that goes out of the scope and it proposes you all the name that it has in the indexes so it's not only for classes it's for modules and classes so that's what probably will help you if i understand correctly so you type things they are not in the pycharm understands the context it doesn't provide it because it's that those names are not in the context they are in the out of scope then you just invoke this class base come class completion control out the space and it goes up to the it goes to the index and it goes up in the scope in some sense and it provides you with all the names but also it has semantics it it it won't provide all the all the words there i don't know i could not invoke that but uh i'm sure that we have token base completion i will think about that thank you for the question okay thank you any other questions hi uh i like pycharm's linting but other people in my company use pylint and the interaction between those two is a bit it's very hard to synchronize them is there a good way of doing that or will there be uh could you please repeat sorry too fast yeah i like the linting that pycharm has and how it displays the linting errors uh but other people in my company use pylint and but but what is by death sorry what they use you said what i did other other people use pylint uh i don't hear the name unfortunately i don't know what maybe so sorry not to play kate but pylint sorry pal k pylint yeah uh so obviously you can run pylint from inside pycharm but it doesn't integrate the output it gives it doesn't display it on the file is there any way of doing that or might there be you want to run pylint from pycharm right yeah i'd like to be able to use yeah you can do that uh in some sense by using external external tools right but then the output from pylint is just yeah isn't is not in line it will show the output in the tool window if you want to it to be shown as a pepate for example in the editor yeah it's not implemented yet but we know about that and we want to fix that maybe this year i think cool okay and our opportunity we are out of time so if you want to learn more about pycharm please visit dimitri at pycharm booth thank you dimitri thank you very much