Twice in the last decade I've been completely stuck on something, googled extensively, finally found the answer ... which I wrote, on Usenet, 25 years ago.
I can't even tell you how often this happens to me. People come to me because I wrote something and I then tell them: "Let me go read the manual" (because I can't remember what I did a month later, so I'm always consulting my own docs).
I always tell people: "You think I wrote this manual for you, but I'm not that altruistic. I wrote it for future me."
To be fair, not exactly the same thing. I typically remember I wrote it, just not what it does or how it works. :-)
The most depressing thing is being presented with an issue and finding my name attached to a closed ticket from years before with no explanation of how I fixed it.
Guess what, current me, you're going to learn this again from scratch because past me was in a hurry and couldn't be bothered to type out what he did.
BSG - this has all happened before, and it will all happen again.
I go through the same thing but with a few "popular" GitHub issues. Every time I encounter those bugs I Google it and the first result in my comment on the issue that explains the workaround I used.
My favorite pattern is to go look for an answer in the StackExchange network, find myself nodding in agreement with one of the answers, then read the author... me, 10 years ago!
When I began studying physics I felt like a clueless novice. All those equations looked like chicken-scratch on paper. And, "What's the difference between kinetic and potential energy?" And there were so many concepts to understand - forces, masses, fields, charges, and particles. And differential equations seemed incomprehensible. Now, after a few decades I've mastered most all of that. Yet, when I try to grasp the real basics, like "What is space-time?", "How does superposition lead to a single macroscopic universe?", "What is the Higgs field?", "How did this universe 'start'?", "What exactly is mass?", then I realize I'm really back at novice again. I know almost nothing.
Reading the comments here I'm under the impression that people think OP wrote the manual for `su`, but the interesting fact here is he wrote the GNU coreutils implementation of `su` itself.
Debian (stable, at least) doesn't use his version anymore. The HISTORY section of the current manual says
> This su command was derived from coreutils' su, which was based on an implementation by David MacKenzie. The util-linux version has been refactored by Karel Zak.
I find my personal memory is very ephemeral, without repetition, things get quickly forgotten. In a long enough timeline, about 1-3 year, I start to fail recognizing my own code. Since I have trained most Jr Devs I work with they all have similar coding patterns as me, which makes it even harder.
Granted, I have specific code tells, which helps, but like the article mentions I have forgotten the why or the bug that I fixed that required specific changes.
That feeling when you go on a rant about how something was done in a super confusing way, so you do a ‘git blame’ or equivalent - and it’s all your fault. Oops.
I write this shit down so I don’t have to remember it, thanks.
Back in the age of modems, when PPP was still the new hotness, I was proud of myself for memorizing the IP addresses for a few of the services I used regularly. Two or three times I got to punk my friends when the DNS servers got messed up, and they’re sitting with me in the computer lab wondering what else we could do to pass the time when they looked over and noticed that I’m happily typing away in the very thing they couldn’t get into because The Internet Is Down. No man, it’s just DNS.
Older, sadder but wiser me knows that I still could have done that joke if I had written the numbers on a scrap of paper. I could have had twenty instead of five.
After a number of rounds of the game, “who wrote this garbage? I wrote this garbage” I began to recognize my own particular code writing style.
I still get nerdsniped though if certain people start copying my idioms and introduce bugs, because this looks like something I would write but didn’t.
I get a little offended by people who think stackoverflow is a character flaw. I go there because it will tell me things like if you get the arguments to ‘dd’ wrong you’ll zero out the drive you were trying to back up. That the function breaks if you pass in null for the second parameter. Or that it simply doesn’t work properly.
I think what a lot of people don’t get about the Unix command line is that learning to use the tool is part of the experience. Sure I forget the precise flags to get various tools doing what I need, but browsing the man page and rediscovering the breadth of the tool is half the beauty.
This is why imo powershell (when done right) is more powerful than bash (no matter how correctly it’s done). Powershell cmdlet names are descriptive and generally make sense as do the parameter names, additionally the guidelines for how to make powershell commands forces a certain style that once you grok it makes sense for most powershell commands.
If bash has something like that I’m still missing it.
Obviously the brevity of bash can be its own power.
Reminds me of a peeve I had with the Apple docs when they described Bash like riding a bike (but in a different metaphor - it's good to get around somewhere easily but won't take you as far as an application language)
This is one reason answering questions on StackOverflow is so rewarding. You can save future you a ton of trouble by putting a (better) answer there and then stumbling onto it later. Ditto blog posts. Power tip: this also works for personal journals in searchable format.
15 years working as a software dev. There have been many times Sergio from the past has saved my ass. I find exactly what I needed to get something done and turns out the author was me. Coworkers also sometimes find my stuff so that's a nice feeling.
If you write code do yourself a favor and write for future you. It'll help.
I've had that happen with math teaching material a couple of times. One time I was dissatisfied with how I presented the definition of implication so I googled. The top link was to a discussion where the person answering linked to me. Like DJM, I found it a little unsettling.
Once I had a question about APACS, circa 2008, not a lot of information. found a tool using it, some lateral browsing, dns, simmilar usernames and finally i got to talk to the authour of the tool who gladly helped me :)
I was discussing how the only info I found was in a remote wikipedia article, yet incomplete. the guy told me he had written that article too.
Before I began my studies in Zen, I thought a tree was a tree and a stone, a stone.
When I started to study Zen, I could see that a tree was not a tree, and a stone was not a stone.
Now that I am a Zen master, I know that a tree is a tree and a stone is a stone.
-- Source: my buddy in college
I think you come full circle to learn that you can only keep so much in your head at one time and that you're always in some sense loading up what you need for the next month or three. At least this time you knew to look for the man su command, and remind yourself of the work you did, that you shared with all these other people.
Reminds me of how after learning how CPUs, memory, operating systems etc work I thought "wow, it really is all ones and zeroes". A simple phrase but it became more meaningful with deeper understanding.
dmd|3 years ago
Underphil|3 years ago
dogline|3 years ago
> we don't have to figure it out - we just need to remember what we did
https://news.ycombinator.com/item?id=32318185
dayofthedaleks|3 years ago
nu11ptr|3 years ago
I always tell people: "You think I wrote this manual for you, but I'm not that altruistic. I wrote it for future me."
To be fair, not exactly the same thing. I typically remember I wrote it, just not what it does or how it works. :-)
agumonkey|3 years ago
you get into a task, you cram stuff in as you go, you finish it, and then you dump everything go onto another task.
i find my most valuable skill is to slow the pace to ensure retention of information
focusedone|3 years ago
The most depressing thing is being presented with an issue and finding my name attached to a closed ticket from years before with no explanation of how I fixed it.
Guess what, current me, you're going to learn this again from scratch because past me was in a hurry and couldn't be bothered to type out what he did.
BSG - this has all happened before, and it will all happen again.
belval|3 years ago
That's probably how early Alzheimer feels.
the_af|3 years ago
BlakeCam|3 years ago
klez|3 years ago
Debian (stable, at least) doesn't use his version anymore. The HISTORY section of the current manual says
> This su command was derived from coreutils' su, which was based on an implementation by David MacKenzie. The util-linux version has been refactored by Karel Zak.
chrisbrandow|3 years ago
lazide|3 years ago
100011_100001|3 years ago
Granted, I have specific code tells, which helps, but like the article mentions I have forgotten the why or the bug that I fixed that required specific changes.
lazide|3 years ago
hinkley|3 years ago
Back in the age of modems, when PPP was still the new hotness, I was proud of myself for memorizing the IP addresses for a few of the services I used regularly. Two or three times I got to punk my friends when the DNS servers got messed up, and they’re sitting with me in the computer lab wondering what else we could do to pass the time when they looked over and noticed that I’m happily typing away in the very thing they couldn’t get into because The Internet Is Down. No man, it’s just DNS.
Older, sadder but wiser me knows that I still could have done that joke if I had written the numbers on a scrap of paper. I could have had twenty instead of five.
bluedino|3 years ago
dang|3 years ago
From Novice to Master, and Back Again - https://news.ycombinator.com/item?id=9098635 - Feb 2015 (1 comment)
From Novice to Master, and Back Again - https://news.ycombinator.com/item?id=8443981 - Oct 2014 (27 comments)
dannyobrien|3 years ago
unknown|3 years ago
[deleted]
bsedlm|3 years ago
the difference is that nothing I've ever worked on will ever be public or useful beyond a small private business which doesn't even exist anymore.
hinkley|3 years ago
I still get nerdsniped though if certain people start copying my idioms and introduce bugs, because this looks like something I would write but didn’t.
czep|3 years ago
hcks|3 years ago
No matter how many times you do it, you will have to re-learn it every single time.
hinkley|3 years ago
icambron|3 years ago
MobiusHorizons|3 years ago
vxNsr|3 years ago
If bash has something like that I’m still missing it.
Obviously the brevity of bash can be its own power.
shadow28|3 years ago
jpitz|3 years ago
jakey_bakey|3 years ago
yuan43|3 years ago
vxNsr|3 years ago
sergiotapia|3 years ago
If you write code do yourself a favor and write for future you. It'll help.
sneak|3 years ago
nerdponx|3 years ago
mayoff|3 years ago
2. Google it.
3. Find answer on stackoverflow.
4. Try to upvote.
5. "You can't vote for your own post."
This has happened to me multiple times.
jimhefferon|3 years ago
skybrian|3 years ago
klez|3 years ago
itsthecourier|3 years ago
I was discussing how the only info I found was in a remote wikipedia article, yet incomplete. the guy told me he had written that article too.
good times
sireat|3 years ago
I wish there was even better way to preserve the context of what you were doing at the time (env variables, current path at the time etc).
lolive|3 years ago
PS: be sure to always have a -—help option that describes the function, just as you would do when programming
unknown|3 years ago
[deleted]
startupdiscuss|3 years ago
Before I began my studies in Zen, I thought a tree was a tree and a stone, a stone.
When I started to study Zen, I could see that a tree was not a tree, and a stone was not a stone.
Now that I am a Zen master, I know that a tree is a tree and a stone is a stone.
-- Source: my buddy in college
I think you come full circle to learn that you can only keep so much in your head at one time and that you're always in some sense loading up what you need for the next month or three. At least this time you knew to look for the man su command, and remind yourself of the work you did, that you shared with all these other people.
mrtksn|3 years ago
[0] https://imgflip.com/i/6peco7
hinkley|3 years ago
alpaca128|3 years ago
yuy910616|3 years ago
junior dev: python is so cool!
senior dev: python is slow. No type checking. The syntax is garbage.
John Carmack: I write a lot of python and I use it exactly for what it is good for!
sneak|3 years ago
anddfyf|3 years ago
unknown|3 years ago
[deleted]
draw_down|3 years ago
[deleted]
unknown|3 years ago
[deleted]