comp.lang.ada
 help / color / mirror / Atom feed
* Would someone help a struggling ADA student
@ 1998-10-02  0:00 Steve
  1998-10-05  0:00 ` Michael F Brenner
  1998-10-05  0:00 ` Do-While Jones
  0 siblings, 2 replies; 18+ messages in thread
From: Steve @ 1998-10-02  0:00 UTC (permalink / raw)


I have to write an ADA program that plays Battleship.  
I have written the basics and it will ramdomly select 
"Hit" locations.  I now must develop a strategy and write
that code.  I would like for the program to be able to "learn"
as it goes.  Our programs will be run against other students in 
the class and our grade will be based on our win-lose record.  
Also, it will be run against the professor's which has never been 
beaten.  Each program will play each other 20,000x.  
I thought of setting up an array and assigning each grid in the 10x10
board a value then changing each value depending on the outcome of 
each shot. Do you have any better suggestions?  How should I go about 
getting the program to "learn" (other's stragedy) as it plays?
Steve




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-02  0:00 Steve
  1998-10-05  0:00 ` Michael F Brenner
@ 1998-10-05  0:00 ` Do-While Jones
  1998-10-05  0:00   ` dewarr
  1 sibling, 1 reply; 18+ messages in thread
From: Do-While Jones @ 1998-10-05  0:00 UTC (permalink / raw)


In article <6v3c4q$890$1@news.campus.mci.net>,
Steve  <DMSR1999@hotmail.com> wrote:
>I have to write an ADA program that plays Battleship.  
>I have written the basics and it will ramdomly select 
>"Hit" locations.  I now must develop a strategy and write
>that code.  I would like for the program to be able to "learn"
>as it goes.  Our programs will be run against other students in 
>the class and our grade will be based on our win-lose record.  
>Also, it will be run against the professor's which has never been 
>beaten.  Each program will play each other 20,000x.  
>I thought of setting up an array and assigning each grid in the 10x10
>board a value then changing each value depending on the outcome of 
>each shot. Do you have any better suggestions?  How should I go about 
>getting the program to "learn" (other's stragedy) as it plays?
>Steve

This is one of my pet peeves.  Is Steve taking a course in Ada
programming, or is it a course in algorithm development, or a course in
artificial intelligence?  It seems that Steve will be graded on how well
he can develop an algorithm to solve the Battleship problem.  There
doesn't seem to be any reward for program clarity, proper use of Ada
features, etc.

It would be more appropriate for the professor to give the students a
narrative description of a battelship search algorithm and tell the
students to write an Ada program that implements that algorithm.  The
student should be graded on how well he wrote the program, not how good
the algorithm is.

My comments are based on the assumption that Steve is taking an
introductory Ada programming course.  If Steve is taking "Creative Problem
Solving" or "Artifical Intelligence", and if the course has a prerequisite
of at least one Ada programming course, then I have no objections. 

My fear is that Steve will spend more effort trying to figure out a
Battleship algorithm than the syntax of an Ada loop.  I'm afraid Steve
will get the idea that it is hard to program in Ada because it is hard to
figure out how to write a program that learns the game strategy on the
fly.

Do-While Jones

            +--------------------------------+
            |    Know                 Ada    |
            |        [Ada's Portrait]        |
            |    Will              Travel    |
            | wire do_while@ridgecrest.ca.us |
            |   www.ridgenet.net/~do_while   |
            +--------------------------------+





^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-05  0:00 ` Do-While Jones
@ 1998-10-05  0:00   ` dewarr
  1998-10-06  0:00     ` dennison
  1998-10-17  0:00     ` Ehud Lamm
  0 siblings, 2 replies; 18+ messages in thread
From: dewarr @ 1998-10-05  0:00 UTC (permalink / raw)


In article <6vaj7d$nht$1@owens.ridgecrest.ca.us>,
  do_while@ridgecrest.ca.us (Do-While Jones) wrote:


> My comments are based on the assumption that Steve is taking an
> introductory Ada programming course.  If Steve is taking "Creative Problem
> Solving" or "Artifical Intelligence", and if the course has a prerequisite
> of at least one Ada programming course, then I have no objections.
>
> My fear is that Steve will spend more effort trying to figure out a
> Battleship algorithm than the syntax of an Ada loop.  I'm afraid Steve
> will get the idea that it is hard to program in Ada because it is hard to
> figure out how to write a program that learns the game strategy on the
> fly.


Not to mention learning what programming is all about, e.g. abstraction
models, design approaches, separation of specs and bodies etc.

If indeed this is an algorithms or AI course (the only types of course for
which an assignment like this would be appropriate), then I see no reason to
force students to write in a particular language, since in that context,
language is secondary.

But all kinds of amazing things go on in beginning programming courses :-)

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-02  0:00 Steve
@ 1998-10-05  0:00 ` Michael F Brenner
  1998-10-05  0:00 ` Do-While Jones
  1 sibling, 0 replies; 18+ messages in thread
From: Michael F Brenner @ 1998-10-05  0:00 UTC (permalink / raw)


Steve, when your battleship game works, I will have some ideas
about how to beat the unbeatable professor's game. The 10x10
resolution should be parameterized, of course, in case higher
resolutions are needed, so the code does not have to be changed
just because a constant changes.

Mike 




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-05  0:00   ` dewarr
@ 1998-10-06  0:00     ` dennison
  1998-10-06  0:00       ` Robert A Duff
  1998-10-06  0:00       ` Michael F Brenner
  1998-10-17  0:00     ` Ehud Lamm
  1 sibling, 2 replies; 18+ messages in thread
From: dennison @ 1998-10-06  0:00 UTC (permalink / raw)


In article <6vatvr$329$1@nnrp1.dejanews.com>,
  dewarr@my-dejanews.com wrote:

> If indeed this is an algorithms or AI course (the only types of course for
> which an assignment like this would be appropriate), then I see no reason to
> force students to write in a particular language, since in that context,
> language is secondary.

...except that the programs have to be linked together to play each other. I
suppose that could be done with pipes or shared memory or something, but the
easiest way would be to compile and link them into one exectuable. In that
case it would be easiest on all concerned if it were done in one langauge.

This sounds an awful lot like my final AI assignment. The game was a sort of
hide-and-seek variant, but otherwise its the same assignment. Of course since
the implementation language was Lisp, just getting a somewhat working program
earned you a "C". :-)

Personally I see nothing wrong with professors requiring a certain language
to be used in courses, as long as its not always the same langauge for every
class. I'm very glad I had to learn lisp, because it opened me up to new ways
of thinking about algorithms. Concurrent C was an eye-opener too.

--
T.E.D.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-06  0:00     ` dennison
  1998-10-06  0:00       ` Robert A Duff
@ 1998-10-06  0:00       ` Michael F Brenner
  1998-10-07  0:00         ` dennison
  1 sibling, 1 reply; 18+ messages in thread
From: Michael F Brenner @ 1998-10-06  0:00 UTC (permalink / raw)


>...except that the programs have to be linked together to play each other. I
>suppose that could be done with pipes or shared memory or something, but the
>easiest way would be to compile and link them into one exectuable. In that
>case it would be easiest on all concerned if it were done in one langauge.

Why not use the distribution annex?





^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-06  0:00     ` dennison
@ 1998-10-06  0:00       ` Robert A Duff
  1998-10-06  0:00         ` Martin C. Carlisle
  1998-10-07  0:00         ` dennison
  1998-10-06  0:00       ` Michael F Brenner
  1 sibling, 2 replies; 18+ messages in thread
From: Robert A Duff @ 1998-10-06  0:00 UTC (permalink / raw)


dennison@telepath.com writes:

> ...except that the programs have to be linked together to play each other. I
> suppose that could be done with pipes or shared memory or something, but the
> easiest way would be to compile and link them into one exectuable. ...

And does my code "win" if it causes the opponent's code to raise an
unhandled exception?

Or how about a more suble way to cheat?  My code pokes the output of the
opponent's code in such a way as to make it do bad moves.

;-) ;-)

- Bob
-- 
Change robert to bob to get my real email address.  Sorry.




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-06  0:00       ` Robert A Duff
@ 1998-10-06  0:00         ` Martin C. Carlisle
  1998-10-16  0:00           ` Robert A Duff
  1998-10-07  0:00         ` dennison
  1 sibling, 1 reply; 18+ messages in thread
From: Martin C. Carlisle @ 1998-10-06  0:00 UTC (permalink / raw)


In article <wccvhlx9yrg.fsf@world.std.com>,
Robert A Duff  <bobduff@world.std.com> wrote:
>dennison@telepath.com writes:
>And does my code "win" if it causes the opponent's code to raise an
>unhandled exception?
>
>Or how about a more suble way to cheat?  My code pokes the output of the
>opponent's code in such a way as to make it do bad moves.
>
>;-) ;-)

We actually do this at the Air Force Academy (the student who wrote is not 
one of ours).  Two points:

1) the contest is for extra credit only.  We require the students to 
implement random moves for full credit.  (This solves the AI in an intro
course issue, and yet provides some interest for those who want to go
above and beyond).

2) We provide an interface that your move procedure must follow (board is
in parameter, move is out parameter).  We then cut and paste their
procedures into a tournament program.  If you raise an unhandled exception,
the tournament code catches it and you lose!

--Martin


-- 
Martin C. Carlisle, Computer Science, US Air Force Academy
mcc@cs.usafa.af.mil, http://www.usafa.af.mil/dfcs/bios/carlisle.html
DISCLAIMER:  This content in no way reflects the opinions, standard or 
policy of the US Air Force Academy or the United States Government.




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-06  0:00       ` Michael F Brenner
@ 1998-10-07  0:00         ` dennison
  0 siblings, 0 replies; 18+ messages in thread
From: dennison @ 1998-10-07  0:00 UTC (permalink / raw)


In article <6ve1db$20i@top.mitre.org>,
  mfb@mbunix.mitre.org (Michael F Brenner) wrote:
> >...except that the programs have to be linked together to play each other. I
> >suppose that could be done with pipes or shared memory or something, but the
> >easiest way would be to compile and link them into one exectuable. In that
> >case it would be easiest on all concerned if it were done in one langauge.
>
> Why not use the distribution annex?

I know implementatations for that exist, but I'm using my fifth Ada(95)
compiler in a row that doesn't support that on my platform.

--
T.E.D.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-06  0:00       ` Robert A Duff
  1998-10-06  0:00         ` Martin C. Carlisle
@ 1998-10-07  0:00         ` dennison
  1 sibling, 0 replies; 18+ messages in thread
From: dennison @ 1998-10-07  0:00 UTC (permalink / raw)


In article <wccvhlx9yrg.fsf@world.std.com>,
  Robert A Duff <bobduff@world.std.com> wrote:
> dennison@telepath.com writes:
>
> > ...except that the programs have to be linked together to play each other. I
> > suppose that could be done with pipes or shared memory or something, but the
> > easiest way would be to compile and link them into one exectuable. ...
>
> And does my code "win" if it causes the opponent's code to raise an
> unhandled exception?
>
> Or how about a more suble way to cheat?  My code pokes the output of the
> opponent's code in such a way as to make it do bad moves.

Hmm. Sort of Battleship meets corewars....
I suppose you could allocate up all free heap memory and hope his code bombs.
:-)

Personnaly I'd consider "cheating" the same way a human player would...by
moving the ships around. In fact, I'd be willing to bet that the instructor's
"undefeated" algorithm does just that.

One important real world lesson students can learn from this...its not
cheating if the system specification lets you do it. :-)

--
T.E.D.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
@ 1998-10-08  0:00 Steve
  1998-10-08  0:00 ` dennison
  0 siblings, 1 reply; 18+ messages in thread
From: Steve @ 1998-10-08  0:00 UTC (permalink / raw)


I have code written that will compete two players (whether two human, 
two computer, or computer vs human).  Unfortunately the code I have 
written is for very basic play.  The code I need will have to take my 
stradegy and play other's stradegy.  My basic code will only fire random
shots at the 10x10 board.  I have my stradegy but I'm not sure how to 
write it in ADA.  I am going to set up an array  and use a few nested 
loops but I haven't done that in a long time.  If I were to send you the 
code that I already have, could you tell me where to go next.  Any 
advise would be greatly appreciated. 





^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-08  0:00 Would someone help a struggling ADA student Steve
@ 1998-10-08  0:00 ` dennison
  0 siblings, 0 replies; 18+ messages in thread
From: dennison @ 1998-10-08  0:00 UTC (permalink / raw)


In article <6vii5f$2gn$1@news.campus.mci.net>,
  Steve <DMSR1999@hotmail.com> wrote:
> I have code written that will compete two players (whether two human,
> two computer, or computer vs human).  Unfortunately the code I have
> written is for very basic play.  The code I need will have to take my
> stradegy and play other's stradegy.  My basic code will only fire random
> shots at the 10x10 board.  I have my stradegy but I'm not sure how to
> write it in ADA.  I am going to set up an array  and use a few nested
> loops but I haven't done that in a long time.  If I were to send you the
> code that I already have, could you tell me where to go next.  Any
> advise would be greatly appreciated.

Wow. For help on this level you really ought to go to your instructor. That's
what they get paid for.


--
T.E.D.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
@ 1998-10-08  0:00 Steve
  0 siblings, 0 replies; 18+ messages in thread
From: Steve @ 1998-10-08  0:00 UTC (permalink / raw)


Nevermind

dennison@telepath.com writes: > In article <6vii5f$2gn$1@news.campus.mci.net>,
>   Steve <DMSR1999@hotmail.com> wrote:
> > I have code written that will compete two players (whether two human,
> > two computer, or computer vs human).  Unfortunately the code I have
> > written is for very basic play.  The code I need will have to take my
> > stradegy and play other's stradegy.  My basic code will only fire random
> > shots at the 10x10 board.  I have my stradegy but I'm not sure how to
> > write it in ADA.  I am going to set up an array  and use a few nested
> > loops but I haven't done that in a long time.  If I were to send you the
> > code that I already have, could you tell me where to go next.  Any
> > advise would be greatly appreciated.
> 
> Wow. For help on this level you really ought to go to your instructor. That's
> what they get paid for.
> 
> 
> --
> T.E.D.
> 
> -----------== Posted via Deja News, The Discussion Network ==----------
> http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    





^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-06  0:00         ` Martin C. Carlisle
@ 1998-10-16  0:00           ` Robert A Duff
  1998-10-16  0:00             ` Martin C. Carlisle
  0 siblings, 1 reply; 18+ messages in thread
From: Robert A Duff @ 1998-10-16  0:00 UTC (permalink / raw)


mcc@tyrolia.cs.princeton.edu (Martin C. Carlisle) writes:

> 2) We provide an interface that your move procedure must follow (board is
> in parameter, move is out parameter).  We then cut and paste their
> procedures into a tournament program.  If you raise an unhandled exception,
> the tournament code catches it and you lose!

But if everything's in the same address space, one can cheat.
In-parameter, shmim-parameter.  ;-)  We all know how to evilly write
upon 'in' parameters.  The question is, does that earn an 'A' for
cleverness, or an 'F' for cheating?  ;-) ;-)

- Bob
-- 
Change robert to bob to get my real email address.  Sorry.




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-16  0:00           ` Robert A Duff
@ 1998-10-16  0:00             ` Martin C. Carlisle
  0 siblings, 0 replies; 18+ messages in thread
From: Martin C. Carlisle @ 1998-10-16  0:00 UTC (permalink / raw)


In article <wccr9w9usz7.fsf@world.std.com>,
Robert A Duff  <bobduff@world.std.com> wrote:
>mcc@tyrolia.cs.princeton.edu (Martin C. Carlisle) writes:
>> 2) We provide an interface that your move procedure must follow (board is
>> in parameter, move is out parameter).  We then cut and paste their
>> procedures into a tournament program.  If you raise an unhandled exception,
>> the tournament code catches it and you lose!
>But if everything's in the same address space, one can cheat.
>In-parameter, shmim-parameter.  ;-)  We all know how to evilly write
>upon 'in' parameters.  The question is, does that earn an 'A' for
>cleverness, or an 'F' for cheating?  ;-) ;-)

Gee, I never thought about that.  If someone from my 110 class actually
managed to manipulate the address space, I'd probably be dead from a heart
attack before I ever had to think about what grade to give them.

We do actually read their code though, so I imagine we'd give them an 'A'
sign them up for the major, and pull their program out of the tournament.

--Martin

-- 
Martin C. Carlisle, Computer Science, US Air Force Academy
mcc@cs.usafa.af.mil, http://www.usafa.af.mil/dfcs/bios/carlisle.html
DISCLAIMER:  This content in no way reflects the opinions, standard or 
policy of the US Air Force Academy or the United States Government.




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-05  0:00   ` dewarr
  1998-10-06  0:00     ` dennison
@ 1998-10-17  0:00     ` Ehud Lamm
  1 sibling, 0 replies; 18+ messages in thread
From: Ehud Lamm @ 1998-10-17  0:00 UTC (permalink / raw)


On Mon, 5 Oct 1998 dewarr@my-dejanews.com wrote:

> 
> If indeed this is an algorithms or AI course (the only types of course for
> which an assignment like this would be appropriate), then I see no reason to
> force students to write in a particular language, since in that context,
> language is secondary.
> 

I am afraid I don't completly agree. Theoretically you are right, but in
practice things get more complicated. You learn the niches of the
language, and the special advantages (and disadvantages...) it has, only
from really trying to solve problems on your own. I don't think exercises
this complicated should be the norm, but one such exercise per course, is
a "Good Thing"(tm). 

This is esp. so when you try to teach people a little SE along the way
(see long thread on this right now). If students are only exposed to small
and simple problems, they may learn the syntax, but not the design
philosophy the language supports best.

One more thing. We all assume that the teacher didn't give enough
background in order to make the exercise managable. This assumption may be
wrong...

Ehud Lamm     mslamm@pluto.mscc.huji.ac.il







^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
@ 1998-10-18  0:00 Steve
  1998-10-18  0:00 ` Ehud Lamm
  0 siblings, 1 reply; 18+ messages in thread
From: Steve @ 1998-10-18  0:00 UTC (permalink / raw)


Ehud Lamm <mslamm@mscc.huji.ac.il> writes: > On Mon, 5 Oct 1998 dewarr@my-dejanews.com wrote:
> 
> > 
> > If indeed this is an algorithms or AI course (the only types of course for
> > which an assignment like this would be appropriate), then I see no reason to
> > force students to write in a particular language, since in that context,
> > language is secondary.
> > 
> 
> I am afraid I don't completly agree. Theoretically you are right, but in
> practice things get more complicated. You learn the niches of the
> language, and the special advantages (and disadvantages...) it has, only
> from really trying to solve problems on your own. I don't think exercises
> this complicated should be the norm, but one such exercise per course, is
> a "Good Thing"(tm). 
> 
> This is esp. so when you try to teach people a little SE along the way
> (see long thread on this right now). If students are only exposed to small
> and simple problems, they may learn the syntax, but not the design
> philosophy the language supports best.
> 
> One more thing. We all assume that the teacher didn't give enough
> background in order to make the exercise managable. This assumption may be
> wrong...
> 
> Ehud Lamm     mslamm@pluto.mscc.huji.ac.il
> 
> 
The teacher has indeed given us enough background to make the exercise 
managable.  In each class he answers our questions and we now have all 
written programs to satisfy his requirements for a grade; that requirement 
being a program that will play battleship.  It is up to us to refine our 
battleship games to win the tourney (and he still gives us hints with our 
code). Our grade is based on the outcome of the tourney.  We will play 
his program as well but only to see how we stand against a "pro".     





^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Would someone help a struggling ADA student
  1998-10-18  0:00 Steve
@ 1998-10-18  0:00 ` Ehud Lamm
  0 siblings, 0 replies; 18+ messages in thread
From: Ehud Lamm @ 1998-10-18  0:00 UTC (permalink / raw)


On 18 Oct 1998, Steve wrote:

> Ehud Lamm <mslamm@mscc.huji.ac.il> writes: > On Mon, 5 Oct 1998 dewarr@my-dejanews.com wrote:
> > 
> > > 
> > I am afraid I don't completly agree. Theoretically you are right, but in
> > practice things get more complicated. You learn the niches of the
> > language, and the special advantages (and disadvantages...) it has, only
> > from really trying to solve problems on your own. I don't think exercises
> > this complicated should be the norm, but one such exercise per course, is
> > a "Good Thing"(tm). 
> > 
> The teacher has indeed given us enough background to make the exercise 
> managable.  In each class he answers our questions and we now have all 
> written programs to satisfy his requirements for a grade; that requirement 
> being a program that will play battleship.  It is up to us to refine our 
> battleship games to win the tourney (and he still gives us hints with our 
> code). Our grade is based on the outcome of the tourney.  We will play 
> his program as well but only to see how we stand against a "pro".   

Oh. I get it now. 

Well, if this is the case, I'd say I like the exercise, but I would hate
such a grading system. This is of course assuming the course is aboyut ADA
and not about "problem solving".

But the discussion did give me an idea of starting a cretive programming
problem-solving list.  Are does one exist already? 

Ehud Lamm     mslamm@pluto.mscc.huji.ac.il






^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~1998-10-18  0:00 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-10-08  0:00 Would someone help a struggling ADA student Steve
1998-10-08  0:00 ` dennison
  -- strict thread matches above, loose matches on Subject: below --
1998-10-18  0:00 Steve
1998-10-18  0:00 ` Ehud Lamm
1998-10-08  0:00 Steve
1998-10-02  0:00 Steve
1998-10-05  0:00 ` Michael F Brenner
1998-10-05  0:00 ` Do-While Jones
1998-10-05  0:00   ` dewarr
1998-10-06  0:00     ` dennison
1998-10-06  0:00       ` Robert A Duff
1998-10-06  0:00         ` Martin C. Carlisle
1998-10-16  0:00           ` Robert A Duff
1998-10-16  0:00             ` Martin C. Carlisle
1998-10-07  0:00         ` dennison
1998-10-06  0:00       ` Michael F Brenner
1998-10-07  0:00         ` dennison
1998-10-17  0:00     ` Ehud Lamm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox