Live data from Hacker News

Show HN: Haystack – an IDE for exploring and editing code on an infinite canvas

haystackeditor.com

181–190 of 227 posts

Re: Show HN: Haystack – an IDE for exploring and editing code on an infinite canvas

#182

Earlier quoted context omitted.

> I feel like the OS window manager should provide this kind of experience GIMP (the OSS Photoshop-style tool) had this idea for literally over a decade and eventually gave up on it because they never got it to work well.

They didn't give up on it, they simply added alternative options for those that didn't like it.

As far as I know the old mode is also no longer the default. At least it isn't in Fedora and in GIMP's own release notes they also don't use the old mode [1]

[1] https://www.gimp.org/release-notes/gimp-2.10.html

Re: Show HN: Haystack – an IDE for exploring and editing code on an infinite canvas

#183

The landing demo really needs to show off the "infinite" part, instead it's just showing that windows in windows are clutter and need manual resizing to fit inside the box. E.g. show how it helps structure clusters of a hundred files all open at the same time, on an infinite canvas, in a way that is quickly traversed?

This is good feedback. The problem we encountered is that everything gets incredibly tiny if you zoom out, but we'll iterate on making the landing demo better.

You only need to show off "that" you can zoom, e.g. showing a faster than normal zoom-out to the overview and then zoom-in on a different cluster, and then a view restriction that "drops" all the files not involved the codepath(s) we're currently in for more focused (but still much larger than one canvas) workspace.

Re: Show HN: Haystack – an IDE for exploring and editing code on an infinite canvas

#185
post #131

Earlier quoted context omitted.

This appears to run within VSCode from the demo videos, as opposed to being standalone. You get everything you get there. If you use Idea tools you're out of luck I guess.

> out of luck Idea can already do everything Haystack can do (open several editor windows, only open single method, code navigation, callers...). On large screens (quad 32" 4k) it is quite useful. But a bit more refined experience would be nice.

Quickly googled yesterday for Idea´s contexts. I need to dig that further. Any article or resource you may recommend?

Re: Show HN: Haystack – an IDE for exploring and editing code on an infinite canvas

#186

This looks really interesting and well thought out. Nonetheless, I feel like the OS window manager should provide this kind of experience, with appropriate hooks so that an IDE can implement this sort of experience with native windows. I really liked using PaperWM¹ for a while, however, I'm still waiting for it to get more stable. Another system that is sort of similar to this concept, Pipeworld² (part of the Arcan p…

OS windows are a hindrance for any workflow needing semi-permanent layout. It's ok to place two or three monolithic apps side by side, and maybe to pull apart separate working sessions at different virtual spaces. It also requires constant bookkeping to clean up all the individual windows you no longer need. That's very different from a spatial layout, where you can juxtapose related code elements near each other, an…

Alright, I have a mismatched setup: a 1080p and a 4K screen. No matter how you twist it, the virtual screen* will have dead zones. Self-management of a single full-screen canvas is easy (browser F11). But then I will want to use the entire physical screen estate with the editor and it'll end up re-implementing large parts of the window manager just to position the windows where they belong, rendering at the correct monitor DPI.

Further, just from the shown animation I can already see the same problems you'd encounter with a lot of screen space and old style window managers: you grow tired _very fast_ of moving and resizing additional windows yourself to fit more on the screen. "Maximize (on current screen)" is the only automation step in this direction and it is decades old. Windows' "snap to edges" is a semi-manual attempt at assisted window management.

* in Win32 terms, a rectangle encompassing the entire region with all visible screens

Re: Show HN: Haystack – an IDE for exploring and editing code on an infinite canvas

#187
Awesome!. I like the focus on a specific part instead of the whole file. This is built to address a very clear set of human problem: Working memory and distraction due to clutter. In general, using a machine to work with the human to solve a problem: Understanding and editing a code base that is formidable.

Use case 1, which you solve, is traversing your own - rather large - code base to do editing, but then there is also the usecase of traversing a new code base base and understanding it by reading/writing a unit test. And also the case of a person who is new to a language but is trying to understand a project. All while that memory pressure is causing him to forget/tire.

In general, I feel one comprehensive way to solve this is using the Theory Of Mind idea from AI-Planning:

1. Set the goal and subgoal of what you are trying to do: Typically these are: Edit code base to add feature, Edit, the code base to add tests, Understand code base by reading/executing a test. But there could be more based on goals and intentions of the person reading the code. These goals come with a set of Actions the system is capable of.

2. Your system can generate/propose a set of actions to meet that goal. Starting with the basics. LLMs could be used to generate "ideas" based on the goals which could be converted to a formal plan which could then be presented to a human in NL [1]. These plans could be just steps based on call graphs at first(very deterministic). But it could also mean that changes could affect other functionalities that you previously understood and now the understanding is obsolete because of those changes. Implementing an Agent that knows what you know and doing it well is a Theory of Min(ToM) implementation that is the holy grail of AI.

[1] https://openreview.net/pdf?id=Th8JPEmH4z

Re: Show HN: Haystack – an IDE for exploring and editing code on an infinite canvas

#188

I published a paper comparing navigation time with a canvas-based editor (Code Bubbles) vs. traditional tab-based editor (Eclipe) vs. a carousel-based editor (Patchworks, a tool I designed). We found the canvas provided too much freedom. https://austinhenley.com/pubs/Henley2014CHI_Patchworks.pdf

This is cool - I haven’t really thought much about the spatial organization of my IDE before. Reflecting on it now, I realize I don’t even use the tabs in VS Code anymore because I have way too many files open. I just look at one file at a time, and when I need to switch I use Cmd-P to search or jump between recent files. Works well but requires me to keep the names of files/directories in my head all the time.

This is why I set a limit on the tabs in my IDE.

Re: Show HN: Haystack – an IDE for exploring and editing code on an infinite canvas

#189

Earlier quoted context omitted.

This is cool - I haven’t really thought much about the spatial organization of my IDE before. Reflecting on it now, I realize I don’t even use the tabs in VS Code anymore because I have way too many files open. I just look at one file at a time, and when I need to switch I use Cmd-P to search or jump between recent files. Works well but requires me to keep the names of files/directories in my head all the time.

I mainly use ctrl-tab to switch between tabs for the same reason. Recently active tabs are first on the list so it's a fast way to switch between recent tabs. For not-recent tabs, I still don't use the tab bar but press ctrl-tab and then select a file using mouse in the ctrl-tab dialog (or just tabbing many times)

Oh wow didn't know that existed. You should try cmd-p too! If you hold down Cmd and press P repeatedly, it acts like ctrl-tab, but you also have the option to search files at the top. I suppose you could remap it to ctrl-tab and then you'd get it for free.

Re: Show HN: Haystack – an IDE for exploring and editing code on an infinite canvas

#190

This is really cool! I like the fact that when you navigate to a method/declaration/whatever, it only contains the relevant snippet, rather than opening a secondary tab with the whole file scrolled to where the definition is. I often end up in a situation where I keep losing track of whatever method I'm reading since I need to compare where a method is called vs its definition, which is frustrating. I like that I can…

>I like the fact that when you navigate to a method/declaration/whatever, it only contains the relevant snippet

I see why you like it, but I suspect it could be sum negative in a long run. I believe it's beneficial to just be aware of what and where is in the code. Can it be that few years went with a project, and you still don't know what all those files are about because you has been working only with small chunks?

Post reply on HN