I learned most of these from Phoenix TV’s 石評天下 interview with a Pro-China commentator: Shi Qiping (石齊平). Though pro-China (親中反美), I do enjoy listening especially after too much propaganda from left and right from American side of reports. The following reports, though Western, are what the China side is attending to, so they must mean something:
The Carnegie Survey, by the Carnegie Endowment for International Peace 卡内基国际和平基金会
This drew my attention when I am trying to adjust my prescription from https://vr-rock.com for the RayNeo XR Air 3s Pro I bought recently, for extending my smartphone & computer screens.
The power attached to the XR (or AR?) glasses is naturally too high for me perhaps due to its distance from my eyes. While the center of the lenses offer clarity still but combined with the somewhat higher power of the peripherals, I could certainly use less power. And if I push the glasses slightly away from my eyes for a few mm, then the power decreases and I could see the clarity with better comfort. Less power is always less stressful to cope than too much power.
This change in distance is called vertex distance. So in my myopia (short-sighted) case (not hyperopia/long-sighted), the negative degree becomes more negative as the lenses draw closer to my eyes. And this is the formula for the vertex compensation:
To calculate the new effective power (Fe) of a lens based on a change in distance, use the vertex distance formula:
De = Do/(1 + d(Do))
Where:
De= Effective power (new power) Do= Original lens power (in diopters) d = The change in vertex distance in meters (e.g., a 3mm shift is 0.003)
Note on Sign: When the lens moves closer to the eye, d is treated as a positive value in this formula.
So in order to not risk harming my eyes, I would have to order another set of these prescription lenses from VR-Rock, which did not disappoint. I'll just have to measure how much distance is adjusted.
RayNeo Air 3s & 3s Pro Prescription Lenses × 1 $64 total:
Prescription Type: With Prescription Model Selection: RayNeo Air 3s Pro RIGHT SPH: -8.75 (+ $5.00) RIGHT CYL: -1.00 RIGHT AXIS: 85° LEFT SPH: -8.50 (+ $5.00) LEFT CYL: -0.75 LEFT AXIS: 95° Lens Upgrade: Anti-Fog(Cost-Free), Oil-Resistant (Cost-Free), Scratch-Resistant (Cost-Free), Easy to Clean (lotus effect) (Cost-Free), Radiation-Resistant (Cost-Free), Anti-Glare (+ $5.00)
I had an entry called "Stock Market = Gambling" years ago. Now, with AI, I believe I can learn more about the stock market with questions I asked but got no good answers from people before.
Ever since I follow The Rundown Podcast (daily financial news podcast by Public.com), I've gained more interest about it. With the right knowledge, gambling isn't gambling but investment.
Zaid Admani called Trump's focus on the Dow Jones outdated, because it's based on flawed index of 30 companies. Now, we measure the stock market using S&P500 or Nasdaq indexes.
IP (Ingress Protection): The standard code defining protection against solids and liquids.
First Digit (0-6): Solid Particle Protection (Dust). A "6" means totally dust-tight.
Second Digit (0-8): Liquid Ingress Protection (Water). An "8" means protection against continuous submersion at a manufacturer-specified depth, usually > 1m.
The "X": If a digit is replaced with X, it means it has not been formally tested for that factor.
IP68 and IPX8 both provide high-level, long-term submersion protection (waterproof beyond 1m), but differ in dust protection. IP68 guarantees both dust-tight resistance (6) and high-level water resistance (8). IPX8 signifies water resistance only (8), as the 'X' means the device was not officially tested or rated for dust protection.
Dust Protection: IP68 ensures the device is completely dust-tight ("6"), while IPX8 ("X") does not certify protection against dust or solid particles.
Waterproofing Level: Both signify the highest level of submersion, generally lasting more than 30 minutes at depths over 1 meter.
Use Cases: IP68 is ideal for devices requiring protection from both sand/dust and water (e.g., smartphones). IPX8 is often found on items specialized only for underwater use (e.g., cameras, certain smartwatches).
Important Nuances
Manufacturer Specifics: While both are "8" rated, the exact depth and time (e.g., 1.5m for 30 min vs. 6m for 30 min) vary by manufacturer.
Fresh Water: These ratings are generally tested in fresh water, not swimming pools, saltwater, or hot showers.
IPX8 Limitation: A device rated IPX8 might be perfectly waterproof but could fail if dust enters the device.
Nadia once said she had problem with Trump saying "I don't like the way you talk" on Apprentice show, now this happens again with Trump with the "prime minister" (Trump's mistaken identity of former Swiss President Karin Keller-Sutter) of Switzerland, which is a funny habit of Trump I suppose. Whether that's really his decision based on a person's attitude in talking is another story:
02/10/2026 Tuesday
When Behind the Pulpit mentioned that Kathy Keller made all of Tim Keller's sermons free online since he passing, Pastor Dave Hentschel gave Tim Keller high praise when he said that "[Tim Keller] was one of the few people ever that I would pay for a sermon.":
02/09/2026 Monday
My SONY NW-WS413 underwater headset does not turn on anymore. USB shows no activity/connection as well. It must have been more than 2 years. It's time. Ordered from Amazon Fanisic 2026 Swimming Bone Conduction (supposedly better than conventional underwater due to slash noise) Headphones Bluetooth & 32GB MP3 player, for $42.64 (returned a more expensive $95.95 VLOP brand of similar headset.)
So it seems that Asian restaurants now are not going to give cash "discount" any more in fear of perhaps the state. But whether it's tariffs, sales taxes, credit card merchant fees, etc. business owners are prone to incur the burden on customers. So the idea that these help consumers are not quite true. At best it discourages businesses that don't want to play along and pass the taxes/fees to the customers with the very small chance that it discourages customers who are aware of this to do business from them in the future. Tariffs only scares customers not to trade with businesses being levied upon with tariffs "penalties", it does not mean the government makes more profit out of business/foreign owners. So next time, if I want to really care about saving 60 cents for a $19 dollar meal, I would have to pay with either cash or debit card. And I cannot get away with sales tax $1.20 no matter what.
02/08/2026 Sunday
Ana Kasparian on the accused Leon Black for sexual assault on a 16-year-old, vetting for death penalty "Watch the pig squeal!" is an example of vengeance justice we don't want to subscribe to, as tempting as it can be:
Self-reflection dialogue after attending various Chinese churches (or English speaking churches with larger Asian population):
Question: By what measure do you call Rev. Laura Lin's CCCNY church and not the other Asian churches here in America anti-gospel? Answer: By the fact that Rev. Laura Lin associate herself with STEMI's activities and other Stephen Tong's ministry. Stephen Tong's very pro gospel/evangelism, while Rev. Lin is not and at times against it, referring to the "I'm/we're not called for that" argument. Not only the other churches not associate with Stephen Tong the way Rev. Lin does in her "supporting the evangelical ministry" appearance, these churches actually do have their own evangelical activities. So, having the appearance of support but actually not really care about evangelism directly, is a fake support of such ministry, and therefore, anti-Gospel. Gospel supporting is not Gospel centered, so Anti-Gospel centered invalidates Gospel supporting and thus, anti-Gospel itself.
Question: Why do you think that is with Rev. Lin? Answer: I believe when one cares more about reputation of men than the glory of God, one becomes confused as to who one is truly serving.
Now, this direct line ($15.65) is more expensive than breaking the trip up as South Amboy to Rahway ($3.85) & Rahway to New York Penn. Station ($10.90). Whoever design the fare rates here is not very smart.
Holes are punched (not all the time) onto the receipt which then becomes the valuable pass placed on each passenger's seat and is meant to be carried by the passenger at all times during the ride before taken away by the conductor. Some thieves love to steal other people's passes due to this system. The pass color also changes from time to time to avoid copycats. This is the site for the Zones of North Jersey Coast line: https://en.wikipedia.org/wiki/North_Jersey_Coast_Line
I made this (would need to be updated from time to time due to fare changes) Excel spreadsheet (Saved on Backup as "Work\Home\NJTransit North Jersey Coast Line Fares.xlsx") as a guide, Stations: South Amboy, Perth Amboy, Woodbridge, Avenel, Rahway, Linden, Elizabeth, Newark, Secaucus, NY. I then pasted the table from the excel workbook to MS Word in order to be copy pasted onto WordPress here:
SA
PA
Wb
Av
Rw
Ld
Eb
Nw
SEC
NY
SA
2.6
2.6
3.55
3.85
4.95
6.45
10.65
15.65
15.65
PA
2.6
2.6
3.55
4.1
5.9
9.45
14.45
14.45
Wb
2.6
2.6
2.6
4.1
7.65
12.7
12.7
Av
2.6
2.6
3.55
6.45
11.5
11.5
Rw
2.6
2.6
5.9
10.9
10.9
Ld
2.6
4.95
10
10
Eb
3.55
8.5
8.5
Nw
4.95
6.15
SEC
4.95
NY
15.65
17.05
15.3
15.05
14.75
14.95
14.95
16.8
20.6
Last row NY shows rate comparison according to mid point station. Thus, Rw column is cheapest $14.75.
Even AI (Google Gemini) figured this out, once I fed it this spreadsheet:
Based on the fare data provided in Sheet2, the cheapest way to travel from South Amboy to New York (NY) is by purchasing a combination of two tickets rather than a single direct ticket.
Cheapest Combination:
The most cost-effective route involves splitting your journey at Rahway:
Ticket 1: South Amboy to Rahway — $3.85
Ticket 2: Rahway to NY — $10.90
Total Cost:$14.75
Comparison:
Direct Fare: $15.65
Savings:$0.90 per trip
By using this combination, you save $0.90 compared to the standard direct fare of $15.65. Other combinations, such as splitting at Elizabeth ($14.95) or Woodbridge ($15.20+), are more expensive than the Rahway split.
To streamline a routine work at SPG, I used Microsoft Copilot for this. This was the prompt I used:
write a powershell script that takes a list from an excel sheet column, and match every value on that list with another excel sheet to update some values of it in the matching rows.
I was asked to install a new module: Install-Module ImportExcel -Scope CurrentUser
PS: This doesn't update anything on sharepoint. So I actually would need to copy the sharepoint file to PC to be the target file and then I copy paste the PowerShell updated column from the local file to the sharepoint file (not replacing the entire file).
And I got this code from M365 Copilot Chat:
#Requires -Modules ImportExcel
param(
[Parameter(Mandatory)] [string] $ListFile,
[Parameter(Mandatory)] [string] $ListSheet,
[Parameter(Mandatory)] [string] $ListKeyColumn,
[Parameter(Mandatory)] [string] $TargetFile,
[Parameter(Mandatory)] [string] $TargetSheet,
[Parameter(Mandatory)] [string] $TargetKeyColumn
)
# ---- Settings: columns to update in the target (constants) ----
$ConstantUpdates = @{
"Status" = "Disabled"
"UpdatedOn" = (Get-Date).ToString("yyyy-MM-dd")
}
# ---- Safety: create a backup first ----
$backup = "$TargetFile.bak_{0:yyyyMMdd_HHmmss}" -f (Get-Date)
Copy-Item $TargetFile $backup -Force
Write-Host "Backup created: $backup"
# ---- Read list keys ----
$listRows = Import-Excel -Path $ListFile -WorksheetName $ListSheet
if (-not $listRows) { throw "List sheet returned no rows." }
$keys = $listRows |
ForEach-Object { $_.$ListKeyColumn } |
Where-Object { $_ -ne $null -and "$_".Trim() -ne "" } |
ForEach-Object { "$_".Trim() } |
Select-Object -Unique
if ($keys.Count -eq 0) { throw "No keys found in column '$ListKeyColumn'." }
# Build a fast lookup set (case-insensitive by default)
$keySet = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase)
$null = $keys | ForEach-Object { $keySet.Add($_) }
# ---- Open target workbook and update in place ----
$pkg = Open-ExcelPackage -Path $TargetFile
try {
$ws = $pkg.Workbook.Worksheets[$TargetSheet]
if (-not $ws) { throw "Target sheet '$TargetSheet' not found in '$TargetFile'." }
$endRow = $ws.Dimension.End.Row
$endCol = $ws.Dimension.End.Column
# Map headers (row 1) to column indexes
$headerToCol = @{}
for ($c = 1; $c -le $endCol; $c++) {
$h = $ws.Cells[1, $c].Text.Trim()
if ($h) { $headerToCol[$h] = $c }
}
if (-not $headerToCol.ContainsKey($TargetKeyColumn)) {
throw "Target key column '$TargetKeyColumn' not found in header row."
}
# Ensure update columns exist
foreach ($colName in $ConstantUpdates.Keys) {
if (-not $headerToCol.ContainsKey($colName)) {
throw "Update column '$colName' not found in target header row."
}
}
$keyColIndex = $headerToCol[$TargetKeyColumn]
$matched = 0
$updated = 0
for ($r = 2; $r -le $endRow; $r++) {
$key = $ws.Cells[$r, $keyColIndex].Text.Trim()
if (-not $key) { continue }
if ($keySet.Contains($key)) {
$matched++
foreach ($colName in $ConstantUpdates.Keys) {
$colIndex = $headerToCol[$colName]
$newValue = $ConstantUpdates[$colName]
# Only write if different
$current = $ws.Cells[$r, $colIndex].Text
if ($current -ne "$newValue") {
$ws.Cells[$r, $colIndex].Value = $newValue
$updated++
}
}
}
}
Close-ExcelPackage -ExcelPackage $pkg -Save
Write-Host "Matches found: $matched"
Write-Host "Cells updated: $updated"
}
catch {
# If anything fails, close without saving to avoid partial writes
Close-ExcelPackage -ExcelPackage $pkg -NoSave
throw
}
And I only needed to made a few modifications:
#Requires -Modules ImportExcel
$ListFile = "C:\Users\original.xlsx"
$ListSheet = "sheet1"
$ListKeyColumn = "User principal name"
$TargetFile = "C:\Users\target.xlsx"
$TargetSheet = "Users"
$TargetKeyColumn = "Email"
# ---- Settings: columns to update in the target (constants) ----
$ConstantUpdates = @{
# "Status" = "Disabled"
"DOT" = (Get-Date).ToString("d")
}
# ---- Safety: create a backup first ----
#$backup = "$TargetFile.bak_{0:yyyyMMdd_HHmmss}" -f (Get-Date)
#Copy-Item $TargetFile $backup -Force
#Write-Host "Backup created: $backup"
# ---- Read list keys ----
$listRows = Import-Excel -Path $ListFile -WorksheetName $ListSheet
if (-not $listRows) { throw "List sheet returned no rows." }
$keys = $listRows |
ForEach-Object { $_.$ListKeyColumn } |
Where-Object { $_ -ne $null -and "$_".Trim() -ne "" } |
ForEach-Object { "$_".Trim() } |
Select-Object -Unique
if ($keys.Count -eq 0) { throw "No keys found in column '$ListKeyColumn'." }
# Build a fast lookup set (case-insensitive by default)
$keySet = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase)
$null = $keys | ForEach-Object { $keySet.Add($_) }
# ---- Open target workbook and update in place ----
$pkg = Open-ExcelPackage -Path $TargetFile
try {
$ws = $pkg.Workbook.Worksheets[$TargetSheet]
if (-not $ws) { throw "Target sheet '$TargetSheet' not found in '$TargetFile'." }
$endRow = $ws.Dimension.End.Row
$endCol = $ws.Dimension.End.Column
# Map headers (row 1) to column indexes
$headerToCol = @{}
for ($c = 1; $c -le $endCol; $c++) {
$h = $ws.Cells[1, $c].Text.Trim()
if ($h) { $headerToCol[$h] = $c }
}
if (-not $headerToCol.ContainsKey($TargetKeyColumn)) {
throw "Target key column '$TargetKeyColumn' not found in header row."
}
# Ensure update columns exist
foreach ($colName in $ConstantUpdates.Keys) {
if (-not $headerToCol.ContainsKey($colName)) {
throw "Update column '$colName' not found in target header row."
}
}
$keyColIndex = $headerToCol[$TargetKeyColumn]
$matched = 0
$updated = 0
for ($r = 2; $r -le $endRow; $r++) {
$key = $ws.Cells[$r, $keyColIndex].Text.Trim()
if (-not $key) { continue }
if ($keySet.Contains($key)) {
$matched++
foreach ($colName in $ConstantUpdates.Keys) {
$colIndex = $headerToCol[$colName]
$newValue = $ConstantUpdates[$colName]
# Only write if different
$current = $ws.Cells[$r, $colIndex].Text
if ([string]::IsNullOrWhiteSpace($current) -and ($current -ne "$newValue")) {
$ws.Cells[$r, $colIndex].Value = [datetime]($newValue)
$ws.Cells[$r, $colIndex].Style.HorizontalAlignment = "Right"
$updated++
}
}
}
}
Close-ExcelPackage -ExcelPackage $pkg
Write-Host "Matches found: $matched"
Write-Host "Cells updated: $updated"
}
catch {
# If anything fails, close without saving to avoid partial writes
Close-ExcelPackage -ExcelPackage $pkg -NoSave
throw
}
Recycling in America can be a pain sometimes. Legally (like many would care), you cannot just throw away batteries, fluorescent light bulbs, etc. in regular garbage nor regular recycling bins. It's standard that you pay a service to get rid of these. Occasionally, you get to drop them off at certain locations, and of that, only certain days maybe for free.
So for our county, Middlesex, this is where to start. Obtained from my yahoo email, Jan 29 (Thurs) 2026, under subject line: Recycle Right Feb 2026
Crossroads' Men's Taco and Theology was fun, this happened at noon, right after church cleaning by our small group and some church staffs at 9:30am. Slight debate came up regarding if we would be fine with attending (or be best man) of a gay wedding. Food was great as well. The idea is to have college students participate in theology, which I love. Mike told me that we are free to give suggestion of what to do for Men's Group. Nadia really wished that she's not left out in the church, because the women either do ice-skates or mother's events thus far. These are the questions on our table (of around 7 tables seating about 7 people each), other tables might have different questions apparently:
You may discuss these questions in any order you find engaging. If your group would prefer to focus on another topic related to theology, God, or the Christian life, you are free to do so in place of these questions. -Can a Christian be a spy or have a job that requires significant deception? -How should God's sovereignty shape the way Christians think about suffering? -Should Christians drink alcohol? smoke? Gamble? -What will heaven be like? -What is something you think the church should talk about more? -Is holiness as a man different than that of a woman? -How central should Israel be in Christian theology today? -Does the devil ever make people sin? -What misunderstandings about God do you see most among Christians? -Will there be a rapture? -How should we present the gospel to non-believers? -What is the minimum requirement for salvation? -Theological doctrine that confuses you the most
02/05/2026 Thursday
Utsukushiki Yuugure by Takayuki Hattori, This was a piece I inquired from the amazing Watzatsong.com, a site I used before to upload tunes and get the song titles recognized by netizens. This piece was played in the Japanese series that Nadia loves (I watch it to learn Japanese on Netflix), Nodame Cantabile Episode 5 @00:24. I also found and printed the one-page music sheet.
02/02/2026 Monday
One of the best summary of the 3 Kingdoms history (三國志 vs. the pseudohistory 三國演義 version) I've seen this far, easy to understand of the entire history of it:
Love this quote from my company's marketing newsletter today: Resonating the teaching that's very lacking in today's churches (primarily among conservative): Even Einstein knew better, but to deal with the practical folks, I think I would say it better than Einstein this way: Not doing anything that's mean you are better than those who keep failing in doing, even though we shouldn't do tasks beyond our ability:
“A person who never made a mistake never tried anything new.” — Albert Einstein
The Human Genome Project (HGP): Used to cost $2.7 billion to sequence personal DNA (1990-2003 ~according to Google AI), now it's in the $100 - $200 range (obviously based on the $2.7 billion project in its novelty). This is interesting as I haven't even sent in my 23andMe (genotyping, not full genome sequencing, for ancestry and basic health reports) yet:
02/01/2026 Sunday
Best sermon I (as well as Nadia and Willy) have heard at Crossroad so far. It was delivered by Pastor David Lee, on 1 Samuel 4:1-11 (Seeking God or Using God). Perhaps it was the due to the part of the Bible, but it was very clear, to the point, full of examples. Willy gave a 9/10 when I asked, but he's the type who likes jokes in sermons. Nadia initiatively expressed to me that she liked the sermon as well.
Chatting with Al, one of their elders, reminded me to look up GCC's Matt. Because quite a few of Crossroads folks were from RCCC apparently. But because I couldn't get Matt's Chinese name correctly, nobody at Crossroads seem to recall him. So I'll just create a new entry for Matt just for myself.
The Minnesota situations (the shooting of Renee Good and Alex Pretti) really open up different views among Christians, regardless of their political parties. This I responded to David Tong's Facebook post when after the Pretti case, the right was blaming the left for not making a fuss when another nurse was killed by illegal immigrant a while back:
The nurse (Laken Riley)'s perpetrator was already brought to justice. That would be the main difference.
Though I may still have no problem voting for Republican, due to the betterment of the U.S.A. under God, I think of most its current foreign related affairs are really messed up. All these shots seem unnecessary at either Renee Good or Alex Pretti. They look more like actions of thugs and liars than law enforcers with this "One of ours, all of yours" attitude. If Pretti was doing his last act as a protector (if that was the case) knowing he's risking his life doing so, then I commend him for that.
Regardless, I believe Trump is going to do the TACO: i.e. pulling out of MN. If this keeps going on it is only adding points to the Democrats (or deducting points from the Republicans.) He does not have indefinite timing for this.
At this point, I find that the greet: "Welcome to America!" from the MAGA (especially far right) folks at any regular social event, church, etc., rather ridiculous, I used to think it sounded imperialistic, but now it's more of a mere passenger on a train saying to other incoming passengers: "Welcome onboard!" It's not like an usher welcoming visitors to a church, and it certainly has nothing to do with welcoming someone to your home.
Until America can self-reflect and learn to pray again, as Lincoln once did (Proclamation 97, 1863), rather than placing blames on others, it's a no win for either side of the 2 parties for this great country.