| (as a software developer or just someone using software, in whatever field you happen to be working in). An example: -> As a software developer, I've come across the need to work with CSV-"like" files several times in my career (at several different jobs), for different reasons. And it was most frustrating when they had like 100 columns or so. Having to change column 63 at line 58 is not something you do easily in Notepad++. Import to Excel was my way to go, but since the file was not a standard CSV file (e.g. also had sections like an .INI file) it was time consuming: first just select a subsection from the file, save to a different file, import to Excel, modify, paste back, etc. Maybe it was not the best approach, but that's not the point I'm making. Not having found an existing tool (maybe my problem was too specific) I eventually made a small desktop application which I would use to edit the files directly. The interface was similar to Excel (grid of cells); It was simple and tailored to what I needed. But maybe you are not a software developer and don't have the "luxury" of building it yourself. So, would you share your experience of similar situations? If the solutions to your problems are relatively easy to implement, then someone can create a tool for the job, making your life easier. And on the off chance that these tools are useful and will be wanted by more people (with similar problems) these "tools" can turn into a more general "product", thus a win-win situation in the end. What i'm saying: - There are already talented people working in their spare time on e.g. open-source projects (no shortage of people wanting to tackle the problem, if it is reasonable)
- The shortcoming is that domain specific problems, which people are facing, are not visible enough (except to them). If this question should get enough attention and answers, the next step would be to structure the answers into a git repository/website. |
* Tell me where in package (or module) X it calls functions that can eventually reach function Y in package Z (that is, there is a possible stack trace starting in X that leads to Y.
* Recursively expand the tree of callers of this function.
* Show me where the value passed to this function are created.
* List what packages have functions that can get called when I call function X.
* Given two functions A and B, what functions can result in calls to both? (This is sort-of the greatest common denominator of possible stacks leading to A and B)
(It seems like this must surely exist, but I have yet to find it)
I also want better tools for tracing what a system does when running. For example:
* Say I have a test over some deterministic code, and I make a small change to that code. I'd like to be able to run that test before and after, and get a diff of where the computation was the same vs. where it was different.
* When debugging, I'd like to be able to ask questions about the history, like what set this field on this model to the current value? (With debuggers I've used, you have to know these questions in advance and set up things to watch - you can't ask those questions after the fact)
* List all packages that had a line of code run while running this test.
edit: formatting