<div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Klaus</div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif"><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Many thanks. Chris should bring you in as a consultant.</div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 17, 2025 at 4:15 AM Klaus Birkenbihl via Chapter-delegates <<a href="mailto:chapter-delegates@elists.isoc.org" target="_blank">chapter-delegates@elists.isoc.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>
<div>
<p>[adding Chapter Delegates
<a href="mailto:chapter-delegates@elists.isoc.org" target="_blank"><chapter-delegates@elists.isoc.org></a> since assumed to be of
general interest]<br>
</p>
<p>Thanks Christian,</p>
<div>Christian de Larrinaga wrote on
16.07.25 18:32:<br>
</div>
<blockquote type="cite">
<pre>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
<a href="http://ISOC.DE" target="_blank">ISOC.DE</a>) 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 href="mailto:ams-help@isoc.org" target="_blank">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">
<pre>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">
<pre>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">
<pre>Klaus Birkenbihl via Chapter-delegates <a href="mailto:chapter-delegates@elists.isoc.org" target="_blank"><chapter-delegates@elists.isoc.org></a> writes:
</pre>
<blockquote type="cite">
<pre>Dear AMS Chapter Admin,
by today the isoc-ams API is released. Don't ask AMS-help for it.
Just check <a href="https://github.com/birkenbihl/isoc-ams/" target="_blank">https://github.com/birkenbihl/isoc-ams/</a> for details.
Best regards
Klaus
</pre>
</blockquote>
<pre></pre>
</blockquote>
<pre cols="0">--
Klaus Birkenbihl
Internet Society German Chapter (<a href="http://ISOC.DE" target="_blank">ISOC.DE</a>) e.V.
c/o ict-Media GmbH
<a href="https://www.isoc.de" target="_blank">https://www.isoc.de</a></pre>
</div>
_______________________________________________<br>
As a Chapter Leader, you are automatically added to the Internet Society’s Chapter Leaders Community Group and the Chapter Delegates e-list, which is regularly synchronized with the Internet Society Chapter Portal (AMS): <a href="https://community.internetsociety.org" rel="noreferrer" target="_blank">https://community.internetsociety.org</a>.<br>
The Internet Society has a legitimate interest to communicate with its chapter leaders, you will therefore remain subscribed for the duration of your term and will be unsubscribed automatically when your term ends.<br>
Please note that the archive of this list is publicly accessible and may be viewed by anyone. By submitting information to this list and contributing to the communications, you acknowledge that the contents will be publicly visible.<br>
View the Internet Society Code of Conduct: <a href="https://www.internetsociety.org/become-a-member/code-of-conduct/" rel="noreferrer" target="_blank">https://www.internetsociety.org/become-a-member/code-of-conduct/</a><br>
-<br>
Unsubscribe: <a href="https://app.smartsheet.com/b/form/9b6ef0621638436ab0a9b23cb0668b0b?The%20list%20to%20be%20unsubscribed%20from=Chapter-delegates" rel="noreferrer" target="_blank">https://app.smartsheet.com/b/form/9b6ef0621638436ab0a9b23cb0668b0b?The%20list%20to%20be%20unsubscribed%20from=Chapter-delegates</a><br>
</blockquote></div>