Archive for the ‘3. Public affairs’ Category

Week 6 at an Unbootcamp

Friday, June 16th, 2017

No ordinary week

“Cycle 47” was a special week in my career makeover at Learners Guild. The old Guild is no more; enter the new Guild.


First, the week was abbreviated, for me, by a day and a half of jury duty. I was confident I would never survive the peremptory challenges in any jury selection: I’m too iconoclastic and steeped in litigation. This was a residential eviction case, where the defendant was claiming retaliation. I myself had just moved out of a co-op in anticipation that its members would perpetrate retaliatory eviction against me. How could the landlord’s attorney let me onto that jury? But she did. The tenant’s attorney asked whether, despite my involvement in numerous prior eviction cases, I could be unbiased in this case, and I said no, I could not be unbiased. But he still didn’t challenge me! Both attorneys exhausted their challenge allotments on persons who, in my lay judgment, were less risky for their clients, but not on me. So I actually got onto the jury. We heard our instructions and witnessed a couple of hours of botched testimony by a landlord witness, who said his firm normally complies with the law on evictions but admitted he didn’t know whether it had complied in this case. Why this case ever reached trial was a mystery to me. And the next morning we were informed that the case had settled, so we were let loose. Before leaving the courtroom, I asked the landlord’s attorney whether her client couldn’t have prepared better for this trial, and she agreed.

Back at Learners Guild, I resumed work on my Goal on Wednesday. “My”, because the Algorithm had assigned me to my second-choice (solo) Goal rather than my first-choice (team) Goal. Had I been on a team, I would have asked to have my jury duty rescheduled, in fairness to my teammate.

The nitty gritty

The Goal required solving 8 logical problems, called “coding exercises”:

  1. Scrabble tally: Given a list of tiles already used, return a tally of all letters, grouped by the counts of their remaining tiles. I chose to implement it generically, so it would work for any language’s version of Scrabble, or any other structurally identical situation.
  2. Word lookup in a string: Given a string (i.e. a line of text) and a number, return the word that is at the number’s position in the string, where the first position is zero. I chose to implement it with the XRegExp library, so it would work for any language, not just English. Whether for English or generically, one must define “word”. For this exercise, I defined the words of a string as what are left when we treat any sequence of characters matching the regular expression “[^\pL\pN]*\pZ[^\pL\pN]*” as a delimiter. That means any sequence of 0 or more characters other than letters and/or numbers, provided that it includes at least 1 separator character (using Unicode’s definitions of letters, numbers, and separators). There is no universally satisfactory rule defining “word” in all languages, or even in English. Mine was a quick-and-dirty rule. It classifies “M&M.” as a word in “He ate an M&M.”, and “Mr” as a word in “Mr. Smith”.
  3. Translator between (ordinary) decimal numbers and binary numbers with the Fibonacci sequence as the base. (We who love to solve problems don’t ask, “What am I ever going to need this for?”.)
  4. Function that removes vowels, defined as “a”, “e”, “i”, “o”, “u”, and all non-a-to-z characters (even A-to-Z), from a string. Defined naïvely and Anglocentrically, so I couldn’t try to universalize it. Lucky for me; that could have taken a lifetime.
  5. A search tool to find a value inside a JSON string. JSON seems to have taken over supremacy from XML as a format for exchanging complex bodies of information. Its advocates say it’s “much simpler”.
  6. Date reformatter: Converts from any of 6 formats to the ISO 8601 standard format, like “2017-06-16”.
  7. Music player: A web page that, as soon as you open it, plays the notes of an octave and, optionally, a chord. Why was this included here? Sure, it’s coding, but it also involves researching how to generate and play sound. That’s what took the most time for me.
  8. Parenthetical redundancy eliminator: Given a string, return the same string, with any redundant pairs of parentheses removed. Not as simple as it may seem. For example, “ak⁾vo (((water [[(H₂O)]])))” contains no redundant pairs of parentheses, because brackets and full-width parentheses are not (in my solution) classified as parentheses.

That, then, is a taste of the kind of thinking we learn to practice at the Guild.

Would the detour hurt my grade?

Given the interruption, I doubted I could complete the 1-week Goal’s requirements by Friday afternoon. My coach reassured me that my completion score on this Goal would not suffer from my jury-duty absence, because scores were adjusted for time off. In any case, I managed to finish the 8 problems on Thursday, so I used the remaining time to start some of the Goal’s optional work.

Anyway, grades didn’t exist at the Guild. Statistics and levels did, though, and it’s hard to avoid assimilating any quantitative indicator into one’s mental model of grading at school. Even without grades, I have been seeing a considerable amount of grade anxiety among Learners, attached to what are the closest approximations to grades.

Revolution from above

Little did my coach or I know that the week’s work was not going to be scored for completion at all. We did get a hint of this on Monday, when the staff advised us not to worry about completion scores that week and to focus only on learning as much as we could. But the deeper reason for this advice was revealed only on Friday.

Learners Guild solicits comments from its Learners, and it gets many unsolicited comments as well. Its staff makes changes in the process in response to those comments.

On Friday afternoon, when I normally would have been composing this blog entry (well, a blog entry, since the content would have differed), we spent 3 hours learning of, asking questions about, and discussing a new batch of changes to the system. This one was no set of incremental adjustments. It was fundamental.

The Guild has now jettisoned its entire apparatus of statistical progress (and regress) indicators, which had been refined for months and was about to be re-refined. By one staffer’s own testimony, the repeated attempts to make that system satisfactory had led to a conviction that doing so was hopeless, so, in mid-tweak, the system was trashed.

The set of “levels” through which Learners moved on the basis of their statistical indicators has likewise been thrown overboard. This vertical (higher and lower) metaphor has been replaced by a horizontal one: “phases”.

Phases might seem like a mere renaming of levels, but they are not:

  • The phases differ in their content. Phases 1 and 2 are self-paced individual work devoted to mastery of prescribed fundamentals. In those phases, no more do Learners vote on preferred projects; instead, there is a fixed set of skills to be acquired. Phase 3 is team-based small projects with choice, like what I have been mostly doing up to now. Phase 4 is collaborative work on real (not just realistic) open-source projects. Those two project phases, 3 and 4, are not rigidly tied to a 1-week cycle. And Phase 5 is preparation for the reality of the external market for the Guild’s product, web application developers.
  • Admission into the next phase depends on a 1-week testing and interviewing filter. We should expect on average to be ready for that after about 5 weeks in a phase, but we must get into the next phase in no later than 8 weeks; otherwise, our progress is not satisfactory. If we don’t get admitted on our first attempt, we get an additional opportunity to try. Phase 5 is not subject to that limit if it would eject us before our 40 weeks at the Guild has come to an end.
  • Learner-to-learner coaching is no longer a formal element of the system. Instead, we are supported by “Software Engineering Practitioners”, who are Guild employees. To see the qualifications of an SEP, look at the current hiring announcement. If you yourself are qualified, please apply and mention my blog as your referral source. While coaches are no more, the Guild hopes that its abandonment of microstatistical indicators will make Learners more relaxed about taking time from their work to help other Learners. Thus, if it works, coaching will become culturally pervasive, instead of being an assigned temporary role.

The path from here to there

The Guild seems to have defined a reasonably smooth transition for existing Learners into the new order. This week we are on a pre-scheduled 1-week break. Next week we all undergo a “sorting” process. To prepare, each of us has notified the Guild which phase he or she asks to be evaluated for. Starting Monday morning, we work individually on projects constituting take-home tests for the phases we have chosen. Starting Wednesday afternoon, we get interviewed by SEPs on the solutions we produced, to evaluate our (in)ability to explain and reason about our own solutions and possible alternatives. At the end of the week we learn whether we have been admitted to the phases we selected; if not, we are admitted to the preceding phases.

The Guild program lasts, nominally, 40 weeks (plus 1 or 2 break weeks). If the transition places a Learner into a phase that makes the program longer, then it is extended for that Learner.

I have been at the Guild for 6 weeks now. That should qualify me to get into Phase 2. But the Guild advises us to try to get into the most advanced phase we “think” we “can” get admitted to. I have probed for clarity about that, and I believe the intended meaning is the most advanced phase we believe the SEPs have a nontrivial probability of letting us into. So, if my subjective probability of success in getting into Phase 3 is 30%, I should try for Phase 3. That’s close to my subjective reality, so I have asked to be tested for Phase 3. If I were to succeed, I would feel a need to backfill my fundamentals, and I’d be doing so under pressure to complete current projects, but that’s probably typical of the real software-development world.

Who’s the guinea pig?

Abrupt change can be exhilarating or frightening, and the changes can benefit some while harming others. The Learner population is diverse in many ways, so the personal impacts of this redesign will vary.

At least one Learner has said that the Guild feels like a laboratory in which she is one of the subjects in an experiment.

There is a basis for that impression. The Guild exists only in Oakland but aspires to replicate itself. We are testing each iteration of its design and helping the Guild decide what to keep and what to change. The system must work for us before it can be scaled up and out.

While acknowledging the validity and empirical basis for the sense that the Guild is experimenting on us, I have a different feeling. For me, yes, there is an experiment going on, but in that experiment I am the experimenter and the Guild is the subject.

I am conducting an experiment (or, perhaps better, pilot study) testing the hypothesis that there is no chronological limit to professional rejuvenation, even in information technology. I invited the Guild to join that experiment, and it agreed. As time passes, I keep providing stimuli to the Guild, and it keeps responding. Step by step, I’m discovering what makes it tick and how to get my needs satisfied by this subject, who is simultaneously a subject in 120 other engineers’ experiments, testing similar but not identical hypotheses. In this interaction, I perceive more autonomy in myself than in the Guild.

I have also heard the suggestion that the Guild may be breaking its contract with Learners when it changes its system. I have my doubts about that, and in fact I would probably entertain such a notion if the Guild refused to change its system, because, arguably, that would be negligence.

But these are subjective matters. If you are considering applying to the Guild, considering the testimony of other Learners and me may help you predict what your own interpretations would be. If you are risk- and change-acceptant, I believe that’s a good sign of compatibility. Perhaps only such persons are a good fit for contemporary software development work anyway.


Our mistakes

Friday, May 26th, 2017

GiveWell has a website with a common layout but an unusual twist. There are 7 topics on its navigation bar. What is special is topic 5: “Our mistakes”.

Vicarious liability for housing discrimination clarified

Saturday, February 25th, 2017

If you live in a housing community (i.e. a common interest development, such as a condominium association or a housing cooperative) and another resident of that community commits a discriminatory or harrassing act against you, whom can you blame? The other resident only, or also the community association?

Possibly both, it seems. Final Rule FR-5248-F-02 was issued by the U.S. Department of Housing and Urban Development on 14 October 2016. It provides, among other things, that “A person is directly liable for … [f]ailing to take prompt action to correct and end a discriminatory housing practice by a third-party, where the person knew or should have known of the discriminatory conduct and had the power to correct it.”

Community associations  have some regulatory powers over their member/residents, and also some duties to exercise those powers. Those powers and duties are spelled out in applicable statutes and in the communities’ own governing documents. For example, an association’s governing documents may prohibit a resident from disturbing, by noise or otherwise, residents in other units and may grant the association’s board of directors the power to enforce that prohibition. If a racist resident were to harrass or disturb a neighbor because of that neighbor’s race, and if the association failed to “take prompt action to correct and end” that behavior, the association could be vicariously liable for that violation of federal fair-housing law.

Below I offer some thoughts about how to manage this risk. But first here is the HUD discussion of the arguments made about how this new rule applies to community associations:

Issue: A commenter expressed concern that proposed § 100.7(a)(1)(iii) creates liability on the part of a community association (homeowner association, condominium or cooperative) for the illegal acts of residents over whom they have no control. The commenter urged HUD to remove or revise the proposed rule’s extension of direct liability to community associations for the discriminatory actions of non-agents. The commenter stated that community associations generally lack legal authority to mandate that residents take actions described in the preamble of the proposed rule because the associations cannot evict homeowners or otherwise impose conditions not specifically authorized by the association’s covenants, conditions, and restrictions (CC&Rs) or state law. The commenter suggested that if the language in § 100.7(a)(1)(iii) remains, it should be modified to clearly state which terms and conditions in association bylaws and regulations constitute a duty on the part of an association or its agents to investigate and punish residents for illegal discriminatory housing practices.

HUD Response: As noted above, HUD has slightly revised § 100.7(a)(1)(iii) to clarify that a housing provider is liable under the Fair Housing Act for third-party conduct if the provider knew or should have known of the discriminatory conduct, has the power to correct it, and failed to do so. HUD also notes that the rule does not add any new forms of liability under the Act or create obligations that do not otherwise exist. The rule does not impose vicarious liability (see § 100.7(b)) on a community association for the actions of persons who are not its agents. Section 100.7(a)(1)(ii) describes a community association’s liability for its own negligent supervision of its agents, and § 100.7(a)(1)(iii) describes a community association’s liability for its own negligence for failing to take prompt action to correct and end a discriminatory housing practice by a third-party. With respect to § 100.7(a)(1)(iii), the rule requires that when a community association has the power to act to correct a discriminatory housing practice by a third party of which it knows or should have known, the community association must do so.

As the commenter recognizes, a community association generally has the power to respond to third-party harassment by imposing conditions authorized by the association’s CC&Rs or by other legal authority. (31) Community associations regularly require residents to comply with CC&Rs and community rules through such mechanisms as notices of violations, threats of fines, and fines. HUD understands that community associations may not always have the ability to deny a unit owner access to his or her dwelling; the rule merely requires the community association to take whatever actions it legally can take to end the harassing conduct.

What does this rule suggest for risk management by community associations? Here are some thoughts:

  • The association’s governing documents should perhaps state not only that the association prohibits itself from engaging in illegal discrimination or harrassment, but also that it prohibits such conduct on the part of its members.
  • To the extent that the association has the power to accept or reject new members and residents (as cooperatives typically do), the governing documents should perhaps require the decisionmaker to make reasonable inquiries about any history of discriminatory or harrassing conduct by a candidate, and to reasonably avoid approving the admission of any candidate who could be expected to engage in such conduct.
  • The association should perhaps ensure that it has a procedure for the safe reporting of discriminatory or harrassing behavior by members and residents against one another and for the “prompt” intervention of the association to verify and deal with it.
  • Trying to avoid vicarious liability by giving up enforcement powers seems impractical in most cases. Members and residents depend on associations to keep the premises livable, if necessary by enforcing rules against disruptive residents.
  • This potential liability seems tricky enough that it may warrant a consultation with a qualified attorney about rules that an association proposes to adopt in order to deal with it. (I’m not one, in case that isn’t obvious.)

Thanks to Matt Ober, Esq., for calling community associations’ attention to this new rule.

Mostly wise advice on community property values

Friday, February 24th, 2017

Robert Nordlund has dispensed 10 ideas for increasing the value of property in a common interest development (a.k.a. housing community).

Ideas 1–7 seem, in principle, unproblematic:

  1. Budget accurately & honestly.
  2. Maximize curb appeal.
  3. Avoid deferred maintenance.
  4. Avoid special assessments.
  5. Create a culture of transparency.
  6. Build community.
  7. Adhere to your association’s rules and standards.

And Nordlund effectively explains why those ideas make sense.

The other 3 ideas, however, seem more self-serving.

Idea 8 is “Employ accredited, credentialed managers”. That may seem prudent, but it rejects the very idea of managing one’s own housing community. In some cases, this latter model offers compelling benefits similar to those enjoyed by do-it-yourself owners of single-family homes. Nordlund also claims that “Accreditation from CAI assures associations that they can expect professionalism from their managers.” That is an exaggeration. I have personal experience with a manager having such an accreditation but not professionalism.

Idea 9 is “Train board members”. Yes, but once they are directors it’s too late. The mere decision to become a candidate in an election for director is almost destined to be an irrational decision without training in the powers, duties, liabilities, and risks of service as a director. Thus, all members of a common interest development need access to training if the CID is to function effectively. Nordlund also describes “CAI board training” as if it were synonymous with board training. CAI (the Community Associations Institute) is hardly the sole authority, and in fact regularly lobbies for legislation hostile to the exercise of democratic governance rights by members of CIDs.

Idea 10 is “Team up with knowledgeable business partners”, including “an accountant, attorney, banker, insurance agent, and a reserve study professional”. Fine, but, once again, Nordlund adds a plug for CAI: “professionals who earn CAI’s ‘Educated Business Professional’ distinction demonstrate they know how to help community associations foster excellence and avoid expensive mistakes and conflicts”. That is nonsense. Possessing the “CAI Educated Business Partner member distinction” (Nordlund names it incorrectly) requires listening to 3 hours of lectures, passing an examination, and thereafter remaining a member of CAI at $605 per year—nothing more. The lectures contain useful information, indeed, such as the facts that landscaping insurance does not always cover snow plowing and board meetings often last about 2 hours. Even memorizing all that information does not “demonstrate” that vendors “know how to help community associations foster excellence”.

In conclusion, my recommendation, if you are helping to govern a common interest development, is to read and heed Nordlund’s points 1 through 7—and stop right there.

Berkeley Town House 2012–2016 litigation: documents

Friday, February 24th, 2017

I have made available here public records of two related lawsuits involving Berkeley Town House Cooperative Corporation (“BTH”). This litigation began in March 2012 and ended in October 2016.

The first suit was “Jonathan Pool vs. Berkeley Town House Cooperative Cooperation, Almalee Henderson, Judith Wehlau, Charles Tuggle, Katherine Miles, Nancy Epanchin, Raymond Dirodis, Rita Zwerdling, Cheryl L. Samson” (case RG12620088). It was filed on 6 March 2012 in Alameda County Superior Court, California.

The second suit was “Jonathan Pool vs. Almalee Henderson, Judith Wehlau, Charles Tuggle, Katherine Miles, Nancy Epanchin, Raymond Dirodis, Rita Zwerdling” (case RG15779830). It was filed on 29 July 2015 in Alameda County Superior Court, California.

To see the records, you can visit:

To search within either collection, you can enter a search term and click on “Search”.

Both cases were classified as “complex” and assigned to Department 17 of the court.

The public court records in these collections are available also from the Superior Court itself, too, at its website, but they are not topically indexed, not searchable for words and phrases, and (in most cases) not free unless you inspect them at the court.

There are also some other entries in this blog about BTH litigation.

Painting quality—hype versus reality

Thursday, December 15th, 2016

Allied Construction Services, in Livermore, California, advertises “top tier workmanship” and 100% customer satisfaction. It just finished painting the portion of the exterior of the building I live in (Berkeley Town House) outside my apartment. This picture tells a different story. Judge for yourself.


Why are co-op share loans scarce?

Saturday, November 5th, 2016

Residents of housing cooperatives know that there are few banks or credit unions willing to make loans to them secured by their shares of stock in the cooperatives, even though such loans are treated as loans on residential real property, just as loans to owners of condominia are.

Why the lack of competition in the market for co-op share loans? One California company in the business offers an explanation, rooted in the rarity of housing co-ops and the risks incurred by lenders in the event of a default.

Agenda? What’s that?

Sunday, October 30th, 2016

Some laws require things they don’t define.

“Agenda” is one of those things.

A quarter of Californians live in “common interest developments”, such as condominium associations and cooperatives, and those CIDs must govern themselves in accord with the Civil Code, which requires their boards of directors to announce the agendas of meetings in advance.

But what is an agenda? The law doesn’t say. So, what do lawyers do when their clients ask them how to comply? Here’s what one lawyer does: Adrian Adams, Esq., says he looks up “agenda” in Complete Idiot’s Guide to Parliamentary Procedure. There he finds the statement:

If you really want to manage your meeting, you need an agenda. With an agenda, the specific items that are expected to come up at a meeting are placed into the order of business.

So, there you have it. You can pay your attorney to look it up in the Complete Idiot’s Guide, copy it, and send it to you. Or you can look it up yourself.

Actually, Adams deserves credit for a bit more than that, because he gives advice and an example. He says an agenda must be specific enough to let those who read it anticipate what will be discussed. His example is “Maintenance”, which, he says, would not be specific enough to forewarn readers that the board is going to discuss major projects such as reroofing a building.

Should you rely on that advice? Adams cites no other authority for this assertion, so presumably he is the authority, but he’s one attorney among thousands. And how does this example generalize? Can “maintenance” ever be an agenda item? If so, what can it cover? Could “reroofing” cover everything from a discussion of the roof’s life expectancy to awarding a contract for a reroofing job, or would the agenda need to disclose that a contract might be awarded at the meeting? What can the president talk about under “President’s report”? If “Assessments” appeared in an agenda, could the board then increase everybody’s monthly payment by 20%? Don’t ask me. Unlike Adams, I don’t claim to know.