Update: I’ve rebuilt this from scratch, see here, but it is interesting to see the evolution.
Recently I’ve been working as a Rails developer. I’ve always enjoyed Ruby and I’m grateful for the chance to learn more about this magical language.
However, I found myself grappling with a huge code base, and an unfamiliar business domain.
Overcoming inertia is often the biggest challenge on a new project.
It seems that projects leak information, details are often scattered, and opportunities to capture knowledge are lost. I’m keen to explore ways to prevent that loss, and to bring requirements, data dictionaries, developer notes, common processes etc, closer to the code base.
Another area of interest is capturing information related to a ticket. When revisiting a ticket, it is useful to have recorded against it things like the solution, developer notes, code bookmarks, captured logs, attachments, web links etc. This defines the context of the solution and allows another developer to understand what was affected, and what was done. It also helps with solving similar tickets in the future, a developer can revisit a solution for insights.
Not sure whether the end goal is an IDE or a Project Management type tool, but I built an IDE in C# as a starting point, with these basic concepts in mind:
- Surface the code
- Make it easy to navigate
- Accumulate knowledge
- Facilitate learning
- Connect things
Not sure where this is going, it’s really just a prototype or exploration of concepts at the moment. It’s buggy, but stable enough that I use it as my daily driver. Hopefully some vision of a product will emerge as it evolves. IDEs are so good nowadays, such as RubyMine, it may be better if this was a supplementary tool that hooks into the code/IDE.
The IDE is fully scriptable, via IronRuby or C#.
It works with WSL and Windows.
You can interact with captured logs, jump into the code, do code differences and run Rubocop etc.
There’s a ton of improvements to do, and lots of unimplemented ideas.
It’s been a mad rush as I’ve been coding this after work hours over the last month or so.
The next feature has to be calling out to ChatGPT, need some help to improve my momentum 🙂
Apologies for the video, it seems to have lost quality on the upload. I’m a little tired at the moment, but will upload another version when I get a chance.