[HN Gopher] Take more screenshots
       ___________________________________________________________________
        
       Take more screenshots
        
       Author : pcr910303
       Score  : 614 points
       Date   : 2022-07-24 16:55 UTC (1 days ago)
        
 (HTM) web link (alexwlchan.net)
 (TXT) w3m dump (alexwlchan.net)
        
       | sharikous wrote:
       | The author says correctly that it takes a lot of time but I find
       | the VM experience on modern PCs to be very satisfying as long as
       | you are emulating systems from >10 years ago.
       | 
       | On my M1 Mac I have well functioning QEMU VMs for MacOS 7, 9,
       | 10.4, 10.11, Windows XP Windows 11 and some Linuces. I don't use
       | proprietary SAAS formats so by all purposes I can read 99.9% of
       | all files I have ever created with little effort.
        
       | aosaigh wrote:
       | I use Hazel[0] to archive everything in my "downloads" folder
       | after a month. Files get separated into "~/Archive/Images/",
       | "~/Archive/Screenshots/" "~/Archive/Audio" ..." depending on
       | certain criteria (mostly file type). Each sub-folder is broken
       | down by year and month, for example "~/Archive/Images/2015/05/".
       | I also occasionally dump stuff that doesn't belong elsewhere into
       | the same folder system, for example WhatsApp media.
       | 
       | Basically, if it doesn't need to be specifically filed somewhere,
       | I just put it in my "downloads", knowing that it will be somewhat
       | searchable in the archive by either date, file type or in-
       | document search. This is great for all of the bits and pieces
       | that you don't necessarily have a home for or want to manage.
       | 
       | [0] https://www.noodlesoft.com/
        
         | wingerlang wrote:
         | I do something similar, except files are moved from Desktop >
         | Downloads > 'Needs Review' after 1/7/30 days. The vast majority
         | of files are trash, and I simply delete them every other week
         | from the 'Needs Review' folder manually.
        
         | gnatolf wrote:
         | Is there a similar program for Windows?
        
           | ics wrote:
           | File Juggler (https://www.filejuggler.com) seems to be the
           | recommended alternative.
        
       | behnamoh wrote:
       | macos makes it really easy to record the screen. cmd-shift-5
       | brings up the screenshot app. but converting them to gifs or
       | other video formats is not possible, unless you use third party
       | apps. in that case, you might as well just use a better
       | screenshot app that does that for you.
       | 
       | what I wish we could record, however, is the system interactions
       | (kinda like how you record games inside the game itself). it
       | doesn't record a video, but rather your mouse movements and
       | keyboard inputs, along with the location of apps and windows and
       | their state. it would take more space but it would be more useful
       | in case you wanna go back and run counterfactuals.
        
         | eastbound wrote:
         | My gripe with MacOS is that it creates huge files. A few MB for
         | a screenshot, when 250KB are often enough; and probably 10MB
         | per minute for a small area, for video, which makes it
         | immediately impossible to send to customers.
        
           | cyberge99 wrote:
           | You can configure the native screenshot app to create jpegs
           | (smaller), but I think you lose transparency.
        
             | behnamoh wrote:
             | he was talking about videos and he's right, recorded videos
             | are huuuge
        
         | yakshaving_jgt wrote:
         | Here you go.
         | 
         | https://imgur.com/a/BARUMWQ
         | 
         | EDIT: Ah, I realise now this achieves the same thing. But it
         | _does_ record video, so I 'm not sure what's missing other than
         | a visual representation of keyboard input.
        
       | mmphosis wrote:
       | I take screenshots of the Windows update with an iPhone.
       | 
       | A spinner shows with the words _Working on updates. 100%
       | complete. Don 't turn off your computer_
       | 
       |  _Windows 11 is ready--and it 's free! Get the latest version of
       | Windows with a new look, new features, and enhanced security.
       | [Download and install] [Stay on Windows 10 for now] Checking for
       | updates ..._
        
       | nevster wrote:
       | And if you've got any old floppy or hard disks - save those
       | suckers now!
       | 
       | I managed to get most of the data off my old Apple IIGS hard
       | drive but there were definitely block errors. So I can still boot
       | up the desktop I had in the 80's and 90's in an emulator. Brings
       | back so many memories.
       | http://www.oldcomputerstuff.com/resurrecting-my-apple-iigs-a...
        
       | paulryanrogers wrote:
       | For a few months I ran a simple Python keylogger to study my
       | keyboard usage, in response to pain. Much later I found disk was
       | filling up and traced it back to periodic screenshots, like every
       | few minutes. It was a creepy feeling but also kind of fun to step
       | back in time and see what I had been doing. Would've been more
       | fun if it were during the days when I did 3D modeling and pixel
       | art.
        
       | BenFranklin100 wrote:
       | For Windows folks, I've found OneNote's screenshot tool
       | convenient for quickly adding screenshots while taking notes.
        
       | jeena wrote:
       | I'd say blog about your stuff with the screenshots/screencasts, I
       | have one 12 years old of an iPhone game I made
       | https://jeena.net/monster-tiles
        
       | ffitch wrote:
       | Can't pass by without recommending my https://shottr.cc (app for
       | Mac.) I've set a dedicated folder for screenshots and save there
       | literally everything now -- purchase receipts, important chat
       | conversations, work in progress, reminders to myself, zoom
       | slides. Agree with the author, screenshots are under-appreciated.
        
         | keybits wrote:
         | Thanks for sharing - installed and liking it so far. Looks like
         | it can replace Monosnap for me.
        
       | jordanmorgan10 wrote:
       | My technological life is the antithesis of this post. Screenshots
       | are hosed as soon as I use them or send them.
        
       | pluijzer wrote:
       | I like to take a screenshot too when having just created
       | something. Myself I like to create a screenshot of my whole
       | desktop. Years later I get a nice feeling of nostalgia seeing
       | what theme, wm, apps etc. I used to work with. For the same
       | reason I usually enjoy old photos more for what is in the
       | background than the subject itself.
        
       | ebfe1 wrote:
       | I love taking screenshots and even wrote a script a while back to
       | take screenshot when there is mouse movement periodically when
       | handling incidents, i also have crontab job to compress and gpg
       | encrypt the folder with my key at the end of the day if it's not
       | empty. This, together with another script to record all terminal
       | activities during incident helped me a lot of time in the past
       | when writing up post incident write-up after many late nights!
       | 
       | Unfortunately i only see the old version here with flameshot
       | taking screenshot at full resolution.. my few later versions turn
       | screenshot to black and white and applied a few imagemagick
       | tweaks to make screenshot file incredibly smaller to store but
       | you get the idea :):
       | https://gist.github.com/santrancisco/9d14e0105316cfa15f98f0f...
        
       | imperialdrive wrote:
       | ShareX for you Windows folks. It's great. https://getsharex.com/
        
         | binarycrusader wrote:
         | If you're on Windows 10 or later, there's also Win + G which
         | will bring up the Xbox Game Bar. There you can capture
         | screenshots and video or set up custom key shortcuts to start
         | recording, etc.
        
           | kitsunesoba wrote:
           | Windows 10 and up also has Win-Shift-S, which brings up a
           | screenshot UI similar to that found on macOS with the
           | Command-Shift-5 shortcut.
        
         | karencarits wrote:
         | You can also configure sharex to run tesseract ocr locally on
         | the images, making them searchable while keeping everything
         | sound in terms of privacy. There is also a hack to compress
         | pngs so that the file size becomes next to nothing
        
         | yardshop wrote:
         | ShareX looks great, I will check it out.
         | 
         | In Windows 10, you can also press Win+PrintScreen to save a
         | numbered screen shot to your Pictures\Screenshots folder.
        
         | TuringNYC wrote:
         | This seems like just what I need. Does anyone have
         | recommendations for something similar for MacOS?
        
           | rejectfinite wrote:
           | https://flameshot.org/ posted above. Not sure if it does all
           | that sharex does.
        
         | rejectfinite wrote:
         | Was going to post this. It is amazing.
         | 
         | But I think it will upload to imgur, be sure to configure it
         | off. I have it sent to have in a local folder.
         | 
         | It also has great .gif making support and can also screen
         | record to a .mp4
        
       | jarenmf wrote:
       | One of the things I regret most is not keeping backups of the
       | programs I wrote as a child almost 25 years ago. They all just
       | gone, tens of thousands of lines of code. I remember spending
       | whole summers coding and it's all gone.
        
       | muro wrote:
       | Is there some software (macos) to regularly create screenshots
       | throughout the day? Preferably if it merges it into a time-lapse.
       | 
       | I could probably create something with cron, but maybe a neater
       | solution already exists.
        
         | dankwizard wrote:
         | Just remember to disable it before attempting extra curricular
         | activities
        
         | wanderingstan wrote:
         | Yes, I have ten years of screenshots (and webcam shots) at half
         | hour intervals from having _LifeSlice_ :
         | 
         | Source:https://github.com/wanderingstan/Lifeslice
         | 
         | Download page: http://wanderingstan.github.io/Lifeslice/
         | 
         | I developed it as an early Quantified Self tool primarily for
         | the Webcam shots, but also have been saved on more than one
         | occasion by having screenshots of work that would otherwise be
         | lost.
         | 
         | Edit: the first version was just a shell script, which if you
         | want a starting point to modify:
         | https://github.com/wanderingstan/Lifeslice/blob/master/1.0-S...
        
         | quartzic wrote:
         | I've been happily using Time Sink
         | (https://manytricks.com/timesink/) to do this for about a year
         | now. It does not automatically merge into a timelapse, but this
         | is accomplished easily with ffmpeg.
        
         | Nzen wrote:
         | I used to use chronolapse, a python program to take
         | screenshots, including picture in picture with a webcam. It can
         | use mencoder to create a video. I found I preferred using
         | ffmpeg for my use case.
        
         | dbtc wrote:
         | I use cron; I think it's pretty neat:
         | 
         |  _/ $INTERVAL _ * * * /usr/sbin/screencapture
         | $CRONSHOTSDIR/`date +\%s`.png
         | 
         | and then to make the timelapse:
         | 
         | ffmpeg -r $FPS -pattern_type glob -i "*.png" -vcodec libx264
         | lapse-`date +%s`.mp4
         | 
         | You have to give screen capture permissions to cron.
        
         | varenc wrote:
         | > Is there some software (macos) to regularly create
         | screenshots throughout the day?
         | 
         | On macOS here's a little shell command to take a screenshot
         | every 60 seconds and place it in the /tmp folder:
         | while true; do           screencapture
         | /tmp/screen_capture_$(date +\%s).jpg ;           echo "wrote
         | screenshot";           sleep 60;        done
         | 
         | You can also include the name of the front most application by
         | fetching it with AppleScript and then putting that in the
         | filename. (Or you could put different app screenshots in
         | different folders)                  while true; do
         | FRONT_APP=$(osascript -e 'tell application "System Events" to
         | name of first application process whose frontmost is true');
         | screencapture /tmp/screen_capture_${FRONT_APP}_$(date +\%s).jpg
         | ;           echo "wrote screenshot";           sleep 60;
         | done
         | 
         | Of course if you want this to run long term, use a cron job or
         | even better, a launchd job. With launchd you get better
         | coalescing and sleep recovery behavior. You can also add other
         | fun trigger events. Like take a screenshot every time your
         | `.zshrc` is modified [0]. Or a screenshot every time your
         | internet access changes (by triggering on /etc/resolv.conf)
         | 
         | [0] Look up `WatchPaths` on my favorite launchd guide here:
         | https://launchd.info/
        
         | yonrg wrote:
         | Something bash'ish                 while sleep 5       do
         | import -id root `date -Is`.png       done
         | 
         | Then make a time lapse with mplayer et.al.
        
           | scubbo wrote:
           | $ which import       import not found
           | 
           | How should I install that tool?
        
             | foodstances wrote:
             | It's part of ImageMagick.
        
               | scubbo wrote:
               | Got it, thanks!
        
           | hikarudo wrote:
           | import -window root `date -Is`.png
        
       | soruly wrote:
       | I take screenshots of my computer screen every minute since 2008.
       | I've a dedicated 2TB hdd storing these archives compressed with
       | 7z It takes just about 100-200MB/day so it's quite easy to store.
       | 
       | These archives saved me from data loss a few times (due to
       | powerloss, or bad mistakes). I just browse through the archive to
       | look for the screenshot where I was coding to recover them by
       | typing it again.
       | 
       | this is the screenshot tool I use
       | https://github.com/soruly/TimeSnap
        
         | chaostheory wrote:
         | That's impressive.
         | 
         | I would also like this, but what worries me is privacy. There's
         | already so little that it makes me wonder whether this is
         | degrade it even faster.
        
         | avnigo wrote:
         | I'm glad you found something that works for you, and I don't
         | mean to dissuade you even if I could, but to me that feels like
         | an antipattern if you only use it for typed text.
         | 
         | Consider that with a text editor like Vim, for example, you can
         | "time travel" [0] through your file's edits, or even have undo
         | branches/trees [1][2] available per file. That saves you the
         | trouble of having to transcribe text from screenshots, and also
         | barely uses any storage space.
         | 
         | Plain text is also highly more portable and more likely to be
         | recoverable in case of drive failure or file corruption.
         | 
         | Additionally, or alternatively, you could try any sort of
         | manual versioning system or background automatic backup
         | solution that keeps versions of files as you work on them.
         | 
         | [0]: https://vimtricks.com/p/vimtrick-time-travel-in-vim/
         | 
         | [1]: https://neovim.io/doc/user/undo.html#undo-tree
         | 
         | [2]: https://github.com/simnalamburt/vim-mundo
        
       | lawgimenez wrote:
       | Last month while I was backing up my old files from my 2005-ish
       | laptop, I also realized that screenshots are very nostalgic. Just
       | like this old Android project I worked a decade ago and if anyone
       | wants to feel nostalgic on Google's Nexus 7:
       | https://initviews.com/2022/07/16/legacy-projects-part.html
        
         | Aeolun wrote:
         | That looks pretty horrible (text on top of
         | placeholder/label?!), but seeing the OS again is indeed
         | nostalgic.
         | 
         | Plus just the feeling of WIP app I guess. That could have been
         | me.
        
           | lawgimenez wrote:
           | Yeah it was just an experimental UI design thing. I remember
           | back in the day I don't give a crap about UI/UX. As long as
           | the ListView functions smoothly.
        
       | edwinwee wrote:
       | https://luke.cat
        
       | radiojasper wrote:
       | I use ShareX[0] to screenshot all my work. I have it set up so
       | that CTRL-SHIFT-F6 makes a screenshot of a region and it's
       | automatically uploaded to some shared hosting server. It's a lot
       | of fun to see work back from years ago!
       | 
       | [0] https://getsharex.com/
        
       | pkdpic wrote:
       | I couldn't agree more an I appreciate someone giving permission
       | to not feel bad about accumulating screenshots.
       | 
       | I just went through three years worth of screenshots from
       | attending tech bootcamp and working my first dev job. It was a
       | great reminder of projects and people I care about who I'll
       | probably never get to work with again. Like random office
       | polaroids for the remote work era (as if I'm that old).
       | 
       | To my own surprise my only regret was that I should have taken
       | more screenshots... Also they're all pngs...
        
         | mywacaday wrote:
         | I am a big advocate of this, I spend a lot of time in online
         | meetings and presentations and use Onenote to take my notes. A
         | screenshot in context is extremely useful when revisiting later
         | as I am a visual thinker. The ability of Onenote to index text
         | in a screenshot is one of the most useful features in any
         | program and allows me to find items even if I only recall a
         | snippet of context.
        
       | erbdex wrote:
       | What is your software pipeline to manage screenshots? If we
       | could: - bucket and tag - turn them to tasks - follow ups
        
       | iluvblender wrote:
       | I absolutely agree with you pcr9103303. I have been following
       | this practice since 5 years and I have benefited immensely from
       | it (recall, retention and revision).
       | 
       | I have a dedicated screenshots root folder with sub folders that
       | gets synchronized with the cloud and I go through them regularly.
        
       | donio wrote:
       | Using tools, formats or workflows that you will lose access to in
       | the future is the problem here. I have work going back decades
       | and not much that I can think of that I couldn't resurrect in
       | some form with relatively little effort.
       | 
       | Having screenshots of thing that are otherwise lost would just
       | make me sad. It's like preserving a single frame from a movie and
       | losing the rest.
        
         | Aeolun wrote:
         | > It's like preserving a single frame from a movie and losing
         | the rest.
         | 
         | I don't think that's necessarily true, because you are unlikely
         | to ever rewatch the movie anyway (and then it won't be as good
         | as your recollection). The point is to be reminded of the fact
         | the movie existed at a time when you wouldn't ordinarily think
         | of it.
        
       | suby wrote:
       | I've gotten mixed reactions whenever I share this, but when I
       | program I like to record my screen with OBS.
       | 
       | * It's a mental hack to keep me accountable, especially now
       | working from home. If I'm in an office anyone can look over and
       | see whether or not I'm working. It started as an attempt to mimic
       | this feeling at home, even though I'll be the only one to ever
       | see the recordings.
       | 
       | * It allows me to go back and see how I worked in the past. I
       | have a few videos of myself working from 2015 which I think is
       | pretty neat just because of how different my workflow was back
       | then compared to now. I'm not using the same tools or even on the
       | same operating system.
       | 
       | * I'm working on video games which is what makes this very useful
       | for me. If something visually interesting happens, or if there's
       | graphical bug of some kind, I can go back and breakdown exactly
       | what happened. I've stepped through videos frame by frame in the
       | past to debug, it's been surprisingly helpful.
       | 
       | * It allows me to go back and see my progress. I can know what I
       | was working on a given day, see how far I've progressed, it's
       | just generally a good motivator. You can of course do this with
       | git, but if you're working on something visual it can be nice to
       | see it in motion rather than a textual diff.
        
         | laumars wrote:
         | That's an interesting idea. I might try this myself
        
         | scottlilly wrote:
         | I've been streaming some of my side projects on Twitch, with
         | OBS.
         | 
         | During the stream, I keep up a fairly constant spoken
         | description of what I'm doing, what I'm thinking, what problem
         | I'm stuck on, etc.
         | 
         | I've noticed I've also been speaking my thoughts out loud when
         | programming, but not streaming. It ends up being a continuous
         | "rubber duck" conversation, and feels (completely subjectively)
         | like it helps me develop easier/better.
        
         | akersten wrote:
         | It sounds intriguing, but where do you find the space to store
         | all the recordings? A bunch of external drives? Feels like
         | 8hr/day x 20 days/month of recording my multi-monitor setup
         | would fill up my drive pretty fast.
        
           | darzu wrote:
           | If you're working on open source, stream straight to YouTube
           | or Twitch. Can be private or not.
           | 
           | I do this sometimes. the accountability hack works even
           | better if someone could be watching.
           | 
           | Bonus points is that it feels way more natural to narrate aka
           | rubber duck problems when you are streaming.
        
           | capableweb wrote:
           | No need to record 4k 120fps videos if you're doing web
           | development, something like 1080p in 10fps might be enough
           | and it won't take ridiculous amount of space.
        
             | PeterisP wrote:
             | 1080p may easily mean that the code is unreadable if you
             | have a decent size screen.
        
             | fuckcensorship wrote:
             | Parent comment specifically mentions recording for game
             | development so 1080p at 10fps probably isn't going to cut
             | it.
        
               | capableweb wrote:
               | Update it to be 20~25 fps then, still won't take
               | ridiculous amount of space.
        
               | soruly wrote:
               | Unlike movies, the content on screen recordings usually
               | remains roughly the same for minutes before switching
               | scene. So it can achieve significantly higher compression
               | ratio even at high fps
        
               | capableweb wrote:
               | I wrote more about it here:
               | https://news.ycombinator.com/item?id=32223240
               | 
               | But the TLDR, ffmpeg can remove duplicate frames:
               | ffmpeg -i in.mkv -map 0:v -vf
               | mpdecimate,setpts=N/FRAME_RATE/TB out.mp4
        
           | [deleted]
        
           | NavinF wrote:
           | If you have an old machine you can use as a NAS and run
           | raidz2, disks are $7.50/TB or less: https://diskprices.com/
           | 
           | Screen captures also compress much better than live action
           | since most frames are duplicates of their predecessor. So a
           | cheap NAS can run for years before you start thinking of
           | deleting VODs.
        
           | haunter wrote:
           | x264/veryfast, 1080p 10fps at 2000kbps, is more than enough
           | for plain text recordings and it won't take that much space.
           | 
           | You can go even lower with other encoders (x265) + if you
           | don't record audio at all
        
             | sp332 wrote:
             | You're using 4:4:4 (disabled chroma subsampling) to keep
             | text readable?
        
             | Dylan16807 wrote:
             | You only need 40kbps for acceptable audio, so I wouldn't
             | worry about that at all in this ballpark of video bitrate.
        
               | raffraffraff wrote:
               | If you record mono speech, opus can produce great results
               | at 15kbps.
        
               | Dylan16807 wrote:
               | If you just want speech, yes. For cheap generic audio I
               | don't think I'd push it below 32 unless I _really_ needed
               | to shave bits.
        
             | mgdlbp wrote:
             | A while ago I tried to see what compression I could get out
             | of screen recording losslessly to a scratch disk and
             | encoding afterwards as slowly as I could wait. I didn't
             | write any numbers down, but the difference in efficiency
             | was significant. Some observations:
             | 
             | - Of the lossless encoders in OBS/libav, utvideo was the
             | best in both CPU usage and efficiency, followed by lossless
             | ultrafast x264.
             | 
             | - An SSD can handle even uncompressed 24bpp 1080p60, which
             | is 375 MB/s. Typical screen content compresses well below
             | the ~100 MB/s write speed of an HDD. Fullscreen video does
             | not, instead gradually filling the write cache until either
             | OOM or thrashing.
             | 
             | - For onscreen content, I prefer the bitrate tradeoff of
             | keeping PC color range and not chroma subsampling.
             | 
             | This technique isn't as effective for this use case of
             | recording several hours daily, since reencoding must be
             | fast enough on average to keep up. Best to already have a
             | home server (any spare desktop). Otherwise, use AOM codecs,
             | known for poor multithreading, to encode at full speed
             | without hogging CPU.
             | 
             | ps, temporal compression means that dropping framerate
             | makes surprisingly little difference with modern codecs.
             | But I really should be writing down the results of my ad
             | hoc tests...
        
               | metadat wrote:
               | This is a phenomenal way to wear out an SSD for no real
               | reason at all.
        
               | Dylan16807 wrote:
               | > An SSD can handle even uncompressed 24bpp 1080p60,
               | which is 375 MB/s.
               | 
               | Well, it can for an hour.
        
             | jenny91 wrote:
             | 2000 kbps = 0.25 MiB/s = 900 MiB/h?
             | 
             | That's only 1.14 TiB per year doing it 5 h/week * 5
             | days/week * 52 weeks.
        
         | ianbicking wrote:
         | I've found this too... at work I regularly make videos of what
         | I'm doing for other people. Then I realized how much stuff
         | comes up in the videos because I'm being attentive, and started
         | making videos I never share. Like it splits my attention to
         | both act and watch myself acting
        
         | lazyjeff wrote:
         | I've started doing this more. The videos of my work has always
         | outlasted the work itself. Even though technically I can dig up
         | old compilers or try and update my dependencies, I rarely do.
         | So whatever was captured in the video becomes the only artifact
         | of my older programming projects.
         | 
         | I used to think that video formats would no longer be supported
         | over time, but even the oldest weird video formats still play
         | in VLC and MPC, and probably would work fine if uploaded on
         | YouTube.
        
         | anyfactor wrote:
         | Sometimes, I do a full screencap with my face when I am coding.
         | Then at the end of all that, I will even do a reaction video to
         | my full video.
         | 
         | Why? I REALLY enjoy the dopamine rush when you are struggling
         | then find a solution. I see myself pulling my hair, staring
         | blankly at the screenshot then at a random moment of pure luck
         | I find a solution and it literally is euphoric.
         | 
         | I enjoy relieving those moments.
        
           | jimmySixDOF wrote:
           | Nice to hear this! I am a big fan of screen casts as a way to
           | do async updates inside remote teams. Tools like mmhmm an
           | dyac are really good at this and its gives everyone a high
           | bandwidth walkthrough of whatever you're working on however
           | you do it so code, drawings, docs, etc works across a wide
           | spectrum of activity. The rubber duck effects are a bonus!
        
           | bradlys wrote:
           | What're you guys working on that this is a regular
           | occurrence? I just never run into walls like this when coding
           | stuff up.
        
             | samsquire wrote:
             | Multithreading problems Algorithms problems where you have
             | two variations of the algorithm that work for different
             | combinations of inputs and you need it to work for both
             | cases, so you need to merge the algorithms together. This
             | is my most common programming experience. Realising how
             | many problems a problem has, such as constraint
             | satisfaction, layout engines and programming language
             | design. Myers agorithm and diff3 See my profile for links
             | to my GitHub profile to see what I'm working on.
        
             | mleonhard wrote:
             | I'm writing Swift code that calls Apple's UIKit. I'm
             | constantly wasting time trying to figure out how to use the
             | API properly, since it's buggy and poorly documented. Each
             | solution brings relief, not euphoria.
        
               | the_gipsy wrote:
               | Sounds like hell
        
               | myko wrote:
               | I find SwiftUI a lot more fun but run into similar
               | feelings using it, documentation is maybe worse :/
        
             | josephg wrote:
             | I'm working on a new collaborative editing engine for
             | arbitrary data, using CRDTs. I'm trying to keep it highly
             | performant. (Like, 300M edits / second performant).
             | 
             | I've been working on this problem for years and I've gone
             | through dozens of design revisions. Sometimes I catch bugs
             | in the design phase. Sometimes I only notice core problems
             | after I finish implementing parts then attach a fuzzer.
             | (Fuzzy boi is the best and the worst.)
             | 
             | Some design problems have taken me months to find a
             | solution. One of my solutions ended up with me rewriting of
             | thousands of lines of working code, written over several
             | months.
             | 
             | We're making great progress; but sync engines are hard.
        
             | roman-holovin wrote:
             | Debugging is huge part of this. For example, for web where
             | you can plop breakpoint or print statement anywhere and
             | have a good level of transparency into what is happening
             | really helps resolve issues quickly.
             | 
             | Game development where GPU is not really going spill the
             | beans of what is happening under the hood that easily - one
             | can stuck for a longer times easily.
        
               | chrismarlow9 wrote:
               | Yeah debugging or testing theories for production only
               | bugs (without adding risk) can be a big source for "aha!"
               | moments.
        
             | NavinF wrote:
             | Reducing latency. Or any sort of optimization for that
             | matter. It's usually a slow methodical process, but every
             | once in a while you look at the right trace and instantly
             | know what the problem is and how to fix it.
        
             | [deleted]
        
         | edpichler wrote:
         | Very nice tip, mainly the part about when something happens you
         | can rewind it.
         | 
         | What about hard disk space? How you handle it?
        
         | djmips wrote:
         | Yeah that's neat! The part about reviewing the video. Back in
         | the day we would use VHS to record the game and capture rare
         | glitches to review. Nowadays our QA runs with OBS always on and
         | can attach clips to bugs. It would be cool if every dev had it
         | too.
        
         | meshaneian wrote:
         | How do you setup OBS to keep the recording sizes tolerable?
         | 
         | I've used this before on engineering grade machines, but it
         | doesn't do so well on "everything is in the cloud so you can
         | use a word processor quality" laptop, any advice?
        
           | capableweb wrote:
           | I have a 4k display but record to 1080p, bit blurry but I'm
           | not really using it to find small copy of text, but to see
           | general state of things. Recording in 20fps as well.
           | 
           | I have a small shellscript that takes all video files
           | recorded by OBS, and runs them through this ffmpeg command:
           | ffmpeg -i in.mkv -map 0:v -vf
           | mpdecimate,setpts=N/FRAME_RATE/TB out.mp4
           | 
           | Using mpdecimate removes duplicate frames, so if nothing is
           | happening on your screen (although smaller changes gets
           | ignored, like my clock showing the seconds), it removes those
           | duplicate frames.
           | 
           | So one ~1 minute video of you thinking for 40 seconds can get
           | reduced to 20 seconds. Not uncommon for some of my video
           | files to go from multi-GB to just ~100 MB when removing all
           | the pauses.
        
         | urthor wrote:
         | Hmm, that's actually a very clever hack.
         | 
         | I'll try it!
        
         | coldblues wrote:
         | I did the same for a while. It's a neat productivity hack.
         | There are a few services that market accountability by hooking
         | you up with strangers. Both of you must have your webcams
         | enabled, and you just work on whatever you need to do for a set
         | period of time without talking.
        
           | saimiam wrote:
           | I used one such service. It was such a drag. Hated it. Does
           | anyone use it repeatedly with different strangers?
           | 
           | I think I'd prefer live streaming to keep myself accountable
           | to one-on-one sessions with both cams on.
        
         | karaterobot wrote:
         | I discovered a while ago that all those errors and bugs that
         | only appear when you demo something to an audience also
         | magically appear when you record yourself demoing it to nobody.
         | Maybe narrating a feature to a pretend audience takes the
         | blinders off enough that you notice little mistakes you
         | wouldn't have otherwise.
        
           | simonw wrote:
           | This is a fantastic tip, thank you! I'm definitely going to
           | try this out.
        
           | jayknight wrote:
           | Very similar to the process of rubber duck debugging.
        
             | martinflack wrote:
             | I often wish I had a pet dog husky so I could walk him
             | through some tricky python and have him figure out my bug
             | with me.
        
             | AndyJames wrote:
             | Back in my office days we was doing this constantly. The
             | sentence "will you be my rubber duck" always put smile on
             | my face
        
         | heroku wrote:
         | why don't you just stream on twitch
        
           | seb1204 wrote:
           | Because of sharing internal information from the screen? This
           | would be. My first thought.
        
           | ChadNauseam wrote:
           | I would do that but my workplace doesn't allow it ;(
        
           | rr888 wrote:
           | BTW do you think twitch is best for this? I'm working with js
           | for the first time and tools seem really slow and poor, I'm
           | sure I'm doing something wrong, I figure looking at others
           | would be great.
        
       | Pakdef wrote:
       | I still have files I made from the 90s... but my guess is that
       | they won't be around forever.
        
       | amelius wrote:
       | I make lots of screenshots.
       | 
       | The problem is organizing them ...
       | 
       | Perhaps if I ran them through OCR, it would be easier to grep
       | through them.
        
         | liotier wrote:
         | Not just OCR, but object recognition - just has to be smart
         | enough to read the window's title bar to tag the shot by
         | applications present in it and by document name when some are
         | visible.
        
         | anodyne33 wrote:
         | Google Photos does it for you. Very handy a few years ago, I
         | took a picture of the private wifi password backstage at a bar
         | I used to work at, lost the saved login when I swapped phones.
         | Searched my photos for "Thunderbird" and boom... a picture of
         | text saying "Thunderbird private WIFI password".
        
           | wonderbore wrote:
           | I'm a bit disappointed that this doesn't work in Apple
           | Photos. The app does a fairly good job at recognizing photos
           | and doing OCR, but you can't _search_ the text.
        
       | marcinreal wrote:
       | I totally understand the desire to keep a record of the past, and
       | space is cheap so why not. I used to be a big "digital hoarder",
       | virtually never deleting anything that might be a bit
       | interesting. But a couple years back I deleted most, though not
       | all of the "archive" of past me. It was a great decision that I
       | don't regret. The important things you did will still surface
       | from time to time. It's also always cool to accidentally find a
       | photobucket or google docs account you forget you had and look
       | through it for 10 minutes. But I just don't find value in
       | intentionally preserving a digital record of myself, and instead
       | allow serendipity to poke my nostalgia centers on occasion. Sorry
       | for the violating the spirit of the thread with a contrarian
       | opinion. My point is just that I've done the digital hoarding
       | thing for years and it turned out to not have value, for me.
        
         | makeitdouble wrote:
         | The "Virtual Trash Can" approach can be a middle-ground. You
         | keep records, but regularly move them to a NAS or any other
         | storage that isn't something you'd accidentally wonder into.
         | 
         | In day to day life these past record could as well not exist,
         | but you still get to go look at them if you're willing to make
         | the effort to do so. Also being willing to lose these items if
         | something catastrophic would happen relief a lot of the
         | archiving burden.
        
         | Double_a_92 wrote:
         | I always try to separate my data by importance.
         | 
         | I.e. photos and important documents are only about 50GB so very
         | easy to keep. This would be the things that I wanted my family
         | to keep, If I died.
         | 
         | Then theres random projects and files that I keep in yearly
         | archives, just to look and remember what I was up to x years
         | ago. That's also not huge amounts of data (1-2 GB per year).
         | 
         | And then theres data which I didn't create. E.g. movies, game
         | installer,... Where a loss wouldn't really be a big problem.
        
         | turdit wrote:
         | i i i me me me i i i
        
         | gigglesupstairs wrote:
         | Hoarding is way different from taking snapshots of your work.
        
           | marcinreal wrote:
           | Yeah. I meant that I don't see the value in keeping those
           | snapshots for years and years. Space is cheap, but for me
           | there was something unhealthy about the practice, which is
           | why I used the word hoarding. Deleting the hoard was actually
           | quite freeing for me, and it was a little surprising that I
           | never actually missed e.g. the hundreds of screenshots of in-
           | progress games I was developing. So I just wanted to share
           | that perspective, not really expecting people to agree
           | (almost didn't post my comment at all.)
        
         | 0xCMP wrote:
         | I am myself dealing with the effects of my digital hoarding and
         | trying to delete as much as I can, but I do think that is
         | different from this.
         | 
         | 1. Photo apps like iCloud Photos, Google Photos, and Photo
         | Prism are getting much better at auto organizing/cataloging
         | what photos are and surfacing them together in much more
         | interesting ways. More photos is now a plus instead of a minus.
         | 2. You can always delete, but if you never record you can't go
         | back and record (often).
         | 
         | So I take a Marie Kondo "Keep what Sparks Joy" approach and
         | delete anything I find that I do not care for when I find it. I
         | also sometimes pick an area of stuff I have and try to
         | aggressively delete things I don't care for.
        
         | frostwarrior wrote:
         | I used to save everything I did in the past. Over time, I've
         | found that I almost never needed to access those files and most
         | of that wasn't even useful for the kick of nostalgia. Old
         | games? I already replayed them to exhaustion.
         | 
         | I learned that the nostalgia is not about the files by itself
         | but my life context at that time. I don't miss old code or Old
         | OS's. I miss that sense of wonder when I was less experienced
         | and more naive, and everything was new.
        
           | PcChip wrote:
           | >I learned that the nostalgia is not about the files by
           | itself but my life context at that time.
           | 
           | I'm learning the same - whenever I feel nostalgic about
           | playing an old SNES or PSX game, I've realized that it was
           | just about that time in my life, and usually just watching a
           | clip on youtube or listening to the soundtrack is enough to
           | scratch the itch, rather than actually playing the game again
        
         | rexxars wrote:
         | While your memory might be great now, it won't be so forever.
         | Serendipity might not happen as often as you would like, and
         | "important things" may not be all you want to remember.
         | 
         | I'm sure your parents or someone from their generation have
         | actual, physical photo albums from their past - and that the
         | experience of browsing through these photos brings back things
         | that they haven't necessarily _forgotten_ about, but that they
         | wouldn't have brought into active memory unless they were
         | browsing through them.
         | 
         | Over the years I have experienced and built many things that I
         | do not deem "important" to me, yet when I see them mentioned
         | (even in writings by myself), it takes me back to that point in
         | time - all the feelings, learning and discoveries that it
         | brought to life.
         | 
         | An example is scrolling through a list of my repositories on
         | GitHub. Some of the projects on there I have "forgotten" about,
         | but with the mention of it I am instantly brought back and
         | remember a whole lot more details - motivations, feelings, the
         | ecosystem...
        
           | marcinreal wrote:
           | This is just the way I see it: unless you make a deliberate
           | effort to scrub yourself off the Internets, most people leave
           | a bewilderingly enormous digital footprint. I think that's
           | what makes the analogy with the physical generation not
           | really work: that generation had a scarcity of records, while
           | we have an absolute over-abundance. For most of history, most
           | of our conversations, creations, the way we looked, etc. were
           | not recorded, so I just don't see this over-abundance of
           | preserved records -- which is quite a novel thing -- as being
           | important to the human experience. But definitely appreciate
           | your perspective, thanks!
        
         | jbverschoor wrote:
         | It's not always about hoarding.
         | 
         | Legally it's very helpful if you create a paper trail of your
         | work
        
           | marcinreal wrote:
           | Yeah, I think it can be great if you're intentional about
           | what you're preserving and why. To elaborate a bit, I went
           | from having tens of thousands of emails a few years ago to
           | "only" having about 5k now. I did that by adopting a strategy
           | of aggressively deleting trivial emails. I apply "aggressive
           | decluttering" throughout my digital life, with screenshots
           | also (trying to stay on topic a bit), old conversations,
           | failed creative projects, etc, and have found the benefits of
           | less clutter to be profound.
           | 
           | I never really regret deleting something, but that could be
           | because I try to keep my life simple, within reason, and
           | focus on the future.
           | 
           | I also recognize, as you point out, that there are limits to
           | this -- sometimes there is a genuine need to keep a record.
           | As a programmer, my work is all tracked in git. For a
           | creative professional, I assume that a basic requirement of
           | that sort of job is an excellent backup system.
        
         | nickstinemates wrote:
         | I used to feel the same way. Then the internet forgot the stuff
         | that I thought would be there forever. Now only a few remanants
         | remain. I still look at my DeviantArt and Livejournal accounts
         | when feeling nostalgic. Those will also one day be relics of
         | the past. I should back them up somewhere.
        
         | coldblues wrote:
         | >It's also always cool to accidentally find a photobucket or
         | google docs account you forget you had and look through it for
         | 10 minutes.
         | 
         | I find that horrifying. I would probably scramble to delete
         | that as soon as possible. Don't know about anyone else here,
         | but having my junk float around the internet is mortifying. I
         | delete unused accounts as soon as the thought of it pops into
         | my mind.
        
           | iforgotpassword wrote:
           | Yeah like, dude deletes all his local files and is fine with
           | personal stuff floating through the internets and randomly
           | finding that stuff. I'd rather do it the other way round.
        
             | marcinreal wrote:
             | Different things are important to different people. I did
             | have a "digital paranoia" phase but it gave me more anxiety
             | than it was ever worth. :)
        
       | peckrob wrote:
       | A few years back I was going through some old floppy disks I
       | found in a box and, on one of them, I found a screenshot I took
       | of my desktop circa winter of 2000. In it was a window open with
       | a MUD I was logged into at the time. Another window had Winamp
       | open with a playlist of songs and another window had ICQ open.
       | The only reason I took it was because there was an unofficial
       | competition between our pub and another pub elsewhere on the MUD
       | about which was more popular, and we had finally surpassed them.
       | 
       | It's amazing how many emotions seeing that one image gave me. But
       | the biggest was just this overwhelming sense of nostalgia. As I
       | looked at that, I could remember what I was thinking, what I was
       | feeling, everything that was happening in my super confusing
       | teenage life at that time. Occasionally I will look at that image
       | now, even 22 years later, I can still feel all those feeling
       | again.
       | 
       | Of course, my ex's character is in the screenshot too. So, a bit
       | bittersweet as well. :/
        
         | Victerius wrote:
         | I still have computer files from 15 years ago, the time I was
         | in high school. They are of no use, but I keep them around.
         | Class projects, power point slides, word files.
         | 
         | I have deleted everything from uni though.
        
         | iforgotpassword wrote:
         | Exact same thing happened. Found a bunch of old screenshots
         | from 2000 to about 2006. So many programs you just stopped
         | using at some point without really realizing, but seeing the
         | screenshot immediately makes you feel like past you again, and
         | what it was like to use your computer back then.
         | 
         | Especially when you see parts of a conversation with someone
         | you didn't talk to in over a decade, or who passed away. You'd
         | think that's what a photo would do, so I was surprised how
         | strong of an emotional reaction screenshots can trigger. But
         | then if you were spending 90% of your time online as a
         | teen/early 20s it's not that surprising on a second thought.
        
           | peckrob wrote:
           | > But then if you were spending 90% of your time online as a
           | teen/early 20s it's not that surprising on a second thought.
           | 
           | You know, this is a very enlightening point. I never really
           | thought about it from this angle, but there is a lot of truth
           | to this.
           | 
           | I struggled a lot as a teen with anxiety, depression and
           | bullying. I had a few IRL friends, but the very vast majority
           | of my social interaction during that time came via MUDs and
           | chatting. Many of the people I played and chatted with were
           | fellow social outcasts, and we created our own parallel
           | virtual communities to support and lift each other up. It
           | didn't matter where we were, what we looked like, or how we
           | did or didn't fit in. Many days in the 90s it felt like going
           | to school was the thing I had to put up with, and logging in
           | and seeing my friends when I got home _was_ my real life.
           | 
           | Without them, there's a very real chance I might not be here
           | today. Even all these years later, the people I met virtually
           | during that time are still some of my best and closest
           | friends, and it's a real treat when my travels take me close
           | enough that we can meet for coffee or lunch. Many were at my
           | wedding even, and in one case that was the first time I had
           | ever met them IRL. And yet we knew each other deeply. It felt
           | like we all grew up together because, kinda, we did.
           | 
           | When you look at it like that, those of us who grew up in
           | that environment would look at a screenshot from that era the
           | same way others might look at random photos from high school.
           | Because this _was_ our world.
        
         | vjerancrnjak wrote:
         | Interesting madeleine cookie
        
           | [deleted]
        
           | mastazi wrote:
           | maybe some HN readers don't get the madeleine reference:
           | https://www.thelocal.fr/20190814/french-expression-of-the-
           | da...
        
             | Jalad wrote:
             | I'll expand on this since I found it interesting.
             | Essentially it's a reference to a French epic called "In
             | Search of Lost Time" by Marcel Proust. It was his life's
             | work and is around 4.2k pages or 1.3 million words! That's
             | much larger than "War and Peace", "Les Miserables", "Crime
             | and Punishment", "The Iliad", and "The Odyssey" combined;
             | which is super impressive.
        
               | mongol wrote:
               | It is also impressive how Monthy Python managed to
               | compress it to 30 seconds :-)
        
             | mongol wrote:
             | I have never had a Madeleine cookie, they are not common
             | around here. Are they worthwhile to bake yourself? Since
             | they are so famous because of this reference, I think I
             | should find one to taste.
        
               | kmstout wrote:
               | They use a lot of butter and they go well with coffee.
               | Yes. (Both Wikipedia [1] and the _Joy of Cooking_
               | consider them cakes rather than cookies.)
               | 
               | [1] https://en.wikipedia.org/wiki/Madeleine_(cake)
               | 
               | [2] Irma Rombauer, Marion Rombauer Becker, and Ethan
               | Becker. _Joy of Cooking (rev. ed.)_. Scribner. 1997. pp
               | 962-963.
        
               | vjerancrnjak wrote:
               | Interesting, for some reason I translated the Croatian
               | word "kolacic" for "small cake" to cookie. I guess cookie
               | is not a small cake. In Croatian the expression is
               | "madeleine kolacic".
        
             | aw9f70gae wrote:
             | Thanks for this. My father was reading Swann's Way when he
             | passed away. I wonder what his Proustian madeleine was?
        
         | ace2358 wrote:
         | Very cute story! I have a lot of my files going back to my
         | first computer. Maybe 2003 or so. I have a lot of screenshots,
         | high school work. I have all of my chat logs from msn. I just
         | know when I'm older and my mind is weaker, looking back will
         | help jog my memory.
        
         | et1337 wrote:
         | I think you would enjoy the "Emily is away" series of games on
         | Steam.
        
       | godelmachine wrote:
       | Open question - What's your favorite screenshotting tool?
       | 
       | Mine's CloudShot. I can upload some screengrabs straightaway to
       | Google Drive. You have the option to configure keyboard shortcuts
       | to do that.
        
         | soruly wrote:
         | I write my own powershell script for taking screenshots
         | periodically
         | 
         | https://gist.github.com/soruly/889d926fcd4b2b8e8dc113a100b9d...
        
           | godelmachine wrote:
           | Supercool.
           | 
           | If you wanted to add a functionality wherein you could upload
           | to Google Drive like CloudShot, what would you need to write?
        
       | larsrc wrote:
       | Having worked in digital archiving, I wholeheartedly approve of
       | this suggestion. Digital artifacts degrade alarmingly quickly.
        
       | sircastor wrote:
       | When I was 8 or 9, my dad brought home a Macintosh SE/30. On it,
       | I used MacPaint to create 5 or so black and white paintings using
       | the various patterns and brushes. It is probably the first
       | creative thing I did on a computer.
       | 
       | When we upgraded to System 7, the version of MacPaint didn't run
       | and he told me that essentially the art was lost and
       | unrecoverable. I can picture in my mind what they look like, and
       | wish I had the file to look at.
        
         | LeoPanthera wrote:
         | It's probably not much help now, but if you still have the
         | floppy disks, those pictures can definitely still be viewed
         | again.
        
           | sircastor wrote:
           | Tragically, they weren't ever saved to any disk that I'm
           | aware of.
        
           | krallja wrote:
           | You can even bring them into the modern world with Mini
           | vMac... by taking a screenshot of it!
        
       | submeta wrote:
       | > I can open them in a modern word processor, and they look
       | similar - but it's not the same. Some of the fonts and graphics
       | are missing, and I don't know where I'd find replacements.
       | 
       | Why not convert your documents to PDF? That'll preserve the
       | layout.
        
       | stanleychink wrote:
        
       | easterncalculus wrote:
       | Anytime screenshots come up in conversation I have to recommend
       | Flameshot, it totally changed my workflow with including them.
       | You can create, crop, and edit screenshots really quickly and
       | it's a must-install for me at this point. Open source and cross
       | platform. https://flameshot.org/
        
         | snerbles wrote:
         | A wonderful tool that promptly broke when I switched to
         | Wayland.
        
         | LightHugger wrote:
         | Flameshot is great, the only thing that would be better is if
         | you could video record a screen region using the same UI
         | instead of just taking screenshots.
         | 
         | Most screen recorders are incredibly cludgy. They either
         | require extra cropping and editing after the fact or tank
         | framerate into being unusable. I don't understand the technical
         | problems and the whys though.
        
       | anon2020dot00 wrote:
       | I've been using Notebloc Android app more for this purpose. It
       | can take pictures of pages in a notebook and crop nicely. Also
       | good for taking screenshots of a computer. Although it might seem
       | strange to use a mobile phone to take a picture of a screen, I
       | like that I have a centralized tool that can capture even non-
       | digital stuff like handwritten notes.
       | 
       | Also, it packages pictures into a PDF which I find to be more
       | organized than a bunch of pictures scattered about. I usually
       | close the PDF every day and so each PDF corresponds to pictures
       | taken during a day which gives it a context to make stuff easier
       | to find.
        
       | wonderbore wrote:
       | I had a scheduled screenshot every few minutes for years. At time
       | it helped me recover data that I lost but eventually I stopped
       | using it and deleted my archive when I realized I couldn't police
       | my screenshots. Any one of them could have sensitive information
       | or, ahem, _sensitive information_
       | 
       | Overall though it's nice to see old screenshots even on my phone,
       | but intentionally "taking a screenshot for the memory" feels
       | weird as every one of my screens is boring on its own.
        
         | dr_kiszonka wrote:
         | Funny comment! You could write a script that would not take
         | screenshots of, e.g., incognito, windows.
        
       | greenthrow wrote:
       | I disagree with this advice. Nostalgia is a waste of time. I
       | started coding in about 1988. I have nothing that goes back
       | further than 2010. And I don't waste any time on anything I'm not
       | currently working on. Keep working, keep moving forward. Don't
       | waste your time looking backwards.
       | 
       | That's just my opinion, obviously. But I find the obsession with
       | nostalgia in our culture to be sad and destructive.
        
         | llanowarelves wrote:
         | I agree. The past is useful for post-mortem, learning from, but
         | it's too easy to yearn for it in lieu (low agency) of moving
         | forward (high agency).
        
         | challenger-derp wrote:
         | I agree that one is usually concerned with more recent
         | information (hence the effectiveness of the LRU caching
         | heuristic). However, looking back at past endeavours has been a
         | source of new ideas and joy (reminisce achievements) for me. I
         | don't do it frequently though. Maybe once a year or once every
         | two years. Revisiting your past serves as revision as well (you
         | get to see concepts you once used in your work/life).
        
         | mippenhappen wrote:
         | I wouldn't say nostalgia is sad or destructive, but it is also
         | not for me.
         | 
         | I delete everything when I'm done with it. I backup less than 2
         | GB of personal data. I have around 100 photos of my entire
         | life, and I'm certain I'll get around to deleting all of them
         | too.
        
         | Aeolun wrote:
         | > But I find the obsession with nostalgia in our culture to be
         | sad and destructive
         | 
         | My occassional evenings spend looking back through the life
         | that brought me where I am are sad and destructive?
         | 
         | I find them to be very effective tools for reflection.
        
           | greenthrow wrote:
           | Re-read what you quoted, please. I did not say "individuals
           | occasionally recollecting their past experiences is
           | destructive." I said the cultural level obsesssion with
           | nostalgia. There's a big difference.
        
             | Aeolun wrote:
             | Is there? What do you consider the cultural level obsession
             | then?
        
           | jiggunjer wrote:
           | You seem to be conflating reminiscence with reflection.
        
         | thn-gap wrote:
         | This sounds really sad. I really hope that you can build
         | memories that are worth spending some time remembering with
         | joy.
        
       | kitsunesoba wrote:
       | I do wish that I had kept a universally readable record of more
       | of my work over the years. I've managed to preserve a fair deal
       | of it, but there are notable holes and a lot of it is software
       | which isn't going to run without some tinkering, particularly the
       | projects with significant third party dependencies. Web stuff
       | (e.g. RoR projects) is particularly bad in this regard, often
       | being nigh unrecoverable.
       | 
       | The bigger thing to emphasize I think though regardless of
       | archival method is to make sure to regularly back things up. Some
       | of my earliest things from the 90s were on the boot drive and got
       | wiped when the family computer needed a reformat. Later on when I
       | had my own computer, a lot of stuff was on an external drive to
       | make room on the boot drive, but one day the external decided to
       | kick the bucket and everything on it went up in flames because
       | there were no other copies. I didn't have much cash at that point
       | since I was a high schooler but I'm sure I could've figured out
       | _something_ that would 've preserved at least the most prized
       | documents.
       | 
       | These days I have everything automatically incrementally backed
       | up with Backblaze but now that Time Machine on macOS uses APFS
       | snapshots and is more storage efficient I also want to use my
       | home server for backup.
        
       | 300bps wrote:
       | I taught myself Commodore BASIC and 6502 Assembly including
       | writing a BBS program between 1982-1985.
       | 
       | I kept literally nothing from that time or probably even a decade
       | after.
       | 
       | Literally hundreds of thousands of lines of code.
        
       | ctxc wrote:
       | This was my idea when I built Electron-vLog: automated
       | screenshots of whatever Electron app I'm building right now
       | whenever I run it, so that I can stitch images together later and
       | watch the evolution. If there's no change from the last
       | screenshot, it doesn't save the current screenshot - helps curb
       | duplicates. The core part works, but never got around to
       | releasing it as an npm package.
       | 
       | https://github.com/CatalanCabbage/electron-vlog
        
       | WhyNotHugo wrote:
       | I keep many old screenshots around. A lot from my "eye candy
       | phase" are a mix of hilarious and cringe to look at. But it's
       | also really amusing to see how my workflow and setup has evolved
       | over the years.
        
       | keeptrying wrote:
       | Everything changes.
       | 
       | Your access to a website could change or the server could go down
       | or a website may get bought.
       | 
       | Good reason to keep taking screenshots.
       | 
       | There have been dozens of times I ve been saved by a screenshot.
       | 
       | - insurance cards on phone - a random screenshot I took of a
       | photo of my citizenship certificate saved me 2 weeks For travel -
       | names of peopel - context during a call
        
         | martinflack wrote:
         | I've found "print to PDF" to be great for web pages I want to
         | keep, as well. You can then search, copy, print, etc.
        
       | digitalsushi wrote:
       | I'm not even allowed to save an email on my work computer. i can
       | still copy and paste but i cant save. I always wonder how much
       | longer I'll be allowed to screenshot an app by default.
        
       | yair99dd wrote:
       | I've been using timesnapper on Windows. It will capture a screen
       | shot and timeline it based on title/program text. For years. The
       | time portal aspect is fascinating, and ultimately useless.
        
         | kbaker wrote:
         | Fellow TimeSnapper user. I combine it with a script that
         | collapses it to a daily archive video. 4kx2 monitor setup, at 5
         | second intervals, have also been saving things for >5 years
         | now.
         | 
         | It feels like a superpower sometimes... Reviewing the exact
         | research steps of projects from years ago based on a timestamp
         | from browser history, digging up an archaic screenshot of just
         | the right configuration screen based on a file modification
         | date, etc.
         | 
         | Sorry you find it useless...
        
         | karencarits wrote:
         | This looks interesting but my antivirus didn't like it as it
         | detected "SWF.Exploit.Kit.Rig.tht.Talos" when downloaded from
         | https://timesnapper.com/
        
           | LeonB wrote:
           | Founder here... looking into this.
        
             | karencarits wrote:
             | Thank you, I appreciate your time and help! I guess it's a
             | false positive on my side but have emailed details to
             | support
        
               | LeonB wrote:
               | Here's a virus total report on the file. I find virus
               | total useful (as a product developer) because it will
               | help show cases where some smaller scanner is reporting a
               | positive.
               | 
               | https://www.virustotal.com/gui/url/718fe790bb2c1d97428199
               | 830...
               | 
               | tl/dr -- virus total is happy with the file.
               | 
               | It remains possible that middleware of some sort has
               | altered the file before you accessed it.
               | 
               | You can check the hash of the file like this:
               | 
               | get-filehash ".\TimeSnapperProSetup.exe"
               | 
               | and it should return "B50A4449C9C36871280A842A530EA19694C
               | 7CBC4CF55CED5A620D8838D87CA1E" -- the same hash shown in
               | the virus total report.
        
               | karencarits wrote:
               | Thank you for your quick response! I get the same hash,
               | so a false positive it is. I am really excited to test
               | your product, it seems very nice!
        
       | kragen wrote:
       | Alex says, "Digital work is inherently ephemeral." This is
       | precisely backwards; digital work is one of the _least_ ephemeral
       | aspects of human material culture, exceeded only by occasional
       | miraculous analog exceptions like the Pyramids, potsherds, the
       | Lascaux paintings, and Otzi 's axe. The Torah is digital--encoded
       | in a sequence of discrete symbols rather than continuously
       | varying quantities--and that's why it's survived for 3000 years.
       | The digitization of Socrates's words by Plato and Xenophon is the
       | reason we argue about him today, 2500 years later, rather than
       | his forgotten Persian contemporaries or even Heraclitus.
       | 
       | Being digital is what makes the idea of an "exact copy" make
       | sense. You can make an exact copy of some version of the Torah or
       | the Symposium because it's only the discrete letters that matter;
       | the analog nuances of tone of voice or thickness of pen stroke do
       | not count.
       | 
       | So digitality is the _alternative_ to the ephemerality of the
       | analog, which is inevitably eaten up by moths and rust. We all
       | know this about digitized _language_ , but for some reason now
       | that we've digitized _reasoning_ in the form of computer
       | programs, we habitually throw up our hands and declare defeat in
       | the face of inevitable ephemerality.
       | 
       | This is bullshit.
       | 
       | What I really want, instead of screenshots, is a deterministic,
       | reproducible computing environment. The idea is something like
       | uxn or Nock: a platform that's simple enough to stay compatible
       | forever, and efficient enough to be used for many things, even if
       | there are a few things that I do on a computer that need more
       | performance.
       | 
       | There are a lot of inspirational examples that offer tempting
       | evidence that this is possible for large, interesting classes of
       | computations: the Smalltalk-78 revival emulator Vanessa
       | Freudenberg wrote, the UM of the Cult of the Bound Variable
       | (which had over 300 successful independent reimplementations),
       | Nguyen and Kay's sketch of Chifir, Lorie's archival UVC, Wirth's
       | RISC, uxn/Varvara, the JVM, and the numerous emulators of things
       | like the MS-DOS environment, the NES, and the Gameboy that are
       | good enough to run the original games.
       | 
       | I'm not saying it would be an improvement to do all your digital
       | creative work on an emulated Gameboy in order to ensure that it
       | was reproducible. I think we can do a lot better than that. None
       | of the presently existing archival virtual machines are adequate.
       | But I think the reproducibility of Gameboy games tells us that we
       | don't have to accept bitrot as the price of using computers.
       | 
       | Alex says, "They're not as good as having the original, working
       | thing - but they're much better than nothing". Well, let's figure
       | out how we can have the original, working thing! This is
       | software, it's a simple matter of programming.
        
         | downwithbgp wrote:
         | Depending on how much one's willing to stretch that argument,
         | they can also point out that all known life is digital.
         | 
         | Human genome is, effectively, a historical digital record
         | (Nature, DOI: 10.1038/nature10231).
        
           | kragen wrote:
           | I don't think it's a stretch at all to say that the base
           | sequence of DNA, or the residue sequence of a peptide, is
           | digital, and yes, that's what makes reproduction as we know
           | it possible.
           | 
           | Many aspects of life, however, are analog. Magnesium
           | concentrations, membrane polarizations, molecule
           | orientations, temperature, and so on.
        
         | sitkack wrote:
         | Wasm can be a key piece of the system you seek. A simple VM,
         | the heap is serializable and the linkage to the outside world
         | has to be fully defined.
        
           | kragen wrote:
           | Wasm definitely has some useful ideas for efficient
           | reproducible computing, but it is ridiculous to describe it
           | as "a simple VM" in comparison to Wirth's RISC, the Cult of
           | the Bound Variable's UM, Chifir, Smalltalk-78, or even the
           | NES or uxn/Varvara. I think this page lists _over 1000
           | instructions_ : https://webassembly.github.io/spec/core/synta
           | x/instructions....
        
             | sitkack wrote:
             | It is a lot, but not quite 1000, yet. From
             | https://webassembly.github.io/spec/core/appendix/index-
             | instr... I see 436 instructions including SIMD which is
             | over half the population. If I filtered it correctly, it
             | looks like there are about 203 instructions in Wasm without
             | SIMD. Many of those are not necessary for most programs.
             | 
             | There at least three small Wasm interpreters in Rust
             | 
             | 4kloc https://github.com/yblein/rust-wasm
             | 
             | 3kloc https://github.com/k-nasa/wai
             | 
             | 500loc https://github.com/rustwasm/wasm-
             | bindgen/tree/HEAD/crates/wa...
             | 
             | This list has 169 Wasm instructions
             | https://github.com/rolfrm/wasm-
             | lisp/blob/master/instruction....
             | 
             | Wirth's RISC is neat, I'd love to re-do it in RISC-V (only
             | 47 instructions in the base ISA). UM, Chifir and UXN look
             | like Art (not pejorative), I'll definitely read the Chifir
             | paper. They would be great systems to run on top of Wasm.
             | 
             | https://git.sr.ht/~bctnry/chifir
             | 
             | One might be able squeeze a Chifir VM into an ESP-32 (with
             | external PSRAM).
        
               | kragen wrote:
               | I agree that UM, Chifir, and uxn are Art, and that wasm
               | is at least potentially a _great_ platform to run this
               | kind of archival virtual machine on top of, as well as
               | having some very interesting ideas about how to design a
               | VM instruction set to be amenable to efficient
               | implementation. RISC-V is a good source of ideas for
               | that, too!
               | 
               | And I appreciate you setting me straight about the extent
               | of wasm's instruction proliferation.
               | 
               | But I find much to disagree with.
               | 
               | -- *** --
               | 
               | > _There at least three small Wasm interpreters in Rust_
               | 
               | None of those are small; the smallest one you found is
               | 500 lines of code, and it's _very_ incomplete,
               | implementing only 11 of the 436 or however many wasm
               | instructions there are, and even those it only implements
               | partially. (Its only arithmetic is addition and
               | subtraction, for example.) Even the 3kloc one says it
               | doesn 't pass the wasm testsuite; its pub enum
               | Instruction has 174 items and most of those are
               | implemented as follows:
               | Instruction::F64Store(_, _) => todo!(),
               | Instruction::I32Store8(_, _) => todo!(),
               | Instruction::I32Store16(_, _) => todo!(),
               | Instruction::I64Store8(_, _) => todo!(),
               | 
               | The 4kloc one (which I think is actually closer to
               | 2.8kloc) doesn't include any of the SIMD ops, but it
               | claims to implement the whole wasm spec as of 02019, and
               | it's plausible that it actually does. A casual glance at
               | the code doesn't reveal anything that contradicts that
               | claim; it implements about 200 instructions.
               | 
               | None of them include the peripherals, which are by
               | definition excluded from wasm. But peripherals are
               | usually the part of an emulator that requires the most
               | effort, and they're usually a much bigger compatibility
               | bitrot shitshow than your CPU is.
               | 
               | By contrast, the UM interpreter in the Cult of the Bound
               | Variable paper was I think 55 lines of C (also, not
               | including peripherals). My dumb Chifir interpreter was 75
               | lines of code; adding Yeso graphical output was another
               | 30 lines https://gitlab.com/kragen/bubbleos/blob/master/y
               | eso/chifir-y....
               | 
               | Uxn, despite its inefficiency, runs useful applications
               | on the Nintendo DS today (in 5200 lines of pretty
               | repetitive C, _including_ the peripherals), and wasm
               | doesn 't and probably never will. And 365 teams in the
               | ICFP programming contest _independently_ implemented the
               | UM successfully enough to run at least some existing
               | applications; there will probably never be 300+
               | independent reimplementations of wasm. So in important
               | ways they 're already closer to the goal of eliminating
               | bitrot than wasm ever will be. This is probably because
               | eliminating bitrot isn't part of wasm's goals.
               | 
               | (I realize I forgot to mention the Infocom Z-machine, as
               | well.)
               | 
               | Wasm has another deficiency other than complexity: as far
               | as I know there's no standard way for a wasm program to
               | generate some wasm and start running it, although of
               | course the browser platform does provide that ability.
               | This is essential if the thing you want to run under it
               | is a virtual machine or other sort of emulator, because
               | the only way to do an efficient emulator is to compile
               | the code you want to interpret into the instruction set
               | the emulator is running on. Something wasm-like can
               | dramatically simplify this; if you're compiling to wasm,
               | for example, you don't have to do instruction scheduling
               | or register allocation, and you might not even have to do
               | constant folding and function inlining.
               | 
               | -- *** --
               | 
               | One of the interesting ideas in the RISC-V ecosystem is
               | that a Cray-style vector instruction set (RV64V) can give
               | you SIMD-instruction-like performance without SIMD-
               | instruction-like instruction set inflation. And, as the
               | APL family shows, such vector instructions can include
               | scalar math as a special case. I haven't been able to
               | come up with a way to define such a vector instruction
               | set that wouldn't be unacceptably bug-prone, though;
               | https://dercuano.github.io/notes/vector-vm.html describes
               | some of the things I tried that didn't work.
               | 
               | -- *** --
               | 
               | Why am I being so unreasonable about the amount of code?
               | After all, a few hundred lines of C is something that you
               | can write in an afternoon, right, so what's the big deal
               | about 500 or 3000 lines of code for something you'll use
               | for decades? And nobody has ever written an NES emulator
               | in 500 or 3000 lines of code.
               | 
               | The problem is that, to parody Perlis's epigram, if your
               | virtual machine definition has 500 lines of code, you
               | probably forgot some. If a platform includes that much
               | functionality, you have designed it so that that
               | functionality has to live in the base platform rather
               | than being implemented in programs that run on the
               | platform. And that means that you will be strongly
               | tempted to add stuff to the base platform, which is how
               | you break programs that used to work.
               | 
               | In the case of MS-DOS or NES emulation this is limited by
               | the fact that Nintendo couldn't go out and patch all the
               | Famicoms and NESes in people's houses, so if they wanted
               | to change things, well, too bad. NES emulator authors
               | have very little incentive to add new functionality
               | because the existing ROMs won't use it, and that's what
               | they want to run.
        
               | sitkack wrote:
               | I think SIMD was a distraction to our conversation, most
               | code doesn't use it and in the future the length
               | agnostic, flexible vectors;
               | https://github.com/WebAssembly/flexible-
               | vectors/blob/master/... are a better solution. They are a
               | lot like RVV; https://github.com/riscv/riscv-v-spec,
               | research around vector processing is why RISC-V exists in
               | the first place!
               | 
               | I was trying to find the smallest Rust Wasm interpreters
               | I could find, I should have read the source first, I only
               | really use wasmtime, but this one looks _very_
               | interesting, zero deps, zero unsafe.
               | 
               | 16.5kloc of Rust https://github.com/rhysd/wain
               | 
               | The most complete wasm env for small devices is wasm3
               | 
               | 20kloc of C https://github.com/wasm3/wasm3
               | 
               | I get what you are saying as to be so small that there
               | isn't a place of bugs to hide.
               | 
               | > "There are two ways of constructing a software design:
               | One way is to make it so simple that there are obviously
               | no deficiencies, and the other way is to make it so
               | complicated that there are no obvious deficiencies. The
               | first method is far more difficult." CAR Hoare
               | 
               | Even a 100 line program can't be guaranteed to be free of
               | bugs. These programs need embedded tests to ensure that
               | the layer below them is functioning as intended. They
               | cannot and should not run open loop. Speaking of 300+
               | reimplementations, I am sure that RISC-V has already
               | exceeded that. The smallest readable implementation is
               | like 200 lines of code;
               | https://github.com/BrunoLevy/learn-
               | fpga/blob/master/FemtoRV/...
               | 
               | I don't think Wasm suffers from the base extension issue
               | you bring up. It will get larger, but 1.0 has the right
               | algebraic properties to be useful forever. Wasm does
               | require an environment, for archival purposes that
               | environment should be written in Wasm, with api for
               | instantiating more envs passed into the first env. There
               | are two solutions to the Wasm generating and calling Wasm
               | problem. First would be a trampoline, where one returns
               | Wasm from the first Wasm program which is then re-
               | instantiated by the outer env. The other would be to pass
               | in the api to create new Wasm envs over existing memory
               | buffers.
               | 
               | See, https://copy.sh/v86/
               | 
               | MS-DOS, NES or C64 are useful for archival purposes
               | because they are dead, frozen in time along with a large
               | corpus of software. But there is a _ton_ of complexity in
               | implementing those systems with enough fidelity to run
               | software.
               | 
               | Lua, Typed Assembly;
               | https://en.wikipedia.org/wiki/Typed_assembly_language and
               | Sector Lisp; https://github.com/jart/sectorlisp seem to
               | have the right minimalism and compactness for archival
               | purposes. Maybe it is sectorlisp+rv32+wasm.
               | 
               | If there are directions you would like Wasm to go, I
               | really recommend attending the Wasm CG meetings.
               | 
               | https://github.com/WebAssembly/meetings
               | 
               | When it comes to an archival system, I'd like it to be
               | able to run anything from an era, not just specially
               | crafted binaries. I think Wasm meets that goal.
               | 
               | https://gist.github.com/dabeaz/7d8838b54dba5006c58a40fc28
               | da9...
        
               | kragen wrote:
               | There's a lot to think about here, but right now I just
               | want to respond to one point, about vectors and SIMD.
               | 
               | Performance limits what you can program on a platform,
               | and there's a pretty wide range of interactive software
               | where the performance bottleneck is generating pixels to
               | put on the screen, just because there are so goddamned
               | many of the fuckers. And fortunately that is commonly
               | vectorizable; vector operations implemented by special
               | CPU instructions have been a key enabling hack since
               | BitBlt on Smalltalk in the 01970s. (In fact, the very
               | first machine that ran a GUI had SIMD instructions in
               | hardware, the TX-2, completed in 01958, but it didn't
               | have pixels.)
               | 
               | This is even more important now than before, even without
               | bringing GPUs into the picture. With optimized single-
               | threaded C on an 8-core system, you're getting at best
               | 12.5% of the machine's performance. If SIMD gives you an
               | 8-fold speedup on slinging pixels around, which is
               | common, you're getting at best 1.6% of theoretical
               | performance with single-threaded SIMD-less code. With a
               | naive, CPython-style bytecode interpreter, you have
               | another factor of 40 or so slowdown, so you're getting
               | 0.04% of the machine's performance: 11.3 Moore's-law
               | performance doublings, so on today's machines you're back
               | to 01999, age of Winamp, Quake III, ICQ, RealAudio, and
               | Baldur's Gate. On the 02009 machine I'm typing this on
               | you're back to 01987.
               | 
               | Now, people wrote a lot of interesting programs in 01987.
               | Fractint, Hypercard, Quattro Pro, X11R3, a lot of the
               | more elaborate Infocom games. And modern SSDs and
               | humongous RAM mean you can do a lot of things now you
               | couldn't do then, even if your CPU is clunking along with
               | 01987 performance. And even a basic JIT compiler can
               | probably get you from 0.04% up to 0.5% of the machine's
               | performance, maybe 4% if it's multithreaded, though that
               | makes determinism enormously more difficult.
               | 
               | But in theory Numpy-style vector operations can take
               | advantage of both multiple cores and SIMD, usually giving
               | you about 20% of the machine's performance even in a
               | naive, CPython-style bytecode interpreter, at least on
               | the kinds of operations where it's applicable, and
               | without sacrificing determinism. Possibly with the kind
               | of pipelining and tiling optimizations Numpy doesn't do
               | you can do even better than that.
               | 
               | Of course, you can also design a virtual machine
               | architecture in such a way as to permit efficient
               | compilation, and not have to fall back on turbocharged
               | vector operations. A lot of Wasm is designed with this
               | objective in mind; for example, there is no dynamic
               | typing to require runtime type checks, local variables
               | can't alias linear memory, control flow is structured to
               | help out the compiler, and so on, so that your
               | interpretation/emulation slowdown is almost nil, reduced
               | to the occasional bounds check that couldn't be hoisted
               | out of a loop. And you can provide access to SIMD
               | instructions, which Wasm now does, and multithreading,
               | which it doesn't.
               | 
               | But all of this can't be done on a _simple_ VM
               | architecture. And for a given VM architecture I think an
               | interpreter is always simpler than a compiler.
               | 
               | One of my stretch goals for the forever-platform is for
               | it to be _independently_ and compatibly reimplementable
               | from the spec, that is, without access to a working
               | implementation to test against, ideally within a few
               | hours (as with Nguyen and Kay 's "fun afternoon hack"
               | desideratum for Chifir). There are indeed 300+ RISC-V
               | implementations, but they aren't independent in the way
               | the implementations of the UM were; the authors had not
               | only a body of RISC-V software to work from but also
               | other implementations of RISC-V to test the software on.
               | But for Rosetta-Stone-level archival, we want the
               | programmer-archaeologist to be able to get their
               | implementation working even though they _don 't_ have an
               | existing implementation to test against.
               | 
               | UM is a demonstration that this goal is achievable, if
               | you're willing to accept that ceiling of 0.04% of native
               | performance for the straightforward interpreter you'd
               | write as a fun afternoon hack.
               | 
               | The hope with vector operations is that they give you an
               | extra _three orders of magnitude_ in inner-loop
               | performance, without stretching the implementation task
               | beyond what 's achievable as a "fun afternoon hack", and
               | without introducing so much ambiguity and so many tricky
               | corner cases in the spec that in practice a given "ROM"
               | will not run on an independent reimplementation. I don't
               | know if I'll find a way to do it or not. But that's the
               | objective.
               | 
               | And that's why I've been wrestling with SIMD, and don't
               | think it's just a distraction.
               | 
               | So, thank you very much for the links to the relevant
               | efforts! Oh dear, though, the V1.0 version of RVV is 111
               | pages, longer than the entire RV32/RV64 unprivileged
               | spec.
        
               | sitkack wrote:
               | The Rosseta-Stone spec needs to have an executable test,
               | otherwise how do you know it works? Even the software you
               | want to get running is a sort of a test, you just need
               | test oracles.
               | 
               | > And that's why I've been wrestling with SIMD, and don't
               | think it's just a distraction.
               | 
               | I think in _this_ instance, Wasm 128b SIMD is a
               | distraction. I agree with everything you have said, and
               | your goals. Wasm 128b SIMD was a stop-gap and distracts
               | from what ultimately will be a much better solution
               | (vector processing). It is the lowest common denominator
               | (128b width registers) impl that they could come up with
               | to satisfy necessary immediate perf needs. It _does_ get
               | good speedups on code right now, but it more than doubles
               | the number of Wasm opcodes. It isn 't tenable to have the
               | same 128 -> 256 -> 512 path that CPUs have taken.
               | Implementation complexity and having to recode software
               | everytime the SIMD registers change shape is lame. CPU
               | vendors are totally ok having a needless upgrade train.
               | The future is the past with vector processing, like RVV
               | and flexible vectors. For archival software, I'd argue
               | that SIMD doesn't matter. I don't think it is fare to
               | compare RVV against the base ISA spec, the base ISA spec
               | is trying to be the simplest possible thing, it is just a
               | bootloader for RVV and custom instructions.
               | 
               | Being able to extract parallelism is way more important
               | than constant factors, even for pathologically slow
               | systems like Python. Thread counts for single socket
               | systems are already at 256. One could probably implement
               | Quake 3 in PyPy, maybe even CPython now and hit 60 FPS.
               | CPython could definitely run Quake 1.
               | 
               | Wasm does support threads now.
               | https://web.dev/webassembly-threads/
               | 
               | Wasm SIMD didn't even need to exist, the AST could have
               | been encoded in a call graph that could have executed a
               | fallback implementation, or been converted to local SIMD.
               | It could have all just been function calls, like a binary
               | intrinsic. It didn't really need an instruction set
               | extension. You could encode a vector program, or
               | something shader like in a binary wasm call graph.
               | 
               | I love that you use Moore Units in your comparisons,
               | rarely do folks do this. When folks argue over 4%
               | difference for some aspect of safety, they are talking
               | about weeks of relative performance on a Moore Scale. But
               | no amount of concrete performance gains will allow them
               | to have safety or correctness. They are content to live
               | in a ghetto all driving fast cars.
        
         | vikingerik wrote:
         | > a platform that's simple enough to stay compatible forever
         | 
         | Two things that make this impossible in a general sense:
         | security vulnerabilities, and hardware that fails and is no
         | longer manufactured.
         | 
         | It's only possible by defining the forever-platform as a
         | sandbox abstraction, such that the containing layers can be
         | updated for vulnerabilities and hardware.
         | 
         | This is what happened with the old game platforms, but even
         | that is leaky. The NES Zapper is at least one case that remains
         | troublesome. More generally, input and display lag always pose
         | a problem and always will, since there always must be some
         | translation layer for hardware that won't exist forever.
         | 
         | It's not just a matter of software programming. The hardware
         | matters. For your forever-platform to truly work, it would need
         | to include hardware manufacturing instructions from raw
         | materials. Which is possible, but you can see where it goes out
         | of feasible scope for any commercial endeavors.
        
           | kragen wrote:
           | I am definitely talking about defining a sandbox abstraction,
           | not mass-producing a piece of hardware. I agree that defining
           | a sandbox abstraction is the only way to achieve what I am
           | proposing. (This has been key to software longevity since
           | ALGOL-60 and the IBM 360's microcoded implementations, but
           | I'm proposing to go a lot further than the IBM 360 did.) I
           | also agree that we have to aim higher than mere commercial
           | endeavors can in order to achieve the forever-platform.
           | 
           | Security vulnerabilities at that level are a non-problem.
           | There are no security vulnerabilities in Wirth RISC, in Nock,
           | in Chifir, in the UM, or in the l-calculus, and there never
           | will be. There probably aren't any security vulnerabilities
           | in uxn/Varvara. None have ever been discovered in the 8086,
           | which is orders of magnitude more complex than what I'm
           | talking about. The 6502 did have some, but they were in the
           | hardware implementation, not the architecture, and are not
           | present in modern 6502 emulators.
           | 
           | Input and display lag can be a problem, it's true, but there
           | are many applications that can tolerate a lot of lag. A
           | guitar pedal cares a lot more about lag than a paint program,
           | which cares more than a word processor, which cares more than
           | a compiler.
           | 
           | Hardware manufacturing instructions are not needed as long as
           | people have access to some kind of programmable computer on
           | which to implement the forever-platform emulator.
        
             | vikingerik wrote:
             | If you define anything involving timing and lag as out of
             | scope, then yes, any computational sandbox can be run by
             | any computational host with sufficient resources to
             | maintain state, of course.
             | 
             | Hardware still matters for input and output. For your
             | platform to run a guitar pedal, you'll need some way to
             | physically get an audio signal in and out if you want it to
             | be of any use.
        
               | kragen wrote:
               | Agreed. And timing and lag do matter a lot for human-
               | computer interaction. Common platforms won't be able to
               | meet the latency demands of VR/AR rendering or guitar
               | pedals anytime soon even _without_ an extra emulation
               | layer. But I think they can do Voxel Space Comanche or
               | MilkyTracker.
        
       | petesergeant wrote:
       | My relationship with my screen has been transformed since I
       | learned the OS X screenshot short-cuts -- taking notes, writing
       | documentation, etc, all a breeze since muscle-memory captured
       | Shft+Cmd 4 with Ctrl+Click giving you copy to clipboard
        
       | lolive wrote:
       | I use Obsidian to manage my notes. And 90% of them contain
       | images, most of the times screenshots [taken with Greenshot]. My
       | killer duo, at work, to never forget something that was shown to
       | me during a Google Meet, or something that I read in a power
       | point presentation.
        
       | gcau wrote:
       | Is there any program, maybe using ShareX, to just automatically
       | and periodically take a screenshot in the background and save it
       | to a folder?
        
       | lkrubner wrote:
       | At one point I realized that whenever I went on vacation I took
       | pictures of wherever I went: Germany, France, Sweden, Costa Rica,
       | Texas, Florida, etc.
       | 
       | But then I realized most of the "traveling" that I do is the
       | different places that I go on my computer. If I'm going to take
       | photos when I travel, I should also be taking screenshots
       | constantly, to document places I went on my computer. Such
       | screenshots are useful because they will capture:
       | 
       | 1. the large number of websites that exist in a particular year,
       | but which won't exist 5 years later
       | 
       | 2. minor interests I have one year that I don't have later.
       | Occasionally I'm curious when I first got into a particular
       | interest, and seeing the screenshots is helpful for documenting
       | that.
       | 
       | When I go back to the oldest entries of my weblog, from 2005, I
       | notice that more than 80% of the links are now 404. The Web is
       | constantly disappearing. Like a forest on its way to extinction,
       | you might as well photograph it now, because it won't be there 10
       | years later. Most of the websites you visit, you cannot go back
       | and visit them a few years later. Take a photo of them while they
       | still exist.
        
       | asdff wrote:
       | Zoom meetings have been great for screenshot potential.
       | Previously if someone had an interesting slide at a conference
       | you would have to zoom way in with your phone and hope you got it
       | with enough resolution from your seat.
        
       | stolenmerch wrote:
       | Not exactly a screenshot, but I recently found a file from
       | December 1991 that was a proprietary image file of the home
       | screen of a local BBS I used to visit in high school. Was
       | actually able to convert it to a PNG after some work. This might
       | be my oldest file that I personally saved to disk. Now if only I
       | had all those cassette tapes from my TRS-80.
        
       | BenFranklin100 wrote:
       | Tropy is an application to turn photos into documents and
       | organize the items via collections. It's free and open source. My
       | partner's research involves collecting images and they find it
       | works well.
       | 
       | https://tropy.org/
        
       | jonnycomputer wrote:
       | Screenshot history:
       | 
       | 1988 - Emacs 18.52
       | 
       | 1992 - Emacs 18.59
       | 
       | 1994 - Emacs 19.7
       | 
       | 1996 - Emacs 19.7
       | 
       | 1998 - Vim ????
       | 
       | 2002 - Emacs 21.1
       | 
       | 2006 - Emacs 21.1
       | 
       | 2012 - Emacs 24.1
       | 
       | 2018 - Emacs 26.1
       | 
       | 2022 - Emacs 28.1
        
       | morsch wrote:
       | It's too bad that screenshots don't have more useful metadata. Or
       | any useful metadata, beyond a timestamp.
       | 
       | I'd like to have the names of all programs visible in the
       | screenshot (easy), possibly application specific metadata like
       | the opened filename or a URL (more difficult) and more generally
       | full OCR of the visible text (pretty easy). You'd need a PDF to
       | get the most out of this, but presumably most other image formats
       | have generic metadata storage.
        
         | noyesno wrote:
         | Check out https://www.manictime.com/ it doesn't give your OCR
         | but could still be useful.
        
         | sooheon wrote:
         | A paid tool in this direction is APSE (https://apse.io) which
         | bills itself as a personal search engine that OCRs intermittent
         | screencaps. I loved the idea, but in practice it lacked polish.
         | I agree that additional metadata like foremost application
         | filepath/url would take this to another level.
        
         | jll29 wrote:
         | Additional meta-data may in the future be extracted through
         | machine learning from such videos.
         | 
         | Regarding open programs: I once led a project where we
         | developed something that keeps track of the software you're
         | running (no screen recording) in order to conduct research into
         | attention and distraction. We didn't have the resources to
         | support many platform versions, so we wrote only a Windows
         | client (most used OS on the floor). It was similar to
         | RescueTime https://www.rescuetime.com/ but more respecting
         | one's privacy and absolutely avoiding the cloud, as we deployed
         | the experiment in a lawyer-intensive environment; for instance
         | we logged running program names but not titles of open windows
         | because file names often reveal sensitive matter. We questions
         | occasionally how productive they felt in the last half hour,
         | and they could comment.
        
           | frozencell wrote:
           | > Additional meta-data may in the future be extracted through
           | machine learning from such videos.
           | 
           | Why can't we le the ML models figure classification
           | themselves and then give them the human data to adjust to be
           | readable by the human.
        
       | jl6 wrote:
       | I take screenshots at fairly random intervals and have done for
       | years. My earliest screenshots are from the 1990s.
       | 
       | I consider this an adjunct to my photography hobby. When I
       | travel, I take opportunistic photos of interesting things I see.
       | When I use the computer, I am a traveller in a digital universe
       | and I do the same.
       | 
       | I find it really interesting to see the evolution of desktop UIs
       | that I have used over the years, and to see the slow change in
       | applications I typically use.
        
       | artur_makly wrote:
       | We've automated this nicely for you on any public URL, and even
       | some private one's that use cookies for access:
       | https://VisualSitemaps.com
       | 
       | Lot's of folks use us just for archiving purposes. We also have a
       | nifty Ai that compares visual changes in the screenshots.
        
         | ctxc wrote:
         | Wish I'd discovered you sooner...
        
       | jezzamon wrote:
       | For my creative coding projects (which are usually looping
       | animations) I've set up scripts that export a short video at
       | every git commit. Going back and seeing things develop is quite
       | satisfying, and also useful if I stumbled upon a configuration
       | that I like and want to branch from
        
         | lloydatkinson wrote:
         | Do you have the scripts or a demo somewhere? sounds cool
        
         | ChadNauseam wrote:
         | That's a fantastic idea, thanks for sharing. It'd be fun to set
         | something like this up for gamedev
        
       ___________________________________________________________________
       (page generated 2022-07-25 23:02 UTC)