Thursday, November 7, 2024

The 2024 Debacle: A View from the Trenches

The generals and historians will in due course write their analyses of the debacle that was the 2024 Harris campaign. This is the view of a foot soldier from the trenches.

I am part of a grassroots group that aims to get South Asian Americans engaged with the political process and to vote Democratic. From voter rolls, we create lists of not just South Asian Americans, but also South Asian Muslims and linguistic groups such as Gujarati speakers. Volunteers from around the country then phonebank to voters in the different groups. While a conversation between a Malayali volunteer and a Malayali voter will likely be in English, the ability to throw in a familiar word or turn of phrase helps to establish rapport, and the idea of calling someone with whom one has a shared linguistic or cultural connection brings in more volunteers. Not only does more volunteers calling fewer voters make for more efficient outreach, but also the pick-up / callback rates are higher – perhaps 12- 15% vs. the more typical 5-8%. Over the many tens of thousands of calls our volunteers made, we could tell in advance that things were not going well, long before November 5.


In 2020, South Asian Muslims were some of the most enthusiastic voters we called –  a volunteer who had a difficult call with a voter from another group might call into the South Asian Muslim list as a pick-me-up. We also had more South Asian Muslim volunteers. In 2024, there was a marked lack of enthusiasm. A common response was that Biden and the Democrats were not just failing to restrain Netanyahu and his cronies, but also that the US was complicit by supplying the bombs used by the IDF to slaughter civilians in Gaza. I estimate that Harris’ failure to put any daylight between her position and that of Biden, meant that she lost thousands of South Asian Muslim votes in Pennsylvania alone, perhaps as much as 10,000 votes. Many of the voters we called said they did not plan to vote, would vote for third party candidates, or even vote for Trump. This was also reflected in the lack of volunteers to make calls.


The hubris of the Harris campaign team in Pennsylvania was astounding. In 2020, we interacted with the Biden campaign like well-oiled gears. We would give them voter lists, they would create phone banks, we would make calls, and they would give us statistics that allowed us to gamify our phone banking to motivate volunteers, e.g., “Gujarati volunteers made so many more calls last weekend than Punjabi volunteers.” The 2024 Harris campaign declined to create phone banks for any list but their list of all Asian Americans and Pacific Islanders, a large and diverse group with little in common.. We eventually got access to create phone banks through another arm of the party. As the campaign also declined to give us access to a South Asian specific auto dialer, some of us paid for auto dialer access from our own pockets. Ignorance was evident when a Pennsylvania Harris team staffer, evidently from out of state, wasn't even aware that there were no Pennsylvania School Board races in 2024 and advised us to make sure we told voters to vote for Democrats from the School Board to the Presidency. The campaign staffer responsible for outreach to the AAPI community in Wisconsin not only failed to show up for a scheduled conference call, but also did not even bother to reply to our subsequent e-mail asking whether she cared to schedule a call for another time.


The Harris campaign lost the misinformation campaign with the voters we were contacting. While they were painting with the broad brush strokes of reproductive freedoms, the Trump campaign used targeted WhatsApp misinformation, for example “no Muslims died when Trump was President” to South Asian Muslims, or that Trump had been a better friend to India than Biden was, which is manifestly false, Our volunteers did their best to correct those misperceptions, but we lack the resources of a campaign that raised hundreds of millions of dollars. Appearances with people like Liz Cheyney do not carry weight with people who have traditionally voted Democratic.


I’ll go back to my foxhole now.

Saturday, April 23, 2011

Maintaining Eventual Path Consistency

In an earlier post (Eventual State Consistency vs. Eventual Path Consistency), I wrote about the difference between two types of Eventual Consistency. While Eventual State Consistency is the more familiar variety, there are applications that require Eventual Path Consistency.

We are of course discussing Eventually Consistent application configurations that relax Consistency in favor of Availability and Partition tolerance per the CAP theorem. If either of Availability and Partition tolerance can be relaxed, Consistency is easily provided, for example, by ensuring that a transaction is committed at the remote instance as part of committing it at the local instance.  The case where Consistency can be relaxed is not just more desirable in an “always on” business environment where the competition is just mouse clicks away - it is also technically more challenging (and hence more interesting to a geek like me).

In order to provide Eventual Consistency, an application has to (a) detect when two instances have diverged - i.e., are mutually Inconsistent - and (b) bring them back to a Consistent state.

Saturday, March 26, 2011

Eagle Scout Tracking Sheet

There is a lot to do for a boy scout to go from the rank of Life to the rank of Eagle.  On Google docs I have created a spreadsheet that a boy scout troop can use to track the progress towards the rank of Eagle of Life scouts.  My intention is for this to be a tool for scouts themselves to use, rather than having their parents or troop adult leaders using this.  In addition to helping them see where they are in the process, I think seeing where their peers stand helps to motivate scouts!

Tuesday, March 15, 2011

Software Compared to Cities

(I have previously posted earlier versions of this write up elsewhere.)

Why should a system that is working well need to be replaced?

Successful software systems are like cities.  There are cities in Europe that have been continuously inhabited for thousands of years.  London or Rome today would be unrecognizable to Julius Caesar, yet the old cities were never abandoned and replaced - they were just continuously re-developed over the centuries.  Although we like to discuss replacing major software systems because their quirks annoy us, perhaps we should think of these as limitations that must be lived with, just as in these days of the automobile, we still deal with streets in Boston that were engineered for horses and wagons, and we have no intention of razing and rebuilding downtown.

Sunday, March 13, 2011

Eventual State Consistency vs. Eventual Path Consistency

Overview

Brewer’s CAP Theorem says that a distributed application has to relax at least one of three properties - Consistency, Availability and Partition Tolerance.

It is often Consistency that is relaxed in favor of Availability and Partitioning.  For example, several popular database engines provide for geographically distributed instances, each of which commits its transactions locally, and then replicates to one or more remote instances.  In the event these updates collide with (or conflict with) updates made locally, corrective action can be initiated, either with a blanket rule such as “local always wins”, “remote always wins” or “ignore”; or with something more sophisticated, such as invoking application logic to take corrective action.

However, there are applications where detection of colliding updates does not suffice to ensure Consistency (where Consistency is defined as the database always being within the design parameters of the application logic – for example, the “in balance” guarantee that the sums of the assets and liabilities columns of a balance sheet are always equal).  There are applications where Consistency may require that the data read by application logic, not just the updates. must also be validated when checking for collisions.

I refer to collision detection by validating updates alone as Eventual State Consistency, and collision detection by also validating data read as Eventual Path Consistency.

Saturday, February 12, 2011

From 44 seconds to 27 seconds - Simple Tuning of the 3n+1 Benchmark on GT.M

The bottom line first: with a little simple tuning, I was able to improve the performance on my laptop of my benchmark of the 1 to 1,000,000 3n+1 problem.
  • For four worker processes:
    • from 44 to 27 seconds
    • from to 72,026 to 109,311 reads/second
    • from to 49,298 to 74,828 updates/second
  • For eight worker processes:
    • from 248 to 30 seconds
    • from 12,782 to 109,285 reads/second
    • from 8,750 to 74,802 updates/second

Wednesday, February 2, 2011