<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body>
<div dir="auto" style="direction: ltr; margin: 0; padding: 0; font-family: sans-serif; font-size: 11pt; color: black; ">
Hi all,<br>
<br>
</div>
<div dir="auto" style="direction: ltr; margin: 0; padding: 0; font-family: sans-serif; font-size: 11pt; color: black; ">
There is another way to look at this code review. For our particular team, it may make less sense for this to be a "code review" in the formal sense of guaranteeing strict adherence to a particular standard. Rather, this could be a time for sharing ideas, giving
 tutorials, and asking for help. Manu people here are new to coding, or working in a particular language.
<br>
<br>
</div>
<div dir="auto" style="direction: ltr; margin: 0; padding: 0; font-family: sans-serif; font-size: 11pt; color: black; ">
Why don't we make this more of an interactive lab or sharing time?<br>
<br>
</div>
<div dir="auto" style="direction: ltr; margin: 0; padding: 0; font-family: sans-serif; font-size: 11pt; color: black; ">
73 de Nathaniel W2NAF<span id="ms-outlook-android-cursor"></span><br>
<br>
</div>
<div dir="auto" style="direction: ltr; margin: 0; padding: 0; font-family: sans-serif; font-size: 11pt; color: black; ">
<span id="OutlookSignature">
<div dir="auto" style="direction: ltr; margin: 0; padding: 0; font-family: sans-serif; font-size: 11pt; color: black; ">
Sent from my Verizon, Samsung Galaxy smartphone<br>
</div>
<div dir="auto" style="direction: ltr; margin: 0; padding: 0; font-family: sans-serif; font-size: 11pt; color: black; ">
Get <a href="https://aka.ms/ghei36">Outlook for Android</a></div>
</span><br>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> TangerineSDR <tangerinesdr-bounces@lists.tapr.org> on behalf of Engelke, Bill via TangerineSDR <tangerinesdr@lists.tapr.org><br>
<b>Sent:</b> Thursday, August 13, 2020 7:17:26 PM<br>
<b>To:</b> TAPR TangerineSDR Modular Software Defined Radio <tangerinesdr@lists.tapr.org><br>
<b>Cc:</b> Engelke, Bill <bill.engelke@ua.edu><br>
<b>Subject:</b> Re: [TangerineSDR] [EXTERNAL] Re: Fwd: Proposal: HamSCI Code Review</font>
<div> </div>
</div>
<style>
<!--
@font-face
        {font-family:Wingdings}
@font-face
        {font-family:"Cambria Math"}
@font-face
        {font-family:Calibri}
p.x_MsoNormal, li.x_MsoNormal, div.x_MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif}
a:link, span.x_MsoHyperlink
        {color:blue;
        text-decoration:underline}
a:visited, span.x_MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline}
p.x_MsoListParagraph, li.x_MsoListParagraph, div.x_MsoListParagraph
        {margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif}
p.x_msonormal0, li.x_msonormal0, div.x_msonormal0
        {margin-right:0in;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif}
span.x_EmailStyle18
        {font-family:"Calibri",sans-serif;
        color:windowtext}
span.x_EmailStyle20
        {font-family:"Calibri",sans-serif;
        color:windowtext}
.x_MsoChpDefault
        {font-family:"Calibri",sans-serif}
@page WordSection1
        {margin:1.0in 1.0in 1.0in 1.0in}
div.x_WordSection1
        {}
ol
        {margin-bottom:0in}
ul
        {margin-bottom:0in}
-->
</style>
<div lang="EN-US" link="blue" vlink="purple">
<div class="x_WordSection1">
<p class="x_MsoNormal">Colleagues: </p>
<p class="x_MsoNormal">Regarding code review – I guess my team and I stand to both gain and lose the most on this, since we are doing most of the software (at least, for Tangerine). A few observations –</p>
<p class="x_MsoNormal"> </p>
<ul type="disc" style="margin-top:0in">
<li class="x_MsoListParagraph" style="margin-left:0in; mso-list:l0 level1 lfo1">We are already well down the road toward the Phase 1 code, as we are following a project plan established back in January. The time to implement a standard is at the very beginning
 of a project, not after several thousand lines have been written and tested/debugged. (Of course, we can be certain that many bugs remain).  Compliance with a coding standard is not part of the requirements and could constitute an significant increase the
 scope, I would think; I have some anxiety at having to rewrite a lot of it.  (Perhaps we could decide what needs rewriting and plan that for Phase 2?) – not to mention the fact that reviewing a large piece of software can be a project unto itself (time, resources,
 etc.) – which is certainly worthwhile if lives are on the line. This is not the case for the Personal Space Weather network.</li><li class="x_MsoListParagraph" style="margin-left:0in; mso-list:l0 level1 lfo1">Jay mentions embedded software, so is there a part of this that would apply to the FPGA code, which has not yet been started (AFAIK) - ?</li><li class="x_MsoListParagraph" style="margin-left:0in; mso-list:l0 level1 lfo1">Rob reminds us that there are multiple standards, and it’s not clear which (if any) would be good for this project. As far as “Elements of Style,” I can appreciate this thought
 because it speaks to readability. I have been writing & documenting the code with the idea that it would be picked up and used by others, so I have been trying to put in comments that are extensive enough that someone with minimal experience should be able
 to follow/modify it.</li><li class="x_MsoListParagraph" style="margin-left:0in; mso-list:l0 level1 lfo1">I have been writing unit tests for automated testing for many of the functions in the c-code; it is challenging to do this for a multi-module system where a lot of things depend
 on another device doing something and replying in a specific way; you may or may not be able to detect real-time errors like software races, where you have to handle network timing. I am a bit fuzzy on how to do this on the python side, but I expect that some
 research will turn up some ideas. </li><li class="x_MsoListParagraph" style="margin-left:0in; mso-list:l0 level1 lfo1">BEING PRAGMATIC - I have a list of TODOs where I plan to put in improvements over time that add robustness (but not significant functionality); for example, in C you can use a “low
 budget” function atoi to convert ASCII to integer, but it has the weakness that if it gets an error, it simply returns zero; the plan is to substitute a better method for all of those after proof of concept. I am nearing completion of the proof of concept
 stage for the Local Host. If we have a set of recommendations (from a standard or somewhere) on best practices for things like this,
<b>I would  be delighted to have it,</b> and will use as much of it as possible (as long as it doesn’t require extensive rewriting). For the Central Control system, very little has been written, so any standards could be implemented at minimal cost (as long
 as it doesn’t say the team can’t use the tools they have already selected).</li></ul>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">Is the Monday night telco the right forum in which to discuss all of this? I don’t know; most of the focus has been on the hardware…   -73- Bill</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal"><b>From:</b> TangerineSDR <tangerinesdr-bounces@lists.tapr.org>
<b>On Behalf Of </b>Aidan Montare via TangerineSDR<br>
<b>Sent:</b> Thursday, August 13, 2020 11:56 AM<br>
<b>To:</b> Jay Schwartz <wb8sbi@gmail.com><br>
<b>Cc:</b> Aidan Montare <aam141@case.edu>; TAPR TangerineSDR Modular Software Defined Radio <tangerinesdr@lists.tapr.org><br>
<b>Subject:</b> [EXTERNAL] Re: [TangerineSDR] Fwd: Proposal: HamSCI Code Review</p>
<p class="x_MsoNormal"> </p>
<div>
<div>
<p class="x_MsoNormal">Jay,</p>
</div>
<div>
<p class="x_MsoNormal"> </p>
</div>
<div>
<p class="x_MsoNormal">I'd be interested in hearing more about this. I haven't been on the tangerine calls (I'm usually on the HamSCI ones), though I'm planning to start joining if I have the time.</p>
</div>
</div>
<p class="x_MsoNormal"> </p>
<div>
<div>
<p class="x_MsoNormal">On Wed, Aug 12, 2020 at 10:35 PM Jay Schwartz <<a href="mailto:wb8sbi@gmail.com">wb8sbi@gmail.com</a>> wrote:</p>
</div>
<blockquote style="border:none; border-left:solid #CCCCCC 1.0pt; padding:0in 0in 0in 6.0pt; margin-left:4.8pt; margin-right:0in">
<div>
<div>
<p class="x_MsoNormal">Hello all,</p>
<div>
<p class="x_MsoNormal"> </p>
</div>
<div>
<p class="x_MsoNormal">Please allow me to introduce myself.  I'm a retired automotive embedded software engineer, BSEE, BSCS, licensed since 1974, Extra Class, and Life Member of ARRL, AMSAT, and QCWA.</p>
</div>
<div>
<p class="x_MsoNormal"> </p>
</div>
<div>
<p class="x_MsoNormal">In the auto industry code reviews are mandatory, and misery unto those who do not do one.  Part of this code review is to make sure the code complies with the Motor Industry Software Reliability Association (MISRA) standard.  This is
 a coding standard that started in the auto industry and has gone worldwide in many other industries.  The standard can be purchased for 10 British Pounds from <a href="https://www.misra.org.uk/Publications/tabid/57/Default.aspx" target="_blank">https://www.misra.org.uk/</a></p>
</div>
<div>
<p class="x_MsoNormal"> </p>
</div>
<div>
<p class="x_MsoNormal">Many software compilers have incorporated this standard into their tools.  They will automatically check the source code at compile time and report any non-complicenses.  I.e. your code compile and link, but may not run the way you think
 it will.  By complying with this document you greatly reduce the chances of something undesirable happening.</p>
</div>
<div>
<p class="x_MsoNormal"> </p>
</div>
<div>
<p class="x_MsoNormal">This document is easy to comply with, and contains a lot of common sense do / do nots.  By complying with it also makes your code more readable and better able to be updated.  However, it is not friendly to spaghetti code.</p>
</div>
<div>
<p class="x_MsoNormal"> </p>
</div>
<div>
<p class="x_MsoNormal">If the code is written to comply with it then many preventable bugs can be avoided.  I.e. it reduces the need to patch by not having the bug in the code to begin with.</p>
</div>
<div>
<p class="x_MsoNormal"> </p>
</div>
<div>
<p class="x_MsoNormal">I have a copy of the standard and would be happy to explain it to the group at the next regularly scheduled video meeting.</p>
</div>
<div>
<p class="x_MsoNormal"> </p>
</div>
<div>
<p class="x_MsoNormal">73, Jay</p>
</div>
<div>
<p class="x_MsoNormal">WB8SBI</p>
</div>
</div>
<p class="x_MsoNormal"> </p>
<div>
<div>
<p class="x_MsoNormal">On Wed, Aug 12, 2020 at 6:00 PM Aidan Montare via TangerineSDR <<a href="mailto:tangerinesdr@lists.tapr.org" target="_blank">tangerinesdr@lists.tapr.org</a>> wrote:</p>
</div>
<blockquote style="border:none; border-left:solid #CCCCCC 1.0pt; padding:0in 0in 0in 6.0pt; margin-left:4.8pt; margin-right:0in">
<div>
<p class="x_MsoNormal">For those not on the HamSCI mailing list:</p>
<div>
<p class="x_MsoNormal"> </p>
<div>
<div>
<p class="x_MsoNormal">---------- Forwarded message ---------<br>
From: <b>Aidan Montare</b> <<a href="mailto:aam141@case.edu" target="_blank">aam141@case.edu</a>><br>
Date: Wed, Aug 12, 2020 at 5:00 PM<br>
Subject: Proposal: HamSCI Code Review<br>
To: <<a href="mailto:hamsci@googlegroups.com" target="_blank">hamsci@googlegroups.com</a>></p>
</div>
<p class="x_MsoNormal" style="margin-bottom:12.0pt"> </p>
<div>
<div>
<p class="x_MsoNormal">Dear all,</p>
</div>
<div>
<p class="x_MsoNormal"> </p>
</div>
<div>
<p class="x_MsoNormal">I'd like to propose a regular code review session for the HamSCI community, and get your feedback on the idea.<br>
<br>
If you are interested, please fill out the following short survey to help me pick a time to hold code review sessions:
<a href="https://forms.gle/uiEHCqMG9v1BaQiW7" target="_blank">https://forms.gle/uiEHCqMG9v1BaQiW7</a>. I think the schedule can be informal; I'd be happy to meet at different times on occasion to accommodate different people, etc.<br>
<br>
I've also created a page at <a href="http://hamsci.org" target="_blank">hamsci.org</a> (<a href="https://hamsci.org/code-review" target="_blank">https://hamsci.org/code-review</a>) for the project with some general thoughts on how the sessions might run. If
 you have any ideas or suggestions, please let me know as well (either via email or the form linked above).<br>
<br>
Best wishes,<br>
<br>
Aidan KB3UMD</p>
</div>
</div>
</div>
<p class="x_MsoNormal"><br clear="all">
<br>
-- </p>
<div>
<div>
<p class="x_MsoNormal">Sincerely,<br>
<br>
Aidan Montare<br>
CWRU Class of 2021</p>
</div>
</div>
</div>
</div>
<p class="x_MsoNormal">-- <br>
TangerineSDR mailing list<br>
<a href="mailto:TangerineSDR@lists.tapr.org" target="_blank">TangerineSDR@lists.tapr.org</a><br>
<a href="http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org" target="_blank">http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org</a></p>
</blockquote>
</div>
</div>
</blockquote>
</div>
<p class="x_MsoNormal"><br clear="all">
<br>
-- </p>
<div>
<div>
<p class="x_MsoNormal">Sincerely,<br>
<br>
Aidan Montare<br>
CWRU Class of 2021</p>
</div>
</div>
</div>
</div>
</body>
</html>