WardCunningham / remodeling

The original wiki rewritten as a single page application
929 stars 99 forks source link

I would like to Contribute to this Effort #51

Open ssimontis opened 3 years ago

ssimontis commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

@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 commented 3 years ago

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

AlexandriaOL commented 3 years ago

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 :sweat_smile:).

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

Ward,

I was recently typing a proposal and listing the various things that I thought supported the notion that I was qualified in terms of experience, skill, and record of accomplishment. I have done so much that I stopped last night to regroup. It was somewhat embarrassing how much is there, and how long it goes back with footprints on the web more than twenty years old. When you are busy accumulating work for so long, you don't realize just how much there is. Similarly, C2 is an enormous work with an incredible amount of value. I don't think I was a major contributor there, and I put a lot of text up there. Having been so close to it for so long, you probably don't actually appreciate the totality of the work there. It's not just volume; it's also its quality. I disagreed with many people there, and over the years, my conviction in various matters increased. History has proved me right in many things. However, even though I was correct, and had my reasons from experience, articulating them on C2 helped me to form coherent arguments to support my point of view. I discovered the issues with C2 that led to the current effort when I went to look up some old stuff I had written there.

There is a saying apropos of the promotion of new things, "the first one in the door gets shot". I knew that the web was going to explode long before it did, and I started a pilot business to put up websites for people. I had no problem selling, because I could demonstrate they earned more than they cost. I also had no problem making enough on the initial sale to pay for the vanilla development. What I had never experienced was the wear and tear, stress, and costs of continuing to maintain everything when it all rested on my shoulders and the web was a constantly moving target. Not many can really appreciate how exhausted and wrung out by this you can get. It is particularly difficult when surrounded by stuff like this, where you have a legacy system with all its warts and obsolete assumptions containing enormous amounts of interlinked data. One of the things that made me smile from time to time on C2 was journeymen programmers declaring their simple solutions to problems that reflected little experience with genuinely large, critical production systems.

Another thing that made me smile, and made me surprised the current effort happened at all: I had a complaint about C2 (a privacy thing). One of the old-timers there said "...keep in mind that the code base is frozen and unlikely to change before the heat-death of the universe, thus precluding any technical means of..."

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.

I know how absolutely soul destroying it is to maintain something like this. One of the many things that are maddening about stuff like this is that you know you can do better, but the task is so enormous due to legacy issues and sheer size. In addition, you get to a point where exhaustion takes all the joy out of it, and just turns it to drudgery -- a software death march where you cannot die, and just carry on like a zombie. Like me, I expect a lot of the people who could really help are occupied with their responsibilities, and let's face it, us older folk with experience herding cats are not too keen on ... herding cats.

I have an aging mother who I am trying to move, and several overdue tasks that I must attend to, but I will make you this pledge: Within eight weeks, I will set aside ten days or more to roll up my sleeves and pitch in to make this a recovery that makes you proud. I don't want to give you permission to give up, but if you do, rest assured that you have already long since acquitted yourself and then some. You can be more than proud of what you have accomplished, and whatever you do going forward is not going to change that.

Whew! That was a long note. I probably was a large contributor to C2 in terms of walls of text. Hang in there, and whatever you do, the world owes you a huge debt of gratitude for the contribution you have made, freely, with an open hand.

Cheers! Bob P.S. It occurs to me that some of the people who see this may not know who Ward Cunningham is: https://en.wikipedia.org/wiki/History_of_wikis Show some respect :)

[Paragraph breaks added -- Ward]

btrower commented 3 years ago

I have set a reminder on my calendar for seven weeks from now to prepare for a week or two of work on this project. Until at least then, I hope everybody can keep it together.

I sent a long note about this, so will not belabor it here, but being the principal on a thing like this is exhausting. It is exhausting in a way that people who have not been there cannot appreciate. It makes one weary in the soul.

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.

I'm sure that there are plenty of hands that can be brought to bear on this -- enough to make the mythical man month a concern. What is really needed is for someone to create a workable plan and break work out into doable pieces.

I, for instance, can write tools like this: http://base64.sourceforge.net/b64.c

That code is in use in hundreds of millions of devices now, so... If a purpose built utility like that will help, I can produce one in a few days and will make a pledge to do so shortly after I have a request. I peek in on this from time to time, but will pay more attention going forward. If someone has general development questions that I can answer, I will pipe up. I've done just about everything related to software development, and might be able to quickly answer questions that puzzle people with less experience. Example: Tabs or Spaces? I am genuinely mystified why anybody would think this is a reasonable debate. The answer is 'Spaces'. Tabs break stuff and Murphy's law rules. If you can't understand that and need another reason: Developers who use spaces make more money than developers who use tabs. Eventually, natural selection will kill off debates like this. Meantime, experienced developers may be able to easily answer questions like that.

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. B.

[Paragraph breaks added -- Ward]

WardCunningham commented 3 years ago

@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 commented 3 years ago

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.

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 commented 3 years ago

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 commented 3 years ago

AlexandriaOL is correct about the value of C2. People are taught in school as if things are cast in stone and everything is all figured out. I liked the Design Patterns book, and it is fine for people like me with lots of experience, but it can't show the story of how we got there. In the case, for instance, of the Singleton pattern, there was a lively discussion in which adherents of the book attempted to defend it when people like me (maybe only me) articulated the criticism that it was bad practice -- essentially formalization of global variable -- which, unbelievably, there are actually people supporting global variables. The discussions involved people with all sorts of different backgrounds, and even when people are off the mark with one thing or another, it's useful to see their rationale even from mistaken notions. Bottom line, C2 is something that should not be left to die. We have to save it. For my money it is vastly preferable if we can revive not just the site, but the community as well. I don't know if this will make sense to people, but I like to reread these discussions even when they resolve and I agree, or even especially when they resolve and I agree. For an old programmer like me, they are like cozy bedtime stories. :) I have another note in progress about next steps that I will finish up and send along shortly . Cheers!

On Sat, May 8, 2021 at 7:05 AM AlexandriaOL @.***> wrote:

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.

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!

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.

I'm actually not very sure how to end this, so I'll just leave it here.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/WardCunningham/remodeling/issues/51#issuecomment-835297663, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEWAV7777CZSJ7F3RUKQU3TMULINANCNFSM4WGCFYKQ .

-- Bob Trower --- From Gmail webmail account. ---

btrower commented 3 years ago

Martin's work to date may be very helpful. I will send a link to a development methodology diagram in my next note. One of the things that is not explicit in it is a treatment of data, which in this case is a significant part of the project. Whatever it is that we do needs to capture back as much of the data as possible. In a situation like this, everybody has to be sympathetic to one another's point of view. I get what everybody is saying. It has been a long time in the works. Ward is right, I think to try to stop a proliferation of projects essentially forking this thing out of existence. Martin is right to just get on with the business of getting something done. AlexandriaOL is not out of line to be impatient so see progress. There are, I expect, a lot of hidden stakeholders that will come out of the woodwork, once something new goes live on C2. I promise to make time in about eight weeks to pitch in, but meantime, since people are impatient to see action, I will talk about first steps.

Cheers!

B.

On Fri, May 7, 2021 at 6:29 PM Martin Kleiven @.***> wrote:

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 https://github.com/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.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/WardCunningham/remodeling/issues/51#issuecomment-834825341, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEWAVYW7JZJV4KRVZNYWHLTMRSVVANCNFSM4WGCFYKQ .

-- Bob Trower --- From Gmail webmail account. ---

btrower commented 3 years ago

My reference to 'herding cats' is basically about this type of stumbling block. Somebody has to steer the ship. I can help train a captain/crew, do grunt work, etc., but coordinating is exhausting. I am too old. This is a young man's game. Anyway, when I come to work on this, I will sort out what I can. I am familiar with the rodeo. I should be able to help wherever needed. Real software development is still a messy, labor intensive business. You need goals and a plan, but you also need to recognize that plans are imperfect, things change, and people make mistakes. This is a graphic on development methodology that breaks various tasks into a logical flow, and iterations. https://upload.wikimedia.org/wikipedia/commons/8/8e/Received_Development_Methodology.jpg I would suggest that things be framed from the beginning, so start at 'inspire'. Inspire is the original impetus for the system that will be built. Many things are just a programmer scratching an itch, an executive wanting one-up others in the C-suite, something to demonstrate technology, whatever. There is a reason it is being done. We are actually struggling a bit already at this stage. There is not a 100 percent aggressive buy-in to even moving forward from the first diamond. It has to have enough of a drive behind it to get going properly or it just ends up retired. I'll go first: Need:I would like to see a new version of C2.com that restores all of the material I have read and written there. Opportunity: There was an existing system, that although long in the tooth, was good enough to attract programmers to discuss development issues. The data is valuable. Problem/Opportunity:I believe there are some legacy issues that make the system too difficult to maintain. This is the problem with the old system that needs to be addressed. The opportunity is that we can both recover the material and have a new system that has wiki's advantages without issues. Constraint:It needs to run somewhere. C2.com is the obvious choice, but it may not be feasible. Need to clarify this. Need:This time it has to be maintainable with minimum effort. That means backup, maintenance, updates, and rollbacks, system rollover, etc all need to be addressed with a protocol and automated. If you look at the diagram, one of the destinations is to cancel or retire a system. Ward has been leaning toward that direction, and I don't blame him. This type of thing is a heavy weight to carry alone. People need to be gentle...

Test driven development is painful, but it is the only way to ensure reasonable coverage and working code. Below is a link to a program that I built later than the base64 code and automates the manual testing. It is a simple(ish) utility that does everything I like to see in a utility like that. It is probably a good sign that code derived from it is in production elsewhere. It was released as version 0.00.00B(eta) in 2005, and that is the last release because it worked for the purposes it was built http://toogles.sourceforge.net/md5.php?myname=md5 The specific thing that Ward mentions about "how to contribute" should involve a Build Manager who supervises the 'Build' portion of things. That person should co-ordinate how people pull down from GitHub, and push back. The same people can do multiple things, but we need 'roles': Stakeholders - Ward is one. I am another. The broader community needs a rep. Project Manager -- Ugh. This requires somebody with the energy to start things up, keep everything moving, manage the rules, manage disagreement, etc. It's exhausting just thinking about it. I will help somebody skill up if necessary, though it would be nice if we had somebody experienced at the start. Inspiration Manager -- on an ongoing basis we need to refine rationale/justification, and be prepared to pull the plug to cancel/retire. Design Manager/Designers -- I think everybody should be involved in design to some extent, but the process needs to be managed by somebody. Designs cannot ever be perfect. We need somebody to shepherd a preliminary design forward so the rest of the pipeline is filled. Creation Manager, Manager of development -- somebody needs to understand the design well enough to create units, subsystems, and an overall system architecture, and supervise building and Unit test. Build Manager -- this is one of the thankless tasks that is crucial, and like being a DBA difficult enough to demand high intelligence, but boring and repetitive day to day. Somebody needs to co-ordinate building the system form sources on an ongoing basis, and prepping releases. Test Manager -- even perfect code that snaps together at Unit and String will not be perfect at the system build level. Somebody needs to design and manage system test, UAT, and signing off on a package for release. Release Manager -- If all goes well, this goes from test to pilot to deployment. Typically, all does not go well. Every aspect of the system is likely to revert all the way back to the beginning at some point. The release manager has to see a working pilot through the fine tuning necessary to deploy into production. The aim of this type of protocol is to see all the way through to deployment of an imperfect beast that will feed back into the system for subsequent releases to correct error, add (absolutely necessary) features, and to vet the system for viability. It is, sadly, more often than not on big systems, that this immediately goes all the way back to cancellation. Hopefully that will not be the case here.

I have a lot of experience managing teams through processes like this, so I can help get somebody up to speed. I have done or supervised all of the tasks here, but I am weak on build management, which is a vital part of a system that involves a lot of people. However, although I am not well versed in the details of managing integration of code like Linus Torvalds, I am familiar with the overall process and what it needs to do. I have set up revision control (svn) for teams in the past, but I'm beyond rusty. I can help somebody come up to speed, but it would be a blessing if I could duck this...

If people are keen to get moving, I suggest they just get on with it. Coordinate over the mailing list to determine who will take responsibility for what, and get going.

The protocol in that drawing is designed by me, and that is the protocol that matches development efforts that I have seen succeed. Even when it was just a couple of us, the build system was automated so that it built from sources and ran its system test on its own. I have a nice small working example of something that manages a database and builds ground up from sources with two keystrokes. I can provide some info on that if people need it.

I will pitch in when I can and will roll up my sleeves for real in about eight weeks. I will monitor the mailing list and answer questions as I am able.

When called upon to manage new teams, I used to give a little 'lunch and learn' session on "Bob's 30 minute guide to management". One of the important take-aways from this is that everybody manages up, down, sideways, and internally. Everybody on a team needs to put their manager hat on, and everybody needs to have the skill to dovetail into a team as needed. We are all in this together, and success is success however we get it, and the corollary is, for me, not acceptable.

I will respond to requests as I am able in the coming weeks, and I will take whatever role I can to help when I come on board full time for a bit.

This is work, and it's not always going to be fun. However I think it can be an excellent learning experience for everyone, me included, and if we can get the right people we can produce something of which we can be proud.

Be kind to one another.

Cheers!

Bob

On Fri, May 7, 2021 at 2:16 PM Ward Cunningham @.***> wrote:

@btrower https://github.com/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 not easily summarized in a todo page.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/WardCunningham/remodeling/issues/51#issuecomment-834668755, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEWAV6SOKWNQ2TQLW227ZDTMQVBJANCNFSM4WGCFYKQ .

-- Bob Trower --- From Gmail webmail account. ---

kluvin commented 3 years ago

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

Hope all is going well!

Cheers, Martin

btrower commented 3 years ago

Sorry! Meant to get back on this. We had an emergency here at my house and digging out has been taxing. It happened while my office was being redone so I was offline. Just getting back online.

All is well, so not to worry. I have just been sidelined.

Have been corresponding with a couple of people who might be able to help.

TBH, I'm a little fuzzy about action items here. I am hoping that someone else more acquainted with the status of things can help me ramp up.

I am concerned that Ward will not be too taxed by whatever is done.

I am back online now, so will be attending to messages a bit more. We have gone from emergency status here to cleanup which is better, but I'm not quite free yet.

Cheers!

Bob

On Sat, Aug 28, 2021 at 12:29 PM Martin Kleiven @.***> wrote:

Hi @btrower https://github.com/btrower, just wondering what the status is on your end these days?

Hope all is going well!

Cheers, Martin

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/WardCunningham/remodeling/issues/51#issuecomment-907650214, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEWAV4PRERGX7AZ2JYXUQ3T7EFGHANCNFSM4WGCFYKQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Bob Trower --- From Gmail webmail account. ---

WardCunningham commented 3 years ago

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 commented 3 years ago

I wrote this: http://base64.sourceforge.net/b64.c

Somewhat different problem, but I might be able to help.

Where's a representative page?

Cheers!

On Thu, Sep 9, 2021 at 10:22 PM Ward Cunningham @.***> wrote:

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.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/WardCunningham/remodeling/issues/51#issuecomment-916580796, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEWAV7R26564BWF7NWUPL3UBFTW5ANCNFSM4WGCFYKQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Bob Trower --- From Gmail webmail account. ---

WardCunningham commented 3 years ago

Here is one that didn't convert: SmalltalkBestPracticePatterns

WardCunningham commented 3 years ago

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 commented 3 years ago

I’m just on my phone now, but this looks like what I was asking for. Thanks.

Bob Trower -- from mobile phone

On Sep 9, 2021, at 11:54 PM, Ward Cunningham @.***> wrote:

 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: http://wiki.c2.com/?ProjectGalacticGuide

Is it clear what needs to be done?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

btrower commented 3 years ago

Ward, I used curl to download the references you gave me, however I am not certain between your server and my browser whether changes were made to the file on the way. Can you email me directly @.***) an archive of enough assorted sample raw documents as they reside in binary on your file system?

There is a two byte code 0xB3 (dec 179) that is a superscript '3' in extended ASCII, but with the default old IBM PC code page 437, using the Alt key to enter the character causes it to be re-interpreted as a pipe ('|') character and translated to extended ASCII 166 as some artifact of the cut and paste function at the command line.

I can write a small program to rip through the files translating them into whatever binary representation is needed, but I need enough input samples to determine what translation is needed. If it is just old-school 256 bit coding, it's just a simple table substitution. I don't mind building it.

Cheers!

B.

On Thu, Sep 9, 2021 at 11:54 PM Ward Cunningham @.***> wrote:

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: http://wiki.c2.com/?ProjectGalacticGuide

Is it clear what needs to be done?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/WardCunningham/remodeling/issues/51#issuecomment-916609562, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEWAVY564NYQAXYPFZ5S5DUBF6P3ANCNFSM4WGCFYKQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Bob Trower --- From Gmail webmail account. ---

WardCunningham commented 3 years ago

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

WardCunningham commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

Ward,

As far as I can tell, they are the same with respect to the superscript/pipe character. I am going to spend the day writing code to examine it better as a binary file to ensure that it is just the one character, and the file is as it appears to be.

I could really use a lot more sample files to ensure that I am seeing the whole picture.

I will have further questions about this. It would appear that the superscript 3 is actually supposed to be a pipe character acting as a field separator. The pipe character ('|') is what we typically used in raw text data files when loading into Sybase databases.

This below: date³June 19, 2010³ip³87.232.40.53³host³dsl-040-053.cust.imagine.ie³copy³Project Galactic Guide [text] Parses to this: "date","June 19, 2010","ip","87.232.40.53","host"," dsl-040-053.cust.imagine.ie","copy","Project Galactic Guide [text]" That looks to me to be name value pairs: "date","June 19, 2010", "ip","87.232.40.53", "host","dsl-040-053.cust.imagine.ie", "copy","Project Galactic Guide [text]"

If the above is all there is, the 'syntax' of the ('|') is easy enough to parse. The semantics of the resulting file are not clear to me. I need more samples and context.

The bottom of the file /SmalltalkBestPracticePatterns/ has this after interpreting: CategorySmalltalk, CategoryGroupsOfPatterns", "agent","", "rev","50", "code","567", "r1","http://www.prenhall.com/allbooks/ptr_013476904X.html"

Writing a parser for this could be relatively trivial.

Can somebody supply or point me to a source for more info/raw files?

Bob

On Wed, Sep 15, 2021 at 8:08 PM Ward Cunningham @.***> wrote:

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

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/WardCunningham/remodeling/issues/51#issuecomment-920474540, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEWAV6C6MFVYGPW373E453UCEYO3ANCNFSM4WGCFYKQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Bob Trower --- From Gmail webmail account. ---

WardCunningham commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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

btrower commented 2 years ago

Line 7 in json.c looks for octal 0263 as the separator character. That is ASC(179) (263)8 = (179)10, which on the de\fault old IBM OEM (code page 437) is the pipe character ('|') if (ch==0263) { If there is a match, it outputs the output separator string ("<<<<g$>>>>"), otherwise it outputs the character (ch here).

If the files were converted to plain ASCII (which only goes from 0-127), the pipe character is 124 decimal.

I can rewrite the c file properly so we can see what causes ruby to choke and line 9. If I'm going to do that, maybe it makes sense to dispense with the ruby file and just do it all in C. I don't mind coding it.

The only oddball thing I see in the files I have been given is the extended ascii pipe character from code page 437. It's easy enough for me to detect or alter that.

If the only issue here is to get everything into json, and I can get enough of the source data files to build and test, I can do the code to make it so it doesn't choke even if I have to do some hacks to detect and fix other errors.

To be honest, I am not even 100% clear what is wrong and what 'right' looks like. If it's just targeting json files I think it would be easiest if I just hand code a translator.

Let me know. I am at my desk and can spend time on this on Saturday. I am out of town Sunday, but can resume Monday/Tuesday.

Cheers!

Bob

On Fri, Sep 17, 2021 at 12:57 PM Ward Cunningham @.***> wrote:

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, <<<>>>, 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.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/WardCunningham/remodeling/issues/51#issuecomment-921944265, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEWAVYMDKKIWZPSVY7GBHTUCNXQDANCNFSM4WGCFYKQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Bob Trower --- From Gmail webmail account. ---

WardCunningham commented 2 years ago

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 commented 2 years ago

What do the two sources look like?

On Fri, Sep 17, 2021 at 11:03 PM Ward Cunningham @.***> wrote:

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: image] https://user-images.githubusercontent.com/12127/133870360-b9b1d5f7-a935-49e4-9d12-93c71d9730a8.png

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/WardCunningham/remodeling/issues/51#issuecomment-922168223, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEWAV2K3GUVUANNMJFBPUTUCP6RPANCNFSM4WGCFYKQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Bob Trower --- From Gmail webmail account. ---

btrower commented 2 years ago

The file (SmalltalkBestPracticePatterns) that you sent me is a raw text file that is interpreted as 'ANSI' and is essentially dependent upon the code page in use on the system. The usual default for the extended ASCII, Windows-1252/(CP-1252) appears to be 179(10) = superscript 3, so that is what is showing up in things defaulting to that code page. However, the old IBM code page 437 was likely the default on older systems and that has 179(10) = '|' (the pipe character). I am not sure why it ended up like this because the ordinary 7 bit set has the pipe character at 124(10), and so Windows-1252 has it showing up twice.

Anyway, without seeing more files all I have is that the pipe character is showing up as 0263(8)/179(10), and since the file you sent is a straight 8 bit text file and the code you sent already deals with the existing byte there can't be an issue there with respect to the code page because it is being read as a binary file. Perhaps in the pipe the ruby code is interpreting it as a different code page, but that should not make a difference because the byte in question is being translated to straight ASCII-7 characters. I can write a small translator to swap the 179(1) out to a 124(10) and flag/blank/replace any extended ASCII characters if you want to, but to the extent you have the ruby stuff choking I don't think the problem is there.

I can replace the ruby code with C code if you wish. Vanilla ANSI-C code would be cleaner, I think, but if you are already running with ruby elsewhere it might not be worth the time.

It is not clear to me from looking at the website how you go from the raw file to the page. I don't mind helping there, but I would need a little more info.

Can you give me some more info as to the environment this is running in? Is it possible for me to set the existing system up here locally on my machine?

I attempted to pull down pages from the site with curl, but it gives an error. I also attempted to pull them down using Chrome in headless mode, but got the same error:

Trouble Encountered names.txt can't fetch document

See github

The page sources in the browser for the working version of the references you gave and the non-working version show up as byte for byte identical for both URLs:

https://wiki.c2.com/?SmallTalkBestPracticePatterns https://wiki.c2.com/?SmalltalkBestPracticePatterns

If I understood you correctly, you were saying that pages exist for both the 'talk' and the 'Talk' versions of the URL. Are those sources also identical?

Sorry this is a bit scattered. It's late...Note that I will be out of town tomorrow, but will be back at it on Monday.

Cheers!

On Fri, Sep 17, 2021 at 12:57 PM Ward Cunningham @.***> wrote:

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, <<<>>>, 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.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/WardCunningham/remodeling/issues/51#issuecomment-921944265, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEWAVYMDKKIWZPSVY7GBHTUCNXQDANCNFSM4WGCFYKQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Bob Trower --- From Gmail webmail account. ---