Effect of Perceptual Load on Performance Within IDE in People with ADHD Symptoms

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • adhd-study

  • https://arxiv.org/abs/2302.06376 – non-paywalled paper

    https://github.com/JetBrains-Research/adhd-study – experimental data

  • komorebi

    A tiling window manager for Windows 🍉

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • nano-emacs

    GNU Emacs / N Λ N O - Emacs made simple

  • It's not adhd specific but https://arxiv.org/abs/2008.06030

    After reading this I implemented a code theme based primarily around typographic variation like weight rather than color. It uses only two colors (black and deep purple) in two weights and one italic each. I have pretty severe adhd and it's hard to judge but after using it for a few months I think this is better for me. Previously I had been using solarized light for nearly a decade for probably similar reasons.

    Nano emacs was created by the author of that paper and its default themes are based on it, if you want to try it without committing to hand-rolling a theme. Personally I found that one too "light" (typographically, not color) but I also have relatively poor vision and like a large and heavy font.

    https://github.com/rougier/nano-emacs

  • opendyslexic

    OpenDyslexic, a typeface that uses typeface shapes & features to help offset some visual symptoms of Dyslexia. Now in SIL-OFL.

  • Too bad the article is not open-access, as I would expect from JetBrains.

    Extra cognitive load slows everyone. It's just that the effect is measurably distinct in people with executive function (distractability) issues, with respect to speed. The distinction between debugging and coding is not really active vs monotonous but driven by your own ideas vs chasing (a problem). The study isn't realistic, but it's designed to get a measurable result (and to showcase the "efficiency tracking" plugin).

    Anecdotally, everyone adjusts their IDE, or accommodates what can't (easily) be changed. Too bad that wisdom is lost and hard to share.

    I think the solution here is more configurable UI's, with the configuration being automated/scriptable so that once you've established your preferences, you can replicate them through upgrades, etc.

    The most configurable IDE of course is Eclipse (which is in decline because no one gets paid directly to write for it, and it's cheaper to publish a language server for your new language than build an IDE). You can arrange views as you like, change menu and toolbar visibility, change key bindings, and of course add whatever plugins/features you need. You can save view configurations as a workspace and save various preferences. But because components come from everywhere, support for configuration capture varies.

    People share their dotfiles for shell and vi/emacs configuration, but not their IDE configurations. It's too bad, because then there would be a configuration population to analyze when raising UI issues.

    ADHD and ASD are a broad spectrum. It may help to join the tribe because it validates our experience, but then we can fail to recognize our brain's specific biases. Worse, anyone over 7 has been getting good at compensating, which hides the issue, and our culture of excellence/competition/success == good (therefore failure bad) further obscures with shame, defeat, and self-sabotage. Legal requirements for accommodation help set a global floor, but may also work as a local ceiling by supplanting ordinary fellow-feeling.

    For reading fatigue, consider a dyslexia font, e.g., https://opendyslexic.org.

  • clangd

    clangd language server

  • > As a side note, I despise things like imports and aliases. I'd prefer that when I do jump to a function, I can read it without having to check if anything is imported or not.

    One idea might be to use an LSP (Language Server Protocol) interface. It could describe the fully qualified symbol for you when you, say, select the abbreviated symbol or press a keyboard shortcut. I've been working on a moderately large C program with Emacs and clangd[1] recently and have been amazed at how 'immersive' it feels, and that's from someone who's used to the comfort of a Lisp REPL!

    [1]: https://clangd.llvm.org/

  • TiddlyWiki

    A self-contained JavaScript wiki for the browser, Node.js, AWS Lambda etc.

  • You should check out TiddlyWiki as it’s designed around the concept that small linkable notes are the best way to organize.

    https://tiddlywiki.com/

  • iron

    Strong type constraints for Scala (by Iltotore)

  • > The output you see is not generated by python.

    Obviously, as running the code generates a very different output…

    > It's generated by an external type checker.

    I know.

    But again, you didn't say that.

    You said the above code "generates" this…

    Maybe you've heard that by now somewhere: Words matter… ;-)

    > The context is python. We're talking about python. I'm making a statement about python.

    No, you made a statement about type checking. Here the full quote once again:

    > The contents of a string can't be type checked and if all methods are defined this way on a class none of it can be checked.

    Nothing in this statement is about Python.

    All I did was just proving your words once again to be nonsense: You can statically dispatch (which involves static type checking!) just fine on strings. My (Scala) code is prove of this fact.

    > There is literally nothing in my statement to indicate I'm making a general statement about type checking.

    LOL. Do you actually know what you're writing? Once more:

    > The contents of a string can't be type checked and if all methods are defined this way on a class none of it can be checked.

    That's a general statement… It couldn't be even more general, actually.

    > But I will say checking for the contents of a string is rare for a type checker to do. That is a general statement that is generally true.

    Once again complete nonsense.

    There are whole libraries doing more or less nothing else than handling singleton types.

    Whole software layers utilize that! But I guess you never heard of static data validation…

    https://github.com/Iltotore/iron

    You have so little clue, but such a big mouth… That's so embarrassing.

    A helpful tip: Stop spiting out maximally general claims (because these are almost always wrong!), and think about what you're actually writing.

    What's in your fantasy, or what you "may have meant" is irrelevant!

    > The guy made factually incorrect statements and so did you.

    That's exactly what I'm talking about: You're a severe DK victim as it seems…

    > It's just true that he's wrong.

    No, actually you are wrong with almost every claim, like I've proven now several times. And this nonsense still didn't stop… Oh, boy!

    > people shouldn't get worked up about someone else identifying a mistake.

    Think about that once again. Especially in the context that it's you who is wrong here with almost everything you say.

    And no, nobody is "pedantic". It only gets quite unrealistic that someone who doesn't even get banal prose straight would be able to write any code. Because the computer is actually very pedantic. And after production is on fire you can't just come to your boss and excuse yourself with "but I've meant this differently, just the stupid computer did again not understand what I've meant".

    But to be honest this would actually explain:

    > I've likely worked for more companies then you in the last 5 years or so due to my personality. I don't stay at one place for long.

    I have some suspicions to why you don't stay anywhere for long… And yes, that would be indeed related to personality…

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts