<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>[adding Chapter Delegates
      <a class="moz-txt-link-rfc2396E" href="mailto:chapter-delegates@elists.isoc.org"><chapter-delegates@elists.isoc.org></a> since assumed to be of
      general interest]<br>
    </p>
    <p>Thanks Christian,</p>
    <div class="moz-cite-prefix">Christian de Larrinaga wrote on
      16.07.25 18:32:<br>
    </div>
    <blockquote type="cite" cite="mid:87ecuggkp2.fsf@firsthand.net">
      <pre class="moz-quote-pre" wrap="">Well done klaus.. looks like you did this despite zero help from the AMS
team. It will take a bit of work I guess to implement into a chapter
admin database and then as a web scraper any change to the AMS which
can happen pretty arbitrarily might be breaking.</pre>
    </blockquote>
    <p>After looking at the code (HTML & Co) the risk of AMS changes
      seems smaller than it first appeared. If there are any they most
      likely will not be dramatic. But as I mentioned in the readme: the
      risk exists. So wait and see ...<br>
    </p>
    <p>Members Administration in this context is a dead simple thing.
      AMS takes a lot of effort to make it komplex.</p>
    <p>isoc-ams makes it simple again. Nearly everything in members
      admin - that can be done with online AMS - can be done with a
      simple isoc-ams workflow - no programming skills required at all.</p>
    <p>2 Steps:</p>
    <ol>
      <li>Get lists of AMS Chapter members and pending applications:<br>
        <pre>     python -m isoc_ams
</pre>
        Delivers a list of AMS Chapter members and a list of pending
        applications.<br>
        <br>
      </li>
      <li>Decide what operations are due (deny or approve applicants,
        delete entries from members list).<br>
        Then call isoc-ams like this:<br>
        <pre>     python -m isoc_ams -i <commands.txt
</pre>
        the file <font face="monospace">commands.txt</font> file holds
        the required operations like this<br>
        <pre>     deny isocid1, isocid2 ...
        approve isocid10, isocid11 ...
        delete isocid20, isocid21 ...
        ...
</pre>
        to deny, approve pending applications or delete entries from the
        AMS Chapter members list. </li>
    </ol>
    <p>And you are done. No need to wade clicking (and maybe typing)
      through lot of pages.</p>
    <p><br>
    </p>
    <p>For a fully automated process using the API (as we do it at
      ISOC.DE) it is also straight forward and simple to implement. (If
      I ever decide to build a next release the interface will provide
      the option to do this in any programming language you like - not
      only Python).</p>
    <p>It also can be grouped in 2 steps:</p>
    <ol>
      <li>Apply your local rules how to treat pending applications e.g.</li>
      <ol>
        <li>deny old ones that didn't make it to your local members list</li>
        <li>approve those who made it to your local members list</li>
        <li>leave the others as they are (maybe send an invitations to
          join)</li>
      </ol>
      <li>Compare your local members list (assumed to be the up-to-date
        one) with the AMS Chapter list:</li>
      <ol>
        <li>delete those from the AMS Chapter list who are no longer on
          your local list</li>
        <li>send a mail to <a class="moz-txt-link-abbreviated" href="mailto:ams-help@isoc.org">ams-help@isoc.org</a> asking to add those who are
          not on the AMS list (since you are not authorized to add
          them).</li>
      </ol>
    </ol>
    <p>That's it. I admit I was surprised how simple it turned out to be
      - once you manage to hide the AMS Web interface.</p>
    <p>(Why is it a fairy tale by Danish Hans Christian Andersen:
      „Kejserens nye Klæder“ comes int my mind? 🙂)</p>
    <blockquote type="cite" cite="mid:87ecuggkp2.fsf@firsthand.net">
      <pre class="moz-quote-pre" wrap="">Hope this isn't going to be a rod to your back - so to speak. But maybe
this will spur that strong sense of not invented here phobia at ISOC?</pre>
    </blockquote>
    Frankly, I'm rather curious if there will be any reaction at all 😉.
    I think that the AMS folks over the last ten+ years never understood
    how an API should look like. So they silently denied any effort to
    provide it.<br>
    <blockquote type="cite" cite="mid:87ecuggkp2.fsf@firsthand.net">
      <pre class="moz-quote-pre" wrap="">Having said all that kudos and respect.</pre>
    </blockquote>
    <p>Thank you.</p>
    <p>Klaus<span style="white-space: pre-wrap">
</span></p>
    <blockquote type="cite" cite="mid:87ecuggkp2.fsf@firsthand.net">
      <pre class="moz-quote-pre" wrap="">Klaus Birkenbihl via Chapter-delegates <a class="moz-txt-link-rfc2396E" href="mailto:chapter-delegates@elists.isoc.org"><chapter-delegates@elists.isoc.org></a> writes:

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Dear AMS Chapter Admin,

by today the isoc-ams API is released. Don't ask AMS-help for it.

Just check <a class="moz-txt-link-freetext" href="https://github.com/birkenbihl/isoc-ams/">https://github.com/birkenbihl/isoc-ams/</a> for details.

Best regards
Klaus
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap=""></pre>
    </blockquote>
    <pre class="moz-signature" cols="0">-- 
Klaus Birkenbihl
Internet Society German Chapter (ISOC.DE) e.V.
c/o ict-Media GmbH
<a class="moz-txt-link-freetext" href="https://www.isoc.de">https://www.isoc.de</a></pre>
  </body>
</html>