Saturday, December 9, 2023

Aloo Toast (Recipe)

1. Boil the potatoes
- Take 4 potatoes in pressure cooker.
- Fill the pressure cooker to just drown the potatoes 
- Put pressure cooker on gas stove for 10-12 minutes

2. Peel the potatoes
3. Chop the onion
4. Take the chopped onion and potato in a saucepan
5. Add salt and red chilli powder as per taste Note: I added two saltspoons of salt and two saltspoons of chilli powder. 6. Mesh the chopped onion and potatoes
7. Spread the meshed onion and potatoes on a slice to make a sandwich formation. 8. Uske baad tawe pe seko 9. Aloo toast ready

Fried Rice (Recipe)

1. Chop the vegetables (onion and tomato) in a chopper

2. Take a small bowl of peas.
3. Fry in 2 soup spoons of Soyabean refined oil 4. Add more salt and red chilli powder as per taste.

Thursday, December 7, 2023

ChatGPT prompts for preparing for job search (Dec 2023)

Say goodbye to endless job searches.

ChatGPT can help you land your dream job twice as fast.

Here are Top 10 Best ChatGPT Prompts for Technical Interview Questions.

Prompt 1: I'm interviewing for [Your Role] at [Company Name]. I have [Your Experience] in [Your Domain]. What are the technical aspects that need to be covered for the technical interview? Give me a list in order.

Prompt 2: Please provide a set of potential questions, expected responses, and relevant insights for a [Your Role] preparing for an interview in a [Company] that specializes in [Company Domain].

Prompt 3: Consider yourself as a hiring manager and ask me questions on [Your Domain], and I'm going to provide an answer. Give me feedback on my answer: What part of my answer stood out? What pieces were missing? What did I do well, and what may I have done differently, in light of best practices for interviews?

Prompt 4: Please provide [Count] potential [Domain] technical interview questions at [Company], along with sample responses and insights.

Prompt 5: Consider yourself as a hiring manager, Shoot me potential questions a [Your Role] might face at [Company], what answers they could provide, and how it shows relevant skills.

Prompt 6: I'm preparing for a [Your Role] interview at [Company]. Can you provide me with [Count] challenging technical questions that are commonly asked in such interviews, along with detailed answers?

Prompt 7: Imagine you are a technical interviewer at [Company] hiring for a [Your Role] position. Could you share the technical interview questions you would ask to assess a candidate's expertise, and what kind of responses you'd be looking for?

Prompt 8: I have an upcoming technical interview at [Company] for a [Your Role] position. Can you provide me with insightful and relevant technical questions that might be asked during the interview, as well as tips on how to approach them effectively?

Prompt 9: As someone experienced in technical interviews for [Your Role] positions at [Company], can you suggest asking me challenging questions that assess my technical knowledge and problem-solving skills, along with strategies to tackle them?

Prompt 10: I'm getting ready for a technical interview at [Company] for a [Your Role] role. Could you please share [Count] technical questions that often come up in these interviews and provide guidance on how to give strong responses?

Preparing for a job interview can be a nerve-wracking experience, but with the help of ChatGPT, it can become a transformative journey toward success.

Friday, December 1, 2023

Coding Interview Books (Dec 2023)

Download Books
1. 
Cracking the coding interview
Authors: Gayle Laakmann McDowell

2.
Elements of Programming Interviews in Java: The Insiders' Guide
Authors: Tsung-Hsien Lee, Adnan Aziz, Amit Prakash

3.
The Algorithm Design Manual
Authors: Steven Skiena

4.
Programming Interviews Exposed
Authors: Noah Kindler, Eric Giguere, John Mongan

5.
Cracking the Coding Interview
Authors: Gayle Laakmann McDowell

6.
Coding Interview Questions
Authors: Narasimha Karumanchi

7.
Programming Pearls
Authors: Jon Bentley

8.
Clean Code
Authors: Robert Cecil Martin

9.
Dynamic Programming for Coding Interviews: A Bottom-Up approach to problem solving
Authors: Kamal Rawat, Meenakshi

10.
Surviving the Whiteboard Interview: A Developer’s Guide to Using Soft Skills to Get Hired
Authors: William Gant

11.
Elements of Programming Interviews

12.
Time Complexity Analysis-Independently published (2021)
Aditya Chatterjee, Ue Kiao

13.
Binary Tree Problems. Must for Interviews and Competitive Coding
Srishti Guleria, Ue Kiao, Aditya Chatterjee 
OpenGenus (2021)

14. 
Technical Interview Skills - Training-Workshop-Part-1
Jack-Dunn and Daisy-Zhou (mit.edu)

15.
The Google Resume_ How to Prepare for a Career and Land a Job at any Top Tech Company
Wiley (2011)
Gayle Laakmann McDowell

Substring in another string (Lesson in Algorithms)

Substring in another string

Problem

Detect if a shorter string is part of a longer string.

Shorter string is the substring.

Longer string is the superstring.

Example

Shorter string is ‘eng’.

Longer string is ‘opengenus’.

‘eng’ is a substring in ‘opengenus’.

‘123’ is not a substring in ‘opengenus’.

Code in Python

# s1 is the superstring
# s2 is the substring

def solution(s1, s2):
    for i in range(len(s1)-len(s2)+1):
        if s1[i:i+len(s2)] == s2:
            return 'Match Found'  

Testing

s1 = 'opengenus'

# Test case: no match found

s2 = '123'

print(s2, solution(s1, s2))

# Test case: single character

s2 = 'p'

print(s2, solution(s1, s2))

# Test case: match substring at the beginning (at index 0)

s2 = 'ope'

print(s2, solution(s1, s2))

# Test case: match substring somewhere in the middle

s2 = 'eng'

print(s2, solution(s1, s2))

# Test case: match substring at the end

s2 = 'nus'

print(s2, solution(s1, s2))

# Test case: match both the strings completely

s2 = 'opengenus'

print(s2, solution(s1, s2))

Output

123 None
p Match Found
ope Match Found
eng Match Found
nus Match Found
opengenus Match Found

Word Meanings : 2023-Dec-1 (14 Words)


Index of Word Meanings
1.
aphorism
/ˈafərɪz(ə)m/
noun
noun: aphorism; plural noun: aphorisms

    a pithy observation which contains a general truth.
    "the old aphorism ‘the child is father to the man’"
    
    Similar:
    saying

maxim
axiom
adage
precept
epigram
epigraph
dictum
gnome
pearl of wisdom
proverb
saw
tag
motto
expression
phrase
formula
apophthegm

    a concise statement of a scientific principle, typically by a classical author.
    "the opening sentence of the first aphorism of Hippocrates"

---

2.

chicanery
/ʃɪˈkeɪn(ə)ri/
noun
noun: chicanery

    the use of deception or subterfuge to achieve one's purpose.
    "storylines packed with political chicanery"
    h
    Similar:
    trickery

deception
deceit
deceitfulness
duplicity
dishonesty
unscrupulousness
underhandedness
subterfuge
fraud
fraudulence
legerdemain
sophistry
sharp practice
skulduggery
swindling
cheating
duping
hoodwinking
deviousness
guile
intrigue
palace intrigue
craft
craftiness
artfulness
slyness
wiles
misleading talk
crookedness
monkey business
funny business
hanky-panky
shenanigans
flimflam
jiggery-pokery
monkeyshines
codology
management

    knavery

Origin
late 16th century: from French chicanerie, from chicaner ‘to quibble’ (see chicane).
Use over time for: chicanery

---

3.

malfeasance
/malˈfiːzns/
nounLaw
noun: malfeasance

    wrongdoing, especially (US) by a public official.

---

4.

incendiary
/ɪnˈsɛndɪəri/
adjective
adjective: incendiary

    1.
    (of a device or attack) designed to cause fires.
    "incendiary bombs"
    h
    Similar:
    combustible

flammable
inflammable
fire-producing
fire-raising
2.
tending to stir up conflict.
"incendiary rhetoric"
h
Similar:
inflammatory
rabble-rousing
provocative
agitational
seditious
subversive
revolutionary
insurrectionary
insurrectionist
arousing
stirring
contentious
controversial

    h
    Opposite:
    conciliatory
        very exciting.
        "an incendiary live performer"

noun
noun: incendiary; plural noun: incendiaries

    1.
    an incendiary bomb or device.
    "the Holy City was blasted by incendiaries"
    h
    Similar:
    explosive

bomb
incendiary device
2.
a person who starts fires.
"he was an English incendiary, responsible for the burning of three French battleships"
h
Similar:
arsonist
fire-bomber
firesetter
pyromaniac
fire-raiser
firebug

---

5.

strenuous
/ˈstrɛnjʊəs/
adjective
adjective: strenuous

    requiring or using great effort or exertion.
    "the government made strenuous efforts to upgrade the quality of the teaching profession"
    h
    Similar:
    arduous

difficult
hard
tough
taxing
demanding
exacting

---

6.

upheaval
/ʌpˈhiːvl/
noun
noun: upheaval; plural noun: upheavals

    1.
    a violent or sudden change or disruption to something.
    "major upheavals in the financial markets"
    h
    Similar:
    disruption

upset
disturbance
trouble
turbulence
disorder
disorganization
confusion
turmoil
pandemonium
bedlam
furore
uproar
disarray
chaos
mayhem
cataclysm
revolution
violent change
sudden change
h
Opposite:
stability

    tranquillity
    2.
    an upward displacement of part of the earth's crust.
    "the first upheaval produced a hill which was called Roof Mountain"

---

7.

imperturbable
/ˌɪmpəˈtəːbəbl/
adjective
adjective: imperturbable

    unable to be upset or excited; calm.
    "an imperturbable tranquillity"
    h
    Similar:
    self-possessed

composed
collected
calm
cool
and collected
as cool as a cucumber
cool-headed
self-controlled
poised
tranquil
serene
relaxed
easy-going
unexcitable
even-tempered
placid
sedate
phlegmatic
unperturbed
unflustered
untroubled
unbothered
unruffled
undismayed
unagitated
undisturbed
unmoved
nonchalant
at ease
unflappable
unfazed
together
laid-back
nonplussed
equanimous
h
Opposite:
edgy

    excitable

Origin
late Middle English: from late Latin imperturbabilis, from in- ‘not’ + perturbare (see perturb).

---

8.

palliative
/ˈpalɪətɪv/
adjective
adjective: palliative

    (of a medicine or form of medical care) relieving symptoms without dealing with the cause of the condition.
    "palliative drugs"
    h
    Similar:
    soothing

alleviating
sedative
calmative
calming
alleviative
alleviatory
lenitive
demulcent
assuasive
mitigatory
mitigative

    paregoric
        (of an action) intended to alleviate a problem without addressing the underlying cause.
        "short-term palliative measures had been taken"

noun
noun: palliative; plural noun: palliatives

    a medicine or form of medical care that relieves symptoms without dealing with the cause of the condition.
    "at present, available treatments are only palliatives and no curative drugs are available yet"
    h
    Similar:
    painkiller

analgesic
pain reliever
sedative
tranquillizer
anodyne
calmative
opiate
bromide
lenitive
demulcent
mitigative

    paregoric
        an action that is intended to alleviate a problem without addressing the underlying cause.
        "social projects presented as palliatives for the urban crisis"

Origin
late Middle English (as an adjective): from French palliatif, -ive or medieval Latin palliativus, from the verb palliare ‘to cloak’ (see palliate).
Use over time for: palliative

---

9.

chasm
/ˈkaz(ə)m/
noun
noun: chasm; plural noun: chasms

    a deep fissure in the earth's surface.
    "a chasm a mile long"
    h
    Similar:
    gorge

abyss
canyon
ravine
gully
gulf
pass
defile
couloir
crevasse
cleft
rift
rent
pit
void
crater
cavity
hole
opening
gap
fissure
crevice
hollow
chine
bunny
clough
gill
thrutch
cleuch
heugh
gulch
coulee
flume
arroyo
barranca
quebrada
nullah
khud
sloot
kloof
donga
khor

    a profound difference between people, viewpoints, feelings, etc.
    "the chasm between rich and poor"
    h
    Similar:
    breach

gulf
rift
division
schism
split
severance
rupture
break
break-up
parting of the ways
separation
disunion
estrangement
alienation
difference
dissension
discord
argument
quarrel

        scission

Origin
late 16th century (denoting an opening up of the sea or land, as in an earthquake): from Latin chasma, from Greek khasma ‘gaping hollow’.
Use over time for: chasm


---

10:

elusive
/ɪˈl(j)uːsɪv/
adjective
adjective: elusive

    difficult to find, catch, or achieve.
    "success will become ever more elusive"
    h
    Similar:
    difficult to catch/find

difficult to track down
evasive
slippery
shifty
always on the move

    cagey
        difficult to remember.
        "the elusive thought he had had moments before"

Origin
early 18th century: from Latin elus- ‘eluded’ (from the verb eludere ) + -ive.
Tip
Similar-sounding words
elusive is sometimes confused with illusive

---

11.

illusive
/ɪˈl(j)uːsɪv/
adjectiveliterary
adjective: illusive

    deceptive; illusory.
    "an illusive haven"

Origin
early 17th century: from medieval Latin illusivus, from Latin illus- ‘mocked’, from the verb illudere (see illusion).
Tip
Similar-sounding words
illusive is sometimes confused with elusive

---

12.

canker sores :

A canker sore is a common form of mouth ulcer, which appears as a painful white or yellow ulcer surrounded by a bright red area. A canker sore sore can be triggered by emotional stress, dietary deficiencies, menstrual periods, hormonal changes, food allergies or trauma in the mouth.

---

13.

rumbling
/ˈrʌmbəlɪŋ,ˈrʌmblɪŋ/
noun
noun: rumbling; plural noun: rumblings

    a continuous deep, resonant sound.
    "the rumbling of wheels in the distance"
        an early indication or rumour of dissatisfaction or incipient change.
        "there are growing rumblings of discontent"

adjective
adjective: rumbling

    making or constituting a deep resonant sound.
    "rumbling trams"

---

14.

devoid
/dɪˈvɔɪd/
adjective
adjective: devoid

    entirely lacking or free from.
    "Lisa kept her voice devoid of emotion"
    h
    Similar:
    lacking

without
free from/of
empty of
vacant of
void of
bare of
barren of
bereft of
drained of
denuded of
deprived of
depleted of
destitute of
bankrupt of
wanting
in need of
minus

    sans

Origin
late Middle English: past participle of obsolete devoid ‘cast out’, from Old French devoidier .
Use over time for: devoid

Wednesday, November 29, 2023

2.2 - Odd occurrences in an array

Odd Occurrences in an Array

Problem

A non-empty array A consisting of N integers is given. The array contains an odd number of elements, and each element of the array can be paired with another element that has the same value, except for one element that is left unpaired.

Write a function:

def solution(A)

that, given an array A consisting of N integers fulfilling the above conditions, returns the value of the unpaired element.

For example, given array A such that:

A[0] = 9 A[1] = 3 A[2] = 9 A[3] = 3 A[4] = 9 A[5] = 7 A[6] = 9

the function should return 7, as explained in the next slide.

Write an efficient algorithm for the following assumptions:

N is an odd integer within the range [1..1,000,000];

each element of array A is an integer within the range [1..1,000,000,000];

all but one of the values in A occur an even number of times.

Example

For example, in array A such that:

A[0] = 9 A[1] = 3 A[2] = 9

A[3] = 3 A[4] = 9 A[5] = 7

A[6] = 9

the elements at indexes 0 and 2 have value 9,

the elements at indexes 1 and 3 have value 3,

the elements at indexes 4 and 6 have value 9,

the element at index 5 has value 7 and is unpaired.

Trick: Use of Key-Value Pair and a Set

The Key-Value pair in the heading could be a dictionary (dict) in Python (or HashMap in Java).

We would need to traverse the input array once and maintain two data structures (a dict and a set).

Dict named counts: would contain the elements as keys

Set named odds: would contain the elements whose number of occurrences are found to be odd.

Note during the program’s lifetime, size of set ‘odds’ would change but by the end of iteration, there would be only one element in it.

Java Based Code of a Variant of The Solution From My Friend Rohit

import java.util.*; 
class Solution { 
 public int solution(int[] A) { 
  Map<Integer, Integer> integerMap = new HashMap<Integer, Integer>(); 
  for (int i = 0; i < A.length; A++)) {
   if (!integerMap.containsKey(A[i])) { 
    integerMap.put(A[i], 1); 
   } 
   else { 
    int count = integerMap.get(A[i]);      	 
    integerMap.put(A[i], count + 1); 
  }
  int missingNumber = 0; 
  for (Map.Entry<Integer, Integer> map : integerMap.entrySet()) 
  { 
   if (map.getValue() % 2 == 1) { 
    missingNumber = map.getKey(); 
  } 
  return missingNumber; 
 }
}  

In Python Code

def solution(A):
    counts = dict()
    odds = set()

    for i in A:
        if i in counts:
            counts[i] += 1
        else:
            counts[i] = 1

        if counts[i] % 2 == 1:
            odds.add(i)
        else:
            odds.remove(i)

    return odds.pop()  

Time Complexity

Detected time complexity:

O(N) or O(N*log(N))

Test Cases

-simple1

simple test n=5

-extreme_single_item

[42]

-small1

small random test n=201

- medium1

medium random test n=2,001

big1

big random test n=999,999, multiple repetitions

-big2

big random test n=999,999

Tags: Technology,Algorithms,

2.1 - Cyclic rotation (Problem of Arrays)

Cyclic Rotation

Problem

An array A consisting of N integers is given. Rotation of the array means that each element is shifted right by one index, and the last element of the array is moved to the first place. For example, the rotation of array A = [3, 8, 9, 7, 6] is [6, 3, 8, 9, 7] (elements are shifted right by one index and 6 is moved to the first place).

The goal is to rotate array A K times; that is, each element of A will be shifted to the right K times.

Write a function:

def solution(A, K)

that, given an array A consisting of N integers and an integer K, returns the array A rotated K times.

Assume that:

N and K are integers within the range [0..100];

each element of array A is an integer within the range [−1,000..1,000].

In your solution, focus on correctness. The performance of your solution will not be the focus of the assessment.

Example

For example, given

A = [3, 8, 9, 7, 6]

K = 3

the function should return [9, 7, 6, 3, 8]. Three rotations were made:

[3, 8, 9, 7, 6] -> [6, 3, 8, 9, 7]

[6, 3, 8, 9, 7] -> [7, 6, 3, 8, 9]

[7, 6, 3, 8, 9] -> [9, 7, 6, 3, 8]

For another example, given

A = [0, 0, 0]

K = 1

the function should return [0, 0, 0]

Given

A = [1, 2, 3, 4]

K = 4

the function should return [1, 2, 3, 4]

The Modulus Trick

Instead of writing code to move each element multiple times towards their final state, we move each element once to their final position.

We swap the elements using the following formula:

B[ (i+K) % len(A) ] = A[i]

Note: % is the modulus operator that basically returns the remainder from the division operation (as in long division method)

In Code

def solution(A, K):
    rtn = [0 for i in A]

    for i in range(len(A)):
        rtn[(i + K) % len(A)] = A[i]
    return rtn

Test Cases

print(solution([1,2,3], 1))

print(solution([3, 8, 9, 7, 6], 3))

print(solution([0, 0, 0], 1))

[3, 1, 2]

[9, 7, 6, 3, 8]

[0, 0, 0]

Other Test Case Types

-extreme_empty

empty array

-single

one element, 0 <= K <= 5

-double

two elements, K <= N

-small1

small functional tests, K < N

-small_random_all_rotations

small random sequence, all rotations, N = 15

-medium_random

medium random sequence, N = 100

-maximal

maximal N and K

Tags: Algorithms,Technology,

Tuesday, November 28, 2023

Binary Gap (Problem of Iterations) - Lesson in Algorithms Analysis and Design

Binary Gap

Find longest sequence of zeros in binary representation of an integer.

Problem

A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N.

For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The number 529 has binary representation 1000010001 and contains two binary gaps: one of length 4 and one of length 3. The number 20 has binary representation 10100 and contains one binary gap of length 1. The number 15 has binary representation 1111 and has no binary gaps. The number 32 has binary representation 100000 and has no binary gaps.

Write a function:

def solution(N)

that, given a positive integer N, returns the length of its longest binary gap. The function should return 0 if N doesn't contain a binary gap.

Write an efficient algorithm for the following assumptions:

N is an integer within the range [1..2,147,483,647].

Example

For example, given N = 1041

The function should return 5, because N has binary representation 10000010001 and so its longest binary gap is of length 5.

Given N = 32

The function should return 0, because N has binary representation '100000' and thus no binary gaps.

Ideas For Code

Step 1: A binary gap can be represented using the RegEx:

1(0+)1

But this pattern would not be suffice because it would not work for a binary like: 10001001

As here the second one is part of two Binary Gaps (First ‘10001’ and second ‘1001’).

So we reduce the pattern to: 10+

This is to prevent overlap between binary gaps we want to capture.

Step 2: Find all such patterns in the binary of the integer

Step 3: Check if there is a closing one at the end

Step 4: Store the lengths of all such binary gaps

Step 5: Return the maximum length

Python Code (Version 1)

import re

pattern = re.compile("10+")

def solution(N):

    n = str(bin(N))[2:]
    matches = re.finditer(pattern, n)
    matches_ = []
    lengths = []
    for i in matches:
        if(len(n) > i.span()[1]):
            if(n[i.span()[1]] == '1'):
                matches_.append(i.group())
                lengths.append(i.group().count('0'))

    if len(lengths) > 0:
        rtn = max(lengths)
    else:
        rtn = 0
    return rtn  

Can we do better?

Here in the Step 5 and 6: Where we want to print the maximum length

Here the Space Complexity is of the order of n, O(n) (number of binary gaps in input)

Step 5: Instead of storing all the lengths, we can simply store the maximum length across all the binary gaps.

Step 6: Return the maximum length obtained in Step 5

Also, there is added Time Complexity of finding the maximum length from all the accumulated lengths.

Python Code (Version 2)

import re

pattern = re.compile("10+")

def solution(N):

    n = str(bin(N))[2:]
    matches = re.finditer(pattern, n)
    matches_ = []
    
    max_length = 0

    for i in matches:
        if(len(n) > i.span()[1]):
            if(n[i.span()[1]] == '1'):
                matches_.append(i.group())
                if i.group().count('0') > max_length:
                    max_length = i.group().count('0')

    return max_length

Test Cases

- extremes

n=1, n=5=101_2 and n=2147483647=2**31-1

- trailing_zeroes

n=6=110_2 and n=328=101001000_2

- power_of_2

n=5=101_2, n=16=2**4 and n=1024=2**10

- simple1

n=9=1001_2 and n=11=1011_2

- medium1

n=51712=110010100000000_2 and n=20=10100_2

- large1

n=6291457=11000000000000000000001_2

Test Results

print("Testing...")

print(solution(1041))

print(solution(15))

print(solution(32))

print(solution(1))

print(solution(2147483647))

print(solution(6291457))

print(solution(74901729))

print(solution(805306373))

print(solution(1376796946))

print(solution(1073741825))

print(solution(1610612737))

Testing...

5

0

0

0

0

20

4

25

5

29

28

Future Scope

  • How can we implement the same thing in JavaScript?
  • How can we implement the same thing in Java?

Homework

Generate 10 random natural numbers and return the maximum number generated.

Tags: Algorithms,Technology

Monday, November 27, 2023

Psychology of Money (by Morgan Housel) - Summary

Translate this page:

Before we begin to summarize the book... 
First, let me tell you a story about a dentist appointment gone horribly awry.

It teaches us something vital about the dangers of giving advice about what to do with your money.
Clarence Hughes went to the dentist in 1931. His mouth was radiating pain.
His dentist put him under crude anesthesia to ease the pain. When Clarence awoke hours later he had 16 fewer teeth and his tonsils removed.

And then everything went wrong. Clarence died a week later from his surgery's complications.

His wife sued the dentist, but not because the surgery went awry. Every surgery risked death in 1931.
Clarence, she said, never consented to the procedures in the first place, and wouldn't if he were asked.

The case wove through courts, but went nowhere. Consent between doctor and patient wasn't black and white in 1931. One court summed up the idea that doctors require freedom to make the best medical decisions: “Without such, we could not enjoy the advancement of science.”

For most of history the ethos of medicine was that the doctor's job was to fix the patient, and what the patient thought about the doctor's treatment plans wasn't relevant. Dr. Jay Katz wrote about the philosophy in his book The Silent World Between Doctor and Patient:Doctors felt that in order to accomplish that objective they were obligated to attend to their patients' physical and emotional needs and to do so on their own authority, without consulting with their patients about the decisions that needed to be made. The idea that patients may also be entitled to sharing the burdens of decisions with their doctors was never part of the ethos of medicine.

This wasn't ego or malice. It was a belief in two points: Every patient wants to be cured.
There is a universal and right way to cure them.
Not requiring patient consent in treatment plans makes sense if you believe in those two points.
But that's not how medicine works.

In the last 50 years medical schools subtly shifted teaching away from treating disease and toward treating patients. That meant laying out the options of treatment plans, and then letting the patient decide the best path forward.

This trend was partly driven by patient-protection laws, partly by Katz's influential book, which argued that patients have wildly different views about what's worth it in medicine, so their beliefs have to be taken into consideration. Katz wrote:It is dangerous nonsense to assert that in the practice of their art and science physicians can rely on their benevolent intentions, their abilities to judge what is the right thing to do ... It is not that easy. Medicine is a complex profession and the interactions between physicians and patients are also complex.

That last line is important. “Medicine is a complex profession and the interactions between physicians and patients are also complex.”
You know what profession is the same? Financial advice.
I can't tell you what to do with your money, because I don't know you.
I don't know what you want. I don't know when you want it. I don't know why you want it.

So I'm not going to tell you what to do with your money. I don't want to treat you like a dentist treated Clarence Hughes.

But doctors and dentists aren't useless, obviously. They have knowledge.
They know the odds. They know what tends to work, even if patients come to different conclusions about what kind of treatment is right for them.
Financial advisors are the same. There are universal truths in money, even if people come to different conclusions about how they want to apply those truths to their own finances.
With that caveat in place, let's look at a few short recommendations that can help you make better decisions with your money.

1.
Go out of your way to find humility when things are going right and forgiveness/compassion when they go wrong. Because it's never as good or as bad as it looks. The world is big and complex. Luck and risk are both real and hard to identify. Do so when judging both yourself andothers. Respect the power of luck and risk and you'll have a better chance of focusing on things you can actually control. You'll also have a better chance of finding the right role models.

2.
Less ego, more wealth. Saving money is the gap between your ego and your income, and wealth is what you don't see. So wealth is created by suppressing what you could buy today in order to have more stuff or more options in the future. No matter how much you earn, you will never build wealth unless you can put a lid on how much fun you can have with your money right now, today.

3.
Manage your money in a way that helps you sleep at night. That's different from saying you should aim to earn the highest returns or save a specific percentage of your income. Some people won't sleep well unless they're earning the highest returns; others will only get a good rest if they're conservatively invested. To each their own. But the foundation of, “does this help me sleep at night?” is the best universal guidepost for all financial decisions.

4.
If you want to do better as an investor, the single most powerful thing you can do is increase your time horizon. Time is the most powerful force in investing. It makes little things grow big and big mistakes fade away. It can't neutralize luck and risk, but it pushes results closer towards what people deserve.

5.
Become OK with a lot of things going wrong. You can be wrong half the time and still make a fortune, because a small minority of things account for the majority of outcomes. No matter what you're doing with your money you should be comfortable with a lot of stuff not working. That's just how the world is. So you should always measure how you've done by looking at your full portfolio, rather than individual investments. It is fine to have a large chunk of poor investments and a few outstanding ones. That's usually the best-case scenario. Judging how you've done by focusing on individual investments makes winners look more brilliant than they were, and losers appear more regrettable than they should.

6.
Use money to gain control over your time, because not having control of your time is such a powerful and universal drag on happiness. The ability to do what you want, when you want, with who you want, for as long as you want to, pays the highest dividend that exists in finance.

7.
Be nicer and less flashy. No one is impressed with your possessions as much as you are. You might think you want a fancy car or a nice watch.
But what you probably want is respect and admiration. And you're more likely to gain those things through kindness and humility than horsepower and chrome.

8.
Save. Just save. You don't need a specific reason to save. It's great to save for a car, or a downpayment, or a medical emergency. But saving for things that are impossible to predict or define is one of the best reasons to save. Everyone's life is a continuous chain of surprises.
Savings that aren't earmarked for anything in particular is a hedge against life's inevitable ability to surprise the hell out of you at the worst possible moment.

9.
Define the cost of success and be ready to pay it. Because nothing worthwhile is free. And remember that most financial costs don't have visible price tags. Uncertainty, doubt, and regret are common costs in the finance world. They're often worth paying. But you have to view them as fees (a price worth paying to get something nice in exchange) rather than fines (a penalty you should avoid).

10.
Worship room for error. A gap between what could happen in the future and what you need to happen in the future in order to do well is what gives you endurance, and endurance is what makes compounding magic over time. Room for error often looks like a conservative hedge, but if it keeps you in the game it can pay for itself many times over.

11.
Avoid the extreme ends of financial decisions. Everyone's goals and desires will change over time, and the more extreme your past decisions were the more you may regret them as you evolve.

12.
You should like risk because it pays off over time. But you should be paranoid of ruinous risk because it prevents you from taking futurerisks that will pay off over time.

13.
Define the game you're playing, and make sure your actions are not being influenced by people playing a different game.

14.
Respect the mess. Smart, informed, and reasonable people can disagree in finance, because people have vastly different goals and desires. There is no single right answer; just the answer that works for you.

Thank you!
Tags: Book Summary,Finance,

Friday, November 24, 2023

Hour One With SQLite Database

What does SQLite database contain?

SQLite Database has data stored in it in the form of tables.

What does a table contain?

It contains rows and columns.

A row is also called a record or tuple.

A column is also called an attribute.

Let's say we have a table called 'marks'.

What all columns can table of marks contain?

1. Year

2. Class

3. Subject

4. Marks

Four Basic Types of Operations We Do in Databases

Assuming you have a database with you:

Insert: To add or create a new record or tuple in your database.

Select: To read a records or tuples present in the database.

Update: To change an existing record or tuple in your database.

Delete: To remove or delete a record or tuple from the database.

Can be remembered using the acronym: CRUD for Create, Read, Update, Delete

Single File For Storing a Database

Note: SQLite uses a single file for storing data related a database. For example: we have two databases with us and there names are 'marks.db' and 'sharks.db'.

(base) ashish@ashish:~/Desktop/ws/sqlite_db$ ls

marks.csv marks.db sharks.db

(base) ashish@ashish:~/Desktop/ws/sqlite_db$

Creating a Database file and Creating a Table

(base) ashish@ashish:~$ sqlite3 sharks.db

# Here, sqlit3 is your application and sharks.db is the filename for that application to open.

SQLite version 3.39.3 2022-09-05 11:02:23
Enter '.help' for usage hints.

sqlite> CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);

INSERT INTO sharks VALUES (1, 'Sammy', 'Greenland Shark', 427);
INSERT INTO sharks VALUES (2, 'Alyoshka', 'Great White Shark', 600);
INSERT INTO sharks VALUES (3, 'Himari', 'Megaladon', 1800);

sqlite> select * from sharks;


1|Sammy|Greenland Shark|427
2|Alyoshka|Great White Shark|600
3|Himari|Megaladon|1800    

sqlite>

(base) ashish@ashish:~/Desktop/ws/sqlite_db$ sqlite3 sharks.db

SQLite version 3.39.3 2022-09-05 11:02:23

Enter '.help' for usage hints.

sqlite> .schema sharks

CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);

sqlite>

Viewing the Structure of a Table

Exploring a Database file

(base) ashish@ashish:~/Desktop/ws/sqlite_db$ sqlite3 sharks.db

SQLite version 3.39.3 2022-09-05 11:02:23

Enter '.help' for usage hints.

sqlite> .tables

sharks

sqlite> select * from sharks;

1|Sammy|Greenland Shark|427

2|Alyoshka|Great White Shark|600

3|Himari|Megaladon|1800

sqlite> ^Z

[3]+ Stopped sqlite3 sharks.db

(base) ashish@ashish:~/Desktop/ws/sqlite_db$ sqlite3 marks.db

SQLite version 3.39.3 2022-09-05 11:02:23

Enter '.help' for usage hints.

sqlite> .tables

marks

sqlite> select * from marks;

2023|8|english|75

2023|8|math|85

2023|8|computer|90

2022|7|english|90

2022|7|math|85

2022|7|computer|95

2023|8|physics|99

2023|8|chemistry|97

2023|8|biology|95

sqlite>

Import a CSV file

(base) ashish@ashish:~/Desktop/ws/sqlite_db$ sqlite3 marks.db
SQLite version 3.39.3 2022-09-05 11:02:23
Enter '.help' for usage hints.
sqlite>
sqlite> .tables
sqlite> .mode csv
sqlite> .import ./marks.csv marks

First line in marks.csv should contain the header with column names.

sqlite> .tables

marks

sqlite>

sqlite> select * from marks;

2023,8,english,75

2023,8,math,80

2023,8,computer,90

2022,7,english,90

2022,7,math,85

2022,7,computer,95

sqlite>

Inserting a single row

sqlite> .schema marks

CREATE TABLE IF NOT EXISTS 'marks' ('year' TEXT, 'class' TEXT, 'subject' TEXT, 'marks' TEXT);

sqlite>

sqlite> insert into marks (year, class, subject, marks) values (2023, 8, 'sanskrit', 90);

sqlite> select * from marks;

2023|8|english|75

2023|8|math|80

2023|8|computer|90

2022|7|english|90

2022|7|math|85

2022|7|computer|95

2023|8|sanskrit|90

sqlite>

Inserting multiple rows

sqlite> insert into marks (year, class, subject, marks) values (2023, 8, 'physics', 99), (2023, 8, 'chemistry', '97'), (2023, 8, 'biology', 95);

sqlite> select * from marks;

2023|8|english|75

2023|8|math|80

2023|8|computer|90

2022|7|english|90

2022|7|math|85

2022|7|computer|95

2023|8|sanskrit|90

2023|8|physics|99

2023|8|chemistry|97

2023|8|biology|95

Selection and Filtering

sqlite> select * from marks where marks > 90;

2022|7|computer|95

2023|8|physics|99

2023|8|chemistry|97

2023|8|biology|95

sqlite> select * from marks where class = 8;

2023|8|english|75

2023|8|math|80

2023|8|computer|90

2023|8|sanskrit|90

2023|8|physics|99

2023|8|chemistry|97

2023|8|biology|95

Update

sqlite> select * from marks where class = 8 and subject = 'math';

2023|8|math|80

sqlite>

sqlite> update marks set marks = marks + 5 where class = 8 and subject = 'math';

sqlite> select * from marks where class = 8 and subject = 'math';

2023|8|math|85

Deleting a record

sqlite> select count(*) from marks where subject = 'sanskrit';

1

sqlite> select * from marks where subject = 'sanskrit';

2023|8|sanskrit|90

sqlite> delete from marks where subject = 'sanskrit';

sqlite> select * from marks where subject = 'sanskrit';

sqlite> select count(*) from marks where subject = 'sanskrit';

0

sqlite>

Cursor

Row Num

0:ID

1:Name

2:SharkType

3:Length

0

1

Sammy

Greenland Shark

427

1

2

Alyoshka

Great White Shark

600

2

3

Himari

Megaladon

1800

[0][0]

[0][1]

[0][2]

[0][3]

[1][0]

[1][1]

[1][2]

[1][3]

[2][0]

[2][1]

[2][2]

[2][3]

A cursor allows us to iterate over a table.

And, a table can be viewed as a list of rows.

And, a row can be viewed as a tuple of cells.

In Code (Part 1)

import sqlite3

conn = sqlite3.connect('sharks.db')

print('Opened database successfully')

cursor = conn.execute('SELECT id, name, sharktype, length FROM sharks')

for row in cursor:

print('ID = ', row[0])

print('NAME = ', row[1])

print('SHARKTYPE = ', row[2])

print('LENGTH = ', row[3])

print('\n')

print('Operation done successfully')

conn.close()

Output

Opened database successfully

ID = 1

NAME = Sammy

SHARKTYPE = Greenland Shark

LENGTH = 427

ID = 2

NAME = Alyoshka

SHARKTYPE = Great White Shark

LENGTH = 600

ID = 3

NAME = Himari

SHARKTYPE = Megaladon

LENGTH = 1800

Operation done successfully

Tags: Technology,Database,

Know Your Linux Hardware Using inxi

On Ubuntu

(base) ashish@ashish:~$ inxi Command 'inxi' not found, but can be installed with: sudo apt install inxi (base) ashish@ashish:~$ inxi CPU: dual core Intel Core i5-4300U (-MT MCP-) speed/min/max: 798/800/2900 MHz Kernel: 6.2.0-37-generic x86_64 Up: 2h 16m Mem: 3127.7/7624.3 MiB (41.0%) Storage: 223.57 GiB (45.9% used) Procs: 241 Shell: Bash inxi: 3.3.13 (base) ashish@ashish:~$ inxi -Fxz System: Kernel: 6.2.0-37-generic x86_64 bits: 64 compiler: N/A Desktop: GNOME 42.9 Distro: Ubuntu 22.04.3 LTS (Jammy Jellyfish) Machine: Type: Laptop System: LENOVO product: 20ARS2C00D v: ThinkPad T440s serial: <superuser required> Mobo: LENOVO model: 20ARS2C00D v: 0B98401 WIN serial: <superuser required> UEFI-[Legacy]: LENOVO v: GJET79WW (2.29 ) date: 09/03/2014 Battery: ID-1: BAT0 charge: 18.0 Wh (98.4%) condition: 18.3/23.2 Wh (79.0%) volts: 12.1 min: 11.1 model: SONY 45N1111 status: Not charging ID-2: BAT1 charge: 1.4 Wh (63.6%) condition: 2.2/23.5 Wh (9.3%) volts: 12.4 min: 11.4 model: LGC 45N1127 status: Charging CPU: Info: dual core model: Intel Core i5-4300U bits: 64 type: MT MCP arch: Haswell rev: 1 cache: L1: 128 KiB L2: 512 KiB L3: 3 MiB Speed (MHz): avg: 1074 high: 1896 min/max: 800/2900 cores: 1: 800 2: 1896 3: 800 4: 800 bogomips: 19953 Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx Graphics: Device-1: Intel Haswell-ULT Integrated Graphics vendor: Lenovo driver: i915 v: kernel bus-ID: 00:02.0 Device-2: Lite-On Integrated Camera type: USB driver: uvcvideo bus-ID: 2-8:2 Display: x11 server: X.Org v: 1.21.1.4 driver: X: loaded: modesetting unloaded: fbdev,vesa gpu: i915 resolution: 1600x900~60Hz OpenGL: renderer: Mesa Intel HD Graphics 4400 (HSW GT2) v: 4.6 Mesa 23.0.4-0ubuntu1~22.04.1 direct render: Yes Audio: Device-1: Intel Haswell-ULT HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel bus-ID: 00:03.0 Device-2: Intel 8 Series HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel bus-ID: 00:1b.0 Sound Server-1: ALSA v: k6.2.0-37-generic running: yes Sound Server-2: PulseAudio v: 15.99.1 running: yes Sound Server-3: PipeWire v: 0.3.48 running: yes Network: Device-1: Intel Ethernet I218-LM vendor: Lenovo ThinkPad X240 driver: e1000e v: kernel port: 3080 bus-ID: 00:19.0 IF: enp0s25 state: down mac: <filter> Device-2: Intel Wireless 7260 driver: iwlwifi v: kernel bus-ID: 03:00.0 IF: wlp3s0 state: up mac: <filter> Drives: Local Storage: total: 223.57 GiB used: 102.66 GiB (45.9%) ID-1: /dev/sda vendor: Western Digital model: WDS240G2G0A-00JH30 size: 223.57 GiB Partition: ID-1: / size: 218.51 GiB used: 102.65 GiB (47.0%) fs: ext4 dev: /dev/sda3 ID-2: /boot/efi size: 512 MiB used: 6.1 MiB (1.2%) fs: vfat dev: /dev/sda2 Swap: ID-1: swap-1 type: file size: 2 GiB used: 0 KiB (0.0%) file: /swapfile Sensors: System Temperatures: cpu: 45.0 C mobo: N/A Fan Speeds (RPM): fan-1: 0 Info: Processes: 240 Uptime: 2h 17m Memory: 7.45 GiB used: 3.09 GiB (41.5%) Init: systemd runlevel: 5 Compilers: gcc: 11.4.0 Packages: 2138 Shell: Bash v: 5.1.16 inxi: 3.3.13 $ free -h total used free shared buff/cache available Mem: 7.4Gi 2.3Gi 1.5Gi 473Mi 3.6Gi 4.4Gi Swap: 2.0Gi 0B 2.0Gi (base) ashish@ashish:~$ --- --- --- --- ---

On Termux on Android Tablet PC by Samsung

$ inxi Use of uninitialized value $sc_freq_max[0] in join or string at /data/data/com.termux/files/usr/bin/inxi line 10313. CPU: 2x 6-core AArch64 (-MT MCP AMP-) speed/min/max: 961/614:1229/2002 MHz Kernel: 4.14.199-27204164-abX205XXU3CWI3 aarch64 Up: 17m Mem: 1.65/2.45 GiB (67.4%) Storage: 15.52 GiB/Total N/A Procs: 2 Shell: Bash inxi: 3.3.31 $ inxi -Fxz System: Kernel: 4.14.199-27204164-abX205XXU3CWI3 arch: aarch64 bits: 64 compiler: N/A Console: pty pts/0 Distro: Android Machine: Type: ARM System: UNISOC T618 Use of uninitialized value in string eq at /data/data/com.termux/files/usr/bin/inxi line 10234. inxi line 10313. CPU: Info: 2x 6-core model: AArch64 bits: 64 type: MT MCP AMP arch: aarch64 rev: 0 Speed (MHz): avg: 961 high: 2002 min/max: 614:1229/2002 boost: disabled cores: 1: 614 2: 614 3: 614 4: 614 5: 614 6: 614 7: 2002 8: 2002 bogomips: 416 Features: Use -f option to see features Graphics: Message: No ARM data found for this feature. Display: server: No display server data found. Headless machine? tty: 80x40 API: N/A Message: No API data available in console. Headless machine? Audio: Message: No ARM data found for this feature. Network: Message: No ARM data found for this feature. Drives: Local Storage: total: 0 KiB used: 15.52 GiB Partition: ID-1: / size: 3.68 GiB used: 3.66 GiB (99.5%) fs: ext4 dev: /dev/dm-4 ID-2: /cache size: 303.1 MiB used: 26 MiB (8.6%) fs: ext4 dev: /dev/mmcblk0p52 Swap: Alert: No swap data was found. Sensors: Src: lm-sensors Missing: Required tool sensors not installed. Check --recommends Info: Processes: 2 Uptime: 18m Memory: total: N/A available: 2.45 GiB used: 1.65 GiB (67.3%) Init: N/A Compilers: N/A Packages: 61 Shell: Bash v: 5.0.18 inxi: 3.3.31 $
Tags: Technology,Linux,

Thursday, November 9, 2023

Zen Mind, Beginner's Mind (Book Summary)

It is wisdom which is seeking for wisdom. The practice of Zen mind is beginner's mind. The innocence of the first inquiry—what am I?—is needed throughout Zen practice. The mind of the beginner is empty, free of the habits of the expert, ready to accept, to doubt, and open to all the possibilities. It is the kind of mind which can see things as they are, which step by step and in a flash can realize the original nature of everything. This practice of Zen mind is found throughout the book. Directly or by inference, every section of the book concerns the question of how to maintain beginner's mind through your meditation and in your life. This is an ancient way of teaching, using the simplest language and the situations of everyday life. This means the student should teach himself. Beginner's mind was a favorite expression of Dogen-zenji's. The calligraphy of the frontispiece, also by Suzuki-roshi, reads shoshin, or beginner's mind.

PROLOGUE

Beginner's mind: “In the beginner's mind there are many possibilities, but in the expert's there are few.”

PART ONE: Right Practice

Zazen practice is the direct expression of our true nature. Strictly speaking, for a human being, there is no other practice than this practice; there is no other way of life than this way of life. POSTURE “These forms are not the means of obtaining the right state of mind. To take this posture is itself to have the right state of mind. There is no need to obtain some special state of mind.” BREATHING “What we call 'I' is just a swinging door which moves when we inhale and when we exhale.” CONTROL “To give your sheep or cow a large, spacious meadow is the way to control him.” MIND WAVES “Because we enjoy all aspects of life as an unfolding of big mind, we do not care for any excessive joy. So we have imperturbable composure.” MIND WEEDS “You should rather be grateful for the weeds you have in your mind, because eventually they will enrich your practice.” THE MARROW OF ZEN “In the zazen posture, your mind and body have great power to accept things as they are, whether agreeable or disagreeable.” NO DUALISM “To stop your mind does not mean to stop the activities of mind. It means your mind pervades your whole body. With your full mind you form the mudra in your hands.” BOWING “Bowing is a very serious practice. You should be prepared to bow, even in your last moment. Even though it is impossible to get rid of our self-centered desires, we have to do it. Our true nature wants us to.” NOTHING SPECIAL “If you continue this simple practice every day, you will obtain some wonderful power. Before you attain it, it is something wonderful, but after you attain it, it is nothing special.”

PART TWO: Right Attitude

The point we emphasize is strong confidence in our original nature. SINGLE-MINDED WAY “Even if the sun were to rise from the west, the Bodhisattva has only one way.” REPETITION “If you lose the spirit of repetition, your practice will become quite difficult.” ZEN AND EXCITEMENT “Zen is not some kind of excitement, but concentration on our usual everyday routine.” RIGHT EFFORT “If your practice is good, you may become proud of it. What you do is good, but something more is added to it. Pride is extra. Right effort is to get rid of something extra.” NO TRACE “When you do something, you should burn yourself completely, like a good bonfire, leaving no trace of yourself.” GOD GIVING “'To give is nonattachment,' that is, just not to attach to anything is to give.” MISTAKES IN PRACTICE “It is when your practice is rather greedy that you become discouraged with it. So you should be grateful that you have a sign or warning signal to show you the weak point in your practice.” LIMITING YOUR ACTIVITY “Usually when someone believes in a particular religion, his attitude becomes more and more a sharp angle pointing away from himself. In our way the point of the angle is always towards ourselves.” STUDY YOURSELF “To have some deep feeling about Buddhism is not the point; we just do what we should do, like eating supper and going to bed. This is Buddhism.” TO POLISH A TILE “When you become you, Zen becomes Zen. When you are you, you see things as they are, and you become one with your surroundings.” CONSTANCY “People who know the state of emptiness will always be able to dissolve their problems by constancy.” COMMUNICATION “Without any intentional, fancy way of adjusting yourself, to express yourself as you are is the most important thing.” NEGATIVE AND POSITIVE “Big mind is something to express, not something to figure out. Big mind is something you have, not something to seek for.” NIRVANA, THE WATERFALL “Our life and death are the same thing. When we realize this fact, we have no fear of death anymore, nor actual difficulty in our life.”

PART THREE: Right Understanding

Our understanding of Buddhism is not just an intellectual understanding. True understanding is actual practice itself. TRADITIONAL ZEN SPIRIT “If you are trying to attain enlightenment, you are creating and being driven by karma, and you are wasting your time on your black cushion.” TRANSIENCY “We should find perfect existence through imperfect existence.” THE QUALITY OF BEING “When you do something, if you fix your mind on the activity with some confidence, the quality of your state of mind is the activity itself. When you are concentrated on the quality of your being, you are prepared for the activity.” NATURALNESS “Moment after moment, everyone comes out from nothingness. This is the true joy of life.” EMPTINESS “When you study Buddhism you should have a general house cleaning of your mind.” READINESS, MINDFULNESS “It is the readiness of the mind that is wisdom.” BELIEVING IN NOTHING “In our everyday life our thinking is ninety-nine percent self-centered. 'Why do I have suffering? Why do I have trouble?' ” ATTACHMENT, NONATTACHMENT “That we are attached to some beauty is also Buddha's activity.” CALMNESS “For Zen students a weed is a treasure.” EXPERIENCE, NOT PHILOSOPHY “There is something blasphemous in talking about how Buddhism is perfect as a philosophy or teaching without knowing what it actually is.” ORIGINAL BUDDHISM “Actually, we are not the Soto school at all. We are just Buddhists. We are not even Zen Buddhists. If we understand this point, we are truly Buddhists.” BEYOND CONSCIOUSNESS “To realize pure mind in your delusion is practice. If you try to expel the delusion it will only persist the more. Just say, 'Oh, this is just delusion,' and do not be bothered by it.” BUDDHA'S ENLIGHTENMENT “If you take pride in your attainment or become discouraged because of your idealistic effort, your practice will confine you by a thick wall.”
Tags: Buddhism,Psychology,Emotional Intelligence,

Sunday, November 5, 2023

Taoism Books (Nov 2023)

1.
Tao Te Ching
Laozi, 1970

2.
Tao: The Watercourse Way
Alan Watts, 1975

3.
Taoism: An Essential Guide
Eva Wong, 2011

4.
The Tao of Pooh
Benjamin Hoff, 1982

5.
365 Tao: Daily Meditations
Deng Ming-Dao, 1992

6.
Change Your Thoughts - Change Your Life: Living the Wisdom of the Tao
Wayne Dyer, 2007

7.
Zhuangzi
Chuang-Tzu, 1996

8.
The Secret of the Golden Flower: A Chinese Book of Life
2003

9.
The Tao of Physics
Fritjof Capra, 1975

10.
Taoism for Beginners: Understanding and Applying Taoist History, Concepts, and Practices
Elizabeth Reninger, 2020

11.
The Te of Piglet
Benjamin Hoff, 1992

12.
Lieh-tzu: A Taoist Guide to Practical Living
1995

13.
Cultivating Stillness: A Taoist Manual for Transforming Body and Mind
1992

14.
Way of Chuang Tzu
Thomas Merton, 1965

15.
Tao Te Ching: A Book about the Way and the Power of the Way
Ursula K. Le Guin, 1997

16.
Nourishing the Essence of Life: The Outer, Inner, and Secret Teachings of Taoism
2004

17.
The Essential Koran
Thomas Cleary, 1991

18.
Sufism and Taoism: A Comparative Study of Key Philosophical Concepts
Toshihiko Izutsu, 1983

19.
The I Ching: Or, Book of Changes
1950

20.
The Art of War
Sun Tzu, 2015

21.
Seven Taoist Masters: A Folk Novel of China
1990

22.
Be Water, My Friend: The Teachings of Bruce Lee
Shannon Lee, 2020

23.
Taoism for Beginners: A Guide to Balanced Living
C. Alexander Simpkins, 2021

24.
The Taoist experience
Livia Kohn, 1993

25.
The secret of secrets
Osho, 1982

26.
Awakening to the Tao
Liu Yiming, 1988

27.
The Eternal Tao Te Ching: The Philosophical Masterwork of Taoism and Its Relevance Today
Benjamin Hoff, 2021

28.
Hua Hu Ching: Teachings of Lao Tzu
Laozi, 1979

29.
Chuang tsu: Inner chapters
Chuang-Tzu, 1974

30.
Chronicles of Tao: The Secret Life of a Taoist Master
Deng Ming-Dao, 1993

31.
Everyday Tao: Living with Balance and Harmony
Deng Ming-Dao, 1996

32.
The tao is silent
Raymond Smullyan, 1977

33.
Taoist Yoga: Alchemy and Immortality
Pi Chʻen Chao, 1971

34.
Finding a Life of Harmony and Balance: A Taoist Master's Path to Wisdom
Kaiguo Chen, 2020

35.
The Way of Zen
Alan Watts, 1957

36.
Taoist secrets of love
Mantak Chia, 1984

37.
Tao Te Ching: With Over 150 Photographs by Jane English
Laozi

38.
Practicing the Tao Te Ching: 81 Steps on the Way
Solala Towler, 2016

39.
The Texts of Taoism
James Legge, 1891

40.
Living the Wisdom of the Tao: The Complete Tao Te Ching and Affirmations
Wayne Dyer, 2008

41.
Taoism: The Fundamental Books: Tao Te Ching, Lieh Tzŭ, Chuang Tzŭ
Laozi

42.
I Ching

43.
The Inner Teachings of Taoism
Liu Yiming

44.
The Taoist Classics, Volume Four: The Collected Translations of Thomas Cleary
Thomas Cleary, 2000

45.
Absolute Tao
Osho, 2012

46.
Confucianism & Taoism
Julia Ching, 1994

47.
Tao: The Pathless Path
Osho, 1979

48.
Taoism For Dummies
Jonathan Herman, 2013

49.
Tao Te Ching (New Edition with Commentary)
Laozi

50.
Tao Der Fuhrung
John Heider, 1985

51.
China Root: Taoism, Ch'an, and Original Zen
David Hinton, 2020

Stoicism Books (Nov 2023)

1. 
Meditations
Marcus Aurelius, 2000

2.
The Daily Stoic
Ryan Holiday, 2016

3.
Epistulae Morales ad Lucilium
Lucius Annaeus Seneca, 2021

4.
How to Think Like a Roman Emperor: The Stoic Philosophy of Marcus Aurelius
Donald Robertson, 2019

5.
How to Be a Stoic: Using Ancient Philosophy to Live a Modern Life
Massimo Pigliucci, 2017

6.
The Daily Stoic: 366 Meditations on Wisdom, Perseverance, and the Art of Living
Ryan Holiday, 2016

7.
A Guide to the Good Life: The Ancient Art of Stoic Joy
William Braxton Irvine, 2008

8.
Lives of the Stoics: The Art of Living from Zeno to Marcus Aurelius
Ryan Holiday, 2020

9.
The Little Book of Stoicism: Timeless Wisdom to Gain Resilience, Confidence, and Calmness
Jonas Salzgeber, 2019

10.
The inner citadel
Pierre Hadot, 1998

11.
Stoicism and the Art of Happiness: Practical Wisdom for Everyday Life
Donald Robertson, 2018

12.
The Obstacle Is the Way
Ryan Holiday, 2014

13.
On the Shortness of Life
Lucius Annaeus Seneca, 2003

14.
Discourses and selected writings
Epictetus, 2008

15.
Stoicism for Inner Peace
Einzelgänger, 2021

16.
The Art of Living
Epictetus

17.
The Practicing Stoic
Ward Farnsworth, 2018

18.
Lessons in Stoicism: What Ancient Philosophers Teach Us about How to Live
John Sellars, 2019

19.
Ego Is the Enemy
Ryan Holiday, 2016

20.
How to Be a Stoic
Massimo Pigliucci, 2017

21.
Enchiridion of Epictetus
Epictetus, 2007

22.
The Cambridge Companion to the Stoics
2003

23.
Discipline Is Destiny: The Power of Self-Control
Ryan Holiday, 2022

24.
Discourses of Epictetus
Epictetus, 1535

25.
The Stoic Challenge: A Philosopher's Guide to Becoming Tougher, Calmer, and More Resilient
William Braxton Irvine, 2019

26.
A new stoicism
Lawrence C. Becker, 1998

27.
A Handbook for New Stoics: How to Thrive in a World Out of Your Control—52 Week-by-Week Lessons
Massimo Pigliucci

28.
That One Should Disdain Hardships: The Teachings of a Roman Stoic
Gaius Musonius Rufus

29.
365 Ways to be More Stoic: A Day-by-day Guide to Practical Stoicism
Tim LeBon, 2022

30.
Stoic Classics Collection: Marcus Aurelius's Meditations, Epictetus's Enchiridion, Seneca's on the Happy Life
Epictetus

31.
Courage Is Calling: Fortune Favors the Brave
Ryan Holiday, 2021

32.
A Field Guide to a Happy Life: 53 Brief Lessons for Living
Massimo Pigliucci, 2020

33.
The Daily Stoic Journal: 366 Days of Writing and Reflection on the Art of Living
Ryan Holiday, 2017

34.
The Discourses
Epictetus

35.
The Art of Living: The Classical Mannual on Virtue, Happiness, and Effectiveness
1995

36.
The Beginner's Guide to Stoicism: Tools for Emotional Resilience and Positivity
Matthew J. van Natta, 2019

37.
The stoics
Mark Holowchak, 2008

38.
How to Live a Good Life: A Guide to Choosing Your Personal Philosophy
2020

39.
Stillness Is the Key
Ryan Holiday, 2019

40.
Stoicism: Introduction to the Stoic Way of Life
James Ryan, 2017

41.
The Stoics
Epictetus

42.
Journal Like a Stoic: A 90-Day Stoicism Program to Live with Greater Acceptance, Less Judgment, and Deeper Intentionality (Includes Teachings of Marcus Aurelius)
Brittany Polat, 2022

43.
Aristotle and the Stoics
Harry Sandbach, 1975

44.
Courage Under Fire: Testing Epictetus's Doctrines in a Laboratory of Human Behavior
James Stockdale, 1993

45.
Stoicism: Mastery - Mastering the Stoic Way of Life
James Ryan, 2017

46.
How To Be a Stoic
2017

47.
Discipline Is Destiny: A NEW YORK TIMES BESTSELLER
Ryan Holiday, 2022

48.
Letters on Ethics: To Lucilius
Lucius Annaeus Seneca

49.
The Manual: A Philosopher's Guide to Life
Epictetus

50.
Stoicism and Emotion
Margaret Graver, 2007

51.
Discourses and Selected Writings of Epictetus (19th Century Classics Illustrated Edition)
Epictetus