<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Oh, I forgot column.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-family:"Segoe UI Emoji",sans-serif'>😊</span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Thursday, July 4, 2019 9:45 PM<br><b>To: </b><a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:lepeitso@nps.edu">Peitso, Loren (CIV)</a><br><b>Cc: </b><a href="mailto:flotynski@kti.ue.poznan.pl">Jakub Flotyński</a>; <a href="mailto:aono@tut.jp">aono@tut.jp</a><br><b>Subject: </b>RE: X3D Python package design considerations - let Python be Python</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Package rename from x3dpsail to x3d checked in. x3dpsail.py left unchanged. Please test.  Thanks!<o:p></o:p></p><p class=MsoNormal><br>I find <a href="https://stackoverflow.com/">https://stackoverflow.com/</a> very useful for learning python, plus <a href="https://www.google.com/">https://www.google.com/</a>.  Of course you have to know what to search for, but a 25 year career is pretty good for that.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Is it a slot, or an attribute or a field or a property or a key/value or a member?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I hear eskimos have 300 words for snow.  Well, <a href="https://www.princeton.edu/~browning/snow.html">https://www.princeton.edu/~browning/snow.html</a><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From: </b><a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Sent: </b>Thursday, July 4, 2019 7:46 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:lepeitso@nps.edu">Peitso, Loren (CIV)</a><br><b>Cc: </b><a href="mailto:flotynski@kti.ue.poznan.pl">Jakub Flotyński</a><br><b>Subject: </b>Re: X3D Python package design considerations - let Python be Python<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Loren and I had an excellent clean-slate session exploring X3D Python package design considerations.  His long experience in teaching and programming Python was tremendously useful.  This follows up on the excellent session we had together with Jakub Flotyński two weeks ago during his research visit to NPS.  (Three hours each time, real "deep dives" here.)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>We ignored all programming language idioms associated with Java JavaScript C and focused solely on essentials of Python class/package design.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Diagram attached (blue is X3D, red is Python).  Looks ready for attempting initial implementation via X3DUOM.  John, no doubt during subsequent inspection of initial code versions we will find several relevant patterns in your X3DPSAIL efforts that can be applied, not to mention many patterns in multiple Python books.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>As before, it continues to look like X3DPSAIL and a pure-python approach can be compatible - but let's wait and see how far a strict Pythonic focus can take us.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Useful references:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>[1] Python documentation<o:p></o:p></p><p class=MsoNormal>     https://docs.python.org<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>[2] Python Cookbook by David Beazley and Brian K. Jones, O'Reilly and Associates, 2013.<o:p></o:p></p><p class=MsoNormal>     https://www.dabeaz.com/cookbook.html<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>[3] Learning Python by Mark Lutz, 5th edition, O'Reilly and Associates, 2013.<o:p></o:p></p><p class=MsoNormal>     https://learning-python.com/about-lp5e.html<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>[4] Programming Python by Mark Lutz, 4th edition, O'Reilly and Associates, 2011.<o:p></o:p></p><p class=MsoNormal>     https://learning-python.com/about-pp4e.html<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 7/3/2019 7:38 AM, Don Brutzman wrote:<o:p></o:p></p><p class=MsoNormal>> Looks like you are pretty close!  Suggested tweaks if possible:<o:p></o:p></p><p class=MsoNormal>> [...]<o:p></o:p></p><p class=MsoNormal>> - can we change "import x3dpsail" to "import x3dpsail as x3d" and then change all the element prefixes from "x3dpsail." to "x3d."<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> this would make the source more consistent.  when we implement a native-Python class library, we can call that x3d and retain x3dpsail as is.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> good luck John!<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>all the best, Don<o:p></o:p></p><p class=MsoNormal>-- <o:p></o:p></p><p class=MsoNormal>Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu<o:p></o:p></p><p class=MsoNormal>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<o:p></o:p></p><p class=MsoNormal>X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>