I’ve recently revamped the website to embrace a more microblog-centric design compared to its previous layout. The navigation has been streamlined to three essential sections: ‘About,’ ‘Blog,’ and ‘Contact.’ The primary aim of this blog is to serve as the main channel for sharing my public thoughts and notes on topics I’m passionate about. While I maintain a presence on a few social media platforms, I don’t use them for content sharing. Instead, all my content is published here.
Category: General
-
Collateral
I finally got to watch the movie, Collateral, starring Tom Cruise and Jamie Foxx, and I thoroughly enjoyed it. When describing the film to my son, however, I told him it was like playing a campaign on GTA V.
-
How-to Backup a WordPress Website Using WP-CLI
Backing up a WordPress website using
WP-CLI
(WordPress Command Line Interface) involves several steps. Here’s a general guide on how to do it:1. Install WP-CLI
If you haven’t already installed WP-CLI, you’ll need to do so. You can find the installation instructions on the WP-CLI’s official website.
2. Access Your Server
You’ll need SSH access to your server. Once you’ve logged in, navigate to the root directory of your WordPress installation.
3. Backup the Database
To backup your WordPress database, use the following WP-CLI command:
wp db export
This command will create a
.sql
file in your WordPress directory. This file contains all of your WordPress database information.4. Backup WordPress Files
You also need to backup your WordPress files, including themes, plugins, and uploads. To do this, you can use a command like
rsync
ortar
. For example:tar -czvf yoursite_backup.tar.gz /path/to/your/wordpress/directory
This command will create a compressed archive of your WordPress directory.
5. Download the Backup
After creating the backup files on your server, you’ll need to download them to a safe location. You can use an FTP client or a command like
scp
for this purpose.6. Automating the Process
Optionally, you can write a script to automate the backup process and schedule it to run regularly using a cron job.
Important Tips
- Test Your Backup: Always test your backups to ensure they work as expected.
- Secure Your Backup: Keep your backup files in a secure location to prevent unauthorized access.
- Regular Backups: Schedule regular backups to minimize the risk of data loss.
Remember, while
WP-CLI
is a powerful tool, you should be comfortable with command-line interfaces and have the necessary permissions on your hosting server to perform these actions. -
The principle of least privilege
The principle of least privilege is a key concept in computer security and information security. It refers to the practice of limiting access rights for users to the bare minimum necessary to perform their job functions. This principle is applied to every part of a system, including systems, processes, users, and programs.
Here are the key aspects of the principle of least privilege:
- Access Control: Users are granted only those permissions they need to complete their tasks. For example, a user who needs to read data from a database does not need permissions to modify it.
- Minimizing Risk: By limiting the access rights of users and programs, the potential damage from accidents, errors, or unauthorized use is minimized. This reduces the risk of a security breach.
- Segmentation of Privileges: Privileges are often segmented and managed separately. For instance, an administrator might have different levels of access depending on the task, rather than having blanket administrative privileges across the entire system.
- Regular Review and Adjustment: Privileges should be regularly reviewed and adjusted based on changes in user roles or system configurations. This ensures that the principle remains effective over time.
- Application in Software Development: In software development, this principle means giving a program or process only the permissions it needs to operate, thus limiting the potential impact of a security vulnerability in that program.
- Defense in Depth: The principle of least privilege is part of a broader security strategy known as defense in depth, where multiple layers of security controls are deployed to protect information and systems.
Overall, the principle of least privilege is about granting the minimum level of access necessary, reducing the attack surface, and mitigating the potential impact of security breaches.
-
Crontab
Issue:
How to setup cron jobs in Ubuntu (and Linux)?
Solution:
Setting up cron jobs on a Linux system like Ubuntu is a straightforward process. Cron jobs are scheduled tasks that your system runs at specified times or intervals. Here’s how you can set them up:
Accessing the Cron Table:
- Open the Terminal: Launch your terminal application.
- Edit Cron Jobs for Your User: To edit the cron jobs for your current user, use the following command:
crontab -e
This command opens your user’s cron file in the default text editor. If it’s your first time usingcrontab
, it may ask you to select an editor (likenano
,vi
, etc.). - Add a New Cron Job: In the text editor, you can add a new cron job in the following format:
* * * * * command-to-execute
This is broken down as:Minute (0 - 59)
Hour (0 - 23)
Day of the month (1 - 31)
Month (1 - 12)
Day of the week (0 - 6) (Sunday = 0)
0 5 * * * /path/to/script.sh
Make sure your script (script.sh
in this example) is executable. You can make it executable withchmod +x /path/to/script.sh
. - Save and Exit: After adding your cron job, save and exit the editor. This will install the new cron job.
- Verify Your Cron Jobs: To ensure your cron job is listed, use:
crontab -l
Special Syntax:
Instead of the asterisks, you can use special strings for common intervals:
@reboot
: Run once, at startup.@yearly
or@annually
: Run once a year, “0 0 1 1 *”.@monthly
: Run once a month, “0 0 1 * *”.@weekly
: Run once a week, “0 0 * * 0”.@daily
: Run once a day, “0 0 * * *”.@hourly
: Run once an hour, “0 * * * *”.
Common Examples:
- Backup Every Day at Midnight:
0 0 * * * /path/to/backup/script.sh
- Run a PHP Script Every Hour:
0 * * * * /usr/bin/php /path/to/your/script.php
Tips:
- Environment Variables: Cron jobs run in a minimal environment, so you might need to define environment variables that your task requires.
- Output Handling: By default, cron sends the output of the job to the user’s mail (local mail, not internet email). You can redirect the output to a file or to
/dev/null
if you don’t need it. - Logging: To log the output of a cron job, redirect the output to a file:
* * * * * command-to-execute >> /path/to/logfile 2>&1
- Script Permissions: Ensure that any scripts you’re calling are executable and have the appropriate permissions.
Cron jobs are particularly useful for automating routine tasks like backups, system updates, or periodic cleanup of temporary files.
-
WordPress: How to manually create a user in the database
Manually creating a WordPress user in the database involves adding a new entry to the
wp_users
table and assigning the necessary user capabilities. Here are the steps to do this:Please exercise caution when making direct changes to your WordPress database, as incorrect changes can break your site. Make sure to back up your database before proceeding.
- Access Your Database:
Log in to your server or hosting provider’s control panel and access the phpMyAdmin or a similar tool to manage your WordPress database. - Find the
wp_users
Table:
In phpMyAdmin, look for your WordPress database on the left-hand side and click to select it. Then, find and click on thewp_users
table. - Insert a New User:
Click the “Insert” or “Add” tab (the exact label may vary depending on your phpMyAdmin version). This will open a form for adding a new row to thewp_users
table. - Fill in User Information:
Fill in the following fields for the new user:
user_login
: Enter the desired username for the new user.user_pass
: Generate a secure password hash. You can use online tools to create password hashes or use WordPress’s built-inwp_hash_password
function. Make sure to select the MD5 option when entering the password hash.user_nicename
: This can be the same as theuser_login
.user_email
: Enter the email address for the new user.user_registered
: Set the registration date in the format “YYYY-MM-DD HH:MM:SS”.display_name
: The display name for the user.
- Insert the User:
Click the “Go” or “Insert” button to insert the new user into thewp_users
table. - Assign Capabilities:
To assign capabilities to the user, you’ll need to find the user’s ID in thewp_users
table (it’s typically an auto-incremented number) and then add an entry in thewp_usermeta
table.
- Go to the
wp_usermeta
table. - Insert a new row with the following values:
user_id
: The ID of the new user from thewp_users
table.meta_key
: Enterwp_capabilities
.meta_value
: Insert a serialized array with the user’s capabilities. For example, to make the user an administrator, you can usea:1:{s:13:"administrator";b:1;}
.
- Login to WordPress:
You should now be able to log in to your WordPress site using the credentials you provided.
Please be extremely careful when making changes directly to the database, and ensure that you have a backup in case anything goes wrong. It’s recommended to use the WordPress admin interface to create and manage users whenever possible to avoid potential issues.
- Access Your Database:
-
Credit Card Testing
The PayPal sandbox is a self-contained, virtual testing environment that simulates the live PayPal production environment. The sandbox provides a shielded space where you can initiate and watch while your apps process PayPal API requests without touching any live PayPal accounts.
-
iOS 17 is out and a couple of things stick out
The first thing, the battery life took a hit (hopefully, there’s a fix for this asap). The second is the announcement of the upcoming Journal app. I’m curious if this can be synced to WordPress… hopefully there will be an app for that.
-
Update WordPress MySQL tables from old domain name to new domain name
This code is typically used when migrating a WordPress site from one domain to another, ensuring that all references to the old domain are updated to the new domain.
/* This SQL code block updates various tables in a WordPress database to replace occurrences of the 'Old_Domain_Name' with the 'New_Domain_Name'. The specific tables being updated are: - wp_options: Updates the option_value column for rows where the option_name is 'home' or 'siteurl'. - wp_posts: Updates the post_content column. - wp_postmeta: Updates the meta_value column. - wp_usermeta: Updates the meta_value column. - wp_links: Updates the link_url column. - wp_comments: Updates the comment_content column. */ UPDATE wp_options SET option_value = replace(option_value, 'Old_Domain_Name','New_Domain_Name') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET post_content = replace(post_content, 'Old_Domain_Name','New_Domain_Name'); UPDATE wp_postmeta SET meta_value = replace(meta_value,'Old_Domain_Name','New_Domain_Name'); UPDATE wp_usermeta SET meta_value = replace(meta_value, 'Old_Domain_Name','New_Domain_Name'); UPDATE wp_links SET link_url = replace(link_url, 'Old_Domain_Name','New_Domain_Name'); UPDATE wp_comments SET comment_content = replace(comment_content , 'Old_Domain_Name','New_Domain_Name');
-
Image Tag Cheat Sheet
Basic Usage
<img src="path/to/image.jpg" alt="Image description" />
Attributes
Attribute Description src
The path to the image file. alt
The text to display if the image fails to load. width
The width of the image in pixels. height
The height of the image in pixels. title
The text to display when the user hovers over the image. Example
<img src="path/to/image.jpg" alt="Image description" width="200" height="200" title="Image title" />
Notes
- The
alt
attribute is required for accessibility. It is used by screen readers to describe the image to visually impaired users. - The
width
andheight
attributes are optional. If you do not specify them, the image will be displayed at its original size. - The
title
attribute is optional. It is used to provide additional information about the image when the user hovers over it.
- The