Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
History is littered with hundreds of conflicts over the future of a community, group, location or business that were "resolved" when one of the parties stepped ahead and destroyed what was there. With the original point of contention destroyed, the debates would fall to the wayside. Archive Team believes that by duplicated condemned data, the conversation and debate can continue, as well as the richness and insight gained by keeping the materials. Our projects have ranged in size from a single volunteer downloading the data to a small-but-critical site, to over 100 volunteers stepping forward to acquire terabytes of user-created data to save for future generations.
The main site for Archive Team is at archiveteam.org and contains up to the date information on various projects, manifestos, plans and walkthroughs.
This collection contains the output of many Archive Team projects, both ongoing and completed. Thanks to the generous providing of disk space by the Internet Archive, multi-terabyte datasets can be made available, as well as in use by the Wayback Machine, providing a path back to lost websites and work.
Our collection has grown to the point of having sub-collections for the type of data we acquire. If you are seeking to browse the contents of these collections, the Wayback Machine is the best first stop. Otherwise, you are free to dig into the stacks to see what you may find.
The Archive Team Panic Downloads are full pulldowns of currently extant websites, meant to serve as emergency backups for needed sites that are in danger of closing, or which will be missed dearly if suddenly lost due to hard drive crashes or server failures.
ArchiveBot is an IRC bot designed to automate the archival of smaller websites (e.g. up to a few hundred thousand URLs). You give it a URL to start at, and it grabs all content under that URL, records it in a WARC, and then uploads that WARC to ArchiveTeam servers for eventual injection into the Internet Archive (or other archive sites).
To use ArchiveBot, drop by #archivebot on EFNet. To interact with ArchiveBot, you issue commands by typing it into the channel. Note you will need channel operator permissions in order to issue archiving jobs. The dashboard shows the sites being downloaded currently.
Table 73 suggests that output iterators have value types. It
requires the expression "*a = t". Additionally, although Table 73
never lists "a = t" or "X(a) = t" in the "expressions" column, it
contains a note saying that "a = t" and "X(a) = t" have equivalent
(but nowhere specified!) semantics.
According to 24.1/9, t is supposed to be "a value of value type
T":
In the following sections, a and b denote values of X, n denotes a
value of the difference type Distance, u, tmp, and m denote
identifiers, r denotes a value of X&, t denotes a value of
value type T.
Two other parts of the standard that are relevant to whether
output iterators have value types:
24.1/1 says "All iterators i support the expression *i,
resulting in a value of some class, enumeration, or built-in type
T, called the value type of the iterator".
24.3.1/1, which says "In the case of an output iterator, the types
iterator_traits<Iterator>::difference_type
iterator_traits<Iterator>::value_type are both defined as void."
The first of these passages suggests that "*i" is supposed to
return a useful value, which contradicts the note in 24.1.2/2 saying
that the only valid use of "*i" for output iterators is in an
expression of the form "*i = t". The second of these passages appears
to contradict Table 73, because it suggests that "*i"'s return value
should be void. The second passage is also broken in the case of a an
iterator type, like non-const pointers, that satisfies both the output
iterator requirements and the forward iterator requirements.
What should the standard say about *i's return value when
i is an output iterator, and what should it say about that t is in the
expression "*i = t"? Finally, should the standard say anything about
output iterators' pointer and reference types?
Proposed resolution:
24.1 p1, change
All iterators i support the expression *i, resulting
in a value of some class, enumeration, or built-in type T,
called the value type of the iterator.
to
All input iterators i support the expression *i,
resulting in a value of some class, enumeration, or built-in type
T, called the value type of the iterator. All output
iterators support the expression *i = o where o is a
value of some type that is in the set of types that are writable to
the particular iterator type of i.
24.1 p9, add
o denotes a value of some type that is writable to the
output iterator.
Table 73, change
*a = t
to
*r = o
and change
*r++ = t
to
*r++ = o
[post-Redmond: Jeremy provided wording]
Rationale:
The LWG considered two options: change all of the language that
seems to imply that output iterators have value types, thus making it
clear that output iterators have no value types, or else define value
types for output iterator consistently. The LWG chose the former
option, because it seems clear that output iterators were never
intended to have value types. This was a deliberate design decision,
and any language suggesting otherwise is simply a mistake.
A future revision of the standard may wish to revisit this design
decision.