Comments (21)
I think editor integrations is the wrong idea. I spent a long time making a birdseye plugin for PyCharm and it was a big mistake. It was a huge amount of work, it didn't add that much value, and now it doesn't even work any more and it's not worth my time to fix it.
I suggest you make an interface that can be used in the browser, similar to birdseye or heartrate. Then people can use it even if they code in notepad.
Beyond that, I still think the minimal CLI that I suggested way back would also be a good approach.
from cyberbrain.
pycharm +1
from cyberbrain.
@sam2khatri Hi Samaksh, Atom and Sublime are not supported as of now. If they're supported, I'll post the updates here.
from cyberbrain.
@laike9m The library seems to be very promising.Kindly provide support for Spyder IDE also.
from cyberbrain.
Hi Alex, thanks for your feedback. I always expect your input since you're the expert in this area.
now it doesn't even work any more
I noticed that...
I suggest you make an interface that can be used in the browser
Actually this is already possible. The interface is defined using protobuf + gRPC. For web usage, there's gRPC Web. I will write a more descriptive spec later to explain how it works.
Beyond that, I still think the minimal CLI that I suggested way back would also be a good approach.
This is easier than in the previous version, since right now everything is already serialized to JSON. But it all comes down to one problem: there are so many bugs to fix right now and I don't have enough time...
With all respect, I don't agree with the opinion that "editor integrations is the wrong idea". Cyberbrain is trying to picth a brand new idea of variable tracing, it hasn't been achieved by any other debugging tools I've seen. To demonstrate this idea, I need a UI that is usable enough, otherwise people won't even understand what "tracing" means. I agree that your point might be correct from a pure technical perspective, but Cyberbrain needs more than that to succeed, because it is very hard to spread a new idea. Hope that explains it.
Also, you're absolutely correct that it's not scalable to maintain every integration. That's why I only plan to maintain vscode-compatible environments. Hopefully in the future we'll see a PyCharm integration built by the community.
from cyberbrain.
Sorry, I should have made some things clearer.
I figured there was already a web server and such, but I don't know how to use it. I suggest you document it clearly at the forefront. It should be as usable as possible on its own so that everyone finds your tool pleasant to use without a specific editor.
I also thought that a PyCharm plugin would make birdseye so easy and convenient to use that everyone would use it, but it didn't work that way. It was only afterwards that I polished and refined the browser interface and realised how much easier and more effective that was. The PyCharm plugin was still the most convenient, but only by a thin margin.
Make the interfaces that everyone can use your top priority. Make them user friendly and well documented. Then afterwards, editor integrations can be a bonus to help spread the word further.
from cyberbrain.
Also check out the editors and IDEs section of https://www.jetbrains.com/lp/python-developers-survey-2019/
from cyberbrain.
I see what you mean. The decision of supporting VS Code not web is more of a technical decision.
For tracing to be useful, it's necessary to show source code alongside the trace graph. However, I don't know how to make an "editor like" UI (even if I do, it's gonna take a lot more effort). birdseye shows source code by itself while Cyberbrain doesn't, and that leads to the difference (which all make sense IMHO).
And thanks for posting the survey results. I use PyCharm to develop Cyberbrain too.
For the server interface, it will be documented because I definitely want people to be able to build tools on top of it easily. One thing to note that this interface is subject to change at any time, and that's why I want to wait for it to become more stable before publishing it.
from cyberbrain.
Here's roughly how I think it should look:
I think that would be an improvement over the existing VSCode interface already. It's hard to look at line numbers on their own in the graph diagram and map them to source code. Don't rely on the editor on the side, present the text in the ideal format yourself. Lines not directly relevant to the graph but which still provide valuable context can be shown but with less space and emphasis.
from cyberbrain.
Thanks for the suggestion, it's a good starting point for building a web version.
It's hard to look at line numbers on their own in the graph diagram and map them to source code.
That's why I have this feature planned:
Allow mutual interaction between source code and the trace graph.
from cyberbrain.
Hi folks.
I think as one of the first integrations, if you can call it that, it might be worthwhile to just output graphviz from a standalone version of Cyberbrain. Then if you don't have an integration for your favorite coding environment yet (I like vim+syntastic+jedi!), you could just convert the graphviz to PDF or whatever, using the dot program.
Thanks for the cool idea and cool tool.
from cyberbrain.
Hi folks.
I think as one of the first integrations, if you can call it that, it might be worthwhile to just output graphviz from a standalone version of Cyberbrain. Then if you don't have an integration for your favorite coding environment yet (I like vim+syntastic+jedi!), you could just convert the graphviz to PDF or whatever, using the dot program.
Thanks for the cool idea and cool tool.
@dstromberg Well, guess what, Graphviz is my first attempt, but it has proved to be not so useful, at lease I'm not satisfied with it. I picked JavaScript (vis-network to be specific) because Cyberbrain needs to have proper user interaction on the trace graph.
from cyberbrain.
pycharm +1
from cyberbrain.
I don't use VS Code but I use IDEs like Atom and Sublime Text, will this be compatible with those just by installing the Python package or does it compulsorily need an extension?
from cyberbrain.
Oops! Is this thread still alive? If this can be opened in the browser then I hope you could support neovim.
from cyberbrain.
@nyngwang Unfortunately we currently uses vscode's API, so probably won't be able to support neovim
from cyberbrain.
Wish anyone could help for (neo)vim users.
These may be useful:
neovim: https://github.com/glacambre/firenvim
vim: https://github.com/rhysd/vim.wasm
from cyberbrain.
@younger-1 Thanks for your kindly sharing, but I did try firenvim before and didn't like it.
from cyberbrain.
pycharm + 1
from cyberbrain.
I actually come from Logseq's opencollective page and I found this fabulous tool. Diving in I found that there's only VSCode support. I'd hope this tool comes to PyCharm as it is exclusively a python tool anyway (to the very least, VSCode and PyCharm should be 50/50 in terms of number of users, it makes sense to me to support these 2 platforms primarily). If it's very tight in schedule, probably you could promote the opencollective page for people to donate; if someone with expertise (@alexmojaki) has spent good hours building a third party plugin for PyCharm but to no avail, an official plugin probably is something to consider.
All the best!
from cyberbrain.
Hi all, sorry for not providing any update for so long. I stopped the development due to shifting my focus to daily work for the past two years. Good news is, I'm planning to restart the development next year, and rewrite the whole frontend.
My current (super early) plan is to move away from VS Code, not only because this will enable more users to use it, but I also found myself spending a ton of time working on the Python <-> Js interaction, which is tedious, buggy, and annoying.
I'm hoping to find a cross-platform, Python-native UI framework that I can use as the foundation. Maybe Flet, or Shiny, or Reflex, or something else. My biggest concern is not being able to find a good graph library like vis-network, but we'll see. If you know anything that may work, please let me know and I'm happy to take a look.
from cyberbrain.
Related Issues (20)
- Migrate to GitHub Actions HOT 1
- Can't connect to RPC server HOT 2
- More accurate function definition lineno HOT 2
- Move `tracer.events` assertions to golden files HOT 3
- Support Python 3.10 HOT 4
- Will "PEP 659 adaptive interpreter" affect the functioning of Cyberbrain?
- can not install cyberbrain library HOT 1
- Upgrade Nodejs version to 14.16.0
- Support Visual Studio Code Web
- Add tests to ensure Cyberbrain has consistent behaviors across different Python versions
- Make loops work in Python 3.10 HOT 5
- Add typo check to CI HOT 7
- Can we freeze linenos and header position? HOT 6
- Error in console when hovering over Deletion events HOT 1
- Fails to treat variables of exception types, when they're not used in error handling
- Refactor `JumpDetector`
- Should only create gold data files if cyberbrain ran successfully HOT 3
- pdir2 0.3.6 cyberbrain 0.2.3 dependency (typing-extensions) conflicts 【依赖项冲突】
- Can't connect to RPC server HOT 1
- can't Support python3.11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cyberbrain.