26 ms·
I’m a productive programmer with a memory of a fruit fly
- BerislavLopac 4y agoTime flies like an arrow, fruit flies like bananas.
- dekhn 4y agoit reads better as "time flies like an arrow, fruit flies like a banana"
- zomglings 4y ago- Terry Pratchett
- dekhn 4y agoI don't think so.
- qohen 4y agoThe "Time flies..." quote is commonly ascribed to Groucho Marx. But, according to QuoteInvestigator.com[0], that is not correct: QI has traced the core of the quotation to the work of an early researcher in artificial intelligence, Anthony Oettinger, who was trying to get a computer to manipulate the English language. (Lots more detail at the link[0]). [0] https://quoteinvestigator.com/2010/05/04/time-flies-arrow/ https://quoteinvestigator.com/2010/05/04/time-flies-arrow/
- Applejinx 4y agoWhich is another interesting detail of artificial intelligence: this attribution is basically the Mandela Effect. Groucho Marx SHOULD have written that joke. It's good, the punch word is at the end, it's the kind of logic-mocking braintwist Groucho was exceptional at making, and yet he didn't write it. So we ascribe it to him anyway, because that's who SHOULD have written it. Thus is intelligence: we try to make things make sense, and we try to relate things to the big areas of 'sense' we already have in our minds. We have a space for Groucho and for humor, but who's Oettinger and where can we watch his comedy routines? What, he doesn't do comedy routines? And so, sense beats reality…
- jbandela1 4y ago"time flies like an arrow, fruit flies like an apple" Has even more similarity between the two halves.
- marcosdumay 4y agoBut they will always prefer a banana.
- deleted 4y ago[deleted]
- BerislavLopac 4y agoI doubt fruit flies like only a single banana...
- orangepurple 4y agoImproving your own brain with memories and knowledge is like greatly increasing the size of a CPU L1 cache and the improvement in execution performance is similar
- zibby8 4y agoCPUs don't have logic or reason, so it's not a good analogy. E.g. you can replace an infinite set of memories by distilling them into a few bits of knowledge that underpin that given set of experiences.
- jvanderbot 4y agoI don't think an analogy is meant to be factually equivalent, it is meant to convey meaning. I perfectly understood the meaning of the parent comment, even if it is technically inaccurate. We aren't trying to understand minds or caches, we're trying to encourage a practice that has little to do with the inner workings of either.
- ilyazub 4y agoGood point. Reminds me "All models are wrong, but some are useful"[1]. [1]: https://en.wikipedia.org/wiki/All_models_are_wrong https://en.wikipedia.org/wiki/All_models_are_wrong
- dekhn 4y agoCPUs have logic, and programs can do reasoning. And that's now how the brain works (if you mean generalization).
- orangepurple 4y agoAnalogies are almost always flawed but they are powerful tools for forming strong associative memories. They are a starting point for encoding new knowledge in a custom symbolic language known only to yourself. It is the basis for all learning. Some other major tools for learning are mnemonics and spaced repetition.
- 4y ago
- nyanpasu64 4y agoI wish Zeal had per-doc-set custom CSS rules, and customizable default zoom level.
- mxuribe 4y agoWell, i suppose since the source code is simply a repo on github, have you tried submitting these as feature requests (via github)? Worth a shot, eh? (I do like the idea of the zoom level adjuster.)
- nyanpasu64 4y agoZeal seems, complicated. It hasn't seen a release since 2018 (https://github.com/zealdocs/zeal/discussions/1308 https://github.com/zealdocs/zeal/discussions/1308 they're switching browser engines at some point, which affects default zoom level, though customizable CSS injection should be doable if they keep static CSS injection), and commits are a bit sparse (https://github.com/zealdocs/zeal/issues/1336 https://github.com/zealdocs/zeal/issues/1336), so I'm not sure my feature requests will be fulfilled. Worryingly, while updating my 5 docsets downloaded months ago, I hit a segfault, and trying to debug it in coredumpctl repeatedly hangs gdb and makes it eat all available RAM. I suspect it's a lifetime or multithreading issue. EDIT: Reported at https://github.com/zealdocs/zeal/issues/1426 https://github.com/zealdocs/zeal/issues/1426. QAbstractItemModel is the gift that keeps giving.
- mxuribe 4y agoAh, I see. Yep, complicated indeed.
- impulse7 4y agoI made something similar to have a key-shortcut quickly show a 'cheatsheet' for whatever application window that is in focus in i3(window manager). If no cheatsheet exists it opens an empty document so I can fill it in and save it. https://github.com/tonybjorkman/i3-cheatsheet-hot-key https://github.com/tonybjorkman/i3-cheatsheet-hot-key
- mileycyrusXOXO 4y agoI love this idea, I might have to implement this on my work mac
- brokenmachine 4y agoGreat idea.
- pessimizer 4y agoNever heard of Zeal before in my life; glad to have read this blog. Also thankful to this guy for making it easier to get docs into Zeal. People are the best.
- mxuribe 4y agoSame here - neve knew Zeal existed 'til today! I also often have numerous browser tabs open to a few different doc sites. I know there are websites out there that provides something similar (e.g. https://devdocs.io https://devdocs.io , etc.), but Zeal is *offline* which makes it a wonderful thing! I just downloaded it on my work machine, and love it! I'll be setting this up at home machine too! Kudos to the crteators of Zeal, and for today's promotors (TIL)!
- pessimizer 4y agoI felt like an idiot thinking this thing must be obscure and new, then finding out it was always an apt-get away.
- mxuribe 4y agoSame here! :-)
- sitkack 4y agodevdocs also work https://devdocs.io/offline https://devdocs.io/offline
- aussiesnack 4y agoUnfortunately it's not a patch on Dash. I used to use it, but found too many cases where it was missing docsets and glitching on existing ones. It didn't handle different screen resolutions well. The Fedora package for it is often broken (I just installed it to see if things have improved & all I get is an empty window with an odd partial-width window title bar). There's a gap in the market for a good cross-platform docs browser, preferably supporting user-added notes.
- 0xbadcafebee 4y agoA comparison of documentation generators: (https://en.wikipedia.org/wiki/Comparison_of_documentation_generators https://en.wikipedia.org/wiki/Comparison_of_documentation_ge...). Sphinx and Doxygen seem to be the ones still maintained with the most features. Old man mode Remember back when Linux systems just came with huge packages of documentation? You could do anything offline by reading man pages or looking through /usr/doc/, /usr/share/, etc.
- sitkack 4y agoAnd on FreeBSD you have an entire monorepo that is the full source to the system, you could REBUILD THE WORLD, not just the kernel.
- croisillon 4y agoThe post has been written tomorrow?
- LouisSayers 4y agoIt's called time zones, the world isn't your country. Welcome to the future.
- Computeiful 4y agoWouldn't it be better to save the publication datetime as a Unix timestamp, then convert it based on the reader's timezone?
- f311a 4y agoYeah, but since the author leaves in EU I think it’s just a typo
- pessimizer 4y agoIt's not the 20th in Germany yet.
- no-dr-onboard 4y agoThe author might be in Aus/NZ.
- deleted 4y ago[deleted]
- tpmx 4y agoThe author writes that he's in Berlin/DE.
- denysvitali 4y agoThen it's simply wrong. In Berlin, at the time of writing this comment (which is anyways after he published the article) is September 19, 2022 :)
- timr 4y agoI have the same problem (i.e. terrible short-term memory, though my long-term memory is fine), and I've picked up a number of compensating behaviors over the years. By far, documentation is my #1 go-to strategy. I document code extensively, even if I'm the only person who is ever going to read it again. People have mocked me for this, but I believe it's a superpower. Most programmers believe a number of blatant falsehoods about documentation, with the most prevalent being "comments go out of date quickly, so there's no point in investing in them". Maybe I'm just hyper-aware of it because my short-term memory sucks, but code comments have saved me on so many occasions that they're simply not optional. You can document your code. You can keep it up to date. It isn't that hard. You just don't want to.
- vincnetas 4y agoIf i could i would upvote this 10x times. Always write documentation (especially for your own code). Future you will say thank you to todays you. At least i have done so multiple times. And i always feel cheating my self when i feel lazy to write documentation.
- yshrestha 4y agoI have the same problem. Rather than fight it, use it as your superpower. I find it helps me write easier to understand abstractions because I can't physically hold enough in my head to understand anything more complex. Same is true for documentation!
- gleenn 4y agoIf you are diligent about documenting AND updating, sure, seems very reasonable. But most people aren't. You know what the best documentation is? Working tests, much harder to have wrong tests than wrong documentation. Even some of the largest projects like Ruby on Rails have had incorrect internal code docs.
- timr 4y agoNo. Tests are not documentation. Tests are tests, written in code, which must be explained. You should document your tests, too, because I guarantee the next programmer won't understand your tests as well as you (think you) do. Also: the "next programmer" will be you in a year. This is maybe a close #2 on the list of documentation falsehoods that programmers believe.
- tpmx 4y agoMay be a variant of http://www.paulgraham.com/submarine.html http://www.paulgraham.com/submarine.html (regarding "Dash") But perhaps I'm exaggerating? I'm basing these concerns on what we learned about the creator of Dash here, in 2016: https://news.ycombinator.com/item?id=12684265 https://news.ycombinator.com/item?id=12684265 (To be clear, the creator of Dash has a different name than the author of this post.) There was IMO highly manipulative behavior that fooled a large part of HN back then - to the degree that I remembered it just now, six years later.
- throwaway576652 4y agoI don't remember anything. But my work notes have thousands of lines. So if need to recall something, I just use Ctrl+F.
- darkteflon 4y agoSame. Unfortunately, I came to this paradigm too late - my mid-thirties - to make use of it in my first career. But it’s radically changed the way I approach my second.
- ajudson 4y agoMemory is important, it doesn't matter how nice your documentation search is http://augmentingcognition.com/ltm.html http://augmentingcognition.com/ltm.html
- lanstin 4y agoArguably programmers who have great memories are much more likely to write unmaintainable code, 'just edit these fifteen files to add a new financial type' Once and only once is a requirement for people that can't remember as much but also for good code. Consider it a requirement for code organization and tools:if it takes longer to look up than remember then the tooling needs a bump. Obviously during heads down green fields coding, the cache will get filled efficiently of wjatever is needrd, but by the time v1.1 rolls around a good reread and rethink might be a good idea Also, the key skill isn't memory but rapidly and well learning new things. My C, perl, and jquery knowledge is well forgotten and replaced with python, go and terraform and i am considered trying out Rust.
- yodsanklai 4y ago> Arguably programmers who have great memories are much more likely to write unmaintainable code, 'just edit these fifteen files to add a new financial type' Very true. Some programmers have higher tolerance for complex code. Which is often why there are disagreements over refactoring.
- bamboozled 4y agoMan this is crazy true, I work with people who are ridiculously "intelligent", seemingly have amazing memories. They seem to right the worst code.
- xavdid 4y agoI've noticed as I've gotten older that I lean more on remembering pointers to information rather than the specific information. I know something exists and can find it quickly, but may not know it off the top of my head. For example, how to get the length of an iterable in a given language. I may not remember the function name (or if it's a top-level function vs a method) but I know I can search "string length in $LANGUAGE" and find it. This scales better than memorizing every language feature I'll ever use. --- PS: Dash is a great mac app, highly recommend. Your job will likely cover it if it's something you think you'll use.
- Mockapapella 4y agoSame here and I'm still young. I'd guess it's more a result of the accessibility of information rather than getting old itself.
- phist_mcgee 4y agoI think one of my greatest improvements as a developer over time is my ability to sift and sort information very quickly. I don't need to remember a lot of details, but like you said: remembering pointers to information. Combine these pointers with google and an intuition for finding relevant information, I will nearly always arrive at the correct information/solution. It's like a muscle, you have to keep training it.
- idlehand 4y agoDefinitely agree with this. I've stopped worrying about remembering details, and just assume that my neural network brain will figure out what is worth retaining. Sometimes it does, sometimes it doesn't, but life goes on. Not having anxiety about forgetting things feels wonderful. Very often it's a lot easier to remember the journey to a piece of information than the information itself. I remember reading about some Greek scholar who'd imagine his long speeches as walks, which helped him memorize them. I think we are more suited to learning journeys than destinations. Maybe there's simply more concepts to connect neurons to. Tangentially, I've gotten better at remembering walks and drives as well, not through any conscious effort, but simply cultivating a sense of curiosity about the world around me. The more I learn about how the world fits together, the more interesting tidbits I notice in a location, and when I see the same place again it reminds me of the previous time I was there.
- f311a 4y agoToo bad we don’t have a modern replacement for the man command in terminal that could provide the same features.
- inetknght 4y agoEven if we did have a "modern" replacement it would probably say something like "there are a lot of features and you should explore the interface to discover them!"
- swah 4y agoWarp terminal (MacOS only, got some backslash here for requiring a log-in) has a feature for helping with this: https://docs.warp.dev/features/workflows https://docs.warp.dev/features/workflows
- dkjaudyeqooe 4y agoI don't try to remember anything and really don't see the point. There's no way you can remember everything you need, so why even try?
- orangepurple 4y agoCreativity The rate at which you assimilate and synthesize new information on a particular subject is proportional to how much other stuff you already know about that subject. Its also only really worth learning things that matter or might matter to you in the future, so there is a degree of speculation and risk involved.
- pessimizer 4y agoThe keyword is "chunking."
- dkjaudyeqooe 4y agoBut not remembering helps that. I have a good sense of what exists and what can be done and the general outline of many things. Keeping the details in your head makes it harder to be creative and think expansively.
- ianbutler 4y agoAnd here are the docset feeds, which link to the actual docsets on Kapeli for Dash. You of course can't use them without permission, but I've found them interesting before. https://github.com/Kapeli/feeds https://github.com/Kapeli/feeds
- jbandela1 4y ago> Your mind is for having ideas, not holding them. I will have to disagree. New ideas are rarely totally new, and often build on old ideas. Keeping old ideas in your brain will help you come up with new ideas. One of the big advantages of having stuff in memory is that you can do background processing. I can't tell you the number of problems I have figured out while going for a long walk, or driving in my car, or even sleeping (all of a sudden I wake up with the solution).
- JohnBooty 4y agoKeeping old ideas in your brain will help you come up with new ideas. Agree! Though, "Your mind is for having ideas, not holding them" doesn't mean that you should literally never remember anything. It's just not necessarily clear from context-less quote. I can't tell you the number of problems I have figured out while going for a long walk Happily, you are in agreement with the author of the quote - https://en.wikipedia.org/wiki/David_Allen_(author) https://en.wikipedia.org/wiki/David_Allen_(author) The point is not to forcibly resist remembering things. The point is to free yourself from the burden of remembering things that can simply be filed away (ie, reference documentation) so that you can be more present, focus on what's important, and free your mind up for more creative/productive thinking - including those walks where many of us get our best thinking done. :)
- falcolas 4y agoWhen I first read this line, I misread it as: > Your mind is having ideas, it's just not holding them. which is still quite accurate, especially given the theme of the article. Augmenting your memory is important, especially since age can make memorization harder, and even impossible.
- kazinator 4y ago> On the other hand, the information for everything that we need to write code today is usually no more than one click away. Sure! If you just assemble a page with about 500 button or links, and know which one to click on to get the needed information, everything is a click away!
- nonameking2026 4y agoI've found https://beta.openai.com/playground https://beta.openai.com/playground to be quite good for simple things, Takes a couple of times to get the questions right - but worth it. Only complaint is that it is not instant.
- Someone 4y agoBefore reading the article, I googled whether ”the memory of a fruit fly” is a compliment. It’s not. https://kids.frontiersin.org/articles/10.3389/frym.2017.00063 https://kids.frontiersin.org/articles/10.3389/frym.2017.0006...: “Normally, flies will remember very well and will get an A if they are tested a few minutes after learning. But if there is long time between learning and testing, which for a fruit fly is 1 day, they will forget and get an F” A fruit fly lives for 40 to 50 days, so 1 day isn’t a long time to remember things for them. https://phys.org/news/2017-03-fruit-flies-memory.html https://phys.org/news/2017-03-fruit-flies-memory.html: “Flies form a memory of locations they are heading for. This memory is retained for approximately four seconds. This means that if a fly, for instance, deviates from its route for about a second, it can still return to its original direction of travel.” I couldn’t find how many things they can remember simultaneously.
- poo_tan 4y ago40 to 50 days... that's quite a bit of time!
- mgaunard 4y agoUsing third-party libraries may be more costly than developing your own. It's much easier to modify and maintain your own software which is purpose-built to your needs than it is to maintain somebody else's code that was built to their needs, and was probably overcomplicated to make it as a generic library. For a compiled language, you have the extra complexity of integrating its build system into yours. So I'd say you should still weigh carefully whether you want to pull an extra dependency or not.
- idlehand 4y agoYour own code is as foreign as a third party library to a developer who hasn't been part of the writing process. Third party libraries which have a handful or more users are generally speaking relatively bug-free for standard use cases. Third party libraries are generally a productivity win for languages which have decent build systems, which is most of them notably excluding C and C++.
- mgaunard 4y agoNot true, the codebase of any company has all its components well-integrated with each other and uses consistent style. Every third-party library will feel extremely alien.
- adam_arthur 4y agoIf your code reads like English, you don't need much of a memory. A codebase that requires large working memory typically means it's written poorly. Lacking encapsulation, poor modularization/separation of concerns, unnecessarily succinct variable names
- xor99 4y agoYou have volatile memory, very workable and useable imo lol
- zwischenzug 4y agoThis is an ad.
- pessimizer 4y agoFor the free thing that he's been giving away for 10 years, or for his free newsletter?
- hotdamnson 4y agoTime flies like an arrow, fruit flies like banana
- swah 4y agoThat's why I'm paying for Copilot now... but with the fear that using this just makes my memory even worse.
- idlehand 4y agoCopilot has got me writing some side projects in Java again. I love the fast compilation speed, good enough type system, strong and seamless IDE support, and the abundance of libraries. The new language versions with things like records take a lot of the tedium away, and Copilot gets rid of most that is left.
- masukomi 4y agoTell me you have ADHD without _telling_ me you have ADHD ;) Sometimes I'm not sure what's worse, the not remembering, or the people claiming that you having forgotten means you didn't care enough, or that you're not trying hard enough. grrrr
- stronglikedan 4y agoCould just be ADD. ;)
- LesZedCB 4y agothey are the same now in DSM-5. they are both ADHD, with subtypes of Inattentive, Hyperactive, or Both.
- nathias 4y agoit's mostly use it or lose it, I have to relearn a lot of the unimportant things that get tested for jobs
- hotz 4y agoIt's a thing. Every couple of months I rehash everything.
- masukomi 4y agoI wrote Private Comments[1] specifically to address this problem in code. My coworkers can maintain context about how a given thing works months after the fact. I can't. So, I leave private comments throughout the code. Things they'd never want committed, but save me hours of re-leaning when next i encounter a given piece of code. Currently has plugins for Vim (proof of concept) and Emacs (actually good). It'd be lovely if one of you folks would make a VSCode plugin for it. I've thoroughly documented the API and diagrammed the code flow you'd need[2], so that this would be as easy as possible to add to your favorite editor. [1]: https://github.com/masukomi/private_comments https://github.com/masukomi/private_comments [2]: https://masukomi.github.io/private_comments/ https://masukomi.github.io/private_comments/
- dotancohen 4y agoJetbrains used to have a terrific plugin for this. Unfortunately it is no longer maintained.
- zwarag 4y agoRelated Question: What have you done to improve your memory?
- cardanome 4y agoI am on the opposite end of this. The older I get the more I see the value of rote memorization. Just taking the time to actually learn what the standard library of the programming language you are using provides can dramatically increase your productivity. The same with important libraries you are using. Yes, it is too much to memorize everything but just knowing what actually is there will help you a lot. You can not search for something you don't know exists. I also really love working on solo projects because I tend to memorize the general shape of the code I am working on. This makes me so much more productive. I might not remember every single line of code in detail but will have a pretty clear idea of the shape of the program. This means I can plan new features or doing refactors in my head and see if they would work. I don't need to sit in front of the computer. I can do the hard mental work while taking a shower or going for a walk and can type in the code afterwards. Anyone else work like this?
- quickthrower2 4y agoI agree after doing a React course that teaches on a memorization basis (every exercise you get a blank screen, no docs!). However at work I am stumped about what to memorize? At work I do a bit of everything from new k8s cluster to front-end optimization.
- mattnewton 4y agoWell, memorizing algorithms lets me know what is possible sure, but memorizing the actual api methods and arguments seems like a colossal waste of time for my specific circumstances. If it’s possible in one language it should be possible in another. I haven’t ever reused _exactly_ the same stack twice in my career, so it seems hard to optimize for the exact incantations rather than lazily find out what is in the library vs community packages. Looking them up is cheap enough, and I save shower time for high level thinking about what kinds of programs could be useful.
- onemoresoop 4y agoThe problem with rote memorization is that it makes life a pain when something changes from under your feet, you have to unlearn and relearn which takes double the effort. However, it's good to rote memorize more static info and references, tables of contents and so on. The rest I leave it to use, what is referenced multiple times becomes permanent.
- 01100011 4y agoI started having this problem around 40. A lot of it came from a heavy marijuana habit that seemed to reduce my working memory with the tradeoff that I became more clever at small-scale problems(I call it a tactical vs strategic tradeoff). Quit smoking pot and things got a lot better for a while, but then things seemed to resume their downward slide. Sleep apnea didn't help, and treating it made things better for a while, but that slide continued. Now I just try to manage it with lots of notes, scripting everything I can, and trying to simplify my workflow wherever possible. Hopefully things stabilize in my 50s or I don't think I'll be good for much engineering work beyond that. I have a number of dopamine-related movement disorders though so there may be some special issues in my case.
- fwip 4y agoApologies if you already know this, but dopamine has definitely been linked to attention difficulties as well (ADHD being the best studied of these). https://www.healthline.com/health/adhd/adhd-dopamine https://www.healthline.com/health/adhd/adhd-dopamine
- 01100011 4y agoYeah the problem is "dopamine" means many things in the brain. You can have too much one place and too little in another. Or you could have too much along with a declining population of dopamine neurons in certain areas. I'm type II bipolar which is theorized to be an issue with dopamine regulation and also suffer from essential tremor and spasmodic torticollis. So in my case I probably have issues in several areas.
- karmakaze 4y ago> Having all API docs one key press away is profoundly empowering. > While Dash is a $30 Mac app, there’s the free Windows and Linux version called Zeal[1], and a $20 Windows app called Velocity[2]. Of course there’s also at least one Emacs package doing the same thing: helm-dash[3]. [0] https://kapeli.com/dash https://kapeli.com/dash [1] https://zealdocs.org/ https://zealdocs.org/ [2] https://velocity.silverlakesoftware.com/ https://velocity.silverlakesoftware.com/ [3] https://github.com/dash-docs-el/helm-dash https://github.com/dash-docs-el/helm-dash
- sgc 4y agoAlso https://devdocs.io/offline https://devdocs.io/offline
- dotancohen 4y agoThanks, Zeal looks interesting until one tries to use it. I've installed Zeal and installed the Python documentation. I can see the Python tree (among others that I've installed) in the sidebar. But searching for "python append to list" or "append to list" return 0 results. In the preferences I enabled fuzzy search, still no results. So I turned to the tree to see how easy it would be able to find the answer. I opened the Python leaf, and from the 15 subleaves I opened Structures. In there I see "PyCompilerFlags", "_frozen", and "_inittab". I'll be sticking to Google, unfortunately.
- mod 4y ago> So I turned to the tree to see how easy it would be able to find the answer Python3 -> Classes -> list I agree it's not easy enough to use the search for this particular case (it's actually very difficult to find the list "add" -- list.append). I'm going to stick it out with zeal, though, and see if I get better at finding what I want. Some similar searches in other languages gave back what I wanted, so maybe it's got to do with how the python docs were imported or something.
- Melatonic 4y agoSimple solution: You need to download more RAM!
- deleted 4y ago[deleted]
- i_am_toaster 4y agoI was really excited because I have the memory of a goldfish but am the most hyper-productive person I know. I was curious about the techniques and a write up on various techniques that this person uses to compare them with my own. Then 2 paragraphs in I run face first into a 5 meter high stainless steel marketing pitch. Wtf.
- someperson 4y agoWhat techniques do you use to be hyper-productive with your memory?
- unity1001 4y agoEven if someone can remember every second in any given day with picture-perfect detail, taking notes, documenting stuff will allow him to do MUCH more than he normally could.
- betwixthewires 4y agoZeal looks cool, I'm going to use it, but it has a lot of problems. - the last release was October 2018. The repo shows activity up to 2 months ago, and I'm sure the last release works fine, but it doesn't seem very active. That wouldn't be a problem, I believe software can be done, except... - the installation documentation is very much lacking. The "make -B build" on the README doesn't work, the build instructions on the wiki is empty except for per distro instructions, the package release for Debian doesn't exist, and the ppa points to an old IP. That said, I got it working. It seems pretty cool, haven't used it yet, but from what I can see, it is very mouse centric and no keyboard controls, has popup windows and a system tray icon (I loathe them), so for a tiling wm not quite the best. But it does what I need it to do: download docsets, keep them up to date via the RSS feeds for Dash, search them. I'd love a tool like this but more keyboard oriented, specifically vim like keybinds but any keybind system would work. I know there's an emacs package "helm-dash" but I don't use emacs. I might try it just for this tool. All in all I think this is going to make my life a lot better. I like to disconnect from the world, but I want to be able to code while disconnected and zeal could enable me to do that.
- pessimizer 4y ago> the package release for Debian doesn't exist, sudo apt-get install zeal worked fine for me.
- betwixthewires 4y agoNot for me. Maybe I need to dig in, I'm on bullseye, maybe it's only in the older build repositories? Anyway, I found this https://github.com/qwfy/doc-browser https://github.com/qwfy/doc-browser that I'm compiling right now to see how it works, looks keyboard focused, simpler and supports DevDocs, and bonus it supports Hoogle if you're a Haskeller.
- pessimizer 4y ago> I'm on bullseye, maybe it's only in the older build repositories? I'm on bookworm, so it's probably the opposite problem.
- keepquestioning 4y agoYou can improve your memory via supplements.
- broast 4y agoOne of my teammates is like this. He's brilliant, though. Sometimes it feels like part of my job as team lead is to act as his memory.
- chazeon 4y agoI'm a computational physics student; my work involves using multiple software with varied options. Frequently, I need to check to make sure all my parameters are correct, and having these docs at hand is important for me. Using offline documentation is always faster than Google. Since the docsets for these special pieces of software for computational physics or quantum chemistry is lacking, I build these docsets myself. Up till now, I have written code (and sometimes scrape web pages) to build these docsets myself: 1. LAMMPS: https://github.com/chazeon/lammps-docset https://github.com/chazeon/lammps-docset 2. ASE: https://github.com/chazeon/ase-docset https://github.com/chazeon/ase-docset 3. VASP: https://github.com/chazeon/vasp-docset https://github.com/chazeon/vasp-docset 4. QE: https://github.com/chazeon/qe-docset https://github.com/chazeon/qe-docset
- plaguepilled 4y agoQE notes! Oh my god! Thank you so much.
- chazeon 4y agoGlad to see it is useful!
- darkteflon 4y agoDash looks excellent. Insta-buy for me. I only wish it officially supported Unreal Engine (cf, Unity is supported). Epic doesn’t make offline docs available and the existing community projects tend to be out of date.
- deltasevennine 4y agoMuch of IQ is basically memory in disguise. They are almost one and the same. Pattern matching is related to patterns as you have to remember. For creativity the more primitives you have to build a creative entity the better... and how do you have more primitives? You remember them. In fact, Programming Interviews directly test for Memory. Do you remember the correct algorithm? If not can you pattern match the correct algorithm? If not can you creatively build the correct algorithm from primitives you remember? It is my personal belief that if you hold memory to be equal the variability among IQ will significantly be reduced. I will welcome any evidence for or against this belief.
- pessimizer 4y agoI agree with you. I personally think that there are only two types of stupidity, and both can be adjusted to. You either a) have a bad memory, which means you need to take your time, take a lot of notes, maybe do Anki, or b) you refuse to accept the truth of some basic logical/statistical primitives out of willfulness, which means you need humility.
- twodave 4y agoI can still remember a lot of my early code (and much of it is still running in some form 15 years later). As I’ve grown and gained more responsibility I spend a lot more time on concepts and design than on particulars, and I think that actually makes the particulars harder to remember. This is doubly true because I also spend less overall time building/iterating on those specific pieces. That plus the sheer number of things I work on in a given day, at this point I can forget code I wrote last week… but it doesn’t really matter because I know how to read it later if I want, and I can always build it again anyway.
- abhgh 4y agoI tend to work on a lot of ML projects in my personal time, even if that means I am simply benchmarking something. Which means I generate a lot of data (in form of results) and conclusions based on them. Documentation, lavish commenting, proper file organization (also documented), READMEs at different levels are necessary for me to manage such breadth and scope. My memory is fine (unless I don't know what I'm forgetting ;-)), but there's only so much I can pack in for the amount of things I want to do.
- forrestthewoods 4y agotldr; intellisense is good Strong agree!
- ojciecczas 4y agome too! :)
- scoutt 4y agoMy memory problem is not with documentation. Usually my IDE takes care of it. As soon as I hit 40, I can't remeber what I did last week or before that. Did I solve that problem? Which customer complained about it? Where did I put that PDF? Fortunately I am very organized, and I leave clues for myself all over the place. Readme files in named folders, details in commits, email myself with some information. But more than often I am asked "was X display compatible with XYZ board?" and I can't give a direct answer anymore.
- jwr 4y agoI can relate to that. Things get worse with age: I once googled for a piece of code (I2C driver) for an embedded platform, only to find out that I already wrote one myself, and managed to completely forget about it. Turns out it's a good habit to publish what you wrote.
- scoutt 4y agoOh, yes. I know the feeling of finding forgotten code. When looking at the code I say to myself "this is actually good" (I always think my old code sucks), followed by the question "how did I managed to find time to write all this?".
- Xeoncross 4y agoSeveral times I've been searching for something that led me to a stackoverflow question or github issue in which I had apparently written the accepted answer years before.
- dotancohen 4y agoA few years ago I was discussing some bit of Apache configuration, the other dev pulls up the Apache docs to prove I'm wrong. It turns out that I was wrong - because when I wrote those docs on the Apache wiki my phrasing was ambiguous. It was funny showing him the commit history of that page but I had to concede that by a certain interpretation of the phrasing he was not incorrect. I've since learned to be slightly more verbose.
- MrDresden 4y ago
- continuational 4y agoDocumentation is available at a keypress in an IDE such as IntelliJ IDEA, in languages that support developer productivity.
- jongjong 4y agoIMO this makes a good case for TypeScript and the code completion features associated with it. Though personally I have the memory of an elephant so I don't need it.
- aw9f70gae 4y agoTypescript autocomplete makes this article feel very irrelevant to me
- reactspa 4y agoI've never used TypeScript, and your comment has me intrigued. Please clarify something: As I understand it: 1. TypeScript is a language (super-set of JS). 2. Code completion is a feature of an IDE or editor. So how does this language enforce code completion? Or is this something in VSCode? If I were using Notepad++ to code, it won't have code completion, correct? Thanks.
- cvccvroomvroom 4y agoHaha. Same. I would fail a trivial pursuit-style magical but useless details interview or an A+ certification exam. I've been using Dash for about 10 years. Sadly, it lacks Rust crates support and really hasn't moved anywhere in 4 years.
- relex 4y agoThanks, I just ordered a Dash license, seems like an incredibly useful tool to me, good software should be supported!
- anktor 4y agoThis article is great for me since I discovered zeal which is something I knew I need it but did not have a name for it. Now I want to be honest, I have been trying for a bit over an hour to add ANY documentation that is not included by default. It's way too complicated. Has anyone found any success? Docs from pyspark, azure data factory, databricks, anything big data related would be a gift for me. But the steps are overtly complicated. Specifically, in the "Building documentation" part of the article, it's where you are supposed to use doc2dash and use to add new info. If someone or even the author has managed to add any not supported doc, and wants to share, it'd be much appreciated. Otherwise I am left with the question, how many hours are you supposed to spend in order to save time with each search? Because this programs seem unbalanced for people without the know-how to even start.
- pythonic_hell 4y agoDash looks like a great project but the community doc contributions are a security concern. Docs are uploaded to git as Tars, nothing is stopping someone from adding malicious code to these tar uploads which developers will download unknowingly when they add a community doc. See: https://github.com/Kapeli/Dash-User-Contributions https://github.com/Kapeli/Dash-User-Contributions
- sirsuki 4y agoIf only there was a universally available program and format for programming API’s we could reach for as a single command. We could call this man (short for manual). What happened? In C ecosystem this is a no brainer. Why can’t my frameworks offer a simple man page I can download into a folder and it works offline. Why does modern documentation require such fancy things like a web browser?
- Timpy 4y agoI have been using post-it notes and a pen on my desk lately and it feels like virtual ram for my brain. Instead of holding X variables in my head I can hold X+5 or whatever fits on the post-it note. The ephemeral nature and small footprint makes it easy to scratch out brain-exstension-only notes without being tempted to start making a reference document like I would in a notebook. The note is extremely valuable to me for its lifetime, and a day later I'll glance at it, say "I have no idea what this means," and toss it.
- miki_tyler 4y agoCode comments are a love letter to your future self.
- lampshades 4y agoMy short term memory is terrible because I smoke a lot of weed. I write a lot of things down to compensate.
- bluewalt 4y agoDespite the excellent initial intention, the article itself shows the reasons of the low adoption: if you actually need to kind of hack every new piece of documentation, this is overwhelming. I can have more than 30 external packages for each project. It would be too painful to handle all of them, and particularly frustrating for the ones I can't, and still need to browse from my browsers. This kind of projects could have a better adoption rate with standards for documentations.
- mbrodersen 4y agoI actually think that a terrible short-term memory makes developers write better code. Because it forces them to write easy to read, well-commented code so that they can figure out how to improve it later. I regulary have to modify code I wrote years ago and I more often that not have completely 100% forgotten ever writing it. So I have to read and learn my own code from scratch. Which taught me how to write code that is easy to read and learn for myself and others.