.htaccess

Some useful directives for .htaccess

Turn on Rewrite:
RewriteEngine On

Configure the base path
RewriteBase /

Forces HTTPS and without WWW
RewriteCond %{HTTP_HOST} ^visualgui.com
RewriteRule (.*) https://visualgui.com/$1 [R=301,L]

Redirect everything file in a directory
RewriteRule ^old-dir/(.+)$ /new-dir/$1 [R=301,L]

Redirect old URL to new URL
Redirect /old-file/ /new-file/

Custom 404
ErrorDocument 404 /404.php

Prevent directory listing when index file is not present
Options -Indexes

For the Waitress Bringing Water

She brings us water, not intending harm,
And now a drier throat cannot confess
My praises for the motions of this waitress
And for the oneness of her uniform.
I know already that I lack the charm
For that; with her, there’s nothing counts for less
Than thoughts which fall as readily as a dress
And yet as finally as a severed arm.
The truckers at the other table try
A CB raunchy line to make her stay,
But I can only smile and order pie
To slow her in the cession of her tray,
Until I’ve tasted all that I could say
And swinging doors have swallowed our goodbye.

Anthony Lombardy

GMU vs DOJ

In a stunning move, George Mason University’s Board not only sided with President Gregory Washington, but also gave him a 1.5% raise to $823,000 a year. I am glad to see George Mason fights back while other universities folds to the Trump regime. As higher institutions, we need to stand up. We can’t let the government involves into our education. We need to stay independence. We need to give them the middle fucking fingers. Raise them up.

Update to PHP 8.4

WordPress’s Site Health recommended that I should upgrade to PHP 8.3. I didn’t even realize that I was running on PHP 8.2. I googled for tutorials on how to update PHP on my DigitalOcean’s Droplets. Of course, I took a snapshots of my Droplets. Unfortunately, none of the tutorials I found worked. I had to restored my snapshots a couple of times. After about two hours, I almost gave up. Then I came across my own write up how I upgraded to PHP 8.2. All I had to do was replacing 8.2 with 8.4. I skipped 8.3. I also removed all old PHP packages and only leave 8.4. I was so glad that I documented all of the things I did. It definitely came in handy.

At work, I documented as much as I could as well on our Web Design & Services blog.

Family Reunion 2025

My in-law’s family reunion took place in Galveston, Texas this year. The gathering gave our extended family an opportunity to spend time together.

Everyone bonded over food; therefore, we never ran out of food. We had many dishes including Texas BBQ, a whole roast pig, seafood boil, and pork offal porridge. Our entire clan, 25 of us, also visited the Kim Sơn buffet, which featured many delicious Vietnamese dishes, my personal favorites included vermicelli in fish broth (bún nước lèo).

In previous years, I provided hard liquor. This year, one of our uncles cleaned up his liquor cabinet and brought three crates of alcohol including cognacs, champagnes, and wines. We emptied two bottles of XO, two bottles of Hennessy, and a bottle of Courvoisier.

For activities, we chilled by the pool, relaxed at the beach, and played ping pong, card games, and poker. The house was always filled with conversations, jokes, and screams.

The family reunion started the year I met my wife. We weren’t even married yet. Even though we missed a few years, especially during COVID, we kept going. Many things had changed over 16 years. The kids had grown. We welcomed new members as well as bid farewell to our aunts and uncles. Despite a few unfortunate events had occurred, our bond had remained strong.

As the older generation is becoming frail, our generation will need to step up to continue the tradition for the next generation as well as the future generations. Spending time with your extended family once a year is priceless.

Drank A Lot

i drank a lot. i lost my job.
i lived like nothing mattered.
then you stopped, and came across
my little bridge of fallen answers.

i don’t recall what happened next.
i kept you at a distance.
but tangled in the knot of sex
my punishment was lifted.

and lifted on a single breath—
no coming and no going—
o G-d, you are the only friend
i never thought of knowing.

your remedies beneath my hand
your fingers in my hair
the kisses on our lips began
that ended everywhere.

and now our sins are all confessed
our strategies forgiven
it’s written that the law must rest
before the law is written.

and not because of what i’d lost
and not for what i’d mastered
you stopped for me, and came across
the bridge of fallen answers.

tho’ mercy has no point of view
and no one’s here to suffer
we cry aloud, as humans do:
we cry to one another.

And now it’s one, and now it’s two, A
nd now the whole disaster.
We cry for help, as humans do—
Before the truth, and after.

And Every Guiding Light Was Gone
And Every Teacher Lying—
There Was No Truth In Moving On—
There Was No Truth In Dying.

And Then The Night Commanded Me
To Enter In Her Side—
And Be As Adam Was To Eve
Before The Great Divide.

her remedies beneath my hand
her fingers in my hair—
and every mouth of hunger glad—
and deeply unaware.

and here i cannot lift a hand
to trace the lines of beauty,
but lines are traced, and beauty’s glad
to come and go so freely.

and from the wall a grazing wind,
weightless and routine—
it wounds us as i part your lips
it wounds us in between.

and every guiding light was gone
and every sweet direction—
the book of love i read was wrong
it had a happy ending.

And Now There Is No Point Of View—
And Now There Is No Other—
We Spread And Drown As Lilies Do—
We Spread And Drown Forever.

You are my tongue, you are my eye,
My coming and my going.
O G-d, you let your sailor die
So he could be the ocean.

And when I’m at my hungriest
She takes away my tongue
And holds me here where hungers rest
Before the world is born.

And fastened here we cannot move
We cannot move forever
We spread and drown as lilies do—
From nowhere to the center.

Escaping through a secret gate
I made it to the border
And call it luck—or call it fate—
I left my house in order.

And now there is no point of view—
And now there is no other—
We spread and drown as lilies do—
We spread and drown forever.

Disguised as one who lived in peace
I made it to the border
Though every atom of my heart
Was burning with desire.

Leonard Cohen

Saying Yes to a Drink

What would a grown woman do?
She’d tug off an earring
when the phone rang, drop it to the desk

for the clatter and roll. You’d hear
in this the ice, tangling in the glass;
in her voice, low on the line, the drink

being poured. All night awake,
I heard its fruity murmur of disease
and cure. I heard the sweet word “sleep,”

which made me thirstier. Did I say it,
or did you? And will I learn
to wave the drink with a goodbye wrist

in conversation, toss it off all bracelet-bare
like more small talk about a small affair?
To begin, I’ll claim what I want

is small: the childish hand
of a dream to smooth me over,
a cold sip of water in bed,

your one kiss, never again.
I’ll claim I was a girl before this gin,
then beg you for another.

Deborah Garrison

Jeff Jarvis: The Web We Weave

I spent over 25 years playing and making a living on the internet, I love the web, but the web is a critical condition. Big corporations, social media, mass media are killing the web. Reading Jeff Jarvis’s The Web We Weave, I was hoping to find a solution to resuscitate the web. Unfortunately that won’t happen if big corporations, social media, and mass media keep milking the web to maximize their profits. I am not convinced.

Sad Stories Told in Bars: The “Reader’s Digest” Version

First I was born and it was tough on Mom.
Dad felt left out. There’s much I can’t recall.
I seethed my way to speech and said a lot
of things: some were deemed cute. I was so small
my likely chance was growth, and so I grew.
Long days in school I filled, like a spring creek,
with boredom. Sex I discovered soon
enough, I now think. Sweet misery!

There’s not enough room in a poem so curt
to get me out of adolescence, yet
I’m nearing fifty with a limp, and dread
the way the dead get tacked up like a cord
of wood. Not much of a story, is it?
The life that matter’s not the one I’ve led.

William Matthews

Ru

Quốc Bảo’s 9 Bài Ru is a series of nine songs titled “Ru” (Lull). On the record, the melodies are melancholy and the lyrics are alluring. On the page, Quốc Bảo’s words become poetry. Through minimal arrangements, Nguyên Hà, Phạm Hoài Nam, and June Nguyễn had done an excellent job of telling his stories with their captivating vocals. Through typography, however, readers get the direct experience from his words. They don’t have to follow the singers. They can read at their own pace and draw their own stories through the rain, the storm, and the lover. For the lyrics, I chose Jean-Baptiste Morizo’s NaN Tragedy, specifically the italic type because it sings. For display text, I settled on Robert Leuschke’s Love Light for its swelling cursiveness. Enjoy 9 poems of “Ru.”

Contact