Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I would like to Contribute to this Effort #51

Open
ssimontis opened this issue Jan 17, 2021 · 33 comments
Open

I would like to Contribute to this Effort #51

ssimontis opened this issue Jan 17, 2021 · 33 comments

Comments

@ssimontis
Copy link

Hello,

The old Wiki taught me a lot of things I never would have encountered during my journey as a self-taught programmer. I would love to help bring it back to life, but I was having trouble determining the current status of remodeling efforts. Are there any specific items or areas where I can jump in and assist? Thank you for your time and all that you have done to freely spread knowledge of our craft.

@AlexandriaOL
Copy link

AlexandriaOL commented Mar 8, 2021

Seconding this. I too learned a lot of invaluable information from this wiki -- stuff I would never have learned about otherwise, and a lot of perspectives I don't see very much these days that were fascinating to look through.

Something I noticed today is that currently, the wiki is down. Trying to link someone to a specific page was hellish, since the Web Archive has only a partial mirror of it, with many things missing and hyperlinks between pages utterly broken.

Given the lack of status on this project (just going off the github, as the actual wiki pages regarding remodelling are down too) for a few years, would it be too much to ask if the full site pre-remodelling (or maybe just pre-read-only) was made available on the Web Archive? At least then, even if it is tedious to remodel it, someone else might be able to finish the effort, or at least view it as it was in the past.

That too would take a lot of effort, but this is a significant piece of computing history (over 25 years of discussion!) that at best, should get to live on, but at least, deserves to be preserved for the future. I am almost certain the kind folks at ArchiveTeam would be willing to help you with this, or help archive it on your behalf, given access to the files.

Regardless, thanks for your time in reading this, and the considerable effort you've put into this website!

@kluvin
Copy link

kluvin commented May 3, 2021

@ssimontis @AlexandriaOL @DaveEveritt

I have made a crude transformation of the pages to Markdown, of which ~90% is good, with work left to do. They are hosted at https://wiki.kluv.in---and the repo is at https://gitlab.com/kluvin/wiiki. The current efforts is to make it writable with git-style versioning. With many paths to choose, and lots too much to do, I would appreciate any input on the what-to-do and things-to-do.

@WardCunningham
Copy link
Owner

I discourage clones of this content and would appreciate you taking down these sites.

@AlexandriaOL
Copy link

That seems like rather a weird response given that this repository seems to have no commits or work done on it for 7 months. Especially since the current intent seems to be that the content be federated -- surely the entire point of federation is that clones of the content remain accessible on other people's nodes? I haven't seen a complaint raised against the Chinese c2 wiki node, which appears to host a complete clone of the content and at the moment is the only updated source of this wiki. (You can correct me if that's wrong, and personally I can't find a reference to it now, as I'm on another computer -- I do remember you recommending it or linking to it, but I can't find that either at the present time so you'll have to take my word for it 😅).

I can understand you feeling protective of this project! But as-is many static wiki pages are both not properly archived by archive.is or archive.org, and many of them are missing from the current deployment of the site -- which means that if there is no further work on the website planned, those pages will remain inaccessible to readers.

Would you not rather that the site remain readable and archivable?

With regards to user concerns and accessibility of the federated version of the wiki, it seems several orders of magnitude more difficult to browse -- for example, your personal federated wiki has these pages, the bottom bar of which list 750 pages as available -- but there's no clear way to access or view them. The coloured squares for each wiki node is confusing, as it requires one to mouseover a square to see where it leads, unlike the old format where one simply read the link.

Probably a separate concern, and I'm willing to split it into a new issue, but, what is the best way to interact and view the wiki content as-is?

@WardCunningham
Copy link
Owner

Understand, c2 wiki is an accident in time, a collision of new technology and authors of good will. Both have passed.

We ran a project with the computer science department at Portland State University last year looking to provide a fresh index to the now archival work. Many parameters of this work were negotiated, mostly to protect the interests of the original authors. The pandemic interfered with the completion of this work but the parameters remain.

@WardCunningham
Copy link
Owner

Perhaps I should explain why wiki worked.

I wrote a program in a weekend and then spent two hours a day for the next five years curating the content it held. For another five years a collection of people did the same work with love for what was there. But that was the end. A third cohort of curators did not appear. Content suffered. I had visualizations. I could see it decay. That is what I mean when I say that the those of good will have passed. A security engineer has compared the open internet to the summer of love. It was neat while it was happening but it is over.

Software Patterns, Object Design and Agile Methods were pioneered in c2 wiki. We daily use words that were coined there. But it is no longer the goto reference for any of these things. If anyone thinks another weekend of work will breath new life into these topics they are fooling themselves. But then, how would they know? The real work was invisible.

I now spend six hours a week in video calls with folks seriously tackling world problems where federated wiki plays a supporting role. Federated wiki did not work for c2 wiki content in any meaningful way. It could be a design mismatch but more likely patterns, objects and agile are just old news.

@btrower
Copy link

btrower commented May 7, 2021 via email

@btrower
Copy link

btrower commented May 7, 2021 via email

@WardCunningham
Copy link
Owner

WardCunningham commented May 7, 2021

@btrower is kind to me. Thank you.

This repo would benefit from a "how to contribute" page. Without it the repo is a bit of an attractive nuisance that traps unsuspecting volunteers. I'm sorry. Progress on the remodel has been much slower and is more complicated than expected. They are issues not easily summarized in a todo page.

@kluvin
Copy link

kluvin commented May 7, 2021

In speaking of experience I was not yet born when the Ward's Wiki appeared, and I only heard about it a year after it went read-only. I started working on my piece shortly thereafter. Never having been there for the golden age, I got to look at the remnants of something that was, and I can only imagine the vast work that went into creating and curating it.

I am saddened that you discourage clones and derivative work, seeing that the intrinsic value of Wiki is namely that of sharing. It seems to me that, whatever the future of Wiki is, the artifact that is today remains the first massively collaborative piece of writing; by all means a contemporary work of art, a work that will influence any bypassers far after its disappearance. However, as @btrower says, it is much more valuable kept alive. As Ward says Wiki does not have much value anymore as a reference, its value is ultimately as a historical artifact of not just what used to be, but also as a first of many greats. Nevertheless, it can be so much more.

The work I wanted to do is preservation. Transforming the markup which not standardized, and the output which is also not standardized, to standard forms. The raw markup was rendered to HTML by the JS source at wiki.c2 and piped into pandoc to create Markdown. Providing the opportunity to interface with anything that can work with anything in the pandoc ecosystem. Regular expressions was liberally used to fix structural differences between my output and the target. The website, or clone, was primarily a debugging tool and a proof-of-concept. Finding an audience would be a useful side effect. It may have been part of landing me my first job. It has provided tons of value to me, and it has been fulfilling to work on something that I feel may help someone. Perhaps it has more than served its purpose? At least for me, it has done well.

That said, I will take down the pages if that is your say, although I would like to appreciate the reason why. However, I would like to leave the code up, in hope that it may be useful to someone, and I will continue to work on the federated editing aspects of it---which is inspired by the promise of the Federated Wiki that I have tried many times to figure but always come out short-handed from. I would like to learn, if you have any advice. It always seemed tempting to pop in to one of your Zoom discussions.


The recent developments here leaves me greatly encouraged. Any work done well deserves a second chance.

So imagine that these guys are thinking this way for a few years. Pretty soon they would have a collection of solutions. Now imagine them using their solutions in their work for a few more years, and discarding the ones that are too hard or don't always produce results. Well, that approach just about defines pragmatic. Now imagine them taking a year or two more to write their solutions down. You might think, That information would be a gold mine. And you would be right.

  • Ward Cunningham, foreword to The Pragmatic Programmer

By said definition---and prior context which I did not include for brevity---I would argue we seem to be sitting upon a gold mine ourselves. This one far greater. Most of all it is a staple of building the airplane while it's flying, that idea had such a profound significance it coined a word---a feat not to be underestimated.

While the idea was that of a weekends work, the later maintenance efforts that you have done is the defining achievement and it no doubt was a large factor of the Wiki's success. We are all indebted to you, your efforts, and your ideas.

I wish you all the best in your future endeavors.
Martin

PS. Please write a book sometime, I would love to read it.

@AlexandriaOL
Copy link

AlexandriaOL commented May 8, 2021

Ward has freely contributed to the community at large for more than a
quarter of a century. Standing back for seven months may seem like a long
time to some, but to older people like me it's not a big deal. I still owe
an email to rms from seven years ago. He'll answer as he does when I reply
and not mention the time at all.

Delay is a thing in our world.
[...]
Everybody needs to go easy on Ward. He has been carrying the standard for a
very, very long time. If it gets too heavy he should be able to put it down
for a while without getting a lot of flak. A lesser person than Ward would
have walked long ago.

Yes, that's true. I hope you will see my impatience as one out of concern
and love for the wiki, rather than as a nuisance, and I see now that my tone
was extremely harsh -- my apologies, it was not intended!

C2 is an ancient tree from which the seeds of things like Wikipedia came.
If nothing else, it is important historically to give an idea of the ethos
of a community that informed much of the world we live in. I really want to
keep it. It would be valuable as a static artifact, but I think it would be
much, much more valuable as a living tree.

Of course! But that static artifact is also valuable, in case the living tree
dies in some way, we still have that artifact. Likewise, at the moment there
are a lot of missing pages in the static wiki (and federated wiki, as far as
I can tell? It's difficult for me to navigate), and I believe that those pages
deserve to be preserved in some way.

I'm that at work on this will continue, but I disagree with this:

Software Patterns, Object Design and Agile Methods were pioneered in c2
wiki. We daily use words that were coined there. But it is no longer the goto
reference for any of these things. If anyone thinks another weekend of work
will breath new life into these topics they are fooling themselves.

Personally, c2 is and has been my personal reference for these concepts for
over a decade, it's one of the ways I learned on them as a much younger,
and immature programmer -- and it's one of the ways I recommend other
people learn of them.

Most of the 'content' that you can learn about design patterns from these
days, are nowhere near as rich in content. Oftentimes I would hear the
name of a pattern and while I would learn about that pattern, and maybe a
smattering of usecases, it was always inside a structured learning format.
Then I found this wiki and not only did the hyperlink system introduce me
to new less-widely known things, but here were people from years ago,
talking about their /personal experience/ with those patterns, having
debates about the merit of them and comparing their notes -- sometimes
aggressively! You can see many different approaches to why this or that has
been favoured (some of which have fallen out of use, but are no less
valuable), short little histories of how these things came about from the
people that were there. While it is of historical value, it is possibly one
of the richest resources to date, because unlike a lot of contemporary ways
to learn about these concepts, it doesn't come with any framing. What
better way to learn about concepts than from the people that were there?
What better way to learn about something than by learning, also, about the
history of it? Than by understanding the context in which it was created
and forged.

For me, personally, and for the people I have linked to c2wiki, it has been
of immense value to read these discussions. There is a huge, massive gap of
knowledge in computer science, and programming. Unlike other fields, we
rarely remember our roots -- we are so, so concerned with pushing forward,
that we often forget to look back, and learn from the experiences of those
before us. It has become so bad now, that most of the new projects I see
posted on programming-specific link aggregators, are just versions of
things done in the past, except often they are worse, because the authors
frequently have no idea the old exists, and so they have no opportunity
to learn of the mistakes of those who came before, and avoid them.

None of this even mentions, how absolutely and incredibly humbling it is to
see exactly the same debates, repeated almost verbatim, except decades
before. It is difficult to express how much of an impact this wiki has had
on my personal knowledge, and the opportunities that reading it gave me to
grow, that I can say with absolute certainty, would not have existed otherwise.

Recently I tried to link someone to some concepts they had never heard of,
the best documentation I could think of, that would give them not only a
reasonably good inspection of the concept from multiple angles, but also a
historical grounding in the concept, was this wiki. Unfortunately, the link itself
was broken, and the Web Archive copies were either dead, or of poor quality.

I'm indebted to you, Ward, for your continued work on maintaining this wiki.
please understand, fear of losing this wonderful resource, something that is
essentially a time capsule full of insight, has been my motivation thusfar.

@btrower
Copy link

btrower commented May 8, 2021 via email

@btrower
Copy link

btrower commented May 8, 2021 via email

@btrower
Copy link

btrower commented May 8, 2021 via email

@kluvin
Copy link

kluvin commented Aug 28, 2021

Hi @btrower, just wondering what the status is on your end these days?

Hope all is going well!

Cheers,
Martin

@btrower
Copy link

btrower commented Sep 10, 2021 via email

@WardCunningham
Copy link
Owner

Here is what would help me.

There are about 1000 pages out of 36,000 pages that have character set problems making them difficult to encode as json. If someone with some character set skills were to volunteer to convert one page then I could construct a tgz file with all available versions of that page from which, with care, a good clean version could be constructed. If your skills are with react or maybe blockchain then it is probably better to wait until this work is done.

@btrower
Copy link

btrower commented Sep 10, 2021 via email

@WardCunningham
Copy link
Owner

Here is one that didn't convert:
SmalltalkBestPracticePatterns

@WardCunningham
Copy link
Owner

WardCunningham commented Sep 10, 2021

Here is the best source I can find in the original key/value format.
http://c2.com/wiki/todo/SmalltalkBestPracticePatterns

This is a text file with alternating key and value separated by an ASCII GS (group separator) character.
Here as an example is a file that has been converted without problem to json encoded in utf-8.

Old format: http://c2.com/wiki/todo/ProjectGalacticGuide
New format: https://proxy.c2.com/wiki/remodel/pages/ProjectGalacticGuide
New wiki page rendered from new format: https://wiki.c2.com/?ProjectGalacticGuide

Is it clear what needs to be done?

@btrower
Copy link

btrower commented Sep 10, 2021 via email

@btrower
Copy link

btrower commented Sep 11, 2021 via email

@WardCunningham
Copy link
Owner

Does a superscript '3' make sense in the context where it was found?

@WardCunningham
Copy link
Owner

I believe a converter will require advanced heuristics as there are probably multiple character sets in a single file. There also needs to be some review of substitutions.

@WardCunningham
Copy link
Owner

Here is a tgz of the sample files I have already posted. I'd be interested to know if you are seeing some distortion of the files when served as plain text without further encoding.
http://c2.com/wiki/todo/todo.tgz

@btrower
Copy link

btrower commented Sep 16, 2021 via email

@WardCunningham
Copy link
Owner

The original wiki was written in perl which supported a key-value datatype that could be initialized from an array of alternating keys and values. Wiki serialized these objects to a single text file by writing keys and values separated by a character internally referred to as $SEP and defined as follows:

my $SEP = "\263";

The serialized page was parsed into keys and values with the perl split function.

split($SEP, $text)

My ingest logic was careful to be sure there were no $SEP characters in submitted text so that I was free to use that character in my serialization logic.

@WardCunningham
Copy link
Owner

Looking back through this repo I found some of the programs I wrote to make my initial conversion.

This program converted $SEP characters to an equally unlikely sequence, <<<<gs>>>>, that would be allowed by ruby.
https://github.com/WardCunningham/remodeling/blob/master/json.c

This program was compiled to produce the executable, a.out, which was invoked in a pipeline by the ruby program that did the bulk conversion.
https://github.com/WardCunningham/remodeling/blob/master/json.rb

The import logic that begins on line 9 would choke on some files. I ignored these and carried on. Today, five years later, we are considering how to make one of these files go through this conversion.

@WardCunningham
Copy link
Owner

Oops. Must have pushed the wrong button. I did not mean to close this issue.

@btrower
Copy link

btrower commented Sep 17, 2021 via email

@WardCunningham
Copy link
Owner

I see Wiki's FindPage sees two versions of this page. The incorrectly capitalized version does exist. This might explain why the "correct" version appears to be defective.

image

@btrower
Copy link

btrower commented Sep 19, 2021 via email

@btrower
Copy link

btrower commented Sep 19, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants