---------------------------------------
Archiving and bootstrapping
29th December 2019
---------------------------------------

I've recently become very interested in the digital archiving
movement; places like archive.org, r/DataHoarder (when redditors
aren't being toxic) and ArchiveTeam have really piqued my interest.

I personally think what they are doing is mostly good work. I
really like the idea of preserving the current internet for future
historians and generations. One thing I didn't know was the extreme
rate at which data is deleted from the internet.

Did you know in your average academic paper, out of internet
sources:
- After 1 year, 10% of the sources are no longer up.
- After 2 years, 25% of the sources are no longer up.
- After 5 years, nearly 50% of the sources are no longer up.

This obviously varies from paper to paper but the astounding thing
is all the research collated on various personal websites just
goes. The internet really is held together by string and tape; all
it takes is for a domain name to expire; a web host to go down; and
the content is no longer accessible.

This is where services like archive.org jump in, and trawl the web
saving pages so they can be viewed by people. This has been
invaluable for many people including myself trying to find
solutions to problems on websites.. that no longer existed.

Things like expiry times on TV streaming services (eg in australia
ABC iView), have lead me to downloading TV shows, often seasons of
them so I can still watch them even when they aren't on the
website. I have roughly 50GB of TV shows now which is quickly
growing.

I've had a few more interesting adventures archiving non-web media,
things like CDs/DVDs, VHS and camcorder tapes.

CDs and DVDs were the easiest of the four, because they are already
digital. Just chucked them in my DVD reader, connected it up, fired
up Exact Audio Copy for CDs and MakeMKV for DVDs, and transferred
the result to my Raspberry pi NAS.

VHS was slightly more difficult. I ended up after trying various
solutions using S-Video into a USB capture card. I then used OBS to
record the result. I preferred S-Video over RCA as it is higher
quality.

Camcorder tapes was the hardest of the four. I started by
attempting to use RCA, but that yielded a very low quality. I
looked for various ports on the camera and found a firewire port.
Now as far as I knew none of the devices in my house had firewire,
so I shelved it for a while. Then I found a ~12 year old laptop
that had firewire and after digging in some boxes of cables I found
the correct 4 pin to 4 pin firewire cable, and installed the very
old program dvgrab. The results were suprisingly large; a 1 hour
tape was roughly 9-10GB.

Moving on to the other topic I wanted to talk about; bootstrapping.
It's a very interesting concept; being able to compile a language
without a compiler. There's a lot of folks at
irc.freenode.net#bootstrappable that are really nice and willing to
help.

They've gone to great lengths to make languages bootstrappable. My
favourite is Java, where they trace their way back to using a Java
runtime from 2009! which was written in C and compile their way up
to OpenJDK. (https://bootstrappable.org/projects/java.html)

The primary project is making C bootstrappable (C++ is
bootstrappable by using GCC 4.7.4 which didn't require C++). Some
guy called oriansj went crazy with this and extended the goal to
making even *assembly* bootstrappable; they've actually done this
and the only missing link is between M2-Planet (a subset of C) and
TinyCC (a old C compiler). You can see it here:
https://github.com/oriansj/stage0. It starts with only a 280 byte
binary and the rest is source code.

(I've become involved in this and since the missing link is a C
compiler written in scheme, a scheme interpreter is being written
in m2 (https://github.com/oriansj/mes-m2). Help is really needed to
write tests to test fuctionality of mes-m2, especially with
modules.)

On the last note, I hope everyone had a great Christmas and has a
exciting 2020.

Here's to gopher in the new decade!

~fosslinux