AMSAT adds “Don’t Rock the Boat” rule

AMSAT was once the Amateur Satellite organization of the United States. Through years of bad leadership they have essentially abdicated that position, but a proposed by-laws change will put the last nail in that coffin. And their board has made it deliberately difficult for you to file an objection to that change.

The rule changes allows the AMSAT board to deny membership to any member whose character, reputation, or conduct might (their word) make them an undesirable member. The rule change was sent to members in postal mail, and is not available online on the AMSAT web site.

Why is AMSAT enacting this rule now?

Two years ago, three candidates dared to run against the incumbent board, and two won. Many non-profit organization officers don’t ever learn that a contentious election is a fundamental part of democracy, and the incumbent board freaked out. They have never allowed those two people to actually function as board members. The new rule would allow the AMSAT board to expel those elected directors from their board seats, along with other people who have run against the incumbents, those who have campaigned for them, and those most likely to vote for them. The new rule would also allow them to prevent Open Research Institute, a digital Amateur satellite organization, from renewing as a member organization.

Because the AMSAT board doesn’t really want its members to interfere with the enactment of this new rule, they have dictated that objections must be submitted on paper and mailed with a stamp. I encourage you to discuss this online, but none of your discussions will be counted by the AMSAT board.

AMSAT, with the enactment of this rule, could no longer claim to represent United States Radio Amateurs in matters regarding Amateur Satellites, because it would no longer represent all of them, only those members that the board likes.

AMSAT claims to have copied this rule from ARRL. However, they completely ignored Article 11 of ARRL’s articles of association, which limits termination or reduction of privileges of a member to existing prerequisites (like dues) and permits them to expel a member for good cause and after notice and an opportunity to be heard. In contrast, the AMSAT rule would not require notice before denial of renewal, would allow dismissal arbitrarily at the decision of the board rather than for a small set of prerequisites, and would not allow the member a chance to be heard. I don’t know of ARRL actually ever expelling any member in its century-long history, or of anyone leaving ARRL involuntarily for anything but failure to pay dues.

Bruce Perens K6BP

On Non-Judicical Punishment of Individuals

Non-Judicial Punishment is a key part of democracy and free-market capitalism, and highly problematical, at the same time.

In judicial punishment, a judge or jury decide upon guilt or innocence, and the scope of the punishment, working within a tremendous body of rules and processes meant (always with less than complete success) to justly and fairly mete out punishment.

Today’s topic is the less formal method known as “shunning”, and sometimes labeled with the pejorative “cancel culture”. Political officers and candidates have no right to use those two words, since public decisions based on the stated opinions and conduct of individuals and organizations are inherent in the democratic process of government they signed up for, and the constitution they swore to protect and defend.

It’s the way elections work: the electorate is supposed to decide whether to vote for a candidate, or not, based on that candidate’s stated opinions and past behavior. So, we reward the winner and “punish” the loser. We’ve all witnessed how voters are cheated by untruthful sources, but ultimately democracy rests upon a properly informed voter making choices based upon that information.

We decide where we will shop, invest, and sometimes work, based on the behavior of companies and the statements of their leaders and spokespeople. Being able to decide what business you deal with is a key part of having a free market.

However, there is also the non-judicial punishment of individuals: the penalty of shunning that is meted out by large populations of mostly-pseudonymous people on the internet. These people are expressing their 1st amendment right to free speech, often to punish someone who is well worthy of such punishment but will not be reached by any judicial means.

Consider the lack of features of the judicial process that exist in such non-judicial punishment. Obviously, the accused doesn’t get the chance to have evidence heard fairly in a court and evaluated by a jury of their peers. The last time I was empanelled on such a jury, I heard 21 days of testimony from witnesses and experts, and was well able to make a decision, which (as required, or “innocence” is automatic) was unanimous among the jurors.

Nobody works one hundredth so hard upon a non-judicial punishment, perhaps with the single exception of the vanishing breed of investigative journalists. There is no formal “jury”, no standard for guilt or innocence, no sentencing guideline and limit, no accountability among those who mete out punishment.

Most troubling is the lack of any form or end to the sentence other than indefinite shunning. When their sentence is indefinite, the shunned are never given a chance to prove that they have reformed their behavior, and to thus reach the end of their shunned status. An indefinite sentence does not admit to the possibility of reform or even the desirability of reform. Thus, what should be a learning opportunity becomes little more than revenge.

In the news is the shunning of a 68-year-old autistic computer programmer named Richard Stallman, known as founder of the Free Software movement, which you may be more familiar with in its perhaps-less-ideological form, “Open Source”.

Mr. Stallman is personally known to me. I could testify that he is extremely obnoxious. Due to his handicap, he has little perception of what the feelings and reactions of others might be to his thoughts and actions, even when they are based on a talmudic personal focus on freedom and ethics. Thus, his opinions and conduct can be repulsive to others due to errors stemming from his lack of empathy – again, his handicap. Mr. Stallman likes women, but his interaction with them has been awkward and embarrassing in my personal presence, without ever reaching the level of forcing or violence. I can’t speak with authority regarding any of the claims against him that I haven’t witnessed. But the major accusation seems to be that his presence created an uncomfortable environment for women, which fits behavior I have witnessed. This may have acted to exclude greater participation by women in the Free Software Foundation and its projects, and similar is said for environs of MIT where I have no personal experience.

Some time ago, Mr. Stallman became the object of shunning. More recently, the board of the Free Software Foundation, his employer, decided to re-admit him to a seat on that organization’s board after having expelled him – with his own cooperation – for some time. In doing this, I believe that the FSF board felt that punishment should have an end, especially in the case of the first punishment, and should include an opportunity for the punished to demonstrate that he has reformed his behavior.

FSF has been Mr. Stallman’s employer for about four decades. Thus, they are bound by the Americans with Disability Act and other applicable law to make accommodations for a handicapped employee. Mr. Stallman’s behavior clearly has a basis in his handicap. Without at least days of study, I can’t even start to understand the implications of ADA in this situation. Because FSF’s original removal of Mr. Stallman from its board appears to have been a reaction to public perception, I would assume that there are some.

This leaves me somewhat surprised by the behavior of a number of companies and organizations that have emitted rather monochrome opinions. I would have everyone consider the issues I’ve discussed, and elaborate upon them, before they decide to cast stones.

Bruce Perens

A simple IoT protocol

I was surprised that none of the available IoT protocols were able to complete a data exchange, securely, using exactly one UDP packet in each direction. I want a data-efficient protocol for use on LTE-M, which is often provisioned for relatively small amounts of data per billed interval. So, I set out to design one. Here is the first pass, for your comments, please reply to [email protected] .

Simple IoT protocol.

The goal of the Simple IoT protocol is to provide a secure message transport that requires exactly one UDP packet in each direction to complete. During that exchange, data may optionally be sent in each direction. Packets without data (only acknowledgements) need not be acknowledged, if necessary the sender will repeat a data packet until it receives an acknowledgement.

This protocol takes advantage of the 1280 octet minimum packet size guaranteed on IPV6. Use of this protocol on IPV4 is possible, but not recommended, because it depends on all links honoring the same minimum packet size.

Each host is required to have a “secret” which has been shared, out-of-band of this protocol, with all hosts with which it communicates. This secret should be unique per host, and may be unique per peer. The secret is a sequence of octets between 20 and 2048 octets long – the implementation may limit this length.

Overhead:
IPV6 packet: 40 octets.
UDP packet: 8 octets.
Remaining: 1232 octets.

The data-length datum is provided by UDP.
All data are big-endian.

Use some sort of symmetrical encryption. Which one? Provide the option to not encrypt when used on an Amateur Radio link.

Octet Use
0-15 This may only be on the Amateur Radio version, because we can’t encrypt there. The low 16 octets of a cryptographic checksum of the concatenation of the secret and octets 16-end. This is used as both a checksum and a zero-knowledge proof of the identity of the sender. Octets 16-17 of this checksum are saved, and used to match against the acknowledgement from the peer. Which secure checksum algorithm? It needs to be computable in reasonable time on embedded processors.
16 Protocol version (0 for this version)
17 Data version. 0 means “no data”, 255 defined data types.
18-19 Random data (to help defeat attempts to derive the secret). On a dumb device, a sequence is sufficient.
20-32 TAI time in nanoseconds (and I need to shorten this to 64 bits).
33-36 Sequence number. 0 is invalid, the sequence may wrap around to 1 or
start back at 1 when the device or program is restarted.
37 Number of acknowledgement sequence numbers following this datum.
38-n A list of 6-octet acknowledgement sequences. The first 4 octets are the sequence number sent by the peer. The succeeding 2 octets are octets 16 and 17 of the checksum calculated using the shared secret of the peer. These were calculated by the peer, but not sent (on the symetrical encryption non-Amateur-Radio version, I might just use a 16-bit simple checksum here).
Unacknowledged packets may be resent, or dropped and a new packet with new sequence number and timestamp may be sent. Receiving acknowledgement of a packet guarantees that the acknowledgement data in that packet was processed and need not be repeated. Packets without data (only acknowledgements) are not acknowledged, if necessary the sender will repeat a data packet until it receives an acknowledgement. Acknowledgements in data packets may be repeated arbitrarily many times for the previous 1024 packets retrieved (how many times they are actually sent is up to the implementation, but in general only a few repeats should be necessary). The implementation determines the allowable packet delay before resend, and the allowable time difference before sent packets with a timestamp too far in the past are rejected.
n-end Data (a higher-level protocol)

Defined Data types:

0 No data.
1 JSON serialized using Smile [https://en.wikipedia.org/wiki/Smile_(data_interchange_format)]

Draft FAA Comment on the Launch Observer

FAA has asked for public comment on the environmental impact of expansion of operations at the SpaceX Boca Chica launch site. This is a draft comment, about 1/3 done, on the Launch Observer as a stakeholder, a beneficial influence, and an environmental, security, and safety concern. So far, I have mostly got through the part introducing the Launch Observer. This is posted for your criticism, email to bruce at perens dot com please. http://perens.com/static/FAA/FAA_SpaceX_1.pdf

Your Safety in the Weeks After Election Day

Not that we haven’t had enough disasters this year, but it’s time to think about the next one, in less than a month. Perhaps none of this will come to pass, but it might be worth having three week’s supplies on hand. Please get them now, don’t wait for everyone else to realize what’s happening and for supplies to grow short.

If it is at all possible for you to vote early, do so. Where I live, every voter was mailed their ballot, and here are boxes operated by the Registrar of Voters in every community, which allow you to avoid the Post Office. I hope your state cares as much that you vote safely.

There is the potential for conflict around the polling places. Trump has repeatedly instructed his fans to go to the polls and watch them very carefully. This is intended to intimidate voters, there is no legal or legitimate purpose for individuals to act as vigilantes around the polls and interfere with voters. They have no authority to inspect incoming voters or interact with them in any way. Expect violence around these interactions, especially because police may stand back and allow them to occur.

There has also been discussion that Faithless Electors may be used. Such forms of outright cheating will definitely trigger rioting.

The result of the presidential election will likely not be decided as quickly as in past experience, due to long-existing rules for the counting of mail votes in various states. Some states are going to wait a long time for all of the mail to come in, and may count it in creative ways (remember “hanging chad” in Florida). There may be unrest due to frustration with the delay and possible actions during that time.

There may be unrest whenever the result of the vote is announced, whichever way it goes. You should be especially careful if you live in a predominantly left-wing area, or near synagogues, black churches, or any group representative of minorities where right-wing people are likely to come to act out. Remember that DHS says, officially, that domestic white supremacists are the greatest danger to the homeland. But violence may occur anywhere.

Of course, it might all be quiet and peaceful, and the major result could be dancing in the street – which I’ll definitely do if it comes out the way I wish.

AMSAT: Urgent Issue, And The Future of North American Amateur Satellites

The canonical version of this document is at http://perens.com/static/AMSAT/Election2020.html . Please distribute it widely until September 15, 2020. We need to get it in front of all AMSAT members worldwide.


Last year, Bruce Perens K6BP wrote to you to recommend the election of new directors to the AMSAT board, to remedy severe problems with the organization. Two new directors were elected, but the then-incumbent board has never allowed them to function as directors. The main means used to disenfranchise the new directors were that AMSAT stopped having board meetings, so that the new directors can not make any motions or participate in any meaningful way. And information that would usually be given to directors was withheld from the newly elected ones.


If AMSAT members send additional new directors to the board, they will break this logjam, because there will be enough new directors to call a board meeting. The candidates we recommend are:

What’s the problem?

Many volunteer non-profit directors never learn a critical skill of democracy: how to deal with opposition. Opposition are not the enemy! They are just people with different opinions about how to run the organization. But an unskilled board will treat opposition as evil against their own good.

The new directors, Michelle Thompson W5NYV and Patrick Stoddard WD9EWK were vocal critics of the AMSAT leadership before they ran for office. Rather than work with the opposition, the AMSAT board started an expensive legal process against them. The membership then, to the incumbent’s great distress, sent the same people to the board as new directors! Which led to more lawyers and more expense. The total got to $18,000 in legal fees that should have gone to Amateur Satellites.

This was not a wise decision by the AMSAT board. They could have worked with the opposition, rather than spending money on lawyers and disenfranchising the directors whom the membership had elected to represent them. They should have read the election of these people as a signal from the membership.

So, this year AMSAT has the same problems reported a year ago. And this new one.

We are asking AMSAT members to fix this, by electing enough additional new directors to call a board meeting. AMSAT ballots are going into the mail as we write this.

Of course, besides fixing this administrative problem, the candidates have an agenda for the advancement of AMSAT. Dr. Bob McGwier N4HY was chief engineer of AMSAT and a board member during a better time for the organization, and is one of the creators of Software Defined Radio. He was one of the main architects of the Phase 4 satellite development, which would have provided a geostationary digital satellite for emergency communication, and regular ham activities during non-emergency times. This was a cooperative program with FEMA, part of the US Government, and FEMA’s vendor failed to build the satellite. Since then, space launch has become much less expensive and paths are open to AMSAT that would previously have taken government cooperation. Bob is the best choice to lead a new effort to go back to high-earth orbit with satellites that mix simple and accessable analog communications with innovative digital ones.

Howie DeFelice AB2S is a principal engineer for Intelsat General Communications, one of the creators of 50 Dollar Sat, the first PocketQube satellite, and a major contributor to the Phase 4 effort. Jeff Johns WE4B is an industrial quality expert and daily satellite operator. His expertise in Kaizen, a process to increase quality by involving all employees from top management to line assemblers, is essental to bringing AMSAT back to being a functional organization.

The Candidates

Please review the web statements of each candidate, and please vote for these candidates:

Signed:

  • Michelle Thompson W5NYV
  • Patrick Stoddard WD9EWK
  • Matthew Chambers NR0Q
  • Bruce Perens K6BP

Please write to bruce at perens dot com to add your signature.

Solidarity with Black Lives Matter

You didn’t really even have to ask, but Bruce Perens stands in solidarity with Black Lives Matter. In 1997, I wrote non-discrimination provisions into the Debian Free Software Guidelines, which then became the Open Source Definiton. While they still stand, they have been constantly under attack.

My personal experience with prejudice comes from how I was treated as a neurologically handicapped child. But I am also subject to ageism, and most bigots do not consider me to be “white” because of my ethnic Jewish origin.

There has been some (fortunately unsuccessful) movement to cast aspersion on Open Source as the product of “old white men”. This is humorous because of the explicitly non-discriminatory nature of the work, and its origin within the Debian team, which has always been very diverse. Nobody should be rejecting anyone’s work due to their skin color.

Of late, I have come out with my discrimination story. It wasn’t color, but my speech and motor handicaps (then severe). On my first day in first grade, the teacher, on hearing me speak, took me by the hand and led me to another classroom, leaving me there. Back then, they called it the retarded children’s class. We’d have a nicer name for it today.

The first-grade teacher did this without having me examined, and if she told anyone in the school at all, the message wasn’t given to my parents. One of the things they did not do in that class was teach reading. Eventually my parents realized, from my description of my classmates, that something was very wrong. They got a lawyer.

Back then, around 1962, it was not accepted that handicapped students should be mainstreamed with the other children. Some thought we would slow the other students down and would be an unacceptable burden on the teacher. So, there were special classes or special schools where we could be out of the sight of the normally abled people.

This did not teach the normally-abled people to be accepting of the handicapped. We were different and scary, and they were given no experience in interacting with us.

Some children with motor deficits find handwriting difficult or painful. Those who do may develop a very good memory in compensation – as I have. I can still see that 1st grade teacher in my mind today.

Once I returned to her class, under the threat of a lawsuit and without her willingness, she was filled to the top and over with resentment. Every time I interacted with her, she explained to me, in front of the other children, that I did not belong in her class. The other children were actually told by this teacher that I was retarded, which set the way that I would be treated by many of my school peers all through the elementary grades. A lawyer-required test determined my IQ was 140 at the time, but this didn’t matter to my peers or the bad teacher.

While today handicapped students have Individualized Education Plans, and Accommodations that help them, nothing like that existed back then. It wasn’t until junior high school that I was placed in a class with a speech therapist. I had that for a few years and then they put me in rhetoric class every year through 12th grade. It didn’t fix my speech, but made me a good public speaker. Many people, on hearing me speak, would ask what country I came from.

My speech and coordination issues diminished on their own as I got older.

As an adult, I have had the police called on me at least once, simply for being someone who moves differently, and was thus considered a threat. I still get problems – especially in stores – because of the way I move, ranging from a woman screaming in terror (just because of the way I walked in, no kidding) to extra attention from security guards. If you move differently, people will consider you “creepy”. That word originates from “creeping”, moving abnormally.

The biggest damage from school wasn’t physical, though. Having such a difficult time didn’t help me with some of the subjects I should have been learning, and I am still innumerate by the standards of the computer and electronic engineers I work with today. In retrospect, some of the scenes I remember read as neurosis – one teacher even damaging equipment in his rage. I hope the classroom is better supervised today.

So, if you wonder why some of those students with darker skin don’t do as well, when they seem to be given the same school opportunities as you, it’s because they don’t really have the same opportunities at all. What they face, beside you in the school every day, impedes them.

Black lives matter, and unfortunately the place where Black people might need the most support isn’t what anyone is trying to fix right now. K-to-12 schooling is at least as important, and is as painfully underfunded, and as likely to let them down, as it was in 1962.

The solution so far, because we just can’t spend the money to have good primary schools, is to take away learning days to do testing and penalize the schools whose students test poorly. No surprise that these are often ones where the poor people live.

So, I hope we fix the police and other adult prejudice issues. But let’s please fix things for our kids. Otherwise, we will have another generation of underprivileged people, and another generation of people of all colors who have so little understanding of politics and the world that they vote for quick fixes and tyrants. Other countries, many poorer than ours, have achieved great primary schools that treat people fairly and educate them well. The USA can too.

 

Building a startup using Crystal and Lucky

For the past several months, I’ve been building a startup web business using the Crystal language and the Lucky web framework. This is a conscious decision to use bleeding-edge technology, thus all of the issues I’ve run into are my fault. The Crystal language is approaching its 1.0 release, and the Lucky framework has not yet announced any intention to make a 1.0 release yet.

The potential cost of my choices is high – my start-up will be soliciting millions of dollars of capitalization, starting this week. But I don’t believe my technical choices will be a significant problem for the business, other than requiring that I hire experienced Crystal programmers. They are available, in the US, Brazil, and elsewhere, but not as common as programmers for other languages so far.

The impetus for this choice was the power of the Crystal language and the potential of the Lucky framework built upon it to result in a more correct implementation. Crystal is a compiled, globally-optimized language with Ruby-like syntax and type safety. It provides type safety without type verbosity, inferring types rather than requiring declaration much of the time, and propagating type information throughout the program. It also has an extremely powerful macro language which has access to abstract syntax tree nodes within the compiler. This allows me, for example, to piece apart interpolated strings for translation, at compile time, without a significant run-time overhead. I don’t know of any other compiled computer language that would allow me to do this in a macro, using a documented API, rather than requiring me to write an external source-code processor.

The intent of Crystal and Lucky are that the programmer would have the syntactic grace and ease of writing in Ruby on Rails, with greater correctness, fewer run-time errors, and compiled-language speed. To an extent, the combination achieves this. I expected that there would be pain, due to the youth of the language and platform, and there has been.

Crystal and Lucky are not, in my opinion, ready for the inexperienced programmer. With over 40 years of programming experience, I have still faced challenges.

The power of Crystal’s macro language means that it is used extensively in packages as powerful as the Lucky web platform. Unfortunately, this means that your programming errors are reported where they occur somewhere in a macro expansion, rather than where you have made them – as you could expect were you calling into functions and methods rather than macros. The result is that error messages resulting from my use of Lucky are often simply indecipherable, yielding neither the location of their origin or, sometimes, even any information about the erroneous statement rather than some macro transformation of that statement. Since the macro system is a code transformation machine, its arguments are not naturally as tightly typed as the rest of the Crystal language. Achieving good error reports for Lucky may require manually-added code to more tightly check the arguments to every macro. Fortunately, the macro mechanism does provide the framework to do such checking, AST nodes yield type information and the file name and line number of where they originate. I don’t know if there is anything that the compiler developers can do to improve error messages regarding macro expansions.

For now, I have developed craft knowledge that helps me debug problems in macro expansions, but this has been a relatively steep learning curve.

Lucky also has some substantial bugs at this time, as would be expected for such a large and powerful system at this point in its development. About the worst that I’ve encountered is that the before and after functions used to manipulate data model properties and validate their correctness don’t happen in the right order, and can’t be put in the right order using the existing API, causing some errors to be set on the model before the programmer has a chance to correct them. For now, this requires that model code explicitly clear some errors.

There are a few problems in the existing Crystal language implementation, as well. The largest one that I have faced is that the union type system, which allows one to declare a type as a collection of other types, does not work as expected under the hood. My program has two models: Manufacturer and Product. A union type of Manufacturer | Product is changed, internal to the compiler, to their common subclass. Then, the compiler sometimes does type checking for the common subclass, rather than just Manufacturer and Product as I intended. For now, I’ve created a  common subclass (closer to my models than the one the compiler would have had to pick) and declare that rather than a union type.

Another problem is that support for run-time debugging is incomplete at this time, and gdb has access to source code lines and the call stack, but can not examine some (or all) arguments and variables.

If you are willing to put up with these challenges, the Crystal language and the Lucky web platform offer more power than other computer languages I have experienced, more initial correctness, and the resulting code is fast. If you are in a hurry, or don’t have the chops to figure out cryptic errors, it’s not time for you to use Crystal and Lucky yet.