top | item 38239358

Archive your old projects

253 points| abahlo | 2 years ago |arne.me

62 comments

order

hypertexthero|2 years ago

Create a folder on your computer or get a sturdy box made of good cardboard with a lid. Name the folder “Process”. Write the word “Process” on the box.

While working, occasionally take photos or screenshots of what you are doing showing your workspace, the computer desktop, the desk with pencils and papers and cables everywhere, the wall or piece of string with notes. Show the messy process of creating something.

Type notes on text files and save them with a name like yyyy-mm-dd-note-title.txt. Write notes on bits of paper and notebooks and journals with pencils and pens that you keep all around the places you spend most of your time in, including within arms-reach of where you sleep.

Practice writing down notes on a piece of paper in the dark, so you can do so when waking up in the night, before daybreak, to jot down thoughts and ideas from dreams.

Record messages and melodies using your pocket computer and remember to save these in your Process folder, too. You are looking for your voice.

Put these digital and physical notes in the Process folder and in the Process box.

Thank yourself later, in years to come.

You are what you observed. Experiences, memories, stories to be told. Put your marker on the map in time, that others may find and learn from.

logifail|2 years ago

> Practice writing down notes on a piece of paper in the dark > Thank yourself later, in years to come

I only found out about this many decades after it happened, but on the occasion of my grandfather's 60th birthday, way back in 1980-ish, my mother presented with him a large bound empty notebook labelled with his name, and explained that the purpose of the gift was that he was to start making notes about his life.

It sounds incredible, but he started writing.

All kinds of (what must have seemed) completely inconsequential stuff, what he remembered about the home he grew up in, the schools he went to, the friends he'd had, the whole nine yards.

He died not that many years later.

Note to everyone who's read this far: grab the chance to do this - either as the one writing, or the one who gifts the notebook! - while you have the chance.

"Tempus fugit" and all that.

XorNot|2 years ago

I've been trying to write a response to this in a couple of tries, and the best I've got is: but also don't feel beholden to this.

The past isn't always a fun place to go visit, even if it's not traumatic. Who you were and who you are are different people, and getting dragged back to that old self can feel suffocating rather then fun.

Strictly technical records? Great. Everything? Even if you want to keep it, you may find you don't like revisiting it. I have zip files which exist because I don't quite want to destroy old records entirely, but I certainly don't want to actually scroll into photos from 10 years ago.

crucialfelix|2 years ago

We should all realize that AI systems will be able to read and learn from journals and logs.

It could help me to get guidance on current projects (learn from past mistakes and ineffective work patterns).

It could help others when there are many archives like this, to learn from others success and failures.

We all become training data for the future

dwaltrip|2 years ago

What have you found to be most valuable / meaningful years later?

imhoguy|2 years ago

Just a hint, which I think works well for some more complicated programming project setups: if the project is close to be shelved then preserve it in a virtual machine. Make some trivial auth, or auto login, put some notes on login/desktop screen, setup some IDE inside, check if it builds with no Internet.

Myself I use lightweight Xubuntu destkop for my VMs. I also dump hard disks of old Windows machines I am done with and make sure they run fine as VMs.

LVB|2 years ago

My main, albeit simple, local organizational pattern is: 1. everything under ~/dev 2. all projects are their own folder under a year folder. And if I ever restart work on something older, I move it to the current year.

I have hundreds of project folders and it’s helpful day-to-day to just be able to look in ~/dev/2023 for current stuff. But it is also relatively easy to find older things since I have a sense of roughly how far back they are. Making a new year folder right around Jan 1 and rolling forward active work is always a treat.

andai|2 years ago

>it is also relatively easy to find older things since I have a sense of roughly how far back they are

I have a ~/dev/file_list.txt, generated by

    find . > file_list.txt
(I think I might have added a flag to exclude node_modules...)

I drag the output file into Sublime Text, so I can search the entire directory instantly. (It also works for entire hard drives!)

doctorhandshake|2 years ago

My corollary axiom: “always be documentin’”, or, “document or it didn’t happen”.

I’d say easily 3/4 of the best stuff I’ve ever done was never bounced from the DAW/NLE, turned into a non-realtime/static artifact from code, or otherwise made archival, and far fewer projects / prototypes / physical experiments got the respect of any capture of any kind.

On a certain level I like the wabi-sabi nature of that. On another I wonder how many opportunities to converse or collaborate about mutual interests or future opportunities went by the wayside because I ‘labored in obscurity’ for so much of my life.

I’ve been doing some coaching for folks coming up in my industry recently and this has been an idea I’ve tried to convey early and often - “always be documentin’”.

bxparks|2 years ago

I read this like 3-4 times and I cannot parse or understand this comment. What does "DAW/NLE" mean? (DDG search says Digital Audio Workstation, and a whole bunch of links to something NLE Choppa). What does "non-realtime/static artifact from code" mean? What does "got the respect of any capture" mean? What does "wabi-sabi" mean? How does all this relate to "always documenting"?

atum47|2 years ago

I once created a simple counter [1]. I used it to remind me of eating every two hours. I thought to myself "it's a good counter, I'll show it to people" then posted it on HN. People were like "that is just a counter, why are you showing us that?" So i kind of stop sharing everything, haha.

But my GitHub used to be a replica of my projects folder, i would upload everything. I don't do that as much now a days.

1 - https://github.com/victorqribeiro/simpleCounter

matheusmoreira|2 years ago

I know how you feel. I tend to think like everything I do is insignificant and not worth sharing. As a hobbyist programmer I only work on things in my free time. I used to not publish stuff on GitHub because I felt my projects were incomplete, too small, too unpolished, too unmaintained. I've never submitted my projects here and only mention them in comments when they're relevant and posting them is easier than explaining. I started making a deliberate effort to change that in the past few years. I've repeatedly discovered that people notice what you do when you put yourself out there.

Years ago I bought a Clevo-based laptop from a brazilian manufacturer, reverse engineered the keyboard LEDs and wrote a Linux user space driver for it. I just published it on GitHub and forgot about it, assuming no one would ever care. One day I opened my email and discovered I somehow had users and someone even built a GUI around my little program. I was actually a little embarrassed that someone had posted an issue asking me how to use the thing and I didn't even see it.

I mentioned another Linux project here in comments, someone submitted it and I got to engage with the community about it. Recently someone submitted another project of mine, a programming language, without me talking about it. Seriously made my day when I opened HN and saw my project on the front page. Couldn't even believe it at first.

It takes a certain boldness to put oneself out there. I'm always ready for negativity and criticism. Still, the results can be very nice.

zlg_codes|2 years ago

I relate to people not giving a shit about one's creations. It has caused me to reconsider the self-hosting and blogging that I do.

I decided to give my website one year of an honest chance. I'll install basic analytics so I can see what, if anything people are interested in, and if I'm not satisfied or have a hint as to what about me or my stuff that people like, I'm out.

There's a point where sharing is painful due to the way prior things shared have been interpreted. There's no therapy or fix for that. People either care about you and your stuff, or they don't.

I've learned people just don't give a shit, even those allegedly close to me.

cloths|2 years ago

> So i kind of stop sharing everything, haha. I'd like to encourage you as well as myself, don't let reality beat you :)

ohdannyboy|2 years ago

I really regret not archiving my projects as a kid. I didn't care to save much of anything back then so they got lost to various HDD crashes and migrations to other systems.

I started programming at 11 and don't have anything I made before I was 19. Mostly video games in C++ and small PHP projects I did for money in high school. It's fun looking back at what I have so I really wish I had the stuff from way back in the day.

My oldest program of any significance, a console based poker game, was lost with Planet Source Code and isn't in any of the publicly available archives. I started looking for it maybe 6 months after the site went down.

thibaut_barrere|2 years ago

I did the same as you, and did not manage to keep source code, but I kept binaries at least (https://github.com/thbar/demomaking) of some demos and games I made.

It took a while to find them back on the internet thanks to various archiving folks!

esafak|2 years ago

It is ok. Sometimes the memory is better than the reality. How good do you think your code really was?

andershaig|2 years ago

I've started tracking an index of projects and their status in Notion. Then I create an extra page based on a template to put things on hold but make them resumable in the future.

In my index, I track: name, status (active, paused, inactive), description, goal and a link to the archive doc if it exist.

My archive doc looks like this (I generally delete any sections that aren't relevant to keep these easy to create):

  # <TITLE>
  ### *Handoff to Future Me: <project name>*
  ### *Snapshot Date*: <date>
  ---
  ### *Project Summary*
  - *Objective*: Briefly state what you're trying to achieve.
  - *Motivation*: What drove you to start this project?
  - *Current State*: Is it in the ideation phase, research phase, or have you already built something?
  ---
  ### *Essential Context*
  - *Related Projects or Dependencies*: Are there any other projects or tasks that are connected to this one?
  - *Technical Specs*: For example, in your lamp project, what type of metal, what voltage for the lamp, etc.
  - *Non-Standard Tools & Environment*: Any unique or specific tools you're using. For example, a specific code IDE or a special type of screwdriver.
  ---
  ### *Progress and Milestones*
  - *Last Completed Milestone*: What was the last significant thing you accomplished?
  - *Next Steps*: Like you said, for your lamp: research, clean metal, buff, etc.
  - *Stumbling Blocks*: Any challenges you foresee or have encountered?
  - *Any Experiments/Tests Conducted*: Brief on what you've tried and the outcomes.
  ---
  ### *Resources*
  - *Important Files & Locations*: Where are the project assets or codebase stored?
  - *Reference Material*: Links to guides, tutorials, or papers that are crucial.
  - *Key Contacts*: Who can you consult about this? Even if it's an online community.
  ---
  ### *Handoff Summary*
  - *Why Stopping*: Why are you pausing this project?
  ---
  ### *Notes to Future Me*
  - Personal notes, reminders, or advice to your future self about the project.

dewey|2 years ago

A closed source app like that seems like the worst choice for an "archive". Better to use a format that you can easily backup and that will still be readable in many years like a simple text file.

NetOpWibby|2 years ago

Just wanna say, thank you to the people in this thread sharing your archive strategies. Gave me a fuzzy feeling reading them all, idk why.

Have a great day.

andai|2 years ago

Re: Saving to Web Archive: just a minute ago I found out that one of my old projects isn't loading on Wayback Machine because they forgot to crawl the JS file. (Odd, not sure how they decide which dependencies to crawl...)

I was just beaming about the virtues of shipping web apps as a single self-contained HTML file (all CSS and JS in the file, rather than linked as external dependencies) for unrelated reasons, when I found that my other web app on the Web Archive works fine because I had followed this principle!

(So it also works in Wayback's *id_ mode, i.e. shipping the original HTML unaltered, because the functionality is independent from where the HTML is served.)

esafak|2 years ago

Or don't. It is so liberating not to have to periodically migrate data from one medium and file format to another, and worry about corruption. What are you getting out of it? What are you going to do with your preserved data once you die; burden the next generation with it along with the rest of your junk? Cull data every with every migration.

raybb|2 years ago

If not putting them online publicly how do you store / organize them?

I just recently bought a NAS for 20 euros and have been thinking about setting it up but am skeptical of relying on it for anything too important. But then again don't feel I can really trust anything too important to be in google drive either.

I also even have a hetzner nextcloud instance that I use for most low/medium importance stuff but I've found it a bit unreliable with the connection failing, mountainduck causing finder to crash, and the website getting quite sluggish when I upload a bunch of photos.

calamari4065|2 years ago

As everyone else said, redundancy equals reliability. You can automatically sync to AWS or backblaze for offsite backups. Locally you'll want a second and/or third backup. My proxmox server syncs to a USB hard drive locally, then I manually take that to the office now and then to sync to a different drive I store in my desk. Critical stuff is also stored in a third drive I keep in a firebox at home.

You can automate as much or as little as you want, but you have to keep multiple copies around. You can't trust any single source. Individual drives fail, tapes go bad, cloud storage can disappear or become corrupt.

The 3-2-1 rule is a good place to start. Three copies on two different media, and at least one copy off-site

bombcar|2 years ago

The key is multiple copies everywhere. Storage is cheap these days, so you can keep more than one copy - and digital hoarding doesn’t take up much space at all.

bluehatbrit|2 years ago

I don't store much stuff, so I mostly backup to AWS S3 and Backblaze (duplicated). I use Arq on windows and mac machines, and restic on linux. Job done! I'm looking at getting a NAS soon myself and then I'll backup or save to that as needed.

If you're not storing much then it's pretty cheap. For me it's mostly just photos and important documents, it comes to no more than a few 100GB total and costs me maybe 5 USD per month if that.

wongarsu|2 years ago

Kind of jealous of your 20 Euro NAS. But generally the key to longevity is having data in many independent locations. Since you're already using Hetzner, backing up your NAS to a Hetzner StorageBox is easy and cheap. The StorageBoxes are occasionally down for maintenance and don't have top performance, but for backup they are fine. Then you can just use the NAS as primary storage.

jamesfinlayson|2 years ago

Not the best system but I back everything up to two separate hard-drives (code goes in GitHub as well). I've been trying to get everything off Google Drive after the stories of a file with just the character 1 set off piracy filters earlier this year (or maybe late last year).

RajT88|2 years ago

Where did you buy a NAS for 20 Euros?

My old DNS-320 was ~100 euro new. And it kind of sucked.

vinc|2 years ago

I start my projects in `~/tmp/<project>` and when I feel like I'm getting somewhere with them they graduate to `~/src/<project>` and get published on GitHub (and a few mirrors for the most important ones). Anything on `~/src` need to be backed up but things in `~/tmp` can be lost without missing them.

When I start working on a new feature for a project I create a PR on GitHub and document my research and then the implementation with screenshots.

I also have a text file on my computer where I write a few lines everyday about what I'm doing. From time to time I send it to myself by email.

It's relatively simple and low effort but has proven to be very helpful many times.

Izkata|2 years ago

I copy my entire home directory across to every new computer, so I have a lot of random crap laying around in random places that I occasionally rediscover by chance. The oldest stuff I have is from ~15 years ago, when my hard drive died in the middle of a semester in college and I hadn't yet started making backups.

lloydatkinson|2 years ago

A few months ago I went through my repos on GitHub and marked everything I built with Vue as “archived” which is nice as it prevents any new issues being opened and very clearly indicates the project is no longer maintained.

I think it would have been a bad idea to simply outright delete them, though I did delete a few.

JCharante|2 years ago

May I ask what you switched to? I used Vue everyday for 3-4 years and then went all in on React when I joined a former employer. Looking at my Vue projects gives me a sense of nostalgia.

samsquire|2 years ago

If you've got some nodejs, Javascript, Ruby or Python projects and you want to keep them around for posterity then I recommend thinking how you can package them up so they can be safely archived. You could use docker or a virtual machine image.

In my editor project ( screencast https://github.com/samsquire/live-interface/blob/master/scre... )

and in its various components written in Nodejs, Ruby (sourceclassifier) and Python (dot renderer) and they're all in disrepair because I failed to pin dependencies.

Also recommend taking lots of screenshots.

donatj|2 years ago

> compiled .exe files

> Not sure what to do with these besides deleting

I was recently digging through some old backups for fun, and have so many little exe's I built in highschool and college just laying around.

I moved to Mac shortly after college and made the questionable decision to back up my old hard drives as Mac .dmg files before getting rid of the computers, so getting the exe's into a running version of Windows to even test is a pain.

A lot of the older ones are pretty neat little games and graphics demos made for DOS. Be neat to get a little VM up on my site running some of these but I suspect it might be a pretty large undertaking.

aninteger|2 years ago

> Be neat to get a little VM up on my site running some of these but I suspect it might be a pretty large undertaking.

It might not be too bad. I feel like there are a lot of little web assembly projects running on various sites that you could easily use. For a retro project I am working on I needed the MASM 5.00 reference manual and the site had PCjs running on it. Archive.org has there own web assembly emulator as well.

ta988|2 years ago

Not that hard with dosbox look at what Archive.org has done.

alexpotato|2 years ago

Reminds of the quote from Adam Savage from Mythbuster:

"The difference between science and screwing around is that in science you write things down."

axegon_|2 years ago

Funny enough, I was scrolling through an old hard drive of mine about a week ago and on it I found a cli I made in c++ at some point during the first half of the 2000s to solve quadratic equations. I had completely forgotten I ever made it but I bet it cut the time I spent on my math homework drastically. I remember how boring and tedious I used to find them...

aborsy|2 years ago

What’s the best way to encrypt data for archival, so that it can be decrypted decades later?

The encryption software can be discontinued, or change over time and be backwards incompatible.

pplonski86|2 years ago

Im doing demo with my projects and record them as videos. They are on youtube, so if I want to show it to someone I just send link to youtube.

Rygian|2 years ago

Keep a local copy of those. The youtube copies may disappear without prior warning.