17 May 2026

Christ Never Faileth

I was reflecting on the moving and inspired words from 1 Cor 13. Then I thought this is a description of the Man of Kindness, the Savior himself.

4 Christ suffereth long, and is kind; Christ envieth not; Christ vaunteth not Himself, is not puffed up,

5 Doth not behave Himself unseemly, seeketh not His own, is not easily provoked, thinketh no evil;

6 Rejoiceth not in iniquity, but rejoiceth in the truth;

7 Beareth all things, believeth all things, hopeth all things, endureth all things.

8 Christ never faileth

I'm grateful for Him and His example to me. I want to be more like Him.

09 January 2026

I Want To Live in This Country - Despot-free

The recent cold-blooded murder of Renee Nicole Good, a United States citizen, in Minneapolis is revolting and saddening.

Official reactions have invited the population at large to trust swift, evidence-free exoneration instead our own lying eyes.  I have watched the video and can confirm that the exoneration is warrantless and it is clear to me that the agent should be prosecuted for murder.

This language from the Declaration of Independance is directly relevant to our time:
He has affected to render the Military independent of and superior to the Civil power.

For Quartering large bodies of armed troops among us:

For protecting them, by a mock Trial, from punishment for any Murders which they should commit on the Inhabitants of these States:

For cutting off our Trade with all parts of the world:

For imposing Taxes on us without our Consent:
Turning your head away now is active blindness.

I want to live in this kind of country:
  • Law enforcement that identifies themselves
  • Law enforcement that do not cover their faces in masks, like bandits or kidnappers
  • Law enforcement that is held accountable for their actions
  • No Soldier shall, in time of peace be quartered in any house, without the consent of the Owner, nor in time of war, but in a manner to be prescribed by law.
  • The right of the people to be secure in their persons, houses, papers, and effects, against unreasonable searches and seizures, shall not be violated, and no Warrants shall issue, but upon probable cause, supported by Oath or affirmation, and particularly describing the place to be searched, and the persons or things to be seized.

19 September 2025

I Want To Live in This Country - Speech

This is the country I want to live in:

Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress of grievances.

And:

43 ¶ Ye have heard that it hath been said, Thou shalt love thy neighbour, and hate thine enemy. 44 But I say unto you, Love your enemies, bless them that curse you, do good to them that hate you, and pray for them which despitefully use you, and persecute you;

Instead, the one I live in right now:

And I've been very clear from the moment that I have become chairman of the FCC, I want to reinvigorate the public interest. What people don't understand is that the broadcasters, and you've gotten this right, are entirely different than people that use other forms of communication. They have a license granted by us at the FCC and that comes with it an obligation to operate in the public interest. And we can get into some ways that we've been trying to reinvigorate the public interest and some changes that we've seen. But frankly, when you see stuff like this, I mean, look, we can do this the easy way or the hard way. These companies can find ways to change conduct and take action frankly uh on Kimmel or you know there's going to be additional work for the FCC ahead.
-- Brendan Carr

This is a twisting of "public interest" to satisfy an audience of one, your dear leader. The FCC's legitimate "public interest" charter is to manage the airwaves in a way that balances fair access, freedom from government interference in protected speech, and improper frequency broadcasting interference.

The murder of Charlie Kirk is a horrendous and despicable act by an evil person, and you, Brendan sir, have made it worse by not only explicitly refusing to follow 47 U.S. Code § 326, but doing so in a premeditated way, complete with current and future threats by name as a stated punishment for protected speech.

"Easy way" or "hard way" is the language of the mob, not an official who swore to support and defend the Constitution.

18 June 2025

A Blaze of Light

Like solar flares, our thoughts, they zap and flit
And make us want to slot and clip
And organize to tale or song.

Then the through line, 
The red line, 
The bottom line, 
They box us in, 
And keep us rough,
And mean, 
And quick.

Until we float above, and look, 
And comprehend
The things we couldn't see, 
The flares of others,
Bright, 
And sharp. 

Against the edge,
Occluded by our satellite,
Our blind spot, 
But not all. 

Their corona streams around
And slides and twists
To our perceiving eyes. 

But only if we watch,
And wait,
Are still enough to see,
To act aright,
And love.

15 January 2025

Ways of Blindness

We want hard 
And feel fast
and overlook 
the others' grief
others' sorrow 

We can't see 
Because we look
and want to look
above the rest
actively miss him
or mishear her 

Where would we
Get calm and reflect? 
is not the other
real too?

What about inside?
Where does the look go
that we miss
actively lie
by misseeing

When life is short
And hearing takes long
And what we miss
Will not repeat 

Every sight
Every together
Every one
Counts

07 January 2025

Oneita

he told his mom, I think she might... be the one
she told him... go and buy a ring
she drove past when he was getting home
before he knew her friends would come 
they met, they saw, they joined as one

but then he saw the writing on the wall and signed
she went with and welcomed little Jim
then back home where Steph came in
he saw and welcomed her ambitious words
she'd wait again, when he wasn't home

they wanted more, but then they came another way
two red heads, first John, then Phil
and growing up they brought their light
and shone and burned, she loved them right

but then he could not drive himself back home
it broke her heart when Phil was gone
but she still had Jim, and John
they'd call, invite and hold so many little ones 
who all grew up, and left to live their own

then off to England, to help them write
evr'y name and date and place of 1881,
and back again, and to Nauvoo to count, and write, and do
but crack, it didn't hold, and Jim was gone 
way before his due

when Milton came she welcomed him
they lived and loved a wave of little ones 
the heart that loved then beat no more
and quiet then, and lonely too
and slower then, and slower too

she loved and cared and started to review
and count and tell and hold all them
all those who wandered through 
then two angels came to care and live and watch
they stayed, she lingered there

then softly and quietly, in the night, she too was gone
she'd taken flight, and hoped that Jim would hug her tight 

04 March 2020

Procrastination is Your Friend

My friend told me:

    Procrastination is your friend when it's time for bed.

I think that is a true statement.

25 September 2019

Stress on a Cracked Foundation

Think about a house standing strong.  Imagine a crack in the foundation.  Maybe the ground under the house has settled unevenly.  Maybe things have shifted since the house was built.

If it has gone long enough that the foundation is cracked, there is a failure waiting to happen.  Putting enough stress on a cracked foundation will lead to a dramatic failure.

This is like living at the edge of health: physical, social, emotional, or spiritual.  If you aren't constantly investing in repairing and strengthening your foundation, you are more susceptible to unexpected failure.

I want to eat healthy food, keep in touch with good friends, keep enough space in my life, and stay strong in my faith.  So that when the storms of life come, I can get through the challenging times.  When I ask God for help, I can be more confident I will be able to receive His help to bridge me back to a stable and happy future.

10 June 2019

Discover, Receive, Commit

Yesterday, I was learning with my peers in a priesthood quorum at church.  The topic was answered prayer.

The combined message of three scriptures stood out to me:
- Matt 6:8 discover vs beg
- Jacob 4:10 receive vs command
- James 1:5-7 commit vs worry

The combination of receiving God's help, discovering what He has in store, and being pre-committed to act on His generous & challenging prompting is a magic combination to me.

It helps me feel a sense of sufficiency when facing my set of challenges today.  I'm grateful for the learning & strengthening environment afforded to me in my priesthood quorum.

29 May 2019

Tuning G1 GC for Cassandra

Tuning G1 GC for Cassandra is too complicated, but it can make a big difference in cluster health.

Symptoms:

  • High p99 read/write latencies (because of long GC pauses)
  • High CPU causing lower read throughput (because of low GC throughput)
  • Dropped mutations (because of full GC collections on write-heavy clusters)
Here are some options that made a difference for me:
  • JVM: options for getting GC details out for inspection
    -XX:+PrintGCDetails
    -XX:+PrintGCDateStamps
    -Xloggc:/var/log/cassandra/gc.log
  • JVM: options for having enough buffer for collections
    # Pre-allocate full heap
    # Pre-size new size for high-throughput young collections
    -Xms24G
    -Xmx24G
    -Xmn8G
  • JVM: options for avoiding longer pauses (do reference scanning concurrently with app)
    # Have the JVM do less remembered set work during STW, instead
    # preferring concurrent GC.
    -XX:G1RSetUpdatingPauseTimePercent=5
    # Scan references in parallel to avoid long RSet scan times
    -XX:+ParallelRefProcEnabled
  • JVM: options for better young collection throughput (avoid copying short-lived objects)
    # Save CPU time by avoiding copying objects repeatedly
    # Improve collection throughput by making heap regions larger
    -XX:MaxTenuringThreshold=1
    -XX:G1HeapRegionSize=32m
  • JVM: option cocktail to reduce risk of long mixed collections
    # Avoid to-space exhaustion by starting sooner, capping new size, and being more aggressive during mixed collections
    -XX:InitiatingHeapOccupancyPercent=40
    -XX:+UnlockExperimentalVMOptions
    -XX:G1MaxNewSizePercent=50
    -XX:G1MixedGCLiveThresholdPercent=50
    -XX:G1MixedGCCountTarget=32
    -XX:G1OldCSetRegionThresholdPercent=5
    # Reduce pause time target to make mixed collections shorter
    -XX:MaxGCPauseMillis=300
  • JVM: option to get extra buffer for use in allocation emergency
    # Reserve extra heap space to reduce risk of to-space overflows
    -XX:G1ReservePercent=20
  • JVM: options for top collection throughput during pauses
    # Max out the parallel effort during pause
    # Set to number of cores
    -XX:ParallelGCThreads=16
    -XX:ConcGCThreads=16
  • Cassandra: option to avoid excess spikes of garbage from compaction
    # Reduce load of garbage generation & CPU used for compaction
    compaction_throughput_mb_per_sec: 2
  • Cassandra: option to aggressively flush to disk on write-heavy clusters
    # Reduce amount of memtable heap load to reduce object copying
    memtable_heap_space_in_mb: 1024  # instead of default 1/3 heap
The net effect of the above combined settings is as follows:
  • for a read-heavy cluster on i3.4xlarge:
    • young collection p90 pause times around 50ms
    • mixed collection p90 pause times around 90ms
    • no Full GCs, no dropped mutations
  • for write-heavy clusters on r5.2xlarge:
    • young collection p90 pause times around 175ms
    • mixed collection p90 pause times around 175ms
    • no Full GCs, no dropped mutations
Tuning process:
  1. Turn on GC logging
  2. Gather pause times for young collections, mixed collections, and any full collections
    • get logs for at least 2-3 cycles of young => mixed/full transitions
  3. Decide which of the above you want to optimize for, pick a single set of settings
    • Apply the settings to one node on one rack
    • Decide whether it had the desired effect
    • Tweak and repeat on single node until you get to a stable point
  4. Apply settings to all nodes on one rack
    • Wait for a peak traffic period or apply stress
    • Compare results from non-tuned racks with the tuned rack
    • Tweak and repeat on single rack until settings are rock solid
  5. Apply settings to full cluster
    • Wait for a peak traffic period or apply stress
    • Make sure settings are rock solid for full cluster
  6. Start again on step 2 until you have nothing left to tune

20 May 2019

Another Poem, With You

With You

Piece of pie
Clear blue sky
Mountain lakes
Leaves, and rakes

And when I am with you,
Two hearts filled with joy.
Our time passes softly,
Two hearts, one girl, one boy.

Teach me love
Teach me caring
I'll teach you happiness
I'll teach you daring

And when I am with you,
Two hearts filled with joy.
Our time passes softly,
Two hearts, one girl, one boy.

Another Poem, Longer With You

Longer With You

It took a little bit of time
for me to see and make them rhyme,
and when beneath the pen, the words, they stuck,
it took a bit more time to see, and pluck
them out for you, to read,
and us to hear, and laugh,
and spend a day, a year
together, and whether you want to
or need to depart, the mem'ry
of this time together
might smart,
but mem'ry is short
and time will start to pull
and stretch and fill our heart
with new times together
when never we part.

Another Poem, Knowing Where

Knowing Where

Came home this evening
  at quarter to six.
Met with the Bishop
  who told us to fix
sev'ral mistakes
  on forms one, five, and six.

We're going on a mission to
  serve our dear Lord.

Where will He send us?
  Where will we go?
Over the oceans,
  or closer to home?
Who will we serve with?
  How long to be gone?

We're going on a mission to
  Serve our dear Lord.

Fam'ly will miss us;
  we'll miss them too.
Places we've lived in will
  see someone new.
Trust in our Savior, and
  live in His care.

We're going on a mission, and
  He'll meet us there.

19 May 2019

Another Poem, Riff Off 1 Cor 13

Perfect?

Completeness:
What I sought
when I was small.

Clarity:
What I thought
that I could call.

Calm:
What was not
were I to fall.

But if it fails,
or vanishes away,
or if I'm blind,
or mostly so today.

There is a promised tomorrow,
when that completeness will come
when I will see face to face
and know as I am known.

18 May 2019

Another Poem, Finding Encouragement

Here is another poem, born out of a desire to help my daughter get through the last few weeks of high school.


Born Again

Say your piece.
Toot your horn!
Do your thing.
Sing your song!

Then look and see
If it was what
You meant to say or do
Then cut.

And if you meant to do it different,
Or if you notice something new,
Then aren't you glad you started out,
With confidence to see the world,
To learn and do?


Sometimes it takes a lot of confidence to overcome the resistance you feel to take the next step in life.

Another Poem, Hymn Text

Here is a poem that came out when I couldn't sleep and was thinking about an earlier attempt at writing a hymn for the Church of Jesus Christ of Latter-day Saints, of which I am a member.


Learning and Growing

Learning and growing are part of life's purpose,
Even when happiness seems far away.
Peace in this life comes from completely accepting
The plan of our Savior, beginning His way.

Jesus desires to teach us and guide us,
He will protect us as we find our way.

When evil conquers it cannot remain long,
If faced with commitment and faith in the Lord.
Confidence, trust in our saving Companion,
Is what will enable our learning His Word.

Jesus desires to teach us and guide us,
He will protect us as we find our way.


We are making another hymnbook, and I think I'll submit it.  See https://www.lds.org/church/news/church-announces-plans-for-new-hymnbook-and-childrens-songbook?lang=eng.

Finally Stable Caps to Ctrl Mapping

Over the years, I have tried so many ways on Linux to map Caps Lock to Ctrl:
  • Xorg config (that didn't work on a tty console)
  • Inputrc (really weird rules that depended on initial state)
  • Gnome keyboard config
Finally there is a stable way to remap Caps Lock to Ctrl.  It is relatively simple and it is at the lowest level in Linux.

Thanks to this page for all the details: https://wiki.archlinux.org/index.php/Map_scancodes_to_keycodes but it took a lot of effort to parse out what actually needed to be done.

Here is a distilled version:

0) Make sure Caps Lock is OFF

1) Create the following file:

/etc/udev/hwdb.d/10-caps-modifier.hwdb
---
evdev:atkbd:dmi:*            # built-in keyboard: match all AT keyboards for now
  KEYBOARD_KEY_3a=leftctrl   # bind capslock to leftctrl

2) Run  the following command:

$ systemd-hwdb update

3) Run the following command to make the remapping take immediate effect:

$ udevadm trigger

This was tested on Ubuntu 18.04.2 LTS running Xfce.  The remapping works great in tty consoles, and the X input system.

15 May 2019

Poem for Grandma

I wrote a poem for my Grandma for Mother's Day.

Years

For when along
the road you've come,
you pause,
to see the race,
how it was run.

The mornings when imaginations sang
The afternoons when, interrupting
work and sun, the lightning cracked.
Then came the rain.
The evenings when all work was done.

Some goals were met.
Some riches won.
Some people left.
And not just one.

And then you stood.
Alone.
Dismayed.

But through
this turn and
that meander,
we kept,
we stayed,
we held each other.

17 January 2019

Command The Computer

After hearing hype around machine learning eating up tech jobs, I've wondered if I just have my head in the ground about what kind of work I'm doing.  So far, I haven't seen a straightforward way to apply machine learning to my work goals.

However, today I realized I can start a mind shift toward my work that will be both more healthy for me personally, and will allow me to see opportunities for machine learning that I've been missing.

There are 4 main levels of work I can see:
  1. Initiative
  2. Project
  3. Task
  4. Micro-task
As an individual contributor or team lead, the aspects of the work are scoped down to levels 2-4.  Most of the opportunities I've seen for applying machine learning have been at the Initiative level, where statistical methods can be applied to solve novel problems or automate whole classes of new/existing work.

Now, imagine you already work at levels 2-4.  Imagine you have a computer with infinite intelligence.  Imagine that if you describe a piece of work that needs to be done down to the 80% level of precision, that this intelligent computer could get it done and take care of the details.  This is what I've found impossible to imagine in advance.

The best way I've found to imagine this is as follows:
  • do a Task the way I've always done it (level 3)
  • break the task up into atomic pieces by creating self-standing git commits as I go (one commit per level 4 Micro-task)
  • when I write each git commit, imagine that I had asked a computer to do what I just did
  • write the git commit in imperative form, as if I had commanded the computer to accomplish the work at the 80% level of precision
  • imagine that I had spent the last 30-60min doing something other than solving the problem, and ask myself, "What else would I have been able to do while the computer was spending 15-30min on this?"
This helps me wire up the neurons in my own brain to start thinking about the computer as an intelligent agent that can assist me.  And it helps me to imagine how I can use my attention and energy more effectively, rather than just solving micro-tasks all day.

It appears to me that applying machine learning effectively requires stepping back at least to the Project or Initiative level and delegating more work to an "intelligent" computer.  And if such an agent doesn't exist, perhaps it can be built.

In a weird sort of way, I'm starting to use the Tell, Don't Ask principle in my own thinking to enhance my ability to imagine solutions coming together more quickly.  I know that's taking the Law of Demeter way outside of its traditional scope.  But I'm trying to break out of the box here. ;)

If 2018 was a year I didn't write any blog posts, it was certainly a year of great personal growth.  I look forward to writing here more during 2019.

02 June 2017

Print selection only in Chrome

Maybe you already know about "Print selection only" in Chrome.  But it changed my life today.

I wanted to print only a part of a web page.  Usually, I tweak the pages but then it spans pages and it's confusing to get just the pages I want.  Or if I got desperate, I would copy/paste into a text editor and print that instead (after reformatting all the copy/paste noise away).  Instead of all that nonsense, I found a better way.

Here's how to do it:
  1. Select the text you want to print (in Chrome)
  2. Click Print (or press Ctrl-P or Cmd-P on Mac)
  3. Click "More Settings" in the Chrome print dialog
  4. Select the "Selection only" box
  5. Adjust "Scale" to get it on the right number of pages (1 page usually)
Then print and you can move on with your life.  I love how simple it is.  Hopefully you benefit from this.