Friday, August 28, 2026

Notes from fourth chapter of the book "Never Finished" by David Goggins

See All Summaries
David Goggins is a mind blowing, one-in-a-million personality.

And his mother Jackie Goggins is no less of a person.

I am writing this today after completing the fourth chapter of his second (2nd for me) book “Never Finished”.

In this chapter he talks about how to overcome whatever that's holding you back.

David says to overcome anything, however big or small, you've gotta face it, feel it and analyze it, burn in your mind whatever you can learn about it to be better able respond when next time you confront it.

And the way to do that is: controlled anger and controlled exposure.

Almost as if to say that “you plan for your next episode of anger and exposure.”


Some lines from the chapter: # "What you call hell, he calls home.” # When your self-worth goes away and you don’t deal with or accept your demons, they will continue to own you, and you will become a bottom feeder. On importance of pauses called "Hard Stops" in life: # Hard Stops allow military units and individual soldiers to reorg. That includes reloading your empty magazines, taking inventory of your ammunition, and rearranging your gear so you have access to loaded weapons and anything else you may need in the hours ahead. You also must take a hard look at your battle plan and get a clear sense of what it is you’re facing and where it will lead.
David Goggins एक हैरान कर देने वाली, लाखों में एक मिलने वाली शख्सियत हैं।

और उनकी माँ Jackie Goggins भी किसी मायने में उनसे कम नहीं हैं।

मैं यह आज लिख रहा हूँ, उनकी दूसरी किताब (मेरे लिए दूसरी) “Never Finished” का चौथा अध्याय पूरा करने के बाद।

इस अध्याय में वह बात करते हैं कि जो कुछ भी आपको पीछे खींच रहा है, उसे कैसे पार किया जाए।

David कहते हैं कि किसी भी चीज़ को पार करने के लिए—चाहे वह कितनी भी बड़ी या छोटी क्यों न हो—आपको उसका सामना करना होगा, उसे महसूस करना होगा और उसका विश्लेषण करना होगा। उसके बारे में जो कुछ भी आप सीख सकते हैं, उसे अपने दिमाग में इतनी गहराई से बैठाना होगा कि अगली बार जब आपका सामना उससे हो, तो आप बेहतर ढंग से प्रतिक्रिया दे सकें।

और ऐसा करने का तरीका है: नियंत्रित क्रोध (Controlled Anger) और नियंत्रित सामना (Controlled Exposure)।

लगभग ऐसा, जैसे वह कह रहे हों कि: “अपने अगले गुस्से और अगले सामना करने वाले क्षण की पहले से तैयारी करो।”


अध्याय की कुछ पंक्तियाँ: # “जिसे तुम नर्क कहते हो, वह उसे अपना घर कहता है।” # जब आपका आत्म-मूल्य (self-worth) खत्म हो जाता है और आप अपने भीतर के राक्षसों का सामना नहीं करते या उन्हें स्वीकार नहीं करते, तो वे लगातार आप पर हावी होते रहेंगे और अंततः आप सबसे निचले स्तर पर पहुँच जाओगे। ज़िंदगी में “Hard Stops” यानी ठहराव के महत्व पर: # Hard Stops सैन्य इकाइयों और व्यक्तिगत सैनिकों को खुद को फिर से व्यवस्थित करने का अवसर देते हैं। इसमें खाली मैगज़ीन को दोबारा भरना, अपने गोला-बारूद का जायज़ा लेना और अपने सामान को इस तरह व्यवस्थित करना शामिल है कि आगे आने वाले घंटों में भरे हुए हथियारों और ज़रूरत की दूसरी चीज़ों तक आसानी से पहुँचा जा सके। आपको अपनी युद्ध-योजना पर भी एक कठोर नज़र डालनी होती है और यह स्पष्ट रूप से समझना होता है कि आपके सामने क्या है और वह आपको कहाँ ले जाएगा।

Steps to MySQL Installation (on Ubuntu) and Connection using DBeaver (2026 Aug)

User: jain@jain-Latitude-5310

#1

$ lsb_release -a

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 25.04
Release:	25.04
Codename:	plucky

#2

$ sudo apt install mysql-server -y

#3

$ mysql --version
mysql  Ver 8.4.7-0ubuntu0.25.04.2 for Linux on x86_64 ((Ubuntu))

$ mysql -V
mysql  Ver 8.4.7-0ubuntu0.25.04.2 for Linux on x86_64 ((Ubuntu))

#4: Start MySQL Service

$ sudo systemctl start mysql

#5: Enable MySQL to start on boot

$ sudo systemctl enable mysql

#6: Verify MySQL is Running

$ sudo systemctl status mysql

● mysql.service - MySQL Community Server
     Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: enabled)
     Active: active (running) since Fri 2026-08-28 08:42:03 IST; 1h 29min ago
 Invocation: 9dc06742a2994e4596ffb7c804f43a5f
   Main PID: 7299 (mysqld)
     Status: "Server is operational"
      Tasks: 37 (limit: 17977)
     Memory: 428.5M (peak: 442.1M)
        CPU: 59.251s
     CGroup: /system.slice/mysql.service
             └─7299 /usr/sbin/mysqld

Aug 28 08:42:02 jain-Latitude-5310 systemd[1]: Starting mysql.service - MySQL Community Server...
Aug 28 08:42:03 jain-Latitude-5310 systemd[1]: Started mysql.service - MySQL Community Server.

#7: Set up "root" password
Note: Below command is using default identification method -- which will cause us trouble when we will try to connect to MySQL using DBeaver

$ sudo mysql -u root

[sudo] password for jain: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.4.7-0ubuntu0.25.04.2 (Ubuntu)

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.02 sec)

mysql> ^C
mysql> 
[1]+  Stopped                 sudo mysql -u root

$ sudo mysql -u root -p

Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.4.7-0ubuntu0.25.04.2 (Ubuntu)

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

#8: Fixing "Access denied for user root@localhost"

mysql> SELECT user, host, plugin FROM mysql.user WHERE user='root';
+------+-----------+-------------+
| user | host      | plugin      |
+------+-----------+-------------+
| root | localhost | auth_socket |
+------+-----------+-------------+
1 row in set (0.01 sec)

mysql> 

If the plugin is auth_socket, change it to caching_sha2_password or mysql_native_password
(Replace caching_sha2_password with mysql_native_password if your client does not support the new default.)

sql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'root';
sql> FLUSH PRIVILEGES;

Error changes to:
Public Key Retrieval is not allowed.

#9: Fix is to use "mysql_native_password" as authentication method

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
But...

ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded


If you really need mysql_native_password (e.g., for an old client) You can try to load the plugin manually: Check if the plugin is listed (but disabled): sql> SHOW PLUGINS; Look for mysql_native_password in the list. If it’s there but not active, you may need to enable it (** AS DESCRIBED BELOW IN #10 **). If it’s completely missing, load it: sql> INSTALL PLUGIN mysql_native_password SONAME 'mysql_native_password.so'; Then retry your ALTER USER ... WITH mysql_native_password ... command. If the INSTALL PLUGIN fails, the plugin library might not be present – check your MySQL installation. In that case, stick with caching_sha2_password; almost all modern clients support it. #10: Enabling "mysql_native_password" plugin mysql> SHOW PLUGINS; +----------------------------------+----------+--------------------+----------------+---------+ | Name | Status | Type | Library | License | +----------------------------------+----------+--------------------+----------------+---------+ | binlog | ACTIVE | STORAGE ENGINE | NULL | GPL | | sha256_password | ACTIVE | AUTHENTICATION | NULL | GPL | | caching_sha2_password | ACTIVE | AUTHENTICATION | NULL | GPL | | sha2_cache_cleaner | ACTIVE | AUDIT | NULL | GPL | | daemon_keyring_proxy_plugin | ACTIVE | DAEMON | NULL | GPL | | CSV | ACTIVE | STORAGE ENGINE | NULL | GPL | | MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL | | InnoDB | ACTIVE | STORAGE ENGINE | NULL | GPL | | INNODB_TRX | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMPMEM | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP_PER_INDEX | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP_PER_INDEX_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_BUFFER_PAGE | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_BUFFER_PAGE_LRU | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_BUFFER_POOL_STATS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_TEMP_TABLE_INFO | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_METRICS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_DEFAULT_STOPWORD | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_DELETED | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_BEING_DELETED | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_CONFIG | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_INDEX_CACHE | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_INDEX_TABLE | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_TABLES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_TABLESTATS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_INDEXES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_TABLESPACES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_COLUMNS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_VIRTUAL | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CACHED_INDEXES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_SESSION_TEMP_TABLESPACES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL | | MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL | | PERFORMANCE_SCHEMA | ACTIVE | STORAGE ENGINE | NULL | GPL | | TempTable | ACTIVE | STORAGE ENGINE | NULL | GPL | | ARCHIVE | ACTIVE | STORAGE ENGINE | NULL | GPL | | BLACKHOLE | ACTIVE | STORAGE ENGINE | NULL | GPL | | FEDERATED | DISABLED | STORAGE ENGINE | NULL | GPL | | ndbcluster | DISABLED | STORAGE ENGINE | NULL | GPL | | ndbinfo | DISABLED | STORAGE ENGINE | NULL | GPL | | ndb_transid_mysql_connection_map | DISABLED | INFORMATION SCHEMA | NULL | GPL | | ngram | ACTIVE | FTPARSER | NULL | GPL | | mysqlx_cache_cleaner | ACTIVE | AUDIT | NULL | GPL | | mysqlx | ACTIVE | DAEMON | NULL | GPL | | mysql_native_password | DISABLED | AUTHENTICATION | NULL | GPL | | auth_socket | ACTIVE | AUTHENTICATION | auth_socket.so | GPL | +----------------------------------+----------+--------------------+----------------+---------+ 49 rows in set (0.00 sec) mysql>
*** Only if you absolutely need mysql_native_password *** If you have a very old client/library that doesn't support caching_sha2_password, you can re-enable the disabled plugin. Because the plugin is built-in but disabled, you cannot simply INSTALL it—you must enable it in the server configuration and restart MySQL. Step 1: Edit the MySQL config file: bash sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf Step 2: Add this line under the [mysqld] section: ini [mysqld] mysql_native_password=ON Step 3: Save the file and restart MySQL: bash sudo systemctl restart mysql Step 4: Now the plugin will show ACTIVE. Log in with sudo and change the root user: sql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; sql> FLUSH PRIVILEGES; Now test without sudo—it will also work. Testing: mysql> show plugins; +----------------------------------+----------+--------------------+----------------+---------+ | Name | Status | Type | Library | License | +----------------------------------+----------+--------------------+----------------+---------+ ... | mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL | ... +----------------------------------+----------+--------------------+----------------+---------+

Connect to MySQL using DBeaver

Connect DBeaver to MySQL

🔌 Connect to MySQL using DBeaver

Follow these steps to set up a connection from DBeaver to your locally installed MySQL server (Ubuntu 25.04, MySQL 8.0.41).


Step 1: Launch DBeaver and create a new connection

  1. Open DBeaver.
  2. Create a new connection using one of these methods:
    • Click the New Database Connection button in the toolbar.
    • Go to Database → New Database Connection in the main menu.
    • Press Ctrl + Shift + N (Windows/Linux) or ⌘ + Shift + N (macOS).

Step 2: Select the MySQL driver

  1. In the “Connect to a database” window, type MySQL in the search bar to filter drivers.
  2. Choose the correct driver for your version:
    • MySQL 8 and later → select MySQL (the default driver).
    • MySQL 5.x → select MySQL 5.
    • MySQL 4.x or older → select MySQL (old).
  3. Since your server is MySQL 8.0.41, choose the MySQL driver.

Step 3: Configure the connection details

After selecting the driver, click Next. On the Main tab of the Connection Settings screen, fill in the following:

Field Value for your setup
Host localhost or 127.0.0.1 (the MySQL server is on your machine)
Port 3306 (default – leave as is unless you changed it)
Database Leave blank (to see all databases) or enter a specific database name
Username Typically root for a fresh Ubuntu installation
Password Enter the root password you set during MySQL installation
💡 Note: If you didn’t set a password and are using the default auth_socket plugin, you may need to connect as root without a password, or set one using sudo mysql and ALTER USER.

Step 4: Test and finish

  1. Click the Test Connection button.
  2. If DBeaver prompts to download the JDBC driver, confirm the download.
  3. If the test is successful, you’ll see a confirmation message.
  4. Click Finish to save the connection.

The new connection will appear in the Database Navigator panel on the left. You can now browse and manage your MySQL databases directly from DBeaver.


Note: Set password for "root" user before trying to access MySQL using DBeaver using above steps

Otherwise you will get the below error:

Thursday, August 27, 2026

2.3: Choosing the right insurance riders


Index    « Previously    View Full Course on WebVeda

Index    « Previously    View Full Course on WebVeda

Never Buy Wrong Insurance (Credits: WebVeda)


   Next »    View Full Course on WebVeda
  1. Why you need life insurance (2.1)
  2. Types of Life Insurance Plans (2.2)
  3. Choosing the right insurance riders (2.3)

   Next »    View Full Course on WebVeda

2.2: Types of Life Insurance Plans


Index    « Previously    Next »    View Full Course on WebVeda

Index    « Previously    Next »    View Full Course on WebVeda

2.1: Why you need life insurance


Index    Next »    View Full Course on WebVeda

Index    Next »    View Full Course on WebVeda

Tuesday, August 18, 2026

Git "ls-tree" Command

~/Downloads/gh/private/some_repo (main)
$ git ls-tree

usage: git ls-tree []  [...]

    -d                    only show trees
    -r                    recurse into subtrees
    -t                    show trees when recursing
    -z                    terminate entries with NUL byte
    -l, --long            include object size
    --name-only           list only filenames
    --name-status         list only filenames
    --object-only         list only objects
    --[no-]full-name      use full path names
    --[no-]full-tree      list entire tree; not just current directory (implies --full-name)
    --format      format to use for the output
    --[no-]abbrev[=]   use  digits to display object names


~/Downloads/gh/private/some_repo (main) $ git ls-tree HEAD

100644 blob d0f41b05f672c503eec2111b14f618182389c1ac    .gitignore
040000 tree 2fce9ada01eba23ca60c25703f97e9a0d911333b    HTML
100644 blob 5e3c3c362ce8e9c520d5036dcc2036c182585831    README.md
040000 tree c551779d5363b05aa5a34f211eb68caa2262a986    analytics
040000 tree 52829da05b92a9bf66d890acb90189eba4955445    arize_phoenix_setup
040000 tree bbf89afd34a9ff7f77653881d2ad2d9838931302    blogger_creds
040000 tree f7e789b78a2d2afe9173e22fc8e46b8f1ec14c84    bugs
100644 blob 43defc0854921f22579a4d051cf2ad869bb579c7    chatgpt-kimi-2025Aug.png
040000 tree 891c6c6262971905a698e8885d39f43bd22c09b0    experiment 1
040000 tree a9b3cf308427518614d348cf62b880eb7a22c3f2    experiment 2
100644 blob 63611291cb75fdd49301c8321e9229c93b5a3e73    gemini.png
100644 blob b5e83a0b20588c5bfe22c204cf28b06995d9d427    news_cover_chatgpt_kimi.txt
100644 blob b8c5768d11347230615f35cd83c08fd1cf33c429    news_cover_gemini.txt
040000 tree 3a6d5d80c0ffd5ea943d249aea6e8a5d8f10fa8a    prompts
040000 tree c742432f1a48c523879d508e551db30ce42bef00    sqlite_db

~/Downloads/gh/private/some_repo (main) $ git ls-tree HEAD^


100644 blob d0f41b05f672c503eec2111b14f618182389c1ac    .gitignore
040000 tree 411d3cd1d8082ebbd9b1b7960ce931172650fd2b    HTML
100644 blob 5e3c3c362ce8e9c520d5036dcc2036c182585831    README.md
040000 tree c551779d5363b05aa5a34f211eb68caa2262a986    analytics
040000 tree 52829da05b92a9bf66d890acb90189eba4955445    arize_phoenix_setup
040000 tree c30b567ab1de2929bf4d6e906693a95d01ac269f    blogger_creds
040000 tree f7e789b78a2d2afe9173e22fc8e46b8f1ec14c84    bugs
100644 blob 43defc0854921f22579a4d051cf2ad869bb579c7    chatgpt-kimi-2025Aug.png
040000 tree f766fd0de8015e29dacce7e221547bc400b0d192    experiment 1
040000 tree a9b3cf308427518614d348cf62b880eb7a22c3f2    experiment 2
100644 blob 63611291cb75fdd49301c8321e9229c93b5a3e73    gemini.png
100644 blob b5e83a0b20588c5bfe22c204cf28b06995d9d427    news_cover_chatgpt_kimi.txt
100644 blob b8c5768d11347230615f35cd83c08fd1cf33c429    news_cover_gemini.txt
040000 tree 3a6d5d80c0ffd5ea943d249aea6e8a5d8f10fa8a    prompts
040000 tree 9e74c0b357a557e5602cbd115158d51493f672df    sqlite_db

~/Downloads/gh/private/some_repo (main)
$ git ls-tree HEAD HTML

040000 tree 2fce9ada01eba23ca60c25703f97e9a0d911333b    HTML

~/Downloads/gh/private/some_repo (main)
$ git ls-tree HEAD HTML/


100644 blob bd269ece__<40 Chars Long SHA Code>    HTML/19_Dropped_Out...
100644 blob 56aea3dd__<40 Chars Long SHA Code>    HTML/1_BHK_Full_Rig...

...
...
...

100644 blob fd179359__<40 Chars Long SHA Code>    HTML/Access_Denied_...
100644 blob 07eebeaf__<40 Chars Long SHA Code>    HTML/Afghanistans_D...

Creating TODO list (2026 Aug 6, 9AM)


My Meditations    « Previously    Next »
Aug 6, 9 Am

"I am feeling okay, not confused, rather with slight clarity"

The truth is : There will always be problems.

And the irony is : I am an active seeker of problems, inviting them, rather than waiting for one.

Couple of tasks in my head

# Office: Connect Github + Blogger + Github Actions
And later: Github + Python Anywhere + Github Actions

Personal / Or with mom

# Get the rent agreements for all the tenants

# Talk to Lawyer Mohit Jain

PERSONAL / MATH-EIGHT

# Test "blend words (ccvc) App"

# Enhance "Tiny Stories App" for meaning and phrase pairs.

My Meditations    « Previously    Next »

Sunday, August 16, 2026

Dental Checkup Regarding a Possible RCT - Basil Dental Clinic - 2026 Jul

View All on 'Oral and Mouth Medications'

Basil Dental Clinic — Dental Plan & Prescription

Date: 26/07/26
1. Clinical Visits & Procedures
Date Treatment / Recommendation Details
26/07/2026 Scaling (First Sitting) Initial deep cleaning performed. Consultation & scaling fee: ₹2,000
27/07/2026 Scaling (Second Sitting) Completed the scaling procedure.
Advised (Future) Extraction & RCT + Bridge
  • Extraction: Upper right 1st premolar (Tooth #14).
  • Root Canal Treatment (RCT): Upper right 2nd premolar, 1st molar, 2nd molar, 3rd molar (#17, 16, 15, 13 area).
  • Dental Bridge: Restorative bridge spanning teeth #17 to #13.
  • Note: Needs complete evaluation before proceeding.
2. Prescribed Medications
Medication Dosage / Instructions Duration
Tab. Pan-D 1 tablet daily on an empty stomach (1/2 hour Before Breakfast - BBF) 10 Days
Tab. Doxycycline (100mg) 1 tablet daily (night time / post-meal) 10 Days
Cap. Becosules 1 capsule daily (night time) 10 Days
Mouthwash Rinse with Chlorhexidine / Hydroxyl 1:1 dilution ratio 15 Days
Warm Water Saline Rinse Gargle/rinse 2–3 times a day Ongoing
Omnident Toothpaste Use twice daily for brushing 3 Months
3. Estimated Cost Breakdown
Root Canal Treatment (RCT) (₹4,500 × 4 teeth) ₹18,000
Zirconia / Dental Crowns (₹7,500 × 5 units) ₹37,500
Tooth Extraction ₹3,500
Total Estimated Cost ₹59,000
Medical Disclaimer: This summary is an interpretation of the provided handwritten clinical notes for informational purposes. Please follow all exact dosing guidance given directly by your attending dentist or pharmacist.

View All on 'Oral and Mouth Medications'