Phông chữ dành cho tiếng Việt

Mới khám phá ra là I Love Typography có một bộ sưu tập phông chữ có dấu cho tiếng Việt. Đang ngắm nghía bộ Blacker Pro Text.

Politics is a Bitch

Nikki Haley, Ron DeSantis, and Mike Pence have entered the race. These candidates had once worshipped the ground Trump spat on. Now they all are fighting against him. Ain’t politics a motherfucking bitch? Chris Christie is expected to run as well. Can’t wait to see the GOP pigsty fights.

As for the Democrats, I would like to see a challenger. I am not ageism because I am half of Biden’s age and I already feel so fucking old. Then again, Biden has made historic legislative achievements in his first term. He’ll get more done in his second term. We’ll see.

Bob Dylan: Shadow Kingdom

It’s such a joy revisiting a lyrical storyteller. Right off the opening track, Mr. Dylan tells a heartbreaking story: “Newspaper men eating candy / Had to be held back by big police / Someday everything is going to be beautiful / When I paint my masterpiece.” And damn, isn’t he a blues man? I could feel his pain when he sings the “Tombstone Blues” chorus: “Mama’s in the fact’ry she ain’t got no shoes / Daddy’s in the alley lookin’ for the fuse / I’m in the kitchen with the tombstone blues.” Of course, “What Was It You Wanted?” is so spare yet so heartfelt.

Mother’s Day

Last night
i dreamed
my son joined a gang
A gang
one million strong

This gang
these brothers
spoke Swahili
Spanish
& street talk

& nobody was afraid

This gang walked around
in broad daylight
& after midnight
dreadlocked
cornrowed
hair kinky crazy

& nobody pointed their pistols

This gang
they wore kente durags
around their foreheads
cowries around their necks
didn’t take no shit

& nobody was afraid

This gang
one million strong
These sons
were intelligent
educable
like they always been

& nobody said they were not able

This gang
they were the future
doctors
lawyers
teachers
poets all about the business
of being correct

& nobody was afraid

This gang
they walked the streets
in great numbers

& nobody cuddled their purses

This gang
they stood up
& spoke up
when justice showed
its true colors

& the swat team didn’t come

This gang
they went to schools
where no teachers made them feel
worth less or like criminals

& nobody cried rape

This gang
they praised god
their way
& remembered ancestors
in old as time ceremonies

& nobody was afraid

They
beat drums
They beat drums
& beat drums

& nobody was afraid

This gang
sang their
warrior songs
baritone voices
stirring all those
with ears bent

& nobody was afraid

Last night
i dreamed
my son joined a gang
a gang
one million strong

This morning
i woke up
said a prayer
& prepared him
for another day
in fayette county public schools

& was very much afraid

Crystal Wilkinson

Taking Care of My Client’s Site

Yesterday I noticed Everlasting Eye Care website was not working. I called the hosting provider on my client’s behalf. The technician wouldn’t do anything without the site’s owner verification. I called the owner, but she didn’t pick up the home. I had to ended the call with the hosting technician.

I logged into the cPanel to see if I could figure the issue myself. I noticed that the SSL/TLS status page showed warning errors. I reset the name servers from Cloudflare back to the hosting provider’s defaults. The site worked again without HTTPS. I went back to the SSL/TLS status page and ran AutoSSL. The site worked on HTTPS again.

I did all of this for my client on a Sunday evening without charging a penny. It just felt right to take care of my client’s site. The site owner is a good friend and I am terrible at doing business.

How to Password-Protect a Website

Last year when I designed and developed our family book, I needed an easy way to password-protect the entire site. My aunt, who is the author, doesn’t want the book to be public. She just wants to share it with family members. I can’t remember the resource I used; therefore, I would like to document it here just in case others find it useful.

Place the follow code at the top of the page you want to be password-protected:

<?php
 	/* Your password */
	 $password = 'yourpassword';

	 if (empty($_COOKIE['password']) || $_COOKIE['password'] !== $password) {
	 // Password not set or incorrect. Send to login.php.
	 header('Location: /login.php');
	 exit;
         }
?>

Create a login page (login.php). It should live on the top directory. Here’s the PHP code:

<?php
	/* Your password */
	$password = 'yourpassword';

	/* Redirects here after login */
	$redirect_after_login = 'index.php';

	/* Will not ask password again for */
	$remember_password = strtotime('+7 days'); // 7 days

	if (isset($_POST['password']) && $_POST['password'] == $password) {
	setcookie("password", $password, $remember_password);
	header('Location: ' . $redirect_after_login);
	exit;
	}
?>

Create HTML log-in form in login.php:

<form method="POST">
	<input type="text" name="password" placeholder="Enter password">
	<input type="submit" name="Submit" value="Submit" class="button">
</form>

The webpage is set to expired in 7 days. If you want a logout link, create a logout.php page with the following codes:

<?php
	/* Your password */
	$password = 'yourpassword';

	if (empty($_COOKIE['password']) || $_COOKIE['password'] !== $password) {
	// Password not set or incorrect. Send to login.php.
	header('Location: /login.php');
	exit;
        }
?>

The Water Witch on Invasion

It’s serious business to come on a man’s land
but when they get a hair up the wrong place
i always have my rifle ready. Sometimes
i turn the light on, so i can see who their daddies are.
Young white boys are like that sometimes, smelling
their selves, thinking they can do it cause i’m black,
cause i’m old, or just cause. Cause i’m a servant of the good Lord
is the reason i ain’t never shot one yet. I just say Git on, now.
Git on back where you come from
out into the dark
toward the place where i hear the leaves rustling.
Next most all i hear is the gravel crunch as they head
on down the road. Sometimes they come closer still,
that’s when i poke that ole .22 up toward the trees
& let it rip three times. It’s serious business
to step foot on a man’s land but sometimes
when i hear their feet traveling away from me
like spooked cattle in the dark, i can’t help but laugh.

Crystal Wilkinson

Vương is a Badass

My four-year-old boy is such a badass, and yet he is so damn cute. Last week, he told me to “Shut your damn mouth.”

Last Friday, I tried to get him out of the house while he was watching YouTube. I invited him out for lunch at his favorite place: McDonald’s. He refused. I offered him a happy meal and he said to me, “You go buy it and bring it home to me.” I said, “You better recognize.”

After giving him a bubble bath tonight, I told him to put on the clothes himself. I joked with him, “You can put on your clothes yourself. You’re a big girl.” He asked me, “What did you say?” I replied, “You’re a big girl.” He hit back, “I am not a big girl. I am a big boy, you big dummy.”

I got nothing but love for this kid. I ain’t even mad at him.

Indicate an Active Link with ARIA

To indicate an active link in my main navigation, I used a class name as follow:


<li class="active"><a href="/about/">About</a></li>

The issue with using a class name is that screen readers don’t recognized it. Fortunately ARIA has the aria-current="page" attribute to solve the issue (learn more from Manuel Matuzović’s “Building the main navigation for a website”). I switched all my main navigation as follow:


<li aria-current="page"><a href="/about/">About</a></li>

Add PHP function to make the active page dynamic:


<li<?php if ($thisPage=="About") echo " aria-current=\"page\"";?>><a href="/about/">About</a></li>

Style the active link with CSS:


nav li[aria-current="page"] a {color:red;}

Coltrane & Dolphy

A rare, fantastic collaboration between two jazz giants: John Coltrane featuring Eric Dolphy played “Impressions.”