Welcome to my website!
I’m Jonathan Y. Chan (jyc
, jonathanyc
, 陳樂恩, or 은총), a
🐩 Yeti fan,
🇺🇸 American,
and 🐻 Californian,
living in 🌁 San Francisco: the most beautiful city in the greatest country in the world.
My mom is from Korea and my dad was from Hong Kong.
I am a Christian.
My professional endeavors include:
VLOOKUP
s on billions of rows;
Parlan was a spreadsheet with an interface and formula language that looked just like Excel. Under the hood, it compiled formulas to SQL then evaluated them like Spark RDDs. Alas, a former manager’s prophecy about why startups fail proved prescient…
I also helped out with things like trees, road markings, paths, and lines of latitude!
… including copy-paste,
a high-fidelity PDF exporter,
text layout,
scene graph code(gen),
and putting fig-foot
in your .fig
files—while
deleting more code than I added!
Lawrence Jones: … it’s not our job; we shouldn’t have to live in fear while they figure out what’s going on. Put him in a mental institution or a jail and let the system figure it out. People are having to duck and die on the trains and the buses, walk through the street—this is just one case, but it’s happening all across the country. And it’s not a money issue. Billions of dollars have been given to mental health and the homeless population. A lot of them don’t want to take the program; a lot of them don’t want to get the help that’s necessary. You can’t give them a choice. Either you take the resources we’re offering, or you get locked up in jail. That’s the way it has to be now.
Brian Kilmeade: -or involuntary lethal injection or something.
Source: Brian Kilmeade on murdering homeless people (September 10, 2025)
Jimmy Kimmel: We hit new lows over the weekend with the MAGA gang desperately trying to characterize this kid who murdered Charlie Kirk as anything other than one of them and doing everything they can can to score political points from it. On Friday, the White House flew the flags at half staff, which got some criticism. But on a human level, you can see how hard the president is taking this. May I ask, sir, personally, how are you holding up over the last day and a half? I think very good. … This is not how an adult grieves the murder of somebody he called a friend. This is how a 4-year-old mourns a gold fish.
Source: Jimmy Kimmel on the murder of Charlie Kirk (September 15, 2025)
Donald Trump: It’s weird things going on in that household in the last couple of weeks. But the glass it seems was broken from the inside to the out. So it wasn’t a break-in; it was a breakout. I don’t know. You hear the same things I do.
Source: Donald Trump on the attempted murder of Paul Pelosi (2022)
8Cain spoke to Abel his brother. And when they were in the field, Cain rose up against his brother Abel and killed him. 9Then the Lord said to Cain, “Where is Abel your brother?” He said, “I do not know; am I my brother’s keeper?” 10 And the Lord said, “What have you done? The voice of your brother’s blood is crying to me from the ground.
Source: Genesis 4:8-10, ESV
From Towards a Liberatory Technology by Murray Bookchin, writing under the pseudonym Lewis Herber (emphasis mine):
Thus far every social revolution has foundered because the peal of the tocsin could not be heard over the din of the work-shop. Dreams of freedom and plenty were polluted by the mundane, workaday responsibility of producing the means of survival. Looking back at the brute facts of history, we find that as long as revolution meant continual sacrifice and denial for the people, the reins of power fell into the hands of the political “professionals,” the mediocrities of Thermidor. How well the liberal Girondins of the French Convention understood this reality can be judged by their effort to reduce the revolutionary fervor of the Parisian popular assemblies—the great sections of 1793—by decreeing that the meetings should close “at ten in the evening,“or, as Carlyle tells us, “before the working people come. . .” from their jobs. The decree proved ineffective, but it was well aimed. Essentially, the tragedy of past revolutions has been that, sooner or later, their doors closed, “at ten in the evening.” The most critical function of modern technology must be to keep the doors of the revolution open forever!
From How Americans Used Time in 1965 by John P. Robinson, published in 1977:
Numbers are minutes spent per day (out of 1440 total).
Activity | Minutes |
---|---|
Radio | 4.62 |
Television | 97.93 |
Conversation | 12.18 |
Outdoors | 4.14 |
Total Mass Media | 145.52 |
Total Leisure | 100.95 |
Activity | Minutes |
---|---|
Radio | 4.28 |
Television | 62.78 |
Conversation | 17.04 |
Outdoors | 0.97 |
Total Mass Media | 96.46 |
Total Leisure | 116.06 |
Activity | Minutes |
---|---|
Radio | 2.11 |
Television | 95.90 |
Conversation | 27.50 |
Outdoors | 1.77 |
Total Mass Media | 137.13 |
Total Leisure | 158.84 |
🎶 Ihni binni dimi diniwiny anytime
Ihni binni dimi dini one more time
Or ihni binni diniwiny anytime
Oh, Ihni binni dini one more time 🎵
Because of you – because you sacrificed so much for a people that you had never met, Iraqis have a chance to forge their own destiny. That’s part of what makes us special as Americans. Unlike the old empires, we don’t make these sacrifices for territory or for resources. We do it because it’s right. There can be no fuller expression of America’s support for self-determination than our leaving Iraq to its people. That says something about who we are.
From Remarks by the President and First Lady on the End of the War in Iraq.
…there is credible evidence from the same scholarly sources that articulate the unwillingness or inability of francophone sub-Saharan African nations to embrace these new forms of governance apparently because the status quo serves the interests of the political leaders of these countries and their external mentor-France. The various economic, cultural and security arrangements that France established with its former colonies in Africa in the 1960s have enabled the French to maintain unprecedented influence in the domestic and external affairs of nations such as Cameroon, Ivory Coast and the Democratic Republic of Congo, in over fifty years after independence. Sustained by institutions such as La Francophonie and France-Afrique, French leaders since De Gaulle have supported African leaders, even if those leaders were engaged in practices that stymied efforts at democratic transitions and transparent governance, as long as French strategic interests (political, economic and cultural) were advanced (Martin 1997). By contrast, the British have not sought to exert undue influence in the internal affairs of its former colonies in Africa and have largely left leaders and citizens of those nation to embrace the kinds of democratic transitions that are compatible with their values and historical experiences. It is against this background that this paper proposes a thorough re-examination of American support for democratic transitions in Africa in large part because it was American leadership (with the support of its western allies) that stimulated, energized and supported the movements for transitions across Africa in the early 1990s (Kpundeh 1992).
(Emphasis mine.)
From Ngwafu, Peter A. (2016) “U.S. Support for Democracy in Africa: Discrepant Orientations of Anglophone and Francophone Africa towards Democratic Practices, Good Governance & Human Rights,” African Social Science Review: Vol. 8: No. 1, Article 2. Available here.
… when reelected, McCarthy gained the chairmanship of the Senate Committee on Government Operations, a position he used, according to biographer David Oshinksy, “to undermine government morale, damage numerous reputations, and make America look sinister in the eyes of the world.”
We have all become very marker-prone, but shouldn’t we nevertheless admit that, in the end, despite all we try to do, the most effective “marker” for any intruders will be a relatively limited amount of sickness and death caused by the radioactive waste? In other words, it is largely a self-correcting process if anyone intrudes without appropriate precautions, and it seems unlikely that intrusion on such buried waste would lead to large-scale disasters. An analysis of the likely number of deaths over 10,000 years due to inadvertent intrusion should be conducted. This cost should be weighted against that of the marker system.
I was working on an Android app when the virtual device in the Android Emulator on macOS suddenly stopped being able to connect to the network. Using the in-device menus to restart network adapters didn’t help. Restarting the device also didn’t help.
I fixed it by using these commands to “cold boot” the emulator:
# INFO | Storing crashdata in: /tmp/android-jyc/emu-crash-34.2.14.db, detection is enabled for process: 30346
# Pixel_3a_API_34
This is very simple, but it doesn’t seem to come up when I search.
If you a have a component rendered with React.memo
and are trying to figure out which prop is causing it to re-render:
;
… you can (ab)use React.memo
’s second parameter, propsAreEqual
.
/**
* Lets you skip re-rendering a component when its props are unchanged.
*
* @param Component — The component to memoize.
* @param propsAreEqual — A function that will be used to determine if the props have changed.
*/
The default propsAreEqual
argument compares each prop with Object.is
.
We’ll do the same but also log when a prop changes:
;
;
Now we’ll get log messages when a prop changes:
Δ bar
Easy!
I'm computing the week number by dividing the number of days we are into the year by 7. This gives a different week number from ISO 8601. Suits are ordered diamonds, clubs, hearts, spades (like Big Two, unlike Poker) so that red and black alternate. On leap years there are 366 days in the year; the card for the 366th day is the white joker. Karl Palmen has proposed a different encoding.