diff --git a/_astro/cover.DDpxBXz3_17wOYx.webp b/_astro/cover.DDpxBXz3_17wOYx.webp new file mode 100644 index 000000000..1ea929c69 Binary files /dev/null and b/_astro/cover.DDpxBXz3_17wOYx.webp differ diff --git a/_astro/cover.PZOiSz5F_2cdqS5.webp b/_astro/cover.PZOiSz5F_2cdqS5.webp deleted file mode 100644 index 6df072d92..000000000 Binary files a/_astro/cover.PZOiSz5F_2cdqS5.webp and /dev/null differ diff --git a/about/index.html b/about/index.html index e1e72f8ff..aa0a788e8 100644 --- a/about/index.html +++ b/about/index.html @@ -1 +1 @@ -About - Jiaqi's Leadership Blog

About#

Leadership, for me, is a Science, a discipline that involves a much broader superset beyond technology. It includes not just project management and public speaking, but also Psychology, Philosophy, and not to forget the technology itself.

leadership.qubitpi.org serves as my continuing effort that expand the boundary of my limit on being a leader

QubitPi
/
leadership-blogs
Waiting for api.github.com...
00K
0K
0K
Waiting...
\ No newline at end of file +About - Jiaqi's Leadership Blog

About#

Leadership, for me, is a Science, a discipline that involves a much broader superset beyond technology. It includes not just project management and public speaking, but also Psychology, Philosophy, and not to forget the technology itself.

leadership.qubitpi.org serves as my continuing effort that expand the boundary of my limit on being a leader

QubitPi
/
leadership-blogs
Waiting for api.github.com...
00K
0K
0K
Waiting...
\ No newline at end of file diff --git a/index.html b/index.html index bb5c2a8c4..8e2989fe2 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Jiaqi's Leadership Blog - Leadership is, at root, about Influencing Others
Leibniz's Theodicy
Leibnizian idea of perfectibility made Germany so proliferate at contributing genius to the world (Book, The German Genius). His Philosophy guided German to constantly push themselves to the endless next levels of human perfection. This I believe partially contributed the unbelievable warfare technologies during World War II, such as Tiger and King Tiger
506 words
|
3 minutes
Cover Image of the Post
Docker cAdvisor
Overseeing resource consumption of all Docker containers on a VM
138 words
|
1 minutes
Cover Image of the Post
Studying the Science of Project Management
Projects are temporary endeavors to create a unique product or service. All projects must have an end date.
1749 words
|
9 minutes
Cover Image of the Post
Humanistic Psychology
In order for individuals to thrive and excel, a health-fostering culture must be created.
1404 words
|
7 minutes
Cover Image of the Post
Leadership Lessons from "Greyhound"
Leadership is about genuinely loving something big beyond leader's work with a sense of perfectionism
113 words
|
1 minutes
Cover Image of the Post
孙子兵法(作战篇第二)
善战者,取之于敌也
359 words
|
2 minutes
Cover Image of the Post
How Great Leaders Inspire Action
Simon Sinek has a simple but powerful model for inspirational leadership -- starting with a golden circle and the question: "Why?" His examples include Apple, Martin Luther King Jr. and the Wright brothers ...
3558 words
|
18 minutes
Cover Image of the Post
Band of Brothers, Ep. 10, Deutscher General spricht zu seinen Männern
Band of Brothers, Ep. 10, Deutscher General spricht zu seinen Männern
137 words
|
1 minutes
Cover Image of the Post
\ No newline at end of file +Jiaqi's Leadership Blog - Leadership is, at root, about Influencing Others
Leibniz's Theodicy
Leibnizian idea of perfectibility made Germany so proliferate at contributing genius to the world (Book, The German Genius). His Philosophy guided German to constantly push themselves to the endless next levels of human perfection. This I believe partially contributed the unbelievable warfare technologies during World War II, such as Tiger and King Tiger
506 words
|
3 minutes
Cover Image of the Post
Docker cAdvisor
Overseeing resource consumption of all Docker containers on a VM
138 words
|
1 minutes
Cover Image of the Post
Studying the Science of Project Management
Projects are temporary endeavors to create a unique product or service. All projects must have an end date.
1749 words
|
9 minutes
Cover Image of the Post
Humanistic Psychology
In order for individuals to thrive and excel, a health-fostering culture must be created.
1404 words
|
7 minutes
Cover Image of the Post
Leadership Lessons from "Greyhound"
Leadership is about genuinely loving something big beyond leader's work with a sense of perfectionism
113 words
|
1 minutes
Cover Image of the Post
孙子兵法(作战篇第二)
善战者,取之于敌也
359 words
|
2 minutes
Cover Image of the Post
How Great Leaders Inspire Action
Simon Sinek has a simple but powerful model for inspirational leadership -- starting with a golden circle and the question: "Why?" His examples include Apple, Martin Luther King Jr. and the Wright brothers ...
3558 words
|
18 minutes
Cover Image of the Post
Band of Brothers, Ep. 10, Deutscher General spricht zu seinen Männern
Band of Brothers, Ep. 10, Deutscher General spricht zu seinen Männern
137 words
|
1 minutes
Cover Image of the Post
\ No newline at end of file diff --git a/pagefind/fragment/en_11319e1.pf_fragment b/pagefind/fragment/en_11319e1.pf_fragment new file mode 100644 index 000000000..965b3eac9 Binary files /dev/null and b/pagefind/fragment/en_11319e1.pf_fragment differ diff --git a/pagefind/fragment/en_115b767.pf_fragment b/pagefind/fragment/en_115b767.pf_fragment new file mode 100644 index 000000000..ce82cf955 Binary files /dev/null and b/pagefind/fragment/en_115b767.pf_fragment differ diff --git a/pagefind/fragment/en_128dc08.pf_fragment b/pagefind/fragment/en_128dc08.pf_fragment new file mode 100644 index 000000000..6633202f7 Binary files /dev/null and b/pagefind/fragment/en_128dc08.pf_fragment differ diff --git a/pagefind/fragment/en_17e8315.pf_fragment b/pagefind/fragment/en_17e8315.pf_fragment deleted file mode 100644 index 978a9edf4..000000000 Binary files a/pagefind/fragment/en_17e8315.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_1894640.pf_fragment b/pagefind/fragment/en_196445b.pf_fragment similarity index 96% rename from pagefind/fragment/en_1894640.pf_fragment rename to pagefind/fragment/en_196445b.pf_fragment index 5fe2b416b..6e540a9c2 100644 Binary files a/pagefind/fragment/en_1894640.pf_fragment and b/pagefind/fragment/en_196445b.pf_fragment differ diff --git a/pagefind/fragment/en_e1e4c9c.pf_fragment b/pagefind/fragment/en_19fce2d.pf_fragment similarity index 95% rename from pagefind/fragment/en_e1e4c9c.pf_fragment rename to pagefind/fragment/en_19fce2d.pf_fragment index 4e0e6aeea..a5cd2b06c 100644 Binary files a/pagefind/fragment/en_e1e4c9c.pf_fragment and b/pagefind/fragment/en_19fce2d.pf_fragment differ diff --git a/pagefind/fragment/en_c982c6d.pf_fragment b/pagefind/fragment/en_21d6ebc.pf_fragment similarity index 95% rename from pagefind/fragment/en_c982c6d.pf_fragment rename to pagefind/fragment/en_21d6ebc.pf_fragment index b1ccedb79..18b37efa8 100644 Binary files a/pagefind/fragment/en_c982c6d.pf_fragment and b/pagefind/fragment/en_21d6ebc.pf_fragment differ diff --git a/pagefind/fragment/en_229ca4f.pf_fragment b/pagefind/fragment/en_229ca4f.pf_fragment new file mode 100644 index 000000000..f42a7e15a Binary files /dev/null and b/pagefind/fragment/en_229ca4f.pf_fragment differ diff --git a/pagefind/fragment/en_28bcc4d.pf_fragment b/pagefind/fragment/en_28bcc4d.pf_fragment deleted file mode 100644 index 7a5a7f42f..000000000 Binary files a/pagefind/fragment/en_28bcc4d.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_2d2decb.pf_fragment b/pagefind/fragment/en_2d2decb.pf_fragment deleted file mode 100644 index e35bca634..000000000 Binary files a/pagefind/fragment/en_2d2decb.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_fabd768.pf_fragment b/pagefind/fragment/en_3624160.pf_fragment similarity index 94% rename from pagefind/fragment/en_fabd768.pf_fragment rename to pagefind/fragment/en_3624160.pf_fragment index 62b674c32..5f6bc300a 100644 Binary files a/pagefind/fragment/en_fabd768.pf_fragment and b/pagefind/fragment/en_3624160.pf_fragment differ diff --git a/pagefind/fragment/en_3b5296a.pf_fragment b/pagefind/fragment/en_3b5296a.pf_fragment deleted file mode 100644 index 3708b831e..000000000 Binary files a/pagefind/fragment/en_3b5296a.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_f2baec5.pf_fragment b/pagefind/fragment/en_428d071.pf_fragment similarity index 94% rename from pagefind/fragment/en_f2baec5.pf_fragment rename to pagefind/fragment/en_428d071.pf_fragment index cda7abf67..1e80ed521 100644 Binary files a/pagefind/fragment/en_f2baec5.pf_fragment and b/pagefind/fragment/en_428d071.pf_fragment differ diff --git a/pagefind/fragment/en_48cfbd2.pf_fragment b/pagefind/fragment/en_48cfbd2.pf_fragment deleted file mode 100644 index 8e2b1545f..000000000 Binary files a/pagefind/fragment/en_48cfbd2.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_4b29776.pf_fragment b/pagefind/fragment/en_4b29776.pf_fragment new file mode 100644 index 000000000..8c6886313 Binary files /dev/null and b/pagefind/fragment/en_4b29776.pf_fragment differ diff --git a/pagefind/fragment/en_4c76421.pf_fragment b/pagefind/fragment/en_4c76421.pf_fragment new file mode 100644 index 000000000..7aabd8922 Binary files /dev/null and b/pagefind/fragment/en_4c76421.pf_fragment differ diff --git a/pagefind/fragment/en_f8b6e83.pf_fragment b/pagefind/fragment/en_51bd224.pf_fragment similarity index 97% rename from pagefind/fragment/en_f8b6e83.pf_fragment rename to pagefind/fragment/en_51bd224.pf_fragment index 6a669333a..5c0233d84 100644 Binary files a/pagefind/fragment/en_f8b6e83.pf_fragment and b/pagefind/fragment/en_51bd224.pf_fragment differ diff --git a/pagefind/fragment/en_77956fd.pf_fragment b/pagefind/fragment/en_587a7b1.pf_fragment similarity index 93% rename from pagefind/fragment/en_77956fd.pf_fragment rename to pagefind/fragment/en_587a7b1.pf_fragment index 152b2bfc2..a566cbb9e 100644 Binary files a/pagefind/fragment/en_77956fd.pf_fragment and b/pagefind/fragment/en_587a7b1.pf_fragment differ diff --git a/pagefind/fragment/en_5e448e5.pf_fragment b/pagefind/fragment/en_5e448e5.pf_fragment deleted file mode 100644 index fd3b5678b..000000000 Binary files a/pagefind/fragment/en_5e448e5.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_629ef72.pf_fragment b/pagefind/fragment/en_629ef72.pf_fragment deleted file mode 100644 index 06db7adf5..000000000 Binary files a/pagefind/fragment/en_629ef72.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_63fd415.pf_fragment b/pagefind/fragment/en_63fd415.pf_fragment new file mode 100644 index 000000000..08986f0e5 Binary files /dev/null and b/pagefind/fragment/en_63fd415.pf_fragment differ diff --git a/pagefind/fragment/en_66d6d49.pf_fragment b/pagefind/fragment/en_66d6d49.pf_fragment new file mode 100644 index 000000000..661c05727 Binary files /dev/null and b/pagefind/fragment/en_66d6d49.pf_fragment differ diff --git a/pagefind/fragment/en_78bbfe3.pf_fragment b/pagefind/fragment/en_78bbfe3.pf_fragment new file mode 100644 index 000000000..b90ba3caa Binary files /dev/null and b/pagefind/fragment/en_78bbfe3.pf_fragment differ diff --git a/pagefind/fragment/en_7aa7ddd.pf_fragment b/pagefind/fragment/en_7aa7ddd.pf_fragment new file mode 100644 index 000000000..ee8cefc9c Binary files /dev/null and b/pagefind/fragment/en_7aa7ddd.pf_fragment differ diff --git a/pagefind/fragment/en_31bb885.pf_fragment b/pagefind/fragment/en_7c75e55.pf_fragment similarity index 96% rename from pagefind/fragment/en_31bb885.pf_fragment rename to pagefind/fragment/en_7c75e55.pf_fragment index 0a1044a79..7e941c7a5 100644 Binary files a/pagefind/fragment/en_31bb885.pf_fragment and b/pagefind/fragment/en_7c75e55.pf_fragment differ diff --git a/pagefind/fragment/en_886fc44.pf_fragment b/pagefind/fragment/en_876d944.pf_fragment similarity index 99% rename from pagefind/fragment/en_886fc44.pf_fragment rename to pagefind/fragment/en_876d944.pf_fragment index f9dc47c96..3dbe32fcb 100644 Binary files a/pagefind/fragment/en_886fc44.pf_fragment and b/pagefind/fragment/en_876d944.pf_fragment differ diff --git a/pagefind/fragment/en_2870752.pf_fragment b/pagefind/fragment/en_90505e2.pf_fragment similarity index 92% rename from pagefind/fragment/en_2870752.pf_fragment rename to pagefind/fragment/en_90505e2.pf_fragment index 95d849d35..156377ed2 100644 Binary files a/pagefind/fragment/en_2870752.pf_fragment and b/pagefind/fragment/en_90505e2.pf_fragment differ diff --git a/pagefind/fragment/en_90aa772.pf_fragment b/pagefind/fragment/en_90aa772.pf_fragment deleted file mode 100644 index 904b6599a..000000000 Binary files a/pagefind/fragment/en_90aa772.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_922aa0f.pf_fragment b/pagefind/fragment/en_922aa0f.pf_fragment deleted file mode 100644 index 7d958ec15..000000000 Binary files a/pagefind/fragment/en_922aa0f.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_94161fb.pf_fragment b/pagefind/fragment/en_94161fb.pf_fragment new file mode 100644 index 000000000..60b2857f2 Binary files /dev/null and b/pagefind/fragment/en_94161fb.pf_fragment differ diff --git a/pagefind/fragment/en_aefe534.pf_fragment b/pagefind/fragment/en_aefe534.pf_fragment deleted file mode 100644 index b9dcec4ec..000000000 Binary files a/pagefind/fragment/en_aefe534.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_cd29102.pf_fragment b/pagefind/fragment/en_cd29102.pf_fragment new file mode 100644 index 000000000..e18914aa0 Binary files /dev/null and b/pagefind/fragment/en_cd29102.pf_fragment differ diff --git a/pagefind/fragment/en_cea21a6.pf_fragment b/pagefind/fragment/en_cea21a6.pf_fragment new file mode 100644 index 000000000..1254ec268 Binary files /dev/null and b/pagefind/fragment/en_cea21a6.pf_fragment differ diff --git a/pagefind/fragment/en_cf2041a.pf_fragment b/pagefind/fragment/en_dd3c8a6.pf_fragment similarity index 92% rename from pagefind/fragment/en_cf2041a.pf_fragment rename to pagefind/fragment/en_dd3c8a6.pf_fragment index 8a00eaa6f..94d1d0c76 100644 Binary files a/pagefind/fragment/en_cf2041a.pf_fragment and b/pagefind/fragment/en_dd3c8a6.pf_fragment differ diff --git a/pagefind/fragment/en_e366449.pf_fragment b/pagefind/fragment/en_e366449.pf_fragment deleted file mode 100644 index f9320e982..000000000 Binary files a/pagefind/fragment/en_e366449.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_e6a8d49.pf_fragment b/pagefind/fragment/en_e6a8d49.pf_fragment deleted file mode 100644 index c6013c431..000000000 Binary files a/pagefind/fragment/en_e6a8d49.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_e852fd1.pf_fragment b/pagefind/fragment/en_e852fd1.pf_fragment new file mode 100644 index 000000000..846e0758f Binary files /dev/null and b/pagefind/fragment/en_e852fd1.pf_fragment differ diff --git a/pagefind/fragment/en_f67fabb.pf_fragment b/pagefind/fragment/en_f67fabb.pf_fragment deleted file mode 100644 index ac021747a..000000000 Binary files a/pagefind/fragment/en_f67fabb.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_f9f240a.pf_fragment b/pagefind/fragment/en_f9f240a.pf_fragment deleted file mode 100644 index 5862dec2a..000000000 Binary files a/pagefind/fragment/en_f9f240a.pf_fragment and /dev/null differ diff --git a/pagefind/pagefind-entry.json b/pagefind/pagefind-entry.json index f7ab9fc6a..12787c298 100644 --- a/pagefind/pagefind-entry.json +++ b/pagefind/pagefind-entry.json @@ -1 +1 @@ -{"version":"1.1.1","languages":{"en":{"hash":"en_2a1880b6e7","wasm":"en","page_count":25}}} \ No newline at end of file +{"version":"1.1.1","languages":{"en":{"hash":"en_84529e9d40","wasm":"en","page_count":25}}} \ No newline at end of file diff --git a/pagefind/pagefind.en_2a1880b6e7.pf_meta b/pagefind/pagefind.en_2a1880b6e7.pf_meta deleted file mode 100644 index d2bdb8e51..000000000 Binary files a/pagefind/pagefind.en_2a1880b6e7.pf_meta and /dev/null differ diff --git a/pagefind/pagefind.en_84529e9d40.pf_meta b/pagefind/pagefind.en_84529e9d40.pf_meta new file mode 100644 index 000000000..a121bdee2 Binary files /dev/null and b/pagefind/pagefind.en_84529e9d40.pf_meta differ diff --git a/posts/leibniz-theodicy/index.html b/posts/leibniz-theodicy/index.html index 526acdec3..0f6367b69 100644 --- a/posts/leibniz-theodicy/index.html +++ b/posts/leibniz-theodicy/index.html @@ -10,4 +10,4 @@ Genius). His Philosophy guided German to constantly push themselves to the endless next levels of human perfection. This I believe partially contributed the unbelievable warfare technologies during World War II, such as Tiger and King Tiger -" name=twitter:description>
506 words
3 minutes
Leibniz's Theodicy

Overview of Leibniz#

Gottfried Wilhelm Leibniz is a very interesting many-sided man (or more easily known as the German Genius). He may have been the first computer scientist and information theorist1. He puzzled over the origins of the Slavic languages and was fascinated by classical Chinese. Leibniz was also an expert in the Sanskrit language.1 He was also perhaps the first major European intellectual to take a close interest in Chinese civilization1, which he knew by corresponding with, and reading other works by, European Christian missionaries posted in China. He apparently read Confucius Sinarum Philosophus in the first year of its publication. He came to the conclusion that Europeans could learn much from the Confucian ethical tradition. He mulled over the possibility that the Chinese characters were an unwitting form of his universal characteristic. He noted how the I Ching (易经) hexagrams correspond to the binary numbers from 000000 to 111111, and concluded that this mapping was evidence of major Chinese accomplishments in the sort of philosophical mathematics he admired. Leibniz was one of the western philosophers of the time who attempted to accommodate Confucian ideas to prevailing European beliefs.

A diagram of I Ching hexagrams sent to Leibniz from Joachim Bouvet. The Arabic numerals were added by Leibniz.

Leibniz’s attraction to Chinese philosophy originates from his perception that Chinese philosophy was similar to his own The historian E.R. Hughes suggests that Leibniz’s ideas of “simple substance” and “pre-established harmony” were directly influenced by Confucianism, pointing to the fact that they were conceived during the period when he was reading Confucius Sinarum Philosophus.

Theodicy#

In his treatise on page 138 of the Theodicy, Leibniz wrote

Hence the conclusion that God wills all good in himself antecedently, that he wills the best consequently as an end, that he wills what is indifferent, and physical evil, sometimes as a means, but that he will only permit moral evil as the sine quo non or as a hypothetical necessity which connects it with the best. Therefore the consequent will of God, which has sin for its object, is only permissive.

Leibniz thinks that the world that we live in is ABSOLUTELY the best possible world because it was created by a perfect God. That means that there is no “excess” evil; evil always serves some sort of purpose. This has a lot to do with The Principal of Sufficient Reason. Evil can exist in a perfect world because it has sufficient reason to be there. In fact the evil is necessary. He argues this in a few ways. Evil is necessary for a true type of free will. For free will to be truly admirable the individual needs to be able to choose from a full range of options (not just good ones). He also says that some ultimate goods (like free will, but we can think of others like courage, forgiveness, compassion) need suffering in order to exist. The evil is necessary. So God would allow for these evils in order to make greater good possible2.

Footnotes#

  1. Wikipedia - Gottfried Wilhelm Leibniz 2 3

  2. Help with Leibniz’s Theodicy

Leibniz's Theodicy
https://leadership.qubitpi.org/posts/leibniz-theodicy/
Author
【烬火】胡桃
Published at
2024-12-03
\ No newline at end of file +" name=twitter:description>
506 words
3 minutes
Leibniz's Theodicy

Overview of Leibniz#

Gottfried Wilhelm Leibniz is a very interesting many-sided man (or more easily known as the German Genius). He may have been the first computer scientist and information theorist1. He puzzled over the origins of the Slavic languages and was fascinated by classical Chinese. Leibniz was also an expert in the Sanskrit language.1 He was also perhaps the first major European intellectual to take a close interest in Chinese civilization1, which he knew by corresponding with, and reading other works by, European Christian missionaries posted in China. He apparently read Confucius Sinarum Philosophus in the first year of its publication. He came to the conclusion that Europeans could learn much from the Confucian ethical tradition. He mulled over the possibility that the Chinese characters were an unwitting form of his universal characteristic. He noted how the I Ching (易经) hexagrams correspond to the binary numbers from 000000 to 111111, and concluded that this mapping was evidence of major Chinese accomplishments in the sort of philosophical mathematics he admired. Leibniz was one of the western philosophers of the time who attempted to accommodate Confucian ideas to prevailing European beliefs.

A diagram of I Ching hexagrams sent to Leibniz from Joachim Bouvet. The Arabic numerals were added by Leibniz.

Leibniz’s attraction to Chinese philosophy originates from his perception that Chinese philosophy was similar to his own The historian E.R. Hughes suggests that Leibniz’s ideas of “simple substance” and “pre-established harmony” were directly influenced by Confucianism, pointing to the fact that they were conceived during the period when he was reading Confucius Sinarum Philosophus.

Theodicy#

In his treatise on page 138 of the Theodicy, Leibniz wrote

Hence the conclusion that God wills all good in himself antecedently, that he wills the best consequently as an end, that he wills what is indifferent, and physical evil, sometimes as a means, but that he will only permit moral evil as the sine quo non or as a hypothetical necessity which connects it with the best. Therefore the consequent will of God, which has sin for its object, is only permissive.

Leibniz thinks that the world that we live in is ABSOLUTELY the best possible world because it was created by a perfect God. That means that there is no “excess” evil; evil always serves some sort of purpose. This has a lot to do with The Principal of Sufficient Reason. Evil can exist in a perfect world because it has sufficient reason to be there. In fact the evil is necessary. He argues this in a few ways. Evil is necessary for a true type of free will. For free will to be truly admirable the individual needs to be able to choose from a full range of options (not just good ones). He also says that some ultimate goods (like free will, but we can think of others like courage, forgiveness, compassion) need suffering in order to exist. The evil is necessary. So God would allow for these evils in order to make greater good possible2.

Footnotes#

  1. Wikipedia - Gottfried Wilhelm Leibniz 2 3

  2. Help with Leibniz’s Theodicy

Leibniz's Theodicy
https://leadership.qubitpi.org/posts/leibniz-theodicy/
Author
【烬火】胡桃
Published at
2024-12-03
\ No newline at end of file